IPv6 の管理

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

IPv6 有効化サーバーは、IPv4 アドレスか IPv6 アドレスを処理できるサーバーです。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 として指定します。サービスの proto 値に tcp6 または udp6 を指定すると、inetd は所定のデーモンに AF_INET6 ソケットを渡します。

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


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


myserver   dgram   udp6	wait	root	/usr/sbin/myserver	myserver

IPv6 有効化サーバーは、AF_INET (IPv4 専用) ソケットまたは AF_INET6 (IPv6 と IPv4) ソケットを inetd から継承できます。サービスに対して proto 値は、tcp6 udp6tcp または udp として指定されています。この種のサーバーでは、2 つの inetd.conf エントリを指定できます。1 つは prototcp として、もう1 つは prototcp6 として指定できます。


注 –

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


各種 IPv6 有効化サーバーの記述方法については、プログラミングインタフェースを参照してください。

Solaris ソフトウェアとともに提供されるサーバーはすべて、proto 値を tcp6 または udp6 と指定する inetd エントリが1 つあれば十分です。ただし、リモートシェルサーバー (shell) とリモート実行サーバー (exec) のエントリには、tcptcp6 の両方の proto 値を指定する必要があります。例 3–6 は、rlogintelnetshellexec 用の inetd エントリです。


例 3–6 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

TCP ラッパーは、telnet などさまざまなネットワークサービスで入力要求を監視、フィルタ処理するためのパブリックドメインユーティリティです。以上のユーティリティの server_pathname として TCP ラッパーを指定する場合、TCP ラッパーが IPv6 対応である必要があります。対応していない場合、TCP ラッパーで使用するサービスの prototcpudp に指定する必要があります。

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


注 –

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


ソケットを使用する IPv6 有効化サーバーについては、プログラミングインタフェースのソケット API への IPv6 拡張機能についての説明を参照してください。