Solaris のシステム管理 (IP サービス)

TCP/IP 構成ファイル

ネットワーク上の各システムは、次の TCP/IP 構成ファイルとネットワークデータベースから TCP/IP 構成情報を取得します。

Oracle Solaris インストールプログラムは、インストール処理の一環として上記のファイルを作成します。これらのファイルは、この「TCP/IP 構成ファイル」の節の説明に従って手作業で編集することもできます。hosts データベースと netmasks データベースは、Oracle Solaris ネットワークで使用できるネームサービスによって読み取られるネットワークデータベースのうちの 2 つです。ネットワークデータベースの概念についての詳細は、「ネットワークデータベースと nsswitch.conf ファイル」を参照してください。Solaris 10 11/06 以前のリリースの ipnodes ファイルについては、ipnodes データベース」を参照してください。

/etc/hostname.interface ファイル

このファイルは、ローカルホストの物理ネットワークインタフェースを定義します。ローカルシステムには、少なくとも 1 つの /etc/hostname.interface ファイルが存在する必要があります。Oracle Solaris インストールプログラムは、インストールプロセス中に検出された最初のインタフェースに対して /etc/hostname.interface ファイルを作成します。このインタフェースは通常、一番小さなデバイス番号 (たとえば、eri0) を持っており、「一次ネットワークインタフェース」と呼ばれます。インストールプログラムが追加インタフェースを検出した場合は、インストールプロセスの一環としてそれらも任意で構成できます。


注 –

同じインタフェース用に別のホスト名ファイルを作成する場合、そのホスト名ファイルの名前も hostname.[0–9]* の形式 (hostname.qfe0.a123など) にする必要があります。hostname.qfe0.bak hostname.qfe0.old のような名前は無効であり、システムの起動中にスクリプトに無視されます。

また、特定のインタフェースに対応するホスト名ファイルは 1 つだけにする必要があります。/etc/hostname.qfe/etc/hostname.qfe.a123 のように、インタフェースの代替ホスト名ファイルを有効なファイル名で作成した場合、ブートスクリプトは両方のホスト名ファイルの内容を参照することによって構成を試みるため、エラーが発生します。これらのエラーを回避するには、特定の構成で使用したくないホスト名ファイルに無効なファイル名を付けます。


インストール後、新しいネットワークインタフェースをシステムに追加した場合は、そのインタフェースに対して、/etc/hostname.interface ファイルを作成する必要があります (「システムインストール後に物理インタフェースを構成する方法」を参照)。また、Oracle Solaris ソフトウェアが新しいネットワークインタフェースを認識し、使用できるようにするには、インタフェースのデバイスドライバが適切なディレクトリに読み込まれるようにする必要があります。新しいネットワークインタフェースに付属しているマニュアルを参照し、正しいインタフェース名とデバイスドライバの使用方法を確認してください。

基本的な /etc/hostname.interface ファイルにはエントリが 1 つだけ含まれます。 それは、ネットワークインタフェースに関連付けられた、ホスト名または IPv4 アドレスのどちらかです。IPv4 アドレスは、一般的な 10 進ドット表記または CIDR 表記で表現できます。/etc/hostname.interface ファイルのエントリとしてホスト名を使用する場合は、そのホスト名が /etc/inet/hosts ファイルにも存在している必要があります。

たとえば、tenere というシステムの一次ネットワークインタフェースが smc0 であるとします。この場合、/etc/hostname.smc0 ファイルのエントリとして、10 進ドット表記または CIDR 表記の IPv4 アドレス、あるいはホスト名 tenere を使用できます。


注 –

IPv6 は /etc/hostname6.interface ファイルを使用して、ネットワークインタフェースを定義します。詳細は、「IPv6 インタフェース設定ファイル」を参照してください。


/etc/nodename ファイル

このファイルにはエントリが 1 つ含まれます。 つまり、ローカルシステムのホスト名です。たとえば、timbuktu というシステムでは、/etc/nodename ファイルに timbuktu というエントリが入ります。

/etc/defaultdomain ファイル

このファイルにはエントリが 1 つ含まれます。 このエントリは、ローカルホストのネットワークが属する管理ドメインの完全に修飾されたドメイン名です。ネットワーク管理者は、この名前を Oracle Solaris インストールプログラムに指示したり、また後日、このファイルを編集できます。ネットワークドメインについての詳細は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。

/etc/defaultrouter ファイル

このファイルには、ネットワークに直接接続されている各ルーターのエントリを含めることができます。このエントリは、ネットワーク間のルーターとして機能するネットワークインタフェースの名前です。/etc/defaultrouter ファイルがあるということは、システムが静的経路選択をサポートする構成であることを示します。

hosts データベース

hosts データベースには、ネットワーク上のシステムの IPv4 アドレスとホスト名が含まれています。NIS、DNS、または LDAP ネームサービスを使用している場合、hosts データベースは、ホスト情報用として指定されているデータベースに格納されます。たとえば、NIS を実行するネットワークでは、hosts データベースは hostsbyname ファイルに格納されます。

ネームサービス用にローカルファイルを使用する場合、hosts データベースは /etc/inet/hosts ファイルに格納されます。このファイルには、一次ネットワークインタフェースのホスト名と IPv4 アドレス、システムに備わっているほかのネットワークインタフェース、このシステムが検査する必要があるほかのネットワークアドレスが含まれています。


注 –

BSD ベースのオペレーティングシステムとの互換性を保つため、/etc/hosts ファイルは /etc/inet/hosts へのシンボリックリンクとなっています。


/etc/inet/hosts ファイルの形式

/etc/inet/hosts ファイルは、次のような基本的な構文を使用します。構文についての詳細は、hosts(4) のマニュアルページを参照してください。

IPv4-address hostname [nicknames] [#comment]

IPv4-address

ローカルホストが認識する必要のある各インタフェースの IPv4 アドレスが含まれます。

hostname

設定時にシステムに割り当てたホスト名と、ローカルホストが認識しなければならない増設ネットワークインタフェースに割り当てたホスト名が含まれます。

[nickname]

ホストのニックネームが含まれます (省略可能)。

[#comment]

コメント用のフィールドです (省略可能)。

初期 /etc/inet/hosts ファイル

Oracle Solaris インストールプログラムをシステムで実行すると、このプログラムは初期 /etc/inet/hosts ファイルを構成します。このファイルには、ローカルホストにとって必要最小限のエントリが含まれています。エントリには、ループバックアドレス、ホストの IPv4 アドレス、ホスト名が入っています。

たとえば、図 5–1 のシステム tenere に対して、Oracle Solaris インストールプログラムは次のような /etc/inet/hosts ファイルを作成します。


例 10–1 システム tenere 用の /etc/inet/hosts ファイル


127.0.0.1     localhost         loghost    #loopback address
192.168.200.3   tenere                      #host name

ループバックアドレス

例 10–1では、IPv4 アドレス 127.0.0.1 は「ループバックアドレス」です。ループバックアドレスは、ローカルシステムがプロセス間通信するために使用する予約済みネットワークインタフェースです。このアドレスを使用して、ホストは自分自身にパケットを送信できます。ifconfig コマンドは、ループバックアドレスを使用して、構成と検査を行います (ifconfig コマンドによるインタフェース構成の監視」を参照)。TCP/IP ネットワークのシステムはすべて、ローカルホスト上での IPv4 ループバックに IP アドレス 127.0.0.1 を使用する必要があります。

ホスト名

IPv4 アドレス 192.168.200.1 と名前 tenere は、ローカルシステムのアドレスとホスト名です。これらは、システムの一次ネットワークインタフェースに割り当てられます。

複数のネットワークインタフェース

システムには複数のネットワークインタフェースを持つものがあり、これらはルーターまたはマルチホームホストとなります。システムに接続されるネットワークインタフェースごとに、専用の IP アドレスとそれに割り当てる名前が必要です。インストール時には、一次ネットワークインタフェースを構成する必要があります。特定のシステムがインストール時に複数のインタフェースを持っている場合は、Oracle Solaris インストールプログラムも増設インタフェースに関するプロンプトを表示します。1 つ以上の増設インタフェースをこの時点で構成したり、あとで手動構成を行うことができます。

Oracle Solaris のインストール後、インタフェース情報をシステムの /etc/inet/hosts ファイルに追加することで、ルーターまたはマルチホームホストの増設インタフェースを構成できます。ルーターとマルチホームホストを構成する方法については、「IPv4 ルーターの構成」「マルチホームホストの構成」を参照してください。

例 10–2 は、図 5–1 のシステム timbuktu 用の /etc/inet/hosts ファイルを示しています。


例 10–2 システム timbuktu 用の /etc/inet/hosts ファイル


127.0.0.1        localhost     loghost
192.168.200.70   timbuktu      #This is the local host name
192.168.201.10   timbuktu-201  #Interface to network 192.9.201

これらの 2 つのインタフェースを使用して、timbuktu はルーターとしてネットワーク 192.168.200192.168.201 に接続します。

ネームサービスの hosts データベースに対する影響

NIS と DNS ネームサービス、および LDAP ディレクトリサービスは、ホスト名とアドレスを 1 つまたは複数のサーバーに格納します。これらのサーバーは、各サーバーのネットワーク上のすべてのホストとルーター (もしあれば) に関する情報を含む hosts データベースを保持しています。これらのサービスの詳細については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。

ローカルファイルがネームサービスを提供する場合

ローカルファイルをネームサービスに使用するネットワークでは、ローカルファイルモードで実行されるシステムは、そのネットワークのほかのシステムの IPv4 アドレスとホスト名を調べるときに、それぞれの /etc/inet/hosts ファイルを参照します。したがって、これらのシステムの /etc/inet/hosts ファイルには、次の情報が含まれている必要があります。

図 10–1 は、システム tenere/etc/inet/hosts ファイルを示しています。このシステムはローカルファイルモードで実行されます。このファイルには、192.9.200 ネットワーク上のすべてのシステムの IPv4 アドレスとホスト名が含まれています。また、このファイルにはインタフェース名 timbuktu-201 とその IPv4 アドレスが含まれています。このインタフェースは 192.9.200 ネットワークを 192.9.201 ネットワークに接続しています。

ネットワーククライアントとして構成されたシステムは、そのループバックアドレスと IPv4 アドレス用にローカルの /etc/inet/hosts ファイルを使用します。

図 10–1 ローカルファイルモードで実行されるシステム用の /etc/inet/hosts ファイル

この図では、ローカルファイルモードで実行されるシステム用のホストファイルの内容を示しています。

ipnodes データベース


注 –

Solaris 10 11/06 よりあとのリリースには、ipnodes データベースは含まれなくなりました。これらの後続のリリースでは、ipnodes の IPv6 機能は hosts データベースに移行されます。


/etc/inet/ipnodes ファイルは IPv4 アドレスと IPv6 アドレスの両方を格納します。また、IPv4 アドレスは、一般的な 10 進ドット表記または CIDR 表記として保存できます。このファイルはローカルデータベースとして、ホスト名を IPv4 アドレスや IPv6 アドレスに関連付けます。ホスト名やそのアドレスは、/etc/inet/ipnodes などの静的ファイルには保存しないでください。ただし、テスト目的の場合は IPv4 アドレスを /etc/inet/hosts に保存するのと同じ方法で IPv6 アドレスを保存します。ipnodes ファイルでは、hosts ファイルと同じフォーマット変換を使用します。/etc/inet/hosts の詳細については、hosts データベース」を参照してください。ipnodes ファイルについては、ipnodes(4) のマニュアルページを参照してください。

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


注 –

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



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

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


#
# Internet IPv6 host table
# with both IPv4 and IPv6 addresses
#
::1     localhost
2001:db8:3b4c:114:a00:20ff:fe78:f37c   farsite.com farsite farsite-v6
fe80::a00:20ff:fe78:f37c     farsite-11.com farsitell
192.168.85.87   				 farsite.com farsite farsite-v4
2001:db8:86c0:32:a00:20ff:fe87:9aba   nearsite.com nearsite nearsite-v6
fe80::a00:20ff:fe87:9aba     nearsite-11.com nearsitell
10.0.0.177  				 nearsite.com nearsite nearsite-v4 loghost

netmasks データベース

ネットワーク構成の一部として netmasks データベースを編集する必要があるのは、ネットワークのサブネット化を設定している場合だけです。 netmasks データベースは、各ネットワークとそれに対応するサブネットマスクのリストで構成されています。


注 –

サブネットを作成するときは、新規の各ネットワークはそれぞれ独立した物理ネットワークであることが必要です。単一の物理ネットワークにサブネット化を適用することはできません。


サブネット化とは

サブネット化」は、大規模なインターネットワークにおいて、限られた 32 ビットの IPv4 アドレス空間を最大限活用し、経路制御テーブルの大きさを縮小する方法です。どのようなアドレスクラスの場合も、サブネット化によってホストアドレス空間の一部をネットワークアドレスに割り当て、ネットワーク数を増やすことができます。新規のネットワークアドレスに割り当てられるホストアドレス空間の部分を、「サブネット番号」と言います。

IPv4 アドレス空間を有効活用できることのほかに、サブネット化には管理上の利点もいくつかあります。ネットワークの数が増えるに伴って、経路制御はきわめて複雑になってきます。たとえば、小規模の組織なら、個々のローカルネットワークにクラス C の番号を割り当てることができます。しかし、組織が成長するにつれて、多数の異なるネットワーク番号を管理することは、非常に複雑な作業になってきます。このような場合の改善策の 1 つとして、組織内の主要部門に対してそれぞれクラス B のネットワーク番号を割り当てる方法が考えられます。たとえば、エンジニアリング部門に 1 つのクラス B ネットワーク、運営部門に別のクラス B を割り当てるということが可能です。その上で、サブネット化によって得られたネットワーク番号を使用して、個々のクラス B ネットワークをさらに多くのネットワークに分割できます。これによって、ルーター間でやりとりしなければならない経路制御情報の量も減少します。

IPv4 アドレス用のネットワークマスクの作成

サブネット化プロセスの一環として、ネットワーク全体の「ネットマスク」を選択する必要があります。ネットマスクは、ホストアドレス空間の中で、どの位置の何個のビットがサブネット番号を表し、どの位置の何個のビットがホスト番号を表すかを決定します。完全な IPv4 アドレスは 32 ビットで構成されることを思い出してください。ホストアドレス空間を表すために使用できるビット数は、アドレスクラスによって異なりますが、最大 24 ビット、最小 8 ビットです。ネットマスクは netmasks データベース内に指定します。

サブネットの使用を予定している場合は、TCP/IP を構成する前にネットマスクを決定する必要があります。ネットワーク構成の一環としてオペレーティングシステムをインストールすることを予定している場合は、Oracle Solaris インストールプログラムは、ネットワークのネットマスクを指定するよう求めます。

「IPv4 アドレス指定スキーマの設計」 に説明されているとおり、32 ビットの IP アドレスは、ネットワーク部とホスト部で構成されています。32 ビットは 4 個のバイトに分かれます。各バイトは、ネットワーククラスに応じて、ネットワーク番号かホスト番号のどちらかに割り当てられます。

たとえば、クラス B の IPv4 アドレスでは、左側の 2 バイトがネットワーク番号に割り当てられ、右側の 2 バイトがホスト番号に割り当てられます。クラス B の IPv4 アドレス 172.16.10 では、右側の 2 バイトをホストに割り当てることができます。

サブネット化を行う場合は、ホスト番号に割り当てるバイトの中の一部のビットを、サブネットアドレスとして使用する必要があります。たとえば、ホストアドレス空間が 16 ビットであれば、65,534 個のホストのアドレス指定が可能です。3 番目のバイトをサブネットアドレス用に使用して、4 番目のバイトをホストアドレス用に使用するとすれば、最大 254 のネットワークのアドレスと、それぞれについて最大 254 ずつのホストのアドレスを指定できます。

ホストアドレスのバイトのどのビットがサブネットアドレスに使用され、どのビットがホストアドレスに使用されるかは、「サブネットマスク」によって決まります。サブネットマスクは、バイト中のどのビットをサブネットアドレス用とするかを選択するために使用します。ネットマスクのビットは連続していなければなりませんが、バイトの境界に整列している必要はありません。

ネットマスクは、ビット単位の論理 AND 演算子を使用することによって、IPv4 アドレスに適用できます。この演算によって、アドレスのネットワーク番号とサブネット番号の位置が選択されます。

ネットマスクは、2 進数で表現できます。2 進数と 10 進数は計算機を使用して換算できます。次の例では、ネットマスクの 10 進数形式と 2 進数形式の両方を示してあります。

ネットマスク 255.255.255.0 を IPv4 アドレス 172.16.41.101 に適用すると、結果の IPv4 アドレスは 172.16.41.0 になります。

172.16.41.101 & 255.255.255.0 = 172.16.41.0

2 進数形式では、この演算は次のようになります。

10000001.10010000.00101001.01100101 (IPv4 アドレス)

次の論理積 (AND) をとります。

11111111.11111111.11111111.00000000 (IPv4 ネットマスク)

これでシステムは、ネットワーク番号 172.16.41 をネットワーク番号 172.16 の代わりに検索します。ネットワークのネットワーク番号が 172.16.41 である場合、システムはこの番号をチェックし、検出します。IPv4 アドレス空間の 3 番目のバイトには最大 254 個の値を割り当てることができるので、サブネット化によって、254 個のネットワーク用のアドレス空間を作ることができます。サブネット化を使用しなければ、ネットワークは 1 つだけです。

ネットワークを 2 つだけ追加するためのアドレス空間を確保する場合は、次のようなサブネットマスクを使用します。

255.255.192.0

このネットマスクの結果は次のようになります。

11111111.11111111.1100000.00000000

この結果、まだ 14 ビットはホストアドレス用に使用できます。全桁 0 と全桁 1 は予約済みなので、少なくとも 2 ビットをホスト番号用として確保する必要があります。

/etc/inet/netmasks ファイル

ネットワークで NIS または LDAP を実行している場合、これらのネームサービスのサーバーに netmasks データベースが格納されます。ローカルファイルをネームサービスとして使用するネットワークの場合、この情報は /etc/inet/netmasks ファイル内に格納されます。


注 –

BSD ベースのオペレーティングシステムと互換性を確保するため、/etc/netmasks ファイルは /etc/inet/netmasks へのシンボリックリンクとなっています。


次のコード例に示すのは、クラス B ネットワーク用のサンプルの /etc/inet/netmasks ファイルです。


例 10–4 クラス B ネットワーク用の /etc/inet/netmasks ファイル


 # The netmasks file associates Internet Protocol (IPv4) address
 # masks with IPv4 network numbers.
 #
 # 	network-number	netmask
 #
 # Both the network-number and the netmasks are specified in
 # “decimal dot” notation, e.g:
 #
 #        128.32.0.0   255.255.255.0
 192.168.0.0  255.255.255.0

/etc/netmasks ファイルが存在しない場合は、テキストエディタで作成してください。構文は次のとおりです。

network-number	netmask-number

詳細は、netmasks(4) のマニュアルページを参照してください。

ネットマスク番号を作成するときは、ISP または Internet Registry から割り当てられたネットワーク番号 (サブネット番号ではない) とネットマスク番号を、/etc/inet/netmasks ファイルに入力します。各サブネットマスクはそれぞれ単独の行に入れてください。

次に例を示します。


128.78.0.0	    255.255.248.0

/etc/inet/hosts ファイルには、ネットワーク番号のシンボリック名も入力できます。こうすることによって、ネットワーク番号の代わりにこれらのネットワーク名をコマンドへのパラメータとして使用できます。