Solaris のシステム管理 (第 3 巻)

inetd インターネットサービスデーモン

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 または udp6proto 値を指定すると、inetd は所定のデーモン AF_INET6 ソケットを渡します。

inetd.conf ファイルの次のエントリは、IPv4 クライアントアプリケーションと IPv6 クライアントアプリケーションの両方と通信できる udp サーバー (myserver) を表します。


例 16-3 IPv4 クライアントアプリケーションと IPv6 クライアントアプリケーションの両方と通信するサーバー


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 つは prototcp として、もう 1 つは prototcp6 として指定できます。


注 -

AF_INET6 ソケットは、IPv4 プロトコルと IPv6 プロトコルのどちらでも使用できるため、prototcp6 (udp6) を指定すれば充分です。


各種 IPv6 有効化サーバーの記述方法については、『ネットワークインタフェース』を参照してください。

Solaris バンドルサーバーには、いずれも prototcp6 または udp6 と指定する inetd エントリが 1 つあれば十分です。ただし、リモートシェルサーバー (shell) とリモート実行サーバー (exec) のエントリには、tcptcp6 の両方の proto 値を指定する必要があります。例 16-4 は、rlogintelnetshellexec 用の inetd エントリです。


例 16-4 Solaris バンドルサーバー用の inetd.conf エントリ


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 ラッパーで使用するサービスの prototcpudp に指定する必要があります。

また、Solaris に含まれるユーティリティを別の実装と交換する場合、そのサービスの実装が IPv6 をサポートしていることを確認する必要があります。サポートしていない場合、proto 値を tcpudp に指定します。


注 -

proto 値を tcpudp のどちらか一方に指定すると、サービスでは IPv4 だけが使用されます。IPv4 接続と IPv6 接続の両方を有効にするには、proto 値を tcp6udp6 に指定する必要があります。サービスで IPv6 をサポートしていない場合、tcpudp は指定しないでください。


ソケットを使用する IPv6 有効化サーバーの記述については、『ネットワークインタフェース』を参照してください。