(57)【要約】【課題】代表の中継装置の変更に伴う通信の中断を回避する。【解決手段】ルータＲ１０は、既存のルータＲ１〜Ｒ３のプライオリティ値より自身のものが高い場合にＢＤＲのルータＲ２をＤＲに変更する指示を送信し、ルータＲ２がＤＲになるとルータＲ１０はＢＤＲとなる旨のメッセージを送信してＢＤＲとなり、ＤＲになったルータＲ２との間でＬＳＤＢの同期をとる。同期が完了するとルータＲ１０はＤＲになる旨のメッセージを送信してＤＲとなる。【選択図】図７
2019016973.tif 000002
【特許請求の範囲】
【請求項１】
リンクステート型ルーティングプロトコルを用いて得られたトポロジ情報に基づくルーティングテーブルを参照してパケットを転送する複数の既存中継装置が接続され、前記複数の既存中継装置のうちの一つである第１装置が代表として選出されるとともに前記複数の既存中継装置のうちの他の一つである第２装置が前記代表のバックアップとして選出されており、各既存中継装置が前記トポロジ情報の生成に用いる既存中継装置間のリンクステート情報の交換が前記代表を介して行われるネットワークに接続される中継装置において、
前記中継装置が前記ネットワークへ接続された場合に、前記複数の既存中継装置のそれぞれのプライオリティ値と前記中継装置とのプライオリティ値とを比較する処理と、前記中継装置のプライオリティ値が前記複数の既存中継装置のそれぞれのプライオリティ値より高い場合に、前記バックアップの前記第２装置を前記代表に変更する指示を前記ネットワークへ送信する処理と、前記指示により前記代表が変更された場合に前記中継装置が前記バックアップとなる旨のメッセージを前記ネットワークへ送信する処理と、前記中継装置が前記バックアップとなった場合に前記第２装置が有するトポロジ情報と前記中継装置が有するトポロジ情報との同期をとる処理と、前記第２装置が有するトポロジ情報との同期がとられた後に、前記中継装置が前記代表となる旨のメッセージを前記ネットワークへ送信する処理と、を実行する制御部
を含むことを特徴とする中継装置。
【請求項２】
前記制御部は、前記代表が前記第２装置へ変更される場合に前記第１装置が有するトポロジ情報と前記中継装置が有するトポロジ情報との同期をとる処理を行い、前記第１装置が有するトポロジ情報との同期後に前記中継装置が前記バックアップとなる旨のメッセージを送信する
請求項１に記載の中継装置。
【請求項３】
前記制御部は、前記第２装置が有するトポロジ情報との同期をとる場合に前記第１装置が有するトポロジ情報との差分を前記第２装置から受信する
請求項２に記載の中継装置。
【請求項４】
リンクステート型ルーティングプロトコルを用いて得られたトポロジ情報に基づくルーティングテーブルを参照してパケットを転送する複数の既存中継装置が接続され、前記複数の既存中継装置のうちの一つである第１装置が代表として選出されるとともに前記複数の既存中継装置のうちの他の一つである第２装置が前記代表のバックアップとして選出されており、各既存中継装置が前記トポロジ情報の生成に用いる既存中継装置間のリンクステート情報の交換が前記代表を介して行われるネットワークに接続される中継装置が、
前記中継装置が前記ネットワークへ接続された場合に、前記複数の既存中継装置のそれぞれのプライオリティ値と前記中継装置とのプライオリティ値とを比較し、
前記中継装置のプライオリティ値が前記複数の既存中継装置のそれぞれのプライオリティ値より高い場合に、前記バックアップの前記第２装置を前記代表に変更する指示を前記ネットワークへ送信し、
前記指示により前記代表が変更された場合に前記中継装置が前記バックアップとなる旨のメッセージを前記ネットワークへ送信し、
前記中継装置が前記バックアップとなった場合に前記第２装置が有するトポロジ情報と前記中継装置が有するトポロジ情報との同期をとり、
前記第２装置が有するトポロジ情報と同期がとられた後に、前記中継装置が前記代表となる旨のメッセージを前記ネットワークへ送信する
ことを含む代表の中継装置の変更方法。
【請求項５】
リンクステート型ルーティングプロトコルを用いて得られたトポロジ情報に基づくルーティングテーブルを参照してパケットを転送する複数の既存中継装置が接続され、前記複数の既存中継装置のうちの一つである第１装置が代表として選出されるとともに前記複数の既存中継装置のうちの他の一つである第２装置が前記代表のバックアップとして選出されており、各既存中継装置が前記トポロジ情報の生成に用いる既存中継装置間のリンクステート情報の交換が前記代表を介して行われるネットワークと、
前記ネットワークに接続される中継装置とを含み、
前記中継装置は、前記中継装置が前記ネットワークへ接続された場合に前記複数の既存中継装置のそれぞれのプライオリティ値と前記中継装置とのプライオリティ値とを比較する処理と、前記中継装置のプライオリティ値が前記複数の既存中継装置のそれぞれのプライオリティ値より高い場合に、前記バックアップの前記第２装置を前記代表に変更する指示を前記ネットワークへ送信する処理と、前記指示により前記代表が変更された場合に前記中継装置が前記バックアップとなる旨のメッセージを前記ネットワークへ送信する処理と、前記中継装置が前記バックアップとなった場合に前記第２装置が有するトポロジ情報と前記中継装置が有するトポロジ情報との同期をとる処理と、前記第２装置が有するトポロジ情報との同期がとられた後に、前記中継装置が前記代表となる旨のメッセージを前記ネットワークへ送信する処理と、を実行する制御部
を含むことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置，代表の中継装置の変更方法，及び通信システムに関する。
【背景技術】
【０００２】
通信サービスの提供に使用されるネットワークは、例えば、パケットを中継する複数のルータやレイヤ３（Ｌ３）スイッチによって形成される。以下の説明において、ルータとＬ３スイッチとを区別しない場合は「ルータ」と表記する。ルータ及びＬ３スイッチは、「中継装置」や「通信装置」の一例である。
【０００３】
ルータがパケットの転送先を動的に決定するためのリンクステート型ルーティングプロトコルの一種に、Open Shortest Path First（ＯＳＰＦ）がある。ＯＳＰＦでは、所定のエリア（例えばネットワークセグメント）に存する複数のルータのそれぞれが各ルータのインタフェース情報を収集する。各ルータは収集されたインタフェース情報を用いて最終的にルーティングテーブルを生成し、パケットの転送に用いる。
【０００４】
インタフェース情報の交換が各ルータ間で行われるとトラフィックが増加する。このため、ＯＳＰＦでは、代表ルータ（Designated Router（ＤＲ））が選出される。ＤＲがグ
ループ内の各ルータからインタフェース情報を受信して他のルータに送信することで、トラフィック量を減らすことができる。ＤＲの選出には、「プライオリティ（Priority）値」が使用される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００９／０１６６９９号
【特許文献２】特開２００６−８０９８３号公報
【特許文献３】特開２００２−１３５３２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＤＲは、各ルータからの情報を集約して送信する動作を担うため、ＤＲ以外のルータよりも負荷が大きい。所定のルータがＤＲとして選出されることを所望する場合がある。例えば、既にＤＲ及びＢＤＲ（Backup DR）が選出されているエリアにＤＲとしての動作を
所望する新規のルータを追加したい場合がある。しかし、エリアでＤＲ及びＢＤＲが一旦選出されると、新規のルータのプライオリティ値が既存のＤＲのプライオリティ値より高い場合であっても、既に選出されているＤＲがダウンしなければ新規のルータはＤＲになることができない。
【０００７】
新規のルータをＤＲにする方法として、エリアに存する全てのルータを再起動して、新規のルータを含めたＤＲの選出をやり直すことが考えられる。しかし、再起動が行われると、当該エリアにおいてインタフェース情報の交換からルーティングテーブルの生成までの処理が初めから行われることとなり、その間通信不可の状態となってしまう問題があった。
【０００８】
本発明は、得られたトポロジ情報に基づくルーティングテーブルを参照してパケットを転送するネットワークにおいて、代表の中継装置の変更による通信の中断を回避することのできる中継装置，代表の中継装置の変更方法，及び通信システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの側面は、リンクステート型ルーティングプロトコルを用いて得られたトポロジ情報に基づくルーティングテーブルを参照してパケットを転送する複数の既存中継装置が接続され、前記複数の既存中継装置のうちの一つである第１装置が代表として選出されるとともに前記複数の既存中継装置のうちの他の一つである第２装置が前記代表のバックアップとして選出されており、各既存中継装置が前記トポロジ情報の生成に用いる既存中継装置間のリンクステート情報の交換が前記代表を介して行われるネットワークに接続される中継装置である。
【００１０】
前記中継装置が前記ネットワークへ接続された場合に、前記複数の既存中継装置のそれぞれのプライオリティ値と前記中継装置とのプライオリティ値とを比較する処理と、前記中継装置のプライオリティ値が前記複数の既存中継装置のそれぞれのプライオリティ値より高い場合に、前記バックアップの前記第２装置を前記代表に変更する指示を前記ネットワークへ送信する処理と、前記指示により前記代表が変更された場合に前記中継装置が前記バックアップとなる旨のメッセージを前記ネットワークへ送信する処理と、前記中継装置が前記バックアップとなった場合に前記第２装置が有するトポロジ情報と前記中継装置が有するトポロジ情報との同期をとる処理と、前記第２装置が有するトポロジ情報と同期がとられた後に、前記中継装置が前記代表となる旨のメッセージを前記ネットワークへ送信する処理と、を実行する制御部を含むことを前記中継装置は特徴とする。
【発明の効果】
【００１１】
一側面では、代表の中継装置の変更による通信の中断を回避することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係る通信システムの構成例を示す。
【図２】ＤＲ及びＢＤＲの設定がない場合のＬＳＡの交換を示す。
【図３】ＤＲ及びＢＤＲが選出された場合のＬＳＡの交換を示す。
【図４】実施形態に係る通信システムの一例を示し、新規ＤＲ候補のルータがエリア（ネットワークＮ）に追加接続された様子を示す。
【図５】図４に示したルータＲ１〜Ｒ５、Ｒ１０に適用可能なルータのハードウェア構成例を示す。
【図６Ａ】ルータＲ１０（新規ルータ）として動作するルータの機能を模式的に示す。
【図６Ｂ】ルータＲ１〜Ｒ５（既存のＤＲ,ＢＤＲ,DROTHER）として動作するルータの機能を模式的に示す。
【図７】実施形態に係る複数のルータの動作例を示すシーケンス図である。
【図８】ルータＲ１０の処理例を示すフローチャートである。
【図９】Helloパケットのフォーマット例を示す。
【図１０】ルータＲ１０からのメッセージを受信した場合におけるルータＲ１〜Ｒ３の処理例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、実施形態に係る中継装置，代表の中継装置の変更方法，通信システムについて説明する。実施形態の構成は例示であり、実施形態の構成に限定されない。
【００１４】
図１は、実施形態に係る通信システムの構成例を示す。通信システムは、ネットワークＮに接続され、パケットの転送を行う複数のルータを含む。図１に示す例では、ネットワークＮに接続された複数のルータとしてルータＲ１、ルータＲ２、ルータＲ３、ルータＲ
４及びルータＲ５が図示されている。複数のルータの数は適宜設定可能である。
【００１５】
ルータは「中継装置」の一例である。ルータＲ１〜Ｒ５は「複数の既存中継装置」の一例である。ネットワークＮは、ＯＳＰＦにおける「エリア」（例えばネットワークセグメント）である。
【００１６】
ルータＲ１〜Ｒ５は、リンクステート型ルーティングプロトコルを用いたダイナミックルーティングによってパケットの転送経路を決定し、転送経路に合致するインタフェースからパケットを送出する。リンクステート型ルーティングプロトコルは、例えば、ＯＳＰＦやIS-IS（Intermediate System to Intermediate System）などである。実施形態では
一例として、ＯＳＰＦが適用される場合について説明する。
【００１７】
リンクステート型ルーティングプロトコルでは、各ルータのインタフェースの情報（リンクステート情報）がルータ間で交換される。リンクステート情報は、ＬＳＡ（Link State Advertisement）と呼ばれる。ＬＳＡは、ルータが有するインタフェースの種類、インタフェースのＩＰ（Internet Protocol）アドレス、インタフェースのコスト、接続され
ているネットワークのタイプなどを含む。
【００１８】
各ルータは、Helloパケットを送信し合い、隣接ルータとのネイバー関係を確立する。
各ルータは、ネイバー関係が確立されたルータのＬＳＡを収集し、ネットワークのトポロジテーブル（リンクステートデータベース（ＬＳＤＢ）と呼ばれる）を生成する。各ルータは、ＬＳＤＢの情報からトポロジマップを生成し、ＳＰＦ（Shortest Path First）ア
ルゴリズムを用いて各ルータを起点とした最短パスツリーを計算してルーティングテーブルを生成する。各ルータはルーティングテーブルを参照してパケットの転送先を決定する。ＬＳＡの交換は、ルータＲ１〜Ｒ５から選出された代表ルータ（ＤＲ）により行われる。
【００１９】
図２は、参考例として、代表ルータ（ＤＲ）及びバックアップＤＲ（Backup DR）の設
定がない場合におけるＬＳＡ交換の様子を示す。図３は、ＤＲ及びＢＤＲが選出された場合の様子を示す。図２に示すように、ルータＲ１〜Ｒ５のそれぞれが他のルータとネイバー関係を確立し、各ルータとＬＳＡを交換するためトラフィック量が増大する。トラフィック量削減のため、ＤＲ及びＢＤＲの選出が行われる。ＢＤＲはＤＲのバックアップであり、ＤＲのダウン時に代わってＤＲとなる。
【００２０】
ＤＲ及びＢＤＲの選出に当たっては、例えば、ルータＲ１〜Ｒ５がタイミングを揃えて起動され、ルータＲ１〜Ｒ５がHelloパケットの送受を通じてプライオリティ値を交換す
る。プライオリティ値の初期値は“１”であり、“０”の場合そのルータはＤＲ及びＢＤＲとして選出されない。プライオリティ値が一番高いルータがＤＲとなり、次点のプライオリティ値を有するルータがＢＤＲとなる。
【００２１】
図３の例では、ルータＲ１のプライオリティ値が“９０”であり、ルータＲ１〜Ｒ５のうちで一番高く、ルータＲ２のプライオリティ値が“１０”で２番目に高い。ルータＲ３〜Ｒ５のプライオリティ値は９以下か０である。この場合、ルータＲ１がＤＲとして選出され、ルータＲ２がルータＲ１のバックアップであるＢＤＲとして選出される。残りのルータＲ３〜Ｒ５はＤＲ及びＢＤＲ以外のルータを指す“DROTHER”となる。
【００２２】
なお、ＤＲは「代表」の一例である。ＢＤＲは「バックアップ」の一例である。ＤＲとして選出されたルータＲ１は「第１装置」の一例であり、ＢＤＲとして選出されたルータＲ２は「第２装置」の一例である。ＬＳＤＢはトポロジ情報の一例である。
【００２３】
ＤＲ及びＢＤＲが選出されると、各ルータは、ＤＲ及びＢＤＲとのネイバー関係に基づき、ＤＲ及びＢＤＲに自身のＬＳＡを送信する状態となる。ＤＲは各ルータから受信されるＬＳＡを他のルータに送信（配信）する。このように、ＤＲの選出によってネイバー関係にあるルータ同士がＤＲを介してＬＳＡを交換することができるとともに、ＬＳＡの交換に係るトラフィックを減らすことができる。
【００２４】
例えば、リンクダウンやルータ追加等によってトポロジの変動を検出したルータ（各ルータＲ２〜Ｒ５）は、ＬＳＤＢ内の自身のＬＳＡを更新するともにルーティングテーブルを更新する。さらに、変動を検出したルータは、更新したＬＳＡをＤＲ（ルータＲ１）に送る（情報集約）。ルータＲ１は、自身のＬＳＤＢを更新するともに、ＤＲとしてルータＲ２〜Ｒ５から受信されたＬＳＡをマルチキャストによって送信元以外のルータに送る（情報展開）。
【００２５】
このように、ＤＲが各ルータのＬＳＡを集約し、他のルータへ展開（配信）することで、ルータＲ１〜Ｒ５のそれぞれが有するＬＳＤＢの記憶内容の同期が図られる。なお、ＢＤＲがＤＲのバックアップ用のＬＳＤＢを有すべく、更新したＬＳＡはＢＤＲにも送られ、ＢＤＲが自身のＬＳＤＢを更新することでＤＲのＬＳＤＢとの同期が図られる。
【００２６】
ここで、追加のルータＲ１０をルータＲ１に代わってＤＲとして動作させたい場合を想定する。図４に示すように、ルータＲ１〜Ｒ５が接続されているネットワークＮに新規のルータＲ１０（プライオリティ値１００）を接続する。ルータＲ１０は追加に係る「中継装置」の一例である。
【００２７】
既存のＯＳＰＦの枠組みでは、既にＤＲ（ルータＲ１）及びＢＤＲ（ルータＲ２）が選出されている。このため、ルータＲ１０がルータＲ１より大きいプライオリティ値“１００”を有していても、ルータＲ１及びルータＲ２がダウンするまでルータＲ１０はＤＲになれない。
【００２８】
ルータＲ１０をＤＲにするために、エリアに存する全ルータ（ルータＲ１〜Ｒ５及びルータＲ１０）を再起動することが考えられる。しかし、全ルータの再起動を行うとルータＲ１〜Ｒ５及びルータＲ１０の間でＬＳＡが交換され、新たなルーティングテーブルが各ルータで生成されるまでの間、パケットの転送が停止する。パケットの転送停止による通信サービスへの影響は小さくないと考えられる。
【００２９】
以下、実施形態において、全ルータの再起動を行う場合に比べて通信サービスへの影響を抑えることのできる中継装置，代表の中継装置の変更方法，通信システムについて説明する。
【００３０】
＜ルータの構成例＞
図５はルータＲ１〜Ｒ５及びルータＲ１０に適用可能なルータ１０のハードウェア構成例を示す。図５において、ルータ１０は、バスを介して相互に接続されたＣＰＵ１１，メモリ１２，通信インタフェース（通信ＩＦ）１３を含む。
【００３１】
メモリ１２は、主記憶装置と、補助記憶装置とを含む。主記憶装置は、ＣＰＵ１１の作業領域、プログラムやデータの記憶領域，通信用のデータのバッファ領域などとして使用される。主記憶装置は、Random Access Memory（ＲＡＭ）、或いはＲＡＭとRead Only Memory（ＲＯＭ）との組み合わせで形成される。
【００３２】
補助記憶装置は、例えば、ハードディスクドライブ（ＨＤＤ），Solid State Drive（
ＳＳＤ），フラッシュメモリ，Electrically Erasable Programmable Read-Only Memory
（ＥＥＰＲＯＭ）などである。補助記憶装置は、ディスク記憶媒体やUniversal Serial Bus （ＵＳＢ）メモリのような可搬性を有する記憶媒体を含み得る。補助記憶装置は、Ｃ
ＰＵ１１で実行されるプログラムと、プログラムの実行に際して使用されるデータとを記憶する。メモリ１２は、「記憶部」，「記憶装置」，「記憶媒体」の一例である。
【００３３】
通信ＩＦ１３は、ネットワークを介して他のルータとのデータ（パケット）の授受を行う。通信ＩＦ１３として、例えば、ネットワークインタフェースカード（ＮＩＣ）を適用可能である。
【００３４】
ＣＰＵ１１は、メモリ１２に記憶されたプログラムをロードして実行する。プログラムの実行によって、ＯＳＰＦに基づくＬＳＡの交換、ＬＳＤＢの構築,ルーティングテーブ
ルの生成,及びルーティングテーブルを用いたパケットの転送などを行う。さらに、ＣＰ
Ｕ１１は、プログラムの実行によって、追加のルータＲ１０がルータＲ１に代わってＤＲとなるための処理を行う。
【００３５】
ＣＰＵ１１は、「制御部」、「制御装置」、「コントローラ」の一例である。ＣＰＵ１１は、ＭＰＵ（Microprocessor）、プロセッサとも呼ばれる。ＣＰＵ１１は、単一のプロセッサに限定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のＣＰＵがマルチコア構成を有していても良い。ＣＰＵ１１で行われる処理の少なくとも一部は、ＣＰＵ以外のプロセッサ、例えば、Digital Signal Processor(ＤＳＰ)、Graphics Processing Unit（ＧＰＵ）、数値演算プロセッサ、ベクトルプロセッサ、画像処理プロセッサ等の専用プロセッサで行われても良い。
【００３６】
また、ＣＰＵ１１で行われる処理の少なくとも一部は、集積回路（ＩＣ）、その他のディジタル回路で行われても良い。また、集積回路やディジタル回路はアナログ回路を含んでいても良い。集積回路は、ＬＳＩ，Application Specific Integrated Circuit（ASIC
），プログラマブルロジックデバイス（ＰＬＤ）を含む。ＰＬＤは、例えば、Field Programmable Gate Array（ＦＰＧＡ）を含む。ＣＰＵ１１で行われる処理の少なくとも一部
は、プロセッサと集積回路との組み合わせにより実行されても良い。組み合わせは、例えば、マイクロコントローラ（ＭＣＵ），ＳｏＣ（System-on-a-chip），システムＬＳＩ，チップセットなどと呼ばれる。
【００３７】
図６Ａは、ルータＲ１０（新規ルータ）として動作するルータ１０の機能を模式的に示す。図６Ｂは、ルータＲ１〜Ｒ５（既存のＤＲ,ＢＤＲ,DROTHER）として動作するルータ
１０の機能を模式的に示す。
【００３８】
図６Ａに示すように、ルータＲ１０として動作するルータ１０のＣＰＵ１１は、プログラムの実行によって、少なくとも、プライオリティ値比較部１０１と、ＤＲ切替メッセージ処理部１０２と、ＯＳＰＦデータ処理部１０３として動作する。プライオリティ値比較部１０１は、ルータＲ１０がネットワークＮに新規に接続された場合に、既存のルータＲ１〜Ｒ５のプライオリティ値とルータＲ１０のプライオリティ値（メモリ１２に記憶）とを比較する。ＤＲ切替メッセージ処理部１０２は、ＤＲ切替メッセージを生成する。ＯＳＰＦデータ処理部１０３は、Helloパケットの書換等の処理を行う。ルータＲ１０として
動作するルータ１０のメモリ１２には、ＬＳＤＢ１０４やルーティングテーブルなどが記憶される。
【００３９】
図６Ｂに示すように、ルータＲ１〜Ｒ５のそれぞれとして動作するルータ１０のＣＰＵ１１は、プログラムの実行によって、少なくとも、新規ルータ対応部１０５として動作する。ルータＲ１〜Ｒ５として動作するルータ１０のメモリ１２には、ＬＳＤＢ１０４やルーティングテーブルなどが記憶される。新規ルータ対応部１０５は、ルータＲ１０からの
メッセージ（ＤＲ切替メッセージやHelloメッセージなど）に対応する所定の処理を行う
。
【００４０】
＜動作例＞
図７は、実施形態に係る複数のルータの動作例を示すシーケンス図であり、図８は、ルータＲ１０の処理例を示すフローチャートであり、図９はHelloパケットのフォーマット
例を示す。図１０はルータＲ１０からのメッセージを受信した場合におけるルータＲ１〜Ｒ３の処理例を示すフローチャートである。
【００４１】
但し、図７では、図４と異なり、図４に示した通信システムにおけるDROTHERのルータ
Ｒ３〜Ｒ５のうち、ルータＲ３が存在する例を示す。なお、動作例においてルータＲ３以外にルータＲ４及びルータＲ５がある場合、これらの動作はルータＲ３と同じとなる。
【００４２】
図７において、新規ＤＲ候補であるルータＲ１０がネットワークＮに接続されると、所定の間隔でルータＲ１〜Ｒ３から送信されるHelloパケットを受信する（図７＜１＞）。
【００４３】
ここに、Helloパケットは、ネイバー（隣接ルータ：ＬＳＡを交換するルータとなる）
を検出するためのパケットである。また、Helloパケットは、ネイバーを検出してネイバ
ー関係を確立した後のキープアライブとしても使用される。Helloパケットはマルチキャ
スト (224.0.0.5)で送信される。
【００４４】
図９に示すように、Helloパケットは、ＩＰヘッダと、ＯＳＰＦヘッダと、ＯＳＰＦデ
ータとからなる。ＩＰヘッダには、送信元ＩＰアドレス,宛先ＩＰアドレス,プロトコルＩＤ“８９”等が格納される。
【００４５】
ＯＳＰＦヘッダにおける「バージョン」のフィールドは、使用しているＯＳＰＦのバージョンを示す。「タイプ」のフィールドは、ＯＳＰＦの５つのパケットタイプのいずれかを示す。Helloパケットの場合の値は“１”である。「パケット長」のフィールドには、
ヘッダを含めたＯＳＰＦパケットの長さを示す情報が格納される。
【００４６】
「ルータＩＤ」はルータを一意に識別するビット値である。「エリアＩＤ」はHelloパ
ケットが送出されるインターフェース（複数のルータ）が所属しているエリアを示すビット値である。「チェックサム」は、エラーチェックの計算に使用される。「認証タイプ」のフィールドには認証のタイプを示す情報、「認証」のフィールドには認証用情報が格納される。
【００４７】
ＯＳＰＦデータの「ネットワークマスク」のフィールドにはHelloパケットを送出する
インタフェースのネットマスクの情報が格納される。「Helloインターバル」のフィール
ドにはＯＳＰＦルータがHelloパケットを送出する間隔が格納される。間隔はデフォルト
で１０又は４０秒である。「プライオリティ」のフィールドにはＤＲ及びＢＤＲ選出時に使用されるプライオリティ値が格納される。最高値は２５５であり、０の場合ＤＲ及びＢＤＲに選出されない。「Deadインターバル」のフィールドにはネイバールータがダウンしたとみなす間隔が格納される。Hello間隔の４倍の値が設定される。
【００４８】
「ＤＲ」のフィールドにはＤＲとして動作するルータのＩＰアドレスが格納される。「ＢＤＲ」のフィールドにはＢＤＲとして動作するルータのＩＰアドレスが格納される。「ネイバー」のフィールドにはネイバー関係が確立済みである全てのネイバールータのルータＩＤの一覧が格納される。
【００４９】
ルータＲ１,ルータＲ２及びルータＲ３からHelloパケットを受信したルータＲ１０（の
ＣＰＵ１１）は、プライオリティ値比較部１０１として動作する。ルータＲ１０のＣＰＵ１１は、各Helloパケットのプライオリティ値とメモリ１２に記憶されたルータＲ１０の
プライオリティ値とを比較し、ルータＲ１０のプライオリティ値がルータＲ１〜Ｒ５のプライオリティ値より高いかを判定する（図８の００１）。このとき、ルータＲ１０（新規ルータ）のプライオリティ値が最も高いと判定される場合には処理が００２に進み、そうでない場合には処理が００９に進む。
【００５０】
００２では、ルータＲ１０のＣＰＵ１１は、受信されたHelloパケットの「ＤＲ」のフ
ィールドで特定される既存のＤＲ（ルータＲ１）を受け入れず、ＤＲ切替メッセージ処理部１０２として動作し、ＤＲ切替メッセージを生成する。
【００５１】
ＤＲ切替メッセージは、ＢＤＲをＤＲに変更する旨の指示を含む。ＤＲ切替メッセージは、図９に示したＩＰヘッダ、ＯＳＰＦヘッダ及びＯＳＰＦデータを含み、上記指示はＯＳＰＦデータ部分に含められる。また、ＯＳＰＦデータ部分には、メッセージ種別を示す情報として、本メッセージがＤＲ切替メッセージであることを示す情報も含まれる。
【００５２】
ルータＲ１０のＣＰＵ１１は、ＤＲ切替メッセージを、ルータＲ１０を除くエリアの全ルータ（ルータＲ１,ルータＲ２,ルータＲ３）に送信する（図７＜２＞）。ＤＲ切替メッセージを受信した現ＤＲであるルータＲ１のＣＰＵ１１は、図１０に示すように、受信されたメッセージに含まれるメッセージ種別を参照して、メッセージがＤＲ切替メッセージであると判定すると、処理を１０２に進める。
【００５３】
１０２の処理において、ルータのＣＰＵ１１は、メモリ１２に記憶された自身の現ステータスを示す情報を参照して、現ステータスがＤＲ，ＢＤＲ，及びDROTHERのいずれであ
るかを判定する。ＤＲであると判定される場合には処理が１０３に進み、ＢＤＲであると判定される場合には処理が１０５に進み、DROTHERであると判定される場合には特に処理
は行われない。この動作例では、ルータＲ１が１０３の処理に進み、ルータＲ２が１０５の処理に進む。
【００５４】
現ＤＲであるルータＲ１のＣＰＵ１１は、ＤＲ切替メッセージ処理部１０２として動作し、ＤＲ切替メッセージに含まれた指示に基づいてルータＲ１をダウン状態にする（１０３）。例えば、ルータＲ１がHelloパケットの送信を停止する状態にする。これによって
、ルータＲ２やルータＲ３では、ルータＲ１からのHelloパケットを受信できなくなるの
で、ルータＲ１がダウンしたと認識する。
【００５５】
現ＢＤＲであるルータＲ２のＣＰＵ１１は、図１０の１０１の処理で受信されたメッセージがＤＲ切替メッセージであると判定し、１０２の処理でＢＤＲと判定し、処理を１０５へ進める。ルータＲ２のＣＰＵ１１は、ＤＲのダウンの検出有無に関わらず自身のステータスをＤＲに変更し（図１０の１０５）、Helloパケットを送信する（図１０の１０６
、但し、図７での図示は省略）。ルータＲ２は、Helloパケットの送信とともにＤＲとし
ての動作を開始する（図７＜３＞，図８の００２Ａ）。
【００５６】
ルータＲ２から送信されるHelloパケットのＤＲのフィールド（図９）には、ルータＲ
２のＩＰアドレスが書き込まれる。Helloパケットを受信したルータＲ１，Ｒ３，Ｒ１０
は、ＤＲフィールドの値が変更されていることを以て、ＤＲが変更された（ルータＲ２がＤＲになった）ことを認識し、ＤＲの変更を受け入れる。ルータＲ１，Ｒ３，Ｒ１０のそれぞれは、トポロジ変更を検知した場合のＬＳＡの送信先アドレスであるＤＲのアドレスをルータＲ２のアドレスに変更し、自ルータのＬＳＡをルータＲ２へ送る状態となる。ルータＲ１はダウン状態（Helloの送信停止）を解除する。
【００５７】
ところで、ルータＲ１のＣＰＵ１１は、ＤＲ切替メッセージを受信すると、ＤＲ切替メッセージの送信元ＩＰアドレス（ルータＲ１０のＩＰアドレス）宛てに、ルータＲ１のＬＳＤＢ１０４に格納されたＬＳＡ（ＬＳＤＢ情報）を送る（図１０の１０４）。
【００５８】
ルータＲ１０のＣＰＵ１１は、ルータＲ１からＬＳＤＢ情報を受信し（図７＜４＞，図８の００３）、ルータＲ１０のＬＳＤＢ１０４に書き込む。ルータＲ１０によるルータＲ１からのＬＳＤＢ情報の取り込みは、全てのＬＳＡが取り込まれ、ルータＲ１０が有するＬＳＤＢ１０４の内容が旧ＤＲであるルータＲ１と同じとなる（同期が完了する）まで継続される（図８の００３及び００４のループ）。
【００５９】
ルータＲ１０にて、ルータＲ１のＬＳＤＢ１０４との同期が完了したと判定される場合には（図７＜５＞，図８の００４，Ｙｅｓ）には、処理が００５に進む。００５では、ルータＲ１０のＣＰＵ１１は、HelloパケットのＯＳＰＦデータ中のＢＤＲのフィールド値
をルータＲ１０のフィールド値に書き換え、ルータＲ１〜Ｒ３へ送信する。なお、このHelloパケットのＤＲフィールドには、ルータＲ２からのHelloパケットに基づき、ルータＲ２のＩＰアドレスが書き込まれる。このように、ルータＲ１０は旧ＤＲのＬＳＤＢ１０４との同期後に、ルータＲ１０がＢＤＲになる旨のメッセージであるHelloパケットを送信
する。
【００６０】
ルータＲ１０からのHelloパケットはルータＲ１（旧ＤＲ），ルータＲ２（現ＤＲ）及
びルータＲ３（DROTHER）へ送信される（図７＜６＞）。ルータＲ１，ルータＲ２，及び
ルータＲ３のＣＰＵ１１は、新規ルータ対応部１０５として動作し、HelloパケットのＢ
ＤＲフィールドに書き込まれたルータＲ１０のＩＰアドレスをＢＤＲのアドレスとして受け入れる。
【００６１】
すなわち、図１０に示すように、ルータのＣＰＵ１１は、受信されたメッセージがHelloパケットと判定する（１０１の“Hello”）場合、以下の処理を行う。すなわち、ルータのＣＰＵ１１はＤＲフィールド及びＢＤＲフィールドを参照してそれぞれの値（ＩＰアドレス）が変更されているかを判定する（図１０の１０７）。このとき、ＤＲフィールド及びＢＤＲフィールドの少なくとも一方の値が変更されている場合には、その変更を受け入れて、ＤＲアドレス、ＢＤＲアドレスの変更を行う（図１０の１０８）。１０９では、Helloパケットに対する他の処理が行われる。但し、１０９は、特に処理を行わない場合も
含み得る。
【００６２】
１０８の処理の結果、ルータＲ１はDROTHERとなる（図７＜７＞）。ルータＲ２はＤＲ
のまま、ルータＲ３はDROTHERのままとなる。また、ルータＲ１，ルータＲ２，及びルー
タＲ３のＣＰＵ１１は、ルータＲ１０がＢＤＲになることを受け入れ、トポロジ変更に伴うＬＳＡをＤＲ（ルータＲ２）に送る場合、ＢＤＲ（ルータＲ１０）にも送る状態となる。
【００６３】
Helloパケットの受け入れによって、ルータＲ１０はＢＤＲになる(図７＜８＞)。ルー
タＲ１０がＢＤＲになったことに伴い、ルータＲ１０はＤＲであるルータＲ２のバックアップのために、ルータＲ２のＬＳＤＢ１０４との同期をとる（図７＜９＞）。
【００６４】
詳細には、ルータＲ１０のＣＰＵ１１は、ルータＲ２へルータＲ２が有するＬＳＡのリストを要求し、リストを受信する。ルータＲ１０のＣＰＵ１１は、ルータＲ１０が有していないリスト中のＬＳＡの提供をルータＲ２に要求する。ルータＲ１０が有していないリスト中のＬＳＡは、ルータＲ１のＬＳＤＢ１０４とルータＲ２とのＬＳＤＢ１０４の差分であり、ルータＲ２がＤＲになってから各ルータ（ネイバー）から得たＬＳＡである。
【００６５】
ルータＲ１０のＣＰＵ１１は、ルータＲ２から受信された上記要求に対応するＬＳＡをルータＲ１０のＬＳＤＢ１０４に記憶する（図８の００６）。ルータＲ２（ＤＲ）からのＬＳＡの取り込みが完了し、ＤＲとの間でＬＳＤＢ１０４の同期が完了するまで、００６及び００７のループ処理が計継続される。
【００６６】
同期が完了すると、ルータＲ１０のＣＰＵ１１は、ルータＲ１０がＤＲになるためのHelloパケットを生成する。すなわち、ルータＲ１０のＣＰＵ１１は、HelloパケットのＯＳＰＦデータ中のＤＲのフィールド値をルータＲ１０のＩＰアドレスに書き換える。一方、ＢＤＲのフィールドには、ルータＲ１０がＤＲになることによってＢＤＲがいなくなるので、ＣＰＵ１１はＢＤＲが未定を示す値を書き込む。ルータＲ１０は、ＤＲ及びＢＤＲのフィールドが書き換えられたHelloパケットをルータＲ１（DROTHER），ルータＲ２（ＢＤＲ）及びルータＲ３（DROTHER）へ送信する（図７＜１１＞）。このように、ルータＲ１
０は現ＤＲのＬＳＤＢ１０４との同期後に、ルータＲ１０がＤＲになる旨のメッセージであるHelloパケットを送信する。
【００６７】
ルータＲ１，ルータＲ２，及びルータＲ３のＣＰＵ１１は、新規ルータ対応部１０５として動作し、HelloパケットのＤＲフィールドに書き込まれたルータＲ１０のＩＰアドレ
スをＤＲアドレスとして受け入れる（図１０の１０８）。
【００６８】
この結果、ルータＲ１０はＤＲとなる（図７＜１２＞）。一方、ＢＤＲのフィールド値が“未定”を示すため、ルータＲ３は、新たに優先順位に基づいてＢＤＲを決定すべくDROHTERとなる。その後、図示しないが、Helloパケットの交換を通じてルータＲ１０及びルータＲ１〜Ｒ３でプライオリティ値が比較され、プライオリティ値に従ってルータＲ１がＢＤＲとなる。
【００６９】
なお、図８の００９に進んだ場合には、ルータＲ１０は既存のＤＲ（ルータＲ１）を受け入れるとともに、既にＤＲ及びＢＤＲが選出されていることから（ＤＲ及びＢＤＲフィールドにルータＲ１、Ｒ２のアドレスがある）DROTHERとなる。ルータＲ１０はＬＳＤＢ
の同期処理を実行する（図８の０１０）。
【００７０】
実施形態によれば、ネットワークＮに新たにルータＲ１０（新規ルータ）が接続された場合に、既存中継装置（ルータＲ１〜Ｒ３）との間でプライオリティ値が比較される。ルータＲ１０のプライオリティ値がルータＲ１〜Ｒ３のプライオリティ値より高い場合、ＤＲ切替メッセージがネットワークＮ（ルータＲ１〜Ｒ３）に送信される。ＤＲ切替メッセージを受信したＤＲ（ルータＲ２）は直ちに（ＤＲのダウン（障害）を検知することなく）ＤＲとなる。ルータＲ１０は、ルータＲ２がＤＲになるルータＲ１０がＢＤＲになる旨のメッセージ（Helloパケット）をネットワークＮ（ルータＲ１〜Ｒ３）に送信し、ＢＤ
Ｒとなる。その後、ＤＲ（ルータＲ２）とのＬＳＤＢ１０４の同期をとる。同期が完了すると、ルータＲ１０がＤＲになる旨のメッセージをルータＲ１０はネットワークＮ（ルータＲ１〜Ｒ３）に送信する。
【００７１】
上記の手順において、ＤＲの変更の際に、ネットワークＮに接続された全てのルータの再起動は起こらない。また、ＤＲ切替メッセージに応じてルータＲ２がＤＲになるので、ＤＲの変更に伴う通信（パケット転送）の中断を回避することができる。さらに、ルータＲ１０が一旦ＢＤＲとなって現ＤＲとのＬＳＤＢ０４の同期完了後にＤＲとなるため、ＤＲの変更に伴う通信の中断を回避することができる。
【００７２】
実施形態の動作例では、旧ＤＲのルータＲ１とルータＲ１０との間でＬＳＤＢ１０４の同期がとられる。これは、以下の理由による。すなわち、通常であれば、ＤＲとの間でＬＳＤＢ１０４の同期をとるのが好ましいが、ＤＲとの間でＬＳＤＢ１０４の同期をとるこ
とはＤＲ（ルータＲ２）の負荷上昇を招来する。このようなＤＲの負荷上昇を避けるため、旧ＤＲであるルータＲ１との間でＬＳＤＢ１０４の同期をとる。但し、旧ＤＲとのＬＳＤＢ１０４の同期をとることは必須要件ではない。
【００７３】
ＢＤＲとなったルータＲ１０は、現ＤＲであるルータＲ２との間でＬＳＤＢ１０４の同期をとる。このとき、ルータＲ１０はルータＲ２からＬＳＡのリストを受信し、ルータＲ１とルータＲ２との差分に当たるＬＳＡの提供をルータＲ２（ＤＲ）に要求し、対応するＬＳＡを受信して自身のＬＳＤＢ１０４に格納する。これによって、現ＤＲから受信するＬＳＡの量を減らすことができ、ＤＲの負担が減る。旧ＤＲ以外のDROTHER（ルータＲ３
）と同期をとることも考えられる。しかし、旧ＤＲとのＬＳＤＢ１０４の同期をとることで、旧ＤＲ以外のDROTHER（ルータＲ３）と同期をとる場合よりも差分が少なくなる（同
期のトラフィック量が減る）ことを期待できる。
【００７４】
ＤＲとの間でＬＳＤＢ１０４の同期をとることで、ルータＲ１０がＤＲとして振る舞う準備が整う。そして、ルータＲ１０がＤＲとなることで、ＤＲをルータＲ１から新規のルータＲ１０へ変更することができる。実施形態で説明した構成は適宜組み合わせることができる。
【符号の説明】
【００７５】
Ｎ・・・ネットワーク
Ｒ１〜Ｒ５，Ｒ１０・・・ルータ
１０・・・ルータ
１１・・・ＣＰＵ
１２・・・メモリ
１０４・・・ＬＳＤＢ
【図１】
2019016973.tif 000003
【図２】
2019016973.tif 000004
【図３】
2019016973.tif 000005
【図４】
2019016973.tif 000006
【図５】
2019016973.tif 000007
【図６Ａ】
2019016973.tif 000008
【図６Ｂ】
2019016973.tif 000009
【図７】
2019016973.tif 000010
【図８】
2019016973.tif 000011
【図９】
2019016973.tif 000012
【図１０】
2019016973.tif 000013