TCP/IP がルータに求める第 1 の必要条件は、 「ネットワークインタフェース」 で説明したように、マシンが少なくとも 2 つのネットワークインタフェースを備えていなければならないということです。ネットワークインタフェースのどれか 1 つが使用可能な状態にあれば、ルータは自動的に RDISC プロトコルと RIP プロトコルで「情報交換」します。これらのプロトコルは、絶えずネットワーク上でのルータの状態を追跡し、ネットワーク上のホストにルータを通知します。
ルータを物理的にネットワークにインストールしてしまったら、 「ローカルファイルモードの場合のホストの構成方法」 の説明に従って、ルータをローカルファイルモードで働くように構成します。これで、ネットワーク構成サーバがダウンしても、ルータが確実にブートされるようになります。ホストと違って、ルータには構成を要するインタフェースが 2 つあるということを忘れないでください。
ルータは、複数のネットワーク間のインタフェースを提供するものなので、ルータの各ネットワークインタフェースカードに、それぞれ一意な名前と IP アドレスを割り当てる必要があります。これで、各ルータは、その一次ネットワークインタフェースのホスト名と IP アドレスに加えて、増設した各ネットワークインタフェースについて少なくとも 1 つずつ、一意な名前と IP アドレスを持つことになります。
ルータとして構成したりマシンでスーパーユーザになり、次のようにします。
インストールされている各ネットワークインタフェースについて、/etc/hostname.interface ファイルを作成します。
たとえば、hostname.ie0 と hostname.ie1 を作成します (詳細は、「/etc/hostname.interface ファイル」を参照してください)。
対応するインタフェース用として選択したホスト名を各ファイルに入力します。
たとえば、hostname.ie0 ファイルに timbuktu という名前を入力し、hostname.ie1 ファイルに timbuktu-201という名前を入力します。どちらのインタフェースも同じマシンに置かれることになります。
各インタフェースのホスト名と IP アドレスを、/etc/inet/hosts に入力します。
例:
192.9.200.20 timbuktu #interface for network 192.9.200 192.9.201.20 timbuktu-201 #interface for network 192.9.201 192.9.200.9 gobi 192.9.200.10 mojave 192.9.200.110 saltlake 192.9.200.12 chilean |
インタフェース timbuktu と timbuktu-201 は、同じマシンにあります。timbuktu-201 のネットワークアドレスが、 timbuktu とは異なる点に注意してください。これは、ネットワーク 192.9.201 のメディアが timbuktu-201 ネットワークインタフェースに接続されるのに対し、ネットワーク 192.9.200 のメディアは timbuktu インタフェースに接続されるからです。
サブネット化したネットワークにルータを接続する場合は、/etc/inet/netmasks を編集して、ローカルネットワーク番号 (たとえば 129.9.0.0) と、関連のネットマスク番号 (たとえば 255.255.255.0) を入力します。
あるマシンがホストかルータかを決定するのは、マシンのブート時に実行される /etc/rc2.d/S69inet 起動スクリプトです。この決定に伴って、ルーティングプロトコル (RIP と RDISC) を、ルータモードで実行するかホストモードで実行するかも決まります。
/etc/rc2.d/S69inet スクリプトは、次の 2 つの条件が満たされているとき、マシンがルータであると判断します。
/etc/hostname.interface ファイルが 2 つ以上ある
ifconfig コマンドにより、複数のインタフェースが "up" として構成されている (ifconfig(1M) のマニュアルページを参照してください)。
インタフェースが 1 つしか見つからない場合は、このスクリプトはそのマシンがホストであると判断します。「ルータの両方のネットワークインタフェースの構成」を参照してください。/etc/hostname.interface ファイル以外の方法で構成されているインタフェースは、考慮の対象にされません。
起動スクリプトは、次に、マシン上でルーティングプロトコル (RIP または RDISC) を起動するか、それとも静的ルーティングを使用するかを決める必要があります。
ホストがディスクレスクライアントかネットワーククライアントである場合は、単に、ネットワーク上のルータを /etc/defaultrouter に追加するだけですみます (「/etc/defaultrouter ファイル」を参照してください)。すると、唯一の静的なデフォルトルートがルーティングテーブルに組み込まれます。この条件下では、ホストは動的ルーティングプロトコル (RIP や RDISC など) を実行しません。
ディスクレスクライアントまたはネットワーククライアントに、強制的に動的ルーティングプロトコルを選択させるには、/etc/defaultrouter ファイルが空であることが必要です。使用する動的ルーティングの種類は、次の基準に従って選択されます。
/usr/sbin/in.rdisc プログラムが存在する場合は、起動スクリプトは in.rdisc を起動する。すると、ネットワーク上で RDISC を実行しているすべてのルータが、ホストからのすべての RDISC 照会に応答するようになる。少なくとも 1 つのルータが応答すれば、ホストはルーティングプロトコルとして RDISC を選択する。
ネットワークルータが RDISC を実行していないか、または RDISC 照会に対する応答が失敗した場合は、ホストでの in.rdisc は終了する。そして、ホストは in.routed を起動し、その結果 RIP が実行される。
/etc/hostname.interface ファイルが 1 つだけのマシン (デフォルトではホスト) を、強制的にルータにすることができます。そのためには、/etc/gateways という名前のファイルを作成し、それを空のままにしておきます。これは、PPP リンクを構成することに決めた場合は、特に重要です。これについては、「ルーティングに関する考慮事項」を参照してください。
デフォルトでは、TCP/IP は、複数のネットワークインタフェースを持つマシンをすべてルータとみなします。しかし、ルータをマルチホームホストに変更することもできます。マルチホームホストとは、複数のネットワークインタフェースを持っているが、ルーティングプロトコルの実行も IP パケットの転送もしないマシンのことです。一般に、次のような種類のマシンはマルチホームホストとして構成します。
NFS サーバ、特に大規模なデータセンタは、複数のネットワークに接続することによって、多数のユーザ間でファイルを共有できるようになります。この種のサーバはルーティングテーブルを備えている必要はありません。
データベースサーバは、NFS サーバの場合と同じ目的で複数のネットワークインタフェースを持つことにより、多数のユーザに資源を提供できます。
ファイアウォールゲートウェイは、企業のネットワークとインターネットなどの公共ネットワークとの間の接続を提供するマシンです。管理者は、セキュリティの手段としてファイアウォールを設定します。ファイアウォールとして構成されたホストは、自己に接続されているネットワーク相互間でのパケットの受け渡しを行いません。その一方で、許可されたユーザに対しては、通常どおり、ftp や rlogin などの標準 TCP/IP サービスを提供します。
TCP/IP は、複数のネットワークインタフェースを持つマシンのすべてをルータとみなすので、それをマルチホームホストに変えるには、いくつかの操作が必要になります。
マルチホームホストにしたいマシンでスーパーユーザになり、次のことを行います。
マシンにインストールされている追加の各ネットワークについて、/etc/hostname.interface ファイルを 1 つずつ作成します。
次のようにタイプします。
% touch /etc/notrouter
これで、/etc/notrouter と呼ばれる空のファイルが作成されます。
マシンをリブートします。
マシンをリブートすると、起動スクリプトは /etc/notrouter ファイルの有無を確認します。このファイルが存在する場合は、起動スクリプトは、in.routed -s も in.rdisc -r も実行せず、また、ifconfig により "up" として構成されているインタフェースでは、いっさい IP の転送を行いません。これは、/etc/gateway ファイルが存在しているかどうかに関係なく行われます。これで、マシンはマルチホームホストになります。
スペース節約モードでは、デフォルトの送信経路だけを含むテーブルがホストに提供されます。デフォルトでは、スペース節約モードをオフにした状態で、ホストで in.routed が実行されます。
フルルーティングテーブル (これは、構成に誤りのあるルータを排除するための保護を強化します) をホストに提供する必要がない場合は、スペース節約モードをオンにします。そのためには、/etc/rc2.d/S69inet 起動スクリプトの中の次の行を編集します。
/usr/sbin/in.routed -q
これを次のように変更します。
/usr/sbin/in.routed -q -S
ルータの信頼性に関連した理由により、ホストに RDISC を使用させたくない場合があります。RDISC を止めるには、ホストの /usr/sbin/in.rdisc の名前を、何か別の名前、たとえば /usr/sbin/in.rdisc.saved に変更し、そしてホストをリブートします。
ホストにおいて、RDISC ではなく RIP の自動選択が確実に働く場合は、ネットワーク内のルータ (特に RDISC を実行するもの) でも確実に働かなければなりません。
RDISC を実行するルータがほかにないときに、Solaris ルータを 1 つインストールすると、デフォルトにより、そのルータに接続されるすべてのホストがそのルータだけに依存することになります。そのネットワーク上のホストが他のルータも使用できるようにするには、新しいルータで RDISC をオフにします。そのためには、そのルータの /usr/bin/in.rdisc ファイルの名前を別の名前に変更し、ルータをリブートします。