目次
概要
service location protocol (SLP) は、ローカル ネットワーク内にあるクライアントに対して設定を簡略化するために開発されました。 ネットワーククライアントを設定する際には、必要となる様々なサービスを含め、 従来は管理者に対してネットワーク内のサーバについての詳しい知識が求められて きました。 SLP は特定のサービスが提供されていることを、ローカルネットワーク 内の全てのクライアントに対して通知します。 SLP に対応したアプリケーションは、 配布された情報を利用してサービスにアクセスできるようになり、自動で設定したり することもできるようになります。
openSUSE® では SLP 経由で通知されたインストール元からのインストールに 対応しているほか、 SLP に対応した多くのシステムサービスが含まれています。 また、 YaST や Konqueror では SLP のフロントエンドも提供されています。 お使いのシステム内にあるインストールサーバやファイルサーバ、印刷サーバなど 集中型の機能について、ネットワーク対応のクライアントに SLP 経由で通知して 使用してもらうように設定することもできます。
openSUSE での SLP サポート | |
---|---|
SLP に対応するサービスには、 cupsd, rsyncd, ypserv, openldap2, ksysguardd, saned, kdm, vnc, login, smpppd, rpasswd, postfix, sshd (fish 経由) があります。 |
SLP サービスを利用するのに必要な全てのパッケージは、既定でインストールされるように
なっています。逆に SLP を介してサービスを提供したい場合は、
openslp-server
パッケージがインストールされていることを
確認してください。また、 SLP のデーモンのサーバ設定を行なうには、
yast2-slp-server
パッケージをインストールしてください。
SLP でサービスを公開するには、お使いのシステムで slpd を実行しなければ
なりません。お使いのマシンがクライアントとしてのみ動作するもので、サービスの
提供を行なわない場合は、 slpd を実行する必要はありません。 openSUSE
での多くのサービスのように、 slpd デーモンは個別の init
スクリプト経由で起動および停止することができます。インストール後、何も設定しない
場合はサービスは起動しません。一時的に有効化したい場合は、
root
で
rcslpd start
と入力すると起動を
行なうことができますし、 rcslpd stop
と入力すると停止することができます。それ以外にも、再起動や状態チェックを
restart
や status
で行なうこことができます。
起動時に slpd を常に開始させたい場合は、 YaST から + を選択して slpd を有効にするか、もしくは
root
で insserv
slpd
コマンドを実行してください。
お使いのネットワーク内で提供されているサービスを SLP 経由で見つけるには、
slptool (openslp
パッケージ)
のような SLP フロントエンドを利用するか、もしくは YaST を利用します:
slptool はコマンドラインプログラムで、ネットワーク内に対して
SLP の問い合わせを投げたり、独自のサービスをアナウンスしたりすることが
できます。 slptool --help
のように実行すると、利用可能なオプションと機能を表示することができます。
たとえば現在のネットワークで、自分自身の存在をアナウンスしている
ネットワーク時刻サーバを見つけるには、下記のように入力します:
slptool findsrvs service:ntp
YaST でも SLP ブラウザを利用することができます。ただしこのブラウザは YaST
のコントロールセンターの一覧には用意されていません。この YaST モジュールを
起動するには、 root
で
yast2 slp と入力してください。左側にある
の項目を選択すると、サービスに関するさらに
詳しい情報を得ることができます。
openSUSE のインストールメディアを利用して、お使いのネットワーク内に インストールサーバを立ち上げたい場合は、 SLP で登録および提供することができます。 詳しくは 2.2項 「インストール元のデータを保存するサーバの構築」 をお読みください。 選択した起動メディアからシステムを起動し、 SLP インストールを選択すると、 linuxrc は SLP の問い合わせを行なって見つかったソースを表示します。
openSUSE 内の多くのアプリケーションは、 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:
で始まる
サービス URL の行です。この行にはまず、サービスの
種類 (scanner.sane
) と、サービスを利用できるアドレス
が書かれています。なお、 $HOSTNAME
は
自動的に自身の完全修飾ホスト名に置き換えられます。また、コロン (:) で
区切ってサービスを提供している TCP ポートの名前を入力することもできます。
あとの項目はサービスで使用されている言語と登録間隔 (秒単位) が書かれて
います。サービス URL との区切りは、それぞれカンマを使用します。登録間隔は
0
から 65535
までの間で、
0
を指定すると登録を行なわない意味になり、
65535
を指定すると全ての制限を取り除く意味になります。
また、登録ファイルには watch-port-tcp
と
description
の項目も書かれています。
watch-port-tcp
は SLP サービスアナウンスと
関連するサービスの有効性をつなげるもので、このポートに接続可能かどうかで
サービスが提供されているかどうかを確認します。もう 1 つの項目はサービスに
対する詳しい説明を書くための項目で、ブラウザを利用することで表示することの
できる項目です。
/etc/slp.reg
への手動登録
この登録と /etc/slp.reg.d
での登録との違いは、
全てのサービスが単一のファイルに書かれているという点です。
あるサービスについて、設定ファイル無しで動的に登録する必要がある場合は、 slptool コマンドラインユーティリティを使用するのがよいでしょう。 同じツールを利用することで、 slpd の再起動を行なうことなく既存のサービスを 削除することができます。
RFC 2608 では一般的な SLP の定義について記述しています。 RFC 2609 では サービス URL についてさらに詳しい文法を説明しているほか、 RFC 2610 では SLP 経由での DHCP について扱っています。
OpenSLP プロジェクトのホームページです。
/usr/share/doc/packages/openslp
このディレクトリには、 openslp-server
パッケージに
添付されているドキュメンテーションのほか、 README.SuSE
ファイルとして openSUSE での詳細や RFC 、 2 種類の入門 HTML 文書が
配置されます。 SLP の機能を使用したいプログラマの場合は、
openslp-devel
パッケージに
含まれる プログラマーズガイド をお読みになるのが
よいでしょう。