(57)【特許請求の範囲】
【請求項１】
ネットワーク通信を支援するようセグメントに接続されたインタフェースをそれぞれ有する複数のルータによって形成されたネットワーク内のサブネット競合を自動的に処理する方法であって、
各セグメントに一意インタフェース識別子の値を割り当てることによって上記ルータのインタフェースに接続された全てのセグメントを識別する工程と、
一意インタフェース識別子の値を保持する一意インタフェース識別子構造を含むゼロ設定経路制御情報プロトコルのデータ構造を定義する工程と、
上記ゼロ設定経路制御情報プロトコルに基づいて上記ルータのそれぞれに対応する経路表を確立し、上記対応するルータのサブネット対応付けを保持する経路表エントリレコードを定義する工程と、
上記サブネット対応付けのそれぞれに対応するデータフィールドとして上記一意インタフェース識別子構造を含むよう上記経路表エントリレコードのそれぞれをさらに定義する工程と、
各ルータを使用してそのインタフェースに接続された各セグメントに対してサブネット対応データを割り当てるとともに各接続されたセグメントの一意インタフェース識別子値に関連して上記サブネット対応付けを用いて上記経路表の経路表エントリレコードを母集団化する工程と、
上記ルータ間で経路表エントリレコードを交換し、各ルータを使用して上記交換時に受信した経路表エントリレコードと該ルータの経路表内の現在のエントリレコードとを比較して２つ以上のサブネット対応付けが同じである場合を検出してサブネット競合を宣言する工程とを備えているサブネット競合自動処理方法。
【請求項２】
ルータ間で経路表エントリレコードを交換することによってサブネット競合が宣言される場合に通知を行う工程をさらに備えている請求項１記載のサブネット競合自動処理方法。
【請求項３】
上記ゼロ設定経路制御情報プロトコルのデータ構造を経路表エントリレコードが競合の通知を表すか否かを示す状態構造を含むよう定義するとともに、
上記経路表エントリレコードが競合の通知を表すことを示すよう設定された上記状態構造を有する経路表エントリレコードを上記ルータの一つと別の一つとの間で通信することによって、
サブネット競合が宣言された場合に通知を行う工程をさらに備えている請求項１記載のサブネット競合自動処理方法。
【請求項４】
サブネット競合を検出したルータは競合するサブネットに対して新しいサブネット対応データを自動的に割り当てる請求項１記載のサブネット競合自動処理方法。
【請求項５】
上記ゼロ設定経路制御情報プロトコルのデータ構造をサブネット競合が処理される順番の実行記録を保守する順序構造を含むよう定義する工程をさらに備えている請求項１記載のサブネット競合自動処理方法。
【請求項６】
上記ゼロ設定経路制御情報プロトコルのデータ構造をサブネット競合が処理される順番の実行記録を保守する順序構造を含むよう定義する工程と、
上記ルータを使用してサブネット対応付けを自動的に修正し競合の検出を公示するとともに、上記順序構造を利用して最初に公示された修正済みサブネット対応付けと後に公示された修正済みサブネット対応付けとの間の曖昧さを解消する工程とを備えている請求項１記載のサブネット競合自動処理方法。
【請求項７】
上記セグメントはそれぞれデータリンク層アドレスが割り当てられた構成装置を使用して実装されており、一意インタフェース識別子の値は上記標準化されたデータリンク層アドレスに基づいて割り当てられる請求項１記載のサブネット競合自動処理方法。
【請求項８】
上記データリンク層アドレスは標準化された媒体アクセス制御アドレスである請求項７記載のサブネット競合自動処理方法。
【請求項９】
上記各ルータに対応するネットワークアドレス変換表を設け、上記経路表エントリレコードの交換に応じて上記ネットワークアドレス変換表を自動的に更新する工程をさらに備えている請求項１記載のサブネット競合自動処理方法。
【請求項１０】
複数のルータを有し、管理を必要としないコンピュータネットワーク上のあるノードと他のノードとの間で通信するシステムであって、
上記ネットワーク上の各ノードに対応する位置と通信の情報を含み、各ルータによって保守されるデータ対応表を備え、
上記各ノードの情報は
上記データ対応表を保守する第１のルータが上記のノードを参照するための局所名フィールドと、
インタフェースを介してルータがメッセージを送信することにより上記のノードとの通信を可能にする該インタフェースに対応するインタフェースフィールドと、
上記第１のルータに隣接する遠隔ルータが上記のノードを参照するための遠隔名フィールドとを備えており、
上記の各ノードに関する位置と通信の情報に対する変更を検出しその変更を全ての隣接ルータに通知する自動化機構が各ルータに対応して設けられていることを特徴とする通信システム。
【請求項１１】
上記データ対応表はネットワーク上のノードに到達するためにデータが通過しなければならない上記第１のルータに隣接するルータを識別する情報をさらに含んでいる請求項１０記載の通信システム。
【請求項１２】
上記各ルータのデータ対応表は各ノードに関する位置および通信の情報の取得元である隣接ルータを識別する送信ルータアドレスフィールドをさらに備えている請求項１１記載の通信システム。
【請求項１３】
上記各自動化機構は情報パケットを使用して対応付けの変更を通知するものであり、
上記情報パケットは
各ノードの上記送信ルータに対する対応付け情報と、
ノードが上記送信ルータに接続されたセグメント上に位置しないとき、該ノードに到達するためにメッセージが通過しなければならない上記送信ルータに隣接するルータを識別する次ルータフィールドとを含んでいる請求項１２記載の通信システム。
【請求項１４】
管理者が介入することなくネットワーク上のセグメントを識別する方法であって、
第１のルータを使用して第１のネットワークセグメントを識別する工程と、
上記第１のセグメントの識別名を第２のルータに公示する工程と、
上記第２のルータが上記第１のセグメントと同一の識別名を有している時、第２のルータでアドレス競合を検出する工程と、
上記第２のルータを使用して上記第１のルータにアドレス競合を通知する工程と、
上記第１のルータを使用して上記第１のセグメントのアドレスを変更することにより上記第１のセグメントと第２のセグメントを一意的に識別する工程とを備えているセグメント識別方法。
【請求項１５】
上記第１のルータを使用して第１のネットワークセグメントを識別する工程は上記第１のセグメントに対応する経路表エントリを作成する工程である請求項１４記載のセグメント識別方法。
【請求項１６】
上記第１のセグメントの識別名を公示する工程は上記経路表エントリを含む情報パケットを送信する工程である請求項１５記載のセグメント識別方法。
【請求項１７】
上記第１のルータにアドレス競合を通知する工程は上記第１のセグメントに対応する経路表エントリを含む情報パケットを送信する工程を含んでいる請求項１６記載のセグメント識別方法。
【請求項１８】
上記第１のルータにアドレス競合を通知する工程は上記第１のセグメントに対応する経路表エントリ内の状態フィールドの状態を修正する工程を含んでいる請求項１６記載のセグメント識別方法。
【請求項１９】
上記第２のセグメントの識別名を変更する工程をさらに備えている請求項１４記載のセグメント識別方法。
【請求項２０】
上記第１のセグメントの識別名を変更する工程と上記第２のセグメントの識別名を変更する工程は上記ルータが現在のセグメント識別名と以前のセグメント識別名とを区別できるように順序番号を修正する工程である請求項１９記載のセグメント識別方法。
【請求項２１】
コンピュータ読取り可能メモリに組み込まれ、ネットワーク上のホストを識別する経路表エントリデータ構造であって、
ホストを一意的に識別する情報を含んだ一意識別子データフィールドと、
上記ホストのネットワークアドレスを含んだＩＰアドレスデータフィールドと、
少なくとも一つの他のホストが同一のネットワークアドレスを使用していることをルータに通知できるようにアドレス競合情報を含んだ状態データフィールドと、
現在の経路表エントリを同じホストに対応する以前の経路表エントリと区別する情報を含んだ順序番号データフィールドとを備えている経路表エントリ。
【請求項２２】
上記順序番号データフィールドは上記ＩＰアドレスデータフィールドが修正された場合に修正される請求項２１記載の経路表エントリ。
【請求項２３】
上記順序番号データフィールドは上記一意識別子データフィールドが修正された場合に修正される請求項２１記載の経路表エントリ。
【請求項２４】
搬送波に組み込まれ、ネットワーク上のホストを識別する経路表エントリデータ構造であって、
ホストを一意的に識別する情報を含んだ一意識別子データフィールドと、
上記ホストのネットワークアドレスを含んだＩＰアドレスデータフィールドと、
少なくとも一つの他のホストが同一のネットワークアドレスを使用していることをルータに通知できるようにアドレス競合情報を含んだ状態データフィールドと、
現在の経路表エントリを同じホストに対応する以前の経路表エントリと区別する情報を含んだ順序番号データフィールドとを備えている経路表エントリ。
【請求項２５】
上記順序番号データフィールドは上記ＩＰアドレスデータフィールドが修正された場合に修正される請求項２４記載の経路表エントリ。
【請求項２６】
上記順序番号データフィールドは上記一意識別子データフィールドが修正された場合に修正される請求項２４記載の経路表エントリ。
【請求項２７】
コンピュータネットワーク上のルータ間で情報を交換する方法であって、
第１のサブネットワーク内の第１のルータに接続された各セグメントを一意的に識別し、この識別名情報を第１の経路表に格納する工程と、
第２のサブネットワーク内の第２のルータに接続された各セグメントを一意的に識別し、この識別名情報を第２の経路表に格納する工程と、
上記第１のサブネットワークを上記第２のサブネットワークに接続する工程と、
上記経路表エントリを使用して通信され、上記第１のルータに接続されたセグメント上のノードに到達するために上記第２のルータから移動しなければならない経路に関する情報を含んだ第１のルータの経路を第２のルータに公示する工程と、
上記第２の経路表に上記第１のルータによって公示された経路表エントリを増補する工程と、
上記第１のルータに接続された第１のセグメント上の第１のノードが上記第２のルータに接続された第２のセグメント上の第２のノードと同一のアドレスを有している場合に起こるアドレス競合を検出する工程と、
上記アドレス競合情報を含んだ通知を上記第２のルータから上記第１のルータに送信する工程と、
変更後の識別名がネットワーク全体にわたって一意であるよう上記第１のセグメントの識別名を上記第１のルータ上で変更する工程とを備えている情報交換方法。
【請求項２８】
第１のネットワークセグメント上の第１のホストから第２のネットワークセグメント上の第２のホストにメッセージを送信する方法であって、
上記第１のセグメントは少なくとも一つのルータによって上記第２のセグメントから分離されており、
上記第２のホストに上記第１のセグメント上で局所的に定義された第２のホストのメッセージ宛先アドレスである第１の局所定義アドレスを使用して、メッセージを上記第１のホストから第２のホストに宛てる工程と、
上記ルータを使用して上記第２のホストの第１の局所定義アドレスを第２のホストの第１の外部定義アドレスに変換する工程と、
上記メッセージを上記第２のホストの第１の外部定義アドレスで第２のホストに送出する工程とを備えているメッセージ送信方法。
【請求項２９】
上記第２のセグメントは第２のルータに接続されかつ上記第１のルータ、第３のセグメントおよび第２のルータによって上記第１のセグメントから分離されているとともに、上記第２のホストの第１の外部定義アドレスは第１のルータの見地からは外部定義アドレスであり第２のルータの見地からは局所定義アドレスであって、
上記第３のセグメントを通して上記第１のルータから第２のルータへ上記メッセージを送出する工程と、
上記第２のルータを使用して上記第１の外部定義アドレスを第２の外部定義アドレスに変換する工程と、
上記メッセージを上記第２の外部定義アドレスで上記第２のホストに送出する工程とを備えている請求項２８記載のメッセージ送信方法。
【請求項３０】
上記第１のルータの見地からは上記第１のホストのアドレスである第１の外部定義発信元アドレスを上記メッセージとともに上記第１のルータに送出する工程と、
上記第１のルータを使用して上記第１の外部定義発信元アドレスを第１の局所定義発信元アドレスに変換する工程と、
上記第１の局所定義発信元アドレスを上記第２のホストに送出する工程とを備え、
上記第１の局所定義発信元アドレスは第２のホストが上記第１のホストにメッセージを送信するために第１のホストの局所定義宛先アドレスとして使用可能なアドレスである請求項２８記載のメッセージ送信方法。
【請求項３１】
上記第１のルータの見地からは上記第１のホストのアドレスである第１の外部定義発信元アドレスを上記メッセージとともに上記第１のルータに送出する工程と、
上記第１のルータを使用して上記第１の外部定義発信元アドレスを第１の局所定義発信元アドレスに変換する工程と、
上記第２のルータの見地からは外部定義発信元アドレスである上記第１の局所定義発信元アドレスを上記第２のルータに送出する工程と、
上記第２のルータを使用して上記第１のホストの第１の局所定義発信元アドレスを第２の局所定義発信元アドレスに変換する工程と、
上記第２の局所定義発信元アドレスを上記第２のホストに送出する工程とを備え、
上記第２の局所定義発信元アドレスは第２のホストが上記第１のホストにメッセージを送信するために第１のホストの局所定義宛先アドレスとして使用可能なアドレスである請求項２９記載のメッセージ送信方法。
【請求項３２】
第１のサブネットに接続されたノードと第２のサブネットに接続されたノードとの間の通信を上記サブネット間の経路の変化に従って維持するようにネットワークの離散的部分集合であるサブネットをネットワーク上で識別する方法であって、
上記第１のサブネットに接続された第１のルータを使用して該第１のルータに接続されたサブネットに局所的に一意のサブネット識別子を割り当てる工程と、
上記第２のサブネットに接続された第２のルータを使用して該第２のルータに接続されたサブネットに局所的に一意のサブネット識別子を割り当てる工程と、
上記第１のルータを使用して上記第２のルータに接続されたサブネットに対応し第１のルータの見地から局所的に一意の識別子を割り当てる工程と、
上記第２のルータを使用して上記第１のルータに接続されたサブネットに対応し第２のルータの見地から局所的に一意の識別子を割り当てる工程と、
上記第２のルータの見地に基づく上記第１のルータに接続されたサブネットのアドレスを上記第１のルータの見地に基づく対応するアドレスに変換する変換表を第１のルータで保守する工程とを備えているサブネット識別方法。
【請求項３３】
上記第１のルータと上記第２のルータとの間に第３のルータを含む経路が存在するよう上記第１のルータは上記第３のルータに接続されたサブネットに接続されるとともに上記第２のルータは上記第３のルータに接続された別のサブネットに接続されており、
上記第３のルータを使用して該第３のルータに接続された上記サブネットに局所的に一意のサブネット識別子を割り当てる工程と、
上記第１のルータを使用して上記第２のルータに接続された上記サブネットに対応する識別子を割り当てる工程とを備えた請求項３２記載のサブネット識別方法。
【請求項３４】
コンピュータネットワーク上で第１のネットワークセグメントに接続された第１のノードと第２のネットワークセグメントに接続された第２のノードとの間でメッセージを送るコンピュータ読み取り可能媒体上に設けられたデータレコードであって、
ネットワークの個別部分である上記第２のネットワークセグメントを一意的に識別する一意インタフェース識別子フィールドと、
第１のルータの見地から上記第２のセグメントを識別する局所定義サブネット識別子フィールドと、
上記第２のセグメントに接続された第２のルータの見地から第２のセグメントを識別する外部定義サブネット識別子フィールドと、
上記第１のルータの見地から上記第２のルータを識別する送信ルータアドレスフィールドとを備え、
上記第１のノードを発信元とするメッセージを上記第２のノードに送るのに充分な情報を提供するデータレコード。
【請求項３５】
ユーザによる設定を必要としないネットワーク上のノードを識別する方法であって、
上記ノードに関するネットワークアドレスを無作為に選択する工程と、
上記アドレスを上記ネットワーク上の第２のノードに同報通信する工程と、
上記第２のノードのアドレスと上記第１のノードのアドレスを比較する工程と、
上記比較の結果を上記第１のノードに同報通信する工程と、
上記第１のノードのアドレスと上記第２のノードのアドレスが同一の場合に、第１のノードに関して新しいネットワークアドレスを無作為に選択する工程とを備えたノード識別方法。
【請求項３６】
上記ネットワークは第１のルータによって上記第１のノードが第１のセグメント上に位置し上記第２のノードが第２のセグメント上に位置するよう複数のセグメントに分割されており、
上記第１のノードのアドレスを上記第１のルータに同報通信する工程と、
上記第１のノードのアドレスを上記ルータから上記第２のノードまで中継する工程と、
上記比較の結果を上記第１のルータに同報通信する工程と、
上記比較の結果を上記第１のルータから上記第１のノードまで中継する工程とをさらに備えている請求項３５記載のノード識別方法。
【請求項３７】
上記比較の結果を上記第１のルータから上記第１のノードまで中継する工程は上記第１のノードのアドレスを上記ルータ内の参照情報と比較する工程を含んでいる請求項３６記載のノード識別方法。
【請求項３８】
上記第１のノードのアドレスを上記第１のルータから第２のルータに同報通信する工程と、
上記第１のノードのアドレスを上記第２のルータから上記第２のノードに同報通信する工程と、
上記比較の結果を上記第２のノードから上記第２のルータに同報通信する工程と、
上記比較の結果を上記第２のルータから上記第１のルータに同報通信する工程とをさらに備えている請求項３６記載のノード識別方法。
【請求項３９】
上記比較の結果を上記第２のルータから上記第１のルータに同報通信する工程と上記比較の結果を上記第１のルータから上記第１のノードまで中継する工程は上記第１のノードのアドレスを上記ルータ内の参照情報と比較する工程を含んでいる請求項３８記載のノード識別方法。
【請求項４０】
上記第１のノードのアドレスを複数の他のノードに同報通信する工程と、
上記第１のノードのアドレスを上記複数のノードのそれぞれと比較する工程とをさらに備えている請求項３９記載のノード識別方法。
【請求項４１】
上記第１のノードのアドレスを上記第１のルータから複数のルータに同報通信する工程と、
上記第１のノードのアドレスを上記複数のルータのそれぞれから複数のノードに同報通信する工程と、
上記第１のノードのアドレスを上記複数のノードのそれぞれのアドレスと比較する工程とをさらに備えている請求項４０記載のノード識別方法。
【請求項４２】
上記第１のノードおよび第２のノードはホストである請求項３５記載のノード識別方法。
【請求項４３】
上記第１のノードおよび第２のノードはルータである請求項３５記載のノード識別方法。
【請求項４４】
上記ルータは各セグメントを一意的に識別するものである請求項３６記載のノード識別方法。
【請求項４５】
コンピュータネットワークと、
ネットワークアドレスを無作為に選択するアドレスセレクタと、上記ネットワークアドレスを他のネットワークノードに同報通信するネットワークブロードキャスタと、他のネットワークノードからの応答を受信するネットワークレシーバとを備え、上記コンピュータネットワークに接続された第１のネットワークノードと、
上記コンピュータネットワークに接続され、一意のネットワークアドエスを有する第２のネットワークノードとを備え、
上記第２のネットワークノードは、上記第１のノードから上記ネットワークアドレスを受信するネットワークリスナと、上記第１のノードのアドレスを上記第２のノードのアドレスと比較するアドレスコンパレータと、上記コンパレータの結果を上記第１のノードのネットワークリスナに送信するネットワークブロードキャスタとを備えているコンピュータ情報通信装置。
【請求項４６】
上記ネットワークは
上記第１のノードが接続された第１のサブネットワークと、
上記第２のノードが接続された第２のサブネットワークと、
ネットワークアドレス、ネットワークブロードキャスタおよびネットワークリスナを無作為に選択するアドレスセレクタを有するルータとをさらに備えている請求項４５記載のコンピュータ情報通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報ネットワークに関し、特にホストおよびルータがそれ自身ネットワーク設定を自動的に行うことができる改良型ネットワーク設定システムに関する。
【０００２】
【従来の技術】
ネットワークに属する各種家庭用機器および低価格のコンピュータや周辺装置が急増するに伴い、これらのデバイスをネットワーク間で相互接続する要望が高まっている。このようなデバイス群は、ネットワークとの間の頻繁な接続解除や再接続およびネットワークトポロジの頻繁な変更によって特別な動的ネットワークを形成するよう相互接続されることが予想される。このような環境でのネットワーキングはユーザが介入したり管理することなく行われるのが理想である。この新しいネットワーキングのパラダイムを説明するために、“ゼロ設定ネットワーキング”という用語が使用されることがある。
【０００３】
ゼロ設定ネットワーキングは、ネットワークが様々なセグメントを接続する多数のルータから構成されている場合に特に実装し甲斐があることが分かっている。一般的に、ゼロ設定ネットワーキングは以下の特性を満足させる必要がある。
【０００４】
すなわち、
１．管理が不要であること。ネットワーク設定システムはネットワーク機器の設定や管理がない場合でもネットワーキングを可能にする必要がある。この点に関して、いわゆる動的ホスト設定プロトコル（ＤＨＣＰ）、ドメインネームサーバ（ＤＮＳ）およびマルチキャストアドレス動的クライアント割当てプロトコル（ＭＡＤＣＡＰ）は、それぞれ使用可能になる前にサーバを準備あるいは設定する管理者を必要とするという点で不十分である。
【０００５】
２．共存と切替え。あるネットワーク域におけるゼロ設定プロトコルは別のネットワーク域からの非ゼロ設定プロトコルと共存しなければならない場合がある。例えば、ホストは、ネーム−アドレス変換用のゼロ設定プロトコル以外に、ＤＨＣＰなどのＩＰホスト設定用の非ゼロ設定プロトコルを使用している場合がある。そのような管理型プロトコルが存在する場合には、ゼロ設定プロトコルを管理型プロトコルに戻すことが好ましい。このことは、また、ゼロ設定ネットワークの範囲内では同じネットワーク域用にゼロ設定プロトコルと非ゼロ設定プロトコルとが共存できないことを意味している。例えば、ホストがＩＰホスト設定用のゼロ設定プロトコルを使用していると仮定する。その場合、管理者がネットワークにＤＨＣＰサーバを導入すれば、ホストはＤＨＣＰサーバを使用するためにネットワーク設定をやり直さねばならない。管理モードからゼロ設定モードへの逆向きの切替えも必要である。
【０００６】
３．相互運用性。ゼロ設定プロトコルはできる限り既存の管理型プロトコルを基準として最大限の相互運用性を実現する必要がある。
【０００７】
上記の特性はネットワーキングの以下の分野の少なくとも１つと密接に関係している。
【０００８】
１．ＩＰホスト設定。ホストはそのＩＰアドレス、ネットマスク、デフォルトルータアドレスおよびＤＮＳサーバアドレスを自動的に取得する。この点に関して、ＤＨＣＰは管理型のＩＰホスト設定プロトコルである。
【０００９】
２．ネーム−アドレス変換。ホストは、ユーザが介入することなく、他のホストのネームとアドレスとの間の変換を行うことができる。但し、ＤＮＳは管理型ネーム−アドレス変換プロトコルである。
【００１０】
３．マルチキャストアドレスの自動割当て。ホストは、ユーザが管理することなく、マルチキャストアドレスで一致することができる。
【００１１】
４．サービスの探索。ホストはネットワーク内で利用可能な全てのサービス（例えば、印刷、ファックス通信、記録など）を発見することが可能である。
【００１２】
ゼロ設定ネットワーキングが複数のルータからなるマルチルータネットワーク内で実装し甲斐のある理由を理解するために、図１Ａおよび図１Ｂを考察する。ルータＲ１とルータＲ２が最初は非接続状態であり、後に点（ノード）Ｘで接続される独立型のルータであると仮定する。点Ｘでの接続の前に、各ルータはそれぞれのインタフェースに対してサブネット番号を割り当てる初期化を実行する。これにより、ルータＲ１はそのインタフェース１、２および３にそれぞれサブネット番号x.0、y.0およびz.0を割り当てる。同様に、ルータＲ２はそのインタフェース１、２および３にそれぞれサブネット番号v.0、x.0およびw.0を割り当てる。図１ＡはルータＲ１およびＲ２にそれぞれ対応する経路表を示している。なお、各経路表は各インタフェースに関連する宛先と、各宛先に関連するゲートウェイと、各宛先に到達するのに必要なホップ数を規定する距離を識別している。なお、初期状態（図１Ａ）の場合、各ルータに関連する全ての宛先は１ホップで到達可能である。
【００１３】
ここで、図１Ｂに示すように、ネットワーク間が点Ｘで接続されたと仮定する。すなわち、ルータＲ１のインタフェース３とルータＲ２のインタフェース１とが接続されている。標準ＲＩＰ(Routing Information Protocol)プロトコルバージョン２にしたがって、これらのルータは新しい経路を知る規定のプロセスでＲＩＰパケットを交換する。図１ＢはルータＲ１およびＲ２間で送信されるＲＩＰパケットに含まれている経路表エントリ（ＲＴＥ）レコードを示している。なお、各ルータは他方のルータに対して１個のＲＩＰパケットを送出しており、実際には、新しい経路に関する情報を交換している。ルータは、互いにＲＩＰパケットを受け取ると、取得したばかりの新しい経路を増補した新たな経路表を算出する。図１Ｂは各ルータに関する新たな経路表を示している。但し、この理由により、ルータＲ１がそのインタフェース１に対してサブネットx.0を使用していることをルータＲ２が検出する方法はない。ルータＲ１からＲＩＰパケットを受け取ると、ルータＲ２はそのＲＩＰパケット内で指定されたサブネットx.0がルータＲ２がインタフェース２に関して割り当てたサブネットと同じものであるとみなす。サブネットx.0はルータＲ２に直接接続されているので、ルータＲ２は受信したＲＩＰパケット内で指定されたサブネットx.0をコスト高である（多数のホップを有している）との理由で標準ＲＩＰ取扱いプロトコルに基づいて破棄する。ルータＲ１がルータＲ２からＲＩＰパケットを受け取る際も、同様の計算を行い、インタフェース１に関するサブネット割当てを変更しない。
【００１４】
【発明が解決しようとする課題】
この時点で、ネットワーク上には同じサブネット番号、すなわち、x.0を使用したセグメントが２つ存在する。ルータＲ１のネットワークx.0のホストはルータＲ２に接続されたいかなるホストからも見えず、逆もまたそうである。ネットワークを正確に稼動させるため、この新しいネットワーク上のサブネットの競合を解決する必要がある。矛盾をなくすためには、両ルータがそのサブネット割当てx.0を新しい一意のサブネット番号に変更することによりネットワークに一貫性をもたらすことができる。しかしながら、上述の例で示すように、標準ＲＩＰプロトコルはサブネットの競合を検出して解消することができない。
【００１５】
【課題を解決するための手段】
本発明は、ゼロ設定経路制御情報プロトコル（ＺＲＩＰ）と称し、標準ＲＩＰプロトコルとの互換性を維持しながら上記の問題を解決する改良型プロトコルを提供することによって上記の課題に対処するものである。この改良型ＺＲＩＰプロトコルはサブネットの競合を検出する機構と続いて競合を通知し解消する機構とを備えている。この改良型プロトコルを使用すれば、ネットワーク全体にわたるアドレスの再割当てとネームからのアドレス導出とを支援しながらルータ系に対して自動的にネットワーク設定を行うことができる。
【００１６】
本発明をその目的および長所を含めてより深く理解するため、以下の詳細説明と添付の図面を参照する。
【００１７】
【発明の実施の形態】
従来の管理型ネットワークでは、広く普及している経路制御情報プロトコル（ＲＩＰ）等のルーティングプロトコルを使用してネットワーク内のルータ間で経路制御情報を交換する。管理者によって正確に調整されたネットワークではサブネットの競合は起こらないので、管理型ネットワークではサブネット競合の検出と解消は通常問題にならない。しかしながら、従来のルーティングプロトコルは、ゼロ設定環境が関係する場合、サブネット競合の検出と解消に適切に対処していない。上述した図１Ａおよび図１Ｂはこの問題の本質を例示したものである。
【００１８】
本発明は、ＲＩＰプロトコルをゼロ設定環境も取り扱うように機能拡張するいくつかの重要な拡張機能を提供するものである。以後、改良型プロトコルをゼロ設定経路制御情報プロトコルまたはＺＲＩＰと称する。ＺＲＩＰプロトコルは、ＲＩＰパケット構造、特に経路表エントリ（ＲＴＥ）構造を機能拡張する。ＲＩＰパケット内の各ＲＴＥはサブネット番号、ネットマスク、サブネットに達するための次のホップルータ、およびサブネットに達するまでのホップ数を指定している。
【００１９】
サブネット競合検出
ルータが相互接続された後にサブネット競合を検出するために、本発明は各ＲＴＥと一緒に一意のインタフェース識別子（ＵＩＤ）を使用する。ＵＩＤはゼロ設定ネットワーク内でルータの各インタフェースに接続されたセグメントを一意に識別する。この文脈において、セグメントとはノード間のリンクと拡張リンクの両方を指す。リンクは通信経路（例えば、イーサネットのリンク）である。拡張リンクは、例えば、ブリッジによって結合された２つのリンクに相当する。ルータが初期化すると、各インタフェース用にＵＩＤを生成し、その後アルゴリズムを使用して局所的に一意のサブネット番号を無作為に割り当てる。それにより、各インタフェースがネットワーク範囲で一意のＵＩＤと関連付けられる。
【００２０】
一意のＵＩＤを生成するには様々な方法が存在するが、本好ましい実施形態では９バイト長のＵＩＤを採用する。１番目のバイトはインタフェースのハードウェア型に対応する。残る８バイトはインタフェースのＭＡＣ（媒体アクセス制御）アドレスから生成するか、インタフェースがＭＡＣアドレスを持たない場合には無作為に生成することができる。例えば、インタフェースがイーサネットの場合、ＵＩＤの１番目のバイトはイーサネットのハードウェア番号であり、ＵＩＤの最後の８バイトは０からなる２個のバイトに連結された６バイトのイーサネットＭＡＣアドレスである。イーサネットＭＡＣアドレスは世界的に一意であるので、インタフェース用に、そしてそのインタフェースに割り当てられたサブネットとそのインタフェースに接続されたセグメント用に一意のＵＩＤが生成できる。ＵＩＤは別の型のインタフェース用にも同様に生成することができる。
【００２１】
図１Ａにおいて、ルータＲ１およびＲ２用の経路表は、後述の表１に示すように、本発明にしたがってＵＩＤ情報を含むよう修正される。その後、図１Ｂに示すように、ルータが相互に接続されると、各ルータはそれぞれＲＴＥパケットにより他方のルータに経路を公示する。これらＲＴＥパケットも、後述の表２に示すように、本発明にしたがってサブネットと関連付けられたＵＩＤ情報を含むよう修正される。ルータが互いにパケットを受け取ると、取得したばかりの新しい経路を増補した新たな経路表を算出する。これにより、後述の表３に示すように、新たな経路表が（ＵＩＤ値を含んで）生成されることになる。各経路は今やＵＩＤによって一意に識別されるので、ルータはサブネット競合を容易に検出できる。表３において、サブネット競合に星印を付す。
【００２２】
【表１】
0003678348.tif 000002
【００２３】
【表２】
0003678348.tif 000003
【００２４】
【表３】
0003678348.tif 000004
【００２５】
ルータＲ２はＵＩＤ２２によって識別されたそのインタフェース２に対してサブネットx.0を割り当てたことを分かっている。ルータＲ２はルータＲ１がＵＩＤ１１によって識別されたそのインタフェースに対してサブネットx.0を割り当てたことを検出する。同様に、ルータＲ１はそのx.0サブネットがルータＲ２のサブネットの一つと競合していることを検出する。なお、それぞれＵＩＤが存在することにより、標準ＲＩＰ取扱いプロトコルが競合するサブネット割当てを共有している上位のホップ経路指定を無視することが防止される。
【００２６】
サブネット競合通知
ルータによってアドレス競合が検出された後、そのルータは競合しているインタフェースに対して新しいサブネット番号を割り当てる。新しいサブネットは、ゼロ設定ネットワーク内で一意のものになるように、既に使用されたものとは異なるアドレスでなければならない。したがって、上記の例では、ルータＲ２がサブネットx.0の競合を検出すると、新しいサブネット番号をそのインタフェース２に割り当てることになる。新しいサブネット番号は、ネットワーク内で一意のものになるように、x.0、y.0、z.0、v.0およびw.0以外のアドレスでなければならない。
【００２７】
新しいサブネット対応がＵＩＤ２２に割り当てられ、それがt.0のＩＰアドレスに相当すると仮定する。ルータＲ２はルータＲ１に対して（表３において競合していることを星印で示した）ＵＩＤ１１の競合を通知する必要がある。この通知により、ルータＲ１もそのサブネット割当て（ＵＩＤ１１、x.0）を変更することが可能になる。競合通知の問題を解決するために、本発明はＺＲＩＰパケット内で各ＲＴＥと関連付けられた状態標識を採用する。本好ましい実施形態では、状態標識によって示される２つの状態、すなわち、（競合のない有効なＲＴＥに相当する）正常なNORMAL状態と（このＲＴＥに関してネットワーク内のどこかに競合が存在していたという表示に相当する）変更されたCHANGE状態が実施される。状態標識は表４に示すＺＲＩＰパケット内に一つのフィールドとして追加される。この標識は競合が発生したときに追跡するために使用されて、各ルータが互いに適切に通知し合えるようにする。本好ましいプロトコルによれば、ＲＴＥ内のネットワークアドレスはそのインタフェースを所有しているルータによって変更される。すなわち、あるＲＴＥの所有ルータは対応するネットワークインタフェースを所有しているルータである。本好ましいＺＲＩＰプロトコルでは、それは常に、インタフェースまたはセグメントに対してアドレスを割り当てる所有ルータである。
【００２８】
【表４】
0003678348.tif 000005
【００２９】
上記の例では、ルータＲ２がＵＩＤ１１のアドレス競合を検出すると、対応するＲＴＥ項目にCHANGE標識を付ける（上記表４参照）。ルータＲ２がＺＲＩＰパケットを送出する際、そのパケット内には、全てのＲＴＥがそれぞれの状態をバイトで適切に記した状態で含まれる。NORMAL標識を付けたＲＴＥは経路の公示を目的としている。一方、CHANGE標識を付けたものは競合の通知を目的としている。したがって、状態標識は既存の通信基盤が従来の経路制御公示と競合通知の両方を通信するのを可能にする機構となる。上記の例において、ルータＲ２からルータＲ１へのＺＲＩＰパケットを表４に示す。表が示すように、ＵＩＤ１１により識別される経路は"CHANGE"と印されている。ルータＲ１がこのパケットを受け取ると、ネットワーク内のどこかにそのサブネット割当て（ＵＩＤ１１、x.0）に対するサブネット競合が存在していたことを知る。そして、ルータＲ１はその競合するサブネットを変更する。
【００３０】
なお、ルータＲ２からルータＲ１へのＺＲＩＰパケットはＲＴＥ（ＵＩＤ１２、y.0）およびＲＴＥ（ＵＩＤ１３、z.0）も含んでいる。ルータＲ２は、これら２つのＲＴＥを既にルータＲ１から知らされているので、これらＲＴＥをルータＲ１に送り返す必要はない。しかも、これと同じ技術をＲＴＥの全てが正常であるＺＲＩＰプロトコルの下でも使用可能である。しかしながら、CHANGE状態のＲＴＥ（ＵＩＤ１１、x.0）は経路公示ではなくサブネット競合通知であるので、そのＲＴＥサブネット標識をルータＲ１に送り返す必要がある。本好ましい実施形態によれば、ＲＴＥの状態がCHANGE状態に代わるときは常に、発信元（すなわち、経路を知らせたルータ）に報告されなければならない。上記の競合解消メッセージ交換の結果、ルータＲ１およびＲ２間で共有するセグメントが別のサブネット番号（上記の例ではz.0とv.0）に割り当てられる。
【００３１】
競合解消追跡
ゼロ設定ネットワークのトポロジがより複雑になるほど、各ルータが様々なルータから（ＵＩＤで識別される）同じＲＴＥに関する競合値を得ることになるかもしれない。ここで、図２のゼロ設定ネットワークについて考察する。最初、ルータＲ１、Ｒ２、Ｒ３、Ｒ４およびＲ５が接続されており、ネットワークは安定している。ルータＲ５はルータＲ４が対応付け（ＵＩＤ４、y.0）を有していることを知っている。図２から分かるように、ルータＲ１は、y.0がルータＲ５経由で３ホップ離れているがルータＲ２経由では４ホップ離れているので、y.0に到達するためにはルータＲ５にパケットを送信する。ここで、ルータＲ６がルータＲ４に接続され、ルータＲ６が対応付け（ＵＩＤ６、y.0）を有している場合を想定する。ルータＲ４は、ルータＲ６からＺＲＩＰパケットを受け取った後、サブネット競合を検出し、サブネット対応付け（ＵＩＤ４、y.0）を（ＵＩＤ４、z.0）に変更する。その後、ルータＲ４はＺＲＩＰパケットをルータＲ３とＲ５の両方に送信し、両者に変更を通知する。
【００３２】
ルータＲ５へのＺＲＩＰパケットが失われた場合を仮定する。ルータＲ３はＺＲＩＰパケットを受け取り、その経路表を更新して送信する。ルータＲ５はサブネット対応付けに対してまだ古いＵＩＤを有している。ルータＲ１は、ルータＲ２から新しい対応付け（ＵＩＤ４、z.0）を有するＺＲＩＰパケットを受け取ると、この新しい経路を許可するつもりか否かを判定しなければならない。但し、新しいサブネット割当てはまだルータＲ２経由で４ホップ離れているが、異なるサブネット割当てを有している。さらに情報がなければ、ルータＲ１は判定ができない。ルータＲ１がサブネットz.0に到達するために新しいサブネット割当て（ＵＩＤ４、z.0）を許可してルータＲ２へのパケット送信を開始すれば、ルータＲ５がその定期のＺＲＩＰパケットをルータＲ１に送信した際に、そのＺＲＩＰパケットはホップ数が少ない古い対応付け（ＵＩＤ４、y.0）を含むことになる。ルータＲ１は（ＵＩＤ４、y.0）が古いコピーであるのか新しいサブネット割当てであるのかを識別する方法をもっていない。
【００３３】
上記の問題に対処するため、好ましい実施形態では、順序番号付けメカニズムを採用している。好ましい実施形態は、ＲＴＥの所有ルータによって割り当てられ変更される２バイトの順序番号を実装する。ＺＲＩＰプロトコルにしたがって、各ルータはそのサブネット割当てのそれぞれについて順序番号を保持する必要がある。この順序番号はサブネット競合のせいでルータがサブネット対応付けを変更する際に実装される。上記ルータによって経路が公示されている場合には順序番号は実装されない。
【００３４】
各ＲＴＥに対して所有ルータにより割り当てられ保持される順序番号を増補することによって、上述の曖昧さが解消される。上記の例では、最初、（ＵＩＤ４、y.0）は順序番号１を有している。ルータＲ４は、そのサブネット割当てを（ＵＩＤ４、z.0）に変更すると、順序番号を２に増加させた後、それを近隣ルータに通知する。ルータＲ１は、新しい対応付け（ＵＩＤ４、z.0）を含むルータＲ２からのＺＲＩＰパケットを受け取ると、（ＵＩＤ４、y.0）の順序番号が１なので、それが古いサブネット対応付けであることを容易に判定することができる。したがって、ルータＲ１は、古いサブネット対応付けを削除して順序番号２を有する新しい対応付けの使用を開始する。ルータＲ５からルータＲ１に到達する古いコピーは全てこのＲＴＥに関して順序番号１を有していることになる。したがって、ルータＲ１はそれを使用しなくなる。ルータＲ５が最終的に新しい対応付けを知り、ルータＲ１に対してサブネットに関するより少ないホップ数を通知すると、ルータＲ１はルータＲ２ではなくルータＲ５に対して（ＵＩＤ４、z.0）に関するパケットを送信する。
【００３５】
アドレス再対応付け
マルチルータゼロ設定ネットワークにおいて安定状態要求を達成するためには、ネットワーク設定システムはネットワークのトポロジの変化があっても既存の接続を保存する必要がある。したがって、ホストはセグメントに対するルータの追加または取外しの後にそのＩＰアドレスを変更すべきではなく、ルータはルータの追加または取外しの後であってもその現在のサブネット対応付けを維持すべきである。これは、図２がその説明の助けになるが、取り組み甲斐のある要求である。
【００３６】
図３に示すように、２つのＩＰセグメントが存在し、一方は１個のホストＡを含んでおり、他方は２個のホストＢおよびＣを含んでいる。ルータがこれらの２つのセグメントを接続する前、ホストはそれぞれリンクローカルのアドレスlA、lBおよびlCを有している。ルータＲ１が設置される前にホストＢとホストＣの間に接続状態が存在していたと仮定する。図３において、ルータＲ１は、初期化時に、そのインタフェース（直接に接続されたセグメント）に対してサブネットa11.0およびa12.0を割り当てる。ルータＲ１が両セグメントを接続した後、ホストＢとホストＣはそれぞれＩＰアドレスをa12.Bとa12.Cに再割当てする。これにより、これら２つのホスト間の既存の接続状態が崩壊する。同様に、ルータＲ１が取りはずされると、両ホストがリンクローカルアドレスに切り替わって戻り、既存の構内接続が再び切断される。この問題はマルチルータネットワーク内に拡大される。すなわち、１個のルータの追加がサブネットの競合を引き起こせば、競合に関与するルータがその競合するサブネット対応データを再設定し、それがネットワーク再設定部分のホストに関係する接続を切断する。
【００３７】
本発明は、ＤＨＣＰサーバがない場合でも上記の問題に対処することができる。ルータのないセグメント上のホストはＤＨＣＰサーバがない場合はリンクローカルアドレスを割り当て、その後、その生存期間にわたってリンクローカルアドレスを維持する。リンクローカルアドレスを有するホストは異なるＩＰセグメント上のホストと通信できないので、好ましい実施形態では、アドレス再対応付け（ＡＲＭ）ルータを採用する。このＡＲＭルータは異なるセグメント上のホスト間で透過的なＩＰアドレス再対応付けを実行してセグメント間の通信を可能にする。ホストがこの変換に気付くことはなく、リンクローカルなＩＰアドレスを使用しつづけることができるので有利である。
【００３８】
本好ましい実施形態によれば、ＡＲＭ方式では、初期化時にルータがその各インタフェースに対して10.x/16のプライベートアドレス範囲で一意のサブネット番号を割り当てる。本明細書では、このような一意のプライベートサブネット番号をそのセグメントに関する“局所定義”サブネット番号（ＬＤサブネット識別子）と呼ぶ。各セグメント上のホストはリンクローカルな（l）サブネットの一部であり、本明細書では、このリンクローカルサブネット番号をそのセグメントに関する“外部定義”サブネット番号（ＥＤサブネット識別子）と呼ぶ。“局所定義”という言葉も“外部定義”という言葉もルータの見地から発生した用語である。
【００３９】
ＡＲＭルータは各セグメントに関してＬＤサブネット識別子とＥＤサブネット識別子と間の対応付けを維持し、ホストのリンクローカル（外部定義）アドレスを局所定義プライベートアドレスにあるいはその逆に変換してセグメント間の通信を可能にする。この変換を実現するために、図３に示すように、ＡＲＭ層が定義され、データリンク層とＩＰ層との間に配置される。すなわち、ＡＲＭ層は図３に符号４０で示すＩＰプロトコルスタックに挿入される。
【００４０】
ＡＲＭルータのＩＰ層は局所定義サブネット番号を使用して動作し、ＡＲＭ層によって実行される変換に気づかない。図３では、ＡＲＭルータを２つのセグメントを接続するものとして表現する。これらセグメント上のホストはリンクローカルアドレスを使用する。しかしながら、ルータＩＰ層の見地から、ルータはそのインタフェース１および２に対してそれぞれＬＤサブネット識別子a11.0およびa12.0を割り当てる。ルータのインタフェースにはa11.R11とa12.R12という一意のＩＰアドレスも割り当てられる。ＡＲＭ層は局所−外部データ対応付けを維持する。例えば、図３では、インタフェース１に関して、対応付けはＬＤサブネット識別子a11.0とＥＤサブネット識別子l.0との間である。
【００４１】
ネームからのアドレス導出
本発明は各ホストにそのセグメント上のホストをリンクローカルアドレスで識別させることによってネームからのアドレス導出を行う一方で、ネットワークの残りの部分はデフォルトルータのＬＤサブネット識別子を使用する。その概念を図３に示す。ルータＲ１の見地から、ネットワークはＬＤサブネット識別子a11.0およびa12.0を有する２つのセグメントから構成されている。ホストＢの見地から、ホストＢはホストＣと同じセグメント上に位置しているので、ホストＣのＩＰアドレスはl.H2であるが、ホストＡのＩＰアドレスはa11.H1である。ホストＡとホストＢは別のセグメント上に位置し、ホストＡはホストＢのデフォルトルータであるルータＲ１の見地からサブネットa11.0上に位置している。同様に、ホストＡの見地から、ホストＢのＩＰアドレスはa12.H1であり、ホストＣのＩＰアドレスはa12.H2である。
【００４２】
図３のゼロ設定ネットワークについて考察する。図に示すように、ＡＲＭルータＲ１はそのインタフェースに対してＬＤサブネット識別子a11およびa12を割り当てる。したがって、Ｒ１のＩＰ層の見地から、ネットワーク全体はサブネット番号a11.0およびa12.0を有する２つのセグメントから構成されている。しかしながら、外部から見れば、ホストはリンクローカルのサブネット上に位置している。ＡＲＭ層はＥＤサブネット識別子とＩＰ層により使用されるＬＤサブネット識別子との間の対応付けに責任がある。Ｒ１は以下のＡＲＭ表を維持する。
【００４３】
【表５】
0003678348.tif 000006
【００４４】
ルータのＡＲＭ層は着信パケットに対して外部−局所アドレス再対応付けを実行して、パケットの発信元ＩＰアドレスを等価の局所ＩＰアドレスに再対応付けする。その後、ＩＰ層がそのパケットを受け取り、ルータ内の局所でのみ有効なパケット宛先ＩＰアドレスに基づいてそれを転送する経路を選択し、そのパケットを転送のためにＡＲＭ層に配送する。ＡＲＭ層はそのパケットの宛先ＩＰアドレスに対して局所−外部アドレス再対応付けを実行した後、それを転送のためにデータリンク層に配送する。
【００４５】
図３のネットワークで対応付けが動作する方法を理解するために、ホストＡ（l.H1）がパケットをホストＢ（l.H1）に送信すると仮定する。上述したように、ホストＡの見地から、ホストＢのアドレスはa12.H1である。ホストＡからＢへのパケットは下記の表６に示すＩＰアドレス再対応付けを経ることになる。逆方向の場合、パケットは下記の表７に示すように同様の変換を経る。
【００４６】
【表６】
0003678348.tif 000007
【００４７】
【表７】
0003678348.tif 000008
【００４８】
以下にパケットを処理するためにＡＲＭルータにより使用されるアルゴリズムを示す。
【００４９】
0003678348.tif 000009
すなわち、パケットが受信されると、ED2LDはパケットの発信元ＩＰアドレスに対して単純なＡＲＭ表検索により外部−局所アドレス再対応付けを実行する。パケットの発信元ＩＰが局所表現に対応付けされると、ＩＰチェックサムが再計算される。必要ならば、トランスポート層（ＵＤＰＴＣＰ）チェックサムも再計算され、パケットがネットワーク（ＩＰ）層に配送される。パケットがＩＰ層に到達した後、既に局所表現を有している宛先アドレスに基づいてＩＰ経路選択が実行され、パケットが転送のためにＡＲＭ層に配送される。なお、ＩＰ経路選択が実行されたあとは、パケットを送信するインタフェースは既に決定されている。その後、ＡＲＭ層はLD2EDを呼び出して単純なＡＲＭ表検索により宛先ＩＰアドレスを外部表現に変換する。以前と同様に、ＩＰチェックサムが再計算される。必要ならば、トランスポート層チェックサムも再計算される。新しいパケットが作成された後、データリンク層に配送され転送される。なお、ＩＰ層はＡＲＭ層に気付かず、常に局所定義サブネット番号に基づいて動作する。
【００５０】
ホスト設定プロトコルに対する変更
既存の接続を保存するために、ホストは、ＡＲＭルータがセグメントに接続された後も既に設定されているリンクローカルアドレスを使用し続けなければならないが、そのＡＲＭルータをデフォルトルータとして設定する必要がある。ホストが標準ＩＰホスト設定プロトコルを使用していれば、ＤＨＣＰサーバが使用可能になるまでそのリンクローカルアドレスに固守することになる。その場合、ルータがミニＤＨＣＰサーバを走らせていなければ、これは自動的に達成される。ホストのデフォルトルータ設定はＩＣＭＰルータ公示によって達成される。すなわち、ＡＲＭルータはそのＩＰアドレスを定期的に公示し、ホストはその公示に基づいてデフォルトルータを設定する。
【００５１】
ＡＲＭルータでミニＤＨＣＰを走らせてホストアドレスを設定することも可能である。しかしながら、ＡＲＭルータで走るミニＤＨＣＰはリンクローカルアドレスを配布しなけなければならない。ホストはDHCPDISCOVERメッセージ内にその現在のリンクローカルアドレスを含ませる必要があり、ミニＤＨＣＰはそのアドレスを記録してホストに対してホストが同じリンクローカルアドレスを使用しつづけることができることを保証する必要がある。この方式が稼動するために、必要なＤＨＣＰオプションを利用することが可能である。すなわち、ＡＲＭルータが接続されたとき、標準ホスト設定プロトコルに対する単純な変更によって、ホストはそのリンクローカルアドレスを使用しつづけることができるとともに、デフォルトルータを設定することができる。
【００５２】
マルチルータネットワークに対する拡張ＡＲＭ方式
ＡＲＭ方式の目的は、新しいルータの追加や新しいリンクの追加または除去などネットワークトポロジの変化に直面してもホスト間の既存の接続を保存することである。既存の接続は、ホストが現在のＩＰアドレスを使いつづけることができ再設定を強いられない場合でしか保存することができない。ＡＲＭはこれを各ルータに各サブネット(セグメント)が局所的に一意の番号を有しているネットワークの局所モデルを開発できるようにさせることによって行う。その後、このモデルはアドレス対応付け機構によって物理的トポロジに透過的に対応付けされる。
【００５３】
ルータは、動的ルーティングプロトコルによりネットワーク内の新しいセグメントの存在を知ると、世界的に一意のセグメント識別子で識別される各セグメントに対して局所的に一意のサブネット番号を割り当てる。この局所定義サブネット識別子はネットワーク全体内で一意である必要はない。サブネット識別子はサブネット競合が起こりえないことを意味するネットワークの各ルータの内部で一意であれば充分である。要するに、各ルータはネットワーク全体に対するそれ自身の見地を持ち、ネットワークの各セグメントに関して一意の局所定義サブネット識別子と外部定義サブネット識別子との間の対応付けを維持する。
【００５４】
この方式では、パケットの発信元ＩＰアドレスおよび宛先ＩＰアドレスはパケットを送信する現在のルータの見地からでしか有効でない。パケットが別のルータに送信されると、発信元アドレスおよび宛先アドレスは次ホップのルータの見地からそれぞれの対応付けに変換される。したがって、パケットがネットワークを横断するとき、各ルータはそれ自身のＡＲＭ表に基づいてアドレス変換を行う。
【００５５】
動的経路制御情報交換
管理型ネットワークでは、ルータ間で経路制御情報プロトコル（ＲＩＰ）やオープン仕様最短パス優先（ＯＳＰＦ）プロトコルなどの動的ルーティングプロトコルを使用して経路制御情報を交換する。これにより、ネットワーク内のルータはネットワーク内の全てのサブネットの情報を取得する。ＡＲＭルータがネットワーク内の新しいセグメント（経路）の存在を知ることは、新しいセグメント上のホストに対してパケットが送信可能になる前にルータが新しいセグメントに関する一意の局所定義サブネット識別子を定義する必要があるので、重要である。したがって、ＡＲＭルータはルーティングプロトコルにより与えられる情報を使って新しいセグメントを検出できなければならない。以下に、ＡＲＭルータからなるゼロ設定ネットワーク内でＲＩＰを使用して動的経路制御情報交換を行った場合を検証する。
【００５６】
ＲＩＰｖ２パケットはヘッダと複数の経路表エントリ（ＲＴＥ）レコードから構成されている。ＲＩＰｖ２用のＲＩＰパケットフォーマットと２０オクテットＲＴＥのフォーマットを図４に示す。
【００５７】
図５は３個のＡＲＭルータを有するゼロ設定ネットワークを示す。全てのルータが独立型ルータであると仮定する。また、全てのルータが初期化時にその（セグメントに直接接続された）インタフェース１、２、３に対してそれぞれＬＤサブネット識別子a1、a2、a3を割り当てるものと仮定する。後述の表８はルータＲ１およびＲ２の初期ＡＲＮ表を示している。表８のＡＲＭ表はアドレス対応付け情報、すなわち、ＬＤサブネット識別子−ＥＤサブネット識別子対応付けだけでなく、経路制御情報も含んでいる。すなわち、経路表はＡＲＭ表の部分集合である。表８において、最初の２フィールド（ＥＤサブネット識別子およびＬＤサブネット識別子）はＡＲＭ層に特有のデータであり、残る４フィールド（インタフェース、宛先、ゲートウェイおよび距離）はＩＰ経路表を構成している。以下、本明細書において、ＡＲＭ層に特有のデータとＩＰ経路表とはＡＲＭ表内で二重線で分かれるものとする。
【００５８】
ここで、ルータＲ１とルータＲ２が相互接続されると仮定する。すなわち、Ｒ１のインタフェース１がＲ２のインタフェース１と接続状態になる。両ルータがＲＩＰｖ２を使用していると仮定すると、両ルータはＲＩＰパケットを交換して新しいルータを公示しその情報を取得する。表９はＲ１からＲ２およびＲ２からＲ１に向かうＲＩＰｖ２パケットに含まれるＲＴＥを示す。但し、Ｒ１によって公示されたルートが新しいセグメントを指していることをＲ２が検出する方法はない。Ｒ２がＲ１からＲＩＰパケットを受信すると、Ｒ２はＲＩＰパケット内で指定されたサブネットai.0,i = 1,2,3がＲ２がインタフェース"i",i = 1,2,3に対して割り当てたサブネットと同じサブネットを指しているとみなす。サブネットai.0はＲ２に直接接続されているので、ＲＩＰパケット内で指定されたサブネットai.0はコストが高いために破棄される。Ｒ１がＲ２からＲＩＰパケットを受信すると、Ｒ１は同様の計算を行うが、それ自身のサブネット割当てai.0とＲＩＰパケット内で指定された割当てとを区別することができない。いずれのルータもネットワーク内の新しいセグメントを検出する方法がなく、両者ともネットワークが３個のセグメントを有しているとみなす。ネットワークを正確に稼動させるために、ルータがネットワーク内の各セグメントを検出して局所的に一意のサブネット番号を割り当てる方法が望まれる。
【００５９】
【表８】
0003678348.tif 000010
【００６０】
表８において、“ＥＤサブネット識別子”はセグメント（経路）の外部定義サブネット番号である。“ＬＤサブネット識別子”はセグメントの一意の局所定義サブネット番号である。“宛先”はルータの立場から見たセグメントのサブネット番号であり、“ＬＤサブネット識別子”と同じ値を有する。“ゲートウェイ”はパケットがセグメントに到達するために“インタフェース”から送信されるであろうルータのＩＰアドレスであり、“距離”はホップ数を単位としたルータからセグメントへの距離である。
【００６１】
【表９】
0003678348.tif 000011
【００６２】
ＡＲＭ用拡張ＲＩＰ
本発明のＲＩＰプロトコルを複数のＡＲＭルータからなるゼロ設定ネットワークで動作するよう機能拡張させてもよい。その新しいプロトコルをＡＲＭ経路制御情報プロトコル（ＡＲＩＰ）と呼ぶことにする。ＡＲＩＰプロトコルはＲＩＰパケット構造（正確に言えばＲＴＥ）の機能を拡張させてＡＲＭルータが新しいセグメントのネットワークへの追加を検出できるようにする。以下、最初に、必要な拡張機能とその理由について説明し、その後完全なプロトコルを説明する。
【００６３】
新しいセグメントの検出
ＲＩＰパケット内の各ＲＴＥはサブネット番号と、ネットマスクと、サブネットに到達するための次のホップルータと、サブネットに到達するためのホップ数とを指定している。この情報は、管理型ネットワークでは、各サブネットが一意であるので十分である。しかしながら、ゼロ設定ネットワークでは、各ルータが独自にサブネット番号を割り当てるので、同じサブネット番号を直接に接続されたセグメントに対して局所的に割り当てるのは１個のルータにとどまらない。ルータが相互接続された後に新しいセグメント（経路）の存在を検出するために、各ＲＴＥに対して一意のインタフェース識別子（ＵＩＤ）を使用することを提案する。ＵＩＤはゼロ設定ネットワーク内のルータの各インタフェースに接続されたセグメントを一意に識別する。ルータは、初期化した際、各インタフェースに関してＵＩＤを生成し、アルゴリズムに基づいて局所的に一意のサブネット番号を無作為に割り当てなければならない。それにより、各サブネットはゼロ設定ネットワーク内で一意のＵＩＤに対応付けされる。
【００６４】
本好ましい実施形態では、１２バイト長のＵＩＤを使用する。１番目のバイトは（ＩＡＮＡによって割り当てられた）インタフェースの一意のＭＡＣタイプである。残る１１バイトはそのインタフェースのＭＡＣアドレスから生成してもよいし、インタフェースがＭＡＣアドレスを持たない場合には無作為に生成することができる。例えば、インタフェースがイーサネットの場合、ＵＩＤの１番目のバイトはイーサネットに関するＩＡＮＡ割当てＭＡＣ番号であり、ＵＩＤの最後の１１バイトは０からなる５個のバイトに連結された６バイトのイーサネットＭＡＣアドレスである。イーサネットアドレスは世界的に一意であるので、ゼロ設定ネットワーク内のインタフェース用に（および／またはセグメント用に）一意のＵＩＤが生成できる。ＵＩＤは別の型のインタフェース用にも同様に生成することができる。
【００６５】
【表１０】
0003678348.tif 000012
表１０はＲ１およびＲ２のＵＩＤ増補ＡＲＭ表を示す。ルータが相互接続されると、それぞれ公示された経路にそのＵＩＤが増補される。ルータは、互いにＡＲＩＰパケットを受信すると、取得したばかりの新しい経路を増補した新たなＡＲＭ表を算出する。表１１は接続後のＲ１およびＲ２の新たなＡＲＭ表を示す。
【００６６】
【表１１】
0003678348.tif 000013
各経路は今やＵＩＤによって一意に識別されるので、両ルータは新しいセグメントを容易に検出できる。新しい各セグメントに関して、ルータは局所的に一意のサブネット番号を割り当て、経路をＡＲＭ表に挿入する。例えば、Ｒ１はＲ２のインタフェース２に接続されたセグメントに関してＬＤサブネット識別子a5.0を割り当てる。これは、Ｒ１の見地からは、Ｒ２のインタフェース２に接続されたセグメントのサブネット番号がa5.0であり、２ホップの距離があり、a5.0サブネットを送信先とする全てのパケットがＲ２に送信されなければならないことを意味している。
【００６７】
また、Ｒ１のＡＲＭ表からわかるように、Ｒ２の見地から、“ＥＤサブネット識別子”フィールドによって記された同じセグメントのサブネット番号はa2.0である。Ｒ２に直接接続されたセグメントについては、Ｒ１のＡＲＭ表内の“ＥＤサブネット識別子”フィールドはＲ２に対して局所的な対応付けを保持している。したがって、Ｒ２に直接接続されたセグメントの一つにあるホストを送信先とするパケットがＲ１からＲ２に送信されるとき、Ｒ１のＡＲＭ表内の“ＥＤサブネット識別子”フィールドを使用して、宛先ＩＰアドレスがそのセグメントに関するＲ２の局所的対応データに対応付けされる。さらに、これはコネクション型ネットワークの仮想回線識別子の操作にも類似している。しかしながら、この場合、変換は個々の接続単位ではなくセグメント単位で行われる。ネットワーク内のセグメント数は稼動中の接続数よりも遥かに少ないので、ＡＲＭ方式はスケーラビリティが高い。
【００６８】
ＡＲＩＰパケットフォーマット
ＡＲＩＰは、セグメントを一意に識別するために使用するフィールドがＲＴＥに追加されることを除けば、ＲＩＰｖ２と同様のパケットフォーマットを使用する。そのパケットフォーマットを図７に示す。ＡＲＩＰのＲＴＥとＲＩＰｖ２のＲＴＥ（図７と図４）を比較すると、ＡＲＩＰがＲＩＰのＲＴＥに対してさらに１２バイトを追加していることが分かる。アドレスファミリ識別子と経路タグの両フィールドはＲＩＰの場合と同じ意味を有している。「アドレスファミリ識別子」は常にＲＩＰの場合と同じAF#INETであり、それがインターネットアドレスであることを意味する。「一意インタフェース識別子」が増補された「インタフェース型」はＲＴＥに関して１２バイトのＵＩＤを構成している。ＵＩＤはこのＲＴＥを所有しているルータのインタフェースを識別する。ＲＴＥ内の残りのフィールドはＲＩＰｖ２の場合と同じ意味を有する。「ＩＰアドレス」はルータのインタフェースに接続されたセグメントに関するサブネットのＩＰアドレスである。「ネットマスク」はルータによって割り当てられたネットワークマスクであり、「次ホップ」はパケットがこの経路に到達するために送信されなければならないルータのＩＰアドレスである。ＡＲＩＰパケット内の各ＲＴＥは３２バイトである。ＡＲＩＰパケットは最大５１２バイトにまでなり得るので、最大で１５個のＲＴＥを含むことができる。ルータに対する経路表がさらに多くの経路を含んでいる場合は、さらにパケットを追加送信する。
【００６９】
一意先ホップ検出
図５の全ルータが図に示すように相互接続されて３個のルータからなるネットワークを形成していると仮定する。ここで、Ｒ１のインタフェース１に到達するパケットについて考察する。着信パケットの発信元ＩＰアドレスのサブネット番号がa2.0であるとすると、Ｒ１がそのパケットを受信した際、ＡＲＭ層はその発信元ＩＰをＩＰ層に配送する前に再対応付けする必要がある。すなわち、Ｒ１のＡＲＭ層はパケットの発信元であるセグメントを識別する必要がある。ＡＲＭ表が表１１のＡＲＭ表が示すようにＵＩＤと外部−局所データ対応付けを保持するだけならば、Ｒ１はパケットを発信するセグメントを一意に識別することができないのでパケットに関する新しい発信元アドレスを判定することができない。これは両ルータＲ２およびＲ３がそれらのインタフェース２に接続されたセグメントに関して局所的にa2.0を使用していることに起因する。その場合、パケットはＲ３のインタフェース２に接続されたホスト（ホストＡ）かあるいはＲ２のインタフェース２に接続されたホスト（ホストＣ）のどちらかから来ていることになる。Ｒ１は、さらに情報がなければ、パケットの発信元を判定できない。パケットはその発信元であるセグメントのＵＩＤを含んではいないが、パケットを転送したルータのＭＡＣアドレスを含んでいる。したがって、経路を公示するルータのＭＡＣアドレスを保持することによって、Ｒ１はセグメントとパケットの新しい発信元ＩＰを識別することができる。
【００７０】
【表１２】
0003678348.tif 000014
【００７１】
表１２は経路の取得元であるルータのＭＡＣアドレスを増補したＲ１のＡＲＭ表を示す。増設のＭＡＣフィールドに基づいて、Ｒ１はパケットの発信元であるセグメントを見分け、必要な変換を行うことができる。
【００７２】
ＡＲＩＰパケット処理
以下のアルゴリズムはＡＲＩＰパケットの処理方法を示す。
【００７３】
0003678348.tif 000015
すなわち、パケット内の各ＲＴＥは連続的に処理される。最初に、ルータは公示された経路が既知であるか否かを判定する。経路が新規のものであれば、単純に新しい経路（セグメント）に関する局所的なデータ対応付けを作成し、それをＡＲＭ表に挿入する。経路が既知であれば、公示された経路がセグメントへのより短い経路であるか否かを判定する。公示された経路が短ければ、ＡＲＭ表エントリが新しい情報で更新される。いずれにしても、もはや存在しない経路は朽ち果てる必要があるので、ＡＲＭ表内のエントリの期限満了期間が更新される。
【００７４】
ＡＲＭ表更新例
この節では、新規のルータがネットワークに追加された際にＡＲＭ表を更新する例を示す。これを詳述するために、ネットワーク例として図６のネットワークを使用する。ルータＲｉはインタフェースが発見された時にそのインタフェース"j"に対して局所的に一意のサブネット番号aijを割り当てるものとする。例えば、図６では、Ｒ２はそのインタフェース１に接続されたセグメントに対してa21を割り当てる。
【００７５】
図６では、ネットワークは３つのＡＲＭルータ（Ｒ１、Ｒ２およびＲ３）と３つのホストから構成されている。初期状態では、単独のルータＲ１、Ｒ２およびＲ３にそれぞれ接続された３つの別個のゼロ設定ネットワークが安定状態にあったと仮定する。丸内の符号１、２および３はルータの接続順序を示す。そこで、最初に、Ｒ１とＲ２がＲ１のインタフェース２とＲ２のインタフェース１に接続された共有セグメント上で接続される。その後、Ｒ２とＲ３が接続され、最後に、Ｒ１とＲ３が接続されてネットワーク内にループを形成する。以下、ルータが相互接続状態になった時に経路公示とＡＲＭ表更新を行う方法について説明する。
【００７６】
初期設定：ルータが相互接続される前に、各ルータは表１３に示すＡＲＭ表を有している。
【００７７】
【表１３】
0003678348.tif 000016
Ｒ１とＲ２の接続：Ｒ１を経由して到達可能な経路は次の経路だけであるので、Ｒ１はＡＲＩＰプロトコルを使用してその経路[(U11,a11),(U12,a12),(U13,a13)]を公示する。同様に、Ｒ２は[(U21,a21),(U22,a22),(U23,a23)]を公示する。Ｒ１がＡＲＩＰパケットを受信すると、Ｒ２によって公示された全ての経路が新規であることがわかる。そこで、Ｒ１はそれら新規の経路を自身のＡＲＭ表に挿入し、それらの経路に関して新しい局所的対応データを割り当てる。Ｒ２も同様の処理を行う。下記の表１４は最初のＡＲＩＰメッセージが交換および処理された後のＲ１およびＲ２のＡＲＭ表を示す。
【００７８】
【表１４】
0003678348.tif 000017
上記の新しいＡＲＭ表から分かるように、新規に公示されたセグメントに対してＲ１はＬＤサブネット識別子a14, a15, a16を割り当て、Ｒ２はＬＤサブネット識別子a24, a25, a26を割り当てる。
【００７９】
最初のＡＲＩＰメッセージがＲ１とＲ２の間で交換された後は、新しいゼロ設定ネットワークが明らかに安定化する。Ｒ１およびＲ２はともにそのＡＲＭ表を適切に更新してネットワークの完全なトポロジを取得する。
【００８０】
Ｒ３をＲ２に接続：Ｒ３がＲ２に接続されると、両ルータがＡＲＩＰメッセージに基づいて同様の方法でネットワークを自動設定する。表１５は最初のＡＲＩＰパケットがＲ２とＲ３との間で交換された後の両ルータのＡＲＭ表を示す。この時点で、Ｒ２およびＲ３はネットワークの完全なトポロジを理解する。また、両ルータはネットワーク内の新しいセグメント（経路）の存在を知り、それに対してＬＤサブネット識別子を割り当てる。
【００８１】
【表１５】
0003678348.tif 000018
【００８２】
Ｒ１がネットワークの完全なトポロジを理解するにはさらにもう１個のＡＲＰメッセージが必要である。Ｒ２が次回のＡＲＩＰメッセージをＲ１に送信すると、Ｒ１はＲ２を経由する新しい経路が存在することを知り、そのＡＲＭ表を更新する。表１６はＲ１の新しいＡＲＭ表を示す。
【００８３】
【表１６】
0003678348.tif 000019
【００８４】
Ｒ３をＲ１に接続：
最後に、Ｒ３がＲ１に接続されてネットワーク内にループが形成される。この時点で、Ｒ１はＲ３に直接パケットを送信することによってＲ３に接続されたセグメントに到達可能である。同様に、Ｒ３もＲ１に直接パケットを送信することによりＲ１に接続されたセグメントに到達可能である。そこで、Ｒ１はＲ３から次回のＡＲＩＰパケットを取得すると、それにしたがって自身のＡＲＭ表を更新する。なお、Ｒ１は新しいセグメントの存在を知っていないが、Ｒ３に接続されたセグメントへのより短い経路を知ることになる。例えば、Ｒ１はそのインタフェース３からＲ３にパケットを送信することによりＲ３のインタフェース３に接続されたセグメントに２ホップで到達できる。したがって、そのＡＲＭ表が他の全てのセグメントに関して更新される。Ｒ１およびＲ３の最終的なＡＲＭ表を表１７に示す。
【００８５】
【表１７】
0003678348.tif 000020
【００８６】
パケット流れの例
この節では、図６に示すネットワーク内のパケットの流れを追跡し、その途上で発生する変換について説明する。一例として、ホストＡおよびＣが互いに通信する方法を説明する。
【００８７】
ホストＡがホストＣにパケットを送信し、そのパケットがホストＡにエコーバックされるという単純なピンポンプログラムでホストＡとホストＣが稼動していると仮定する。ホストＡの見地から、ホストＣのアドレスはa19.Cである。ホストＡがパケットを送信する時、ネットワーク内に第３の接続がまだ確立されていないと仮定する。すなわち、Ｒ１はＲ３への直接の経路を有していないが、ホストＣに到達するためにはＲ２にパケットを送信する必要がある。この時点で、Ｒ１のＡＲＭ表は表１６に示すとおりであり、Ｒ２およびＲ３のＡＲＭ表は表１５に示すとおりである。下記の表１８はホストＡからホストＣに送信されたパケットがネットワーク内を移動する間の発信元ＩＰアドレスと宛先ＩＰアドレスを示す。
【００８８】
【表１８】
0003678348.tif 000021
【００８９】
ホストＣは、パケットを受信すると、ホストＡのアドレスがa37.Aであることがわかる。なお、このアドレスはホストＣのデフォルトルータであるルータＲ３の見地からのアドレスである。ここで、ホストＣがホストＡにパケットを送信する直前に、Ｒ１とＲ３が接続され、Ｒ３からＲ１への直接経路が発生したと仮定する。その時、Ｒ１およびＲ３のＡＲＭ表は表１７に示すとおりである。ホストＣからホストＡへのパケットは下記の表１９に詳述する変換を経る。
【００９０】
【表１９】
0003678348.tif 000022
Ｒ１とＲ３の間に新しい接続関係が存在するので、パケットはより短い経路を取り、Ｒ２を訪れない。接続が確立されなかった場合には、パケットはＲ２を横断してホストＡに到達することになる。さらに、新しいルータをネットワークに接続した場合には、ルータＲ１、Ｒ２およびＲ３は新しいルータによって導入された新しいセグメントを知りそれに対する新たな局所的対応付けを作成するだけである。既存の外部−局所アドレス対応付けは変化しないので、ホストＡからホストＣへの経路が存在する限り、ホストＡとホストＣとの間の既存の接続関係はルータの増設や取外しによって切断されることはない。
【００９１】
マルチルータネットワーク内のアドレス変換
上述したように、アドレス変換は２つの時点で行われる。送信元ＩＰアドレスはパケットがルータに受信された時に変更され、宛先ＩＰアドレスはパケットが送信用のデータリンク層に配送される直前に変更される。マルチルータネットワークでは、上述のアルゴリズムの変換機能LD2ED()は同じままであるが、ED2LD()は少し変更がある。すなわち、ネットワーク設定システムはパケットを送信したルータのＭＡＣアドレスも使用してそのパケットの外部発信元ＩＰアドレスに対応する局所ＩＰアドレスを決定する。したがって、アルゴリズムのED2LD()機能のint-SIPを計算する行は、パケットのＭＡＣアドレスも使用して内部ＳＩＰを計算するように変更される。
【００９２】
以上、本発明をその好ましい実施形態に基づいて説明したが、特許請求の範囲に述べる本発明の精神から逸脱することなく、本明細書中の教示にしたがって一定の変更が可能であることは言うまでもない。
【図面の簡単な説明】
【図１Ａ】本発明が解決しようとする課題の一部を理解するのに役立つものであり、従来のネットワーク設定システムにおいて経路表の設定方法を示すマルチルータネットワーク相互接続図である。
【図１Ｂ】本発明が解決しようとする課題の一部を理解するのに役立つものであり、従来のネットワーク設定システムにおいて経路表の更新方法を示すマルチルータネットワーク相互接続図である。
【図２】本発明を利用してサブネットのアドレス競合を検出および修正する方法を示すマルチルータネットワークの説明図。
【図３】異なるセグメント上のホスト間で透過的なＩＰアドレス再対応付けを行ってセグメント間の通信を可能にするのに役立つ本発明にかかるアドレス再対応付け（ＡＲＭ）ルータを示す説明図。
【図４】ＺＲＩＰパケットとそれに対応する経路表エントリの好ましいフォーマットを示す。
【図５】本発明の原理を理解するのに役立つマルチルータゼロ設定ネットワークを示す説明図。
【図６】本発明を理解するのに役立つ別のマルチルータゼロ設定ネットワークを示す説明図。
【図７】ＺＲＩＰパケットとそれに対応する経路表エントリの別の好ましいフォーマットを示す図。
【図１Ａ】
0003678348.tif 000023
【図１Ｂ】
0003678348.tif 000024
【図２】
0003678348.tif 000025
【図３】
0003678348.tif 000026
【図４】
0003678348.tif 000027
【図５】
0003678348.tif 000028
【図６】
0003678348.tif 000029
【図７】
0003678348.tif 000030