第14章 ネットワーク内の SLP サービス

目次

14.1. インストール
14.2. SLP の有効化
14.3. openSUSE での SLP フロントエンド
14.4. SLP 経由でのインストール
14.5. SLP 経由でのサービス提供
14.6. さらなる情報

概要

service location protocol (SLP) は、ローカル ネットワーク内にあるクライアントに対して設定を簡略化するために開発されました。 ネットワーククライアントを設定する際には、必要となる様々なサービスを含め、 従来は管理者に対してネットワーク内のサーバについての詳しい知識が求められて きました。 SLP は特定のサービスが提供されていることを、ローカルネットワーク 内の全てのクライアントに対して通知します。 SLP に対応したアプリケーションは、 配布された情報を利用してサービスにアクセスできるようになり、自動で設定したり することもできるようになります。

openSUSE® では SLP 経由で通知されたインストール元からのインストールに 対応しているほか、 SLP に対応した多くのシステムサービスが含まれています。 また、 YaST や Konqueror では SLP のフロントエンドも提供されています。 お使いのシステム内にあるインストールサーバやファイルサーバ、印刷サーバなど 集中型の機能について、ネットワーク対応のクライアントに SLP 経由で通知して 使用してもらうように設定することもできます。

[Important]openSUSE での SLP サポート

SLP に対応するサービスには、 cupsd, rsyncd, ypserv, openldap2, ksysguardd, saned, kdm, vnc, login, smpppd, rpasswd, postfix, sshd (fish 経由) があります。

14.1. インストール

SLP サービスを利用するのに必要な全てのパッケージは、既定でインストールされるように なっています。逆に SLP を介してサービスを提供したい場合は、 openslp-server パッケージがインストールされていることを 確認してください。また、 SLP のデーモンのサーバ設定を行なうには、 yast2-slp-server パッケージをインストールしてください。

14.2. SLP の有効化

SLP でサービスを公開するには、お使いのシステムで slpd を実行しなければ なりません。お使いのマシンがクライアントとしてのみ動作するもので、サービスの 提供を行なわない場合は、 slpd を実行する必要はありません。 openSUSE での多くのサービスのように、 slpd デーモンは個別の init スクリプト経由で起動および停止することができます。インストール後、何も設定しない 場合はサービスは起動しません。一時的に有効化したい場合は、 rootrcslpd start と入力すると起動を 行なうことができますし、 rcslpd stop と入力すると停止することができます。それ以外にも、再起動や状態チェックを restartstatus で行なうこことができます。 起動時に slpd を常に開始させたい場合は、 YaST から システム+システムサービス (ランレベル) を選択して slpd を有効にするか、もしくは rootinsserv  slpd コマンドを実行してください。

14.3. openSUSE での SLP フロントエンド

お使いのネットワーク内で提供されているサービスを SLP 経由で見つけるには、 slptool (openslp パッケージ) のような SLP フロントエンドを利用するか、もしくは YaST を利用します:

slptool

slptool はコマンドラインプログラムで、ネットワーク内に対して SLP の問い合わせを投げたり、独自のサービスをアナウンスしたりすることが できます。 slptool --help のように実行すると、利用可能なオプションと機能を表示することができます。 たとえば現在のネットワークで、自分自身の存在をアナウンスしている ネットワーク時刻サーバを見つけるには、下記のように入力します:

slptool findsrvs service:ntp
YaST

YaST でも SLP ブラウザを利用することができます。ただしこのブラウザは YaST のコントロールセンターの一覧には用意されていません。この YaST モジュールを 起動するには、 rootyast2 slp と入力してください。左側にある サービス種類 の項目を選択すると、サービスに関するさらに 詳しい情報を得ることができます。

14.4. SLP 経由でのインストール

openSUSE のインストールメディアを利用して、お使いのネットワーク内に インストールサーバを立ち上げたい場合は、 SLP で登録および提供することができます。 詳しくは 2.2項 「インストール元のデータを保存するサーバの構築」 をお読みください。 選択した起動メディアからシステムを起動し、 SLP インストールを選択すると、 linuxrc は SLP の問い合わせを行なって見つかったソースを表示します。

14.5. 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-tcpdescription の項目も書かれています。 watch-port-tcp は SLP サービスアナウンスと 関連するサービスの有効性をつなげるもので、このポートに接続可能かどうかで サービスが提供されているかどうかを確認します。もう 1 つの項目はサービスに 対する詳しい説明を書くための項目で、ブラウザを利用することで表示することの できる項目です。

/etc/slp.reg への手動登録

この登録と /etc/slp.reg.d での登録との違いは、 全てのサービスが単一のファイルに書かれているという点です。

slptool を利用した動的な登録

あるサービスについて、設定ファイル無しで動的に登録する必要がある場合は、 slptool コマンドラインユーティリティを使用するのがよいでしょう。 同じツールを利用することで、 slpd の再起動を行なうことなく既存のサービスを 削除することができます。

14.6. さらなる情報

RFC 2608, 2609, 2610

RFC 2608 では一般的な SLP の定義について記述しています。 RFC 2609 では サービス URL についてさらに詳しい文法を説明しているほか、 RFC 2610 では SLP 経由での DHCP について扱っています。

http://www.openslp.org

OpenSLP プロジェクトのホームページです。

/usr/share/doc/packages/openslp

このディレクトリには、 openslp-server パッケージに 添付されているドキュメンテーションのほか、 README.SuSE ファイルとして openSUSE での詳細や RFC 、 2 種類の入門 HTML 文書が 配置されます。 SLP の機能を使用したいプログラマの場合は、 openslp-devel パッケージに 含まれる プログラマーズガイド をお読みになるのが よいでしょう。


openSUSE リファレンス 13.1