TCP/IP とデータ通信

ルーターの構成

TCP/IP がルーターに求める第 1 の必要条件は、「ネットワークインタフェース」 で説明したように、マシンが少なくとも 2 つのネットワークインタフェースを持っていなければならないということです。ネットワークインタフェースのどれか 1 つが使用可能な状態にあれば、ルーターは自動的に RDISC プロトコルと RIP プロトコルで「情報交換」します。これらのプロトコルは、絶えずネットワーク上でのルーターの状態を追跡し、ネットワーク上のホストにルーターを通知します。

ルーターを物理的にネットワークにインストール後、「ローカルファイルモードの場合のホストの構成方法」 の説明に従って、ルーターをローカルファイルモードで動作ように構成します。これで、ネットワーク構成サーバーがダウンしても、ルーターが確実にブートされるようになります。ホストと違って、ルーターには構成を要するインタフェースが 2 つあるということを忘れないでください。

ルーターの両方のネットワークインタフェースの構成

ルーターは、複数のネットワーク間のインタフェースを提供するものなので、ルーターの各ネットワークインタフェースカードに、それぞれ一意な名前と IP アドレスを割り当てる必要があります。これで、各ルーターは、その一次ネットワークインタフェースのホスト名と IP アドレスに加えて、増設した各ネットワークインタフェースについて少なくとも 1 つずつ、一意な名前と IP アドレスを持つことになります。

マシンをルーターとして構成する方法

ルーターとして構成したいマシンでスーパーユーザーになり、次のようにします。

  1. インストールされている各ネットワークインタフェースについて、/etc/hostname.interface ファイルを作成します。

    たとえば、hostname.ie0hostname.ie1 を作成します (詳細は、/etc/hostname.interface ファイル」を参照してください)。

  2. 対応するインタフェース用として選択したホスト名を各ファイルに入力します。

    たとえば、hostname.ie0 ファイルに timbuktu という名前を入力し、hostname.ie1 ファイルに timbuktu-201という名前を入力します。どちらのインタフェースも同じマシンに置かれることになります。

  3. 各インタフェースのホスト名と 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

    インタフェース timbuktutimbuktu-201 は、同じマシンにあります。timbuktu-201 のネットワークアドレスが、 timbuktu とは異なる点に注意してください。これは、ネットワーク 192.9.201 のメディアが timbuktu-201 ネットワークインタフェースに接続されるのに対し、ネットワーク 192.9.200 のメディアは timbuktu インタフェースに接続されるからです。

  4. サブネット化したネットワークにルーターを接続する場合は、/etc/inet/netmasks を編集して、ローカルネットワーク番号 (たとえば 129.9.0.0) と、関連のネットマスク番号 (たとえば 255.255.255.0) を入力します。

マシンがルーターかどうかを決定する方法

あるマシンがホストまたはルーターのどちらであるかを決定するのは、マシンのブート時に実行される /etc/rc2.d/S69inet 起動スクリプトです。この決定に伴って、ルーティングプロトコル (RIP と RDISC) を、ルーターモードで実行するかホストモードで実行するかも決まります。

/etc/rc2.d/S69inet スクリプトは、次の 2 つの条件が満たされているとき、マシンがルーターであると判断します。

インタフェースが 1 つしか見つからない場合は、このスクリプトはそのマシンがホストであると判断します。「ルーターの両方のネットワークインタフェースの構成」を参照してください。/etc/hostname.interface ファイル以外の方法で構成されているインタフェースは、判断の対象にされません。

ルーティングプロトコルの自動選択

起動スクリプトは、次に、マシン上でルーティングプロトコル (RIP または RDISC) を起動するか、それとも静的ルーティングを使用するかを決める必要があります。

ホストで静的ルーティングを選択するには

ホストがディスクレスクライアントかネットワーククライアントである場合は、単に、ネットワーク上のルーターを /etc/defaultrouter に追加するだけですみます (/etc/defaultrouter ファイル」を参照してください)。すると、唯一の静的なデフォルトルートがルーティングテーブルに組み込まれます。この条件下では、ホストは動的ルーティングプロトコル (RIP や RDISC など) を実行しません。

ホストで動的ルーティングを選択するには

ディスクレスクライアントまたはネットワーククライアントに、強制的に動的ルーティングプロトコルを選択させるには、/etc/defaultrouter ファイルが空であることが必要です。使用する動的ルーティングの種類は、次の基準に従って選択されます。

マシンを強制的にルーターにする方法

/etc/hostname.interface ファイルを 1 つだけ持つマシン (デフォルトではホスト) を、強制的にルーターにすることができます。そのためには、/etc/gateways という名前のファイルを作成し、それを空のままにしておきます。これは、PPP リンクを構成することに決めた場合は、特に重要です。詳細は、「ルーティングに関する考慮事項」を参照してください。

マルチホームホストの作成

デフォルトでは、TCP/IP は、複数のネットワークインタフェースを持つマシンをすべてルーターとみなします。しかし、ルーターをマルチホームホストに変更することもできます。マルチホームホストとは、複数のネットワークインタフェースを持っているけれども、ルーティングプロトコルの実行も IP パケットの転送もしないマシンのことです。一般に、次のような種類のマシンはマルチホームホストとして構成します。

TCP/IP は、複数のネットワークインタフェースを持つマシンのすべてをルーターとみなすので、それをマルチホームホストに変えるには、いくつかの操作が必要になります。

マルチホームホストの作成方法

マルチホームホストにしたいマシンでスーパーユーザーになり、次のことを行います。

  1. マシンにインストールされている追加の各ネットワークについて、/etc/hostname.interface ファイルを 1 つずつ作成します。

  2. 次のようにタイプします。

    % touch /etc/notrouter

    これで、/etc/notrouter と呼ばれる空のファイルが作成されます。

  3. マシンをリブートします。

マシンをリブートすると、起動スクリプトは /etc/notrouter ファイルの有無を確認します。このファイルが存在する場合は、起動スクリプトは、in.routed -sin.rdisc -r も実行せず、また、ifconfig により "up" として構成されているインタフェースでは、いっさい IP の転送を行いません。これは、/etc/gateway ファイルが存在しているかどうかに関係なく行われます。これで、マシンはマルチホームホストになります。

スペース節約モードをオンにする方法

スペース節約モードでは、デフォルトの送信経路だけを含むテーブルがホストに提供されます。デフォルトでは、スペース節約モードをオフにした状態で、ホストで in.routed が実行されます。

フルルーティングテーブル (これは、構成に誤りのあるルーターを排除するための保護を強化します) をホストに提供する必要がない場合は、スペース節約モードをオンにします。そのためには、/etc/rc2.d/S69inet 起動スクリプトの中の次の行を編集します。

/usr/sbin/in.routed -q

これを次のように変更します。

/usr/sbin/in.routed -q -S

ホストでの ICMP Router Discovery を止める方法

ルーターの信頼性に関連した理由により、ホストに RDISC を使用させたくない場合があります。RDISC を止めるには、ホストの /usr/sbin/in.rdisc の名前を、何か別の名前、たとえば /usr/sbin/in.rdisc.saved に変更し、ホストをリブートします。

ルーターでの ICMP Router Discovery を止める方法

ホストにおいて、RDISC ではなく RIP の自動選択が確実に動作する場合は、ネットワーク内のルーター (特に RDISC を実行するもの) でも確実に動作しなければなりません。

RDISC を実行するルーターがほかにないときに、Solaris ルーターを 1 つインストールすると、デフォルトにより、そのルーターに接続されるすべてのホストがそのルーターだけに依存することになります。そのネットワーク上のホストが他のルーターも使用できるようにするには、新しいルーターで RDISC をオフにします。そのためには、そのルーターの /usr/bin/in.rdisc ファイルの名前を別の名前に変更し、ルーターをリブートします。