IPv6 の管理

Solaris ネームサービスに対する IPv6 拡張機能

ここでは、IPv6 の実装により導入されたネーミングの変更について説明します。IPv6 アドレスは Solaris ネームサービス (NIS、NIS+、DNS およびファイル) のどれでも保存できます。また、IPv6 RPC トランスポートで NIS と NIS+ を使用して NIS データまたは NIS+ データを検出することもできます。

/etc/inet/ipnodes ファイル

/etc/inet/ipnodes ファイルには、IPv4 と IPv6 のアドレスが格納されています。このファイルはローカルデータベースとして、ホスト名を IPv4 アドレスや IPv6 アドレスに関連付けます。ホスト名やそのアドレスは、/etc/inet/ipnodes などの静的ファイルには保存しないでください。ただし、テスト目的の場合は IPv4 アドレスを /etc/inet/hosts に保存するのと同じ方法で IPv6 アドレスを保存します。ipnodes ファイルでは、hosts ファイルと同じフォーマット変換を使用します。hosts ファイルの説明は、『Solaris のシステム管理 (IP サービス)』の「ネットワーク構成手順」を参照してください。ipnodes ファイルについては、ipnodes(4) のマニュアルページを参照してください。

IPv6-aware (IPv6 が利用可能な) ユーティリティでは、新しい /etc/inet/ipnodes データベースを使用します。既存の /etc/hosts データベースには、IPv4 アドレスだけを保存していますが、既存のアプリケーションの便宜上、このデータベースは変更されません。ipnodes データベースがない場合、IPv6-aware ユーティリティでは既存の hosts データベースを使用します。


注 –

アドレスを追加する必要がある場合、IPv4 アドレスは hosts ファイルと ipnodes ファイルの両方に追加しなければなりません。IPv6 アドレスは ipnodes ファイルにだけ追加します。


例 – /etc/inet/ipnodes ファイル


#
# Internet IPv6 host table
# with both IPv4 and IPv6 addresses
#
::1     localhost
2::9255:a00:20ff:fe78:f37c   fripp.guitars.com fripp fripp-v6
fe80::a00:20ff:fe78:f37c     fripp-11.guitars.com frippll
120.46.85.87   				 fripp.guitars.com fripp fripp-v4
2::9255:a00:20ff:fe87:9aba   strat.guitars.com strat strat-v6
fe80::a00:20ff:fe87:9aba     strat-11.guitars.com stratll
120.46.85.177  				 strat.guitars.com strat strat-v4 loghost

注 –

上記の例のように、ホスト名アドレスは、ホスト名でグループにまとめる必要があります。


IPv6 の NIS 拡張機能

NIS 用に 2 つの新しいマップが追加されました。 ipnodes.bynameipnodes.byaddr です。/etc/inet/ipnodes と同様に、これらのマップには、IPv4 情報と IPv6 情報の両方が保存されます。既存の hosts.bynamehosts.byaddr マップは、IPv4 情報だけを保存しています。既存のアプリケーションの便宜上変更されていません。

IPv6 の NIS+ 拡張機能

NIS+ 用に ipnodes.org_dir という新しいテーブルが追加されました。このテーブルには、ホスト用の IPv4 アドレスと IPv6 アドレスの両方が保存されています。既存の hosts.org_dir テーブルは IPv4 アドレス情報だけを保存しています。このテーブルは、既存のアプリケーションの便宜上変更されていません。

IPv6 の DNS 拡張機能

AAAA レコードとして定義された新しいリソースレコードが、RFC 1886 で定義されています。このAAAA レコードは、ホスト名を 128 ビット IPv6 アドレスにマップします。PTRレコードは IPv6 でも、IP アドレスをホスト名にマップするときに使用されています。128 ビットアドレスの 32 の 4 ビットニブルは、IPv6 アドレス用に反転されています。各ニブルは対応する 16 進 ASCII 値に変換されます。変換後、ip6.int が追加されます。

nsswitch.conf ファイルへの変更

/etc/inet/ipnodes で IPv6 アドレスを調べる機能に加え、IPv6 サポートは、NIS ネームサービス、NIS+ ネームサービス、DNS ネームサービスに追加されています。その結果、nssiwtch.conf(4) ファイルは IPv6 検索をサポートするように変更されました。ipnodes 行が /etc/nsswitch.conf ファイルに追加されました。この追加により、Solaris ネームサービス (NIS、NIS+、DNS、ファイル) の新しいデータベースで検索が可能になりました。次の太字で示された行は、ipnodes エントリの例です。


hosts:  files dns nisplus [NOTFOUND=return]
ipnodes: files dns nisplus [NOTFOUND=return]

注 –

IPv4 アドレスと IPv6 アドレスでこれらの ipnodes データベースを生成してから、複数のネームサービスで ipnodes を探すように /etc/nsswitch.conf ファイルを変更してください。ホストアドレスの解決時に不要な遅延が発生してしまうからです (起動タイミングの遅れが発生することもあります)。


図 3–1 は、gethostbyname() コマンドと getipnodebyname() コマンドを使用するアプリケーションにおける、nsswitch.conf ファイルと新しいネームサービスデータベースの新しい関係を示します。斜体の項目は新規です。gethostbyname() コマンドは、/etc/inet/hosts に保存されている IPv4 アドレスだけを調べます。getipnodebyname() コマンドは、nsswitch.conf ファイルの ipnodes エントリで指定したデータベースを調べます。検索に失敗すると、nsswitch.conf ファイルの hosts エントリで指定したデータベースを調べます。

図 3–1 nsswitch.conf とネームサービスの関係

ダイアグラムは、NIS、NIS+、ファイル、データベースおよび nsswitch.conf ファイル間の関係を示しています。

ネームサービスの詳細については、Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)を参照してください。

ネームサービスコマンドの変更

IPv6 をサポートできるように、既存のネームサービスコマンドで IPv6 アドレスを調べることができます。たとえば、ypmatch コマンドは、新しい NIS マップに使用できます。nismatch コマンドは、新しい NIS+ テーブルに使用できます。nslookup コマンドでは、DNS の新しい AAAA レコードを調べることができます。ネームサービスの変更については、IPv6 の NIS 拡張機能IPv6 の NIS+ 拡張機能、および IPv6 の DNS 拡張機能を参照してください。

これらのコマンドの使用手順については、IPv6 ネームサービス情報の表示を参照してください。