ネットワーク管理の第 2 の段階では、ネットワークを設定します。ここで行う作業は、ネットワークの物理部分を形成するハードウェアの組み立てと、TCP/IP の構成です。この章では、TCP/IP の構成方法を次の事項に分けて説明します。
ネットワーク上の各マシンについてのホスト構成モードの決定
ネットワークのサブネットマスクの設定 (オプション)
ローカルファイルモードで実行されるマシン上での TCP/IP の構成
ネットワーク構成サーバーの構成
ネットワーククライアントモードで実行されるマシン上での TCP/IP の構成
ネットワーク用に選択したネームサービスに基づくネットワークデータベースの編集
ネームサービススイッチファイルの構成
TCP/IP ソフトウェアを構成する前に、以下のことをしておく必要があります。
ネットワーク設計者の場合は、ネットワークトポロジを設計します。(詳細は、「ネットワークトポロジ」を参照してください)。
インターネットのアドレス指定機関からネットワーク番号を入手します。( 「ネットワーククラス」を参照してください)。
設計したトポロジに従ってネットワークハードウェアを組み立て、ハードウェアが動作することを確認します。(ハードウェアのマニュアルと、 「ネットワークトポロジ」を参照してください)。
ネットワークインタフェースとルーターが必要とする構成ソフトウェアがあれば、それを実行します。(ルーターについては、 第 3 章「ネットワークの計画」と第 5 章「ルーターの構成」を参照。購入したネットワークインタフェースをマシンにインストールしてある場合は、ソフトウェア構成要件についてそのインタフェースのマニュアルを参照してください)。
ネットワークに対する IP アドレス指定スキーマの計画を立てます。これには、必要に応じてサブネットアドレス指定も含まれます。(「IP アドレス指定スキーマの設計」を参照してください)。
ネットワークに含まれるすべてのマシンに、IP 番号とホスト名を割り当てます。(「IP アドレス指定スキーマの設計」を参照してください)。
ネットワークでどのネームサービス、つまり NIS、NIS+、DNS、またはローカルファイルのどれを使用するかを決定します。(『Solaris ネーミングの管理』を参照してください)。
必要なら、ネットワークで使用するドメイン名を選択します。(『Solaris ネーミングの管理』を参照してください)。
予定しているネットワーク上の少なくとも 1 台のマシンにオペレーティングシステムをインストールします。『Solaris のインストール (上級編)』を参照してください。
ネットワーク管理者が行う主要な作業の 1 つに、ホストとルーター (必要な場合) で実行できるように TCP/IP を構成する作業があります。これらのマシンは、2 つの情報源から構成情報を入手するように設定できます。それは、ローカルマシン上のファイルと、ネットワーク内の他のマシンにあるファイルです。構成情報には次のものがあります。
マシンのホスト名
マシンの IP アドレス
マシンが所属するドメイン名
デフォルトルーター
マシンのネットワークで使用しているネットマスク
TCP/IP 構成情報をローカルファイルから入手するマシンの状態を、ローカルファイルモードで稼動していると言います。TCP/IP 構成情報をリモートマシンから入手するマシンの状態を、ネットワーククライアントモードで稼動していると言います。
ローカルファイルモードで実行するマシンは、TCP/IP 構成ファイルをローカルに持っている必要があります。これらのファイルについては、「TCP/IP 構成ファイル」で説明します。このマシンが専用のディスクを持っていることが望ましいのですが、不可欠というわけではありません。
ほとんどのサーバーはローカルファイルモードで実行します。主な必要条件は次のとおりです。
ネットワーク構成サーバー
NFS サーバー
NIS、NIS+、または DNS のサービスを提供するネームサーバー
メールサーバー
また、ルーターはローカルファイルモードで実行する必要があります。
印刷サービス専用として機能するマシンは、ローカルファイルモードで実行する必要はありません。個々のホストをローカルファイルモードで実行する方がよいかどうかは、ネットワークの規模によって異なります。
ネットワークがきわめて小さい場合は、個々のホストのファイルを管理する作業は比較的簡単です。しかし、数百のホストから成るネットワークの場合は、そのネットワークがいくつかの管理サブドメインに分割されていたとしても、この作業は困難なものとなります。したがって、規模の大きいネットワークの場合は、ローカルファイルモードを使用しても一般に効率は上がりません。ただし、ルーターとサーバーはそれぞれ自身で構成されるものなので、ローカルファイルモードで構成する必要があります。
ネットワーク構成サーバーは、ネットワーククライアントモードで構成されているホストに、TCP/IP 構成情報を提供するマシンです。この種のサーバーは、次の 3 つのブートプロトコルをサポートしています。
RARP - 逆アドレス解決プロトコル (RARP) は、既知のイーサネットアドレス (48 ビット) を IP アドレス (32 ビット) にマッピングします。つまり、ARP と逆のことを行います。ネットワーク構成サーバーで RARP を実行すると、ネットワーククライアントモードで実行されているホストが、各自の IP アドレスと TCP/IP 構成ファイルをサーバーから入手できるようになります。RARP サービスは、in.rarpd デーモンを使って使用可能にできます。詳細は、in.rarpd(1M) のマニュアルページを参照してください。
TFTP - 簡易ファイル転送プロトコル (TFTP) は、リモートマシン間でファイルを転送するアプリケーションです。in.tftpd デーモンが TFTP サービスを実施し、その結果、ネットワーク構成サーバーとそれぞれのネットワーククライアントとの間のファイル転送が可能になります。
bootparams - bootparams プロトコルは、ディスクレスクライアントが必要とするブート用パラメータを提供します。このサービスを実施するのは rpc.bootparamd デーモンです。
ネットワーク構成サーバーは、NFS ファイルサーバーとしても使用できます。
ホストのどれかをネットワーククライアントとして構成する場合は、ネットワーク内のマシンの少なくとも 1 つをネットワーク構成サーバーとして構成する必要があります。ネットワークをサブネット化する場合は、ネットワーククライアントを持つ各サブネットについて、ネットワーク構成サーバーが少なくとも 1 つは必要です。
ネットワーク構成サーバーから自己の構成情報を入手するホストの状態を、ネットワーククライアントモードで「稼動中」であると言います。ネットワーククライアントとして構成したマシンでは、TCP/IP 構成ファイルのローカルコピーは不要です。
ネットワーククライアントモードを使用すると、大規模ネットワークの管理が大幅に簡素化されます。個々のホストで行う構成作業が最小限の量で済み、ネットワーク上のすべてのマシンが確実に同じ構成標準に従ったものとなります。
完全なスタンドアロンシステムからディスクレスマシンやデータレスマシンに至るまで、すべての種類のコンピュータについて、ネットワーククライアントマシンを構成できます。ルーターとサーバーもネットワーククライアントモードで構成できますが、これらのマシンではローカルファイルモードの方がよい選択です。ルーターとサーバーは、できる限り自給自足型にしておかねばなりません。
システムをディスクレスブートに設定する方法は、『Solaris のシステム管理 (第 1 巻)』で説明しています。
システムは高い柔軟性を備えているため、すべてをローカルホストモードに構成したり、すべてをネットワーククライアントモードに構成するような、どちらか一方に限定する必要はありません。そのよい例がルーターとサーバーで、これらは常にローカルモードで構成するのが最適です。ホストについては、必要に応じてローカルモードとネットワーククライアントモードを任意に組み合わせて使用できます。
図 4-1 は、ネットワーク番号が 192.9.200 である架空のネットワークのホストを示しています。このネットワークにはネットワーク構成サーバーが 1 つあり、それは sahara というマシンです。このマシンは、ディスクレスクライアント ahaggar にサービスを提供します。tenere と nubian の 2 つのマシンはそれぞれ独自にディスクを持っており、ローカルファイルモードで動作します。マシン faiyum もディスクを持っていますが、これはネットワーククライアントモードで動作します。
最後に、マシン timbuktu はルーターとして構成されています。このマシンには 2 つのネットワークインタフェースが組み込まれており、それぞれの名前は、ネットワーク 192.9.200 用が timbuktu で、ネットワーク 192.9.201 用が timbuktu-201 です。どちらのネットワークも、組織ドメイン deserts.worldwide.com に含まれています。このドメインは、ローカルファイルをネームサービスとして使用します。
この章の中のほとんどの例では、図 4-1 に示すネットワークにもとづいて説明しています。
ネットワーク上の各マシンは、以下に示す TCP/IP 構成ファイルとネットワークデータベースから自己の TCP/IP 構成情報を入手します。
/etc/hostname.interface ファイル
/etc/nodename ファイル
/etc/defaultdomain ファイル
/etc/defaultrouter ファイル (オプション)
hosts データベース
netmasks データベース (オプション)
Solaris インストールプログラムは、インストール処理の一環として上記のファイルを作成します。これらのファイルは、「TCP/IP 構成ファイル」の説明に従って手作業で編集することもできます。hosts データベースと netmasks データベースは、Solaris ネットワークで使用できるネームサービスが読み取るネットワークデータベースのうちの 2 つです。ネットワークデータベースの概念については、「ネットワークデータベースと nsswitch.conf ファイル」で詳しく説明します。
このファイルは、ローカルホスト上のネットワークインタフェースを定義します。ローカルマシンには、/etc/hostname.interface ファイルが少なくとも 1 つ必要です。このファイルは、Solaris インストールプログラムが作成します。ファイル名中の interface には、一次ネットワークインタフェースのデバイス名が入ります。
このファイルにはエントリが 1 つだけ入っています。それは、ネットワークインタフェースに結び付いているホスト名または IP アドレスのどちらかです。たとえば、ahaggar というマシンの一次ネットワークインタフェースが smc0 であるとすると、/etc/hostname.interface ファイルの名前は /etc/hostname.smc0 となり、このファイルには ahaggar というエントリが入っています。
マシンが複数のネットワークインタフェースを持っている場合は、2 番目以降のネットワークインタフェース用の /etc/hostname.interface ファイルを、ネットワーク管理者が追加作成する必要があります。これらのファイルはテキストエディタを使って作成します。Solaris インストールプログラムは、追加のファイルは作成しません。
たとえば、図 4-1 に示したマシン timbuktu について考えてみましょう。このマシンは 2 つのネットワークインタフェースを持っており、ルーターとして動作します。一次ネットワークインタフェース le0 は、ネットワーク 192.9.200 に接続されています。その IP アドレスは 192.9.200.70 で、ホスト名は timbuktu です。Solaris 一次ネットワークインタフェース用として、/etc/hostname.le0 というファイルを作成し、そのファイルにホスト名 timbuktu を入れます。
第 2 のネットワークインタフェースは le1 で、これはネットワーク 192.9.201 に接続されています。このインタフェースは物理的にはマシン timbuktu にインストールされていますが、別の IP アドレスを持つ必要があります。したがって、ネットワーク管理者が、このインタフェース用に /etc/hostname.le1 ファイルを作成する必要があります。このファイルに入れるエントリは、ルーター名の timbuktu-201 です。
このファイルにはエントリが 1 つ入っています。それは、ローカルマシンのホスト名です。たとえば、マシン timbuktu では、/etc/nodename ファイルには timbuktu というエントリが入ります。
このファイルにはエントリが 1 つ入っています。それは、ローカルホストのネットワークが属している管理ドメインの完全指定のドメイン名です。ネットワーク管理者は、この名前を Solaris インストールプログラムに指示したり、また後日にこのファイルを編集することができます。
図 4-1 では、ネットワークはドメイン deserts.worldwide に属しており、このドメインは .com ドメインとして分類されています。したがって、/etc/defaultdomain には deserts.worldwide.com というエントリが入ります。ネットワークドメインについての詳細は、『Solaris ネーミングの管理』を参照してください。
このファイルには、直接ネットワークに接続されている各ルーターについてのエントリが入っています。このエントリは、ネットワーク間のルーターとして機能するネットワークインタフェースの名前です。
図 4-1 で、ネットワークインタフェース le1 は、マシン timbuktu をネットワーク 192.9.201 に接続しています。このインタフェースには、timbuktu-201 という一意な名前が付いています。したがって、ネットワーク 192.9.201 にあってローカルファイルモードで構成されているマシンについては、/etc/defaultrouter に timbuktu-201 という名前が エントリとして入ります。
hosts データベースには、ネットワーク上のマシンの IP アドレスとホスト名が入っています。NIS、NIS+、DNS のどれかのネームサービスを使用している場合は、hosts データベースは、ホスト情報用として指定されているデータベースに格納されます。たとえば、NIS+ を実行するネットワークでは、hosts データベースはホストテーブルに格納されます。
ネームサービスとしてローカルファイルを使用している場合は、hosts データベースは /etc/inet/hosts ファイルに格納されます。このファイルには、一次ネットワークインタフェースのホスト名と IP アドレス、マシンに備わっている他のネットワークインタフェース、このマシンが認識している必要がある他のネットワークアドレスが入っています。
BSD ベースのオペレーティングシステムとの互換性を確保するために、/etc/hosts ファイルは /etc/inet/hosts へのシンボリックリンクになっています。
/etc/inet/hosts ファイルには、次のような基本構文を使用します (構文についての詳細は、hosts(4) のマニュアルページを参照してください)。
IP-address hostname [nicknames] [#comment]
IP-address には、ローカルホストが認識する必要のある各インタフェースの IP アドレスが入ります。
hostname には、設定時にマシンに割り当てたホスト名と、ローカルホストが認識しなければならない増設ネットワークインタフェースに割り当てたホスト名が入ります。
[nickname] は、ホストのニックネームが入ります (省略可能)。
[# comment] は、コメントを入れることができます (省略可能)。
Solaris インストールプログラムを実行すると、プログラムは初期 /etc/inet/hosts ファイルを作成します。このファイルには、ローカルホストにとって必要最小限のエントリ (ループバックアドレス、IP アドレス、ホスト名) が入っています。
たとえば、図 4-1 に示したマシン ahaggar については、Solaris インストールプログラムは次のような /etc/inet/hosts ファイルを作成します。
127.0.0.1 localhost loghost #loopback address 192.9.200.3 ahaggar #host name |
例 4-1 では、IP アドレス 127.0.0.1 はループバックアドレスです。ループバックアドレスはローカルマシンが使用する予約済みネットワークインタフェースで、これによりプロセス間通信が可能になり、ローカルマシンは自分自身にパケットを送ることができます。「ifconfig コマンド」で説明するように、ループバックアドレスは、構成とテストのために ifconfig コマンドにより使用されます。TCP/IP ネットワーク上のすべてのマシンは、IP アドレス 127.0.0.1 を、ローカルホスト用に使用する必要があります。
IP アドレス 192.9.200.3 と名前 ahaggar は、ローカルマシンのアドレスとホスト名です。これらは、マシンの一次ネットワークインタフェースに割り当てられます。
マシンには複数のネットワークインタフェースを持つものがあり、これらはルーターまたはマルチホームホストとなります。マシンに接続される増設ネットワークインタフェースごとに、専用の IP アドレスとそれに割り当てる名前が必要です。ルーターまたはマルチホームホストを構成するときは、この情報を手作業でルーターの /etc/inet/hosts ファイルに追加する必要があります。(ルーターとマルチホームホストの設定についての詳細は、第 5 章「ルーターの構成」を参照してください)。
例 4-2 は、図 4-1 に示したマシン timbuktu 用の /etc/inet/hosts ファイルです。
127.0.0.1 localhost loghost 192.9.200.70 timbuktu #This is the local host name 192.9.201.10 timbuktu-201 #Interface to network 192.9.201 |
timbuktu は、この 2 つのインタフェースを使ってネットワーク 192.9.200 と 192.9.201 を、ルーターとして接続します。
NIS、NIS+、DNS の各ネームサービスは、ホスト名とアドレスを 1 つまたは複数のサーバーで維持します。これらのサーバーは、各サーバーのネットワーク上のすべてのホストとルーター (もしあれば) に関する情報を含む hosts データベースを保持しています。これらのサービスについては、『Solaris ネーミングの管理』を参照してください。
ローカルファイルをネームサービスとして使用するネットワークでは、ローカルファイルモードで実行されているマシンは、各自の /etc/inet/hosts ファイルを調べて、ネットワーク上の他のマシンの IP アドレスとホスト名を入手します。したがって、/etc/inet/hosts ファイルには以下の事項が含まれている必要があります。
ループバックアドレス
ローカルマシン (一次ネットワークインタフェース) の IP アドレスとホスト名
このマシンに接続している増設ネットワークインタフェース (もしあれば) の IP アドレスとホスト名
ローカルネットワーク上のすべてのホストの IP アドレスとホスト名
このマシンが認識する必要のあるルーター (もしあれば) の IP アドレスとホスト名
このマシンでホスト名を使って参照したいマシンの IP アドレス
例 4-3 に、ローカルファイルモードで実行されるマシンである tenere の /etc/inet/hosts ファイルを示しています。このファイルには、192.9.200 ネットワーク上のすべてのマシンの IP アドレスとホスト名が含まれているという点に注意してください。また、192.9.200 ネットワークを 192.9.201 ネットワークに接続するためのネットワークインタフェースの IP アドレスと、インタフェース名 timbuktu-201 も含まれています。
ネットワーククライアントとして構成されているマシンは、ローカル /etc/inet/hosts ファイルから、自己のループバックアドレスと IP アドレスを入手します。
ネットワーク構成の一環として netmasks データベースを編集する必要があるのは、ネットワークをサブネット化してある場合だけです。netmasks データベースは、各ネットワークとそれに対応するサブネットマスクのリストで構成されています。
サブネットを作成するときは、新規の各ネットワークはそれぞれ独立した物理ネットワークであることが必要です。単一の物理ネットワークにサブネット化を適用することはできません。
サブネット化は、限られた 32 ビット IP アドレス指定空間を最大限に活用し、大規模ネットワークでのルーティングテーブルの大きさを減らすための方法の 1 つです。どのようなアドレスクラスの場合も、サブネット化によってホストアドレス空間の一部をネットワークアドレスに割り当て、ネットワーク数を増やすことができます。新規のネットワークアドレスに割り当てられるホストアドレス空間の部分を、サブネット番号と言います。
IP アドレス空間を有効活用できることのほかに、サブネット化には管理上の利点もいくつかあります。ネットワークの数が増えるに伴って、ルーティングはきわめて複雑になってきます。たとえば、小規模の組織なら、個々のローカルネットワークにクラス C の番号を割り当てることができます。しかし、組織が成長するにつれて、多数の異なるネットワーク番号を管理することは、非常に複雑な作業になってきます。このような場合の改善策の 1 つとして、組織内の主要部門に対してそれぞれクラス B のネットワーク番号を割り当てる方法が考えられます。たとえば、エンジニアリング部門に対して 1 つ、オペレーション部門に対して 1 つというように番号を割り当てます。その上で、サブネット化によって得られたネットワーク番号を使って、個々のクラス B ネットワークをさらに多くのネットワークに分割できます。これによって、ルーター間でやりとりしなければならないルーティング情報の量も減少します。
サブネット化工程の一環として、ネットワーク全体のネットマスクを選択する必要があります。ネットマスクは、ホストアドレス空間の中で、どの位置の何個のビットがサブネット番号を表し、どの位置の何個のビットがホスト番号を表すかを決定します。完全な IP アドレスは 32 ビットで構成されることを思い出してください。ホストアドレス空間を表すために使用できるビット数は、アドレスクラスによって異なりますが、最大 24 ビット、最小 8 ビットです。ネットマスクは netmasks データベース内に指定します。
サブネットの使用を予定している場合は、TCP/IP を構成する前にネットマスクを決定する必要があります。その後で、「ネットワークにサブネットを追加する方法」に示す手順を実施します。ネットワーク構成の一環としてオペレーティングシステムをインストールすることを予定している場合は、Solaris インストールプログラムは、ネットワークのネットマスクを指定するよう求めます。
「IP アドレス番号の構成部分」で説明したように、32 ビットの IP アドレスは、ネットワーク部とホスト部で構成されています。32 ビットは 4 個のバイトに分かれます。各バイトは、ネットワーククラスに応じて、ネットワーク番号かホスト番号のどちらかに割り当てられます。
たとえば、クラス B の IP アドレスでは、左側の 2 バイトがネットワーク番号に割り当てられ、右側の 2 バイトがホスト番号に割り当てられます。クラス B の IP アドレス 129.144.41.10 の場合、右側の 2 バイトをホストに割り当てることができます。
サブネット化を行う場合は、ホスト番号に割り当てるバイトの中の一部のビットを、サブネットアドレスとして使用する必要があります。たとえば、ホストアドレス空間が 16 ビットであれば、65,534 個のホストのアドレス指定が可能です。3 番目のバイトをサブネットアドレス用に使用して、4 番目のバイトをホストアドレス用に使用するとすれば、最大 254 のネットワークのアドレスと、それぞれについて最大 254 ずつのホストのアドレスを指定できます。
ホストアドレスのバイトのどのビットがサブネットアドレスに使用され、どのビットがホストアドレスに使用されるかは、サブネットマスクによって決まります。サブネットマスクは、バイトの中のどのビットをサブネットアドレス用とするかを選択するために使用します。ネットマスクのビットは連続していなければなりませんが、バイトの境界に整列している必要はありません。
ネットマスクは、ビット単位の論理積演算子を使って IP アドレスに適用できます。この演算によって、アドレスのネットワーク番号とサブネット番号の位置が選択されます。
ネットマスクを説明するには、2 進数表現の視点から見るのが最も簡単です。2 進数と 10 進数は計算機を使って換算できます。以下の例では、ネットマスクの 10 進数形式と 2 進数形式の両方を示してあります。
ネットマスク 255.255.255.0 を IP アドレス 129.144.41.101 に適用した場合、結果の IP アドレスは 129.144.41.0 になります。
129.144.41.101 & 255.255.255.0 = 129.144.41.0
2 進数形式では、この演算は次のようになります。
11111111.11111111.11111111.00000000 (ネットマスク)
AND
10000001.10010000.00101001.01100101 (IP アドレス)
これで、システムは、ネットワーク番号 129.144 の代わりにネットワーク番号 129.144.41 を捜すようになります。129.144.41 の番号を持つネットワークがあれば、システムはそれを見つけ出します。IP アドレス空間の 3 番目のバイトには最大 254 個の値を割り当てることができるので、サブネット化によって、254 個のネットワーク用のアドレス空間を作ることができます。サブネット化を使用しなければ、ネットワークは 1 つだけです。
ネットワークを 2 つだけ追加するためのアドレス空間を確保したいとすれば、次のようなサブネットマスクを使用します。
255.255.192.0
このネットマスクの結果は次のようになります。
11111111.11111111.1100000.00000000
ホストアドレス用に使用できるビットが、まだ 14 ビット残っています。全桁 0 と全桁 1 は予約済みなので、少なくとも 2 ビットをホスト番号用として確保する必要があります。
ネットワークで NIS または NIS+ を実行する場合は、これらのネームサービスを提供するサーバーは netmasks データベースを保持しています。ローカルファイルをネームサービスとして使用するネットワークの場合は、この情報は /etc/inet/netmasks ファイル内に格納されます。
BSD ベースのオペレーティングシステムとの互換性を確保するために、/etc/netmasks ファイルが /etc/inet/netmasks へのシンボリックリンクとなっています。
例 4-4 に示すのは、クラス B ネットワークの場合のサンプルの /etc/inet/netmasks ファイルです。
## The netmasks file associates Internet Protocol (IP) address # masks with IP 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 129.144.0.0 255.255.255.0 |
このファイルが存在しない場合は、次の構文を使って作成してください。
network-number netmask-number
詳細は、netmasks(4) のマニュアルページを参照してください。
ネットマスク番号を作成するときは、InterNIC から割り当てられたネットワーク番号 (サブネット番号ではない) とネットマスク番号を、/etc/inet/netmasks ファイルに入力します。各サブネットマスクはそれぞれ単独の行に入れてください。
例:
128.78.0.0 255.255.248.0 |
/etc/inet/hosts ファイルに、ネットワーク番号の記号名を入力することもできます。そうすれば、ネットワーク番号の代わりにこれらのネットワーク名を、コマンドへのパラメータとして使用できます。
サブネットを使用していないネットワークをサブネット化するには、次の手順を使用します。
新しいサブネットトポロジについて決定します。これには、ルーターに関する考慮事項や、サブネット上でのホストの位置などが含まれます。
すべてのサブネットアドレスとホストアドレスを割り当てます。
手作業で TCP/IP を構成している場合は、/etc/inet/netmasks ファイルを修正します。そうでない場合は、Solaris インストールプログラムにネットマスクを与えます。
すべてのホストで、新しいホストアドレスを反映するように /etc/inet/hosts ファイルを修正します。
ネットワークデータベースは、ネットワークを構成するために必要な情報を提供するファイルです。ネットワークデータベースには次のものがあります。
hosts
netmasks
ethers
bootparams
protocols
services
networks
構成工程の一環として、ネットワークをサブネット化する場合は、hosts データベースと netmasks データベースを編集します。マシンをネットワーククライアントとして構成するには、bootparams と ethers の 2 つのネットワークデータベースを使用します。残りのデータベースはオペレーティングシステムが使用するもので、編集が必要になることはほとんどありません。
ネットワークデータベースではありませんが、nsswitch.conf ファイルも、関連のネットワークデータベースとともに構成する必要があります。nsswitch.conf は、特定のマシンに、NIS、NIS+、DNS、ローカルファイルのどのネームサービスを使用するかを指定します。
ネットワークデータベースがとる形式は、ネットワーク用として選択するネームサービスの種類によって異なります。たとえば、hosts データベースには、少なくとも、ローカルマシンとそのマシンに直接接続されているネットワークインタフェースのホスト名と IP アドレスだけは入っています。しかし、ネットワークで使用するネームサービスの種類によっては、その他の IP アドレスとホスト名も hosts データベースに入ることがあります。
DNS のブートファイルとデータファイルは、直接的にはネットワークデータベースに対応していません。
図 4-2 に、これらのネームサービスにより使用される hosts データベースの形式を示します。
表 4-1 に、ネットワークデータベースと、各ネットワークデータベースに対応する、ローカルファイル、NIS+ および NIS のネームサービスファイルを示します。
表 4-1 ネットワークデータベースと対応するネームサービスファイル
ネットワークデータベース |
ローカルファイル |
NIS+ のテーブル |
NIS のマップ |
---|---|---|---|
/etc/inet/hosts |
hosts.ord_dir |
hosts.byaddr hosts.byname |
|
/etc/inet/netmasks |
netmasks.ord_dir |
netmasks.byaddr |
|
/etc/ethers |
ethers.ord_dir |
ethers.byname ethers.byaddr |
|
/etc/bootparams |
bootparams.ord_dir |
bootparams |
|
/etc/inet/protocols |
protocols.ord_dir |
protocols.byname protocols.bynumber |
|
/etc/inet/services |
services.ord_dir |
services.byname |
|
/etc/inet/networks |
networks.ord_dir |
networks.byaddr networks.byname |
本書では、ローカルファイルをネームサービスとして使用するネットワークで使用されるものとして、ネットワークデータベースの説明を進めます。hosts データベースに関する情報は、「hosts データベース」を、netmasks データベースに関する情報は、「netmasks データベース」を。NIS、DNS、NIS+ でのネットワークデータベースの対応付けについては、『Solaris ネーミングの管理』を参照してください。
/etc/nsswitch.conf ファイルは、ネットワークデータベースの検索順序を定義します。Solaris インストールプログラムは、インストール中にネットワーク管理者が指定するネームサービスに基づいて、ローカルマシン用のデフォルトの /etc/nsswitch.conf ファイルを作成します。"None" オプションを指定して、ローカルファイルをネームサービスとして使用することを指示した場合は、nsswitch.conf ファイルは例 4-5 のようになります。
# /etc/nsswitch.files: # # An example file that could be copied over to /etc/nsswitch.conf; # it does not use any naming service. # # "hosts:" and "services:" in this file are used only if the # /etc/netconfig file contains "switch.so" as a # nametoaddr library for "inet" transports. passwd: files group: files hosts: files networks: files protocols: files rpc: files ethers: files netmasks: files bootparams: files publickey: files # At present there isn't a 'files' backend for netgroup; the # system will figure it out pretty quickly, # and won't use netgroups at all. netgroup: files automount: files aliases: files services: files sendmailvars: files
このファイルについての詳細は、nsswitch.conf(4) のマニュアルページに説明されています。基本構文は次のとおりです。
database name-service-to-search
database フィールドには、オペレーティングシステムが検索するさまざまの種類のデータベースを指定できます。たとえば、passwd や aliases などのようにユーザーに影響を与えるデータベースでも、またネットワークデータベースでも指定できます。ネットワークデータベースの場合の name-service-to-search パラメータの値は、files、nis、nis+ のどれかです (hosts データベースの場合は、検索するネームサービスとして dns も値に指定できます)。nis+ と files のように、複数のネームサービスを指定することもできます。
例 4-5 にサーチオプションとして示されているのは、files だけです。したがって、ローカルマシンは、/etc ディレクトリと /etc/inet ディレクトリに入っているファイルから、ネットワークデータベース情報のほか、セキュリティと自動マウントに関する情報を入手します。
/etc ディレクトリには、Solaris インストールプログラムが作成した nsswitch.conf ファイルが入っています。そのほかに、次のネームサービス用のテンプレートファイルも入っています。
nsswitch.files
nsswitch.nis
nsswitch.nis+
あるネームサービスから別のネームサービスに変更したい場合は、対応するテンプレートを nsswitch.conf にコピーすることができます。また、nsswitch.conf ファイルを選択的に編集して、個々のデータベースを見つけるために検索するデフォルトのネームサービスを変更することができます。
たとえば、NIS を実行するネットワークでは、ディスクレスクライアントについての nsswitch.conf ファイルの変更が必要な場合があります。bootparams データベースと ethers データベースの検索順序では、最初のオプションとして files、次に nis が指定されている必要があります。例 4-6 に、正しい検索順序を示します。
## /etc/nsswitch.conf:# . . passwd: files nis group: file nis # consult /etc "files" only if nis is down. hosts: nis [NOTFOUND=return] files networks: nis [NOTFOUND=return] files protocols: nis [NOTFOUND=return] files rpc: nis [NOTFOUND=return] files ethers: files [NOTFOUND=return] nis netmasks: nis [NOTFOUND=return] files bootparams: files [NOTFOUND=return] nis publickey: nis netgroup: nis automount: files nis aliases: files nis # for efficient getservbyname() avoid nis services: files nis sendmailvars: files
ネームサービススイッチについての詳細は、『Solaris ネーミングの管理』 を参照してください。
bootparams データベースには、ネットワーククライアントモードでブートするように構成されているディスクレスのクライアントとマシンが使用する情報が入っています。ネットワーククライアントを持つネットワークの場合は、このデータベースの編集が必要になります。(手順については、「ネットワーククライアントの構成」を参照してください)。このデータベースは、/etc/bootparams ファイルに入力した情報をもとにして構築されます。
このデータベースの構文についての詳細は、bootparams(4) のマニュアルページで説明されています。基本構文は次のとおりです。
machine-name file-key-server-name:pathname
個々のディスクレスまたはネットワーククライアントマシンについて、エントリが 1 つずつあります。各エントリに入っている情報は、クライアント名、キーのリスト、サーバー名、パス名です。
各エントリの最初の項目は、クライアントマシンの名前です。その次は、キー、サーバー名、パス名をタブ文字で区切ったリストです。最初の項目以外は、すべてオプションです。このデータベースには、すべてのクライアントに一致するワイルドカードエントリを含めることができます。次に例を示します。
myclient root=myserver : /nfsroot/myclient ¥ swap=myserver : /nfsswap//myclient ¥ dump=myserver : /nfsdump/myclient |
この例の dump=: は、ダンプファイルを捜さないようにディスクレスホストに指示します。
ディスクレスクライアントをサポートするように bootparams データベースを編集するときには、ほとんどの場合、ワイルドカードエントリを使用する方が便利です。次のようにしてワイルドカードエントリを使用します。
* root=server:/path dump=:
アスタリスク (*) ワイルドカードは、このエントリが、bootparams データベース内で明示的に指定されていないすべてのクライアントに適用されることを示します。
ethers データベースは、/etc/ethers ファイルに入力した情報をもとにして構築されます。このデータベースは、ホスト名をイーサネットアドレスに関連付けます。ethers ネットワークの作成が必要になるのは、RARP デーモンを実行する場合、つまりネットワーククライアントまたはディスクレスマシンを構成する場合だけです。
RARP は、このファイルを使って、イーサネットアドレスを IP アドレスにマップします。RARP デーモン in.rarpd を実行するときは、ethers ファイルを設定し、このデーモンを実行するすべてのホストでこのファイルを維持して、ネットワークに対する変更が反映されるようにする必要があります。
このデータベースの構文についての詳細は、ethers(4) のマニュアルページに説明されています。基本構文は次のとおりです。
Ethernet-address hostname #comment
Ethernet-address は、ホストのイーサネットアドレスです。
hostname は、ホストの公式名です。
#comment は、ファイル内のエントリに付加できる任意の注意書きです。
イーサネットアドレスは装置の製造元から提供されます。マシンの電源を入れたときにイーサネットアドレスが表示されない場合は、ハードウェアのマニュアルを調べてください。
ethers データベースにエントリを追加するときは、ホスト名が、ニックネームではなく、hosts データベース内の一次名に一致していることを確かめてください (例 4-8)。
8:0:20:1:40:16 fayoum 8:0:20:1:40:15 nubian 8:0:20:1:40:7 sahara # This is a comment 8:0:20:1:40:14 tenere
残りのネットワークデータベースについては、編集が必要になることはほとんどありません。
networks データベースは、ネットワーク名をネットワーク番号に関連付けて、一部のアプリケーションが番号の代わりに名前を使用し表示できるようにします。networks データベースは、/etc/inet/networks ファイルの中の情報をもとにして作られます。このデータベースには、このネットワークがルーターを介して接続されるすべてのネットワークの名前が入っています。
初期 networks データベースは、Solaris インストールプログラムが設定します。このデータベースを更新する必要があるのは、既存のネットワークトポロジに新たなネットワークを追加した場合だけです。
/etc/inet/networks の詳しい構文は、networks(4) マニュアルページで説明されています。基本構文は次のとおりです。
network-name network-number nickname(s) # comment
network-name は、ネットワークの公式名です。
network-number は、InterNIC から割り当てられた番号です。
nickname は、ネットワークの認識のために使用されるその他の名前です。
#comment は、ファイル内のエントリに付加したい任意の注意書きです。
networks ファイルの管理は大変重要です。netstat プログラムは、このデータベース内の情報を使って状態テーブルを作成します。
例 4-9 に /etc/networks ファイルのサンプルを示します。
#ident "@(#)networks 1.4 92/07/14 SMI" /* SVr4.0 1.1 */ # # The networks file associates Internet Protocol (IP) network numbers with network names. The format of this file is: # # network-name network-number nicnames . . . # The loopback network is used only for intra-machine communication #loopback 127 # Internet networks # arpanet 10 arpa # Historical ucb-ether 46 ucbether # # local networks eng 193.9.0 #engineering acc 193.9.1 #accounting prog 193.9.2 #programming |
protocols データベースには、システムにインストールされている TCP/IP プロトコルとそれぞれの番号のリストが入っています。このデータベースは、Solaris インストールプログラムが自動的に作成します。このファイルについて管理作業が必要になることはほとんどありません。
protocols データベースには、システムにインストールされている TCP/IP プロトコルの名前が含まれています。詳しい構文は、protocols(4) マニュアルページに記載されています。例 4-10 に、/etc/inet/protocols ファイルの例を示します。
# # Internet (IP) protocols # ip 0 IP # internet protocol, pseudo protocol number icmp 1 ICMP # internet control message protocol tcp 6 TCP # transmission control protocol udp 17 UDP # user datagram protocol |
services データベースには、TCP サービスと UDP サービスの名前と、それぞれのよく知られているポート番号のリストが入っています。このデータベースは、ネットワークサービスを呼び出すプログラムにより使用されます。Solaris インストールプログラムは、services データベースを自動的に作成します。このデータベースについては、通常は管理作業が必要になることはありません。
詳しい構文は、services(4) のマニュアルページに記載されています。 例 4-11 に、典型的な /etc/inet/services ファイルからの抜粋を示します。
# # Network services # echo 7/udp echo 7/tcp discard 9/udp sink null discard 11/tcp daytime 13/udp daytime 13/tcp netstat 15/tcp ftp-data 20/tcp ftp 21/tcp telnet 23/tcp time 37/tcp timeserver time 37/udp timeserver name 42/udp nameserver whois 43/tcp nickname |
オペレーティングシステムのソフトウェアをインストールするときに、同時にネットワークのソフトウェアもインストールされます。そのときに、いくつかの IP 構成パラメータを対応するファイルに格納して、ブート時に読み取れるようにしておく必要があります。
ここで必要な手順は、単にネットワーク構成ファイルを作成または編集するということだけです。構成情報がどのようにマシンのカーネルに対して使用可能にされるかは、構成ファイルがローカルに格納されているか (ローカルファイルモード)、それともネットワーク構成サーバーから構成ファイルを入手するか (ネットワーククライアントモード) によって異なります。
ネットワーク構成時に指定するパラメータには、次のものがあります。
すべてのマシンの各ネットワークインタフェースの IP アドレス
ネットワーク上の各マシンのホスト名。ホスト名は、ローカルファイルまたはネームサービスデータベースに入力できる
マシンが設置されている、NIS、NIS+、または DNS のドメイン名 (該当する場合)
デフォルトのルーターアドレス。これを指定するのは、各ネットワークにルーターが 1 つしか接続していないような単純なネットワークトポロジの場合か、またはルーターが RDISC (Router Discovery Protocol) や RIP (Routing Information Protocol) などのルーティングプロトコルを実行しない場合だけである。(これらのプロトコルについての詳細は、第 5 章「ルーターの構成」を参照してください)
サブネットマスク (サブネットを持つネットワークの場合に限り必要)
ここでは、ローカル構成ファイルを作成および編集する手順を説明しています。ネームサービスデータベースの処理については、『Solaris ネーミングの管理』を参照してください。
ローカルファイルモードで動作するマシン上の TCP/IP を構成するための手順は、次のとおりです
スーパーユーザーになり、/etc ディレクトリに移動します。
マシンのホスト名を /etc/nodename ファイルに入力します。
たとえば、ホストの名前が tenere であるとすれば、このファイルに tenere と入力します。
各ネットワークインタフェースについて、/etc/hostname.interface という名前のファイルを作成します
(一次ネットワークインタフェースについては、Solaris インストールプログラムが自動的にこのファイルを作成します)。
詳細は、「/etc/hostname.interface ファイル」を参照してください。
/etc/hostname.interface ファイルに、インタフェース IP アドレスかインタフェース名を入力します。
たとえば、hostname.ie1 という名前のファイルを作成し、ホストのインタフェースの IP アドレスかまたはホスト名を入力します。
/etc/inet/hosts ファイルを編集して、以下の内容を追加します。
ローカルマシンに増設したネットワークインタフェースに割り当てた IP アドレスと、各インタフェースのホスト名
一次ネットワークインタフェースとループバックアドレスについてのエントリは、すでに Solaris インストールプログラムにより作成されています。
/usr ファイルシステムを NFS マウントする場合は、ファイルサーバーの IP アドレス
Solaris インストールプログラムは、ローカルマシン用のデフォルトの /etc/inet/host を作成します。このファイルが存在していない場合は、「hosts データベース」の説明に従って作成してください。
完全指定のドメイン名を、/etc/defaultdomain ファイルに入力します。
たとえば、ホスト tenere がドメイン deserts.worldwide.com に所属しているとします。その場合は、/etc/defaultdomain に deserts.worldwide.com を入力します。詳細は、 「/etc/defaultdomain ファイル」を参照してください。
ルーターの名前を、/etc/defaultrouter に入力します。
詳細は、「/etc/defaultrouter ファイル」を参照してください。
デフォルトのルーターの名前とその IP アドレスを、 /etc/inet/hosts に入力します。
上記以外にも、使用できるルーティングオプションがいくつかあります。 「ネットワーククライアントモードの場合のホストの構成方法」中の、ルーティングオプションについての説明を参照してください。これらのオプションは、ローカルファイルモード構成にも適用できます。
ネットワークをサブネット化する場合は、ネットワーク番号とネットマスクを、/etc/inet/netmasks ファイルに入力します。
NIS または NIS+ サーバーを設定してある場合は、サーバーとクライアントが同じネットワーク上にあれば、サーバー上の該当のデータベースにネットマスク情報を入力できます。
いくつかのホストをネットワーククライアントとして構成することを予定している場合は、ネットワーク上のマシンの少なくとも 1 つは、ネットワーク構成サーバーとして構成する必要があります (方法については、 「ネットワーク構成サーバー」を参照してください)。
ネットワーク構成サーバーの設定には、次のような操作が必要です。
ネットワーク構成デーモンが動作するようにします。
in.tftpd
in.rarpd
rpc.bootparamd
構成サーバー上のネットワーク構成ファイルを編集し保守します。
「ネットワーク構成サーバーの設定方法」では、ネットワーク構成サーバーをすでにローカルファイルモード用として設定してあるものとします。
スーパーユーザーになり、予定しているネットワーク構成サーバーのルートディレクトリに移動します。
ディレクトリ /tftpboot を作成することにより、in.tftpd デーモンが動作するようにします。
# mkdir /tftpboot
これで、マシンは、TFTP、bootparams、RARP のサーバーに構成されます。
手順 2. で作成したディレクトリに対するシンボリックリンクを作成します。
# ln -s /tftpboot/. /tftpboot/tftpboot
inetd.conf ファイルにある tftp の行を有効にします。
/etc/inetd.conf のエントリが次のようになっていることを確認してください。
tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot
これによって、/tftpboot に格納されたファイル以外のファイルを inettftpd() で検索できなくなります。
hosts データベースを編集して、ネットワーク上のすべてのクライアントのホスト名と IP アドレスを追加します。
ethers データベースを編集して、ネットワーククライアントモードで実行するネットワーク上のすべてのホストについてエントリを作成します。
bootparams データベースを編集します。
「bootparams データベース」を参照してください。ワイルドカードエントリを作成するか、または、ネットワーククライアントモードで実行するすべてのホストについてエントリを作成します。
サーバーをリブートします。
ディスクレスクライアント、インストールサーバー、ブートサーバーを設定する方法については、『Solaris のインストール (上級編)』を参照してください。
ネットワーククライアントは、各自の構成情報をネットワーク構成サーバーから入手します。したがって、あるホストをネットワーククライアントとして構成するときは、このネットワーク用として、ネットワーク構成サーバーが少なくとも 1 つは設定されていることを確認してください。
ネットワーククライアントモードで構成する必要のある各ホストについて、次のことを行います。
スーパーユーザーになります。
ディレクトリを調べて、/etc/nodename ファイルがあるかどうかを確認します。ある場合は、このファイルを削除してください。
/etc/nodename を削除すると、システムは hostconfig プログラムを使用して、ネットワーク構成サーバーから、ホスト名、ドメイン名、ルーターアドレスを入手するようになります。「ネットワーク構成手順」を参照してください。
/etc/hostname.interface ファイルが存在していない場合は、それを作成します。
そのファイルが空であることを確認してください。/etc/hostname.interface ファイルが空であれば、システムはネットワーク構成サーバーから IP アドレスを入手します。
/etc/inet/hosts ファイルに、ループバックネットワークインタフェースのホスト名と IP アドレス以外の内容が入っていないことを確認します。
(「ループバックアドレス」を参照してください)。このファイルには、ローカルマシン (一次ネットワークインタフェース) の IP アドレスとホスト名が入っていてはいけません。
ただし、ディスクレスクライアント (NFS マウントされたルートファイルシステムを持つマシン) の場合は、クライアントのルートファイルシステム (ほとんどの場合ネットワーク構成サーバ) を提供するサーバーの名前と IP アドレスを入力します。
/etc/defaultdomain ファイルがあるかどうかを調べます。ある場合は、このファイルを削除します。
hostconfig プログラムは、自動的にドメイン名を設定します。hostconfig プログラムが設定したドメイン名を上書きしたいときは、/etc/defaultdomain に代わりのドメイン名を入力します。
クライアントの /etc/nsswitch.conf の中の検索パスが、ネットワークのネームサービスの要件を満たしていることを確認します。
ネットワーク上にルーターが 1 つしかなく、ネットワーク構成サーバーが自動的にそのルーターの名前を指定するようにしたい場合は、ネットワーククライアントが /etc/defaultrouter ファイルを持っていないことを確認します。
次の手順に従って、ネットワーク構成サーバーが設定したデフォルトのルーターの名前を上書きします。
ネットワークに複数のルーターがある場合は、ネットワーククライアント上に /etc/defaultrouter を作成し、それを空のままにしておきます。
/etc/defaultrouter を作成し、それを空のままにしておくと、2 つの動的ルーティングプロトコル、つまり、ICMP RDISC (Router Discovery Protocol) か RIP (Routing Information Protocol) のどちらか一方が実行されます。システムは、まず in.rdisc プログラムを実行します。このプログラムは、ルーター検出プロトコルを実行しているルーターを捜します。該当するルーターが見つかった場合は、in.rdisc はそのまま実行を続け、RDISC プロトコルを実行するルーターを追跡し続けます。
RDISC プロトコルに応答しているルーターがないと判断した場合は、システムは RIP を使用し、in.routed デーモンを実行してルーターを追跡します。
各ネットワーククライアントマシン上のファイルを編集し終わったら、ネットワーク構成サーバーで次の作業を行います。
bootparams データベースにそのホストのエントリを追加します。
操作を簡単にするために、bootparams データベースには、各ホストのエントリを個別に入力する代わりに、ワイルドカードを入力することができます。その例については、「bootparams データベース」を参照してください。
telnet、ftp、rlogin などのサービスは、inetd デーモンによって開始されます。このデーモンは、ブート時に自動的に実行されます。ネームサービスの順序を nsswitch.conf の中で指定したように、TCP/IP のサービスは、/etc/inetd.conf ファイルの中で inetd -t フラグを使って構成できます。
たとえば、inetd を使用して、着信したすべての TCP 接続 (リモートログインと telnet) の IP アドレスをログに記録できます。ログ記録を行うには、実行中の inetd を終了し、次のように入力します。
# /usr/sbin/inetd -t -s
t スイッチは、inetd に TCP 接続トレースを開始させます。
inetd(1M) と inetd.conf(4) のマニュアルページを参照してください。
ネームサービスについての詳細は、『Solaris ネーミングの管理』と『Solaris ネーミングの設定と構成』を参照してください。
以下の情報は参考用です。ネットワークのブート処理の概要を示しています。構成時にどのようなことが起こるかを全体的にとらえるのに役立ちます。
起動スクリプトの名前は、Solaris リリースごとに変更されることがあります。
ホストでオペレーティングシステムを起動します。
カーネルが、ブート処理の一部として /sbin/init を実行します。
/sbin/init が、/etc/rcS.d/S30rootusr.sh 起動スクリプトを実行します。
/etc/rcS.d/S30rootusr.sh 起動スクリプトが、ディスクレスとデータレスの操作のための最小限のホスト構成とネットワーク構成の確立など、いくつかのシステム起動処理を行います。また、このスクリプトは、/usr ファイルシステムをマウントします。
ローカルデータベースファイルに、必要な構成情報 (ホスト名と IP アドレス) が含まれている場合は、スクリプトはそれを使用します。
ローカルホスト構成ファイル内に必要な情報がない場合は、/etc/rcS.d/S30rootusr.sh は、RARP を使用してホストの IP アドレスを入手します。
ドメイン名、ホスト名、デフォルトのルーターアドレスがローカルファイルに含まれている場合は、マシンはそれらを使用します。ローカルファイルに構成情報が含まれていない場合は、システムは bootparams プロトコルを使用して、ホスト名、ドメイン名、デフォルトのルーターアドレスを入手します。必要な情報が、ホストと同じネットワーク上にあるネットワーク構成サーバーから入手可能でなければなりません。これは、この時点ではまだインターネットワーク通信が存在していないからです。
/etc/rcS.d/S30rootusr.sh が作業を完了し、その他のいくつかのブート手続きが実行されると、次に /etc/rc2.d/S69inet が実行されます。このスクリプトは、ネームサービス (NIS、NIS+、または DNS) の開始の前に完了しておく必要のある起動作業を実行します。これらの作業には、IP の構成、ドメイン名のルーティングと設定などがあります。
S69inet の作業が完了すると、/etc/rc2.d/S71rpc が実行されます。このスクリプトは、NIS、NIS+、DNS のどれかのネームサービスを起動します。
/etc/rc2.d/S71rpc の実行の後で、/etc/rc2.d/S72inetsvc が実行されます。このスクリプトは、ネームサービスの存在の有無に応じて異なるサービスを起動します。S72inetsvc は inetd デーモンも起動します。このデーモンは、telnet などのユーザーサービスを管理します。
ブート処理についての詳細は、『Solaris のシステム管理 (第 1 巻)』を参照してください。