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

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

ここでは、Solaris 8 リリースで導入された 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 ファイルについては、「ネットワークデータベース」を参照してください。ipnodes ファイルについては、ipnodes(4) のマニュアルページを参照してください。

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


注 -

アドレスを追加する必要がある場合、IPv4 アドレスは hosts ファイルと ipnodes ファイルの両方に追加しなければなりません。IPv4 アドレスは 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.byname マップと hosts.byaddr マップは、IPv4 情報だけを保存していますが、既存のアプリケーションの便宜上変更されていません。

IPv6 の NIS+ 拡張機能

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

IPv6 の DNS 拡張機能

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

nsswitch.conf ファイルへの変更

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


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

注 -

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


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

図 16-1 nsswitch.conf とネームサービスの関係

Graphic

命名サービスの詳細については、『Solaris ネーミングの設定と構成』を参照してください。

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

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

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