(57)【要約】【課題】遠い経路を通過することによる伝送遅延の抑制を図ること。【解決手段】制御サーバは、データを転送する複数の転送装置により構成されルータ群に接続される転送装置網を制御し、複数の転送装置の少なくとも１台が所属する転送装置網内の複数の接続ポイントの各々に設定されている優先度に基づいて、各接続ポイントを複数のグループにグループ分けするグループ分け処理と、グループ分けされたグループごとに、送信元から転送装置網を経由して到達する宛先と、当該宛先を広告するルータと、当該ルータに接続される転送装置が所属する接続ポイントと、を特定する経路情報を生成する生成処理と、複数の転送装置が経路情報にしたがってデータを転送するように複数の転送装置に通信インタフェースを介して設定する設定処理と、経路情報を、当該経路情報により特定されるルータに通信インタフェースを介して広告する広告処理と、を実行する。【選択図】図１
2016158122.tif 000002
【特許請求の範囲】
【請求項１】
データを転送する複数の転送装置により構成されルータ群に接続される転送装置網を制御する制御サーバであって、
前記制御サーバは、プログラムを実行するプロセッサと前記プログラムを記憶するメモリと、前記複数の転送装置および前記複数の転送装置を介して前記ルータ群と通信する通信インタフェースと、を有し、
前記プロセッサは、
前記複数の転送装置の少なくとも１台が所属する前記転送装置網内の複数の接続ポイントの各々に設定されている優先度に基づいて、前記各接続ポイントを複数のグループにグループ分けするグループ分け処理と、
前記グループ分け処理によってグループ分けされたグループごとに、送信元から前記転送装置網を経由して到達する宛先と、当該宛先を広告するルータと、当該ルータに接続される転送装置が所属する接続ポイントと、を特定する経路情報を生成する生成処理と、
前記複数の転送装置が前記生成処理によって生成された経路情報にしたがってデータを転送するように前記複数の転送装置に前記通信インタフェースを介して設定する設定処理と、
前記経路情報を、当該経路情報により特定されるルータに前記通信インタフェースを介して広告する広告処理と、
を実行することを特徴とする制御サーバ。
【請求項２】
前記グループ分け処理では、前記プロセッサは、前記複数の接続ポイントのうち前記優先度が所定値よりも大きい第１の接続ポイントを、前記優先度に基づいて前記複数のグループにグループ分けし、
前記プロセッサは、
前記グループ分け処理によってグループ分けされた前記第１の接続ポイントに所属する第１の転送装置と、前記複数の接続ポイントのうち前記優先度が前記所定値以下である第２の接続ポイントに所属する第２の転送装置との組み合わせにおいて、前記第１の転送装置と前記第２の転送装置との間の距離を示すコストが最大でないまたはしきい値以下の組み合わせを選択し、選択した組み合わせを構成する前記第１の転送装置が所属するグループに、前記選択した組み合わせを構成する前記第２の転送装置を振り分ける振り分け処理を実行することを特徴とする請求項１に記載の制御サーバ。
【請求項３】
前記振り分け処理では、前記プロセッサは、前記第１の転送装置と前記第２の転送装置との組み合わせにおいて、前記コストが最小となる組み合わせを選択することを特徴とする請求項２に記載の制御サーバ。
【請求項４】
前記生成処理では、前記プロセッサは、前記宛先が同一である経路情報が複数生成された場合、当該複数の経路情報に各々含まれている接続ポイントの所属グループのうち、前記グループ分け処理によってグループ分けされたグループと同一グループとなる経路情報を、前記設定処理の設定対象となる経路情報に選択することを特徴とする請求項１に記載の制御サーバ。
【請求項５】
前記生成処理では、前記プロセッサは、前記宛先が同一である経路情報が複数生成された場合、当該複数の経路情報に各々含まれている優先度に基づいて、前記複数の経路情報の中から前記設定処理の設定対象となる経路情報を選択することを特徴とする請求項１に記載の制御サーバ。
【請求項６】
前記プロセッサは、前記優先度の変化により前記接続ポイントの優先度に基づく順位に変動があった場合、変化後の優先度に基づいて、前記グループ分け処理、前記生成処理、前記設定処理、および前記広告処理を再実行することを特徴とする請求項１に記載の制御サーバ。
【請求項７】
データを転送する転送システムであって、
前記転送システムは、前記データを転送する複数の転送装置により構成されルータ群に接続される転送装置網と、前記転送装置網を制御する制御サーバと、を有し、
前記制御サーバは、
前記複数の転送装置の少なくとも１台が所属する前記転送装置網内の複数の接続ポイントの各々に設定されている優先度に基づいて、前記各接続ポイントを複数のグループにグループ分けするグループ分け処理と、
前記グループ分け処理によってグループ分けされたグループごとに、送信元から前記転送装置網を経由して到達する宛先と、当該宛先を広告するルータと、当該ルータに接続される転送装置が所属する接続ポイントと、を特定する第１の経路情報を生成する生成処理と、
前記複数の転送装置が前記生成処理によって生成された第１の経路情報にしたがってデータを転送するように前記複数の転送装置に設定する設定処理と、
前記第１の経路情報を、当該第１の経路情報により特定されるルータに広告する広告処理と、
を実行する制御部を有し、
前記複数の転送装置それぞれは、
前記複数の転送装置それぞれが接続する前記ルータ群から広告された前記ルータ群が保持する第２の経路情報を前記制御サーバに転送し、
前記制御部は、
前記複数の転送装置のうちいずれかの転送装置から前記第２の経路情報を受信すると、
前記生成処理において、当該第２の経路情報を転送した転送装置が所属する接続ポイントと当該第２の経路情報とに基づいて前記第１の経路情報を生成することを特徴とする転送システム。
【請求項８】
前記制御部は、前記複数の転送装置から同じ宛先に関する情報を含む前記第２の経路情報を複数受信すると、
前記生成処理において、複数受信した前記同じ宛先に関する情報を含む前記第２の経路情報のうち、当該第２の経路情報を転送した複数の転送装置それぞれが所属する接続ポイントの前記優先度が高い接続ポイントに所属する転送装置が転送した前記第２の経路情報を前記第１の経路情報の生成に用いることを特徴とする請求項７に記載の転送システム。
【請求項９】
データを転送する複数の転送装置により構成されルータ群に接続される転送装置網を制御する制御サーバの設定方法であって、
前記制御サーバは、プログラムを実行するプロセッサと前記プログラムを記憶するメモリとを有し、
前記設定方法は、
前記プロセッサが、
前記複数の転送装置の少なくとも１台が所属する前記転送装置網内の複数の接続ポイントの各々に設定されている優先度に基づいて、前記各接続ポイントを複数のグループにグループ分けするグループ分け処理と、
前記グループ分け処理によってグループ分けされたグループごとに、送信元から前記転送装置網を経由して到達する宛先と、当該宛先を広告するルータと、当該ルータに接続される転送装置が所属する接続ポイントと、を特定する経路情報を生成する生成処理と、
前記複数の転送装置が前記生成処理によって生成された経路情報にしたがって転送するように前記複数の転送装置に設定する設定処理と、
前記経路情報を、当該経路情報により特定されるルータに広告する広告処理と、
を実行することを特徴とする設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを転送する転送装置網を制御する制御サーバ、転送システム、および転送方法に関する。
【背景技術】
【０００２】
トラヒック増大によるネットワーク複雑化により、キャリアにおいて、通信装置のＯＰＥＸ／ＣＡＰＥＸ（Ｏｐｅｒａｔｉｎｇ  Ｅｘｐｅｎｄｉｔｕｒｅ／Ｃａｐｉｔａｌ  ＥｘＰｅｎｄｉｔｕｒｅ）が増大している。高価なルータ網を安価な転送装置網に置き換えることがＯＰＥＸ／ＣＡＰＥＸの減少には有効である。ルータ網を転送装置に置き換える方法として、特許文献１が提案されている。
【０００３】
特許文献１の伝送システムは、伝送網の構成要素である複数の伝送装置と、伝送網を介して通信を行う複数のルータと、複数の伝送装置間の通信経路を設定する伝送網通信経路管理サーバと、設定された通信経路を保存する伝送網通信経路ＤＢと、仮想ルータ制御サーバとを備える。ルータは、伝送装置に接続されると、接続された伝送装置を介して制御データを仮想ルータ制御サーバに送信する。仮想ルータ制御サーバは、制御データから、新たに接続されたルータと伝送装置との間の接続関係の情報を取得し、取得した情報と、伝送網通信経路ＤＢに保存されている伝送装置間の通信経路の情報とに基づいて、ルータ間の通信経路を確立する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２６８２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数のルータを用いてネットワークを構成する場合、個々のルータがルーティングプロトコルにより分散的に計算を行うことで経路が選ばれる。例えば、ＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）が持つＩＰネットワークは、複数のルータによって構成されていることが一般的である。ＩＳＰの持つネットワークは広域に存在し、複数の地域にまたがってルータは設置される。それぞれのルータに適切な設定を行うことで、パケットが効率よく転送されるようなＩＰネットワークの構成が可能である。
【０００６】
例えば、異なる地域に転送する際には、設備コストや管理コストが高い長距離回線や海底に設置されている回線を通過することも考えられ、このような回線の利用は極力避けたい。したがって、ＩＳＰ網からパケットをある宛先に届ける際に、ＩＳＰ網外のルータへ転送することが可能なルータが複数存在する場合、あるルータからＩＳＰ網に入ってきたパケットは、可能であれば同じ地域に存在するルータを通ってＩＳＰ網から出ていくようなネットワークが設計されることが多い。
【０００７】
ＩＳＰ網のような広域なネットワークを、特許文献１の伝送システムのように１台のルータとして集中制御を行うと、集中制御を行っているネットワークとその他のネットワークの境界に存在する転送装置の出力ポートが、一台のルータのネットワークインターフェースに対応しているように見え、転送装置が広域に存在する。
【０００８】
このとき、ルータの最適経路計算によって、ある宛先へのパケットに対するパケット出力先が１つに決定することで、その宛先へのパケットが出ていくことができる出力ポートが他にも複数存在したとしても、決定したパケット出力ポートを通ってＩＳＰ網外に出力されることになる。このとき、出力先に決定した出力ポートを持つ転送装置とは距離的に離れた場所にある他の転送装置からのパケットが転送された場合、遠い経路を通過することにより伝送遅延が生じることになる。
【０００９】
本発明は、遠い経路を通過することによる伝送遅延の抑制を図ることを目的とする。
【課題を解決するための手段】
【００１０】
本願において開示される発明の一側面となる制御サーバは、データを転送する複数の転送装置により構成されルータ群に接続される転送装置網を制御する制御サーバであって、前記制御サーバは、プログラムを実行するプロセッサと前記プログラムを記憶するメモリと、前記複数の転送装置および前記複数の転送装置を介して前記ルータ群と通信する通信インタフェースと、を有し、前記プロセッサは、前記複数の転送装置の少なくとも１台が所属する前記転送装置網内の複数の接続ポイントの各々に設定されている優先度に基づいて、前記各接続ポイントを複数のグループにグループ分けするグループ分け処理と、前記グループ分け処理によってグループ分けされたグループごとに、送信元から前記転送装置網を経由して到達する宛先と、当該宛先を広告するルータと、当該ルータに接続される転送装置が所属する接続ポイントと、を特定する経路情報を生成する生成処理と、前記複数の転送装置が前記生成処理によって生成された経路情報にしたがってデータを転送するように前記複数の転送装置に前記通信インタフェースを介して設定する設定処理と、前記経路情報を、当該経路情報により特定されるルータに前記通信インタフェースを介して広告する広告処理と、を実行することを特徴とする。
【発明の効果】
【００１１】
本発明の代表的な実施の形態によれば、遠い経路を通過することによる伝送遅延の抑制を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１２】
【図１】本実施例にかかる転送システムのシステム構成例およびデータ転送例を示す説明図である。
【図２】転送装置の構成例を示すブロック図である。
【図３】入力転送テーブルの記憶内容例を示す説明図である。
【図４】ラベル転送テーブルの記憶内容例を示す説明図である。
【図５】出力転送テーブルの記憶内容例を示す説明図である。
【図６】制御サーバの構成例を示すブロック図である。
【図７】記憶部に格納されている経路情報テーブルの記憶内容例を示す説明図である。
【図８Ａ】差分経路情報テーブルの記憶内容例１を示す説明図である。
【図８Ｂ】差分経路情報テーブルの記憶内容例２を示す説明図である。
【図８Ｃ】差分経路情報テーブルの記憶内容例３を示す説明図である。
【図９Ａ】グループ別経路情報データベースの記憶内容例１を示す説明図である。
【図９Ｂ】グループ別経路情報データベースの記憶内容例２を示す説明図である。
【図９Ｃ】グループ別経路情報データベースの記憶内容例３を示す説明図である。
【図１０】隣接ルータ管理テーブルの記憶内容例を示す説明図である。
【図１１】グループ情報テーブルの記憶内容例を示す説明図である。
【図１２】ＰｏＰ情報テーブルの記憶内容例を示す説明図である。
【図１３】転送装置情報テーブルの記憶内容例を示す説明図である。
【図１４】物理リンク情報テーブルの記憶内容例を示す説明図である。
【図１５】パス管理テーブルの記憶内容例を示す説明図である。
【図１６】グループ分け処理部が実行するグループ分け処理（Ｆ２０００）の詳細な処理手順例を示すフローチャートである。
【図１７】図１６に示したＰｏＰのグループ振り分け処理（Ｆ２１００）の詳細な処理手順例を示すフローチャートである。
【図１８】仮想ルータ管理機能部が実行するグループ分け変化による経路情報操作処理の詳細な処理手順例を示すフローチャートである。
【図１９】図１８に示したグループ分け変化による経路情報テーブル変更処理（Ｆ２２５０）の詳細な処理手順例を示すフローチャートである。
【図２０】図１８に示した最適経路選択処理（Ｆ２３００）の詳細な処理手順例を示すフローチャートである。
【図２１】図１９に示した経路情報比較処理（Ｆ２４００）の詳細な処理手順例を示すフローチャートである。
【図２２】図１８に示した差分経路情報テーブル更新処理（Ｆ２５００）の詳細な処理手順例を示すフローチャートである。
【図２３】図２２に示した差分取得処理（Ｆ２５５０）の詳細な処理手順例を示すフローチャートである。
【図２４】図１８に示した転送装置設定処理（Ｆ２６００）の詳細な処理手順例を示すフローチャートである。
【図２５】転送装置設定対象判定処理（Ｆ３１００）の詳細な処理手順例を示すフローチャートである。
【図２６】図２５に示した入出力転送テーブル作成処理（Ｆ３０００）の詳細な処理手順例を示すフローチャートである。
【図２７】図１８に示した経路情報広告処理（Ｆ２７００）の詳細な処理手順例を示すフローチャートである。
【図２８】ルータ接続による経路広告処理（Ｆ２９００）の詳細な処理手順例を示すフローチャートである。
【図２９】新規経路取得処理（Ｆ２８００）の詳細な処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
本実施例では、複数の転送装置を１台のルータとして集中制御する場合に、ある宛先に対して出力ポートを全体で１つに決定せず、転送装置網を考慮した上でパケットの入力ポートから距離的に近くに存在する出力ポートを通ってパケットを送信できるようにする。これにより、コスト値の低いパスを通ってパケットが転送され、転送装置間において距離が近い同じ転送グループ間で可能な限りパケット転送が行われる。したがって、パケットの転送時間を短くし、伝送遅延を抑制することができる。またこれにより、設備コストや管理コストが高い長距離リンクの使用率が下がり、長距離リンクの増設を抑止することが可能となる。
【００１４】
＜システム構成例およびデータ転送例＞
図１は、本実施例にかかる転送システム１のシステム構成例およびデータ転送例を示す説明図である。なお、以下の説明で、転送装置、ルータ、物理リンク、ＰｏＰ（Ｐｏｉｎｔ  ｏｆ  Ｐｒｅｓｅｎｃｅ）、およびネットワークは複数存在するが、個々を区別しない場合は、凡例で示した符号２００，３００，４００，５００，６００により総称する。一方、個々を区別する場合には、たとえば、転送装置２０１というように、一意に特定できる符号を用いる。
【００１５】
図１において、転送システム１は、複数の転送装置２００が物理リンク４００で接続された転送装置網１０と、複数の転送装置２００を制御する制御サーバ１００と、により構成される。転送装置２００は、物理リンク４００とは別のネットワークによって制御サーバ１００と接続される。転送システム１は、制御サーバ１００により複数の転送装置２００を集中制御することにより、転送装置網１０を一つのルータ（仮想ルータ１０）に見せかけることができるシステムである。転送装置網１０と仮想ルータは同義である。また、転送装置網１０には複数のルータ３００が接続されている。制御サーバ１００と転送装置２００は、例えば、ＴＣＰ(Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ)／ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）プロトコル等によって論理的に接続されていればよい。
【００１６】
転送装置網１０には、ネットワーク６００との境界にある転送装置２０１〜２０５と転送装置網１０の内部にある転送装置２０６，２０７の二種類の転送装置２００が存在する。ネットワーク６００との境界にある転送装置２０１〜２０５は、ルータ３００に接続される。ネットワーク６００との境界にある転送装置２０１〜２０５は、転送装置網１０内において、ＰｏＰ５００内に存在する。ＰｏＰ５００はＩＳＰの設備であり、転送装置網１０外の装置と転送装置網１０との接続ポイントである。ＰｏＰ５００にはＰｏＰ５０４のように転送装置２００が複数含まれていることがある。転送装置２００は、制御サーバ１００による制御によって経路情報が設定される。経路情報とは、ＰｏＰ５００に存在する転送装置２００間でパケットを転送する際に転送装置２００で使用する情報である。
【００１７】
なお、ネットワークＦ〜Ｊは、ルータ３００と転送装置２００との間を接続する物理リンク４００である。また、ルータ３００は、物理リンク４５１〜４５５であるネットワークＦ〜Ｊにより転送装置２０１〜２０５と直接接続されているため、「隣接ルータ」とも称する。
【００１８】
ルータ３００の最適経路計算では、ある宛先に対するパケットの出力ポートは、１つに決定される。最適経路は、経路選択アルゴリズムの結果によって選択される経路を指す。その宛先へのパケットが出力可能な出力ポートが他にも複数存在したとしても、決定された当該出力ポートを通って伝送される。たとえば、宛先がネットワークＢの場合、送信元のネットワークＤからのパケットが、ルータ３０１を経由しても、ルータ３０５を経由しても、ルータ３０２を経由する。
【００１９】
すなわち、個々のルータ３００の最適経路計算により、ネットワークＤからルータ３０１を経由してネットワークＢ宛に送信されるパケットは、ネットワークＦ、仮想ルータ１０、ネットワークＧ、ルータ３０２を経由するパスＰ１で伝送される。この場合、仮想ルータ１０内では、当該パケットは、転送装置２０１、転送装置２０６、転送装置２０２を経由することになる。
【００２０】
また、ネットワークＤからルータ３０５を経由してネットワークＢ宛に送信されるパケットは、ネットワークＪ、仮想ルータ１０、ネットワークＧ、ルータ３０２を経由するパスＰ２で伝送される。この場合、仮想ルータ１０内では、当該パケットは、転送装置２０５、転送装置２０４、転送装置２０７、転送装置２０６、転送装置２０２を経由することになる。
【００２１】
仮想ルータ１０を構成する転送装置２００は、各地域に分散配置される。パスＰ２のように、中継する転送装置２００が多い経路ほど、宛先の地域が送信元の地域と異なるため、設備コストおよび管理コストが高い長距離回線や海底に設置されている回線を通過する。たとえば、パスＰ２において、転送装置２０４，２０７間の物理リンク４０５が高価な長距離回線である場合、ネットワークＤからルータ３０５を経由してネットワークＢ宛に送信されるパケットを、当該物理リンク４０５を経由せずに伝送するのが効率的である。すなわち、ネットワークＪ、仮想ルータ１０、ネットワークＩ、ルータ３０４を経由するパスＰ３で伝送するのが効率的である。この場合、仮想ルータ１０内では、当該パケットは、転送装置２０５、転送装置２０４を経由することになる。
【００２２】
本実施例では、転送装置２００が配置される位置情報（ＰｏＰ５００）により、制御サーバ１００が、転送装置群を複数のグループに分類し、同じ宛先であっても同一グループに存在する転送装置群でパケットを転送するように制御する。
【００２３】
グループ分けでは、制御サーバ１００が、管理者の操作により、ＰｏＰ５００に優先度（ＰｏＰ優先度）を設定し、重要なＰｏＰ５００に対して高いＰｏＰ優先度を設定する。例えば国際回線と接続されているＰｏＰ５００など、多くのネットワーク６００に到達可能である重要なＰｏＰ５００が知られている。図１の例では、ＰｏＰ５０２、５０４が多くのネットワーク６００に到達可能であるため、制御サーバ１００は、管理者の操作により、ＰｏＰ５０２、５０４に対して他のＰｏＰ５００よりも高いＰｏＰ優先度を設定する。これにより、重要なＰｏＰ５００を中心としたグループが作成され、入力されたＰｏＰ５００から遠くのＰｏＰ５００ではなく、近くのＰｏＰ５００から出力できるようなグループ分けが可能となる。
【００２４】
図１の場合、転送装置２０１、２０２がグループ２に所属し、転送装置２０３〜２０５がグループ１に所属することになる。したがって、同じネットワークＢを宛先とする場合であっても、ルータ３０５から転送されてくるパケットは、グループ１に所属する転送装置２０５，２０４を経由して、グループ２を経由せずに、ルータ３０４に到達する。すなわち、ネットワークＤからルータ３０５を経由するパケットは、パスＰ２ではなく、パスＰ３経由でネットワークＢに到達することになる。
【００２５】
なお、異なる転送装置２００の間は物理リンク４００で接続される。物理リンク４００の間には信号を増幅するような中継装置が含まれている可能性があるが、転送装置２００間のデータ転送の方式に関与しないリンクであれば、本実施例では単に物理リンク４００として扱う。
【００２６】
＜転送装置２００の構成例＞
図２は、転送装置２００の構成例を示すブロック図である。転送装置２００は、たとえば、ＭＰＬＳ（Ｍｕｌｔｉ  Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）ラベルスイッチであるが、隣接ルータ３００と接続されている転送装置２００間でパスが確立可能であればよく、転送装置２００はＭＰＬＳラベルスイッチに限定されない。
【００２７】
転送装置２００は、装置制御部２１０と、入力パケット処理部２２０と、入力転送テーブル２２５と、ラベル転送処理部２３０と、ラベル転送テーブル２３５と、出力パケット処理部２４０と、出力転送テーブル２４５と、複数の物理ポート２５０と、を有する。装置制御部２１０、入力パケット処理部２２０、ラベル転送処理部２３０、および出力パケット処理部２４０は、具体的には、たとえば、記憶デバイス（不図示）に記憶されたプログラムをプロセッサ（不図示）に実行させることにより、その機能を実現する。また、装置制御部２１０、入力パケット処理部２２０、ラベル転送処理部２３０、および出力パケット処理部２４０は、例えばＦＰＧＡ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）のような集積回路で設計する等によりハードウェアによってその機能を実現してもよい。入力転送テーブル２２５、ラベル転送テーブル２３５、および出力転送テーブル２４５は、具体的には、たとえば、記憶デバイスに記憶されることにより実現される。まず、入力転送テーブル２２５、ラベル転送テーブル２３５、および出力転送テーブル２４５について説明する。
【００２８】
図３は、入力転送テーブル２２５の記憶内容例を示す説明図である。入力転送テーブル２２５は、転送装置２００に入力されたパケットの転送先に関する情報を格納するテーブルであり、フィールドとして、ポート番号１３０１、宛先ネットワーク１３０２、識別ラベル１３０３、転送ラベル１３０４を有し、各フィールド１３０１〜１３０４の同一行の値の組み合わせがエントリを構成する。入力転送テーブル２２５のエントリは、制御サーバ１００が計算した経路情報を元に設定されるため、制御サーバ１００が経路情報を計算し、装置制御部２１０が設定を行うまでは、空のテーブルである。なお、図３の（Ａ）、（Ｂ）に示す入力転送テーブル２２５は、転送装置２０１に設定される入力転送テーブル２２５である。
【００２９】
ポート番号１３０１は、値として、転送装置２００のポート番号を格納するフィールドである。本実施例では、ポート番号は（２／１）のようにスラッシュを挟んだふたつの数字として表現される。スラッシュの左側の数字が当該転送装置に装備されているネットワークインターフェースカードの番号である。スラッシュの右側の数字が、スラッシュの左側のネットワークインターフェースカードに属する物理ポートの番号である。たとえば、（２／１）は、ネットワークインターフェース２番の物理ポート１番という意味である。
【００３０】
宛先ネットワーク１３０２は、値として、入力されたパケットに含まれる宛先のネットワークアドレスを格納するフィールドである。識別ラベル１３０３は、値として、後述するパスを識別するＭＰＬＳラベルを格納するフィールドである。転送ラベル１３０４は、パケットが次に転送される転送装置を識別する情報を格納するフィールドである。
【００３１】
図４は、ラベル転送テーブル２３５の記憶内容例を示す説明図である。ラベル転送テーブル２３５は、転送装置２００に入力されたパケットの転送装置網１０内の転送先に関する情報を格納するテーブルであり、後述する制御サーバ１００の転送装置管理部１２３によって予め設定されるテーブルである。（Ａ）は、転送装置２０１のラベル転送テーブル２３５である。（Ｂ）は、転送装置２０６のラベル転送テーブル２３５である。（Ｃ）は、転送装置２０７のラベル転送テーブル２３５である。（Ｄ）は、転送装置２０２のラベル転送テーブル２３５である。（Ｅ）は、転送装置２０３のラベル転送テーブル２３５である。
【００３２】
ラベル転送テーブル２３５は、フィールドとして、入力ポート１３５１と、入力転送ラベル１３５２と、出力転送ラベル１３５３と、出力ポート１３５４とを有し、各フィールド１３５１〜１３５４の同一行の値の組み合わせがエントリを構成する。入力ポート１３５１は、値として、パケットが入力されたポート番号を格納するフィールドである。
【００３３】
入力転送ラベル１３５２は、値として、入力されるパケットの転送ラベルを格納するフィールドである。出力転送ラベル１３５３は、値として、出力されるパケットの転送ラベルを格納するフィールドである。入力ポート１３５１から入力されたパケットの入力転送ラベル１３５２の値は、後述するルールにより、出力転送ラベル１３５３の値に書き換えられる。出力ポート１３５４は、値として、パケットが出力されるポート番号を格納するフィールドである。
【００３４】
図５は、出力転送テーブル２４５の記憶内容例を示す説明図である。出力転送テーブル２４５は、転送装置２００に入力されたパケットの転送装置網１０外の出力先に関する情報を格納するテーブルであり、フィールドとして、宛先ネットワーク１４０２と、識別ラベル１４０３と、転送ラベル１４０４と、書換宛先ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）１４０５と、書換送信元ＭＡＣ１４０６とを有し、各フィールド１４０１〜１４０５の同一行の値の組み合わせがエントリを構成する。出力転送テーブル２４５のエントリは、制御サーバ１００が計算した経路情報を元に設定されるため、制御サーバ１００が経路情報を計算し、装置制御部２１０が設定を行うまでは、空のテーブルである。なお、（Ａ）および（Ｂ）は、転送装置２０２に設定される出力転送テーブル２４５であり、（Ｃ）は、転送装置２０３に設定される出力転送テーブル２４５である。
【００３５】
宛先ネットワーク１４０２は、値として、出力されるパケットが到達可能な宛先のネットワークアドレスを格納するフィールドである。識別ラベル１４０３は、後述のパスを識別するＭＰＬＳラベルを格納するフィールドである。転送ラベル１４０４は、出力されるパケットが次に転送される転送装置２００を識別する情報を格納するフィールドである。書換宛先ＭＡＣ１４０５は、後述するパケットの宛先ＭＡＣアドレスを書き換える処理を行う際に、書き換えられるＭＡＣアドレスの値を格納するフィールドである。書換送信元ＭＡＣ１４０６は、後述するパケットの送信元ＭＡＣアドレスを書き換える処理を行う際に、書き換えられるＭＡＣアドレスの値を格納するフィールドである。
【００３６】
図２に戻り、装置制御部２１０は、制御サーバ１００から受け取ったパケットを元に、入力転送テーブル２２５、ラベル転送テーブル２３５、および出力転送テーブル２４５に対して操作を行う。
【００３７】
入力パケット処理部２２０は、物理ポート２５０から入力されたパケットを処理する。具体的には、たとえば、入力パケット処理部２２０は、物理ポート２５０から入力されたパケットにＭＰＬＳラベルが挿入されている場合、当該パケットをラベル転送処理部２３０にそのまま転送する。一方、入力されたパケットにＭＰＬＳラベルが挿入されていない場合、入力パケット処理部２２０は、入力転送テーブル２２５を参照する。
【００３８】
入力パケット処理部２２０は、当該パケットが入力されたポートのポート番号がポート番号１３０１の値と一致し、かつ、当該パケットに含まれる宛先ネットワークアドレスが宛先ネットワーク１３０２の値と一致するエントリを、入力転送テーブル２２５から検索する。一致するエントリが存在する場合、入力パケット処理部２２０は、該当エントリの識別ラベル１３０３および転送ラベル１３０４の値を当該パケットに挿入してラベル転送処理部２３０にわたす。具体的には、たとえば、入力パケット処理部２２０は、識別ラベル１３０３の値を、当該パケットのＭＡＣヘッダとＩＰヘッダとの間に挿入する。また、入力パケット処理部２２０は、転送ラベル１３０４の値を、ＭＡＣヘッダと識別ラベル１３０３の値との間に挿入する。
【００３９】
また、入力パケット処理部２２０は、当該パケットの処理を次に行うラベル転送処理部２３０が、当該パケットが転送装置２００に入力されたポート番号を識別するために、ポート番号１３０１の値（入力ポート番号）が記録されたヘッダ（「入力ポート情報ヘッダ」と呼ぶ）を当該パケットに挿入する。入力ポート情報ヘッダは、転送装置２００内でのみ使用される情報であり、ポート番号が入る固定長領域をもつ。入力ポート番号をラベル転送処理部２３０が判断することができれば、入力ポート情報ヘッダの構成は問わない。
【００４０】
ラベル転送処理部２３０は、入力パケット処理部２２０から転送されてくるパケットを、ラベル転送テーブル２３５を参照して処理する。具体的には、ラベル転送処理部２３０は、入力パケット処理部２２０から転送されてくるパケットの入力ポート情報ヘッダに記録されているポート番号が入力ポート１３５１の値と一致し、かつ、当該パケットに含まれる転送ラベルが入力転送ラベル１３５２と一致するエントリを、ラベル転送テーブル２３５から検索する。
【００４１】
一致するエントリが存在する場合、ラベル転送処理部２３０は、当該パケットに含まれる転送ラベルの番号を当該エントリの出力転送ラベル１３５３の値に書き換える。そして、ラベル転送処理部２３０は、入力パケット処理部２２０で当該パケットに挿入された入力ポート情報ヘッダを外す。
【００４２】
また、ラベル転送処理部２３０は、次にパケットを処理する出力パケット処理部２４０が当該パケットを出力するポート番号を識別できるように、出力ポート１３５４の値（出力ポート番号）が記録されたヘッダ（「出力ポート情報ヘッダ」と呼ぶ）を当該パケットに挿入する。出力ポート情報ヘッダは転送装置２００内でのみ使用される情報であり、ポート番号が入る固定長領域をもつ。出力ポート番号を出力パケット処理部２４０が判断することができれば、出力ポート情報ヘッダの構成は問わない。ラベル転送処理部２３０は、出力ポート情報ヘッダが挿入されたパケットを出力パケット処理部２４０に渡す。
【００４３】
出力パケット処理部２４０は、ラベル転送処理部２３０から転送されてくるパケットを、出力転送テーブル２４５を参照して処理する。具体的には、出力パケット処理部２４０は、当該パケットに含まれる宛先ネットワークアドレスが宛先ネットワーク１４０２の値と一致し、入力パケット処理部２２０で挿入された識別ラベル１３０３の値が識別ラベル１４０３の値と一致し、かつ、ラベル転送処理部２３０で出力転送ラベル１３５３の値に書き換えられた転送ラベルが、転送ラベル１４０４の値と一致するエントリを、出力転送テーブル２４５から検索する。
【００４４】
一致するエントリがある場合、出力パケット処理部２４０は、ラベル転送処理部２３０から受け取ったパケットの宛先ＭＡＣアドレスを当該エントリの書換宛先ＭＡＣ１４０５の値に書き換える。続いて、出力パケット処理部２４０は、宛先ＭＡＣアドレスが書き換えられたパケットの送信元ＭＡＣアドレスを書換送信元ＭＡＣ１４０６の値に書き換え、挿入された識別ラベルおよび転送ラベルを外す。また、出力パケット処理部２４０は、出力ポート情報ヘッダに記録されたポート番号を参照し、出力ポート情報ヘッダを外した後に、参照したポート番号からパケットを出力する。
【００４５】
なお、入力パケット処理部２２０は、物理ポート２５０から受信したパケットが仮想ルータ１０宛のネットワーク制御用パケットであれば、当該パケットを制御サーバ１００に転送する。また、制御サーバ１００から転送装置２００にネットワーク制御用パケットが届いた場合、入力パケット処理部２２０は、当該パケットをラベル転送処理部２３０を通して出力パケット処理部２４０に渡す。ネットワーク制御用パケットは、物理ポート２５０を通って転送装置網１０外に送信され、ルータ３００に転送される。
【００４６】
＜制御サーバ１００の構成例＞
図６は、制御サーバ１００の構成例を示すブロック図である。制御サーバ１００は、処理部１２０と、記憶部１４０と、を有する。処理部１２０は、記憶部１４０にあるデータベースやテーブルを参照したり、更新したりする。処理部１２０は、パケット送受信部１２４と、仮想ルータ機能部１２１と、グループ分け処理部１２２と、転送装置管理部１２３と、を有する。処理部１２０は、具体的には、たとえば、記憶デバイス（不図示）に記憶されたプログラムをプロセッサ（不図示）に実行させることにより、その機能を実現する。
【００４７】
パケット送受信部１２４は、ポート（不図示）を介して転送装置２００からパケットを受信し、受信したパケットを解析し、解析したパケットを仮想ルータ機能部１２１または転送装置管理部１２３に振り分ける。たとえば、転送装置２００から受信したパケットが、ＢＧＰ（Ｂｏｒｄｅｒ  Ｇａｔｅｗａｙ  Ｐｒｏｔｏｃｏｌ）などのＩＰ経路制御プロトコル情報を持ったネットワーク制御パケットである場合、パケット送受信部１２４は、仮想ルータ機能部１２１にパケットをわたす。また、転送装置２００から受信したパケットが、転送装置２００の情報や物理リンク４００の情報など転送装置制御に関係する転送装置制御用パケットである場合、パケット送受信部１２４は、転送装置管理部１２３にパケットをわたす。
【００４８】
仮想ルータ機能部１２１は、経路情報テーブル１４１と差分経路情報テーブル１４２とグループ別経路情報データベース１４３と隣接ルータ管理テーブル１４４とを参照したり、更新したりする。仮想ルータ機能部１２１は、隣接するルータ３００に対しネットワーク制御パケットを送受信して、転送装置網１０を１つのルータとして動作するように設定する。具体的には、仮想ルータ機能部１２１は、隣接するルータ３００から受信したネットワーク制御パケットを解析する。そして、仮想ルータ機能部１２１は、ネットワーク制御パケットが、隣接関係の構築および維持や、装置間の生存確認等の制御パケットである場合、転送装置網１０を１つのルータとして動作するように設定する。
【００４９】
より具体的には、仮想ルータ機能部１２１は、ルータ３０１〜３０５から、それぞれのルータ３００が存在するネットワーク６００に広告されてくるＩＰネットワークアドレスＡ〜Ｅの情報を受け取る。仮想ルータ機能部１２１は、仮想ルータ機能部１２１が所属するＡＳ（Ａｕｔｏｎｏｍｏｕｓ  Ｓｙｓｔｅｍ）以外のＡＳに存在するルータと互いにＢＧＰによって経路情報をやりとりする。ルータ３０１〜３０５が仮想ルータ機能部１２１に対して広告する経路情報は、ルータ３０１〜３０５と接続されている転送装置２０１〜２０５により受信される。
【００５０】
転送装置２０１〜２０５が受信した経路情報は、制御サーバ１００に転送され、パケット送受信部１２４が仮想ルータ機能部１２１に転送し、仮想ルータ機能部１２１が処理を行う。ルータ３０２およびルータ３０４は、ネットワークアドレスＡ、Ｂ、Ｃの経路情報を保持し、ルータ３０１およびルータ３０５は、ネットワークアドレスＤの経路情報を保持し、ルータ３０３はネットワークアドレスＥの経路情報を保持する。なお、グループ分けの処理を行うまでは、ルータ３０１〜３０５と転送装置２０１〜２０５間は接続されておらず、経路情報はやりとりされない。
また、仮想ルータ機能部１２１がルータ３０１〜３０５に対して広告する経路情報、つまり、仮想ルータ１０が広告する経路情報は、制御サーバ１００がルータ３０１〜３０５と接続されている転送装置２０１〜２０５に送信し、転送装置２０１〜２０５がルータ３０１〜３０５に転送する。
【００５１】
仮想ルータ機能部１２１は、静的経路情報や、ＯＳＰＦ（Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ）やＩＳ−ＩＳ（Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｓｙｓｔｅｍ  ｔｏ  Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｓｙｓｔｅｍ）といったＩＧＰ（Ｉｎｔｅｒｉｏｒ  Ｇａｔｅｗａｙ  Ｐｒｏｔｏｃｏｌ）を用いて取得した内部経路情報を保持する。仮想ルータ機能部１２１は、内部経路情報をＢＧＰの経路に取り込んで、ＢＧＰ経路情報として経路情報テーブル１４１を作成し、経路情報テーブル１４１に記録された情報を利用して最適な経路を決定する。
【００５２】
転送装置網１０外から転送装置網１０に入力されたパケットが、経路情報テーブル１４１の宛先ネットワーク１１０１に記録されたネットワークに届くように、経路情報テーブル１４１の情報をもとに、仮想ルータ機能部１２１は、ＰｏＰに存在する転送装置２００の装置制御部２１０に対して、入力転送テーブル２２５および出力転送テーブル２４５の設定を要求する。これにより、転送装置２００に入力転送テーブル２２５および出力転送テーブル２４５が設定される。転送装置網１０外から転送装置網１０に入力されたパケットは、転送装置２００で入力転送テーブル２２５、ラベル転送テーブル２３５、出力転送テーブル２４５の情報を元に、事前に設定された転送装置間のパスに届けられ、パケットの宛先ネットワークに書かれた転送装置網１０外のネットワークに転送される。
【００５３】
予め管理者により何らかの方法で設定された内部経路情報は、ＢＧＰの経路情報として経路情報テーブル１４１に取り込まれる。また、ＢＧＰのパス属性を元に経路情報が比較され、ルーティングに使用される最適経路が決定される。
【００５４】
ルータ３００は、ルーティングプロトコルや静的経路情報毎に経路情報を保持している。各プロトコルで同じ経路情報を受け取った場合、ルータ３００は、経路の取得方法と取得元プロトコルとに応じて設定された優先度が高い経路情報を選択して最適経路とする。通常のルータの振る舞いとは異なり、本実施例では、ルータ３００は、すべての経路情報をＢＧＰ経路情報に変換してから、変換後の経路情報を比較して最適経路を決定する。なお、本実施例では、ルータ３００の経路選択手順を簡略化して説明しているが、通常のルータのようにプロトコル毎に経路表が分かれていた上で最適経路を選択してもよい。
【００５５】
仮想ルータ機能部１２１は、経路情報を経路情報テーブル１４１に設定すると、設定された経路情報の内容をもとに、転送装置２００がパケットを転送する際に参照する入力転送テーブル２２５および出力転送テーブル２４５のエントリを作成する。仮想ルータ機能部１２１は、作成された入力転送テーブル２２５および出力転送テーブル２４５のエントリを転送装置２００に設定する経路情報として転送装置２００に送信する。
【００５６】
転送装置２００は、制御サーバ１００から受け取った入力転送テーブル２２５および出力転送テーブル２４５のエントリを入力転送テーブル２２５、出力転送テーブル２４５に設定する。転送装置２００は、入力されたパケットに対して、入力転送テーブル２２５および出力転送テーブル２４５を参照することで、パケットを転送するパスを識別することができる。ルータ３００と当該ルータ３００に接続されている転送装置２００との間では、パスが事前に設定されているため、転送装置網１０に入力されたパケットは、設定されているパスの先に存在するルータ３００に転送される。転送装置網１０に隣接しているルータ３００と接続されている転送装置２００間に設定されているパスは、転送装置２００の故障や物理リンク断線などの転送装置網１０の状態が変わらなければ、基本的には一定である。
【００５７】
グループ分け処理部１２２は、グループ情報テーブル１４５と、ＰｏＰ情報テーブル１４６と、パス管理テーブル１４９とを、参照したり、更新したりする。グループ分け処理部１２２は、後述のＰｏＰ情報テーブル１４６に記録された情報を元にして、複数の転送装置２００で構成される転送装置網１０を１つ以上の転送グループに分ける。各転送グループにはＰｏＰが１つ以上所属しており、また、仮想ルータ機能部１２１は転送グループ毎に異なる経路表をもつ。本実施例では、ルータ３００が有する経路表はグループ別経路情報データベース１４３に表現されており、転送装置網１０外部からのパケットが入力された転送装置２００が所属する転送グループに応じて、異なるパケット転送が行われる。
【００５８】
転送装置管理部１２３は、転送装置情報テーブル１４７と、物理リンク情報テーブル１４８と、パス管理テーブル１４９とを、参照したり、更新したりする。また、転送装置管理部１２３は隣接ルータ管理テーブル１４４を参照する。転送装置管理部１２３は、複数の転送装置２００、転送装置２００間を接続している物理リンク４００、及び、転送装置２００間で確立される論理的なパスの状態を監視し、また、転送装置２００の設定や論理的なパスの設定を行う。また、転送装置管理部１２３は、ラベル転送テーブル２３５を転送装置２００に設定する。
【００５９】
転送装置管理部１２３は、隣接ルータ管理テーブル１４４を参照して、そのエントリ数分のパスを作成する。転送装置管理部１２３は、含まれる物理リンク４００のリンク間距離の和が最小になるようにパスに含まれる物理リンク４００を決定し、パスを確立する。リンク間距離を最小とするようなパスの作成方法に関しては、たとえば、ＳＰＦ（Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ）アルゴリズムが採用される。転送装置管理部１２３は、パスを張る端点の転送装置２００を根、その他の転送装置２００を葉、物理リンク４００を枝としてツリーを作成し、ＳＰＦアルゴリズムに従って、コストが最短になるパスを作成する。枝のコストにはリンク間距離を超えない整数のうち最大値を対応させる。
記憶部１４０は、具体的には、たとえば、記憶デバイスにより実現される。まず、記憶部１４０内のテーブルおよびデータベースについて説明する。
【００６０】
（経路情報テーブル）
図７は、記憶部１４０に格納されている経路情報テーブルの記憶内容例を示す説明図である。経路情報テーブル１４１は、経路情報を記憶するテーブルであり、フィールドとして、宛先ネットワーク１１０１と、広告元ルータ１１０２と、他パス属性１１０３と、ＰｏＰ優先度１１０４と、情報源ＰｏＰ１１０５と、情報源グループ１１０６と、経路取得元１１０７と、を有し、各フィールド１１０１〜１１０７の同一行の値の組み合わせがエントリとなる経路情報を構成する。経路情報テーブル１４１は、仮想ルータ機能部１２１により作成されるテーブルである。
【００６１】
宛先ネットワーク１１０１は、値として、当該経路情報によって到達可能な宛先のネットワークアドレスを格納するフィールドである。広告元ルータ１１０２は、値として、当該経路情報を仮想ルータ機能部１２１に対して広告したルータの識別番号（ルータＩＤ）を示す。仮想ルータ機能部１２１は、ルータ３０１〜３０５に対して転送装置網１０をひとつの仮想ルータ１０としてみせている。仮想ルータ１０のルータＩＤを、ＩＤ：１０とする。仮想ルータ機能部１２１は、転送装置網１０が存在するＡＳ内で得られたルータＩＤであれば広告元ルータ１１０２には「１０」を記憶する。
【００６２】
他パス属性１１０３は、値として、特有なパス属性を除いた他のパス属性を格納するフィールドである。他パス属性１１０３には、たとえば、一つのＡＳ内における経路の優先度を示すＬＯＣＡＬ＿ＰＲＥＦ属性や、当該経路情報が通ってきたＡＳを示すＡＳ＿ＰＡＴＨ属性等がある。ＰｏＰ優先度１１０４は、当該経路情報を受け取った転送装置２００が所属するＰｏＰに設定されているＰｏＰ優先度８５２の値を格納するフィールドである。ＰｏＰ優先度８５２は、後述するＰｏＰ情報テーブル１４６のフィールドである。ＰｏＰ優先度１１０４には、グループ分け処理の前では、優先度の初期値として未定義を示す「−１」が記録される。
【００６３】
情報源ＰｏＰ１１０５は、値として、当該経路情報を受け取った転送装置２００が所属するＰｏＰの識別番号を格納するフィールドである。情報源グループ１１０６は、値として、当該経路情報を受け取った転送装置２００が所属するグループの識別番号を格納するフィールドである。経路取得元１１０７は、値として、当該経路情報を仮想ルータ機能部１２１が取得した転送装置２００の識別情報とそのポート番号とを格納するフィールドである。すなわち、経路取得元１１０７は、値として、宛先ネットワーク１１０１に直接接続されている転送装置２００の識別情報とそのポート番号を格納する。たとえば、「２０１（２／１）」のように、左側の「２０１」が転送装置２００の識別情報であり、右側の（２／１）がポート番号である。
【００６４】
宛先ネットワーク１１０１の値と経路取得元１１０７の値の組み合わせにより、どの転送装置２００のどのポートがどのネットワーク６００に接続されているかが特定される。たとえば、エントリ１１５１では、宛先ネットワーク１１０１の値が「Ｆ」であり、経路取得元１１０７の値が「２０１（２／１）」である。したがって、転送装置２０１のポート（２／１）がネットワークＦに接続されていることがわかる。
【００６５】
なお、後述するグループ分け処理を行うまでは、グループは定義されていない。したがって、当該経路情報を受け取った転送装置２００が所属するグループの識別番号を表す情報源グループ１１０６には、グループ分け処理の前では、未定義を示す「−１」が記録される。
なお、（Ａ）は、後述するグループ分け処理（Ｆ２０００）実行前の経路情報テーブル１４１であり、（Ｂ）は、後述するグループ分け変化による経路情報テーブル変更処理（Ｆ２２５０）実行後の経路情報テーブル１４１であり、（Ｃ）は、隣接ルータ３００から経路情報が広告された後の経路情報テーブル１４１である。
【００６６】
（差分経路情報テーブル）
図８は、差分経路情報テーブルの記憶内容例を示す説明図である。差分経路情報テーブル１４２は、差分経路情報を記憶するテーブルである。差分経路情報は、図８に示したエントリである。当該エントリは、図９Ａ〜図９Ｃに示したグループ別現経路情報テーブル１０００のエントリから、グループ別旧経路情報テーブル１０５０のエントリの情報と一致するエントリを削除した残余のエントリに相当する。
【００６７】
差分経路情報テーブル１４２は、仮想ルータ機能部１２１によって内容が書き換えられる。差分経路情報テーブル１４２は、経路情報をやりとりが完了するまでは空のテーブルである。差分経路情報テーブル１４２は、フィールドとして、宛先ネットワーク１２０１と、広告元ルータ１２０２と、他パス属性１２０３と、ＰｏＰ優先度１２０４と、情報源ＰｏＰ１２０５と、旧情報源グループ１２０６と、現情報源グループ１２０７と、経路取得元１２０８と、削除・更新１２０９とを有し、各フィールド１２０１〜１２０９の同一行の値の組み合わせがエントリとなる差分経路情報を構成する。
【００６８】
宛先ネットワーク１２０１は、値として、当該差分経路情報によって到達可能なネットワークアドレスを格納するフィールドである。広告元ルータ１２０２は、値として、当該差分経路情報を仮想ルータ機能部１２１に対して広告したルータの識別番号を格納するフィールドである。
【００６９】
他パス属性１２０３は、値として、ＰｏＰ優先度１２０４と情報源ＰｏＰ１２０５と旧情報源グループ１２０６と現情報源グループ１２０７と経路取得元１２０８のような特定のパス属性を除いた、優先度や重みといった情報を格納するフィールドである。ＢＧＰではパス属性により最適となる経路が決定される。他パス属性１２０３には、一つのＡＳ内における経路の優先度を示すＬＯＣＡＬ＿ＰＲＥＦ属性や、当該差分経路情報が通ってきたＡＳを示すＡＳ＿ＰＡＴＨ属性等のいずれかが採用される。ＢＧＰのパス属性を比較する順番についてはＲＦＣ１７７１で言及されているが、実装依存である。したがって、本実施例では、ＰｏＰ優先度１２０４と情報源ＰｏＰ１２０５と旧情報源グループ１２０６と現情報源グループ１２０７と経路取得元１２０８に注目し、他パス属性を比較する順番に関しては特に規定しない。
【００７０】
ＰｏＰ優先度１２０４は、値として、当該差分経路情報を受け取った転送装置２００が所属するＰｏＰ５００に設定されているＰｏＰ優先度を格納するフィールドである。情報源ＰｏＰ１２０５は、値として、当該差分経路情報を受け取った転送装置２００が所属するＰｏＰ５００の識別情報を格納するフィールドである。旧情報源グループ１２０６は、値として、当該差分経路情報を受け取った転送装置２００が所属するグループの識別番号を格納するフィールドである。
【００７１】
現情報源グループ１２０７は、値として、当該差分経路情報が記録された際に転送装置２００が所属したグループの識別番号を格納するフィールドである。経路取得元１２０８は、値として、当該差分経路情報を取得した転送装置２００の識別情報と転送装置２００のポートのポート番号とを格納するフィールドである。削除・更新１２０９は、「削除」または「更新」が格納されるフィールドである。「削除」は、当該差分経路情報が削除されるべき経路情報であることを示し、「更新」は、当該差分経路情報が更新されるべき経路情報であることを示す。
なお、図８Ａは、後述するグループ分け変化による経路情報操作処理（Ｆ２２００）における差分経路情報テーブル更新処理（Ｆ２５００）実行後の差分経路情報テーブル１４２であり、図８Ｂは、後述するルータ接続による経路広告処理（Ｆ２９００）における差分経路情報テーブル更新処理（Ｆ２５００）実行後の、差分経路情報テーブル１４２であり、図８Ｃは、後述する新規経路取得処理（Ｆ２８００）における差分経路情報テーブル更新処理（F２５００）実行後の差分経路情報テーブル１４２である。
【００７２】
（グループ別経路情報データベース）
図９Ａ〜図９Ｃは、グループ別経路情報データベースの記憶内容例を示す説明図である。グループ別経路情報データベース１４３は、グループ分け処理を行う前後においてグループ毎に適用される経路情報を保持し、グループ分け処理を行った後のグループ毎に適用される経路情報を保持するグループ別現経路情報テーブル１０００と、グループ分け処理を行う前にグループ毎に適用されていた経路情報を保持するグループ別旧経路情報テーブル１０５０と、を格納するデータベースである。グループ別経路情報データベース１４３は、仮想ルータ機能部１２１によって書き換えられる。
【００７３】
グループ別旧経路情報テーブル１０５０は、グループ分けや経路情報変更が実行される前のグループ別の経路情報（グループ別旧経路情報）を保持するテーブルである。グループ別現経路情報テーブル１０００は、グループ分けや経路情報変更が実行された後のグループ別の経路情報（グループ別現経路情報）を保持するテーブルである。グループ別現経路情報テーブル１０００およびグループ別旧経路情報テーブル１０５０は、仮想ルータ機能部１２１により、経路情報テーブル１４１の情報を元に作成される。なお、後述するグループ分け処理を行うまでは、グループは定義されておらず、グループ別現経路情報テーブル１０００およびグループ別旧経路情報テーブル１０５０は、初めはエントリがない空のテーブルである。
【００７４】
グループ別現経路情報テーブル１０００は、フィールドとして、利用グループ１００１と、宛先ネットワーク１００２と、広告元ルータ１００３と、他パス属性１００４と、ＰｏＰ優先度１００５と、情報源ＰｏＰ１００６と、情報源グループ１００７と、経路取得元１００８と、を有し、各フィールド１００１〜１００８の同一行の値の組み合わせがエントリとなるグループ別現経路情報を構成する。
【００７５】
利用グループ１００１は、値として、当該エントリを利用する現グループの識別番号を格納するフィールドである。宛先ネットワーク１００２は、値として、当該グループ別現経路情報によって到達可能なネットワークアドレスを格納するフィールドである。広告元ルータ１００３は、値として、当該グループ別現経路情報を仮想ルータ機能部１２１に対して広告したルータ３００の識別番号を格納するフィールドである。他パス属性１００４は、値として、上述した特定のパス属性を除いた他のパス属性を格納するフィールドである。
【００７６】
ＰｏＰ優先度１００５は、値として、当該グループ別現経路情報を受け取った転送装置２００が所属するＰｏＰ５００に設定されているＰｏＰ優先度を格納するフィールドである。情報源ＰｏＰ１００６は、値として、当該グループ別現経路情報を受け取った転送装置２００が所属するＰｏＰ５００の識別情報を格納するフィールドである。情報源グループ１００７は、値として、当該グループ別現経路情報を受け取った転送装置２００が所属するグループを格納するフィールドである。経路取得元１００８は、値として、当該グループ別現経路情報を取得した転送装置２００の識別情報と転送装置２００のポートのポート番号とを格納するフィールドである。
【００７７】
グループ別旧経路情報テーブル１０５０は、フィールドとして、利用グループ１０５１と、宛先ネットワーク１０５２と、広告元ルータ１０５３と、他パス属性１０５４と、ＰｏＰ優先度１０５５と、情報源ＰｏＰ１０５６と、情報源グループ１０５７と、経路取得元１０５８とを有し、各フィールド１０５１〜１０５８の同一行の値の組み合わせがエントリとなるグループ別現経路情報を構成する。
【００７８】
利用グループ１０５１は、値として、当該エントリを利用する旧グループの識別番号を格納するフィールドである。宛先ネットワーク１０５２は、値として、当該グループ別旧経路情報によって到達可能なネットワークアドレスを格納するフィールドである。広告元ルータ１０５３は、値として、当該グループ別旧経路情報を仮想ルータ機能部１２１に対して広告したルータ３００の識別番号を格納するフィールドである。他パス属性１０５４は、値として、上述した特定のパス属性を除いた他のパス属性を格納するフィールドである。
【００７９】
ＰｏＰ優先度１０５５は、値として、当該グループ別旧経路情報を受け取った転送装置２００が所属するＰｏＰ５００に設定されているＰｏＰ優先度を格納するフィールドである。情報源ＰｏＰ１０５６は、値として、当該グループ別旧経路情報を受け取った転送装置２００が所属するＰｏＰ５００の識別情報を格納するフィールドである。情報源グループ１０５７は、値として、当該グループ別旧経路情報を受け取った転送装置２００が所属するグループを格納するフィールドである。経路取得元１０５８は、値として、当該グループ別旧経路情報を取得した転送装置２００の識別情報と転送装置２００のポートのポート番号とを格納するフィールドである。
なお、図９Ａ，図９Ｂは、後述する最適経路選択処理（Ｆ２３００）によるグループ別経路情報データベース１４３の更新過程を示したものであり、図９Ｃは、後述する新規経路取得処理（Ｆ２８００）における最適経路選択処理（Ｆ２３００）実行後のグループ別経路情報データベース１４３である。
【００８０】
（隣接ルータ管理テーブル）
図１０は、隣接ルータ管理テーブル１４４の記憶内容例を示す説明図である。隣接ルータ管理テーブル１４４は、転送装置網１０と接続されるルータ３０１〜３０５に関する情報を格納するテーブルである。当該情報は、予め管理者により登録される。隣接ルータ管理テーブル１４４は、仮想ルータ機能部１２１によって書き換えられる。図１０の（Ａ）が、ルータ３００が転送装置網１０に接続される前の内容であり、図１０の（Ｂ）が、ルータ３００が転送装置網１０に接続された後の内容である。
【００８１】
隣接ルータ管理テーブル１４４は、フィールドとして、隣接ルータＩＤ８０１と、隣接ルータＭＡＣ８０２と、隣接ルータＩＰ８０３と、接続転送装置８０４と、接続ポートＭＡＣ８０５と、接続ポートＩＰ８０６と、接続ＰｏＰ＿ＩＤ８０７と、接続状態８０８とを有し、各フィールド８０１〜８０８の同一行の値の組み合わせがエントリを構成する。
【００８２】
隣接ルータＩＤ８０１は、値として、転送装置網１０と接続されているルータ３００を識別する番号（隣接ルータＩＤ）を格納するフィールドである。隣接ルータＭＡＣ８０２は、値として、転送装置網１０と接続されているルータ３００のネットワークインターフェースに設定されているＭＡＣアドレスを格納するフィールドである。初期状態ではルータ３００は転送装置網１０に接続されていないため、ルータ３００が転送装置網１０に接続されるまでは、値として、ブロードキャストアドレスを示す「ＢＲＯＡＤＣＡＳＴ」が格納される（（Ａ）を参照）。なお、ルータ３００が転送装置網１０に接続されると、仮想ルータ機能部１２１は、ＡＲＰ解決により隣接ルータ３００のネットワークインターフェースに設定されているＭＡＣアドレスを取得して、隣接ルータＭＡＣ８０２に上書きする。
【００８３】
隣接ルータＩＰ８０３は、値として、転送装置網１０に接続されているルータ３００のネットワークインターフェースに設定されているＩＰアドレスを格納するフィールドである。接続転送装置８０４は、値として、当該隣接ルータ３００に接続されている転送装置２００の識別情報とそのポート番号とを格納するフィールドである。接続ポートＭＡＣ８０５は、値として、当該隣接ルータ３００に接続されている転送装置２００のポートのＭＡＣアドレスを格納するフィールドである。転送装置網１０は接続されている隣接ルータ３０１〜３０５からみると１つのルータのようにみえる。このため、隣接ルータ３００からみると、接続ポートＭＡＣ８０５の値が、接続している仮想ルータ１０のＭＡＣアドレスのようにみえる。
【００８４】
接続ポートＩＰ８０６は、値として、当該隣接ルータ３００に対して見せている仮想ルータ１０のＩＰアドレスを格納するフィールドである。接続ポートＩＰ８０６は、隣接ルータ３００と通信を行うＩＰアドレスとして設定される。そのＩＰアドレスに対応するネットワークアドレスは、経路情報テーブル１４１に記録される。当該隣接ルータ３００に対してＢＧＰの経路情報を広告する際など、当該隣接ルータ３００宛に送信したパケットの送信元ＩＰアドレスとして接続ポートＩＰ８０６は使用される。これにより、当該隣接ルータ３００からみると、接続転送装置８０４が仮想ルータ１０のポートにみえる。
【００８５】
接続ＰｏＰ＿ＩＤ８０７は、値として、接続転送装置８０４が所属するＰｏＰ５００の識別情報を格納するフィールドである。接続状態８０８は、値として、転送装置網１０と当該隣接ルータ３００の接続の状態を示す情報を格納するフィールドである。当該情報には、「通信可」と「通信不可」がある。「通信可」は、当該隣接ルータ３００と仮想ルータ機能部１２１との間のＩＰ通信が可能であることを示す。また、「通信不可」は、当該ルータ３００と仮想ルータ機能部１２１との間のＩＰ通信が不可能であることを示す。初期状態では隣接ルータ３０１〜３０５と転送装置網１０は接続されていないため、接続状態８０８の値は、「通信不可」である（（Ａ）を参照）。
【００８６】
（グループ情報テーブル）
図１１は、グループ情報テーブル１４５の記憶内容例を示す説明図である。グループ情報テーブル１４５は、グループ分け処理によって分けられたグループ毎に属するＰｏＰ５００のＰｏＰ＿ＩＤを保持するテーブルであり、フィールドとして、グループＩＤ９５１と、所属ＰｏＰリスト９５２とを有し、各フィールド９５１、９５２の同一行の値の組み合わせがエントリを構成する。グループ情報テーブル１４５は、グループ分け処理部１２２によって書き換えられる。
【００８７】
グループＩＤ９５１は、値として、転送グループの識別番号を格納するフィールドである。所属ＰｏＰリスト９５２は、値として、当該転送グループに所属しているＰｏＰ５００のリスト、すなわち、当該転送グループに所属しているＰｏＰ５００の識別番号を１つ以上格納するフィールドである。
なお、（Ａ）〜（Ｅ）は、後述するグループ分け処理（Ｆ２０００）によるグループ情報テーブル１４５の更新過程を示したものである。
【００８８】
（ＰｏＰ情報テーブル）
図１２は、ＰｏＰ情報テーブル１４６の記憶内容例を示す説明図である。ＰｏＰ情報テーブル１４６は、グループ分け処理前後でＰｏＰ５００が属するグループＩＤ情報を保持するテーブルであり、フィールドとして、ＰｏＰ＿ＩＤ８５１と、ＰｏＰ優先度８５２と、所属転送装置リスト８５３と、旧所属グループ８５４と、現所属グループ８５５とを有し、各フィールド８５１〜８５５の同一行の値の組み合わせがエントリを構成する。ＰｏＰ情報テーブル１４６は、グループ分け処理部１２２によって書き換えられる。
【００８９】
ＰｏＰ＿ＩＤ８５１は、複数存在するＰｏＰ５００の識別情報を格納するフィールドである。ＰｏＰ優先度８５２は、転送グループ分けを行うために使用するパラメータを格納するフィールドであり、初期値は「０」とする。なお、図１２の（Ａ）ではＰｏＰ優先度８５２には初期値である０ではない値が入力されているエントリが存在するが、これについては後述する。
【００９０】
所属転送装置リスト８５３は、ＰｏＰ＿ＩＤ８５１で識別されるＰｏＰ５００に存在する転送装置２００の識別情報を１つ以上格納するフィールドである。旧所属グループ８５４は、ＰｏＰ＿ＩＤ８５１で識別されるＰｏＰ５００がグループ分け前に所属していたグループの番号を格納するフィールドである。
【００９１】
現所属グループ８５５は、ＰｏＰ＿ＩＤ８５１で識別されるＰｏＰ５００がグループ分け後に所属するグループの番号を格納するフィールドである。旧所属グループ８５４および現所属グループ８５５は、グループ分け前には不定な値ではあるが、ＰｏＰ優先度８５２が初期値の０であれば後述するように転送グループは１つになるので、旧所属グループ８５４および現所属グループ８５５の初期値は「１」とする。
【００９２】
転送グループ分けを行う場合、管理者が、重要なＰｏＰ５００に対して高い優先度をＰｏＰ優先度８５２に設定することで、そのＰｏＰ５００を中心としたグループを作成する。これにより、入力されたＰｏＰ５００から遠くのＰｏＰ５００ではなく、近くのＰｏＰ５００から出力できるような転送グループ分けが実現される。多くのネットワークに到達可能である、例えば国際回線と接続されているＰｏＰ５００など、重要なＰｏＰ５００を管理者は知っており、図４では、ＰｏＰ５０２、５０４が多くのネットワーク６００に到達可能であるので、管理者が、ＰｏＰ５０２、５０４に対して高いＰｏＰ優先度をＰｏＰ優先度８５２に設定する。
【００９３】
具体的には、たとえば、管理者は、ＰｏＰ５０４のＰｏＰ優先度８５２を「２０」、ＰｏＰ５０２のＰｏＰ優先度８５２を「１０」、その他のＰｏＰ５０１、５０３のＰｏＰ優先度８５２を「０」に設定する。ＰｏＰ優先度８５２には、重要なＰｏＰ５００ほど高い値が設定される。本実施例は、ＰｏＰ５０４の方がＰｏＰ５０２よりも重要度が高いため、ＰｏＰ５０４の方がＰｏＰ５０２よりもＰｏＰ優先度８５２が高くなるように設定した例である。
なお、（Ａ），（Ｂ）は、後述するグループ分け処理（Ｆ２０００）によるＰｏＰ情報テーブル１４６の更新過程を示したものであり、（Ｃ）は、後述するグループ分け変化による経路情報操作処理（Ｆ２２００）実行後のＰｏＰ情報テーブル１４６である。
【００９４】
（転送装置情報テーブル）
図１３は、転送装置情報テーブル１４７の記憶内容例を示す説明図である。転送装置情報テーブル１４７は、転送装置２００が属するＰｏＰ５００に関する情報を保持するテーブルであり、フィールドとして、転送装置ＩＤ９０１と、ＰｏＰ情報９０２と、ポート情報９０３とを有し、各フィールド９０１〜９０３の同一行の値の組み合わせがエントリを構成する。各フィールド９０１〜９０３の値は、管理者によって予め設定される。
【００９５】
転送装置ＩＤ９０１は、値として、転送装置２００の識別情報を格納するフィールドである。ＰｏＰ情報９０２は、値として、当該転送装置２００が所属するＰｏＰ５００の識別情報を格納するフィールドである。転送装置２０６、２０７のようにＰｏＰ５００に含まれていない転送装置２００も存在する。ＰｏＰ５００に含まれていない転送装置２００のエントリでは、ＰｏＰ情報９０２にはＰｏＰの識別情報としては使用されない番号、例えば「−１」が格納される。ポート情報９０３は、値として、当該転送装置２００に含まれるポート番号を格納するフィールドである。
【００９６】
（物理リンク情報テーブル）
図１４は、物理リンク情報テーブル１４８の記憶内容例を示す説明図である。物理リンク情報テーブル１４８は、物理リンク４００（４０１〜４０６、４５１〜４５５）の情報を保持するテーブルである。物理リンク情報テーブル１４８は、フィールドとして、リンクＩＤ７０１と、リンク端点の装置情報７０２と、リンク間距離７０３とを有し、各フィールド７０１〜７０３の同一行の値の組み合わせがエントリを構成する。
【００９７】
リンクＩＤ７０１は、値として、物理リンク４００の識別情報を格納するフィールドである。リンク端点の装置情報７０２は、値として、当該物理リンク４００の両端に接続される装置（ルータ３００、転送装置２００）のポートのポート番号を格納するフィールドである。リンク間距離７０３は、物理リンク４００の配線長を格納するフィールドである。リンク間距離７０３は、管理者により適宜入力される。物理リンク４００の端点がルータ３００の場合、リンク間距離７０３を入力する必要はない。
【００９８】
（パス管理テーブル）
図１５は、パス管理テーブル１４９の記憶内容例を示す説明図である。パス管理テーブル１４９は、パスを管理するテーブルである。パスは、仮想ルータ１０を経由する隣接ルータ３００間の経路である。パス管理テーブル１４９は、フィールドとして、パスＩＤ７５１と、パス端点転送装置リスト７５２と、パス端点ルータリスト７５３と、構成リンク７５４と、パス間コスト７５５と、転送ラベル値リスト７５６とを有し、各フィールド７５１〜７５６の同一行の値の組み合わせがエントリを構成する。
【００９９】
パスＩＤ７５１は、パスを特定する識別情報（パスＩＤ）を格納するフィールドである。パス端点転送装置リスト７５２は、転送装置網１０において当該パスの両端点に存在する転送装置２００の識別情報とそのポート番号を格納するフィールドである。パス端点ルータリスト７５３は、当該パスの端点に接続されているルータ３００の識別情報を格納するフィールドである。構成リンク７５４は、当該パス上の物理的な回線である物理リンク４００の識別番号を格納するフィールドである。
【０１００】
パス間コスト７５５は、当該パスのコスト値を格納するフィールドである。本実施例では、たとえば、構成リンク７５４に格納された物理リンク４００の合計距離がコスト値として格納される。転送ラベル値リスト７５６は、パス端点転送装置リスト７５２に示される転送装置２００の識別情報とそのポート番号に設定されるＭＰＬＳラベルの値を格納するフィールドである。これにより、当該パスを通るべきパケットが区別される。パス端点転送装置リスト７５２には転送装置２００の識別情報とそのポート番号が２つ格納され、また、転送ラベル値リスト７５６には、ＭＰＬＳラベル値が２つ格納される。パス端点転送装置リスト７５２と転送ラベル値リスト７５６にそれぞれ記録されている２つの値は、格納されている順番にそれぞれ対応する。
【０１０１】
例えば、エントリ７７５のパス端点転送装置リスト７５２の１つ目に格納されている転送装置２０１のポート番号（２／１）には、転送ラベル値リスト７５６の１つ目に格納されているＭＰＬＳラベル値の「４００１」が対応する。また、エントリ７７５のパス端点転送装置リスト７５２の２つ目に格納されている転送装置２０２のポート番号（２／１）には、転送ラベル値リスト７５６の２つ目に格納されているＭＰＬＳラベル値の「４００４」が対応している。パスＩＤ７５１の値が「６０１」のエントリ７７５が、図１のパスＰ１に対応し、パスＩＤ７５１の値が「６０７」のエントリ７８１が、図１のパスＰ２に対応し、パスＩＤ７５１の値が「６１０」のエントリ７８４が、図１のパスＰ３に対応する。
【０１０２】
＜制御サーバ１００による転送制御処理＞
つぎに、本実施例にかかる制御サーバ１００による転送制御処理について説明する。転送制御処理では、制御サーバ１００は、（１）グループ分け処理、（２）ルータ接続による経路広告処理、（３）新規経路取得処理の順に実行する。
【０１０３】
（１）グループ分け処理では、グループ分け処理部１２２は、図１に示したように転送装置２００をＰｏＰ５００に従って転送グループにグループ分けする。仮想ルータ機能部１２１は、ルータ３０１〜３０５との間でＢＧＰのＯｐｅｎメッセージを処理する。これにより、仮想ルータ機能部１２１とルータ３０１〜３０５との間でｅＢＧＰの隣接関係が成立する。ｅＢＧＰの隣接関係が成立すると、仮想ルータ機能部１２１は、図１０の（Ａ）に示した隣接ルータ管理テーブル１４４のエントリ８２５〜８２９の接続状態８０８を「通信可」に書き換える。これにより、隣接ルータ管理テーブル１４４は、図１０の（Ｂ）の状態となる。
【０１０４】
（２）ルータ接続による経路広告処理では、仮想ルータ機能部１２１は、（１）グループ分け処理でｅＢＧＰの隣接関係になったルータ３０１〜３０５に対して図７Ａの経路情報テーブル１４１で保持されているネットワークアドレスＦ〜Ｊに対する経路情報を広告する。また、隣接ルータ３０１〜３０５がもつネットワークアドレスＡ〜Ｅに対する経路情報が、仮想ルータ機能部１２１に広告される。
【０１０５】
（３）新規経路取得処理では、仮想ルータ機能部１２１は、（２）ルータ接続による経路広告処理によって広告された新規経路を取得する。これにより、各転送グループの転送装置２００は、パケットが転送装置網１０に入力されると、図９Ｃのグループ別現経路情報テーブル１０００に従ったパケット転送が行われるように設定される。したがって、図９Ｃのグループ別現経路情報テーブル１０００に従ったパケット転送が実行される。
【０１０６】
以下、上述した（１）グループ分け処理、（２）ルータ接続による経路広告処理、および（３）新規経路取得処理の詳細な処理手順例について説明する。
【０１０７】
なお、（１）グループ分け処理の実行前の各テーブルの状態は、以下のとおりである。図３に示した入力転送テーブル２２５および図５に示した出力転送テーブル２４５は空である。転送装置２００のラベル転送テーブル２３５は、図４に示した内容である。図７に示した経路情報テーブル１４１は、図７の（Ａ）に示した内容である。図８に示した差分経路情報テーブル１４２は空である。グループ別経路情報データベース１４３に含まれるグループ別現経路情報テーブル１０００およびグループ別旧経路情報テーブル１０５０は、空である（図９Ａ）。
【０１０８】
図１０に示した隣接ルータ管理テーブル１４４は、図１０の（Ａ）に示した内容である。図１１に示したグループ情報テーブル１４５は、図１１の（Ａ）に示した内容である。なお、（１）グループ分け処理において初期化されるため、エントリが残存していてもよい。図１２に示したＰｏＰ情報テーブル１４６は、図１２の（Ａ）に示した内容である。なお、図１２の（Ａ）では、ＰｏＰ優先度８５２の降順にエントリ８７５〜８７８がソートされているが、（１）グループ分け処理の実行前ではエントリ８７５〜８７８の順番は問わない。転送装置情報テーブル１４７は、図１３に示した内容である。物理リンク情報テーブル１４８は、図１４に示した内容である。パス管理テーブル１４９は、図１５に示した内容である。
【０１０９】
＜（１）グループ分け処理＞
図１６は、グループ分け処理部１２２が実行するグループ分け処理（Ｆ２０００）の詳細な処理手順例を示すフローチャートである。グループ分け処理（Ｆ２０００）はＰｏＰ優先度が変更されたことを契機に実行される。ＰｏＰ優先度は、管理者によって変更される場合と、システムの状況変化に応じて自動変更される場合がある。ＰｏＰ優先度が自動設定変更される場合については後述する。グループ分け処理部１２２は、グループ情報テーブル１４５のエントリを全て削除する（Ｆ２００４）。グループ情報テーブル１４５は、図１１の（Ａ）の状態となる。
【０１１０】
つぎに、グループ分け処理部１２２は、変数ＧＲＯＵＰ＿ＮＵＭに０を代入する（Ｆ２００８）。変数ＧＲＯＵＰ＿ＮＵＭは、グループ情報テーブル１４５のグループＩＤ９５１に対応する変数である。つぎに、グループ分け処理部１２２は、図１２の（Ａ）に示したように、ＰｏＰ情報テーブル１４６をＰｏＰ優先度８５２の値が大きい順にソートする（Ｆ２０１２）。なお、ＰｏＰ優先度８５２の値が同じ値となるエントリが複数ある場合、ＰｏＰ優先度８５２の値が同じエントリ同士でＰｏＰ＿ＩＤの昇順にソートされる。
【０１１１】
つぎに、グループ分け処理部１２２は、ループカウンタｉに１を代入する（Ｆ２０１６）。ループカウンタｉは、処理対象となるＰｏＰ情報テーブル１４６のエントリを特定する変数である。ｉ＝１の場合、１番目のエントリ８７８が処理対象である。つぎに、グループ分け処理部１２２は、ループカウンタｉがＰｏＰ情報テーブル１４６のエントリ数以下であるか否かを判断する（Ｆ２０２０）。図１２の（Ａ）の例では、ＰｏＰ情報テーブル１４６のエントリ数は「４」である。ループカウンタｉがＰｏＰ情報テーブル１４６のエントリ数以下である場合（Ｆ２０２０：Ｙｅｓ）、Ｆ２０２４に移行する。一方、ループカウンタｉがＰｏＰ情報テーブル１４６のエントリ数以下でない場合（Ｆ２０２０：Ｎｏ）、処理対象となるエントリが存在しないことにあるため、グループ分け処理部１２２は、グループ分け処理（Ｆ２０００）を終了する。
【０１１２】
図１２の（Ａ）の例では、ループカウンタｉの最大値は「４」であり、ｉ＝１のとき、エントリ８７８が処理対象として選択され、ｉ＝２のとき、エントリ８７６が選択され、ｉ＝３のとき、エントリ８７５が選択され、ｉ＝４のとき、エントリ８７７が選択される。ｉ＝５になると、エントリ数以下でないため（Ｆ２０２０：Ｎｏ）、処理対象となるエントリが存在しない。これにより、グループ分け処理部１２２は、グループ分け処理（Ｆ２０００）を終了する。
【０１１３】
Ｆ２０２０：Ｙｅｓの場合、グループ分け処理部１２２は、ＰｏＰ情報テーブル１４６のｉ番目のエントリにおいて、ＰｏＰ優先度８５２の値が所定値（本実施例では例として「０」）より大きいか否かを判断する（Ｆ２０２４）。すなわち、グループ分け処理部１２２は、処理対象となるｉ番目のエントリが優先すべきＰｏＰであるか否かを判断する。ＰｏＰ優先度８５２の値が「０」より大きい場合（Ｆ２０２４：Ｙｅｓ）、ｉ番目のエントリが優先すべきＰｏＰであるとして、Ｆ２０４０に移行する。一方、ＰｏＰ優先度８５２の値が０より大きくない場合（Ｆ２０２４：Ｎｏ）、Ｆ２０２８に移行する。
【０１１４】
図１２の（Ａ）の例では、ｉ＝１のとき、エントリ８７８についてＦ２０４０が実行され、ｉ＝２のとき、エントリ８７６についてＦ２０４０が実行され、ｉ＝３のとき、エントリ８７５についてＦ２０２８が実行され、ｉ＝４のとき、エントリ８７７についてＦ２０２８が実行される。
【０１１５】
Ｆ２０２４：Ｙｅｓの場合、グループ分け処理部１２２は、変数ＧＲＯＵＰ＿ＮＵＭを１増加する（Ｆ２０４０）。これにより、ｉ番目のエントリで特定されるＰｏＰ５００が所属するグループのグループＩＤ９５１の値が決定される。つぎに、グループ分け処理部１２２は、グループ情報テーブル１４５に、グループＩＤ９５１に変数ＧＲＯＵＰ＿ＮＵＭを設定し、所属ＰｏＰリスト９５２にＰｏＰ情報テーブル１４６のｉ番目のエントリのＰｏＰ＿ＩＤ８５１の値を設定する（Ｆ２０４４）。
【０１１６】
ｉ＝１のときは、変数ＧＲＯＵＰ＿ＮＵＭ＝１となるため（Ｆ２０４０）、ｉ＝１のときのエントリ８７８においてＰｏＰ＿ＩＤ８５１で特定されるＰｏＰ５０４の所属グループは、グループ１となる。したがって、グループ分け処理部１２２は、図１１の（Ａ）に示したグループ情報テーブル１４５にエントリ６０１を作成し、当該エントリ６０１のグループＩＤ９５１に変数ＧＲＯＵＰ＿ＮＵＭの値「１」を設定し、所属ＰｏＰリスト９５２に「５０４」を設定する（Ｆ２０４４）。これにより、グループ情報テーブル１４５は、図１１の（Ａ）から（Ｂ）の内容になる。
【０１１７】
ｉ＝２のときは、変数ＧＲＯＵＰ＿ＮＵＭ＝２となるため（Ｆ２０４０）、ｉ＝２のときのエントリ８７６においてＰｏＰ＿ＩＤ８５１で特定されるＰｏＰ５０２の所属グループは、グループ２となる。したがって、グループ分け処理部１２２は、図１１の（Ｂ）に示したグループ情報テーブル１４５にエントリ６０２を作成し、当該エントリ６０２のグループＩＤ９５１に変数ＧＲＯＵＰ＿ＮＵＭの値「２」を設定し、所属ＰｏＰリスト９５２に「５０２」を設定する（Ｆ２０４４）。これにより、グループ情報テーブル１４５は、図１１の（Ｂ）から（Ｃ）の内容になる。
【０１１８】
つぎに、グループ分け処理部１２２は、図１２の（Ａ）に示したＰｏＰ情報テーブル１４６のｉ番目のエントリにおいて、旧所属グループ８５４に現所属グループ８５５の値を代入し、現所属グループ８５５に変数ＧＲＯＵＰ＿ＮＵＭを代入する（Ｆ２０４８）。旧所属グループ８５４および現所属グループ８５５の初期値は「１」である。ｉ＝１のときのエントリ８７８では、旧所属グループ８５４の値「１」が現所属グループ８５５の値「１」に上書きされ、現所属グループ８５５の値「１」に、現所属グループ８５５に変数ＧＲＯＵＰ＿ＮＵＭである「１」が上書きされる。ｉ＝２のときのエントリ８７６では、旧所属グループ８５４の値「１」が現所属グループ８５５の値「１」に上書きされ、現所属グループ８５５の値「１」に、現所属グループ８５５に変数ＧＲＯＵＰ＿ＮＵＭである「２」が上書きされる（図１２の（Ｂ）を参照。）。つぎに、グループ分け処理部１２２は、ループカウンタｉを１増加して（Ｆ２０５２）、Ｆ２０２０に戻る。
【０１１９】
Ｆ２０２４：Ｎｏの場合、グループ分け処理部１２２は、変数ＧＲＯＵＰ＿ＮＵＭが１より小さいか否かを判断する（Ｆ２０２８）。すなわち、グループ分け処理部１２２は、グループ情報テーブル１４５のエントリ数が０か１以上か、換言すれば、生成されたグループ数が０個か１個以上かを判断する。ＰｏＰ情報テーブル１４６において、ＰｏＰ優先度８５２の値が０より大きいエントリ数が１以上あれば（Ｆ２０２８：Ｎｏ）、Ｆ２１００が実行され、ＰｏＰ優先度８５２の値が０より大きいエントリ数が０であれば、（Ｆ２０２８：Ｙｅｓ）、すなわち、図１２のグループ情報テーブル１４５の全エントリのＰｏＰ優先度８５２の値が「０」である場合、Ｆ２０３２が実行される。
【０１２０】
図１２の場合、ＰｏＰ優先度８５２の値が０より大きいエントリ数は「２」である。すなわち、ｉ＝３の場合のエントリ８７５、ｉ＝４の場合のエントリ８７７について、Ｆ２０２８を実行する場合、すでに変数ＧＲＯＵＰ＿ＮＵＭの値は「２」になっている。したがって、グループ分け処理部１２２は、ｉ＝３、４の場合、変数ＧＲＯＵＰ＿ＮＵＭの値は「２」であるため（Ｆ２０２８：Ｎｏ）、ＰｏＰグループ振り分け処理（Ｆ２１００）を実行する。
【０１２１】
Ｆ２０２８：Ｎｏの場合、グループ分け処理部１２２は、ＰｏＰのグループ振り分け処理を実行する（Ｆ２１００）。ＰｏＰ５００のグループ振り分け処理（Ｆ２１００）は、ｉ番目のエントリを引数として実行される。ＰｏＰ５００のグループ振り分け処理（Ｆ２１００）は、この時点で所属グループが決まっていないＰｏＰ５００を、当該ＰｏＰ５００に距離的に近いグループに所属させる処理である。ＰｏＰ５００のグループ振り分け処理（Ｆ２１００）の詳細については図１７で後述する。ＰｏＰ５００のグループ振り分け処理（Ｆ２１００）のあと、グループ分け処理部１２２は、ループカウンタｉを１増加して（Ｆ２０５６）、Ｆ２０２０に戻る。
【０１２２】
Ｆ２０２８：Ｙｅｓの場合、グループ分け処理部１２２は、グループ情報テーブル１４５において、グループＩＤ９５１に「１」を設定し、所属ＰｏＰリスト９５２に、ＰｏＰ情報テーブル１４６の全エントリのＰｏＰ＿ＩＤ８５１の値を、設定する（Ｆ２０３２）。
【０１２３】
つぎに、グループ分け処理部１２２は、ＰｏＰ情報テーブル１４６の全エントリにおいて、旧所属グループ８５４に現所属グループ８５５の値を代入し、現所属グループ８５５に「１」を代入する（Ｆ２０３６）。これにより、図１２のグループ情報テーブル１４５の全エントリのＰｏＰ優先度８５２の値が「０」である場合、当該全エントリのＰｏＰ５００が、グループＩＤ：１の１つのグループに所属することになる。これにより、グループ分け処理部１２２は、グループ分け処理（Ｆ２０００）を終了する。
【０１２４】
（ＰｏＰのグループ振り分け処理）
図１７は、図１６に示したＰｏＰ５００のグループ振り分け処理（Ｆ２１００）の詳細な処理手順例を示すフローチャートである。ＰｏＰ５００のグループ振り分け処理（Ｆ２１００）は、ＰｏＰ情報テーブルのｉ番目のエントリを引数として用いる。図１２の例では、ＰｏＰ優先度８５２の値が「０」であるｉ＝３以降のエントリ８７５，８７７が処理対象となる。グループ情報テーブル１４５は、ｉ＝３のときは、図１１の（Ｃ）の状態であり、ｉ＝４のときは、図１１の（Ｄ）の状態である。
【０１２５】
グループ分け処理部１２２は、変数ＣＡＮＤＩＤＡＴＥ＿ＧＲＯＵＰ＿ＩＤに１を代入する（Ｆ２１０４）。変数ＣＡＮＤＩＤＡＴＥ＿ＧＲＯＵＰ＿ＩＤは、グループ情報テーブル１４５のグループＩＤ９５１に対応する変数である。つぎに、グループ分け処理部１２２は、グループ情報テーブル１４５のエントリ数が２以上か１以下かを判断する（ステップＳ２１０８）。２以上である場合（Ｆ２１０８：Ｙｅｓ）、すなわち、グループ数が複数である場合、Ｆ２１１２に移行し、１以下である場合（Ｆ２１０８：Ｎｏ）、Ｆ２１５２に移行する。図１１の（Ｃ）の場合、グループ情報テーブル１４５のエントリ数は「２」（エントリ６０１，６０２）であるため、Ｆ２１１２に移行する。
【０１２６】
Ｆ２１０８：Ｙｅｓの場合、グループ分け処理部１２２は、ＰｏＰ情報テーブル１４６のｉ番目のエントリにおいて、所属転送装置リスト８５３の先頭の値を変数ＮＯＴＩＣＥ＿ＮＥ＿ＩＤに代入する（Ｆ２１１２）。ここで「ＮＥ」はＮｅｔｗｏｒｋ  Ｅｎｔｉｔｙの略語で転送装置２００を表す。変数ＮＯＴＩＣＥ＿ＮＥ＿ＩＤは、転送装置網１０内のパスの一方の端点となる転送装置２００を示す。
【０１２７】
ｉ＝３のときにＰｏＰ５００のグループ振り分け処理（Ｆ２１００）を実行する場合、ｉ＝３のときのエントリ８７５における所属転送装置リスト８５３の先頭の値は「２０１」である。グループ分け処理部１２２は、「２０１」を変数ＮＯＴＩＣＥ＿ＮＥ＿ＩＤに代入する。ｉ＝４のときにＰｏＰのグループ振り分け処理（Ｆ２１００）を実行する場合、ｉ＝４のときのエントリ８７７における所属転送装置リスト８５３の先頭の値は「２０３」である。グループ分け処理部１２２は、「２０３」を変数ＮＯＴＩＣＥ＿ＮＥ＿ＩＤに代入する。
【０１２８】
つぎに、グループ分け処理部１２２は、ループカウンタｊに１を代入し（Ｆ２１１６）、変数ＭＩＮ＿ＣＯＳＴに「６５５３５」を代入する（Ｆ２１２０）。ループカウンタｊは、処理対象となるグループ情報テーブル１４５のエントリを特定する変数である。変数ＭＩＮ＿ＣＯＳＴは、最小コスト値を検索するための変数であり、Ｆ２１１６では、設定されうるコスト値よりも大きな値が初期値として変数ＭＩＮ＿ＣＯＳＴに代入される。ここでは比較前の変数ＭＩＮ＿ＣＯＳＴの初期値として最大値６５５３５が代入される。
【０１２９】
つぎに、グループ分け処理部１２２は、ループカウンタｊがグループ情報テーブル１４５のエントリ数以下であるか否かを判断する（Ｆ２１２４）。図１１の（Ｃ）の例では、グループ情報テーブル１４５のエントリ数は「２」である。ループカウンタｊがグループ情報テーブル１４５のエントリ数以下である場合（Ｆ２１２４：Ｙｅｓ）、Ｆ２１２８に移行する。一方、ループカウンタｊがグループ情報テーブル１４５のエントリ数以下でない場合（Ｆ２１２４：Ｎｏ）、処理対象となるエントリが存在しないことにあるため、Ｆ２１５２に移行する。
【０１３０】
Ｆ２１２４：Ｙｅｓの場合、グループ分け処理部１２２は、グループ情報テーブル１４５のｊ番目のエントリの所属ＰｏＰリスト９５２の先頭のＰｏＰ＿ＩＤをもつエントリをＰｏＰ情報テーブル１４６から検索する。たとえば、図１１の（Ｃ）の例では、ｊ＝１の場合のエントリはエントリ６０１である。したがって、エントリ６０１における所属ＰｏＰリスト９５２の先頭のＰｏＰ＿ＩＤ「５０４」が特定される。グループ分け処理部１２２は、ＰｏＰ情報テーブル１４６を検索し、ＰｏＰ情報テーブル１４６から、ＰｏＰ＿ＩＤ８５１が「５０４」であるエントリ８７８を特定する。
【０１３１】
そして、グループ分け処理部１２２は、検索したエントリの所属転送装置リスト８５３の先頭にある転送装置２００の識別情報を変数ＣＡＮＤＩＤＡＴＥ＿ＮＥ＿ＩＤに代入する（Ｆ２１２８）。変数ＣＡＮＤＩＤＡＴＥ＿ＮＥ＿ＩＤは、転送装置網１０内のパスの他方の端点となる転送装置２００を示す。検索したエントリがエントリ８７８の場合、所属転送装置リスト８５３の先頭にある転送装置２００の識別情報は「２０４」である。グループ分け処理部１２２は、「２０４」を変数ＣＡＮＤＩＤＡＴＥ＿ＮＥ＿ＩＤに代入する。
【０１３２】
つぎに、グループ分け処理部１２２は、図１５に示したパス管理テーブル１４９を参照して、パス端点転送装置リスト７５２に変数ＮＯＴＩＣＥ＿ＮＥ＿ＩＤと変数ＣＡＮＤＩＤＡＴＥ＿ＮＥ＿ＩＤとを含むエントリを特定する。変数ＮＯＴＩＣＥ＿ＮＥ＿ＩＤは「２０１」であり、変数ＣＡＮＤＩＤＡＴＥ＿ＮＥ＿ＩＤは「２０４」である場合、グループ分け処理部１２２は、パスＩＤ７５１が「６０３」であるエントリ７７７を特定する。
【０１３３】
そして、グループ分け処理部１２２は、特定したエントリのパス間コスト７５５を変数ＴＥＭＰ＿ＣＯＳＴに代入する（Ｆ２１３２）。特定したエントリがエントリ７７７である場合、グループ分け処理部１２２は、特定したエントリ７７７のパス間コスト７５５の値「４００」を変数ＴＥＭＰ＿ＣＯＳＴに代入する。
【０１３４】
つぎに、グループ分け処理部１２２は、変数ＭＩＮ＿ＣＯＳＴが変数ＴＥＭＰ＿ＣＯＳＴより大きいか否かを判断する（Ｆ２１３６）。変数ＭＩＮ＿ＣＯＳＴが変数ＴＥＭＰ＿ＣＯＳＴより大きい場合（Ｆ２１３６：Ｙｅｓ）、Ｆ２１４０に移行する。変数ＭＩＮ＿ＣＯＳＴが変数ＴＥＭＰ＿ＣＯＳＴより大きくない場合（Ｆ２１３６：Ｎｏ）、Ｆ２１４８に移行する。Ｆ２１３２で特定したエントリ７７７の場合、変数ＭＩＮ＿ＣＯＳＴの「６５５３５」がパス間コスト７５５の値「４００」より大きいため、Ｆ２１４０に移行する。
【０１３５】
Ｆ２１３６：Ｙｅｓの場合、Ｆ２１４０に移行して、グループ分け処理部１２２は、グループ情報テーブル１４５のｊ番目のエントリのグループＩＤ９５１の値をＣＡＮＤＩＤＡＴＥ＿ＧＲＯＵＰ＿ＩＤに代入する（Ｆ２１４０）。ｊ＝１のときは、図１１の（Ｃ）において、グループＩＤ９５１が「１」であるエントリ６０１のグループＩＤ「１」を変数ＣＡＮＤＩＤＡＴＥ＿ＧＲＯＵＰ＿ＩＤに代入する。
【０１３６】
つぎに、グループ分け処理部１２２は、変数ＭＩＮ＿ＣＯＳＴに変数ＴＥＭＰ＿ＣＯＳＴを代入する（Ｆ２１４４）。ｊ＝１のときは、グループ分け処理部１２２は、変数ＭＩＮ＿ＣＯＳＴの「６５５３５」に、変数ＴＥＭＰ＿ＣＯＳＴの「４００」を代入して、変数ＭＩＮ＿ＣＯＳＴは「４００」となる。Ｆ２１４４のあと、またはＦ２１３６：Ｎｏの場合、グループ分け処理部１２２は、ループカウンタｊを１増加して（Ｆ２１４８）、Ｆ２１２４に戻る。ｊ＝２になった場合、図１１の（Ｃ）に示したグループ情報テーブル１４５において、所属ＰｏＰリスト９５２の先頭のＰｏＰ＿ＩＤとして「５０２」が特定される。グループ分け処理部１２２は、ＰｏＰ＿ＩＤ８５１が「５０２」であるエントリ８７６をＰｏＰ情報テーブル１４６から検索する。
【０１３７】
検索したエントリがエントリ８７６であるため、所属転送装置リスト８５３の先頭にある転送装置２００の識別情報は「２０２」である。グループ分け処理部１２２は、「２０２」を変数ＣＡＮＤＩＤＡＴＥ＿ＮＥ＿ＩＤに代入する。また、変数ＮＯＴＩＣＥ＿ＮＥ＿ＩＤは「２０１」であり、変数ＣＡＮＤＩＤＡＴＥ＿ＮＥ＿ＩＤは「２０２」である。したがって、グループ分け処理部１２２は、パスＩＤ７５１が「６０１」であるエントリ７７５をパス管理テーブル１４９から特定する。
【０１３８】
そして、グループ分け処理部１２２は、特定したエントリ７７５のパス間コスト７５５の値「２００」を変数ＴＥＭＰ＿ＣＯＳＴに代入する。つぎに、グループ分け処理部１２２は、変数ＭＩＮ＿ＣＯＳＴの「４００」が変数ＴＥＭＰ＿ＣＯＳＴの「２００」より大きいため、Ｆ２１４０に移行する。グループ分け処理部１２２は、グループ情報テーブル１４５のｊ＝２番目のエントリのグループＩＤ９５１の値「２」を変数ＣＡＮＤＩＤＡＴＥ＿ＧＲＯＵＰ＿ＩＤに代入する。また、グループ分け処理部１２２は、変数ＭＩＮ＿ＣＯＳＴの「４００」に、変数ＴＥＭＰ＿ＣＯＳＴの「２００」を代入して、変数ＭＩＮ＿ＣＯＳＴは「２００」となる。
【０１３９】
なお、本実施例では、変数ＭＩＮ＿ＣＯＳＴが最小となるようにＰｏＰ情報テーブル１４６のエントリのＰｏＰ＿ＩＤ８５１で特定されるＰｏＰ５００の所属先が変数ＣＡＮＤＩＤＡＴＥ＿ＧＲＯＵＰ＿ＩＤで特定されるグループに決定される。変数ＭＩＮ＿ＣＯＳＴが最小となるようにＰｏＰ５００の所属先を決定するのが好ましいが、変数ＭＩＮ＿ＣＯＳＴは、最小値に限定されない。たとえば、変数ＭＩＮ＿ＣＯＳＴは、初期値「６５５３５」よりも低い値であれば、最小値でなくてもよい。たとえば、得られた変数ＭＩＮ＿ＣＯＳＴのうち最大値よりも低い値でもよく、また、所定のしきい値よりも低い値でもよい。
【０１４０】
このあと、グループ分け処理部１２２は、ループカウンタｊを１増加してｊ＝３とし、Ｆ２１２４に戻る。ｊ＝３の場合、Ｆ２１２４：Ｎｏとなり、Ｆ２１５２が実行される。Ｆ２１０８：１以下またはＦ２１２４：Ｎｏの場合、グループ分け処理部１２２は、グループ情報テーブル１４５において、グループＩＤ９５１の値が変数ＣＡＮＤＩＤＡＴＥ＿ＧＲＯＵＰ＿ＩＤであるエントリの所属ＰｏＰリスト９５２の末尾に、ＰｏＰ情報テーブル１４６のｉ番目のエントリのＰｏＰ＿ＩＤ８５１の値を追加する（Ｆ２１５２）。
【０１４１】
上記の例では、最新の変数ＣＡＮＤＩＤＡＴＥ＿ＧＲＯＵＰ＿ＩＤは、グループ情報テーブル１４５のｊ＝２番目のエントリのグループＩＤ９５１の値「２」である。したがって、グループ分け処理部１２２は、グループ情報テーブル１４５において、２番目のエントリであるグループＩＤ９５１が「２」のエントリの所属ＰｏＰリスト９５２の末尾に、ＰｏＰのグループ振り分け処理（Ｆ２１００）の引数を示すループカウンタｉ＝３番目のエントリ８７５のＰｏＰ＿ＩＤ８５１の値「５０１」を追加する。これにより、図１１に示したグループ情報テーブル１４５は、（Ｃ）から（Ｄ）になる。
【０１４２】
つぎに、グループ分け処理部１２２は、ＰｏＰ情報テーブル１４６のｉ番目のエントリにおいて、旧所属グループ８５４に現所属グループ８５５の値を代入し、現所属グループ８５５に変数ＣＡＮＤＩＤＡＴＥ＿ＧＲＯＵＰ＿ＩＤを代入する（Ｆ２１５６）。上記の例では、図１２の（Ａ）に示したＰｏＰ情報テーブル１４６のｉ＝３番目のエントリ８７５において、グループ分け処理部１２２は、旧所属グループ８５４に現所属グループ８５５の値「１」を上書きし、現所属グループ８５５に、このときの変数ＣＡＮＤＩＤＡＴＥ＿ＧＲＯＵＰ＿ＩＤの値「２」を上書きする。これにより、図１２の（Ａ）に示したＰｏＰ情報テーブル１４６のｉ＝３番目のエントリ８７５は、図１２の（Ｂ）のようになる。
【０１４３】
ここまでは、ｉ＝３番目のエントリ８７５を引数とした場合のＰｏＰのグループ振り分け処理（Ｆ２１００）について説明したが、ｉ＝４番目のエントリ８７７を引数とした場合のＰｏＰのグループ振り分け処理（Ｆ２１００）についても同様に処理される。この場合、Ｆ２１１２では、グループ分け処理部１２２は、エントリ８７７における所属転送装置リスト８５３のうち先頭の値「２０３」を変数ＮＯＴＩＣＥ＿ＮＥ＿ＩＤに代入する。
【０１４４】
ｊ＝１のとき（Ｆ２１１６）、Ｆ２１２８では、グループ分け処理部１２２は、ＰｏＰ＿ＩＤ８５１の値がｊ＝１番目のエントリ６０１における所属ＰｏＰリスト９５２の先頭の値「５０４」であるエントリ８７８を特定し、特定したエントリ８７８における所属転送装置リスト８５３の先頭の値「２０４」を変数ＣＡＮＤＩＤＡＴＥ＿ＮＥ＿ＩＤに代入する。
【０１４５】
ｊ＝１のとき、Ｆ２１３２では、グループ分け処理部１２２は、パス管理テーブル１５のパス端点転送装置リスト７５２に、変数ＮＯＴＩＣＥ＿ＮＥ＿ＩＤ＝「２０３」と変数ＣＡＮＤＩＤＡＴＥ＿ＮＥ＿ＩＤ＝「２０４」を含むエントリ７８２を特定し、エントリ７８２のパス間コスト７５５の値「３００」をＴＥＭＰ＿ＣＯＳＴに代入する。
【０１４６】
ｊ＝１のとき、ＴＥＭＰ＿ＣＯＳＴ「３００」は、ＭＩＮ＿ＣＯＳＴ「６５５３５」より小さいため（Ｆ２１３６：Ｙｅｓ）、Ｆ２１４０では、グループ分け処理部１２２は、ｊ＝１番目のエントリ６０１のグループＩＤ９５１の値「１」を変数ＣＡＮＤＩＤＡＴＥ＿ＧＲＯＵＰ＿ＩＤに代入する。ｊ＝１のとき、Ｆ２１４４では、グループ分け処理部１２２は、ＴＥＭＰ＿ＣＯＳＴ「３００」をＭＩＮ＿ＣＯＳＴに設定する。そして、ｊ＝２となる（Ｆ２１４８）。
【０１４７】
ｊ＝２のとき、Ｆ２１２８では、グループ分け処理部１２２は、ＰｏＰ＿ＩＤ８５１の値がｊ＝２番目のエントリ６０２における所属ＰｏＰリスト９５２の先頭の値「５０２」であるエントリ８７６を特定し、特定したエントリ８７６における所属転送装置リスト８５３の先頭の値「２０２」を変数ＣＡＮＤＩＤＡＴＥ＿ＮＥ＿ＩＤに代入する。ｊ＝２のとき、Ｆ２１３２では、グループ分け処理部１２２は、パス管理テーブル１５のパス端点転送装置リスト７５２に、変数ＮＯＴＩＣＥ＿ＮＥ＿ＩＤ＝「２０３」と変数ＣＡＮＤＩＤＡＴＥ＿ＮＥ＿ＩＤ＝「２０２」を含むエントリ７７９を特定し、エントリ７７９のパス間コスト７５５の値「３００」をＴＥＭＰ＿ＣＯＳＴに代入する。
【０１４８】
ＴＥＭＰ＿ＣＯＳＴ「３００」は、ＭＩＮ＿ＣＯＳＴ「３００」と同じであるため（Ｆ２１３６：Ｎｏ）、Ｆ２１４０、Ｆ２１１４は実行されず、ｊ＝３となる（Ｆ２１４８）。このあと、グループ分け処理部１２２は、ｊ＝３であるためＦ２１２４：Ｎｏとなり、Ｆ２１５２を実行する。この時点で、最新の変数ＣＡＮＤＩＤＡＴＥ＿ＧＲＯＵＰ＿ＩＤは、ｊ＝１番目のエントリ６０１のグループＩＤ９５１の値「１」である。
【０１４９】
したがって、グループ分け処理部１２２は、グループ情報テーブル１４５において、１番目のエントリであるグループＩＤ９５１が「１」のエントリの所属ＰｏＰリスト９５２の末尾に、ＰｏＰ５００のグループ振り分け処理（Ｆ２１００）の引数を示すループカウンタｉ＝４番目のエントリ８７７のＰｏＰ＿ＩＤ８５１の値「５０３」を追加する。これにより、図１１に示したグループ情報テーブル１４５は、（Ｄ）から（Ｅ）になる。
【０１５０】
つぎに、グループ分け処理部１２２は、図１２の（Ａ）に示したＰｏＰ情報テーブル１４６のｉ＝４番目のエントリ８７７において、グループ分け処理部１２２は、旧所属グループ８５４に現所属グループ８５５の値「１」を上書きし、現所属グループ８５５に、このときの変数ＣＡＮＤＩＤＡＴＥ＿ＧＲＯＵＰ＿ＩＤの値「１」を上書きする。これにより、図１２の（Ａ）に示したＰｏＰ情報テーブル１４６のｉ＝４番目のエントリ８７７は、図１２の（Ｂ）のようになる。すなわち、図１の構成例の場合、グループ分け処理（Ｆ２０００）では、図１２の（Ｂ）に示したＰｏＰ情報テーブル１４６が完成する。
【０１５１】
グループ分け処理（Ｆ２０００）により、図１１の（Ｅ）に示したグループ情報テーブル１４５が生成され、図１に示したように、ＰｏＰ５００を２つのグループ１，２に分割することができる。
【０１５２】
（グループ分け変化による経路情報操作処理）
つぎに、グループ分け変化による経路情報操作処理（Ｆ２２００）について説明する。グループ分け処理（Ｆ２０００）により、ＰｏＰ５００をグループ分けできたので、グループ分け後のグループに応じて、経路情報を操作する必要がある。グループ分け変化による経路情報操作処理は、グループ分け処理（Ｆ２０００）の完了をトリガにして、仮想ルータ機能部１２１が実行する処理である。グループ分け変化による経路情報操作処理は、旧所属グループと現所属グループとの差分をとって差分経路情報を生成し、差分経路情報を隣接ルータ３００に広告し、転送装置２００に差分経路情報を設定する処理である。なお、このときのＰｏＰ情報テーブル１４６は、図１２の（Ｂ）に示した状態である。
【０１５３】
図１８は、仮想ルータ機能部１２１が実行するグループ分け変化による経路情報操作処理（Ｆ２２００）の詳細な処理手順例を示すフローチャートである。仮想ルータ機能部１２１は、グループ別旧経路情報テーブル１０５０の内容を、グループ別現経路情報テーブル１０００の情報に書き換え、グループ別現経路情報テーブル１０００の全エントリを消去する（Ｆ２２０４）。この状態が、図９Ａとなる。
【０１５４】
つぎに、仮想ルータ機能部１２１は、グループ分け変化による経路情報テーブル変更処理（Ｆ２２５０）、最適経路選択処理（Ｆ２３００）、差分経路情報テーブル更新処理（Ｆ２５００）、転送装置設定処理（Ｆ２６００）、経路情報広告処理（Ｆ２７００）を実行する。
【０１５５】
そして、仮想ルータ機能部１２１は、図１２の（Ｂ）に示したＰｏＰ情報テーブル１４６の全エントリについて、旧所属グループ８５４に現所属グループ８５５の値を代入する（Ｆ２２１２）。Ｆ２２１２の処理後のＰｏＰ情報テーブル１４６は、図１２の（Ｃ）となる。これにより、図１８のグループ分け変化による経路情報操作処理（Ｆ２２００）は終了する。
【０１５６】
ここで、グループ分け変化による経路情報テーブル変更処理（Ｆ２２５０）は、図７に示した経路情報テーブル１４１を、図１６に示したグループ分け処理（Ｆ２０００）のグループ分けに応じて変更する処理である。具体的には、たとえば、図７の（Ａ）に示した経路情報テーブル１４１において、グループ分け処理（Ｆ２０００）前は未定義であったＰｏＰ優先度１１０４および情報源グループ１１０６を設定する処理となる。グループ分け変化による経路情報テーブル変更処理（Ｆ２２５０）の詳細については、図１９で説明する。
【０１５７】
また、最適経路選択処理（Ｆ２３００）は、図９Ｂに示したグループ別現経路情報テーブル１０００を作成する処理である。最適経路選択処理（Ｆ２３００）の詳細については、図２０で説明する。また、差分経路情報テーブル更新処理（Ｆ２５００）は、図８Ａに示した差分経路情報テーブル１４２を作成する処理である。差分経路情報テーブル更新処理（Ｆ２５００）の詳細については、図２２で説明する。
【０１５８】
また、転送装置設定処理（Ｆ２６００）は、最適経路選択処理（Ｆ２３００）で作成されたグループ別現経路情報テーブル１０００にしたがってパケットが転送できるように転送装置２００を設定する処理である。転送装置設定処理（Ｆ２６００）は、具体的には、入力転送テーブル２２５と出力転送テーブル２４５を作成し、転送装置２００に設定する処理である。転送装置設定処理（Ｆ２６００）の詳細については、図２４で説明する。
【０１５９】
また、経路情報広告処理（Ｆ２７００）は、隣接ルータ３００に対し差分経路情報を広告する処理である。ただし、この段階では、転送装置２００と隣接ルータ３００とは通信不可の状態である（図１０の（Ａ）の接続状態８０８）ため、図８Ａに示した差分経路情報テーブル１４２のエントリ１２２５〜１２３４は広告されない。経路情報広告処理（Ｆ２７００）の詳細については、図２６で説明する。図１８に示したグループ分け変化による経路情報操作処理（Ｆ２２００）の後に、ＡＲＰ解決により、転送装置２００と隣接ルータ３００とは通信可能な状態となる（図１０の（Ｂ）の接続状態８０８）。
【０１６０】
（グループ分け変化による経路情報テーブル変更処理）
図１９は、図１８に示したグループ分け変化による経路情報テーブル変更処理（Ｆ２２５０）の詳細な処理手順例を示すフローチャートである。仮想ルータ機能部１２１は、経路情報テーブル１４１の先頭エントリを参照する（Ｆ２２５４）。参照されたエントリを「参照エントリ」と称す。なお、この段階では、初期値である「−１」がＰｏＰ優先度１１０４と情報源グループ１１０６にそれぞれ設定されているものとする。
【０１６１】
つぎに、仮想ルータ機能部１２１は、参照エントリが存在するか否かを判断する（Ｆ２２５８）。存在する場合（Ｆ２２５８：Ｙｅｓ）、仮想ルータ機能部１２１は、参照エントリの情報源ＰｏＰ１１０５に格納されているＰｏＰ＿ＩＤを特定し、特定したＰｏＰ＿ＩＤに一致するＰｏＰ＿ＩＤ８５１の値を有するエントリを、ＰｏＰ情報テーブル１４６から特定する。たとえば、図７の（Ａ）に示した経路情報テーブル１４１の参照エントリがエントリ１１５１の場合、情報源ＰｏＰ１１０５に格納されているＰｏＰ＿ＩＤは「５０１」である。したがって、仮想ルータ機能部１２１は、特定したＰｏＰ＿ＩＤ「５０１」に一致するＰｏＰ＿ＩＤ８５１の値を有するエントリ８７５を、図１２の（Ｂ）に示したＰｏＰ情報テーブル１４６から特定する。
【０１６２】
そして、仮想ルータ機能部１２１は、特定したエントリのＰｏＰ優先度８５２の値および現所属グループ８５５の値を、経路情報テーブル１４１の参照エントリのＰｏＰ優先度１１０４と情報源グループ１１０６に代入する（Ｆ２２６２）。たとえば、仮想ルータ機能部１２１は、特定したエントリ８７５のＰｏＰ優先度８５２の値「０」および現所属グループ８５５の値「２」を、図７の（Ａ）に示した経路情報テーブル１４１の参照エントリ１１５１のＰｏＰ優先度１１０４と情報源グループ１１０６に代入する。これにより、参照エントリ１１５１は、図７の（Ａ）から（Ｂ）になる。
【０１６３】
つぎに、仮想ルータ機能部１２１は、経路情報テーブル１４１の次のエントリを参照して（Ｆ２２６６）、Ｆ２２５８に戻る。Ｆ２２５８において、参照エントリが存在しない場合（Ｆ２２５８：Ｎｏ）、グループ分け変化による経路情報テーブル変更処理（Ｆ２２５０）は終了する。これにより、経路情報テーブル１４１が図７の（Ａ）の状態であれば、図７の（Ｂ）に更新され、経路情報テーブル１４１が図７の（Ｂ）の状態であれば、図７の（Ｃ）に更新される。
【０１６４】
（最適経路選択処理）
図２０は、図１８に示した最適経路選択処理（Ｆ２３００）の詳細な処理手順例を示すフローチャートである。仮想ルータ機能部１２１は、グループ分け変化による経路情報テーブル変更処理（Ｆ２２５０）で作成された経路情報テーブル１４１の全エントリを引数として、最適経路選択処理（Ｆ２３００）を実行する。すなわち、最適経路選択処理（Ｆ２３００）は、グループ分け変化による経路情報テーブル１４１から最適経路を選択する処理である。
【０１６５】
仮想ルータ機能部１２１は、対象グループ番号Ｎに「１」を代入する（Ｆ２３０２）。対象グループ番号Ｎは、最適経路選択処理（Ｆ２３００）での処理対象となるグループを特定する変数である。つぎに、仮想ルータ機能部１２１は、経路情報テーブル１４１の先頭エントリの参照を試みる（Ｆ２３０４）。参照されたエントリを「参照エントリ」と称す。
【０１６６】
つぎに、仮想ルータ機能部１２１は、参照エントリが存在するか否かを判断する（Ｆ２３０８）。参照エントリが存在しない場合（Ｆ２３０８：Ｎｏ）、仮想ルータ機能部１２１は、対象グループ番号Ｎを１増加する（Ｆ２３０９）。そして、仮想ルータ機能部１２１は、対象グループ番号Ｎが、図１１の（Ｅ）に示したグループ情報テーブル１４５のエントリ数以下であるか否かを判断する（Ｆ２３１０）。対象グループ番号Ｎが、図１１の（Ｅ）に示したグループ情報テーブル１４５のエントリ数以下でない場合（Ｆ２３１０：Ｎｏ）、未処理のグループが存在しないため、最適経路選択処理（Ｆ２３００）は終了する。一方。対象グループ番号Ｎが、図１１の（Ｅ）に示したグループ情報テーブル１４５のエントリ数以下である場合（Ｆ２３１０：Ｙｅｓ）、対象グループ番号Ｎは未処理であるため、Ｆ２３０４に戻る。
【０１６７】
Ｆ２３０８において、参照エントリが存在する場合（Ｆ２３０８：Ｙｅｓ）、仮想ルータ機能部１２１は、参照エントリを最適経路情報候補として、最適経路情報候補の宛先ネットワーク１１０１の値を変数ＣＡＮＤＩＤＡＴＥ＿ＮＷに代入する（Ｆ２３１２）。たとえば、参照エントリが図７の（Ｂ）に示した経路情報テーブル１４１のエントリ１１５１である場合、当該エントリ１１５１を最適経路情報候補とし、その宛先ネットワーク１１０１の値「Ｆ」を、仮想ルータ機能部１２１は、変数ＣＡＮＤＩＤＡＴＥ＿ＮＷに代入する。
【０１６８】
つぎに、仮想ルータ機能部１２１は、変数ＣＡＮＤＩＤＡＴＥ＿ＮＷへのＩＰ到達性の可否を判断する（Ｆ２３１６）。ＢＧＰではＩＰ到達性のない経路情報を最適経路として選択しないため、変数ＣＡＮＤＩＤＡＴＥ＿ＮＷが更新される都度、Ｆ２３１６が実行される。
【０１６９】
ＢＧＰによって広告された経路情報には、ＢＧＰのパス属性の１つであるＮＥＸＴ＿ＨＯＰ属性が付与される。ＮＥＸＴ＿ＨＯＰ属性に示されたＩＰアドレスをもつ装置に対してパケットを送信することで、広告された経路に到達することが可能であるが、ＮＥＸＴ＿ＨＯＰ属性に示されたＩＰアドレスに到達することが可能であるかどうかを判定する必要がある。このため、Ｆ２３１６で変数ＣＡＮＤＩＤＡＴＥ＿ＮＷへのＩＰ到達の可否が判断される。本実施例では、経路情報テーブル１４１の広告元ルータ１１０２のＩＰアドレスがＮＥＸＴ＿ＨＯＰ属性に示されているものとする。本実施例で扱う宛先ネットワーク１１０１は、仮想ルータ機能部１２１からＩＰ到達性があるものとする。
【０１７０】
変数ＣＡＮＤＩＤＡＴＥ＿ＮＷへのＩＰ到達性が不可能である場合（Ｆ２３１６：Ｎｏ）、仮想ルータ機能部１２１は、経路情報テーブル１４１の次のエントリの参照を試み（Ｆ２３２８）、Ｆ２３０８を実行する。変数ＣＡＮＤＩＤＡＴＥ＿ＮＷへのＩＰ到達性が可能である場合（Ｆ２３１６：Ｙｅｓ）、仮想ルータ機能部１２１は、グループ別現経路情報テーブル１０００において利用グループ１００１の値が対象グループ番号Ｎであるエントリのうち、宛先ネットワーク１００２が変数ＣＡＮＤＩＤＡＴＥ＿ＮＷであるエントリが存在するか否かを判断する（Ｆ２３２０）。
【０１７１】
グループ別現経路情報テーブル１０００のエントリは、図１８のＦ２２０４で消去されているため、参照エントリが経路情報テーブル１４１の先頭エントリである場合、Ｆ２３２０：Ｎｏとなり、Ｆ２３２４に移行する。そして、仮想ルータ機能部１２１は、グループ別現経路情報テーブル１０００に、利用グループ１００１を対象グループ番号Ｎとしたフィールドを追加した最適経路情報候補のエントリを追加する。つまり、当該エントリの利用グループ１００１に対象グループ番号Ｎを、宛先ネットワーク１００２〜経路取得元１００８に最適経路情報候補を代入する（Ｆ２３２４）。そして、仮想ルータ機能部１２１は、経路情報テーブル１４１の次のエントリの参照を試み（Ｆ２３２８）、Ｆ２３０８を実行する。
【０１７２】
なお、たとえば、図７の（Ｂ）に示した経路情報テーブル１４１の各エントリ１１５１〜１１５５を参照エントリ（最適経路情報候補）する場合、Ｆ２３２０では、どの最適経路情報候補についても、Ｆ２３２０：Ｎｏとなり、Ｆ２３２４が実行される。したがって、図７の（Ｂ）に示した経路情報テーブル１４１の場合、Ｆ２３３２およびＦ２４００は実行されずに、最適経路選択処理（Ｆ２３００）が終了し、グループ別現経路情報テーブル１０００は、Ｆ２３２４のエントリ追加により、図９Ａから図９Ｂに示したように更新される。
【０１７３】
また、グループ別現経路情報テーブル１０００のエントリは、Ｆ２３２４により追加されるため、グループ別現経路情報テーブル１０００において利用グループ１００１の値が対象グループ番号Ｎであるエントリのうち、宛先ネットワーク１００２が変数ＣＡＮＤＩＤＡＴＥ＿ＮＷであるエントリが存在する場合が発生する（Ｆ２３２０：Ｙｅｓ）。この場合、仮想ルータ機能部１２１は、宛先ネットワーク１００２が変数ＣＡＮＤＩＤＡＴＥ＿ＮＷであるグループ別現経路情報テーブル１０００のエントリを現最適経路情報に設定し（Ｆ２３３２）、経路情報比較処理（Ｆ２４００）を実行する。
【０１７４】
経路情報比較処理（Ｆ２４００）は、最適経路情報候補と現最適経路情報のいずれかが最適経路であるかを判断する処理である。したがって、最適経路選択処理（Ｆ２３００）は、現最適経路情報が存在しない場合は、最適経路情報候補を最適経路として選択し、現最適経路情報が存在する場合は、最適経路情報候補と現最適経路情報のいずれかを最適経路として選択する処理となる。
【０１７５】
（経路情報比較処理）
図２１は、図２０に示した経路情報比較処理（Ｆ２４００）の詳細な処理手順例を示すフローチャートである。仮想ルータ機能部１２１は、対象グループ番号Ｎと、最適経路情報候補と、現最適経路情報と、を引数１〜引数３として、経路情報比較処理（Ｆ２４００）を実行する。
【０１７６】
まず、仮想ルータ機能部１２１は、最適経路情報候補（引数２）の所属グループと、現最適経路情報（引数３）の所属グループと、のうち、対象グループ番号Ｎ（引数３）と等しい方の引数を選択する処理（グループ同一性判定処理）を実行する（Ｆ２４０４、Ｆ２４０８、Ｆ２４１２）。すなわち、対象グループ番号Ｎと等しい経路が優先的に選択されることになる。なお、最適経路情報候補の所属グループは、経路情報テーブル１４１の情報源グループ１１０６の値である。現最適経路情報の所属グループは、グループ別現経路情報テーブル１０００の情報源グループ１００７の値である。
【０１７７】
具体的には、仮想ルータ機能部１２１は、最適経路情報候補の所属グループと現最適経路情報の所属グループが同一グループであるか否かを判断する（Ｆ２４０４）。同一グループである場合（Ｆ２４２０：Ｙｅｓ）、Ｆ２４２４に移行する。すなわち、同一グループである場合（Ｆ２４２０：Ｙｅｓ）は、引数１および引数２がそれぞれ対象グループ番号Ｎ（引数３）と同一であるため、引数１と引数２の優劣は判断できない。したがって、Ｆ２４２４に移行することになる。
【０１７８】
同一グループでない場合（Ｆ２４０４：Ｎｏ）、仮想ルータ機能部１２１は、現最適経路情報の情報源グループ１００７の値と、対象グループ番号Ｎと、が同一であるか否かを判断する（Ｆ２４０８）。同一である場合（Ｆ２４０８：Ｙｅｓ）、対象グループ番号Ｎのグループにおける最適経路は、現最適経路情報である。したがって、仮想ルータ機能部１２１は、現最適経路情報を、対象グループ番号Ｎのグループにおける最適経路に決定する（Ｆ２４２０）。これにより、仮想ルータ機能部１２１は、経路情報比較処理（Ｆ２４００）を終了する。
【０１７９】
同一グループでない場合（Ｆ２４０８：Ｎｏ）、仮想ルータ機能部１２１は、最適経路情報候補の情報源グループ１１０６の値と、対象グループ番号Ｎと、が同一であるか否かを判断する（Ｆ２４１２）。同一である場合（Ｆ２４１２：Ｙｅｓ）、仮想ルータ機能部１２１は、グループ別現経路情報テーブル１０００に、現最適経路情報を、利用グループ１００１を対象グループ番号Ｎとしたフィールドを追加した最適経路情報候補に書き換える。つまり、当該現最適経路情報のエントリの利用グループ１００１に対象グループ番号Ｎを、宛先ネットワーク１００２〜経路取得元１００８に最適経路情報候補を代入する（Ｆ２４１６）。このようにして生成されたエントリが最適経路を示す。これにより、仮想ルータ機能部１２１は、経路情報比較処理（Ｆ２４００）を終了する。
【０１８０】
同一グループでない場合（Ｆ２４１２：Ｎｏ）、Ｆ２４２４に移行する。すなわち、引数１および引数２がそれぞれ対象グループ番号Ｎ（引数３）と同一でないため、引数１と引数２の優劣は判断できない。したがって、Ｆ２４２４に移行することになる。
【０１８１】
そして、仮想ルータ機能部１２１は、最適経路情報候補のＰｏＰ優先度１１０４と現最適経路情報のＰｏＰ優先度１００５とを比較する（Ｆ２４２４）。最適経路情報候補のＰｏＰ優先度１１０４よりも現最適経路情報のＰｏＰ優先度１００５が高い場合（Ｆ２４２４：高）、Ｆ２４２０に移行する。最適経路情報候補のＰｏＰ優先度１１０４よりも現最適経路情報のＰｏＰ優先度１００５が低い場合（Ｆ２４２４：低）、Ｆ２４１６に移行する。
【０１８２】
最適経路情報候補のＰｏＰ優先度１１０４と現最適経路情報のＰｏＰ優先度１００５とが同一である場合（Ｆ２４２４：同）、仮想ルータ機能部１２１は、最適経路情報候補の他パス属性１１０３と、現最適経路情報の他パス属性１００４とを比較して、最適経路情報候補と現最適経路情報とのいずれかを最適経路に決定する（Ｆ２４２８）。仮想ルータ機能部１２１は、たとえば、他パス属性で特定される重要度（または優先度）が高い方を、最適経路に決定する。
【０１８３】
そして、仮想ルータ機能部１２１は、最適経路情報候補が最適経路に決定された場合（Ｆ２４３２：Ｎｏ）、Ｆ２４１６に移行する。一方、現最適経路情報が最適経路に決定された場合（Ｆ２４３２：Ｙｅｓ）、Ｆ２４２０に移行し、仮想ルータ機能部１２１は、経路情報比較処理（Ｆ２４００）を終了する。経路情報比較処理（Ｆ２４００）により最適経路が決定される。
【０１８４】
なお、図２１において、グループ同一性判定処理（Ｆ２４０４、Ｆ２４０８、Ｆ２４１２）を実行せずに、ＰｏＰ優先度１００５の比較（Ｆ２４２４）を実行してもよい。
【０１８５】
（差分経路情報テーブル更新処理）
図２２は、図１８に示した差分経路情報テーブル更新処理（Ｆ２５００）の詳細な処理手順例を示すフローチャートである。まず、仮想ルータ機能部１２１は、差分経路情報テーブル１４２の全エントリを削除することにより初期化を行う（Ｆ２５０４）。つぎに、仮想ルータ機能部１２１は、図１２の（Ｂ）に示したＰｏＰ情報テーブル１４６の先頭エントリの参照を試みる（Ｆ２５０８）。参照されたエントリを参照エントリと称す。仮想ルータ機能部１２１は、参照エントリが存在するか否かを判断する（Ｆ２５１２）。
【０１８６】
図１２の（Ｂ）に示したＰｏＰ情報テーブル１４６に参照エントリが存在する場合（Ｆ２５１２：Ｙｅｓ）、仮想ルータ機能部１２１は、差分経路情報テーブル１４２に、参照エントリの旧所属グループ８５４および現所属グループ８５５の値と同一の旧情報源グループ１２０６および現情報源グループ１２０７の値を有するエントリが存在するか否かを判断する（ステップＳ２５１６）。存在する場合（Ｆ２５１６：Ｙｅｓ）、Ｆ２５２０に移行する。存在しない場合（Ｆ２５１６：Ｎｏ）、仮想ルータ機能部１２１は、差分取得処理（Ｆ２５５０）を実行して、Ｆ２５２０に移行する。
【０１８７】
Ｆ２５２０では、仮想ルータ機能部１２１は、ＰｏＰ情報テーブル１４６の次のエントリを参照して（Ｆ２５２０）、Ｆ２５１２に戻る。ＰｏＰ情報テーブル１４６に参照エントリが存在しない場合（Ｆ２５１２：Ｎｏ）、未処理のエントリが存在しないことになるため、仮想ルータ機能部１２１は、差分経路情報テーブル更新処理（Ｆ２５００）を終了する。
【０１８８】
（差分取得処理）
図２３は、図２２に示した差分取得処理（Ｆ２５５０）の詳細な処理手順例を示すフローチャートである。なお、グループ別現経路情報テーブル１０００は、最適経路選択処理（Ｆ２３００）により、図９Ａから図９Ｂに更新されている。仮想ルータ機能部１２１は、図１２の（Ｂ）に示したＰｏＰ情報テーブル１４６の参照エントリの旧所属グループ８５４の値を引数１、図１２の（Ｂ）に示したＰｏＰ情報テーブル１４６の参照エントリの現所属グループ８５５の値を引数２として、差分取得処理（Ｆ２５５０）を実行する。
【０１８９】
仮想ルータ機能部１２１は、図９Ｂに示したグループ別現経路情報テーブル１０００における利用グループ１００１に引数２が記録されているエントリを取得する（Ｆ２５５２）。取得したエントリを現経路情報リストと称す。たとえば、図１２の（Ｂ）に示したＰｏＰ情報テーブル１４６の参照エントリがエントリ８７８である場合、現所属グループ８５５は「１」である。したがって、仮想ルータ機能部１２１は、利用グループ１００１が「１」であるエントリ１０２５〜１０２９を、図９Ｂに示したグループ別現経路情報テーブル１０００から取得する。取得したエントリ１０２５〜１０２９が現経路情報リストとして保持される。
【０１９０】
つぎに、仮想ルータ機能部１２１は、図９Ｂに示したグループ別旧経路情報テーブル１０５０の先頭エントリの参照を試みる（Ｆ２５５４）。参照したエントリを参照エントリと称す。参照エントリが存在する場合（Ｆ２５５６：Ｙｅｓ）、Ｆ２５６０に移行し、存在しない場合（Ｆ２５５６：Ｎｏ）、Ｆ２５５８に移行する。図９Ｂに示したグループ別旧経路情報テーブル１０５０の場合、そのエントリは空であるため、参照エントリが存在しないことになり（Ｆ２５５６：Ｎｏ）、Ｆ２５５８に移行する。
【０１９１】
Ｆ２５５６：Ｎｏの場合、仮想ルータ機能部１２１は、差分経路情報テーブル１４２にエントリを追加して（Ｆ２５５８）、差分取得処理（Ｆ２５５０）を終了する。差分経路情報テーブル１４２に追加されるエントリは、現経路情報リストに残存するエントリの一部のフィールドに、さらに、旧情報源グループ１２０６に引数１、現情報源グループ１２０７に引数２、削除・更新１２０９に「更新」が設定されたエントリである。
【０１９２】
たとえば、図２２のＦ２５１２における参照エントリが、図１２の（Ｂ）に示したＰｏＰ情報テーブル１４６のエントリ８７８である場合、引数１は旧所属グループ８５４の値「１」であり、引数２は現所属グループ８５５の値「１」である。したがって、差分経路情報テーブル１４２に、エントリ１２２５〜１２２９が追加される（図８Ａを参照）。
【０１９３】
また、エントリ８７８の次エントリ８７６が図２２のＦ２５１２において参照された場合、引数１は旧所属グループ８５４の値「１」であり、引数２は現所属グループ８５５の値「２」である（図１２の（Ｂ）を参照）。したがって、差分経路情報テーブル１４２に、エントリ１２３０〜１２３４が追加される（図８Ａを参照）。
【０１９４】
Ｆ２５５６：Ｙｅｓの場合、仮想ルータ機能部１２１は、グループ別旧経路情報テーブル１０５０の参照エントリの利用グループ１０５１の値が、引数１と同一であるか否かを判断する（Ｆ２５６０）。同一でない場合（Ｆ２５６０：Ｎｏ）、仮想ルータ機能部１２１は、グループ別旧経路情報テーブル１０５０の次のエントリの参照を試み（ステップＳ２５７２）、その参照エントリが存在するか否かを判断することになる（Ｆ２５５６）。
【０１９５】
一方、同一である場合（Ｆ２５６０：Ｙｅｓ）、仮想ルータ機能部１２１は、現経路情報リストの先頭エントリの参照を試みる（Ｆ２５６２）。参照したエントリを参照エントリと称す。仮想ルータ機能部１２１は、現経路情報リストの参照エントリが存在するか否かを判断する（Ｆ２５６４）。存在する場合（Ｆ２５６４：Ｙｅｓ）、仮想ルータ機能部１２１は、グループ別旧経路情報テーブル１０５０の参照エントリと現経路情報リストの参照エントリとが、同一の宛先ネットワーク１００２，１０５２を有するか否かを判断する（Ｆ２５６６）。
【０１９６】
同一でない場合（Ｆ２５６６：Ｎｏ）、仮想ルータ機能部１２１は、現経路情報リストの次エントリの参照を試みて（Ｆ２５８２）、Ｆ２５６４に戻る。一方、同一である場合（Ｆ２５６６：Ｙｅｓ）、仮想ルータ機能部１２１は、両参照エントリ間で差分があるか否かを判断する（Ｆ２５６８）。具体的には、たとえば、仮想ルータ機能部１２１は、両参照エントリ間で、広告元ルータ１００３，１０５３、他パス属性１００４，１０５４、経路取得元１００８，１０５８のいずれか１つの項目において値が異なるか否かを判断する。
【０１９７】
差分がない場合（Ｆ２５６８：Ｎｏ）、Ｆ２５７０に移行する。一方、差分がある場合（Ｆ２５６８：Ｙｅｓ）、仮想ルータ機能部１２１は、差分経路情報テーブル１４２にエントリを追加して（Ｆ２５７４）、現経路情報リストの参照エントリを現経路情報リストから削除して（Ｆ２５７０）、Ｆ２５７２に戻る。差分経路情報テーブル１４２に追加されるエントリは、現経路情報リストの参照エントリに、さらに、旧情報源グループ１２０６に引数１、現情報源グループ１２０７に引数２、削除・更新１２０９に「更新」が設定されたエントリである。
【０１９８】
一方、Ｆ２５６４において、現経路情報リストの参照エントリが存在しない場合（Ｆ２５６４：Ｎｏ）、仮想ルータ機能部１２１は、差分経路情報テーブル１４２にエントリを追加して（Ｆ２５７８）、Ｆ２５７２に戻る。差分経路情報テーブル１４２に追加されるエントリは、グループ別旧経路情報テーブル１０５０の参照エントリに、さらに、旧情報源グループ１２０６に引数１、現情報源グループ１２０７に引数２、削除・更新１２０９に「削除」が設定されたエントリである。
【０１９９】
図１８に示したグループ分け変化による経路情報操作処理（Ｆ２２００）における差分取得処理（Ｆ２５５０）では、Ｆ２５５８が実行され、Ｆ２５７４とＦ２５７８は実行されない。これにより、図８Ａに示した差分経路情報テーブル１４２が作成される。なお、差分取得処理（Ｆ２５５０）におけるＦ２５７８は、Ｆ２５５８が削除・更新１２０９が“更新”となるフィールドを追加する処理であったのに対し、削除・更新１２０９が“削除”となるフィールドを追加する処理である。
【０２００】
（転送装置設定処理）
図２４は、図１８に示した転送装置設定処理（Ｆ２６００）の詳細な処理手順例を示すフローチャートである。転送装置設定処理（Ｆ２６００）は、図３に示した入力転送テーブル２２５および図５に示した出力転送テーブル２４５を作成して、転送装置２００に設定する処理である。
【０２０１】
仮想ルータ機能部１２１は、図１０の（Ａ）に示した隣接ルータ管理テーブル１４４の先頭エントリの参照を試みる（Ｆ２６０４）。参照したエントリを参照エントリと称す。仮想ルータ機能部１２１は、参照エントリが存在するか否かを判断する（Ｆ２６０８）。存在する場合（Ｆ２６０８：Ｙｅｓ）、仮想ルータ機能部１２１は、図８Ａに示した差分経路情報テーブル１４２の先頭エントリの参照を試みる（Ｆ２６１２）。参照したエントリを参照エントリと称す。
【０２０２】
仮想ルータ機能部１２１は、図８Ａに示した差分経路情報テーブル１４２の参照エントリが存在するか否かを判断する（Ｆ２６１６）。存在する場合（Ｆ２６１６：Ｙｅｓ）、仮想ルータ機能部１２１は、図１０の（Ａ）に示した隣接ルータ管理テーブル１４４の参照エントリにおける接続転送装置８０４の値と、図８Ａに示した差分経路情報テーブル１４２の参照エントリにおける経路取得元１２０８の値とを比較する（Ｆ２６２０）。そして、仮想ルータ機能部１２１は、両値が同値であるか否かを判断する（Ｆ２６２４）。
【０２０３】
たとえば、図１０の（Ａ）に示した隣接ルータ管理テーブル１４４の参照エントリがエントリ８２５である場合、接続転送装置８０４の値は「２０１（２／１）」である。また、図８Ａに示した差分経路情報テーブル１４２の参照エントリがエントリ１２２５である場合、経路取得元１２０８の値は、「２０１（２／１）」である。この場合、接続転送装置８０４の値と経路取得元１２０８の値は、ともに「２０１（２／１）」であるため、同値と判断される。
【０２０４】
同値である場合（Ｆ２６２４：Ｙｅｓ）、仮想ルータ機能部１２１は、図８Ａに示した差分経路情報テーブル１４２の次のエントリの参照を試み（Ｆ２６４０）、Ｆ２６１６に移行する。すなわち、同値である差分経路情報テーブル１４２の参照エントリは、設定対象外となる。
【０２０５】
一方、同値でない場合（Ｆ２６２４：Ｎｏ）、仮想ルータ機能部１２１は、転送装置設定対象判定処理を実行し（Ｆ３１００）、差分経路情報テーブル１４２の次のエントリの参照を試み（Ｆ２６４０）、Ｆ２６１６に移行する。転送装置設定対象判定処理（Ｆ３１００）は、差分経路情報テーブル１４２の参照エントリが、転送装置２００への設定対象となるエントリであるか否かを判定する処理である。転送装置設定対象判定処理（Ｆ３１００）の詳細については図２５で後述する。
【０２０６】
また、Ｆ２６１６において、図８Ａに示した差分経路情報テーブル１４２の参照エントリが存在しない場合（Ｆ２６１６：Ｎｏ）、仮想ルータ機能部１２１は、図１０の（Ａ）に示した隣接ルータ管理テーブル１４４の次エントリの参照を試み（Ｆ２６４４）、Ｆ２６０８に戻る。Ｆ２６０８において、図１０の（Ａ）に示した隣接ルータ管理テーブル１４４の参照エントリが存在しない場合（Ｆ２６０８：Ｎｏ）、仮想ルータ機能部１２１は、転送装置設定処理（Ｆ２６００）を終了する。
【０２０７】
転送装置設定処理（Ｆ２６００）により、図９Ｂに示したグループ別現経路情報テーブル１０００のエントリ１０２５〜１０３４の宛先ネットワーク１００２を宛先とするパケットが転送装置網１０に入力されると、そのパケットは経路取得元１２０８から出力されて宛先ネットワーク１００２に届けられる。
【０２０８】
（転送装置設定対象判定処理）
図２５は、転送装置設定対象判定処理（Ｆ３１００）の詳細な処理手順例を示すフローチャートである。仮想ルータ機能部１２１は、図１０の（Ａ）に示した隣接ルータ管理テーブル１４４の参照エントリにおける接続ＰｏＰ＿ＩＤ８０７の値を有するエントリを、図１２の（Ｂ）に示したＰｏＰ情報テーブル１４６から検索する。そして、仮想ルータ機能部１２１は、検索したエントリにおける旧所属グループ８５４の値と現所属グループ８５５の値を取得する（Ｆ３１０４）。
【０２０９】
つぎに、仮想ルータ機能部１２１は、図８Ａに示した差分経路情報テーブル１４２の参照エントリが、転送装置２００への設定対象であるか否かを判断する（Ｆ３１０８）。具体的には、たとえば、仮想ルータ機能部１２１は、図８Ａに示した差分経路情報テーブル１４２の参照エントリにおける旧情報源グループ１２０６の値および現情報源グループ１２０７の値が、Ｆ３１０４で取得した旧所属グループ８５４の値および現所属グループ８５５の値と一致するか否かを判断する。一致する場合、図８Ａに示した差分経路情報テーブル１４２の参照エントリが、転送装置２００への設定対象となる。
【０２１０】
つぎに、仮想ルータ機能部１２１は、差分経路情報テーブル１４２の参照エントリが転送装置２００への設定対象でない場合（Ｆ３１１２：Ｎｏ）、仮想ルータ機能部１２１は、転送装置設定対象判定処理（Ｆ３１００）を終了して、図２４の処理Ｆ２６４０に移行する。
【０２１１】
一方、設定対象である場合（Ｆ３１１２：Ｙｅｓ）、仮想ルータ機能部１２１は、図２４のＦ２６２０で比較された接続転送装置８０４の値および経路取得元１２０８の値をパス端点転送装置リスト７５２に含むエントリを、図１５に示したパス管理テーブル１４９から特定する（Ｆ３１１６）。これにより、接続転送装置８０４の値および経路取得元１２０８の値により特定される転送装置２００を通過するパスが特定される。そして、仮想ルータ機能部１２１は、入出力転送テーブル作成処理を実行する（Ｆ３０００）。入出力転送テーブル作成処理（Ｆ３０００）は、転送装置２００に送る入力転送テーブル２２５および出力転送テーブル２４５を作成する処理である。入出力転送テーブル作成処理（Ｆ３０００）の詳細は図２６で説明する。
【０２１２】
入出力転送テーブル作成処理（Ｆ３０００）のあと、仮想ルータ機能部１２１は、作成した入力転送テーブル２２５のエントリおよび出力転送テーブル２４５のエントリを転送装置２００に設定する（Ｆ３１２４）。具体的には、たとえば、仮想ルータ機能部１２１は、図８Ａに示した差分経路情報テーブル１４２の参照エントリの削除・更新１２０９に従い、転送装置２００に対し、入力転送テーブル２２５のエントリおよび出力転送テーブル２４５のエントリの削除または更新要求をおこなう。
【０２１３】
たとえば、差分経路情報テーブル１４２の参照エントリの削除・更新１２０９の値が「削除」の場合は、仮想ルータ機能部１２１は、対象となる転送装置２００から該当する入力転送テーブル２２５のエントリおよび出力転送テーブル２４５のエントリを削除する。「更新」の場合は、仮想ルータ機能部１２１は、対象となる転送装置２００に、該当する入力転送テーブル２２５のエントリおよび出力転送テーブル２４５のエントリを送信して更新する。
【０２１４】
たとえば、「更新」の場合、仮想ルータ機能部１２１は、作成した入力転送テーブル２２５のエントリを、隣接ルータ管理テーブル１４４の参照エントリにおける接続転送装置８０４で特定される転送装置２００に送信して、当該転送装置２００に設定する。また、仮想ルータ機能部１２１は、作成した出力転送テーブル２４５のエントリを、図８Ａに示した差分経路情報テーブル１４２の参照エントリにおける経路取得元１２０８で特定される転送装置２００に送信して、当該転送装置２００に設定する。
【０２１５】
また、「削除」の場合、仮想ルータ機能部１２１は、作成した入力転送テーブル２２５のエントリを、隣接ルータ管理テーブル１４４の参照エントリにおける接続転送装置８０４で特定される転送装置２００から削除する。また、仮想ルータ機能部１２１は、作成した出力転送テーブル２４５のエントリを、差分経路情報テーブル１４２の参照エントリにおける経路取得元１２０８で特定される転送装置２００から削除する。これにより、仮想ルータ機能部１２１は、転送装置設定対象判定処理（Ｆ３１００）を終了する。
【０２１６】
（入出力転送テーブル作成処理）
図２６は、図２５に示した入出力転送テーブル作成処理（Ｆ３０００）の詳細な処理手順例を示すフローチャートである。仮想ルータ機能部１２１は、Ｆ２６１２での参照エントリを引数１、Ｆ２６０４での参照エントリを引数２、Ｆ３１１６で特定したエントリを引数３として、入出力転送テーブル作成処理（Ｆ３０００）を実行する。
【０２１７】
まず、仮想ルータ機能部１２１は、引数３のパス端点転送装置リスト７５２の１つ目の値（左側の値）と、引数１の経路取得元１２０８の値と、が一致するか否かを判断する（Ｆ３００４）。一致する場合（Ｆ３００４：Ｙｅｓ）、仮想ルータ機能部１２１は、引数３の転送ラベル値リスト７５６の１つ目の値（左側の値）を、変数ＯＵＴ＿ＬＡＢＥＬに代入し、２つ目の値（右側の値）を変数ＩＮ＿ＬＡＢＥＬに代入する（Ｆ３００８）。そして、Ｆ３０１６に移行する。変数ＯＵＴ＿ＬＡＢＥＬは出力転送ラベルに対応する変数である。変数ＩＮ＿ＬＡＢＥＬは入力転送ラベルに対応する変数である。
【０２１８】
不一致の場合（Ｆ３００４：Ｎｏ）、仮想ルータ機能部１２１は、引数３の転送ラベル値リスト７５６の１つ目の値（左側の値）を、変数ＩＮ＿ＬＡＢＥＬに代入し、２つ目の値（右側の値）を変数ＯＵＴ＿ＬＡＢＥＬに代入する（Ｆ３０１２）。そして、Ｆ３０１６に移行する。
【０２１９】
つぎに、仮想ルータ機能部１２１は、入力転送テーブル２２５のエントリを作成する（Ｆ３０１６）。具体的には、たとえば、仮想ルータ機能部１２１は、ポート番号１３０１の値が引数２の接続転送装置８０４のポート番号、宛先ネットワーク１３０２の値が引数１の宛先ネットワーク１２０１の値、識別ラベル１３０３の値が引数３のパスＩＤ７５１の値、転送ラベル１３０４の値が変数ＩＮ＿ＬＡＢＥＬとなるエントリを作成する。
【０２２０】
つぎに、仮想ルータ機能部１２１は、図１０の（Ａ）に示した隣接ルータ管理テーブル１４４から、引数１の経路取得元１２０８の値と同じ値が接続転送装置８０４に設定されているエントリを検索する。そして、仮想ルータ機能部１２１は、検索したエントリの隣接ルータＭＡＣ８０２の値を変数ＤＥＳＴ＿ＭＡＣに代入し、接続ポートＭＡＣ８０５の値を変数ＳＯＵＲＣＥ＿ＭＡＣに代入する（Ｆ３０２０）。変数ＤＥＳＴ＿ＭＡＣは、宛先ＭＡＣアドレスに対応する変数であり、変数ＳＯＵＲＣＥ＿ＭＡＣは、送信元ＭＡＣアドレスに対応する変数である。
【０２２１】
つぎに、仮想ルータ機能部１２１は、出力転送テーブル２４５のエントリを作成する（Ｆ３０２４）。具体的には、たとえば、仮想ルータ機能部１２１は、ポート番号１４０１の値が引数１の経路取得元１２０８のポート番号、宛先ネットワーク１４０２の値が引数１の宛先ネットワーク１２０１の値、識別ラベル１４０３の値が引数３のパスＩＤ７５１の値、転送ラベル１４０４の値が変数ＯＵＴ＿ＬＡＢＥＬ、書換宛先ＭＡＣ１４０５の値が変数ＤＥＳＴ＿ＭＡＣ、書換送信元ＭＡＣが変数ＳＯＵＲＣＥ＿ＭＡＣとなるエントリを作成する。これにより、入力転送テーブル２２５のエントリと出力転送テーブル２４５のエントリが作成される。
【０２２２】
（経路情報広告処理）
図２７は、図１８に示した経路情報広告処理（Ｆ２７００）の詳細な処理手順例を示すフローチャートである。経路情報広告処理（Ｆ２７００）は、隣接ルータ３００に経路情報（差分経路情報テーブル１４２の参照エントリ）を広告する処理である。
【０２２３】
仮想ルータ機能部１２１は、隣接ルータ管理テーブル１４４の先頭エントリの参照を試みる（Ｆ２７０４）。参照されたエントリを参照エントリと称す。参照エントリが存在しない場合（Ｆ２７０８：Ｎｏ）、仮想ルータ機能部１２１は、経路広告処理（Ｆ２７００）を終了する。
【０２２４】
一方、参照エントリが存在する場合（Ｆ２７０８：Ｙｅｓ）、仮想ルータ機能部１２１は、参照エントリの接続状態８０８が「通信可」であるか「通信不可」であるかを判断する（Ｆ２７１２）。「通信不可」である場合（Ｆ２７１２：Ｎｏ）、仮想ルータ機能部１２１は、隣接ルータ管理テーブル１４４の次エントリの参照を試み（Ｆ２７１６）、Ｆ２７０８に戻る。
【０２２５】
なお、図１８に示したグループ分け変化による経路情報操作処理（Ｆ２２００）における経路情報広告処理（Ｆ２７００）では、隣接ルータ管理テーブル１４４は、図１０の（Ａ）に示した内容である。すなわち、エントリ８２５〜８２９の接続状態８０８の値はいずれも「通信不可」であるため、図８Ａに示した差分経路情報テーブル１４２の参照エントリは、いずれのルータ３００にも送信されない。一方、「通信可」である場合（Ｆ２７１２：Ｙｅｓ）、仮想ルータ機能部１２１は、差分経路情報テーブル１４２の先頭エントリの参照を試みる（Ｆ２７２０）。参照されたエントリを参照エントリと称す。
【０２２６】
仮想ルータ機能部１２１は、差分経路情報テーブル１４２の参照エントリが存在するか否かを判断する（Ｆ２７２４）。存在しない場合（Ｆ２７２４：Ｎｏ）、Ｆ２７１６に移行する。一方、存在する場合（Ｆ２７２４：Ｙｅｓ）、仮想ルータ機能部１２１は、隣接ルータ管理テーブル１４４の参照エントリにおける接続ＰｏＰ＿ＩＤ８０７の値がＰｏＰ＿ＩＤ８５１に設定されているエントリを、ＰｏＰ情報テーブル１４６から検索する。そして、仮想ルータ機能部１２１は、検索したエントリにおける旧所属グループ８５４の値と現所属グループ８５５の値を取得する（Ｆ２７２８）。
【０２２７】
つぎに、仮想ルータ機能部１２１は、差分経路情報テーブル１４２の参照エントリが、隣接ルータ３００への広告対象であるか否かを判断する（Ｆ２７３２）。具体的には、たとえば、仮想ルータ機能部１２１は、差分経路情報テーブル１４２の参照エントリにおける旧情報源グループ１２０６の値および現情報源グループ１２０７の値が、Ｆ２７２８で取得した旧所属グループ８５４の値および現所属グループ８５５の値と一致するか否かを判断する。一致する場合、差分経路情報テーブル１４２の参照エントリが、隣接ルータ３００への広告対象となる。
【０２２８】
差分経路情報テーブル１４２の参照エントリが、隣接ルータ３００への広告対象でない場合（Ｆ２７３６：Ｎｏ）、Ｆ２７４４に移行する。一方、差分経路情報テーブル１４２の参照エントリが、隣接ルータ３００への広告対象である場合（Ｆ２７３６：Ｙｅｓ）、仮想ルータ機能部１２１は、差分経路情報テーブル１４２の参照エントリを広告する（Ｆ２７４０）。具体的には、たとえば、仮想ルータ機能部１２１は、隣接ルータ管理テーブル１４４の参照エントリにおける隣接ルータＩＤ８０１で特定される隣接ルータ３００に対し、差分経路情報テーブル１４２の参照エントリを、その削除・更新１２０９の値にしたがって広告する。
【０２２９】
すなわち、削除・更新１２０９の値が「削除」である場合、仮想ルータ機能部１２１は、差分経路情報テーブル１４２の参照エントリを、削除情報として隣接ルータ３００に送信する。隣接ルータ３００は、受信した差分経路情報テーブル１４２の参照エントリを、自身の経路テーブル（不図示）から削除する。一方、削除・更新１２０９の値が「更新」である場合、仮想ルータ機能部１２１は、差分経路情報テーブル１４２の参照エントリを、経路情報として隣接ルータに送信する。隣接ルータ３００は、受信した差分経路情報テーブル１４２の参照エントリを、自身の経路テーブル（不図示）に上書きする。
【０２３０】
このあと、仮想ルータ機能部１２１は、差分経路情報テーブル１４２の次エントリの参照を試み（Ｆ２７４４）、Ｆ２７２４に戻る。このように、経路情報広告処理（Ｆ２７００）では、通信可能な状態の隣接ルータ３００に対し、経路情報（差分経路情報テーブル１４２の参照エントリ）を配信することができる。
【０２３１】
＜グループ分け処理後のパケット転送＞
つぎに、グループ分け処理（Ｆ２０００）およびグループ分け変化による経路情報操作処理（Ｆ２２００）により、図１１の（Ｅ）に示したグループ情報テーブル１４５が作成された後におけるパケット転送について説明する。
【０２３２】
パケットが転送装置網１０に入力されると、図９Ｂに示したグループ別現経路情報テーブル１０００に従ってパケット転送が行われる。ここで、転送装置網１０に対して転送装置２０１のポート（２／１）から宛先ネットワークＧ宛のパケットが入力された場合のパケット転送を例として説明する。
【０２３３】
転送装置２０１はＰｏＰ５０１に所属する。図１１の（Ｅ）に示したグループ情報テーブル１４５を参照すると、ＰｏＰ５０１はグループＩＤ＝２である転送グループ２に所属するため、転送装置２０１も転送グループ２に所属する。図９Ｂに示したグループ別現経路情報テーブル１０００において、利用グループ１００１の値が転送グループ２のグループＩＤ＝２であり、かつ、宛先ネットワーク１００２の値がパケットの宛先ネットワークアドレスＧであるエントリは、エントリ１０３１である。
【０２３４】
図３の（Ａ）に示した転送装置２０１の入力転送テーブル２２５および図５の（Ａ）に示した転送装置２０２の出力転送テーブル２４５は、予め設定されている図４のラベル転送テーブルと、図９Ｂに示したグループ別現経路情報テーブル１０００のエントリ１０３１に記録された情報と、を元に設定されている。
【０２３５】
図９Ｂに示したグループ別現経路情報テーブル１０００のエントリ１０３１の経路取得元１００８である転送装置２０２のポート（２／１）に、Ｇ宛のパケットが転送されることを以下に説明する。
【０２３６】
ＭＰＬＳラベルが挿入されていないＩＰパケットが転送装置２０１のポート（２／１）に入力される。転送装置２０１の入力パケット処理部２２０は、物理ポート２５０から入力されたパケットにＭＰＬＳラベルが挿入されていないので、図３の（Ａ）に示した入力転送テーブル２２５を参照する。入力転送テーブル２２５は、パケットが入力されたポートである（２／１）をポート番号１３０１に有し、かつ、入力パケットの宛先ＩＰアドレスである宛先ネットワークＧを宛先ネットワーク１３０２に有するエントリ１３２５が存在する。
【０２３７】
転送装置２０１の入力パケット処理部２２０は、エントリ１３２５の識別ラベル１３０３である識別ラベル値「６０１」をもつＭＰＬＳヘッダを、入力パケットのＭＡＣヘッダとＩＰヘッダの間に挿入する。また、転送装置２０１の入力パケット処理部２２０は、エントリ１３２５の転送ラベル１３０４である転送ラベル値「４００１」を有するＭＰＬＳヘッダを、入力パケットの既に挿入されているＭＰＬＳヘッダとＭＡＣヘッダの間に挿入する。
【０２３８】
また、転送装置２０１の入力パケット処理部２２０は、パケットが転送装置２０１に入力されたポート番号である（２／１）を記録した入力ポート情報ヘッダをパケットに挿入する。転送装置２０１の入力パケット処理部２２０は、ＭＰＬＳラベルを２つ挿入したパケットをラベル転送処理部２３０にわたす。
【０２３９】
転送装置２０１のラベル転送処理部２３０は、図４の（Ａ）に示した転送装置２０１のラベル転送テーブル２３５から、入力ポート１３５１の値が入力ポート情報ヘッダに記録されているポート番号である（２／１）であり、かつ、入力転送ラベル１３５２の値がパケットの転送ラベル値「４００１」であるエントリ１３６１を検索する。
【０２４０】
転送装置２０１のラベル転送処理部２３０は、パケットの転送ラベル値「４００１」を、エントリ１３６１の出力転送ラベル１３５３の値「４００２」に書き換える。転送装置２０１のラベル転送処理部２３０は、エントリ１３６１の出力ポート１３５４の値（１／１）を記録した出力ポート情報ヘッダを、パケットに挿入して出力パケット処理部２４０に渡す。
【０２４１】
入力されたパケットの宛先ネットワークアドレスは「Ｇ」、パケットに挿入されている識別ラベル値は「６０１」、パケットに挿入されている転送ラベル値は「４００２」である。この条件を満たすエントリは、転送装置２０１の出力転送テーブル２４５に存在しない。
【０２４２】
転送装置２０１の出力パケット処理部２４０は、パケットに含まれる出力ポート情報ヘッダに記録されたポート番号の（１／１）を参照し、出力ポート情報ヘッダを外した後に、参照したポート番号（１／１）からパケットを出力する。出力されたパケットは転送装置２０６のポート番号（１／１）をもつ物理ポート２５０に入力される。
【０２４３】
ＭＰＬＳラベルが挿入されたパケットが入力されたので、転送装置２０６の入力パケット処理部２２０は、当該パケットが転送装置２０６に入力されたポート番号である（１／１）を記録した入力ポート情報ヘッダをパケットに挿入し、ラベル転送処理部２３０にパケットをわたす。
【０２４４】
転送装置２０６のラベル転送処理部２３０は、図４の（Ｂ）に示した転送装置２０６のラベル転送テーブル２３５から、入力ポート１３５１の値が入力ポート情報ヘッダに記録されているポート番号である（１／１）であり、かつ、入力転送ラベル１３５２の値がパケットの転送ラベル値「４００２」であるエントリ１３６６を検索する。
【０２４５】
転送装置２０６のラベル転送処理部２３０は、パケットの転送ラベル値「４００２」をエントリ１３６６の出力転送ラベル１３５３に記録されている出力ラベル値「４００３」に書き換える。転送装置２０６のラベル転送処理部２３０は、エントリ１３６６の出力ポート１３５４に記録されている（１／２）を記録した出力ポート情報ヘッダをパケットに挿入し、出力パケット処理部２４０に渡す。
【０２４６】
転送装置２０６は、隣接ルータ３００と接続されていないので、出力転送テーブル２４５のエントリは存在しない。このため、転送装置２０６の出力パケット処理部２４０は、出力ポート情報ヘッダに記録されたポート番号（１／２）を参照し、出力ポート情報ヘッダを外した後に、参照したポート番号（１／２）からパケットを出力する。出力されたパケットは、転送装置２０２のポート番号（１／１）をもつ物理ポート２５０に入力される。
【０２４７】
ＭＰＬＳラベルが挿入されたパケットが入力されたので、転送装置２０２の入力パケット処理部２２０は、パケットが転送装置２０２に入力されたポート番号である（１／１）を記録した入力ポート情報ヘッダをパケットに挿入し、ラベル転送処理部２３０にパケットをわたす。
【０２４８】
転送装置２０２のラベル転送処理部２３０は、図４の（Ｄ）に示した転送装置２０２のラベル転送テーブル２３５から、入力ポート１３５１の値が入力ポート情報ヘッダに記録されているポート番号である（１／１）であり、かつ、入力転送ラベル１３５２の値がパケットの転送ラベル値「４００３」であるエントリ１３８１を検索する。
【０２４９】
転送装置２０２のラベル転送処理部２３０は、パケットの転送ラベル値「４００３」をエントリ１３８１の出力転送ラベル１３５３に記録されている出力ラベル値「４００４」に書き換える。転送装置２０２のラベル転送処理部２３０は、エントリ１３８１の出力ポート１３５４に記録されている（２／１）を記録した出力ポート情報ヘッダをパケットに挿入し、出力パケット処理部２４０に渡す。
【０２５０】
入力されたパケットの宛先ネットワークアドレスは「Ｇ」、パケットに挿入されている識別ラベル値は「６０１」、パケットに挿入されている転送ラベル値は「４００４」である。転送装置２０２の出力パケット処理部２４０は、この条件を満たすエントリを出力転送テーブル２４５から検索する。
【０２５１】
この場合、図５の（Ａ）に示した転送装置２０２の出力転送テーブル２４５のエントリ１４２５が上記条件を満たす。したがって、転送装置２０２の出力パケット処理部２４０は、ラベル転送処理部２３０から受け取ったパケットの宛先ＭＡＣアドレスを当該エントリ１４２５の書換宛先ＭＡＣ１４０５に記録されているブロードキャストアドレス「ＢＲＯＡＤＣＡＳＴ」に書き換える。また、転送装置２０２の出力パケット処理部２４０は、当該パケットの送信ＭＡＣアドレスを書換送信元ＭＡＣ１４０６に記録されている「ＭＡＣ２０２」に書き換え、挿入されている識別ラベル値「６０１」と転送ラベル値「４００４」とを外す。
【０２５２】
転送装置２０２の出力パケット処理部２４０は、出力ポート情報ヘッダに記録されたポート番号（２／１）を参照し、出力ポート情報ヘッダを外した後に、参照したポート番号（２／１）をもつ物理ポート２５０からパケットを出力する。出力されたパケットは転送装置２０２のポート番号（２／１）から出力される。
【０２５３】
以上ように、転送装置２０１のポート（２／１）から宛先ネットワークＧ宛のパケットが入力されると、図９Ｂに示したグループ別現経路情報テーブル１０００に従って、エントリ１０３１の経路取得元１００８である転送装置２０２のポート（２／１）からパケットが出力される。
【０２５４】
宛先ネットワークＧ宛のパケットの転送例と同様にして、転送装置２０１〜２０５を通って転送装置網１０に入力されたパケットは、図９Ｂに示したグループ別現経路情報テーブル１０００に従って、宛先ネットワーク１００２に記録されているネットワークに転送される。
【０２５５】
次に、隣接ルータ３０１〜３０５が、隣接ルータ管理テーブル１４４の隣接ルータＩＤ８０１に対応する接続転送装置８０４に接続される。仮想ルータ機能部１２１は、図１０の（Ａ）に示した隣接ルータ管理テーブル１４４のエントリ８２５〜８２９における隣接ルータＩＰ８０３に対してＡＲＰ解決を行い、得られたＭＡＣアドレスを隣接ルータＭＡＣ８０２にそれぞれ記録し、接続状態８０８を「通信可」にする。
【０２５６】
これにより、仮想ルータ機能部１２１が、ルータ３０１〜３０５との間でＢＧＰのＯｐｅｎメッセージを処理し、仮想ルータ機能部１２１とルータ３０１〜３０５との間でｅＢＧＰの隣接関係が成立する。ｅＢＧＰの隣接関係が成立すると、仮想ルータ機能部１２１は、隣接ルータ管理テーブル１４４のエントリ８２５〜８２９の接続状態８０８を「通信可」に書き換える。以上の処理により、隣接ルータ管理テーブル１４４は、図１０の（Ａ）から（Ｂ）に更新される。
【０２５７】
＜（２）ルータ接続による経路広告処理＞
つぎに、ルータ接続による経路広告処理（Ｆ２９００）について説明する。ルータ接続による経路広告処理は、仮想ルータ機能部１２１が、ＢＧＰ隣接関係になったルータ３０１〜３０５に対して、経路情報を広告する処理である。
【０２５８】
図２８は、ルータ接続による経路広告処理（Ｆ２９００）の詳細な処理手順例を示すフローチャートである。まず、仮想ルータ機能部１２１は、図２２に示した差分経路情報テーブル更新処理（Ｆ２５００）を実行する。ルータ接続による経路広告処理（Ｆ２９００）における差分経路情報テーブル更新処理（Ｆ２５００）では、図１８のグループ分け変化による経路情報操作処理（Ｆ２２００）において更新された図１２の（Ｃ）のＰｏＰ情報テーブル１４６が用いられる。したがって、図２８では、仮想ルータ機能部１２１は、図８Ｂに示した差分経路情報テーブル１４２を作成する。
【０２５９】
つぎに、仮想ルータ機能部１２１は、図２７に示した経路情報広告処理（Ｆ２７００）を実行する。仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の先頭エントリ参照を試みる（Ｆ２７０４）。図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の先頭エントリ８２５が存在し（Ｆ２７０８：Ｙｅｓ）、参照エントリ８２５の接続状態８０８が「通信可」である（Ｆ２７１２：Ｙｅｓ）。したがって、仮想ルータ機能部１２１は、図８Ｂに示した差分経路情報テーブル１４２の先頭エントリの参照を試みる（Ｆ２７２０）。
【０２６０】
図８Ｂに示した差分経路情報テーブル１４２の先頭エントリ１２２５が存在する（Ｆ２７２４：Ｙｅｓ）ため、仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の参照エントリ８２５の接続ＰｏＰ＿ＩＤ８０７の値「５０１」をもつエントリを、図１２の（Ｃ）に示したＰｏＰ情報テーブル１４６から検索する。エントリ８７５が検索される。仮想ルータ機能部１２１は、そのエントリ８７５の旧所属グループ８５４の値「２」と現所属グループ８５５である「２」を取得する（Ｆ２７２８）。
【０２６１】
図８Ｂに示した差分経路情報テーブル１４２の参照エントリ１２２５の旧情報源グループ１２０６の値「１」および現情報源グループ１２０７の値「１」の組み合わせが、Ｆ２７２８で取得した旧所属グループ８５４の値「２」および現所属グループ８５５の値「２」の組み合わせと一致しない。したがって、エントリ１２２５は広告対象でない（Ｆ２７３２、Ｆ２７３６：Ｎｏ）。このあと、仮想ルータ機能部１２１は、図８Ｂに示した差分経路情報テーブル１４２の次エントリ１２２６を参照して（Ｆ２７４４）、Ｆ２７２４に戻る。エントリ１２２６〜１２２９までは、エントリ１２２５と同じ処理となる。
【０２６２】
図８Ｂに示した差分経路情報テーブル１４２の参照エントリがエントリ１２３０になった場合、参照エントリ１２３０の旧情報源グループ１２０６の値「２」および現情報源グループ１２０７の値「２」の組み合わせが、Ｆ２７２８で取得した旧所属グループ８５４の値「２」および現所属グループ８５５の値「２」の組み合わせと一致する。
【０２６３】
したがって、エントリ１２３０は広告対象になる（Ｆ２７３２、２７３６：Ｙｅｓ）。広告対象であるエントリ１２３０の削除・更新１２０９は「更新」である。したがって、仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の参照エントリ８２５の隣接ルータＩＤ８０１の値「３０１」で特定されるルータ３０１に、エントリ１２３０を経路情報として広告する（Ｆ２７４０）。
【０２６４】
つぎに、仮想ルータ機能部１２１は、図８Ｂに示した差分経路情報テーブル１４２の次エントリ１２３１の参照を試みる（Ｆ２７４４）。エントリ１２３１〜１２３４もエントリ１２３０と同様にして広告対象になる。エントリ１２３１〜１２３４の削除・更新１２０９は「更新」である。したがって、仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の参照エントリ８２５の隣接ルータＩＤ８０１の値「３０１」で特定されるルータ３０１に、エントリ１２３１〜１２３４を経路情報として広告する（Ｆ２７４０）。
【０２６５】
このあと、仮想ルータ機能部１２１は、図８Ｂに示した差分経路情報テーブル１４２でエントリ１２３４の次エントリ参照を試みるが（Ｆ２７４４）、図８Ｂに示した差分経路情報テーブル１４２のエントリ１２３４の次エントリが存在しない（Ｆ２７２４：Ｎｏ）。したがって、仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４のエントリ８２５の次エントリ８２６の参照を試みる（Ｆ２７１６）。参照するエントリ８２６が存在する（Ｆ２７０８：Ｙｅｓ）。仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４のエントリ８２６〜８２９に対しても、エントリ８２５と同様にして、処理Ｆ２７０８〜Ｆ２７４４を実行する。
【０２６６】
エントリ８２６の場合、接続ＰｏＰ＿ＩＤ８０７は「５０２」である。仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の参照エントリ８２６の接続ＰｏＰ＿ＩＤ８０７の値「５０２」をもつエントリを、図１２の（Ｃ）に示したＰｏＰ情報テーブル１４６から検索する。エントリ８７６が検索される。仮想ルータ機能部１２１は、そのエントリ８７５の旧所属グループ８５４の値「２」と現所属グループ８５５である「２」を取得する（Ｆ２７２８）。
【０２６７】
エントリ８２６の場合、エントリ８７５と同様、図８Ｂに示した差分経路情報テーブル１４２のエントリ１２３０〜１２３４が広告対象になる。したがって、仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の参照エントリ８２６の隣接ルータＩＤ８０１の値「３０２」で特定されるルータ３０２に、エントリ１２３０〜１２３４を経路情報として広告する（Ｆ２７４０）。
【０２６８】
エントリ８２７の場合、接続ＰｏＰ＿ＩＤ８０７は「５０３」である。仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の参照エントリ８２７の接続ＰｏＰ＿ＩＤ８０７の値「５０３」をもつエントリを、図１２の（Ｃ）に示したＰｏＰ情報テーブル１４６から検索する。エントリ８７７が検索される。仮想ルータ機能部１２１は、そのエントリ８７７の旧所属グループ８５４の値「１」と現所属グループ８５５である「１」を取得する（Ｆ２７２８）。
【０２６９】
図８Ｂに示した差分経路情報テーブル１４２の参照エントリ１２２５の旧情報源グループ１２０６の値「１」および現情報源グループ１２０７の値「１」の組み合わせが、Ｆ２７２８で取得した旧所属グループ８５４の値「１」および現所属グループ８５５の値「１」の組み合わせと一致する。
【０２７０】
したがって、エントリ１２２５は広告対象になる（Ｆ２７３２、２７３６：Ｙｅｓ）。広告対象であるエントリ１２３０の削除・更新１２０９は「更新」である。したがって、仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の参照エントリ８２７の隣接ルータＩＤ８０１の値「３０３」で特定されるルータ３０３に、エントリ１２２５を経路情報として広告する（Ｆ２７４０）。
【０２７１】
つぎに、仮想ルータ機能部１２１は、図８Ｂに示した差分経路情報テーブル１４２の次エントリ１２２６の参照を試みる（Ｆ２７４４）。エントリ１２２６〜１２２９もエントリ１２２５と同様にして広告対象になる。エントリ１２２６〜１２２９の削除・更新１２０９は「更新」である。したがって、仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の参照エントリ８２７の隣接ルータＩＤ８０１の値「３０３」で特定されるルータ３０３に、エントリ１２２６〜１２２９を経路情報として広告する（Ｆ２７４０）。なお、エントリ１２３０〜１２３４については、広告対象にならないため、広告されない。
【０２７２】
エントリ８２８の場合、接続ＰｏＰ＿ＩＤ８０７は「５０４」である。仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の参照エントリ８２８の接続ＰｏＰ＿ＩＤ８０７の値「５０４」をもつエントリを、図１２の（Ｃ）に示したＰｏＰ情報テーブル１４６から検索する。エントリ８７８が検索される。仮想ルータ機能部１２１は、そのエントリ８７８の旧所属グループ８５４の値「１」と現所属グループ８５５である「１」を取得する（Ｆ２７２８）。
【０２７３】
エントリ８２８の場合、エントリ８７７と同様、図８Ｂに示した差分経路情報テーブル１４２のエントリ１２２５〜１２２９が広告対象になる。したがって、仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の参照エントリ８２８の隣接ルータＩＤ８０１の値「３０４」で特定されるルータ３０４に、エントリ１２２５〜１２２９を経路情報として広告する（Ｆ２７４０）。
【０２７４】
エントリ８２９の場合、接続ＰｏＰ＿ＩＤ８０７は「５０４」である。仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の参照エントリ８２８の接続ＰｏＰ＿ＩＤ８０７の値「５０４」をもつエントリを、図１２の（Ｃ）に示したＰｏＰ情報テーブル１４６から検索する。エントリ８７８が検索される。仮想ルータ機能部１２１は、そのエントリ８７８の旧所属グループ８５４の値「１」と現所属グループ８５５である「１」を取得する（Ｆ２７２８）。
【０２７５】
エントリ８２９の場合、エントリ８７７と同様、図８Ｂに示した差分経路情報テーブル１４２のエントリ１２２５〜１２２９が広告対象になる。したがって、仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の参照エントリ８２９の隣接ルータＩＤ８０１の値「３０５」で特定されるルータ３０５に、エントリ１２２５〜１２２９を経路情報として広告する（Ｆ２７４０）。隣接ルータ管理テーブルのエントリ８２９の次エントリが存在しない場合（Ｆ２７０８：Ｎｏ）、仮想ルータ機能部１２１は、図２７の経路情報広告処理（Ｆ２７００）を終了する。
【０２７６】
つぎに、仮想ルータ機能部１２１は、図１２の（Ｃ）に示したＰｏＰ情報テーブル１４６の全エントリ８７５〜８７８について、旧所属グループ８５４に現所属グループ８５５の値をそれぞれ代入する（Ｆ２９０４）。図１２の（Ｃ）では、ＰｏＰ情報テーブル１４６の全エントリ８７５〜８７６の旧所属グループ８５４と現所属グループ８５５の値は等しいため、図１２の（Ｃ）に示したＰｏＰ情報テーブル１４６は変更されない。これにより、仮想ルータ機能部１２１は、ルータ接続による経路広告処理（Ｆ２９００）を終了する。
【０２７７】
＜（３）新規経路取得処理＞
つぎに、新規経路取得処理（Ｆ２８００）について説明する。ルータ３０１〜３０５とｅＢＧＰの隣接関係が成立したことで、隣接ルータ３０１〜３０５がもつネットワークアドレスＡ〜Ｅに対する経路情報（隣接ルータ３０１〜３０５とその宛先ネットワーク６００）が、仮想ルータ機能部１２１に広告される。そして、仮想ルータ機能部１２１は、図２９に示す新規経路取得処理（Ｆ２８００）を実行する。なお、経路情報テーブル１４１は、図７の（Ｂ）に示した内容である。
【０２７８】
図２９は、新規経路取得処理（Ｆ２８００）の詳細な処理手順例を示すフローチャートである。まず、仮想ルータ機能部１２１は、隣接ルータ３０１〜３０５から広告されてきた経路情報（隣接ルータ３０１〜３０５とその宛先ネットワーク６００と経路情報に含まれるパス属性）に、ＰｏＰ優先度１１０４、情報源ＰｏＰ１１０５、情報源グループ１１０６、および経路取得元１１０７を追加して、エントリ１１５６〜１１６４として図７の（Ｂ）に示した経路情報テーブル１４１に追加する（Ｆ２８０４）。つまり、広告されてきた経路情報の隣接ルータ３００の情報を広告元ルータ１１０２に格納し、その宛先ネットワーク６００を宛先ネットワーク１１０１に格納し広告されてきた経路情報に含まれるパス属性を他パス属性１１０３に格納する。また、ＰｏＰ優先度１１０４、情報源ＰｏＰ１１０５、情報源グループ１１０６、および経路取得元１１０７のフィールドを追加してそれぞれの値を格納する。これにより、経路情報テーブル１４１は、図７の（Ｃ）に示した内容になる。
【０２７９】
つぎに、仮想ルータ機能部１２１は、図９Ｂに示したグループ別現経路情報テーブル１０００のエントリ１０２５〜１０３４の内容を、グループ別旧経路情報テーブル１０５０に複製してから、グループ別現経路情報テーブル１０００のエントリ１０２５〜１０３４を消去する（Ｆ２８０８）。つまり、グループ別旧経路情報テーブルの内容をグループ別現経路情報テーブルに置き換えてからグループ別現経路情報テーブルを消去する（Ｆ２８０８）。これにより、図９Ｃに示したように、グループ別旧経路情報テーブル１０５０のエントリ１０７５〜１０８４が作成される。つぎに、仮想ルータ機能部１２１は、図７の（Ｃ）に示した経路情報テーブル１４１の全エントリ１１５１〜１１６４を引数として、図２０に示した最適経路選択処理を実行する（Ｆ２３００）。
【０２８０】
グループ分け処理（Ｆ２０００）での最適経路選択処理（Ｆ２３００）を実行した場合に図７の（Ａ）に示した経路情報テーブル１４１のエントリ１１５１〜１１５５を引数としたときと同様、本フローの最適経路選択処理（Ｆ２３００）では、仮想ルータ機能部１２１は、図７の（Ｃ）に示した経路情報テーブル１４１のエントリ１１５１〜１１５８に対して処理Ｆ２３０８：Ｙｅｓ、図２０のＦ２３１２〜２３２８を実行する。
【０２８１】
これにより、図７の（Ｃ）に示した経路情報テーブル１４１のエントリ１１５１〜１１５８に利用グループ１００１の値「１」が追加されたエントリ１１５１〜１１５８が、図９Ｃに示したグループ別現経路情報テーブル１０００のエントリ１０２５〜１０３２として追加される。
【０２８２】
つぎに、仮想ルータ機能部１２１は、図７の（Ｃ）に示した経路情報テーブル１４１において、エントリ１１５８の次エントリの参照を試みる（Ｆ２３２８）。次エントリ１１５９が存在するので（Ｆ２３０８：Ｙｅｓ）、仮想ルータ機能部１２１は、経路情報テーブル１４１の参照エントリ１１５９を最適経路情報候補１１５９とし、最適経路情報候補１１５９の宛先ネットワーク１１０１にある宛先ネットワークＡを変数ＣＡＮＤＩＤＡＴＥ＿ＮＷに代入する（Ｆ２３１２）。
【０２８３】
宛先ネットワークＡへのＩＰ到達性があるため（Ｆ２３１６:Ｙｅｓ）、グループ別現経路情報テーブル１０００のエントリで利用グループ１００１が「１」であるエントリ１０２５〜１０３２うち、宛先ネットワーク１００２の値がＣＡＮＤＩＤＡＴＥ＿ＮＷである宛先ネットワークＡを持つエントリが存在する（Ｆ２３２０：Ｙｅｓ）。このエントリは、宛先ネットワークＡを持つエントリ１１５６に利用グループ１００１の値「１」が追加されたエントリである。便宜上、現最適経路情報１１５６とする（Ｆ２３３２）。
【０２８４】
つぎに、仮想ルータ機能部１２１は、対象グループ番号Ｎ＝１、最適経路情報候補１１５９、現最適経路情報１１５６を引数として図２１に示した経路属性比較処理（Ｆ２４００）を実行する。
【０２８５】
現最適経路情報１１５６の情報源グループ１１０６（実際には情報源グループ１００７を参照する）の値が「２」であり、最適経路情報候補１１５９の情報源グループ１１０６の値が「１」であるため、同一でない（Ｆ２４０４：Ｎｏ）。また、対象グループ番号Ｎ＝１と現最適経路情報１１５６の情報源グループ１１０６の値「２」が同じでない（Ｆ２４０８：Ｎｏ）。
【０２８６】
一方、最適経路情報候補１１５９の情報源グループ１１０６の値「１」が対象グループ番号Ｎ＝１と同じであるため（Ｆ２４１２：Ｙｅｓ）、グループ別現経路情報テーブル１０００で、現最適経路情報１１５６を、利用グループ１００１の値を「１」としたフィールドを追加した最適経路情報候補１１５９に書き換えて、グループ別現経路情報テーブル１０００のエントリ１０３０とする（Ｆ２４１６）。これにより、仮想ルータ機能部１２１は、図２１に示した経路属性比較処理（Ｆ２４００）を終了する。
【０２８７】
つぎに、仮想ルータ機能部１２１は、図７の（Ｃ）に示した経路情報テーブル１４１でエントリ１１５９の次エントリの参照を試みる（Ｆ２３２８）。次エントリ１１６０が存在する（Ｆ２３０８：Ｙｅｓ）。エントリ１１６０についても、エントリ１１５９と同様にして、処理Ｆ２３０４〜Ｆ２３３２、Ｆ２４００〜Ｆ２４０８、Ｆ２４２０を実行することにより、図９Ｃのグループ別現経路情報テーブル１０００において、現最適経路情報１１５７がエントリ１０３１に書き換えられる（Ｆ２４１６）。
【０２８８】
つぎに、仮想ルータ機能部１２１は、図７の（Ｃ）に示した経路情報テーブル１４１でエントリ１１６０の次エントリの参照を試みる（Ｆ２３２８）。次エントリ１１６１が存在する（Ｆ２３０８：Ｙｅｓ）。エントリ１１６１についても、エントリ１１６０と同様にして、処理Ｆ２３０４〜Ｆ２３３２、Ｆ２４００〜Ｆ２４０８、Ｆ２４２０を実行することにより、図９Ｃのグループ別現経路情報テーブル１０００において、現最適経路情報１１５８がエントリ１０３２に書き換えられる（Ｆ２４１６）。
【０２８９】
つぎに、仮想ルータ機能部１２１は、図７の（Ｃ）に示した経路情報テーブル１４１でエントリ１１６１の次エントリの参照を試みる（Ｆ２３２８）。次エントリ１１６２が存在する（Ｆ２３０８：Ｙｅｓ）。エントリ１１６２についても、エントリ１１５１の場合と同様にして処理Ｆ２３０８、Ｆ２３１２〜２３２８を実行することにより、利用グループを１としたフィールドを追加したエントリ１１６２が、グループ別現経路情報テーブル１０００のエントリ１０３３として追加される。
【０２９０】
つぎに、仮想ルータ機能部１２１は、経路情報テーブル１４１でエントリ１１６２の次エントリの参照を試みる（Ｆ２３２８）。次エントリ１１６３が存在する（Ｆ２３０８:Ｙｅｓ）。仮想ルータ機能部１２１は、図７の（Ｃ）に示した経路情報テーブル１４１の参照エントリ１１６３を最適経路情報候補１１６３とし、最適経路情報候補１１６３の宛先ネットワーク１１０１の値である宛先ネットワークＤを変数ＣＡＮＤＩＤＡＴＥ＿ＮＷに代入する（Ｆ２３１２）。
【０２９１】
宛先ネットワークＤへのＩＰ到達性があるため（Ｆ２３１６：Ｙｅｓ）、グループ別現経路情報テーブル１０００のエントリで利用グループ１００１が「１」であるエントリ１０２５〜１０３４うち、宛先ネットワーク１００２の値がＣＡＮＤＩＤＡＴＥ＿ＮＷである宛先ネットワークＤを持つエントリとして、エントリ１０３３が存在する（Ｆ２３２０：Ｙｅｓ）。このエントリ１０３３を現最適経路情報１０３３とする（Ｆ２３３２）。
【０２９２】
つぎに、仮想ルータ機能部１２１は、対象グループ番号Ｎ＝１、最適経路情報候補１１６３、現最適経路情報１０３３を引数として、図２１の経路属性比較処理（Ｆ２４００）を実行する。
【０２９３】
現最適経路情報１０３３の情報源グループ１００７の値が「１」であり、最適経路情報候補１１６３の情報源グループ１１０６の値が「２」であるため、同一でない（Ｆ２４０４：Ｎｏ）。一方、グループ番号Ｎ＝１と現最適経路情報１０３３の情報源グループ１００７の値「１」が同一であるため（Ｆ２４０８：Ｙｅｓ）、グループ１での最適経路は現最適経路情報１０３３のままで変更はない（Ｆ２４２０）。これにより、仮想ルータ機能部１２１は、図２１の経路属性比較処理（Ｆ２４００）を終了する。
【０２９４】
つぎに、仮想ルータ機能部１２１は、経路情報テーブル１４１でエントリ１１６３の次エントリの参照を試みる（Ｆ２３２８）。次エントリ１１６４が存在する（Ｆ２３０８:Ｙｅｓ）。エントリ１１６４についても、エントリ１１５１の場合と同様にして処理Ｆ２３０８、Ｆ２３１２〜２３２８を実行することにより、利用グループを１としたフィールドを追加したエントリ１１６４が、グループ別現経路情報テーブル１０００のエントリ１０３４として追加される。
【０２９５】
つぎに、仮想ルータ機能部１２１は、経路情報テーブル１４１でエントリ１１６４の次エントリの参照を試みる（Ｆ２３２８）。経路情報テーブル１４１でエントリ１１６４の次エントリは存在しないので（Ｆ２３０８：Ｎｏ）、仮想ルータ機能部１２１は、対象グループ番号Ｎを１から１増加して２とする（Ｆ２３０９）。グループ番号Ｎが２であり、グループ情報テーブル１４５のエントリ数２以下である（Ｆ２３１０：Ｙｅｓ）。経路情報テーブル１４１として図７の（Ｃ）の経路情報テーブル１４１が参照されており、仮想ルータ機能部１２１は、その先頭エントリの参照を試みる（Ｆ２３０４）。
【０２９６】
グループ番号Ｎが１のときにエントリ１１５１〜１１６４に対して行った処理と同様にし、グループ番号Ｎが２のときもエントリ１１５１〜エントリ１１６４に対して処理Ｆ２３０８〜２３３２、Ｆ２４００〜２４３２が実行される。これにより、図９Ｃのグループ別現経路情報テーブル１０００のエントリ１０３５〜１０４４が作成される。
【０２９７】
つぎに、仮想ルータ機能部１２１は、経路情報テーブル１４１でエントリ１１６４の次エントリの参照を試みる（Ｆ２３２８）。経路情報テーブル１４１でエントリ１１６４の次エントリは存在しないので（Ｆ２３０８：Ｎｏ）、対象グループ番号Ｎを２から１増加して３とする（Ｆ２３０９）。グループ番号Ｎが３であり、グループ情報テーブル１４５のエントリ数２以下でないので（Ｆ２３１０：Ｎｏ）、仮想ルータ機能部１２１は、最適経路選択処理（Ｆ２３００）を終了する。図２９における最適経路選択処理（Ｆ２３００）により、図９Ｃに示したグループ別現経路情報テーブル１０００が作成される。
【０２９８】
つぎに、図２９において、仮想ルータ機能部１２１は、図２２に示した差分経路情報テーブル更新処理を実行する（Ｆ２５００）。差分経路情報テーブル更新処理（Ｆ２５００）では、まず、仮想ルータ機能部１２１は、差分経路情報テーブル１４２の全エントリを削除することにより初期化を行う（Ｆ２５０４）。仮想ルータ機能部１２１は、図１２の（Ｃ）に示したＰｏＰ情報テーブル１４６の先頭エントリの参照を試みる（Ｆ２５０８）。
【０２９９】
図１２の（Ｃ）に示したＰｏＰ情報テーブル１４６の先頭エントリ８７８が存在する（Ｆ２５１２：Ｙｅｓ）。存在するエントリ８７８を参照エントリとする。参照エントリ８７８の現所属グループ８５５の値である「１」と旧所属グループ８５４の値である「１」の組み合わせと同じ現情報源グループ１２０７の値と旧情報源グループ１２０６の値との組み合わせをもつエントリは、差分経路情報テーブル１４２には存在しない（Ｆ２５１６：Ｎｏ）。そして、仮想ルータ機能部１２１は、引数１を参照エントリ８７８の現所属グループ８５５の値である「１」、引数２を参照エントリ８７８の旧所属グループ８５４の値である「１」として、図２３の差分取得処理（Ｆ２５５０）を実行する。
【０３００】
仮想ルータ機能部１２１は、図９Ｃに示したグループ別現経路情報テーブル１０００から、参照エントリ８７８の現所属グループ８５５の値である「１」が利用グループ１００１に記録されているエントリ１０２５〜１０３４を取得する（Ｆ２５５２）。エントリ１０２５〜１０３４は、現経路情報リストとして保持される。
【０３０１】
つぎに、仮想ルータ機能部１２１は、図９Ｃに示したグループ別旧経路情報テーブル１０５０の先頭エントリの参照を試みる（Ｆ２５５４）。図９Ｃに示したグループ別旧経路情報テーブル１０５０には先頭エントリとしてエントリ１０７５（以下、参照エントリ）が存在し（Ｆ２５５６：Ｙｅｓ）、参照エントリ１０７５の利用グループ１００１の値である「１」が、引数２の旧所属グループ８５４の値である「１」と同一である（Ｆ２５６０：Ｙｅｓ）。
【０３０２】
仮想ルータ機能部１２１は、経路情報リストの先頭エントリの参照を試み（Ｆ２５６２）、現経路情報リストの参照エントリ１０２５が存在する（Ｆ２５６４：Ｙｅｓ）。図９Ｃに示したグループ別旧経路情報テーブル１０５０の参照エントリ１０７５と現経路情報リストの参照エントリ１０２５は、同じ宛先ネットワーク１００２，１０５２であるネットワークＦを有する（Ｆ２５６６：Ｙｅｓ）。また、広告元ルータ１００３，１０５３、他パス属性１００４，１０５４、経路取得元１００８，１０５８についても同じ値を持つ（Ｆ２５６８：Ｎｏ）。したがって、仮想ルータ機能部１２１は、現経路情報リストから参照エントリ１０２５を削除する。これで、現経路情報リストには、エントリ１０２６〜１０３４が残存する（Ｆ２５７０）。
【０３０３】
つぎに、仮想ルータ機能部１２１は、図９Ｃに示したグループ別旧経路情報テーブル１０５０のエントリ１０７５の次エントリの参照を試み（Ｆ２５７２）、グループ別旧経路情報テーブル１０５０のエントリ１０７５の次エントリ１０７６が存在する（Ｆ２５５６：Ｙｅｓ）。エントリ１０７６〜１０７９についてもエントリ１０７５の場合と同様にして、処理Ｆ２５５６〜２５７２を実行することにより、現経路情報リストから、参照したエントリ１０２６〜１０２９が削除される。これにより、現経路情報リストには、エントリ１０３０〜１０３４が残存する（Ｆ２５７０）。
【０３０４】
つぎに、仮想ルータ機能部１２１は、図９Ｃに示したグループ別旧経路情報テーブル１０５０のエントリ１０７９の次エントリの参照を試みる（Ｆ２５７２）。次エントリ１０８０が存在する（Ｆ２５５６：Ｙｅｓ）。エントリ１０８０の利用グループ１００１の値は「２」であり、差分取得処理（Ｆ２５５０）の引数２の旧所属グループ８５４の値である「１」と異なる（Ｆ２５６０：Ｎｏ）。したがって、仮想ルータ機能部１２１は、図９Ｃに示したグループ別旧経路情報テーブル１０５０のエントリ１０８４の次エントリの参照を試みる（Ｆ２５７２）。エントリ１０８１〜１０８４についても同様に、エントリ１０８０の利用グループ１００１の値は「２」であり、差分取得処理（Ｆ２５５０）の引数２の旧所属グループ８５４の値である「１」と異なる（Ｆ２５６０：Ｎｏ）。したがって、仮想ルータ機能部１２１は、図９Ｃに示したグループ別旧経路情報テーブル１０５０のエントリ１０８４の次エントリの参照を試みるが（Ｆ２５７２）、次エントリは存在しない（Ｆ２５５６：Ｎｏ）。
【０３０５】
これにより、仮想ルータ機能部１２１は、現経路情報リストの残存エントリであるエントリ１０３０〜１０３４の一部のフィールドに、旧情報源グループ１２０６の値が引数１（参照エントリ８７８の現所属グループ８５５の値である「１」）、現情報源グループ１２０７の値が引数２（参照エントリ８７８の旧所属グループ８５４の値である「１」）、削除・更新１２０９の値が「更新」となるフィールドを追加したエントリ１２２５〜１２２９を差分経路情報テーブル１４２に追加する（Ｆ２５５８）。
【０３０６】
以上により、仮想ルータ機能部１２１は、引数１を参照エントリ８５５の現所属グループ８５５の値である「１」、引数２を参照エントリ８５５の旧所属グループ８５４の値である「１」とした図１２の差分取得処理（Ｆ２５５０）を終了する。この処理により、図８Ｃに示した差分経路情報テーブル１４２のエントリ１２２５〜１２２９が作成される。
【０３０７】
つぎに、図２２において、仮想ルータ機能部１２１は、図１２の（Ｃ）に示したＰｏＰ情報テーブルのエントリ８７８の次エントリ参照を試みる（Ｆ２５２０）。ＰｏＰ情報テーブル１４６のエントリ８７８の次エントリ８７６は存在する（Ｆ２５１２:Ｙｅｓ）。参照エントリ８７６の現所属グループ８５５の値である「２」と旧所属グループ８５４の値である「２」との組み合わせと同じ現情報源グループ１２０７の値と旧情報源グループ１２０６の値との組み合わせを有するエントリは、差分経路情報テーブル１４２には存在しない（Ｆ２５１６：Ｎｏ）。
【０３０８】
したがって、仮想ルータ機能部１２１は、引数１を参照エントリ８７８の現所属グループ８５５の値である「２」、引数２を参照エントリ８７８の旧所属グループ８５４の値である「２」として、図２３の差分取得処理（Ｆ２５５０）を実行する。エントリ８７８のときと同様、仮想ルータ機能部１２１は差分取得処理（Ｆ２５５０）を実行することにより、図８Ｃに示した差分経路情報テーブル１４２のエントリ１２３０〜１２３４が作成される。
【０３０９】
つぎに、図２２において、仮想ルータ機能部１２１は、図１２の（Ｃ）に示したＰｏＰ情報テーブルのエントリ８７６の次エントリの参照を試みる（Ｆ２５２０）。ＰｏＰ情報テーブル１４６のエントリ８７６の次エントリ８７５が存在し（Ｆ２５１２:Ｙｅｓ）、参照エントリ８７５の現所属グループ８５５の値である「２」と旧所属グループ８５４の値である「２」との組み合わせと同じ現情報源グループ１２０７の値と旧情報源グループ１２０６の値との組み合わせをもつエントリが、差分経路情報テーブル１４２のエントリ１２３０に存在する（Ｆ２５１６：Ｙｅｓ）。
【０３１０】
したがって、仮想ルータ機能部１２１は、差分取得処理（Ｆ２５５０）を実行せずに、図１２の（Ｃ）に示したＰｏＰ情報テーブル１４６のエントリ８７５の次エントリの参照を試みる（Ｆ２５０８）。図１２の（Ｃ）に示したＰｏＰ情報テーブル１４６のエントリ８７５の次エントリ８７７が存在し（Ｆ２５１２:Ｙｅｓ）、参照エントリ８７７の現所属グループ８５５の値である「１」と旧所属グループ８５４の値である「１」との組み合わせと同じ現情報源グループ１２０７の値と旧情報源グループ１２０６の値との組み合わせをもつエントリが、差分経路情報テーブル１４２のエントリ１２２５に存在する（Ｆ２５１６：Ｙｅｓ）。
【０３１１】
したがって、仮想ルータ機能部１２１は、差分取得処理（Ｆ２５５０）を実行せずに、図１２の（Ｃ）に示したＰｏＰ情報テーブルのエントリ８７７の次エントリの参照を試みる（Ｆ２５０８）。ＰｏＰ情報テーブル１４６のエントリ８７７の次エントリは存在しないため（Ｆ２５１２:Ｎｏ）、仮想ルータ機能部１２１は、図２２に示した差分経路情報テーブル更新処理（Ｆ２５００）を終了する。これにより、図８Ｃに示した差分経路情報テーブル１４２が完成する。
【０３１２】
つぎに、図２９において、仮想ルータ機能部１２１は、図２４に示した転送装置設定処理（Ｆ２６００）を実行する。転送装置設定処理（Ｆ２６００）では、仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の先頭エントリの参照を試みる（Ｆ２６０４）。図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の先頭エントリ８２５が存在する（Ｆ２６０８：Ｙｅｓ）ので、仮想ルータ機能部１２１は、図８Ｃに示した差分経路情報テーブル１４２の先頭エントリの参照を試みる（Ｆ２６１２）。差分経路情報テーブル１４２の先頭エントリ１２２５が存在する（Ｆ２６１６：Ｙｅｓ）。
【０３１３】
つぎに、仮想ルータ機能部１２１は、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の参照エントリ８２５の接続転送装置８０４の値と図８Ｃに示した差分経路情報テーブル１４２の参照エントリ１２２５の経路取得元１２０８の値を特定する（Ｆ２６２０）。特定された値はそれぞれ転送装置２０１のポート（２／１）と転送装置２０４のポート（２／１）であり、異なる（Ｆ２６２４：Ｎｏ）。したがって、仮想ルータ機能部１２１は、図２５に示した転送装置設定対象判定処理を実行する（Ｆ３１００）。
【０３１４】
図２５の転送装置設定対象判定処理（Ｆ３１００）では、仮想ルータ機能部１２１は、図１２の（Ｃ）に示したＰｏＰ情報テーブル１４６から、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の参照エントリにおける接続ＰｏＰ＿ＩＤ８０７の値「５０１」を有するエントリ８７５を検索する。そして、仮想ルータ機能部１２１は、検索したエントリ８７５における旧所属グループ８５４の値「２」と現所属グループ８５５の値「２」を取得する（Ｆ３１０４）。
【０３１５】
つぎに、仮想ルータ機能部１２１は、図８Ｃに示した差分経路情報テーブル１４２の参照エントリ１２２５が転送装置２００への設定対象であるか否かを判断する（Ｆ３１０８）。具体的には、参照エントリ１２２５における旧情報源グループ１２０６の値「１」および現情報源グループ１２０７の値「１」が、Ｆ３１０４で取得した旧所属グループ８５４の値「２」および現所属グループ８５５の値「２」と一致しない。したがって、仮想ルータ機能部１２１は、参照エントリ１２２５は転送装置２００への設定対象でないと判断する（Ｆ３１０８、Ｆ３１１２：Ｎｏ）。これにより、仮想ルータ機能部１２１は、図２５の転送装置設定対象判定処理（Ｆ３１００）を終了し、図２４のＦ２６０４に移行する。
【０３１６】
つぎに、図２４において、仮想ルータ機能部１２１は、図８Ｃに示した差分経路情報テーブル１４２のエントリ１２２５の次エントリの参照を試みる（Ｆ２６４０）。エントリ１２２５の場合と同様、仮想ルータ機能部１２１は、処理Ｆ２６１６〜２６４０、Ｆ３１００〜３１１２を実行し、次エントリ１２２６〜１２２９も転送装置２００への設定対象でないと判断する。これにより、仮想ルータ機能部１２１は、図２５の転送装置設定対象判定処理（Ｆ３１００）を終了し、図２４のＦ２６０４に移行する。
【０３１７】
つぎに、図２４において、仮想ルータ機能部１２１は、図８Ｃに示した差分経路情報テーブル１４２のエントリ１２２９の次エントリを参照する（Ｆ２６４０）。次エントリ１２３０が存在する（Ｆ２６１６：Ｙｅｓ）。エントリ１２３０についてもエントリ１２２６と同様、仮想ルータ機能部１２１は、処理Ｆ２６２０、Ｆ２６２４、Ｆ３１００〜３１０４を実行する。なお、処理Ｆ２６２０では、図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４の参照エントリ８２５の接続転送装置８０４の値「２０１（２／１）」と、図８Ｃに示した差分経路情報テーブル１４２の参照エントリ１２３０の経路取得元１２０８の値「２０２（２／１）」と、が比較される。同値ではないため（Ｆ２６２４：Ｎｏ）、仮想ルータ機能部１２１は、図２５の転送装置設定対象判定処理を実行する（Ｆ３１００）。
【０３１８】
転送装置設定対象判定処理（Ｆ３１００）では、参照エントリ１２３０における旧情報源グループ１２０６の値「２」および現情報源グループの値「２」は、取得した旧所属グループ８５４の値「２」および現所属グループ８５５の値「２」とそれぞれ一致する。したがって、仮想ルータ機能部１２１は、エントリ１２３０が転送装置２００への設定対象であると判断し（Ｆ３１０８、Ｆ３１１２：Ｙｅｓ）、Ｆ３１１６に移行する。
【０３１９】
つぎに、仮想ルータ機能部１２１は、図１５に示したパス管理テーブル１４９から、図２４のＦ２６２０で比較された参照エントリ８２５の接続転送装置８０４の値「２０１（２／１）」および参照エントリ１２３０の経路取得元１２０８の値「２０２（２／１）」をパス端点転送装置リスト７５２に含むエントリ７７５を特定する（Ｆ３１１６）。
【０３２０】
つぎに、仮想ルータ機能部１２１は、Ｆ２６１２で取得した差分経路情報テーブル１４２のエントリ１２３０を引数１とし、Ｆ２６０４で参照した隣接ルータ管理テーブル１４４のエントリ８２５を引数２とし、パス管理テーブル１４９のエントリ７７５を引数３として、図２６に示した入出力転送テーブル作成処理（Ｆ３０００）を実行する。
【０３２１】
入出力転送テーブル作成処理（Ｆ３０００）では、引数３のエントリ７７５のパス端点転送装置リスト７５２の１つ目（左側）の値「２０１（２/１）」と、引数１のエントリ１２３０の経路取得元１２０８の値「２０２（２／１）」と一致しない（Ｆ３００４：Ｎｏ）。したがって、仮想ルータ機能部１２１は、引数３のエントリ７７５の転送ラベル値リスト７５６の１つ目（左側）の値「４００１」をＩＮ＿ＬＡＢＥＬに代入し、２つ目（右側）の値「４００４」を変数ＯＵＴ＿ＬＡＢＥＬに代入する（Ｆ３０１２）。
【０３２２】
つぎに、仮想ルータ機能部１２１は、入力転送テーブル２２５のエントリを作成する（Ｆ３０１６）。この場合、仮想ルータ機能部１２１は、ポート番号１３０１の値が引数２であるエントリ８２５の接続転送装置８０４のポート番号（２／１）、宛先ネットワーク１３０２の値が引数１であるエントリ１２３０の宛先ネットワーク１２０１の値「Ａ」、識別ラベル１３０３の値が引数３であるエントリ７７５のパスＩＤ７５１の値「６０１」、転送ラベル１３０４の値が変数ＩＮ＿ＬＡＢＥＬ「４００１」となる入力転送テーブル２２５のエントリ１３２６を作成する。
【０３２３】
つぎに、仮想ルータ機能部１２１は、隣接ルータ管理テーブル１４４から、引数１の経路取得元１２０８の値「２０２（２／１）」と同じ値が接続転送装置８０４に設定されているエントリ８２６を検索する。そして、検索したエントリ８２６の隣接ルータＭＡＣ８０２の値「ＭＡＣ３０２」を変数ＤＥＳＴ＿ＭＡＣに代入し、接続ポートＭＡＣ８０５の値「ＭＡＣ２０２」を変数ＳＯＵＲＣＥ＿ＭＡＣに代入する（Ｆ３０２０）。
【０３２４】
つぎに、仮想ルータ機能部１２１は、出力転送テーブル２４５のエントリを作成する（Ｆ３０２４）。この場合、仮想ルータ機能部１２１は、ポート番号１４０１の値が引数１の経路取得元１２０８のポート番号（２／１）、宛先ネットワーク１４０２の値が引数１の宛先ネットワーク１２０１の値「Ａ」、識別ラベル１４０３の値が引数３のパスＩＤ７５１の値「６０１」、転送ラベル１４０４の値が変数ＯＵＴ＿ＬＡＢＥＬ「４００４」、書換宛先ＭＡＣ１４０５の値が変数ＤＥＳＴ＿ＭＡＣ「ＭＡＣ３０２」、書換送信元ＭＡＣが変数ＳＯＵＲＣＥ＿ＭＡＣ「ＭＡＣ２０２」となるエントリ１４２６を作成する。これにより、仮想ルータ機能部１２１は、図２６の入出力転送テーブル作成処理（Ｆ３０００）を終了する。そして、図２５のＦ３１２４に移行する。
【０３２５】
つぎに、図２５において、仮想ルータ機能部１２１は、作成した入力転送テーブル２２５のエントリ１３２６および出力転送テーブル２４５のエントリ１４２６を転送装置２００に設定する（Ｆ３１２４）。この場合、差分経路情報テーブル１４２の参照エントリ１２３０の削除・更新１２０９の値が「更新」であるため、仮想ルータ機能部１２１は、処理Ｆ３０１６で作成した入力転送テーブル２２５のエントリ１３２６を、隣接ルータ管理テーブル１４４の参照エントリ８２５の接続転送装置８０４の値「２０１」で特定される転送装置２０１に設定要求する。すなわち、エントリ１３２６が転送装置２０１に送信される。
【０３２６】
つぎに、エントリ１３２６を受信した転送装置２０１の装置制御部２１０が、転送装置２０１内の入力転送テーブル２２５の更新を行う。これにより、図３の（Ｂ）のエントリ１３２６が設定される。また、差分経路情報テーブル１４２の参照エントリ１２３０の削除・更新１２０９の値が「更新」であるため、仮想ルータ機能部１２１は、処理Ｆ３０２４で作成した出力転送テーブル２４５のエントリ１４２６を、差分経路情報テーブル１４２の参照エントリ１２３０の経路取得元１２０８の値「２０２」で特定される転送装置２０２に設定要求する。すなわち、エントリ１４２６が転送装置２０２に送信される。すなわち、エントリ１４２６が転送装置２０２に送信される。
【０３２７】
つぎに、エントリ１４２６を受信した転送装置２０２の装置制御部２１０が、転送装置２０２内の出力転送テーブル２４５の更新を行う。これにより、図５の（Ｂ）のエントリ１４２６が設定され（Ｆ３１２４）、図２４のＦ２６４０に移行する。つぎに、仮想ルータ機能部１２１は、図８Ｂに示した差分経路情報テーブル１４２のエントリ１２３０の次エントリの参照を試みる（Ｆ２６４０）。エントリ１２３０の後続のエントリ１２３１〜１２３４についても、エントリ１２３０と同様に処理Ｆ２６１６〜２６４４、Ｆ３１００が実行される。この際、エントリ１２３４における処理Ｆ３１２４によって、図３の（Ｂ）に示した転送装置２０１の入力転送テーブル２２５のエントリ１３２７が設定され、また、図５の（Ｃ）に示した転送装置２０３の出力転送テーブル２４５のエントリ１４４０が設定される（Ｆ３１２４）。
【０３２８】
エントリ１２３４について転送装置設定対象判定処理（Ｆ３１００）が実行された後、仮想ルータ機能部１２１は、差分経路情報テーブル１４２のエントリ１２３４の次エントリの参照を試みる（Ｆ２６４０）。差分経路情報テーブル１４２の次エントリが存在しないので（Ｆ２６１６：Ｎｏ）、仮想ルータ機能部１２１は、隣接ルータ管理テーブル１４４のエントリ８２５の次エントリの参照を試みる（Ｆ２６４４）。
【０３２９】
隣接ルータ管理テーブル１４４のエントリ８２９の次エントリが存在しないので（Ｆ２６０８：Ｎｏ）、仮想ルータ機能部１２１は、図２４に示した転送装置設定処理（Ｆ２６００）を終了する。
【０３３０】
転送装置設定処理（Ｆ２６００）により、図９Ｃに示したグループ別現経路情報テーブル１０００の宛先ネットワーク１００２を宛先とするパケットが転送装置網１０に入力されると、そのパケットは経路取得元１２０８から出力されて宛先ネットワーク１００２に届けられる。
【０３３１】
つぎに、図２９において、仮想ルータ機能部１２１は、図２７の経路情報広告処理（Ｆ２７００）を実行する。図１０の（Ｂ）に示した隣接ルータ管理テーブル１４４、および、図８Ｃに示した差分経路情報テーブル１４２のエントリ１２２５〜１２３４を参照しながら、前述の通り、仮想ルータ機能部１２１は、処理Ｆ２７０４〜Ｆ２７４４を実行する。
【０３３２】
結果として、仮想ルータ機能部１２１が、図８Ｃに示した差分経路情報テーブル１４２のエントリ１２２５〜１２２９をルータ３０３〜３０５に対して経路情報として広告する。また、仮想ルータ機能部１２１がエントリ１２３０〜エントリ１２３４をルータ３０１、３０２に対して経路情報として広告する。これにより、仮想ルータ機能部１２１は、図２９に示した経路情報広告処理（Ｆ２７００）を終了する。
【０３３３】
このあと、図２９において、仮想ルータ機能部１２１は、図１２の（Ｃ）に示したＰｏＰ情報テーブル１４６の全エントリで、旧所属グループ８５４に現所属グループ８５５の値を代入する（Ｆ２２１２）。ＰｏＰ情報テーブル１４６は、図１２の（Ｃ）の状態から変化しない。
【０３３４】
以上の処理により、仮想ルータ機能部１２１は、新規経路取得処理（Ｆ２８００）を完了する。新規経路取得処理（Ｆ２８００）により、図１１の（Ｃ）に示したグループ情報テーブル１４５のように転送グループが分かれている場合にパケットが転送装置網１０に入力されると、図９Ｃに示したグループ別現経路情報テーブル１０００に従ったパケット転送が行われるように、各転送グループの転送装置２００の設定が行われる。これにより、図９Ｃに示したグループ別現経路情報テーブル１０００に従ったパケット転送が実現される。
【０３３５】
＜新規経路取得処理（Ｆ２８００）後のパケット転送例＞
つぎに、新規経路取得処理（Ｆ２８００）後において、転送装置網１０に対してルータ３０１から宛先ネットワークＡ宛のパケットが入力された場合のパケット転送を例に挙げて説明する。
【０３３６】
ルータ３０１からパケットが入力されると、転送装置２０１に当該パケットが入力される。転送装置２０１はＰｏＰ５０１に属する。図１１の（Ｅ）に示したグループ情報テーブル１４５を参照すると、転送装置２０１が所属するＰｏＰ５０１は転送グループ２に所属する。また、ルータ３０１からパケットを受信した転送装置２０１は転送グループ２に所属する（図１２の（Ｃ）のエントリ８７５を参照。）。図９Ｃに示したグループ別現経路情報テーブル１０００において、転送グループ２に対応する利用グループ１００１の値「２」を有し、かつ、宛先ネットワーク１００２の値が「Ａ」となるエントリは、エントリ１０４０である。
【０３３７】
予め設定されている図４の（Ａ）、（Ｂ）、（Ｄ）に示したラベル転送テーブル２３５と、図９Ｃに示したグループ別現経路情報テーブル１０００のエントリ１０４０に記録された情報とを元に、図３の（Ｂ）に示した転送装置２０１の入力転送テーブル２２５と、図５の（Ｂ）に示した転送装置２０２の出力転送テーブル２４５が設定されることによって、図９Ｃに示したグループ別現経路情報テーブル１０００のエントリ１０４０の広告元ルータ１００３の値「３０２」で特定されるルータ３０２にＡ宛のパケットが転送されることを以下に説明する。
【０３３８】
ルータ３０１からはＭＰＬＳラベルが挿入されていないＩＰパケットが転送され、パケットがルータ３０１から転送装置網１０に入力され、転送装置２０１のポート（２／１）にパケットが入力される。転送装置２０１の入力パケット処理部２２０は、物理ポート２５０から入力されたパケットにＭＰＬＳラベルが挿入されていないので、図３の（Ｂ）に示した入力転送テーブル２２５を参照する。
【０３３９】
図３の（Ｂ）において、パケットが入力されたポートである（２／１）をポート番号１３０１に有し、かつ、入力パケットの宛先ＩＰアドレスである宛先ネットワークＡを宛先ネットワーク１３０２に有するエントリが、エントリ１３２６に存在する。したがって、転送装置２０１の入力パケット処理部２２０は、エントリ１３２６の識別ラベル１３０３である識別ラベル値「６０１」を有するＭＰＬＳヘッダを入力パケットのＭＡＣヘッダとＩＰヘッダの間に挿入する。また、転送装置２０１の入力パケット処理部２２０は、エントリ１３２６の転送ラベル１３０４の転送ラベル値「４００１」を有するＭＰＬＳヘッダを、入力パケットの既に挿入されているＭＰＬＳヘッダとＭＡＣヘッダの間に挿入する。
【０３４０】
また、転送装置２０１の入力パケット処理部２２０は、パケットが転送装置２０１に入力されたポート番号「（２／１）」を記録した入力ポート情報ヘッダをパケットに挿入する。転送装置２０１の入力パケット処理部２２０は、ＭＰＬＳラベルを２つ挿入したパケットをラベル転送処理部２３０にわたす。
【０３４１】
転送装置２０１のラベル転送処理部２３０は、図４の（Ａ）に示したラベル転送テーブル２３５から、入力ポート１３５１の値が入力ポート情報ヘッダに記録されているポート番号「（２／１）」であり、かつ、ラベル転送テーブル２３５の入力転送ラベル１３５２の値がパケットの転送ラベル値「４００１」であるエントリ１３６１を検索する。
【０３４２】
転送装置２０１のラベル転送処理部２３０は、パケットの転送ラベル値「４００１」をエントリ１３６３の出力転送ラベル１３５３の値「４００２」に書き換える。そして、転送装置２０１のラベル転送処理部２３０は、図４の（Ａ）に示した転送装置２０１のラベル転送テーブル２３５のエントリ１３６３の出力ポート１３５４の値「（１／１）」を記録した出力ポート情報ヘッダをパケットに挿入して出力パケット処理部２４０に渡す。
【０３４３】
転送装置２０１の出力パケット処理部２４０は、ラベル転送処理部２３０からのパケットを入力する。転送装置２０１の出力転送テーブル２４５には、入力パケットの宛先ネットワークアドレス「Ａ」、入力パケットに挿入されている識別ラベル値「６０１」、および転送ラベル値「４００２」の組み合わせと一致するエントリが存在しない。
【０３４４】
したがって、転送装置２０１の出力パケット処理部２４０は、出力ポート情報ヘッダに記録されたポート番号「（１／１）」を参照し、出力ポート情報ヘッダを外した後に、参照したポート番号「（１／１）」からパケットを出力する。出力されたパケットは転送装置２０６のポート番号（１／１）をもつ物理ポート２５０に入力される。
【０３４５】
転送装置２０６の入力パケット処理部２２０は、ＭＰＬＳラベルが挿入されたパケットが入力されたことで、パケットが入力されたポート番号「（１／１）」を記録した入力ポート情報ヘッダをパケットに挿入し、ラベル転送処理部２３０にパケットをわたす。
【０３４６】
転送装置２０６のラベル転送処理部２３０は、図４の（Ｂ）に示した転送装置２０６のラベル転送テーブル２３５から、入力ポート１３５１の値が入力ポート情報ヘッダに記録されているポート番号「（１／１）」であり、かつ、入力転送ラベル１３５２の値がパケットの転送ラベル値「４００２」であるエントリ１３６６を検索する。
【０３４７】
転送装置２０６のラベル転送処理部２３０は、パケットの転送ラベル値「４００２」を図４の（Ｂ）に示した転送装置２０６のラベル転送テーブル２３５におけるエントリ１３６６の出力転送ラベル１３５３の値「４００３」に書き換える。転送装置２０６のラベル転送処理部２３０は、エントリ１３６６の出力ポート１３５４の値「（１／２）」を記録した出力ポート情報ヘッダをパケットに挿入して出力パケット処理部２４０に渡す。
【０３４８】
転送装置２０６は隣接ルータ３００と接続されていないので、転送装置２０６の出力転送テーブル２４５のエントリは存在しない。転送装置２０６の出力転送テーブル２４５にエントリが存在しないので、転送装置２０６の出力パケット処理部２４０は、出力ポート情報ヘッダに記録されたポート番号「（１／２）」を参照し、出力ポート情報ヘッダを外した後に、参照したポート番号「（１／２）」からパケットを出力する。出力されたパケットは転送装置２０２のポート番号「（１／１）」をもつ物理ポート２５０に入力される。
【０３４９】
転送装置２０２の入力パケット処理部２２０は、ＭＰＬＳラベルが挿入されたパケットが入力されたことで、パケットが転送装置２０２に入力されたポート番号「（１／１）」を記録した入力ポート情報ヘッダをパケットに挿入し、ラベル転送処理部２３０にパケットをわたす。
【０３５０】
転送装置２０２のラベル転送処理部２３０は、図４の（Ｃ）に示した転送装置２０２のラベル転送テーブル２３５から、入力ポート１３５１の値が入力ポート情報ヘッダに記録されているポート番号「（１／１）」であり、かつ、入力転送ラベル１３５２の値がパケットの転送ラベル値「４００３」であるエントリ１３８１を検索する。
【０３５１】
転送装置２０２のラベル転送処理部２３０は、パケットの転送ラベル値「４００３」をエントリ１３８１の出力転送ラベル１３５３の値「４００４」に書き換える。転送装置２０２のラベル転送処理部２３０は、エントリ１３７６の出力ポート１３５４の値「（２／１）」を記録した出力ポート情報ヘッダをパケットに挿入して出力パケット処理部２４０に渡す。
【０３５２】
転送装置２０２の出力パケット処理部２４０は、ラベル転送処理部２３０からのパケットを入力する。転送装置２０２の出力転送テーブル２４５には、入力されたパケットの宛先ネットワークアドレス「Ａ」、パケットに挿入されている識別ラベル値「６０１」、およびパケットに挿入されている転送ラベル値「４００４」の組み合わせと一致するエントリ１４２６が存在する。
【０３５３】
したがって、転送装置２０２の出力パケット処理部２４０は、転送装置２０２のラベル転送処理部２３０から受け取ったパケットの宛先ＭＡＣアドレスをエントリ１４２６の書換宛先ＭＡＣ１４０５の値「ＭＡＣ３０２」に書き換える。また、転送装置２０２の出力パケット処理部２４０は、当該パケットの送信元ＭＡＣアドレスをエントリ１４２６の書換送信元ＭＡＣの値「ＭＡＣ２０２」に書き換える。そして、転送装置２０２の出力パケット処理部２４０は、パケットに挿入されている識別ラベルと転送ラベルを外す。転送装置２０２の出力パケット処理部２４０は、出力ポート情報ヘッダに記録されたポート番号「（２／１）」を参照し、出力ポート情報ヘッダを外した後に、参照したポート番号「（２／１）」をもつ物理ポート２５０からパケットを出力する。出力されたパケットは転送装置２０２のポート番号「（２／１）」に接続されているルータ３０２に転送される。
【０３５４】
以上ように、転送装置網１０に対してルータ３０１から宛先ネットワークＡ宛のパケットが入力されると、図９Ｃに示したグループ別現経路情報テーブル１０００に従って、エントリ１０４０の広告元ルータ１００３であるルータ３０１に転送される。
【０３５５】
＜異なるグループ間でのパケット転送例＞
また、本実施例では、ある転送グループは、異なる転送グループが得た経路情報であっても使用可能である。ある転送グループが異なる転送グループが得た経路情報を用いてパケットを転送する例を説明する。ここでは、例として、転送装置網１０に対してルータ３０１から宛先ネットワークＥ宛のパケットが入力された場合のパケット転送を例として説明する。
【０３５６】
ルータ３０１から転送装置２０１にパケットが入力される。転送装置２０１は、ＰｏＰ５０１に属する。図１１の（Ｃ）に示したグループ情報テーブル１４５を参照すると、転送装置２０１が所属するＰｏＰ５０１は、転送グループ２に所属する。また、ルータ３０１からパケットを受信した転送装置２０１は転送グループ２に所属する（図１２の（Ｃ）のエントリ８７５を参照。）。図９Ｃに示したグループ別現経路情報テーブルにおいて、転送グループ２に対応する利用グループ１００１の値「２」を有し、かつ、宛先ネットワーク１００２の値が「Ｅ」となるエントリは、エントリ１０４４である。
【０３５７】
エントリ１０４４の情報源グループ１００７の値は「１」である。したがって、エントリ１０４４の経路情報が、パケットが入力される転送装置２０１のＰｏＰ５０１が属するグループ２と異なるグループから得られた経路情報であることがわかる。予め設定されている図４の（Ａ），（Ｂ），（Ｃ），（Ｅ）に示したラベル転送テーブル２３５、及び、図９Ｃに示したグループ別現経路情報テーブル１０００のエントリ１０４４に記録された情報を元に、図３の（Ｂ）に示した転送装置２０１の入力転送テーブル２２５と図５の（Ｃ）に示した転送装置２０３の出力転送テーブル２４５が設定される。
【０３５８】
図３の（Ｂ）に示した転送装置２０１の入力転送テーブル２２５と図５の（Ｃ）に示した転送装置２０３の出力転送テーブル２４５によって、図９Ｃに示したグループ別現経路情報テーブル１０００のエントリ１０４４における広告元ルータ１００３の値「３０３」で特定されるルータ３０３に、宛先ネットワーク１００２の値「Ｅ」宛にパケットが転送されることを以下に説明する。
【０３５９】
ルータ３０１からはＭＰＬＳラベルが挿入されていないＩＰパケットが転送され、パケットがルータ３０１から転送装置網１０に入力される。すなわち、転送装置２０１のポート（２／１）にパケットが入力される。転送装置２０１の入力パケット処理部２２０は、物理ポート２５０から入力されたパケットにＭＰＬＳラベルが挿入されていないので、図３の（Ｂ）に示した転送装置２０１の入力転送テーブル２２５を参照する。
【０３６０】
図３の（Ｂ）に示した転送装置２０１の入力転送テーブル２２５において、ポート番号１３０１の値がパケットが入力されたポート「（２／１）」であり、かつ、宛先ネットワーク１３０２の値が入力パケットの宛先ＩＰアドレス「Ｅ」であるエントリ１３２７に存在する。
【０３６１】
転送装置２０１の入力パケット処理部２２０は、エントリ１３２７の識別ラベル１３０３の識別ラベル値「６０２」をもつＭＰＬＳヘッダを入力パケットのＭＡＣヘッダとＩＰヘッダの間に挿入する。また、転送装置２０１の入力パケット処理部２２０は、エントリ１３２７の転送ラベル１３０４の転送ラベル値「４００５」をもつＭＰＬＳヘッダを、入力パケットの、既に挿入されているＭＰＬＳヘッダとＭＡＣヘッダとの間に挿入する。
【０３６２】
また、転送装置２０１の入力パケット処理部２２０は、パケットが転送装置２０１に入力されたポート番号「（２／１）」を記録した入力ポート情報ヘッダをパケットに挿入する。転送装置２０１の入力パケット処理部２２０は、ＭＰＬＳラベルを２つ挿入したパケットをラベル転送処理部２３０にわたす。
【０３６３】
転送装置２０１のラベル転送処理部２３０は、図４の（Ａ）に示した転送装置２０１のラベル転送テーブル２３５から、入力ポート１３５１の値が入力ポート情報ヘッダに記録されているポート番号「（２／１）」であり、かつ、入力転送ラベル１３５２の値がパケットの転送ラベル値「４００５」であるエントリ１３６５を検索する。
【０３６４】
転送装置２０１のラベル転送処理部２３０は、パケットの転送ラベル値「４００５」を、検索したエントリ１３６５の出力転送ラベル１３５３の値「４００６」に書き換える。転送装置２０１のラベル転送処理部２３０は、エントリ１３６５の出力ポート１３５４の値「（１／１）」を記録した出力ポート情報ヘッダをパケットに挿入して出力パケット処理部２４０に渡す。
【０３６５】
転送装置２０１の出力パケット処理部２４０は、ラベル転送処理部２３０からのパケットを入力する。転送装置２０１の出力転送テーブル２４５（不図示）には、入力パケットの宛先ネットワークアドレス「Ｅ」、入力パケットに挿入されている識別ラベル値「６０２」、および転送ラベル値「４００６」の組み合わせと一致するエントリが存在しない。
【０３６６】
したがって、転送装置２０１の出力パケット処理部２４０は、出力ポート情報ヘッダに記録されたポート番号「（１／１）」を参照し、出力ポート情報ヘッダを外した後に、参照したポート番号「（１／１）」からパケットを出力する。出力されたパケットは転送装置２０６のポート番号「（１／１）」をもつ物理ポート２５０に入力される。
【０３６７】
転送装置２０６の入力パケット処理部２２０は、ＭＰＬＳラベルが挿入されたパケットが入力されたので、パケットが転送装置２０６に入力されたポート番号「（１／１）」を記録した入力ポート情報ヘッダをパケットに挿入し、ラベル転送処理部２３０にパケットをわたす。
【０３６８】
転送装置２０６のラベル転送処理部２３０は、図４の（Ｂ）に示した転送装置２０６のラベル転送テーブル２３５から、入力ポート１３５１の値が入力ポート情報ヘッダに記録されているポート番号「（１／１）」であり、かつ、入力転送ラベル１３５２の値がパケットの転送ラベル値「４００６」であるエントリ１３７０を検索する。
【０３６９】
転送装置２０６のラベル転送処理部２３０は、パケットの転送ラベル値「４００６」を、検索したエントリ１３７０の出力転送ラベル１３５３の値「４００７」に書き換える。転送装置２０６のラベル転送処理部２３０は、エントリ１３７０の出力ポート１３５４の値「（１／３）」を記録した出力ポート情報ヘッダをパケットに挿入して出力パケット処理部２４０に渡す。
【０３７０】
転送装置２０６は隣接ルータ３００と接続されていないので、転送装置２０６では、出力転送テーブル２４５のエントリは存在しない。このため、転送装置２０６の出力パケット処理部２４０は、出力ポート情報ヘッダに記録されたポート番号「（１／３）」を参照し、出力ポート情報ヘッダを外した後に、参照したポート番号「（１／３）」からパケットを出力する。出力されたパケットは、転送装置２０７のポート番号（１／１）をもつ物理ポート２５０に入力される。
【０３７１】
転送装置２０７においても、転送装置２０７の入力パケット処理部２２０、ラベル転送処理部２３０、出力パケット処理部２４０が転送装置２０６のときと同様の処理を行う。この場合、転送装置２０７のラベル転送処理部２３０は、図４の（Ｃ）に示した転送装置２０７のラベル転送テーブル２３５のエントリ１３７８を参照する。転送装置２０７の出力パケット処理部２４０は、転送装置２０７のポート（１／２）からパケットを出力する。出力されたパケットは、転送装置２０３のポート番号（１／１）をもつ物理ポート２５０に入力される。
【０３７２】
ＭＰＬＳラベルが挿入されたパケットが入力されたので、転送装置２０３の入力パケット処理部２２０は、パケットが転送装置２０３に入力されたポート番号「（１／１）」を記録した入力ポート情報ヘッダをパケットに挿入し、ラベル転送処理部２３０にパケットをわたす。
【０３７３】
転送装置２０３のラベル転送処理部２３０は、図４の（Ｅ）に示した転送装置２０３のラベル転送テーブル２３５から、入力ポート１３５１の値が入力ポート情報ヘッダに記録されているポート番号「（１／１）」であり、かつ、入力転送ラベル１３５２の値がパケットの転送ラベル値「４００８」であるエントリ１３８８を検索する。
【０３７４】
転送装置２０３のラベル転送処理部２３０は、パケットの転送ラベル値「４００８」を、検索したエントリ１３８８の出力転送ラベル１３５３の値「４００９」に書き換える。転送装置２０３のラベル転送処理部２３０は、エントリ１３８８の出力ポート１３５４の値「（２／１）」を記録した出力ポート情報ヘッダをパケットに挿入して出力パケット処理部２４０に渡す。
【０３７５】
転送装置２０３の出力パケット処理部２４０は、図５の（Ｃ）に示した転送装置２０３の出力転送テーブル２４５から、宛先ネットワーク１４０２の値が入力されたパケットの宛先ネットワークアドレス「Ｅ」、識別ラベル１４０３の値がパケットに挿入されている識別ラベル値「６０２」、でかつ、転送ラベル１４０４の値がパケットに挿入されている転送ラベル値「４００９」であるエントリ１４４０を検索する。
【０３７６】
したがって、転送装置２０３の出力パケット処理部２４０は、ラベル転送処理部２３０から受け取ったパケットの宛先ＭＡＣアドレスを当該エントリ１４４０の書換宛先ＭＡＣ１４０５の値「ＭＡＣ３０３」に書き換える。また、転送装置２０３の出力パケット処理部２４０は、当該パケットの送信元ＭＡＣアドレスを書換送信元ＭＡＣ１４０６の値「ＭＡＣ２０３」に書き換え、挿入されている識別ラベルと転送ラベルを外す。転送装置２０３の出力パケット処理部２４０は、出力ポート情報ヘッダに記録されたポート番号「（２／１）」を参照し、出力ポート情報ヘッダを外した後に、参照したポート番号「（２／１）」をもつ物理ポート２５０からパケットを出力する。出力されたパケットは転送装置２０３のポート番号「（２／１）」に接続されているルータ３０３に転送される。
【０３７７】
以上ように、転送装置網１０に対してルータ３０１から宛先ネットワークＥ宛のパケットが入力されると、図９Ｃに示したグループ別現経路情報テーブル１０００に従って、宛先ネットワークＥをもつエントリ１０４４の広告元ルータ１００３の値「３０３」で特定されるルータ３０３に転送される。このように、本実施例では、異なる転送グループが得た経路情報を用いてパケット転送をすることもできる。
【０３７８】
前述のエントリ１０４０、１０４４に対するパケット転送例と同様にして、ルータ３０１〜３０５から転送装置網１０に入力されたパケットは、図９Ｃに示したグループ別現経路情報テーブル１０００に従って、宛先ネットワーク１００２に記録されているネットワークに転送される。
【０３７９】
つぎに、転送グループを２つに分けたことにより、転送グループを分けないときに比べて、コスト値の低いパスを通ってパケットが転送されるようになることについて説明する。
【０３８０】
ルータ３０１からＰｏＰ５０１を通ってネットワークアドレスＡ宛のパケットが転送装置網１０に入力された場合を例に挙げる。仮想ルータ機能部１２１がもつ経路情報である図７の（Ｃ）に示した経路情報テーブル１４１のうち、ネットワークアドレス「Ａ」に到達するための経路情報は、エントリ１１５６，１１５９である。転送グループを分けない場合は、使用する経路情報は１つに決定される。
【０３８１】
ここで、エントリ１１５９の経路情報を使用すると決定された場合、エントリ１１５９の広告元ルータ１１０２の値が「３０４」なので、そのルータ３０４に接続されているＰｏＰ５０４（情報源ＰｏＰ１１０５の値）からパケットが出力される。
【０３８２】
パス管理テーブル１４９をみると、ルータ３０１，３０４を経由するパスは、パスＩＤ７５１の値が「６０３」となるパスである（エントリ７７７）。したがって、パケットはパス６０３を通って転送される。また、このエントリ７７７のパス間コスト７５５の値は「４００」である。
【０３８３】
一方、転送グループを２つにわけることで、仮想ルータ機能部１２１は、図９Ｃに示したグループ別現経路情報テーブル１０００を保持する。ルータ３０１からパケットを受信するＰｏＰ５０１は、転送グループ２に属する（図１１の（Ｅ）のグループ情報テーブル１４５）。宛先ネットワーク１００２が「Ａ」のパケットは、広告元ルータ１００３の値が「３０２」なので、そのルータ３０２に接続されているＰｏＰ５０２（情報源ＰｏＰ１００６の値）から出力される。
【０３８４】
パス管理テーブル１４９をみると、ルータ３０１，３０２を経由するパスは、パスＩＤ７５１が「６０１」となるパスである（エントリ７７５）。したがって、パケットはパス６０１を通って転送される。また、このエントリ７７５のパス間コスト７５５の値は「２００」である。このように、転送グループを２つにわけることにより、コスト値が半分（４００から２００）になったことがわかる。
【０３８５】
また、ルータ３０５からＰｏＰ５０４を通ってネットワークアドレスＢ宛のパケットが転送装置網１０に入力された場合を例に挙げる。仮想ルータ機能部１２１がもつ経路情報である図７の（Ｃ）に示した経路情報テーブル１４１のうち、ネットワークアドレスＢに到達するための経路情報は、エントリ１１５７，１１６０である。転送グループを分けない場合は、使用する経路情報は１つに決定される。
【０３８６】
ここで、エントリ１１５７の経路情報を使用すると決定された場合、エントリ１１５７の広告元ルータ１００３の値が「３０２」なので、そのルータ３０２に接続されているＰｏＰ５０２（情報源ＰｏＰ１１０５の値）を通してパケットは出力される。
【０３８７】
パス管理テーブル１４９をみると、ルータ３０５，３０２を経由するパスは、パスＩＤ７５１の値が「６０７」となるパスである（エントリ７８１）。したがって、パケットは、パス６０７を通って転送される。また、このエントリ７８１のパス間コスト７５５の値は「４０１」である。
【０３８８】
一方、転送グループを２つにわけることで、仮想ルータ機能部１２１は、図９Ｃに示したグループ別経路情報データベース１４３を保持する。ルータ３０１からパケットを受信するＰｏＰ５０４は、転送グループ１に属する（図１１の（Ｅ）のグループ情報テーブル１４５）。宛先ネットワーク１００２が「Ｂ」のパケットは、広告元ルータ１００３の値が「３０４」なので、そのルータ３０４に接続されているＰｏＰ５０４（情報源ＰｏＰ１００６の値）から出力される。
【０３８９】
図１５に示したパス管理テーブル１４９をみると、ルータ３０５，３０４を経由するパスは、パスＩＤ７５１の値が「６１０」となるパスである（エントリ７８４）。したがって、パケットは、パス６１０を通って転送される。また、このエントリ７８４のパス間コスト７５５の値は「１」である。このように、転送グループを２つにわけることにより、コスト値が約４００分の１（４０１から１）になったことがわかる。
【０３９０】
このように、本実施例に従って転送グループを分けることで、コスト値の低いパスを通ってパケットが転送されるようになる。本実施例では、パスのコスト値はパスを構成する物理リンクの距離とした。コスト値の低いパスを通ってパケットが転送されるようになったことで、転送装置間の距離が近い同じ転送グループ間で可能な限りパケット転送が行われる。したがって、パケットの転送時間が短くなり、伝送遅延を抑制することができる。
【０３９１】
また、距離的に近い転送装置で転送グループを構成することで、コスト値の低いパスを通ってパケットが転送されるようになる。したがって、設備コストや管理コストが高い長距離リンクの使用率が下がり、長距離リンクの増設を抑止することが可能となる。このように、複数の転送装置を１台のルータとして集中制御した場合においても、ある宛先に対して出力ポートを全体でひとつに決定せず、転送装置網を考慮した上でパケットの入力ポートから近くに存在する出力ポートを通ってパケットを送信できるようにすることできる。
【０３９２】
＜ＰｏＰ優先度の自動設定例＞
つぎに、ＰｏＰ優先度の自動設定例について説明する。制御サーバ１００は、各転送装置２００の負荷（たとえば、通信帯域やＣＰＵ使用率）を監視する。制御サーバ１００は、各転送装置２００から当該転送装置２００の負荷を取得し、取得した負荷により、各転送装置２００が所属するＰｏＰ５００のＰｏＰ優先度を変動させる。ＰｏＰ５００に転送装置２００が複数存在する場合は、負荷が高い方の転送装置２００の負荷を採用してもよく、また、ＰｏＰ５００内の転送装置２００の負荷の平均値を採用してもよい。
【０３９３】
そして、たとえば、あるＰｏＰ５００内の転送装置２００において負荷が下限値よりも低くなった場合、制御サーバ１００は、ＰｏＰ優先度を現在のＰｏＰ優先度よりも高く設定してもよい。また、負荷が上限値よりも高くなった場合、ＰｏＰ優先度を現在のＰｏＰ優先度よりも低く設定してもよい。なお、ＰｏＰ優先度の変動量は、あらかじめ設定された量でもよく、負荷の変動量に応じた量でもよい。
【０３９４】
また、制御サーバ１００は、定期的に転送装置２００から負荷を示す情報の取得を実行してもよい。また、負荷が下限値よりも低くなったタイミングまたは負荷が上限値よりも高くなったタイミングで、当該転送装置２００が負荷を示す情報を制御サーバ１００に送信してもよい。
【０３９５】
制御サーバ１００は、負荷を示す情報を取得した場合、ＰｏＰ５００ごとにＰｏＰ優先度８５２の値を再計算する。たとえば、エントリ８７８のＰｏＰ５０４の負荷が上限値よりも大きくなった場合、制御サーバ１００は、ＰｏＰ優先度を、所定量（たとえば、５ポイント）減算する。一方、エントリ８７５のＰｏＰ５０１の負荷が下限値よりも低くなった場合、制御サーバ１００は、ＰｏＰ優先度を、所定量（たとえば、５ポイント）加算する。
【０３９６】
制御サーバ１００は、ＰｏＰ優先度８５２の値が再計算された場合、ＰｏＰ優先度８５２の値の降順にエントリ８７５〜８７８をソートする。ソート前後でエントリ８７５〜８７８の並び順に変動があった場合、制御サーバ１００は、（１）グループ分け処理、（２）ルータ接続による経路広告処理、（３）新規経路取得処理を再度実行する。これにより、ＰｏＰ優先度８５２に応じて適切なグループ分けを自動的におこなうことができる。
【０３９７】
＜ＶＲＦとの違い＞
１つのルータを複数の転送グループに分け、転送グループ毎に異なるルーティングテーブルを持つ技術としてＶＲＦ（Ｖｉｒｔｕａｌ  Ｒｏｕｔｉｎｇ  ａｎｄ  Ｆｏｒｗａｒｄｉｎｇ）がある。ＶＲＦは、１つのルータ上で独立な複数のルーティングテーブルを作成することができ、１つのルータ上で複数の仮想的なルータが動作しているようにみえる。
【０３９８】
ＶＲＦでは、複数の独立なルーティングテーブルは、１つのルーティングテーブル上でグループの識別子とＩＰアドレスを組にすることにより実現されており、異なるグループに応じて扱っているＩＰネットワークの空間が仮想的に分かれている。ＶＲＦでは、仮想的な複数のルータ間でルーティングテーブルを作成するために利用する経路情報は異なる。ＶＲＦは、１つのルータ上で仮想的に複数の仮想的なルータを作成して使用できる経路情報を分けることで、ネットワークの空間を分ける。
【０３９９】
これに対し、本実施例では、転送グループ毎に異なるルーティングテーブルを作成しているが、ルーティングテーブルを作成するために利用する経路情報は複数の転送グループで共通しており、ＶＲＦとは異なり複数のグループで扱うＩＰネットワーク空間は同じである。
【０４００】
本実施例は、転送装置２００間の距離が近い同じ転送グループ内で可能な限りパケットが転送される。また、本実施例では、異なる転送グループが取得した経路情報も利用することができる。本実施例では周囲の装置からみると、１つのルータにみえる仮想ルータを採用している。ＶＲＦで複数の仮想的なルータを同じルータとしてみせようとすると、複数の仮想的なルータはそれぞれ自ルータと同じルータが複数存在するようにみえ経路情報をやりとりすることができない。したがって、ＶＲＦでは、本実施例のような転送グループ分けを実現することはできない。
【０４０１】
このように、本実施例では、制御サーバは、複数の転送装置からなる転送装置網を仮想的に１つのルータとして見せて、複数の転送装置とその外部に存在するルータとを接続し、複数の転送装置をいくつかの転送グループに分け、転送装置網に入力されたパケットを転送装置が所属する転送グループに応じて作成するグループ別経路情報データベース１４３に従ってパケット転送を行う転送システム１を構築する。
【０４０２】
グループ別経路情報データベース１４３は、転送グループ毎に異なるエントリをグループ別現経路情報テーブル１０００に持つので、転送装置網に入ってきたある宛先のパケットは、宛先が外部からパケットを受信した転送装置の所属グループおよび他グループのいずれからも転送可能である場合、当該所属グループ内の経路で転送することが可能になる。これにより、他グループの経路を通過することによる伝送遅延の抑制を図ることができる。
【０４０３】
この転送グループを分ける際に、転送装置間の物理回線の距離が短くなるように転送装置をグループ化することで、転送装置間の距離が近い同じ転送グループ内で可能な限りパケットが転送され、転送装置間の距離が離れたグループ間のパケット転送が抑止される。これにより、高価な長距離回線の増設を抑止することが可能となる。
【０４０４】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【０４０５】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【０４０６】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【０４０７】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【０４０８】
１  転送システム
１０  転送装置網（仮想ルータ）
１００  制御サーバ
１２０  処理部
１４０  記憶部
１４１  経路情報テーブル
１４２  差分経路情報テーブル
１４３  グループ別経路情報データベース
１４４  隣接ルータ管理テーブル
１４５  グループ情報テーブル
１４６  差分経路情報テーブル
１４７  転送装置情報テーブル
１４８  物理リンク情報テーブル
１４９  パス管理テーブル
２００  転送装置
３００  ルータ
４００  物理リンク
５００  ＰｏＰ
６００  ネットワーク
【図１】
2016158122.tif 000003
【図２】
2016158122.tif 000004
【図３】
2016158122.tif 000005
【図４】
2016158122.tif 000006
【図５】
2016158122.tif 000007
【図６】
2016158122.tif 000008
【図７】
2016158122.tif 000009
【図８Ａ】
2016158122.tif 000010
【図８Ｂ】
2016158122.tif 000011
【図８Ｃ】
2016158122.tif 000012
【図９Ａ】
2016158122.tif 000013
【図９Ｂ】
2016158122.tif 000014
【図９Ｃ】
2016158122.tif 000015
【図１０】
2016158122.tif 000016
【図１１】
2016158122.tif 000017
【図１２】
2016158122.tif 000018
【図１３】
2016158122.tif 000019
【図１４】
2016158122.tif 000020
【図１５】
2016158122.tif 000021
【図１６】
2016158122.tif 000022
【図１７】
2016158122.tif 000023
【図１８】
2016158122.tif 000024
【図１９】
2016158122.tif 000025
【図２０】
2016158122.tif 000026
【図２１】
2016158122.tif 000027
【図２２】
2016158122.tif 000028
【図２３】
2016158122.tif 000029
【図２４】
2016158122.tif 000030
【図２５】
2016158122.tif 000031
【図２６】
2016158122.tif 000032
【図２７】
2016158122.tif 000033
【図２８】
2016158122.tif 000034
【図２９】
2016158122.tif 000035