ネットワーククライアントの設定にあたっては、ネットワーク側で提供されている様々なサービス (印刷関連のプロトコルや LDAP など) に関する知識が必要となります。 「Service Location Protocol」 (SLP) はそのような目的で開発された仕組みで、ネットワークサービスを利用するクライアントの設定をより簡単にすることができるようになっています。 SLP では、ローカルのネットワーク内に存在する全てのクライアントに対して、選択したサービスが利用できる旨と、その設定データを提供することができます。 SLP に対応したアプリケーションであれば、その情報をもとに自動設定を行うことができます。
openSUSE® Leap では SLP 経由でインストールソースの情報を提供し、その情報をもとにインストールを行うことができます。また、多数のシステムサービスが SLP と統合しています。 SLP を利用することで、お使いのシステム内に存在するインストールサーバやファイルサーバ、印刷サーバなどの中央サーバに関する情報を、ネットワークに接続されたクライアントに通知することができます。 SLP に対応するサービスとしては、 cupsd, login, ntp, openldap2-client, postfix, rpasswd, rsyncd, saned, sshd (fish 経由), vnc, ypserv などがあります。
ネットワーククライアント側では、 SLP のサービスを利用するにあたって必要なパッケージが既定でインストールされています。逆に SLP を介してサービスを 提供する 場合は、 openslp-server
パッケージをインストールする必要があります。
slptool
#Edit sourceslptool
ツールは SLP のサービスを問い合わせたり、登録したりすることができるコマンドラインツールです。問い合わせの機能は調査を行うような場合に便利です。最も重要な slptool
サブコマンドを下記に示します。slptool
--help
を実行すると、利用可能の全てのオプションと機能を一覧表示することができます。
ネットワーク内で利用可能な全てのサービスタイプを一覧表示します。
>
slptool findsrvtypes
service:install.suse:nfs
service:install.suse:ftp
service:install.suse:http
service:install.suse:smb
service:ssh
service:fish
service:YaST.installation.suse:vnc
service:smtp
service:domain
service:management-software.IBM:hardware-management-console
service:rsync
service:ntp
service:ypserv
サービスタイプ を提供する全てのサーバを一覧表示します。
>
slptool findsrvs service:ntp
service:ntp://ntp.example.com:123,57810
service:ntp://ntp2.example.com:123,57810
指定した ホスト の サービスタイプ に対して、属性情報を表示します。
>
slptool findattrs service:ntp://ntp.example.com
(owner=tux),(email=tux@example.com)
指定した ホスト の サービスタイプ を、属性の一覧と共に登録します。
slptool register service:ntp://ntp.example.com:57810 \ "(owner=tux),(email=tux@example.com)"
指定した ホスト の サービスタイプ の登録を解除します。
slptool deregister service:ntp://ntp.example.com
さらに詳しい情報については、 slptool --help
をお読みください。
SLP 経由でサービス情報を公開するには、 SLP デーモン ( slpd
) を動作させなければなりません。 openSUSE Leap でのほとんどのサービスと同様に、 slpd
は個別の起動スクリプトで制御しています。なお、インストールを行っても、デーモンは既定で有効化されません。現在のセッションでサービスを起動するには、 sudo systemctl start slpd
を実行します。システムの起動時に slpd
を開始したい場合は、 sudo systemctl enable slpd
を実行してください。
openSUSE Leap では、多数のアプリケーションが libslp
ライブラリを利用して SLP に対応しています。特定のサービスが SLP サポート付きでコンパイルされていない場合は、下記のいずれかの方法で SLP に対応させることができます:
/etc/slp.reg.d
を利用した固定登録新しいサービスそれぞれに対して、個別の登録ファイルを作成して対応します。下記の例では、スキャナサービスを登録しています:
## このシステム内にある saned サービスを登録しています。 ## en は英語を、 65535 はタイムアウトの無効化を意味しています。 ## タイムアウトを無効化することで、サービスの更新を不要にしています。 service:scanner.sane://$HOSTNAME:6566,en,65535 watch-port-tcp=6566 description=SANE scanner daemon
このファイル内で最も重要な行は service:
で始まる service URL の行です。ここにはサービスの種類 ( scanner.sane
) のほか、サーバ内でサービスが提供されているアドレスが示されています。$HOSTNAME を指定すると、自動的に自分自身の完全修飾ホスト名に置き換えられます。その後ろにはコロンに続いて、サービスが待ち受けている TCP ポートが書かれています。その後ろにはカンマ区切りでサービスの提供言語と、登録の有効期間が秒単位で示されています。登録の有効期間は 0
から 65535
までの間で指定します。ただし、 0
は登録の無効化を、 65535
は無期限の登録を表します。
また、登録ファイルには watch-port-tcp
と description
という行があります。 watch-port-tcp
は SLP によるサービスの告知と関係するサービスを連携させる仕組みで、 slpd
がサービスの状態をチェックしてサービスを告知するようになります。また、 2 つ目の値はブラウザ側に表示するテキストで、サービスに関するより詳しい説明を記述します。
インストールサーバや YOU (YaST オンライン更新) などの場合、 YaST が仲介役となってサービスを登録することができます。この登録は、モジュールのダイアログ内で SLP を有効化することで、自動的に行うことができます。 YaST 側では、これらのサービスに対する登録ファイルを作成します。
/etc/slp.reg
を利用した固定登録/etc/slp.reg.d
とこの方式の違いは、全てのサービスを 1 つのファイルにまとめる、という点のみです。
slptool
を利用した動的な登録設定ファイルを使用せずに動的に登録を行う必要がある場合は、 slptool
コマンドラインユーティリティをお使いください。同ユーティリティを使用することで、 slpd
を再起動したりすることなく、既存のサービスの登録を解除することもできます。詳しくは 17.1項 「SLP フロントエンド slptool
」 をお読みください。
お使いのネットワーク内で SLP を介してインストールデータを告知することで、ネットワーク経由でのインストールをより簡単に行うことができるようになります。特に、インストールメディアの存在するサーバの IP アドレスやパスなどを、クライアント側で自動的に取得できる点が便利です。
RFC 2608 には SLP に対する一般的な説明があります。また、 RFC 2609 にはサービス URL の書式説明が、 RFC 2610 には DHCP 経由での SLP の説明があります。
OpenSLP プロジェクトのホームページです。
/usr/share/doc/packages/openslp
このディレクトリには、 openslp-server
パッケージに付属するドキュメンテーションが配置されています。また、 openSUSE Leap での詳細は、 README.SUSE
ファイルに書かれているほか、 RFC や 2 種類の入門文書なども用意されています。 SLP の機能を利用したいプログラマ向けには、 openslp-devel
パッケージ内に含まれている Programmers Guide (プログラマガイド) をお読みになることをお勧めします。