本実施例では、一例として、IP/MPLS網(通信網)とMPLS−TP網(伝送網)のインターワークを行うシステムにおいて、MPLS−TP網で障害が発生して代替パスに切り替える方式について説明する。まず、IP/MPLSとMPLS−TPについて説明する。
IP/MPLSは、IETF(Internet Engineering Task Force)のRFC3031で規定されているプロトコルである。IP/MPLSは、IPパケットやレイヤ2のフレームにラベルと呼ばれるタグデータが付与し、付与されたラベルを参照してデータを転送する方式である。IP/MPLSに対応したルータで利用することができる。
また、IP/MPLSによる通信を行う範囲をMPLSドメインと呼び、MPLSドメイン内のルータをIP/MPLSルータもしくはLSR(Label Switching Router)と呼ぶ。また、MPLSドメインの外部ネットワークと通信するルータをエッジルータ、MPLSドメインの内部だけで通信するルータをコアルータと呼ぶ。エッジルータがMPLSドメイン外からパケットを受信し、受信したパケットにラベルを付与してコアルータに転送する。コアルータは、受信したラベルの値を変換し、次のコアルータまたはエッジルータに転送する。コアルータからラベル付きパケットを受信したエッジルータは、ラベルを取り除き、MPLSドメイン外のルータに転送する。
IP/MPLSを利用するためには、MPLSドメイン内部でIPによる到達性とパケットに付与するラベルの配布が必要となる。通常、エッジルータおよびコアルータにおいてルーティングプロトコルを動作させ、経路情報を交換することによって、IPレベルの到達性が確保される。
ルーティングプロトコルとして、RFC2178で規定されているOSPF(Open Shortest Path First)やRFC1195で規定されているIS−IS(Intermediate System to Intermediate System)がある。OSPFおよびIS−ISは、ルーティングプロトコルにおいてリンクステート型プロトコルに分類される。
リンクステート型プロトコルは、隣接ルータとリンク情報を交換することでルーティングプロトコルが動作するネットワーク全体のトポロジマップを生成し、トポロジマップに基づいてルーティングテーブルを構築する。また、後述するトラフィックエンジニアリングを行う場合は、拡張を行ったOSPF−TE(Traffic Engineering)、IS−IS−TEを利用する。
OSPF−TE(RFC3630)やIS−IS−TE(RFC3784)は、リンク情報に加えて帯域情報も交換する。IP/MPLSのラベル転送を行うためには、エッジルータおよびコアルータは、ラベル転送時に用いるテーブルを構築する。本テーブルを構築するための代表的なプロトコルとして、RFC5036で規定されているLDP(Label Distribution Protocol)とRFC3209で規定されるRSVP−TE(Resource Reservation Setup Protocol ― Traffic Engineering)がある。
LDPは、エッジルータやコアルータ自身が持つルーティングテーブルの経路エントリ毎にラベルを決定し、隣接のエッジルータもしくはコアルータにラベル情報を配布するプロトコルである。LDPによるラベル転送パスはルーティングプロトコルによって算出された最短経路に従う。RSVP−TEは、RFC2205で規定されるRSVPを拡張し、ラベル情報の配布とトラフィックエンジニアリング機能を追加したプロトコルである。RSVP−TEはLDPと異なり、ラベル転送パスを明示的に指定することができる。また、RSVP−TEには、RFC4090で規定されているFast Rerouteという機能があり、あるパスを通るエッジルータもしくはコアルータで障害が発生し、パスの接続性が無くなった場合、数ミリ秒でバックアップ用のパスに切り替えることができる。
MPLS−TPは、IP/MPLSと同様にMPLS技術をベースとした伝送技術である。MPLS−TPでは、パケットの転送情報を管理する制御プレーンとユーザパケットを転送するデータプレーンとに分離される。制御プレーンがMPLS−TP網全体の経路情報を管理するため、効率の良いパケット転送を行うことができる。また、OAM機能やAPS(Automatic Protection Switching)機能などの高信頼化機能が充実しており、高信頼性が求められるネットワークに利用される傾向がある。このような利点から、本実施例では、IP/MPLSによって提供されるIPサービスの高度化のために、IP/MPLS網間をMPLS−TP網で接続する両網のインターワーク技術が採用される。以下、図1にIP/MPLS網間をMPLS−TP網で接続する両網のインターワークを示す。
<システム構成例>
図1は、IP/MPLS網間をMPLS−TP網で接続する両網のインターワーク例を示すシステム構成図である。IP/MPLS網10は、エッジルータ100−1、100−2(以下、総称してエッジルータ100)と仮想ルータ200によって構成される。IP/MPLS網10において、エッジルータ100−1と仮想ルータ200が接続され、エッジルータ100−2と仮想ルータ200が接続される。また、エッジルータ100−1と顧客サイト500が接続され、エッジルータ100−2と顧客サイト500が接続される。
仮想ルータ200は、伝送装置300−1〜300−4(以下、総称して伝送装置300)と管理サーバ400によって構成されるMPLS−TP網20である。IP/MPLS網10から見ると、MPLS−TP網20は、1台のコアルータ(仮想ルータ200)として認識される。伝送装置300は、他の伝送装置300および管理サーバ400に接続される。管理サーバ400は、接続する伝送装置300を制御することによって、MPLS−TP網20全体の管理を行う。
本ネットワークでは、エッジルータ100−2からエッジルータ100−1に対してプライマリパス(現用系パス)101−1とセカンダリパス(待機系パス)101−2を張り、プライマリパス101−1に関してワーキングパス(現用系パス)302−1とプロテクションパス(待機系パス)302−2、セカンダリパス101−2に関してワーキングパス303−1が確保されている状況を想定する。
また、エッジルータ100−1〜2、仮想ルータ200、伝送装置300−1〜4は、インタフェース(IF)を有する。各IFのIPアドレスについては、IF11は「100.0.0.1」、IF12は「10.0.0.1」、IF21は「20.0.0.2」、IF22は「30.0.0.2」、IF23は「200.0.0.2」、IF311は「10.0.0.3」、IF322は「20.0.0.3」、IF333は「30.0.0.3」とする。また、各ルータのIPアドレスについては、エッジルータ100−1は「1.1.1.1」、エッジルータ100−2は「2.2.2.2」、仮想ルータ200は「3.3.3.3」とする。
(1)伝送装置300−4の故障により伝送装置300−4を経由するワーキングパス302−1の通信が不可能になった場合、(2)仮想ルータ200は、現用系であるプライマリパス101−1のワーキングパス302−1からプロテクションパス302−2に仮切替する。(3)そして、仮想ルータ200は、ワーキングパス303−1とプロテクションパス302−2とを比較する。仮想ルータ200は、たとえば、両パスの帯域幅を比較する。帯域幅は、伝送可能なビットレートである。そして、仮想ルータ200は、帯域幅が大きい方のパスを復旧パスとして選択する。このように、パスの切替に際して、切替候補のパスの帯域幅を比較することで、帯域幅が大きい方のパスを最適なパスとして選択することができる。
<通信装置のハードウェア構成例>
図2は、通信装置(エッジルータ100、伝送装置300、管理サーバ400の総称)のハードウェア構成例を示すブロック図である。通信装置2は、プロセッサ21と、記憶デバイス22と、通信インタフェース(通信IF)25と、転送エンジン26と、を有する。プロセッサ21、記憶デバイス22、通信IF25および転送エンジン26は、バス27により接続される。
プロセッサ21は、通信装置2を制御する。記憶デバイス22は、プロセッサ21の作業エリアとなる。また、記憶デバイス22は、各種プログラムやデータを記憶する記録媒体である。記憶デバイス22としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。通信IF25は、ネットワークと接続し、データを送受信するネットワークインタフェースである。通信IF25は、ポート数分搭載される。転送エンジン26は、通信IF25からのパケットを処理し、通信IF25を介して転送先に転送する。
<エッジルータ100の機能的構成例>
図3は、エッジルータ100の機能的構成例を示すブロック図である。エッジルータ100は、管理者設定部110、設定処理部120、インタフェース処理部130、ルーティング処理部131、シグナリング処理部132、インタフェース情報データベース140、ルーティング情報データベース141、シグナリング情報データベース142、2つ以上のエッジルータIF150、スイッチ部160により構成される。
管理者設定部110、設定処理部120、インタフェース処理部130、ルーティング処理部131、およびシグナリング処理部132は、具体的には、たとえば、図2に示した記憶デバイス22に記憶されたプログラムをプロセッサ21に実行させることにより、その機能を実現する。また、インタフェース情報データベース140、ルーティング情報データベース141、およびシグナリング情報データベース142は、具体的には、たとえば、図2に示した記憶デバイス22に記憶されてその機能を実現する。また、エッジルータIF150およびスイッチ部160は、具体的には、たとえば、図2に示した通信IF25および転送エンジン26により、その機能を実現する。
管理者設定部110は、管理者が入力装置を操作してエッジルータ100に対して各種値を設定したり、外部からのメッセージを読み込むことで、各種値を設定する(静的設定)。また、管理者設定部110は、管理者がエッジルータ100に対して静的設定する際の外部からのメッセージを受信し、設定処理部120に送信する。設定処理部120は、装置設定情報(コンフィグ情報)やルーティングプロトコル、シグナリングプロトコルの制御信号を、インタフェース処理部130、ルーティング処理部131、シグナリング処理部132の中から適切な処理部を選択して送信する。また、設定処理部120は、エッジルータIF150に対して、制御信号を送信する。
インタフェース処理部130は、受信した装置設定情報を処理する。装置設定情報を処理することにより、インタフェース処理部130は、インタフェース情報データベース140において、インタフェース管理テーブル600を構築する。
ルーティング処理部131は、受信した装置設定情報やルーティングプロトコルの制御パケットを処理する。また、ルーティング処理部131は、仮想ルータ200に対する制御パケットを生成し、送信する。前述するルーティングプロトコルとして、例えばOSPF−TEやIS−IS−TEが使用される。装置設定情報やルーティングプロトコルを処理することにより、ルーティング処理部131は、ルーティング情報データベース141において、OSPF設定テーブル700およびルーティングテーブル800を構築する。
シグナリング処理部132は、受信したシグナリングプロトコルの制御パケットを処理する。また、シグナリング処理部132は、仮想ルータ200に対する制御パケットを生成し、送信する。前述するシグナリングプロトコルとして、例えばLDPやRSVP−TEが使用される。このシグナリングプロトコルの処理により、シグナリング処理部132は、シグナリング情報データベース142において、ラベル転送テーブル900とパス管理テーブル1000を構築する。
エッジルータIF150は、IP/MPLS網10または顧客サイト500に接続されるインタフェースであり、IF制御部151、パケット受信部152、パケット処理部153、パケット送信部154より構成される。
IF制御部151は、パケット処理部153から受信したルーティングプロトコルやシグナリングプロトコルの制御パケットを設定処理部120に転送する。また、IF制御部151は、設定処理部120から受信した制御パケットをパケット送信部154に転送する。パケット受信部152は、IP/MPLS網10または顧客サイト500からパケットを受信する。
パケット処理部153は、パケット受信部152から受信したパケットがルーティングプロトコルやシグナリングプロトコルの制御パケットであれば、IF制御部151に転送する。また、パケット処理部153は、パケット受信部152から受信した制御パケット以外のパケットや、IF制御部151から受信した制御パケットをスイッチ部160に転送する。なお、パケット処理部153は、エッジルータIF150の外に実装してもよい。
パケット送信部154は、スイッチ部160から受信したパケットを解析し、必要であればMPLSヘッダの付与および編集を行い、IP/MPLS網10または顧客サイト500に転送する。スイッチ部160は、受信したパケットのヘッダやMPLSヘッダを参照し、転送先のエッジルータIF150を特定してパケットを転送する。
<エッジルータ100のデータベースの記憶内容例>
つぎに、エッジルータ100のインタフェース情報データベース140、ルーティング情報データベース141、シグナリング情報データベース142の記憶内容例について説明する。エッジルータ100のインタフェース情報データベース140は、インタフェース管理テーブルを格納する。
図4Aおよび図4Bは、インタフェース情報データベース140に構築されるインタフェース管理テーブルの記憶内容例を示す説明図である。図4Aがエッジルータ100−1のインタフェース管理テーブル600−1を示し、図4Bがエッジルータ100−2のインタフェース管理テーブル600−2を示す。インタフェース管理テーブル600−1,600−2(以下、総称してインタフェース管理テーブル600)は、後述する「1.初期設定」のインタフェース設定において、管理者が管理者設定部110を介して静的に設定するテーブルである。インタフェース管理テーブル600は、エッジルータIF150に関する情報を設定するテーブルである。インタフェース管理テーブル600は、エッジルータ100が持つエッジルータIF150を表すIFID601、エッジルータIF150の種別を表すIF種別602、当該エッジルータIF150に付与されているIPアドレスを表すIPアドレス603、エッジルータIF150で確保できる帯域幅を表す予約帯域幅604、ルーティングプロトコルで用いられるコスト値605を含む。コスト値605は、エッジルータIF150が対応する最大通信速度に応じて求められた値である。たとえば、最大通信速度が高いほどコスト値605が低くなる。したがって、ルーティングプロトコルにおいて、コスト値605が低いほどそのエッジルータIF150は選択されやすくなる。
エッジルータ100のルーティング情報データベース141は、OSPF設定テーブルとルーティングテーブルとを格納する。
図5Aおよび図5Bは、ルーティング情報データベース141に構築されるOSPF設定テーブルの記憶内容例を示す説明図である。図5Aがエッジルータ100−1のOSPF設定テーブル700−1を示し、図5Bがエッジルータ100−2のOSPF設定テーブル700−2を示す。OSPF設定テーブル700−1,700−2(以下、総称してOSPF設定テーブル700)は、後述する「1.初期設定」のルーティングプロトコル設定において、管理者が管理者設定部110を介して静的に設定するテーブルである。OSPF設定テーブル700は、OSPFを動作させるネットワークを指定するための情報として、NW(Network)アドレス701、ワイルドカードマスク702を含む。
図6Aおよび図6Bは、ルーティング情報データベース141に構築されるルーティングテーブルの記憶内容例を示す説明図である。図6Aがエッジルータ100−1のルーティングテーブル800−1を示し、図6Bがエッジルータ100−2のルーティングテーブル800−2を示す。後述する「1.初期設定」の管理者設定部430による仮想ルータ200のインタフェース設定、ルーティング設定、シグナリング設定が完了した場合に、エッジルータ100と仮想ルータ200との間でOSPF−TEが動作して経路交換が行われる。これにより、エッジルータ100において、ルーティングテーブル800−1,800−2(以下、総称してルーティングテーブル800)が自動作成される。ルーティングテーブル800は、パケットの送信先を表す宛先NWアドレス801、パケットを送信する時に使用する出力IFID802、どこから経路エントリを学習したかを表す経路学習元803を含む。
本実施例では、経路学習元として、static、connected、dynamicの3種類を定義する。staticは、管理者が管理者設定部110によって静的に設定した経路エントリを表す。connectedは、直接エッジルータ100に繋がっているネットワークの経路エントリを表す。dynamicは、OSPFなどのルーティングプロトコルによって学習した経路エントリを表す。図4Aおよび図4BにおけるIPアドレス603の設定を契機として、経路学習元803が「connected」となるエントリが設定される。また、図5Aおよび図5BのOSPF設定テーブル700が設定されると、エッジルータ100と仮想ルータ200との間でOSPF−TEが動作して経路交換が行われ、経路学習元803が「dynamic」となるエントリが設定される。
エッジルータ100のシグナリング情報データベース142は、ラベル転送テーブルとパス管理テーブルとを格納する。
図7は、シグナリング情報データベース142に構築されるラベル転送テーブルの記憶内容例を示す説明図である。ここでは、エッジルータ100−2のラベル転送テーブル900−2を例に説明する。エッジルータ100−1のラベル転送テーブルも同一構造であるが、記憶内容については後述する。ラベル転送テーブル900−2は、IP/MPLS網10においてラベルによるパケット転送を行う際に参照されるテーブルである。ラベル転送テーブル900−2は、パスをユニークに識別するパスID901、ラベル転送パスの構築を要求するルータの要求元IPアドレス902、ラベル転送パスの構築要求の宛先となる宛先NWアドレス903、ラベル転送パスの構築を要求するルータの入力IFから到着したパケットに付与されているラベルを示す入力ラベル番号904、ラベル転送パスの構築を要求するルータの出力IFをユニークに識別する出力IFID905、ラベル転送パスの構築を要求するルータの出力IFから送信するパケットに付与されるラベルを示す出力ラベル番号906、当該パスで確保できる帯域幅を表す予約帯域幅907を含む。図7のエントリは、パスID:1のパスは、ラベル転送パスの構築を要求するルータであるエッジルータ100−2(IPアドレス「2.2.2.2」)のIF22からエッジルータ100−1(IPアドレス「1.1.1.1」)へのパスであり、当該パスの予約帯域幅が30Gbpsであることを示している。ラベル転送テーブル900−2は、後述する「2.パス生成」において、図8のパス管理テーブル1000の構築を契機に、パスID901、要求元IPアドレス902、宛先NWアドレス903、入力ラベル番号904、出力IFID905、出力ラベル番号906が設定される。また、予約帯域幅907は、管理者が管理者設定部110を介して静的に設定される。
図8は、シグナリング情報データベース142に構築されるパス管理テーブルの記憶内容例を示す説明図である。パス管理テーブル1000は、後述する「2.パス生成」において、エッジルータ100間でパスを張るにあたって必要となるRSVP−TE設定により、管理者が管理者設定部110を介して静的に設定するテーブルである。図8では一例として、エッジルータ100−2のパス管理テーブル1000の記憶内容について説明する。エッジルータ100−1のパス管理テーブルも同一構造であるが、説明は省略する。パス管理テーブル1000は、パスをユニークに識別するパスID1001、パスを張る順序を指定するシーケンス番号1002、パスを張る際に経由するルータのIPアドレス1003を含む。図8のエントリは、パスID:1のパスは、IF22(IPアドレス「30.0.0.2」)から、仮想ルータ200(IPアドレス:3.3.3.3)を経由して、エッジルータ100−1(IPアドレス「1.1.1.1」)に到達するパスを示している。
<管理サーバ400の機能的構成例>
図9は、管理サーバ400の機能的構成例を示すブロック図である。管理サーバ400は、複数の伝送装置300と接続しており、装置通信部410、設定処理部420、管理者設定部430、装置監視部440、インタフェース処理部450、ルーティング処理部451、シグナリング処理部452、パス処理部453、インタフェース情報データベース460、ルーティング情報データベース461、シグナリング情報データベース462を有する。
装置通信部410、設定処理部420、管理者設定部430、装置監視部440、インタフェース処理部450、ルーティング処理部451、シグナリング処理部452、およびパス処理部453は、具体的には、たとえば、図2に示した記憶デバイス22に記憶されたプログラムをプロセッサ21に実行させることにより、その機能を実現する。また、インタフェース情報データベース460、ルーティング情報データベース461、およびシグナリング情報データベース462は、具体的には、たとえば、図2に示した記憶デバイス22に記憶されてその機能を実現する。
装置通信部410は、伝送装置300と設定処理部420に対してルーティングプロトコルやシグナリングプロトコルにしたがってデータを送受信する。また、装置通信部410は、装置監視部440と伝送装置300の間で送受信される死活監視パケットを中継する。
設定処理部420は、装置通信部410から受信した制御パケットや、管理者設定部430から受信した静的な装置設定情報を、インタフェース処理部450、ルーティング処理部451、シグナリング処理部452、パス処理部453の中から適切な処理部を選択して送信する。設定処理部420は、装置監視部440から障害情報を受信し、パス処理部453に送信する。また、ルーティング処理部451やシグナリング処理部452から受信した制御パケットを装置通信部410に転送する。
管理者設定部430は、管理者が入力装置を操作して管理サーバ400に対して各種値を設定したり、外部からのメッセージを読み込むことで、各種値を設定する(静的設定)。また、管理者設定部430は、管理者が管理サーバ400に対して設定を静的に行う際の外部からのメッセージを受信し、設定処理部420に装置設定情報(コンフィグ情報)を送信する。装置監視部440は、装置通信部410を介して伝送装置300から障害情報を受信する。また、装置監視部440は、設定処理部420に障害情報を送信する。
インタフェース処理部450は、管理サーバ400が制御する伝送装置300のインタフェース情報を管理する。設定処理部420から受信した装置設定情報を処理することにより、インタフェース処理部450は、インタフェース情報データベース460において、IP/MPLS網IF管理テーブル1100やMPLS−TP網IF管理テーブル1200を構築する。
ルーティング処理部451は、受信した装置設定情報やルーティングプロトコルの制御パケットを処理する。また、ルーティング処理部451は、エッジルータ100に対する制御パケットを生成し、送信する。装置設定情報やルーティングプロトコルを処理することにより、ルーティング処理部451は、ルーティング情報データベース461において、OSPF設定テーブル1300およびルーティングテーブル1400を構築する。
シグナリング処理部452は、受信したシグナリングプロトコルの制御パケットを処理する。また、シグナリング処理部452は、エッジルータ100に対する制御パケットを生成し、送信する。また、シグナリング処理部452は、パス処理部453と連携し、MPLS−TP網パス(302−1、302−2、303−1)を構築する。シグナリングプロトコルの処理により、シグナリング処理部452は、シグナリング情報データベース462において、シグナリング管理テーブル1500およびラベル管理テーブル1600を構築する。
パス処理部453は、シグナリング処理部452から通知を受けて伝送装置300のMPLS−TP網パス301を算出する。パス処理部453は、MPLS−TP網パスを伝送装置300に設定する。シグナリング処理部452からの通知を処理することにより、パス処理部453は、シグナリング情報データベース462において、MPLS−TP網パス管理テーブル1700を構築する。
<管理サーバ400のデータベースの記憶内容例>
つぎに、管理サーバ400のインタフェース情報データベース460、ルーティング情報データベース461、シグナリング情報データベース462の記憶内容例について説明する。管理サーバ400のインタフェース情報データベース460は、IP/MPLS網IF管理テーブルおよびMPLS−TP網IF管理テーブルを格納する。
図10は、インタフェース情報データベース460に構築されるIP/MPLS網IF管理テーブルの記憶内容例を示す説明図である。IP/MPLS網IF管理テーブル1100は、伝送装置300がIP/MPLS網10に接続するインタフェースであるIP/MPLS網IF(IF311、IF322、IF333)を管理するテーブルである。MPLS−TP網20を仮想ルータ200とみなすため、IP/MPLS網IF管理テーブル1100は、エッジルータ100と接続される伝送装置300のIFを管理するテーブルである。IP/MPLS網IF管理テーブル1100は、後述する「1.初期設定」の管理者設定部430によるインタフェース設定において、管理者が、管理者設定部110を介して静的に設定するテーブルである。
IP/MPLS網IF管理テーブル1100は、IP/MPLS網10と接続されるIFを有する伝送装置300を表す伝送装置ID1101、IP/MPLS網10と接続されるIFを表すIFID1102、IFID1102で指定されるインタフェースに設定するIPアドレスを表すIPアドレス1103、シグナリングプロトコルで使用可能な帯域幅を表す予約帯域幅1104、ルーティングプロトコルで用いられるコスト値1105を含む。図面の説明上、伝送装置ID1101には、伝送装置300の符号の枝番を用いている。以降、他のテーブルにおいても伝送装置IDには、伝送装置300の符号の枝番を用いる。
図11は、インタフェース情報データベース460に構築されるMPLS−TP網IF管理テーブルの記憶内容例を示す説明図である。MPLS−TP網IF管理テーブル1200は、伝送装置300のMPLS−TP網IFを管理するテーブルである。MPLS−TP網IF管理テーブル1200は、MPLS−TP網20内部での伝送装置300の接続関係を管理するテーブルである。MPLS−TP網IF管理テーブル1200は、後述する「1.初期設定」の管理者設定部430によるインタフェース設定において、管理者が、管理設定部430を介して静的に設定するテーブルである。MPLS−TP網IFは、伝送装置300−1〜300−4のIF311〜IF313、IF321〜IF323、IF331〜333、IF341、IF342のうち、MPLS−TP網20内部で他の伝送装置300と接続されるIF(IF312、IF313、IF321、IF323、IF331、IF332、IF341、IF342)である。
MPLS−TP網IF管理テーブル1200は、MPLS−TP網IFを有する伝送装置300を表す伝送装置ID1201と、MPLS−TP網IFを表すIFID1202、IFID1202で特定されるIFに接続される伝送装置300を表す接続先伝送装置ID1203と、IFID1202で特定されるIFに接続される伝送装置300のIFを表す接続先IFID1204と、伝送装置300間で利用可能な帯域幅を表す余剰帯域幅1205と、を含む。
つぎに、管理サーバ400のルーティング情報データベース461について説明する。管理サーバ400のルーティング情報データベース461は、OSPF設定テーブルおよびルーティングテーブルを格納する。
図12は、ルーティング情報データベース461に構築されるOSPF設定テーブルの記憶内容例を示す説明図である。OSPF設定テーブル1300は、後述する「1.初期設定」のルーティングプロトコル設定において、管理者が管理設定部430を介して静的に設定するテーブルである。OSPF設定テーブル1300は、OSPFを動作させるネットワークを指定するための情報として、NWアドレス1301、ワイルドカードマスク1302を含む。
図13は、ルーティング情報データベース461に構築されるルーティングテーブルの記憶内容例を示す説明図である。後述する「1.初期設定」の管理者設定部430による仮想ルータ200のインタフェース設定、ルーティング設定、シグナリング設定が完了した場合に、エッジルータ100と仮想ルータ200との間でOSPF−TEが動作して経路交換が行われる。これにより、管理サーバ400においてルーティングテーブル1400が自動作成される。ルーティングテーブル1400は、パケットの送信先を表す宛先NWアドレス1401、パケット送信時に用いる伝送装置を表す出力伝送装置ID1402、パケットを出力する伝送装置のIFを表す出力IFID1403、経路エントリの学習元を表す経路学習元1404を含む。本実施例では、経路学習元として、static、connected、dynamicの3種類を定義する。staticは、管理者が管理者設定部110によって静的に設定した経路エントリを表す。connectedは、直接エッジルータ100に繋がっているネットワークの経路エントリを表す。dynamicは、OSPFなどのルーティングプロトコルによって学習した経路エントリを表す。図10におけるIPアドレス1103の設定を契機として、経路学習元1404が「connected」となるエントリが設定される。ただし、出力IFID1403の「loopback」については、管理者が管理設定部430を介して静的に設定する。また、図12のOSPF設定テーブル700が設定されると、エッジルータ100と仮想ルータ200との間でOSPF−TEが動作して経路交換が行われ、経路学習元1404が「dynamic」となるエントリが設定される。
つぎに、シグナリング情報データベース462について説明する。管理サーバ400のシグナリング情報データベース462は、シグナリング管理テーブル、ラベル管理テーブル、およびMPLS−TP網パス管理テーブルを格納する。
図14は、シグナリング情報データベース462に構築されるシグナリング管理テーブルの記憶内容例を示す説明図である。シグナリング管理テーブル1500は、パスID1501、要求元アドレス1502、宛先NWアドレス1503、ワーキングパス予約帯域幅1504、プロテクションパス帯域幅ID1505、セカンダリパスID1506を含む。
シグナリング管理テーブル1500のエントリは、管理サーバ400がシグナリングプロトコルのメッセージを受信した契機で作成、更新される。ここでは、例えばシグナリングプロトコルとしてRSVP−TEを前提とする。RSVP−TEのPATHメッセージを受信した時点でエントリが作成され、RESVメッセージを受信した時点でエントリ内容が更新される。
パスID1501は、RSVP−TEのPATHメッセージを受信した際に作成されるIDである。要求元アドレス1502は、PATHメッセージの送信元アドレスを表す。宛先NWアドレス1503は、RSVP−TEによって張るパスの最終到達先を表す。ワーキングパス予約帯域幅1504は、RSVP−TEによって予約されるパスの帯域幅を表す。プロテクションパス予約帯域幅1505は、プロテクションパスによって確保された帯域幅を表す。セカンダリパスID1506は、パスID1051で表現されるパスが障害などによって通信不可能になったり、狭い帯域幅になったりした場合に切り替えるパスのパスID1501を表す。
図15は、シグナリング情報データベース462に構築されるラベル管理テーブルの記憶内容例を示す説明図である。ラベル管理テーブル1600は、パスID1601、入力装置ID1602、入力IFID1603、入力ラベル番号1604、出力装置ID1605、出力IFID1606、出力ラベル番号1607を含む。ラベル管理テーブル1600のエントリは、管理サーバ400がシグナリングプロトコルを受信した契機で作成、更新される。パスID1601は、パスを特定するIDであり、シグナリングプロトコルを受信した際に作成される。入力装置ID1602と入力IFID1603は、パスID1601で表されるパスのパケットを受信する伝送装置とIFを表す。入力ラベル番号1604は、本パスの受信パケットに付与されているラベル番号を表す。出力装置ID1605と出力IFID1607は、パスID1601で表されるパスのパケットを送信する際に用いる伝送装置とIFを表す。出力ラベル番号1607は、送信するパケットのラベル番号を表す。
図16は、シグナリング情報データベース462に構築されるMPLS−TP網パス管理テーブルの記憶内容例を示す説明図である。MPLS−TP網パス管理テーブル1700は、パスの運用状態を管理する設定情報である。MPLS−TP網パス管理テーブル1700のエントリは、管理サーバ400がシグナリングプロトコルのメッセージを受信した契機で作成、更新される。MPLS−TP網パス管理テーブル1700は、パスID1701、伝送装置ID1702、入力IFID1703、入力ラベル番号1704、出力IFID1705、出力ラベル番号1706、パス種別1707、パス状態1708を含む。パスID1701は、パスを特定するIDである。伝送装置ID1702と入力IFID1703は、本パスにおいてパケットを受信する伝送装置とIFを表す。入力ラベル番号1704は、受信するパケットに付与されているラベル番号を表す。出力IFID1705は、本パスにおいてパケットを送信する伝送装置のIFを表す。出力ラベル番号1706は、送信するパケットに付与されるラベル番号を表す。パス種別1707は、本パスの種別を表す。パス状態1708は、本パスの運用状態を示し、本パスが活性化状態(使用中)であるか非活性化状態(待機中)であるかを表す。
<システム動作例>
つぎに、IP/MPLS網10間をMPLS−TP網20で接続する両網のインターワーク例を示すシステムの動作例について説明する。1.初期設定、2.パス生成(図17、図18)、3.パス生成シーケンス(図19〜図30)、4.障害発生によるパス切替(図31〜図37)の順に説明する。
1.初期設定
システム動作例では、IP/MPLS網10で使用するルーティングプロトコルとしてOSPF−TEを使用し、シグナリングプロトコルとしてRSVP−TEを使用することを前提とする。まず初めに、エッジルータ100−1、エッジルータ100−2、および仮想ルータ200が、初期設定を行う。エッジルータ100−1とエッジルータ100−2は、インタフェース設定、ルーティングプロトコル設定、シグナリング設定を行う。
インタフェース設定により、図4Aおよび図4Bに示したインタフェース管理テーブル600が構築される。また、ルーティングプロトコル設定により、図5Aおよび図5Bに示したOSPF設定テーブル700が構築される。シグナリング処理により、両エッジルータ100にラベル転送テーブルが構築される。たとえば、エッジルータ100−2では、値が未設定のラベル転送テーブル900−2が構築される。
仮想ルータ200の設定は管理サーバ400で行われる。管理者設定部430は、インタフェース設定、ルーティング設定、シグナリング設定を行う。インタフェース設定により、図10に示したIP/MPLS網IF管理テーブル1100や図11に示したMPLS−TP網IF管理テーブル1200が構築される。ルーティング設定により、図12に示したOSPF設定テーブル1300が構築される。シグナリング設定により、図14に示したシグナリング管理テーブル1500および図15に示したラベル管理テーブル1600が構築される。
これらの設定により、エッジルータ100と仮想ルータ200との間でOSPF−TEが動作して経路交換が行われる。これにより、エッジルータ100−1では、図6Aに示したルーティングテーブル800−1が作成され、エッジルータ100−2では、図6Bに示したルーティングテーブル800−2が作成され、仮想ルータ200では、図13に示したルーティングテーブル1400が作成される。これにより、初期設定が終了する。
2.パス生成(図17、図18)
つぎに、エッジルータ100−2からエッジルータ100−1に対してプライマリパス101−1とセカンダリパス101−2を張る。図1に示したように、エッジルータ100−2からエッジルータ100−1に対してパスを張る場合、エッジルータ100−2のIF21からパスを張る場合とIF22からパスを張る場合の2つのパターンがある。
本システム動作例では、IF22から張るパスをプライマリパス101−1、IF21から張るパスをセカンダリパス101−2とする。エッジルータ100−2から2つのパスを張るにあたって必要となるRSVP−TE設定については、管理者設定部430が行う。RSVP−TE設定によりエッジルータ100−2のシグナリング情報データベース142に図8に示したパス管理テーブル1000が構築される。パス管理テーブル1000の構築を契機に、エッジルータ100−2は、図7に示したラベル転送テーブル900−2のエントリを生成する。
具体的には、たとえば、エッジルータ100−2は、パス管理テーブル1000のパスID1001の値「1」を、ラベル転送テーブル900−2のパスID901に設定する。また、エッジルータ100−2は、自身のIPアドレス「2.2.2.2」を、ラベル転送テーブル900−2の要求元IPアドレス902に設定する。また、エッジルータ100−2は、パス管理テーブル1000のシーケンス番号1002のうち末尾の番号「3」に対応するIPアドレス1003の値「1.1.1.1」を、ラベル転送テーブル900−2の宛先NWアドレス903に設定する。
また、エッジルータ100−2は、自身がパスの始端となるため、入力ラベル番号904を未定義(なし)とする。また、エッジルータ100−2は、パス管理テーブル1000のシーケンス番号1002のうち先頭の番号「1」に対応するIPアドレス1003の値「30.0.0.2」に対応する出力IFID「IF22」を、ラベル転送テーブル900−2の出力IFID905に設定する。
なお、この段階では、ラベル転送テーブル900−2の出力ラベル番号906は未確定である。また、ラベル転送テーブル900−2の予約帯域幅907の値「30Gbps」は、管理者の操作入力またはあらかじめ記憶デバイスに記憶された設定ファイル(不図示)から読み込むことにより設定される。
そして、エッジルータ100−2は、仮想ルータ200に対して、図7のパスID:1のエントリを含むRSVP−TEのPATHメッセージ(帯域幅を指定)を送信することで、エッジルータ100−2からエッジルータ100−1に対してパスを張る処理が開始される。
図17および図18は、仮想ルータ200によるパス生成処理手順例を示すフローチャートである。本例では、パス生成処理は、エッジルータ100−2からのRSVP−TEのPATHメッセージが伝送装置300を介して、管理サーバ400に受信された契機で実行される。また、伝送装置300は、エッジルータ100−2が送信するPATHメッセージを受信すると、伝送装置300を識別する伝送装置IDの情報とPATHメッセージを受信したIF(入力IF)を識別するIFID(入力IFID)の情報と共にそのPATHメッセージを管理サーバ400へ送信する。
管理サーバ400は、受信したPATHメッセージと伝送装置IDの情報とIFIDの情報をシグナリング処理部452で処理する(ステップF1000)。シグナリング処理部452は、PATHメッセージを受信した伝送装置300の伝送装置IDとIFIDを特定し、それぞれ記憶デバイス22であるメモリ上の変数src_dev、src_ifに格納する。本動作例では、伝送装置300−3の伝送装置ID「3」が変数src_devに格納され、IF333のIFID「333」が変数src_ifに格納される。
つぎに、シグナリング処理部452は、PATHメッセージの送信に用いる伝送装置IDとIFIDをPATHメッセージから抽出可能か判定する(ステップF1010)。抽出可能な場合(ステップF1010:Yes)、PATHメッセージの転送先アドレスをPATHメッセージから抽出する。シグナリング処理部452は、抽出した転送先アドレスと一致する宛先NWアドレス1401を有するエントリを、ルーティングテーブル1400から特定し、特定したエントリの出力伝送装置ID1402および出力IFID1403を抽出する。そして、シグナリング処理部452は、抽出した出力伝送装置ID1402を変数dest_devに格納し、抽出した出力IFID1403を変数dest_ifに格納する(ステップF1020)。
本動作例では伝送装置300−1の伝送装置ID「1」が変数dest_devに格納され、IF11のIFID「11」が変数dest_ifに格納される。抽出できない場合は(ステップF1010:No)、管理サーバ400は、PATHメッセージの送信元に対してエラーメッセージを送信する(図18のF1190)。
つぎに、管理サーバ400は、変数dest_dev、変数dest_ifの組、IP/MPLS網IF管理テーブル1100、シグナリング管理テーブル1500、ラベル管理テーブル1600を用いて、変数dest_ifに格納した送信に用いる伝送装置300のIFに、パスで必要となる帯域幅の空きがあるかを判定する(ステップF1030)。空きがない場合は(ステップF1030:No)、管理サーバ400は、PATHメッセージの送信元に対してエラーメッセージを送信する(図18のF1190)。空きがある場合は(ステップF1030:Yes)、ステップS1040に移行する。
具体的には、例えば、管理サーバ400は、変数dest_dev、変数dest_ifの組で特定される伝送装置IDおよびIFIDが存在するエントリを、IP/MPLS網IF管理テーブル1100から特定する。そして、管理サーバ400は、特定したエントリの予約帯域幅1104を抽出する。変数dest_dev、変数dest_ifの組で特定される伝送装置IDおよびIFIDが、300−1、311である場合、予約帯域幅1104は、100[Gbps]となる。
また、管理サーバ400は、シグナリング管理テーブル1500のパスID1501を取得し、取得したパスID1501と一致するパスID1601を有するエントリを、ラベル管理テーブル1600から特定する。そして、管理サーバ400は、特定したエントリの出力装置ID1605と出力IFID1606の組と、変数dest_devと変数dest_ifの組とを比較し、一致するか否かを判断する。
一致する場合には、管理サーバ400は、シグナリング管理テーブル1500のワーキングパス予約帯域幅1504の値を取得する。たとえば、30[Gbps]を取得したとする。最後に、管理サーバ400は、IP/MPLS網IF管理テーブル1100から抽出した予約帯域幅1104の値(100[Gbps])から、シグナリング管理テーブル1500から取得したワーキングパス予約帯域幅1504の値(30[Gbps])を減算し、減算結果が0以上であれば、ステップF1030で空きがあると判定する。本動作例では、dest_devのdest_if(IF11)には帯域幅の空きがある判定となる。
つぎに、管理サーバ400は、src_devとdest_devの間で張ることができるMPLS−TP網パスを特定する(ステップF1040)。ここでは、MPLS−TP網パスがPATHメッセージで指定された帯域幅を確保できるかは確認しない。管理サーバ400は、MPLS−TP網IF管理テーブル1200に対してk−th shortest Pathアルゴリズムを用いて最短経路からn番目の最短経路を算出してメモリ上の配列path[]に格納する。k−th shortest Pathアルゴリズムは、複数のパスのうちk番目に短いパスを探索するアルゴリズムである。なお、最短経路から順番に配列path[]に格納されるものとする。また、k−th shortest Pathアルゴリズムでは、最大でn個(k=n)のパスが探索される。また、管理サーバ400は、配列path[]に格納したパスの数を変数nに格納する。nが1以上の場合(ステップF1050:Yes)、ステップF1060に移行する。
一方、1つもパスが見つからなかった場合(ステップF1050:No)、管理サーバ400は、PATHメッセージの送信元に対してエラーメッセージを送信する(F1190)。なお、動作例では、配列path[]には、伝送装置300−3、伝送装置300−4、伝送装置300−1を経由するパス302−1と、伝送装置300−3、伝送装置300−2、伝送装置300−1を経由するパス302−2が格納され、変数nにはパス数である2が格納される。
F1060では、管理サーバ400は、メモリ上の変数p、変数working、変数protectionを空で初期化する(F1060)。変数pには配列path[]から取り出したパスが格納され、変数workingにはワーキングパス302−1が格納され、変数protectionにはプロテクションパスが格納されることになる。このあと、ステップF1070に移行する。
つぎに、管理サーバ400は、path[0]からpath[n−1]まで繰り返し処理を行う(F1070)。つまり、path[i]において、変数iは、0からn−1まで1ずつ増加される。path[i]は、配列path[]におけるi番目のパスを示す。まず、管理サーバ400は、変数pにpath[i]を代入して(F1080)、変数workingが空であるかを判定する(F1090)。変数workingが空である場合(ステップF1090:Yes)、管理サーバ400は、変数pのパスでPATHメッセージにおいて要求された帯域幅を確保できるかを判断する(F1100)。
帯域幅を確保できる場合(ステップF1100:Yes)、管理サーバ400は、変数workingに変数pを代入する(F1110)。変数workingが空でない場合(ステップF1090:No)または帯域幅を確保できない場合(ステップS1100:No)、管理サーバ400は、変数pがプロテクションパスとしてふさわしいか判定する(ステップF1120)。具体的には、たとえば、管理サーバ400は、変数protectionが空または変数protectionのパスで確保できる帯域幅よりも変数pで確保できる帯域幅の方が大きいかを判定する。
変数protectionが空である場合または変数protectionのパスで確保できる帯域幅よりも変数pのパスで確保できる帯域幅の方が大きい場合(ステップF1120:Yes)、管理サーバ400は、変数protectionに変数pを代入する(ステップF1130)。
一方、変数protectionが空でなく、かつ、変数protectionのパスで確保できる帯域幅よりも変数pのパスで確保できる帯域幅の方が大きくない場合(ステップF1120:No)、F1130は実行されない。
本動作例では、変数workingに伝送装置300−3、伝送装置300−4、伝送装置300−1を経由するパスのパスID、変数protectionに伝送装置300−3、伝送装置300−2、伝送装置300−1を経由するパスのパスIDが格納される。変数iがn−1のときにF1120:NoまたはF1130が終了すると、図18のF1140に移行する。
F1140において、変数workingが空であった場合(ステップF1140:Yes)、プロテクションパスを確保できなかったことを表しているため、管理サーバ400は、PATHメッセージの送信元に対してエラーメッセージを送信する(ステップF1190)。空でなかった場合は(ステップF1140:No)、ステップF1150に移行する。本動作例では、変数workingは空ではないため、次の処理に進む。
次に、管理サーバ400は、変数protectionが空か否かを判定する(ステップF1150)。空である場合(ステップF1150:Yes)、管理サーバ400は、シグナリング管理テーブル1500、ラベル管理テーブル1600、MPLS−TP網パス管理テーブル1700を更新して、変数workingに格納されたパスIDであるワーキングパス302−1を、パスID1501、1601、1701に登録する(F1160)。また、MPLS−TP網パス管理テーブル1700においては、パス種別1707に「working」を登録する。
空でない場合(ステップF1150:No)、管理サーバ400は、シグナリング管理テーブル1500、ラベル管理テーブル1600、MPLS−TP網パス管理テーブル1700を更新して、変数workingに格納されたパスIDであるワーキングパス302−1と変数protectionに格納されたパスIDであるプロテクションパス302−2をそれぞれ、パスID1501、1601、1701に登録する(F1170)。また、MPLS−TP網パス管理テーブル1700においては、パス種別1707にワーキングパス302−1の場合は「working」、プロテクションパス302−2の場合は「protection」を登録する。
ステップF1160またはF1170のあと、シグナリング処理部452がPATHメッセージを生成し、変数dest_devの変数dest_ifで特定されるIFから隣接するエッジルータ100−1に、生成したPATHメッセージを送信する(ステップF1180)。これにより、パス生成処理を終了する。
本動作例では、変数workingおよび変数protectionの両方にパスIDが格納される。図14のシグナリング管理テーブル1500、図15のラベル管理テーブル1600、および図16のMPLS−TP網パス管理テーブル1700は、ステップF1170による更新後の内容である。
3.パス生成シーケンス(図19〜図30)
図19は、パス生成シーケンス例を示す説明図である。エッジルータ100−2とエッジルータ100−1の間にプライマリパス101−1を張る動作を例に説明する。エッジルータ100−2の管理者設定部110からプライマリパス101−1を張るためのパスの設定情報であるラベル転送テーブル900−2(図7)およびパス管理テーブル1000(図8)を参照することにより、プライマリパス101−1を張る処理が開始される。ラベル転送テーブル900−2(図7)の内容は、エッジルータ100−2から送信されるPATHメッセージに含まれる。ラベル転送テーブル900−2のエントリにおけるパスID:1のパスが、構築対象となるプライマリパス101−1のパスIDである。
エッジルータ100−2のIF22からのPATHメッセージが伝送装置300−3に送信され(ステップS1000)、伝送装置300−3がそのPATHメッセージをIF333で受信して、伝送装置300−3が、伝送装置ID「300−3」と入力IFID「IF333」の情報と共にそのPATHメッセージを管理サーバ400に転送する(ステップS1010)ことにより、管理サーバ400は、図17および図18に示したパス生成処理を実行する(ステップS1015)。上述した図18のステップF1180により、管理サーバ400はPATHメッセージを送信する(ステップS1020)。管理サーバ400が送信したPATHメッセージは、伝送装置300−1を経由してエッジルータ100−1のパケット受信部152によって受信され、パケット処理部153に転送される(ステップS1030)。
PATHメッセージはシグナリングプロトコルの制御パケットであるため、PATHメッセージは、エッジルータ100−1のIF制御部151、設定処理部120に転送される。エッジルータ100−1の設定処理部120は、シグナリング処理部132にPATHメッセージを転送する。エッジルータ100−1のシグナリング処理部132は、PATHメッセージを処理することでエッジルータ100−1がパスの終端であることを特定する。そして、エッジルータ100−1のシグナリング処理部132は、ラベル転送テーブルのエントリを生成する。
図20は、エッジルータ100−1のラベル転送テーブル900−1の生成例を示す説明図である。図20のラベル転送テーブル900−1では、パスID901、要求元IPアドレス902、宛先NWアドレス903、および予約帯域幅907に、PATHメッセージに含まれるラベル転送テーブル900−2(図7)のパスID:1、要求元IPアドレス:2.2.2.2、宛先NWアドレス:1.1.1.1、予約帯域幅:30Gbpsが格納される。また、エッジルータ100−1にPATHメッセージが入力されたため、入力ラベル番号904として、たとえば、「100」が付与されたものとする。なお、エッジルータ100−1の出力IF11からは、PATHメッセージが出力されないため、ラベル転送テーブル900−1の出力ラベル番号906は定義されない。
エッジルータ100−1のシグナリング処理部132は、ラベル転送テーブル900−1を参照してRSVP−TEのRESVメッセージを生成する。RESVメッセージには、ラベル転送テーブル900−1のパスID:1における入力ラベル番号「100」が埋め込まれる。RESVメッセージは、設定処理部120を経由してエッジルータ100−1のパケット送信部154から送信される(ステップS1040)。伝送装置300−1がそのRESVメッセージをIF311で受信して、伝送装置300−1が、伝送装置ID「300−1」と入力IFID「IF311」の情報と共にそのRESVメッセージを管理サーバ400に送信する(ステップS1050)。
管理サーバ400の装置通信部410が、伝送装置IDと入力IFIDの情報と共にRESVメッセージを受信し、設定処理部420に転送する。設定処理部420は、伝送装置IDと入力IFIDの情報と共にRESVメッセージをシグナリング処理部452に転送する。シグナリング処理部452は、伝送装置IDと入力IFIDの情報とRESVメッセージを処理し、ステップF1170で得られたラベル管理テーブル1600(図15)とMPLS−TP網パス管理テーブル1700(図16)を更新する。
図21は、管理サーバ400のラベル管理テーブル1600の更新例を示す説明図であり、図22は、管理サーバ400のMPLS−TP網パス管理テーブル1700の更新例を示す説明図である。図21および図22は、パス生成処理(ステップS1015)のF1180(図18を参照)で生成されたラベル管理テーブル1600(図15)およびMPLS−TP網パス管理テーブル1700(図16)が、その後、管理サーバ400の装置通信部410がRESVメッセージを受信することで更新される例である。図21および図22中、網掛けの箇所が、図15および図16からの更新箇所である。
管理サーバ400は、パスID:1における入力ラベル番号「100」をRESVメッセージから読み出して、ラベル管理テーブル1600において同一パスID:1であるエントリの出力ラベル番号1607に「100」を格納する。これにより、ラベル番号「100」が設定されたデータは、仮想ルータ200のIF311から出力されて、エッジルータ100−1のIF12に入力されることになる。また、管理サーバ400は、ラベル管理テーブル1600のパスID:1のエントリにおける入力ラベル番号1604を自動採番する。ここでは、「16」を採番する。このように、ラベル管理テーブル1600が更新される。
ラベル管理テーブル1600において、伝送装置300−3のIF333の入力ラベル番号1604が「16」に確定したため、管理サーバ400は、MPLS−TP網パス管理テーブル1700の伝送装置ID1702が「300−3」、入力IFID1703が「IF333」である入力ラベル番号1704(未確定)に、「16」を格納する。また、ラベル管理テーブル1600において、伝送装置300−1のIF311の出力ラベル番号1607が「100」に確定したため、管理サーバ400は、MPLS−TP網パス管理テーブル1700の出力IFID1705が「IF311」である出力ラベル番号1706(未確定)に、「100」を格納する。このように、MPLS−TP網パス管理テーブル1700が更新される。
当該更新後、管理サーバ400のシグナリング処理部452は、RESVメッセージを生成し、伝送装置300−3を経由してエッジルータ100−2に送信する(ステップS1070、S1080)。生成されたRESVメッセージには、図21に示したパスID:1のエントリが含まれる。
仮想ルータ200からRESVメッセージを受信したエッジルータ100−2は、シグナリング処理部132でRESVメッセージを処理し、ラベル転送テーブル900−2を更新する。
図23は、エッジルータ100−2のラベル転送テーブル900−2の更新例を示す説明図である。図23は、図7に示した、プライマリパス101−1を張るためのパスの設定情報であるラベル転送テーブル900−2からの更新例である。管理サーバ400からのRESVメッセージには、パスID:1のパスにおいて伝送装置300−3のIF333の入力ラベル番号1604として「16」が含まれる。したがって、エッジルータ100−2は、RESVメッセージから入力ラベル番号1604の値「16」を読み出して、仮想ルータ200のIF333に接続されるエッジルータ100−2のIF22の出力ラベル番号906に「16」を格納する。
また、図19において、管理サーバ400は、各伝送装置300に対し転送ラベル設定をおこなう(ステップS1060、S1061、S1062、S1063)。具体的には、たとえば、管理サーバ400は、図22に示した更新後のMPLS−TP網パス管理テーブル1700を各伝送装置300に送信する。
MPLS−TP網パス管理テーブル1700を受信した各伝送装置300は、受信したMPLS−TP網パス管理テーブル1700を各伝送装置300が保持するラベル情報データベース(図示せず)に格納する。これにより、各伝送装置300は、ラベル情報データベースを参照して、自律的にラベルスイッチング伝送をおこなうことができる。
以上の動作により、エッジルータ100−2とエッジルータ100−1の間にプライマリパス101−1を張ることができる。
次にエッジルータ100−2とエッジルータ100−1との間でセカンダリパス101−2を張る。エッジルータ100−2の管理者設定部110からセカンダリパス101−2を張るためのパスの設定情報を入力することにより、セカンダリパス101−2を張る処理が開始され、図19のシーケンスが実行されることで、セカンダリパス101−2が張られる。
図24は、パスの設定情報が入力されたエッジルータ100−2のラベル転送テーブル900−2の一例を示す説明図であり、図25は、パスの設定情報が入力されたエッジルータ100−2のパス管理テーブル1000の一例を示す説明図である。
エッジルータ100−2のRSVP−TE設定において、管理サーバ400の管理者設定部430は、図25の網掛けしたエントリをパス管理テーブル1000に構築する。当該構築を契機に、エッジルータ100−2は、ラベル転送テーブル900−2のエントリを図24に示したように更新する。
具体的には、たとえば、エッジルータ100−2は、パス管理テーブル1000のパスID1001の値「2」を、ラベル転送テーブル900−2のパスID901に設定する。また、要求元IPアドレス902、宛先NWアドレス903、入力ラベル番号904、出力ラベル番号906(未確定)、および予約帯域幅907の設定については、図7と同じである。
また、エッジルータ100−2は、パス管理テーブル1000におけるパスIDが「2」で、かつ、パス管理テーブル1000のシーケンス番号1002のうち先頭の番号「1」に対応するIPアドレス1003の値「20.0.0.2」に対応する出力IFID「IF21」を、ラベル転送テーブル900−2のパスID:2のエントリの出力IFID905に設定する。
そして、エッジルータ100−2は、仮想ルータ200に対して、図24のパスID:2のエントリを含むRSVP−TEのPATHメッセージ(帯域幅を指定)を送信することで、エッジルータ100−2からエッジルータ100−1に対してパスを張る処理が開始され、図19に示したシーケンスが実行されることで、セカンダリパス101−2が設定される。
図26は、図19に示したパス生成(ステップS1015)によりセカンダリパス101−2を張り終えた後の管理サーバ400のシグナリング管理テーブル1500の更新例を示す説明図である。網掛け箇所が更新箇所である。パスID:2のエントリがセカンダリパス101−2を特定するエントリである。
シグナリング管理テーブル1500のパスID:2のエントリは、管理サーバ400がエッジルータ100−2からPATHメッセージを受信した時点で作成される。パスID:2のエントリにおいて、パスID1501、要求元アドレス1502、および宛先NWアドレス1503には、図24に示したPATHメッセージに含まれるパスID901の値「2」、要求元IPアドレス902の値「2.2.2.2」、および宛先NWアドレス903の値「1.1.1.1」が格納される。また、ワーキングパス予約帯域幅1504には、図24に示したPATHメッセージに含まれる予約帯域幅907の値「30Gbps」が格納される。
なお、本例のセカンダリパス101−2には、プロテクションパスが設定されないため、パスID:2のエントリにおいて、プロテクションパス予約帯域幅1505は未定義である。同様に、パスID:2のエントリがセカンダリパス101−2を示すため、対応するセカンダリパスID1506は未定義である。これに対し、パスID:2のエントリは、パスID:1のプライマリパス101−1に対応するセカンダリパス101−2であるため、パスID:1のエントリのセカンダリパスID1506には、セカンダリパス101−2を一意に特定するパスID:2が設定される。このように、シグナリング管理テーブル1500が更新される。
図27は、図19に示したパス生成(ステップS1015)によりセカンダリパス101−2を張り終えた後の管理サーバ400のラベル管理テーブル1600の更新例を示す説明図である。網掛け箇所が更新箇所である。パスID:2のエントリがセカンダリパス101−2を特定するエントリである。PATHメッセージは、プライマリパス101−1と同様に、エッジルータ100−2が送信し、伝送装置300−2がそのPATHメッセージをIF322で受信して、伝送装置300−2が伝送装置300−2の伝送装置ID「300−2」と入力IFID「IF322」の情報と共にそのPATHメッセージを管理サーバ400に送信する。
したがって、管理サーバ400は、伝送装置IDと入力IFIDの情報と共にPATHメッセージを受信した場合、ラベル管理テーブル1600のパスID:2のエントリの入力装置ID1602および入力IFID1603に、伝送装置300−2の伝送装置ID「300−2」および入力IFID「IF322」を格納する。また、管理サーバ400は、入力ラベル番号1604の値として、たとえば「17」を自動採番する。この段階では、パスID:2のエントリの出力装置ID1605、出力IFID1606、および出力ラベル番号1607は未確定であり、エッジルータ100−1からのRESVメッセージにより確定する。この点については後述する。
図28は、セカンダリパス101−2を張り終えた後のエッジルータ100−1のラベル転送テーブル900−1の一例を示す説明図である。網掛け箇所が更新箇所である。パスID:2のエントリがセカンダリパス101−2を特定するエントリである。図28のラベル転送テーブル900−1では、パスID901、要求元IPアドレス902、宛先NWアドレス903、および予約帯域幅907に、PATHメッセージに含まれるラベル転送テーブル900−2(図24)のパスID901の値「2」、要求元IPアドレス902の値「2.2.2.2」、宛先NWアドレス903の値「1.1.1.1」、予約帯域幅907の値「30Gbps」が格納される。また、エッジルータ100−1にPATHメッセージが入力されたため、入力ラベル番号として、たとえば、「101」が自動採番されたものとする。なお、エッジルータ100−1の出力IF11からは、PATHメッセージが出力されないため、ラベル転送テーブル900−1の出力ラベル番号は定義されない。
エッジルータ100−1は、図28のパスID:2のエントリを含むRESVメッセージを伝送装置300−1を介して管理サーバ400に送信する。伝送装置300−1は、そのRESVメッセージをIF311で受信して、伝送装置300−1が、伝送装置ID「300−1」と入力IFID「IF311」の情報と共にそのRESVメッセージを管理サーバ400に送信する。
図29は、図19に示したパス生成(ステップS1015)によりセカンダリパス101−2を張り終えた後の管理サーバ400のMPLS−TP網パス管理テーブル1700の一例を示す説明図である。図29は、図22におけるMPLS−TP網パス管理テーブル1700の更新後の状態を示す。網掛け箇所が更新箇所である。パスID:2の2つのエントリ291,292がセカンダリパス101−2を特定するエントリである。
まず、エントリ291の生成例について説明する。エントリ291は、エッジルータ100−2からのPATHメッセージの受信を契機に生成される。エントリ291は、伝送装置300−2を示すエントリである。
管理サーバ400は、MPLS−TP網パス管理テーブル1700のエントリ291の伝送装置ID1702および入力IFID1703に、伝送装置300−2から送信されてくる伝送装置300−2の伝送装置ID「300−2」および入力IFID「IF322」を格納する。また、セカンダリパス101−2についてのパス生成(ステップS1015)により、セカンダリパス101−2上の伝送装置300−2の出力IFが「IF321」に決まるため、管理サーバ400は、エントリ291の出力IFID1705に出力IFID「IF321」を格納する。また、管理サーバ400は、エントリ291の入力ラベル番号1704および出力ラベル番号1706を自動採番(たとえば、「17」と「18」)する。また、セカンダリパス101−2も現用系パスであるため、エントリ291におけるパス種別1707およびパス状態1708は、「working」、「active」に設定される。このようにして、エントリ291が生成される。
つぎに、エントリ292の生成例について説明する。エントリ292もエントリ291と同様に、エッジルータ100−2からのPATHメッセージの受信を契機に生成される。
管理サーバ400は、セカンダリパス101−2についてのパス生成(ステップS1015)により、MPLS−TP網パス管理テーブル1700のエントリ292の伝送装置ID1702、入力IFID1703および出力IFID1705に、伝送装置300−2の伝送装置ID「300−1」、入力IFID「IF312」および出力IFID「IF311」を格納する。また、管理サーバ400は、エントリ292の入力ラベル番号1704の値を、入力IFID1703であるIF312に接続されるIF321の出力ラベル番号1706の値「18」に設定する。
また、エッジルータ100−1からのRESVメッセージには、図28のパスID:2のエントリが含まれるため、管理サーバ400は、そのエントリの入力ラベル番号904の値「101」を読み出して、エントリ292の出力ラベル番号1706の値に設定する。エントリ291と同様、パス種別1707およびパス状態1708は、「working」、「active」に設定される。このようにして、エントリ292が生成される。
また、図27に示した管理サーバ400のラベル管理テーブル1600において、パスID:2のエントリの出力装置ID1605、出力IFID1606、および出力ラベル番号1607は未確定であったが、エッジルータ100−1からのRESVメッセージにより、出力装置ID1605の値「300−1」、出力IFIDの値「IF311」、および出力ラベル番号1607の値「101」が設定される。管理サーバ400は、パスID:2のエントリのうち入力ラベル番号1604の値「17」をRESVメッセージに埋め込んで、エッジルータ100−2に送信する。
図30は、セカンダリパス101−2を張り終えた後のエッジルータ100−2のラベル転送テーブル900−2の一例を示す説明図である。パスID:2のエントリがセカンダリパス101−2を特定するエントリである。網掛け箇所が更新箇所である。
仮想ルータ200からRESVメッセージを受信したエッジルータ100−2は、シグナリング処理部132でRESVメッセージを処理し、ラベル転送テーブル900−2を更新する。エッジルータ100−2は、RESVメッセージから、入力ラベル番号1604の値である「17」を読み出す。したがって、図30に示したように、エッジルータ100−2は、IF322に接続されるIFである出力IFID:IF21の出力ラベル番号906を、「未確定」から「17」に設定する。
なお、セカンダリパス101−2についても、図19に示したように、管理サーバ400は、各伝送装置300に対し転送ラベル設定をおこなう(ステップS1060、S1061、S1062、S1063)。具体的には、たとえば、管理サーバ400は、図29に示した更新後のMPLS−TP網パス管理テーブル1700を各伝送装置300に送信する。
MPLS−TP網パス管理テーブル1700を受信した各伝送装置300は、受信したMPLS−TP網パス管理テーブル1700を各伝送装置300が保持するラベル情報データベース(図示せず)に格納する。これにより、各伝送装置300は、ラベル情報データベースを参照して、自律的にラベルスイッチング伝送をおこなうことができる。以上より、エッジルータ100−2からエッジルータ100−1に対して2本のパス101−1、101−2を張ることが可能となる。
4.障害発生によるパス切替(図31〜図37)
つぎに、障害発生によるパス切替について説明する。MPLS−TP網20を構成する伝送装置300−4に障害が発生し、隣接の伝送装置300−1と伝送装置300−3、管理サーバ400との接続が切断された場合を例に挙げる。
このような障害が発生すると、隣接の伝送装置300−1と伝送装置300−3が、OAM機能によって伝送装置300−4を経由した通信が行えなくなったことを検出する。すなわち、伝送装置300−1と伝送装置300−3は、伝送装置300−4が障害発生原因であると特定する。検出後、MPLS−TP網パス(302−1、302−2、303−1)に影響がある場合は、仮想ルータ200は、ワーキングパス302−1からプロテクションパス302−2への切換えを実施する。具体的には、伝送装置300−1と伝送装置300−3は、自身が保持するラベル情報データベース(図示せず)を参照して、伝送装置300−4を経由するパスIDを特定する。
ラベル情報データベースには、管理サーバ400から送信されてきたMPLS−TP網パス管理テーブル1700(図30を参照)が格納されている。伝送装置300−1の場合、パスID:1であるプライマリパス101-1のワーキングパス(パス種別1707が「working」)であるエントリ群に、伝送装置ID1702が「300−4」のエントリが存在する。これにより、パスID:1であるプライマリパス101-1のワーキングパスが伝送装置300−4を経由するパスであると特定される。
伝送装置300−1と伝送装置300−3は、特定したパスIDのパス状態1708が「active」であった場合は「inactive」に、「inactive」であった場合は「active」に変更する。変更後、伝送装置300−1と伝送装置300−3は、管理サーバ400に、障害を発生した伝送装置300−4の伝送装置ID1702、ワーキングパス302−1からプロテクションパス302−2に切り替えた切替後のパスID1701とそのパス種別1707を含む障害情報を通知する。
管理サーバ400は、伝送装置300―1と伝送装置300−3から受信した障害情報を装置通信部410を介して装置監視部440で受信して処理し、障害情報を設定処理部420に送信する。設定処理部420は、受信した障害情報をパス処理部453に転送する。パス処理部453は、受信した障害情報を用いて、MPLS−TP網パス管理テーブル1700を更新する。具体的には、パス処理部453は、障害情報を参照して、伝送装置300−4の障害による切替後のパスのパスID1701およびパス種別1707を特定する。そして、パス処理部453は、MPLS−TP網パス管理テーブル1700において、そのパスID1701およびパス種別1707のエントリにおけるパス状態1708が、「active」であれば「inactive」に、「inactive」であれば「active」に変更する。
図31は、MPLS−TP網パス管理テーブル1700の更新例を示す説明図である。図31は、図29の状態からの更新例である。網掛け箇所が更新箇所である。図31では、図29におけるパスID1701が「1」で、かつ、パス種別1707が「working」である3個のエントリのパス状態1708が、「active」から「inactive」に変更される。同様に、図30におけるパスID1701が「1」で、かつ、パス種別1707が「protection」である3個のエントリのパス状態1708が、「inactive」から「active」に変更される。以上の動作により、伝送装置300に障害が発生した場合、ワーキングパス302−1からプロテクションパス302−2に切り替えることによって通信を継続することが可能となる。
伝送装置300の障害によってプロテクションパスへの切換えが行われたが、IP/MPLS網10とMPLS−TP網20を考慮した時に帯域幅が大きい最適パスであるかどうか不明である。そこで、管理サーバ400はパス最適化を行う。
図32は、最適パスの切換処理手順例を示すフローチャートである。まず、管理サーバ400は、障害によってワーキングパス302−1からプロテクションパス302−2に切換えを行ったパスIDのリストをメモリ上の配列path−listに代入する(ステップF2000)。管理サーバ400は、配列path−listに格納したパスIDを1つずつ取り出して変数pathに代入して処理を続ける(ステップF2010)。つまり、配列path−listに格納したパスIDが空になるまでパスIDを1つずつ取り出して変数pathに代入する。
管理サーバ400は、シグナリング管理テーブル1500のパスID1501と変数pathとを比較し、値が同じエントリを抽出する。管理サーバ400は、抽出したエントリを変数entryに代入する(ステップF2020)。なお、要求元アドレス1502、宛先NWアドレス1503、およびワーキングパス予約帯域幅1504は抽出しなくてもよい。
管理サーバ400は、変数entryのセカンダリパスID1506が設定されていれば(ステップF2030:Yes)、次の処理(ステップF2040)に進み、設定されていなければ(ステップF2030:No)、ステップF2010に戻る。ただし、配列path−listに格納したパスIDが空である場合は、ステップF2090に移行する。
管理サーバ400は、変数entryを参照して、変数p−bandwidthにプロテクションパス予約帯域幅1505を代入し、変数secondary−idにセカンダリパスID1506を代入する(F2040)。
そして、管理サーバ400は、シグナリング管理テーブル1500のパスID1501と変数secondary−idとを比較し、値が同じエントリを特定して、変数s−bandwidthに、特定したエントリのワーキングパス予約帯域幅1504を代入する(ステップF2050)。
ここで、管理サーバ400は、プライマリパス101−1のプロテクションパス302−2の帯域幅である変数p−bandwidthの値とセカンダリパス101−2のワーキングパス303−1の帯域幅である変数s−bandwidthの値とを比較する(ステップF2060)。変数s−bandwidthの方が変数p−bandwidthよりも値が大きい場合(ステップF2060:Yes)、プライマリパス101−1のプロテクションパス302−2よりもセカンダリパス101−2の方が帯域幅が大きい最適パスであると判断できるため、ステップF2070に移行する。一方、変数s−bandwidthの値が変数p−bandwidthの値以下である場合(ステップF2060:No)、セカンダリパス101−2よりも、プライマリパス101−1のプロテクションパス302−2の方が帯域幅が大きい最適パスであると判断できるため、ステップF2010に戻る。ただし、配列path−listに格納したパスIDが空である場合は、ステップF2090に移行する。
変数s−bandwidthの方が変数p−bandwidthよりも値が大きい場合(ステップF2060:Yes)、管理サーバ400は、変数pathで特定されるパスを切断することによってセカンダリパス101−2への切換えを行う(ステップF2070、F2080)。具体的には、管理サーバ400は、RSVP−TEのエラーメッセージを生成し、隣接ルータに対してエラーメッセージを送付する(ステップF2070)。
そして、管理サーバ400は、シグナリング情報データベース462のシグナリング管理テーブル1500、ラベル管理テーブル1600、MPLS−TP網パス管理テーブル1700のパスID1501、1601、1701が変数pathの値であるエントリを削除する(F2080)。ここで、当該削除後のシグナリング管理テーブル1500、ラベル管理テーブル1600、MPLS−TP網パス管理テーブル1700の例を示す。
図33は、管理サーバ400のシグナリング管理テーブル1500のパス最適化による更新例を示す説明図である。図33は、F2080において、図26に示したシグナリング管理テーブル1500の変数pathの値であるパスID:1のエントリを削除した場合の更新例である。
図34は、管理サーバ400のラベル管理テーブル1600のパス最適化による更新例を示す説明図である。図34は、F2080において、図27に示したラベル管理テーブル1600の変数pathの値であるパスID:1のエントリを削除した場合の更新例である。
図35は、管理サーバ400のMPLS−TP網パス管理テーブル1700のパス最適化による更新例を示す説明図である。図35は、F2080において、図29に示したMPLS−TP網パス管理テーブル1700の変数pathの値であるパスID:1のエントリを削除した場合の更新例である。当該削除により、パスID:1のパス(プライマリパス101−1)から、パス種別1707が「working」で、かつ、パス状態が「active」であるパスID:2のパス(セカンダリパス101−2)に切り替わる。
図32に戻り、配列path−listの繰り返し処理(F2010〜F2080)が終わった後、管理サーバ400は、シグナリング情報データベース462のシグナリング管理テーブル1500、ラベル管理テーブル1600、MPLS−TP網パス管理テーブル1700が更新されたか否かを判断する(ステップF2090)。管理サーバ400は、更新されていれば(ステップF2090:Yes)、更新内容を各伝送装置300に送信することで、各伝送装置300のラベル情報データベースを更新して、シグナリング情報データベース462の内容を反映させる(F2100)。これにより、パス最適化処理を終了する。
図36は、エッジルータ100−1のラベル転送テーブル900−1のパス最適化による更新例を示す説明図である。図36は、F2100において、図28に示したエッジルータ100−1のラベル転送テーブル900−1の変数pathの値であるパスID:1のエントリを削除した場合の更新例である。
図37は、エッジルータ100−2のラベル転送テーブル900−2のパス最適化による更新例を示す説明図である。図37は、F2100において、図30に示したエッジルータ100−2のラベル転送テーブル900−2の変数pathの値であるパスID:1のエントリを削除した場合の更新例である。
なお、エラーメッセージによるプライマリパス101−1の切断後、エッジルータ100の実装によっては再度パスを張るためにPATHメッセージを送信してくる可能性がある。仮想ルータ200がPATHメッセージを受信してパスを張ることを認めてしまうと、切断したプライマリパス101−1と同じパスが再度張られる。そのため、一度切断したプライマリパス101−1と同じPATHメッセージを受信した場合は、管理サーバ400はPATHメッセージを拒否する。
以上の処理により、プライマリパス101−1のワーキングパス302−1からプロテクションパス302−2に切り替わった際に、シグナリング管理テーブル1500、ラベル管理テーブル1600、MPLS−TP網パス管理テーブル1700を参照することによって、より帯域幅が大きいパスである最適なパスへの切換えを実現することが可能となる。
図32に示した最適パスの切換処理手順例では、管理サーバ400がプライマリパス101−1のプロテクションパス302−2とセカンダリパス101−2のワーキングパス303−1の帯域幅を比較し、より大きな帯域幅を持つパスに切り替えることで、パス最適化を実行した。このほか、比較対象として帯域幅だけでなくMPLS−TP網パスを実現するにあたって経由する伝送装置の数(hop数(ホップ数)と表現する)も考慮してもよい。
図38および図39は、hop数を考慮した場合の最適パスの切換処理手順例を示すフローチャートである。図38と図32の差分は、図38では、図32のステップF2020、F2030、F2040、F2050をステップF2021、F2031、F2041、F2042、F2051に置き換え、ステップF2060とステップF2070の間に、ステップF2061を追加した点である。図32と同一処理には同一ステップ番号を付し、その説明を省略する。
ステップF2010のあと、管理サーバ400は、シグナリング管理テーブル1500のパスID1501と変数pathとを比較し、値が同じエントリを抽出する。管理サーバ400は、抽出したエントリを変数p−entryに代入する(ステップF2021)。なお、要求元アドレス1502、宛先NWアドレス1503、およびワーキングパス予約帯域幅1504は抽出しなくてもよい。
管理サーバ400は、変数p−entryのセカンダリパスID1506が設定されていれば(ステップF2031:Yes)、次の処理(ステップF2041)に進み、設定されていなければ(ステップF2031:No)、ステップF2010に戻る。ただし、配列path−listに格納したパスIDが空である場合は、図39のステップF2090に移行する。
変数p−entryのセカンダリパスID1506が設定されている場合(ステップF2031:Yes)、管理サーバ400は、変数p−entryを参照して、変数p−bandwidthにプロテクションパス予約帯域幅1505を代入し、変数secondary−idにセカンダリパスID1506を代入する。また、管理サーバ400は、変数p−entryであるMPLS−TP網パスのhop数を算出して、変数p−hopに代入する(ステップF2041)。
hop数は、具体的には、MPLS−TP網パス管理テーブル1700を用いて算出される。MPLS−TP網パス管理テーブル1700の各エントリは、パスを経由する1つの伝送装置300を示す。したがって、たとえば、プライマリパス101−1(パスID:1)のプロテクションパス302−2の場合、MPLS−TP網パス管理テーブル1700におけるエントリが3つであるため、hop数は「3」となる。
つぎに、管理サーバ400は、シグナリング管理テーブル1500のパスID1501と変数secondary−idが同じエントリを抽出して、変数s−entryに代入する(ステップF2042)。
そして、管理サーバ400は、変数s−entryを参照して、変数s−bandwidthにセカンダリパス101−2のワーキングパス予約帯域幅1504を代入し、変数s−entryであるMPLS−TP網パスのhop数を算出して変数s−hopに代入して(ステップF2051)、ステップF2060に移行する。セカンダリパス101−2(パスID:2)のワーキングパス303−1の場合も、MPLS−TP網パス管理テーブル1700を用いて算出される。たとえば、MPLS−TP網パス管理テーブル1700におけるエントリが2つであるため、hop数は「2」となる。
ステップF2060において、変数s−bandwidthの方が変数p−bandwidthよりも値が大きい場合(ステップF2060:Yes)、プライマリパス101−1よりもセカンダリパス101−2の方が帯域幅が大きいパスであると判断できるため、ステップF2061に移行する。一方、変数s−bandwidthの値が変数p−bandwidthの値以下である場合(ステップF2060:No)、ステップF2010に戻る。ただし、配列path−listに格納したパスIDが空である場合は、図39のステップF2090に移行する。
変数s−bandwidthの方が変数p−bandwidthよりも値が大きい場合(ステップF2060:Yes)、管理サーバ400は、プライマリパス101−1のプロテクションパス302−2を実現するhop数である変数p−hopとセカンダリパス101−2のワーキングパス303−1を実現するhop数である変数s−hopとの比較を行う(ステップF2061)。変数p−hopのhop数の方が大きい場合(ステップF2061:Yes)、管理サーバ400は、パス切換え処理を行う(ステップF2070、F2080)。変数p−hopのhop数の方が大きくない場合(ステップF2061:No)、管理サーバ400は、パスの切換えを行わず、次のパス処理を実行する(ステップF2010)。
このように、ホップ数を考慮することにより、より帯域幅が大きくかつよりホップ数が少ないパスを最適なパスとして設定することができる。なお、ここでは、帯域とホップ数を参照したパスの切換えであったが同様の方法で、パスの長さやパスの遅延、パスの優先度も考慮してパスの切換えを行うこととしてもよい。
なお、パスの長さや伝送遅延時間、優先度は、あらかじめパスごとに設定されたテーブル(不図示)に格納され、管理サーバ400は、ステップF2041およびステップF2051の実行時に当該テーブルを参照して、該当するパスの長さや伝送遅延時間、優先度をhop数の代わりに読み出すことになる。パスの長さの場合は、たとえば、物理的なパス長が設定される。また、パスの遅延の場合は、伝送遅延時間が設定される。伝送遅延時間は、各パスにあらかじめ設定された値でもよく、パスの両端のエッジルータ(たとえば、エッジルータ100−1とエッジルータ100−2)との間の通信における伝送遅延時間の実測値を用いてもよい。また、パスの優先度の場合、各パスにあらかじめ設定された優先度が設定される。パス長や伝送遅延時間は短い方が最適パスとして設定され、優先度は高い方が最適パスとして設定される。
そして、パス長の場合、ステップF2061において、管理サーバ400は、プライマリパス101−1のプロテクションパス302−2のパス長と、セカンダリパス101−2のパス長と、を比較する。そして、管理サーバ400は、プライマリパス101−1のプロテクションパス302−2のパス長の方が長い場合、パス切換え処理を行う(ステップF2070、F2080)。プライマリパス101−1のプロテクションパス302−2のパス長の方が長くない場合(ステップF2061:No)、管理サーバ400は、パスの切換えを行わず、次のパス処理を実行する(ステップF2010)。このように、物理的なパス長を考慮することにより、より帯域幅が大きくかつよりパス長が短いパスを最適なパスとして設定することができる。
また、伝送遅延時間の場合、ステップF2061において、管理サーバ400は、プライマリパス101−1のプロテクションパス302−2の伝送遅延時間と、セカンダリパス101−2の伝送遅延時間と、を比較する。そして、管理サーバ400は、プライマリパス101−1のプロテクションパス302−2の伝送遅延時間の方が長い場合、パス切換え処理を行う(ステップF2070、F2080)。プライマリパス101−1のプロテクションパス302−2の伝送遅延時間の方が長くない場合(ステップF2061:No)、管理サーバ400は、パスの切換えを行わず、次のパス処理を実行する(ステップF2010)。このように、伝送遅延時間を考慮することにより、より帯域幅が大きくかつより伝送遅延時間が短いパスを最適なパスとして設定することができる。
また、優先度の場合、ステップF2061において、管理サーバ400は、プライマリパス101−1のプロテクションパス302−2の優先度と、セカンダリパス101−2の優先度と、を比較する。そして、管理サーバ400は、プライマリパス101−1のプロテクションパス302−2の優先度の方が低い場合、パス切換え処理を行う(ステップF2070、F2080)。プライマリパス101−1のプロテクションパス302−2の優先度の方が低くない場合(ステップF2061:No)、管理サーバ400は、パスの切換えを行わず、次のパス処理を実行する(ステップF2010)。このように、伝送遅延時間を考慮することにより、より帯域幅が大きくかつより優先度が高いパスを最適なパスとして設定することができる。
また、上述した実施例では、エッジルータ100−1と仮想ルータ200との間においては、プライマリパス101−1とセカンダリパス101−2は同一経路となっているが、エッジルータ100−2と仮想ルータ200との間と同様、異なる経路であってもよい。
このように、本実施例の管理システムは、MPLS−TP網20において管理サーバ400がIP/MPLS網10のプロトコル処理などの機能を備えることによって、IP/MPLS網10のエッジルータ100に対して1台の仮想的なルータとして認識させ、IP/MPLS網10のパスとMPLS−TP網20のパスをマッピングして伝送装置300に設定する管理システムである。
そして、IP/MPLS網10のエッジルータ100間で仮想ルータ200を経由した2本の通信パスをプライマリパス、セカンダリパスとして関連性を持たせて保持し、MPLS−TP網20において障害などによってMPLS−TP網20のパスをワーキングパスから代替のプロテクションパスに切り替える。通常ならば当該切替により復旧が完了するが、本実施例では、プライマリパス上のMPLS−TP網20のプロテクションパスとセカンダリパス上のMPLS−TP網20のワーキングパスとを比較する。
そして、セカンダリパス上のMPLS−TP網20のワーキングパスの方が帯域幅が大きい場合、管理サーバ400は、セカンダリパス上のMPLS−TP網20のワーキングパスを復旧パスに決定する。これにより、より帯域幅が大きいパスを復旧パスに決定することができ、復旧パスの最適化を図ることができる。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。