Solaris のシステム管理 (ネットワークサービス)

レガシーサービスの通知

レガシーサービスは、次の方法で通知できます。

サービスの変更

ソフトウェアサーバーのソースコードを使用できる場合は、SLP SA を組み込むことができます。SLP 用の C 言語の API と Java の API は比較的簡単に使用できます。C 言語の API のマニュアルページと Java の API のマニュアルを参照してください。サービスがハードウェアデバイスの場合は、製造元が SLP を組み込む PROM を更新していることがあります。詳細は、デバイスの製造元に問い合わせてください。

SLP が使用できないサービスの通知

ソースコードや更新された SLP を含む PROM が使用できない場合は、SLP クライアントライブラリを使ってサービスを通知する小さなアプリケーションを書くことができます。このアプリケーションは小さなデーモンとして機能し、サービスの起動・停止に使用する場合と同じシェルスクリプトで起動・停止します。

SLP プロキシ登録

Solaris の slpd は、プロキシ登録ファイルを使用したレガシーサービスの通知をサポートしています。プロキシ通知ファイルは、移植性のあるフォーマットで書かれたサービス通知のリストです。

ProcedureSLP プロキシ登録を有効にする方法

  1. ホストのファイルシステムまたは HTTP でアクセス可能なネットワーク上の任意のディレクトリに、プロキシ登録ファイルを作成します。

  2. サービスについてサービスタイプのテンプレートが存在するかどうかを確認します。

    テンプレートは、サービスタイプのサービス URL と属性を記述したものです。テンプレートを使用して、特定のサービスタイプについて通知の構成要素を定義します。

    • サービスタイプテンプレートが存在する場合は、そのテンプレートを使ってプロキシ登録を構成してください。サービスタイプテンプレートについては、RFC 2609 を参照してください。

    • サービスについてサービスタイプテンプレートを使用できない場合は、サービスを正確に記述する属性の集合体を選択してください。通知に対して、デフォルト以外の命名権限を使用してください。デフォルトの命名権限は標準化されたサービスタイプについてだけ許可されています。命名権限については、RFC 2609 を参照してください。

      たとえば、BizApp という会社にソフトウェアバグの追跡に使用されるローカルデータベースがあるとします。データベースを通知するために、この会社は、サービスタイプ service:bugdb.bizapp を持つ URL を使用します。この場合、命名権限は bizapp になります。

  3. 前の手順で作成した登録ファイルの場所を使用して、/etc/inet/slp.conf ファイルの net.slp.serializedRegURL プロパティーを構成するには、次の手順に従います。

  4. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  5. ホスト上の slpd とすべての SLP 動作を停止します。


    # svcadm disable network/slp
    
  6. 構成の設定を変更する前に、デフォルトの /etc/inet/slp.conf ファイルのバックアップをとります。

  7. /etc/inet/slp.conf ファイルの net.slp.serializedRegURL プロパティーにプロキシ登録の場所を指定します。


    net.slp.net.slp.serializedRegURL=proxy registration file URL
    

    たとえば、直列化登録ファイルが /net/inet/slp.reg である場合、プロパティーを次に示すように構成します。


    net.slp.serializedRegURL=file:/etc/inet/slp.reg
  8. 変更を保存し、ファイルを閉じます。

  9. 変更を反映するには、slpd を再起動します。


    # svcadm enable network/slp
    

SLP プロキシ登録による通知

サービス通知は、サービス URL を特定する行、オプションのスコープ行、一連の属性の定義から構成されます。SLP デーモンはファイルからプロキシ通知を読み、その通知を登録し、SA クライアントと同じようにそれらを保持します。次のリストは、プロキシ登録ファイルの例を示します。

この例では、LPR プロトコルをサポートするレガシープリンタと ftp サーバーが通知されています。行番号は説明のために付け加えたもので、実際のファイルには記述されていません。


 (1) #Advertise legacy printer. 
 (2) 
 (3) service:lpr://bizserver/mainspool,en,65535
 (4) scope=eng,corp
 (5) make-model=Laserwriter II
 (6) location-description=B16-2345
 (7) color-supported=monochromatic
 (8) fonts-supported=Courier,Times,Helvetica 9 10
 (9) 
 (10) #Advertise FTP server
 (11) 
 (12) ftp://archive/usr/src/public,en,65535,src-server
 (13) content=Source code for projects
 (14) 

注 –

プロキシ登録ファイルは、ASCII でない文字のエスケープに、構成ファイルと同じ取り決めを使用します。プロキシ登録ファイルのフォーマットについては、RFC 2614 を参照してください。


表 10–1 SLP プロキシ登録ファイルの説明

行番号 

説明 

1 と 10 

シャープ記号 (#) で始まるコメント行で、ファイルの動作には影響しません。コメント行の最後まですべての文字が無視されます。 

2、9、14 

通知の区切りを示す空行。 

3、12 

3 つの必須フィールドと 1 つのオプションフィールドがコンマで区切られたサービス URL。 

  • 一般的な URL または service: URL が通知されます。service: URL の指定方法の仕様については、 RFC 2609 を参照してください。

  • 通知の言語を指定します。前述の例では、フィールドは英語 en を指定しています。この言語は RFC 1766 の言語タグです。

  • 登録の有効期限を秒単位で規定します。有効期限は符号なしの 16 ビット整数に限定されます。有効期限が最大値 65535 より小さい場合、slpd は通知をタイムアウトします。有効期限が 65535 の場合、slpd は定期的に通知を更新し、slpd が存在するかぎり有効期限は永続するとされます。

  • サービスタイプフィールド (省略可能) – サービスタイプの定義に使用します。サービス URL が定義されている場合は、URL が通知されるサービスタイプを変更できます。前述のプロキシ登録ファイルの例では、12 行目に一般的な FTP URL が含まれています。オプションのタイプフィールドを使用して、この URL をサービスタイプ名 src-server で通知できます。デフォルトでは service 接頭辞はタイプ名には付きません。

スコープの指定。 

オプション行はトークンscope と等号、およびコンマで区切られたスコープ名のリストで構成されます。このスコープ名は、net.slp.useScopes 構成プロパティーで定義されています。ホストに構成されたスコープだけが、このスコープリストに表示されます。スコープ行がない場合は、slpd が構成されているすべてのスコープに登録が行われています。スコープ行は URL 行のすぐあとになければなりません。その他の場所にある場合、スコープ名は属性として認識されます。

5 から 8 

属性の定義。 

オプションのスコープ行のあとは、サービス通知の大部分は属性と値リストのペアの行で構成されます。各ペアは属性タグ、等号、コンマで区切られた属性値のリスト (属性が単一値の場合は単一値) で構成されます。前述のプロキシ登録ファイルの例では、8 行目が複数の値を持つ属性リストを示しています。これ以外の値リストはすべて単一値を持っています。属性名および値のフォーマットは、ネットワークを通過する SLP メッセージと同じです。