ここでは、次の IPv6 デーモンについて説明します。
in.ndpd - IPv6 自動設定用のデーモン
in.ridpd - IPv6 のネットワークルーティングデーモン
inetd - インターネットサービスデーモン
このデーモンでは、IPv6 用のルーター発見と自動アドレスの設定が実装されます。表 16-2 は、サポートされているオプションを示します。
表 16-2 in.ndpd デーモンのオプション
オプション |
説明 |
---|---|
-d |
すべてのイベントのデバッグをオンにする |
-D |
特定のイベントのデバッグをオンにする |
-f |
設定を読み出す元のファイル (デフォルトファイルのかわり) |
-I |
インタフェース関連情報ごとに印刷する |
-n |
ルーター通知をループバックしない |
-r |
受信パケットを無視する |
-v |
冗長モード (さまざまな種類の診断メッセージを報告する) |
-t |
パケット追跡をオンにする |
/etc/inet/ndpd.conf 構成ファイルと、/var/inet/ndpd_state.interface 起動ファイル (存在する場合) のパラメータセットは、in.ndpd の動作を制御します。
/etc/inet/ndpd.conf が存在すると構文解析され、ノードをルーターに使用するための設定が行われます。表 16-3に、このファイルに出現する可能性がある各種キーワードをまとめます。ホストを起動してもルーターが直ぐに利用できなかったり、ルーターが通知したパケットがドロップしてホストに届かないことがあります。/var/inet/ndpd_state.interface ファイルはノード別に管理され、定期的に更新される状態ファイルであるため、処理が失敗して再起動したときはルーターがなくてもインタフェースを設定できます。このファイルにはインタフェースアドレス、更新時間、有効期間などの情報が、先のルーター通知で得られた情報とともに保存されています。
状態ファイルの内容は変更する必要はありません。in.ndpd デーモンが自動的に管理します。
キーワード |
説明 |
---|---|
ifdefault |
すべてのインタフェースのルーターの動作を指定する。次の構文を使用してルーターパラメータと対応する値を設定する ifdefault [variable value] |
prefixdefault |
プレフィックス通知のデフォルトの動作を指定する。次の構文を使用してルーターパラメータと対応する値を設定する prefixdefault [variable value] |
if |
インタフェース別パラメータを設定する。構文は次のとおり if interface [variable value] |
prefix |
インタフェース別プレフィックス情報を通知する。構文は次のとおり prefix prefix/length interface [variable value] |
ifdefault/prefixdefault エントリは、構成ファイルの if エントリと prefix エントリの前に置く必要があります。
設定変数と設定できる値については、in.ndpd(1M) と ndpd.conf(4) のマニュアルページを参照してください。
次の例は、テンプレート (コメント行) とキーワードと設定変数の使用方法を示します。
# ifdefault [variable value]* # prefixdefault [variable value]* # if ifname [variable value]* # prefix prefix/length ifname # # Per interface configuration variables # #DupAddrDetectTransmits #AdvSendAdvertisements #MaxRtrAdvInterval #MinRtrAdvInterval #AdvManagedFlag #AdvOtherConfigFlag #AdvLinkMTU #AdvReachableTime #AdvRetransTimer #AdvCurHopLimit #AdvDefaultLifetime # # Per Prefix: AdvPrefixList configuration varialbes # # #AdvValidLifetime #AdvOnLinkFlag #AdvPreferredLifetime #AdvAutonomousFlag #AdvValidExpiration #AdvPreferredExpiration ifdefault AdvReachableTime 30000 AdvRetransTimer 2000 prefixdefault AdvValidLifetime 240m AdvPreferredLifetime 120m if qe0 AdvSendAdvertisements 1 prefix 2:0:0:56::/64 qe0 prefix fec0:0:0:56::/64 qe0 if qe1 AdvSendAdvertisements 1 prefix 2:0:0:55::/64 qe1 prefix fec0:0:0:56::/64 qe1 if qe2 AdvSendAdvertisements 1 prefix 2:0:0:54::/64 qe2 prefix fec0:0:0:54::/64 qe2 |
in.ripngd デーモンは、IPv6 ルーターの RIPng ルーティングプロトコルを実装します。RIPng は、Bellman-Ford 距離ベクトルアルゴリズムに基づく IPv4 ルーティングプロトコルで広く使用されてきた RIP の IPv6 等価を定義します。表 16-4 は、サポートされているオプションを示します。
表 16-4 in.ripngd デーモンのオプション
オプション |
説明 |
-p n |
n は RIPNG パケットの送受信に使用する代替ポート番号を指定する |
-q |
ルーティング情報を打ち切る |
-s |
ルーターとしての機能に関係なく、ルーティング情報が強制される |
-P |
ポイズンリバースを打ち切る |
-S |
in.ripngd がルーターとして機能しない場合、各ルーターにはデフォルトのルートだけが指定される |
IPv6 有効化サーバーでは、対応するクライアントで利用している内容に応じて、IPv4 アドレスか IPv6 アドレスを処理できます。/etc/inet/inetd.conf ファイルには、inetd(1M) がソケット経由でインターネット要求を受信したときに呼び出すサーバーリストが保存されています。ソケットベースのインターネットサーバーエントリはそれぞれ、次の構文を使用する 1 行です。
service_name socket_type proto flags user server_pathname args |
各フィールドに指定できる値については、inetd.conf(4) のマニュアルページを参照してください。Solaris オペレーティング環境の場合、IPv6 有効化で /etc/inet/inetd.conf ファイルにサービスを指定するには、proto フィールドに tcp6 または udp6 を指定します。サービスが IPv4 専用の場合、proto フィールドは tcp または udp として指定します。サービスに tcp6 または udp6 の proto 値を指定すると、inetd は所定のデーモン AF_INET6 ソケットを渡します。
inetd.conf ファイルの次のエントリは、IPv4 クライアントアプリケーションと IPv6 クライアントアプリケーションの両方と通信できる udp サーバー (myserver) を表します。
myserver dgram udp6 wait root /usr/sbin/myserver myserver |
AF_INET (IPv4 専用) ソケットまたは AF_INET6 (IPv6 と IPv4) ソケットを inetd から継承できるよう IPv6 有効化サーバーを書き込むと、サービスの proto 値が tcp6 (udp6) または tcp (udp) として指定されます。この種のサーバーでは、2 つの inetd.conf エントリを、1 つは proto で tcp として、もう 1 つは proto で tcp6 として指定できます。
AF_INET6 ソケットは、IPv4 プロトコルと IPv6 プロトコルのどちらでも使用できるため、proto 値 tcp6 (udp6) を指定すれば充分です。
各種 IPv6 有効化サーバーの記述方法については、『ネットワークインタフェース』を参照してください。
Solaris バンドルサーバーには、いずれも proto を tcp6 または udp6 と指定する inetd エントリが 1 つあれば十分です。ただし、リモートシェルサーバー (shell) とリモート実行サーバー (exec) のエントリには、tcp と tcp6 の両方の proto 値を指定する必要があります。例 16-4 は、rlogin、telnet、shell、exec 用の inetd エントリです。
login stream tcp6 nowait root /usr/sbin/in.rlogind in.rlogind telnet stream tcp6 nowait root /usr/sbin/in.telnetd in.telnetd shell stream tcp nowait root /usr/sbin/in.rshd in.rshd shell stream tcp6 nowait root /usr/sbin/in.rshd in.rshd exec stream tcp nowait root /usr/sbin/in.rexecd in.rexecd exec stream tcp6 nowait root /usr/sbin/in.rexecd in.rexecd |
以上のユーティリティの server_pathname として TCP ラッパー (telnet などさまざまなネットワークサービスで入力要求を監視、フィルタ処理するためのパブリックドメインユーティリティ) を指定するには、TCP ラッパーが IPv6 対応であることが条件です。対応していない場合、TCP ラッパーで使用するサービスの proto を tcp か udp に指定する必要があります。
また、Solaris に含まれるユーティリティを別の実装と交換する場合、そのサービスの実装が IPv6 をサポートしていることを確認する必要があります。サポートしていない場合、proto 値を tcp か udp に指定します。
proto 値を tcp か udp のどちらか一方に指定すると、サービスでは IPv4 だけが使用されます。IPv4 接続と IPv6 接続の両方を有効にするには、proto 値を tcp6 か udp6 に指定する必要があります。サービスで IPv6 をサポートしていない場合、tcp や udp は指定しないでください。
ソケットを使用する IPv6 有効化サーバーの記述については、『ネットワークインタフェース』を参照してください。