説明

MRCファイル作成装置、MRCファイル作成方法およびそのプログラム

【課題】故障発生時の迂回経路を示したMRCファイルの数を低減する。
【解決手段】MRCファイル作成装置は、与えられたトポロジ301に対し、Kruskal法により全域木302を作成する。ここで、全域木作成に用いるリンクコストの集合の初期値にランダムな値を加算して、様々な全域木を作成する。そして、この全域木の中から新規にisolated nodeになる数およびisolated linkになる数が最も多い全域木を選択し、この全域木によりMRCファイル群を構成する。また、全域木作成に用いるトポロジ301のリンクコストの集合の初期値も、乱数により様々な値の組み合わせを発生させ、様々な初期値をもとにMRCファイル群を作成する。そして、MRCファイル作成装置は、これらのMRCファイル群の中で、ファイル数の最も少ないMRCファイル群のセットを出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IP(Internet Protocol)網等のパケット交換網におけるルーチング技術に関する。
【背景技術】
【0002】
ネットワーク事業者において、ノードやリンクの故障の発生に対して、迅速に経路を切り替えることで故障復旧を行い、転送品質の維持を行うことが重要である。IP網における故障復旧方法として、OSPF(Open Shortest Path First)等のルーチングプロトコルを用いた故障復旧方法がある(非特許文献1参照)。このOSPFでは、故障を検知したノードは、全ノードから故障箇所を除いたトポロジデータベース情報をもとに迂回経路を計算し、自動的に転送経路を切り替える。しかし、OSPFでは、ノードは故障発生後に迂回経路を計算するため、故障復旧に時間を要するという問題がある。
【0003】
このような問題を解決する方法として、迂回経路を事前に計算しておくことで高速な故障復旧を実現するMRC(Multiple Routing Configurations)方式が提案されている。このMRC方式は、事前に迂回情報格納ファイル(以下、MRCファイルと呼ぶ)を用意しておき、故障発生時には、この故障に対応したMRCファイルに基づき転送経路へ切り替えを行う。
【0004】
ここで、図11を用いて、MRCファイルについて説明する。MRCファイルは、与えられたトポロジに対し、通常ノードと、isolated nodeと、通常リンクと、isolated linkと、restricted linkとの組み合わせにより、故障時の迂回情報を示したファイルである。isolated linkは、故障リンクを示し、isolated nodeは、故障ノードを示す。また、restricted linkは、isolated nodeへの最終ホップとしてのみ利用可能なリンクである。
【0005】
例えば、図11の符号102に示す状態のMRCファイル#1は、符号101に示すようなノードN1〜N6からなるトポロジのMRCファイルである。このMRCファイル#1において、(1)ノードN2,N3間のリンクが故障したとき、(2)ノードN2が故障したとき、(3)ノードN6が故障したとき、および、(4)ノードN1,N6間のリンクが故障したときの迂回経路を示す。ここで、迂回経路は、通常リンクを用いるが、restricted linkも、isolated nodeへの最終ホップとしてならば利用可能である。実際には、このMRCファイルのisolated linkには非常に大きなコスト(例えば、OSPFで規定される最大値「65535」)を設定することで、そのリンクを使用不能とする。つまり、OSPFでは、できるだけ低いリンクコストのリンクを選択するので、このように非常に大きなリンクコストのリンクは選択されない。また、restricted linkには、このisolated linkよりも低いけれども、充分大きな値(例えば、すべての通常リンクのコストの合計値)を設定することで、最終ホップでのみ使用されるようにする。
【0006】
なお、このように、MRCファイルにrestricted linkを設ける理由は、ノード間が通信不能となる原因が、リンク故障の場合とノード故障の場合との両方の可能性があるからである。例えば、符号101に示すトポロジにおいて、ノードN3,N2間が通信不能になる原因としては、(1)ノードN3,N2間のリンク故障、(2)ノードN2のノード故障等が考えられる。ここでもし、ノード間が通信不能となった原因が、(1)ノードN3,N2間のリンク故障であれば、例えば、ノードN4からノードN1への経路は、ノードN3を経由のものと、ノードN2経由のものとが考えられる。しかし、もしノードN3,N2間が通信不能となった原因が、(2)ノードN2のノード故障であれば、実際にはノードN4,N2間およびノードN2,N1間のリンクは通信不能なので、このリンクは迂回経路として使えない。したがって、例えば、符号102に示すMRCファイル#1のように、isolated nodeであるノードN2の少なくとも1本のリンクに充分大きなリンクコストの値を設定したrestricted linkを設けることで、通信不能な状態になった原因が単なるリンク故障であった場合の、ノードN2への到達性を確保することができる。また、通信不能となった原因が、ノードN2のノード故障であった場合において、このノードN2を経由する経路をできるだけ選択しないようにできる。
【0007】
このようなMRCファイルを作成するには、以下の条件を満たす必要がある。
(条件1)MRCファイルにおいて、isolated linkを除いたリンク(つまり、通常リンクとrestricted link)は、連結グラフとなることが必要である。これは、isolated link以外のリンクにより構成される経路の経路到達性を確保するためである。
(条件2)すべてのMRCファイルにおけるisolated nodeとisolated linkとの和集合が、もとのトポロジに一致することが必要である。これは、トポロジに起こりうるノード故障およびリンク故障をすべてのMRCファイルによりカバーする必要があるからである。
(条件3)isolated nodeには少なくとも一本のrestricted linkが接続され、それ以外のリンクはisolated linkであることが必要である。また、restricted linkの対向ノードは、その通常ノードとする。これは、前記したとおり、MRCファイルにおける迂回経路の作成において、リンク故障による通信不能の場合と、ノード故障による通信不能の場合との両方の場合を考慮する必要があるからである。
【0008】
ここで、引き続き、図11を用いて、従来技術によるMRCファイルの作成アルゴリズムを説明する。ここでは、符号101に示すトポロジに対し、MRCファイル数=4を指定した場合を例に説明する。まず、符号101に示すトポロジのリンクについて、すべて通常リンクと通常ノードとで構成されるMRCファイルを作成する。そして、このMRCファイルから任意のノードを選択する。例えば、ノードN1を選択する。次に、この選択したノードN1に接続されるリンクのうち、1つのリンクをrestricted linkとする。他のリンクはisolated linkとする。このとき、どのリンクをrestricted linkとするかはランダムに決める。以上の処理により、このノードN1のリンクはすべてisolated linkまたはrestricted linkとなるので、このノードN1はisolated nodeとなる。このようにしてMRCファイル#0を作成する(S1)。以下、このようにトポロジから、ノードを選択し、そのノードをisolated nodeとするまでの処理を基本処理と呼ぶ。
【0009】
次に、MRCファイル#1の作成処理に移る。ここでは、MRCファイル#0で、isolated linkにできなかったリンク(例えば、restricted linkにしたリンク)の対向ノードを対象として、基本処理を行う。つまり、ノードN1,N6間のリンクをisolated linkとし、ノードN5,N6間のリンクをrestricted linkとする。そして、ノードN6をisolated nodeとして、MRCファイル#1を作成する(S2)。このような基本処理を、ノードN6のrestricted linkの対向ノードであるノードN5に実行して、MRCファイル#2を作成し(S3)、ノードN5のrestricted linkの対向ノードであるノードN4に実行して、MRCファイル#3を作成する(S4)。
【0010】
ここで、4つ目のMRCファイル(MRCファイル#3)まで作成したが、まだ符号101に示すトポロジのすべてのノードをisolated nodeとして選択していない。よって、S1で作成したMRCファイル#0に対し、基本処理を行う。つまり、MRCファイル#3におけるノードN4のrestricted linkの対向ノードであるノードN3に対して基本処理を行い、符号103に示すMRCファイル#0へ更新する(S5)。さらに、まだ符号101に示すすべてのノードをisolated nodeとして選択していないので、MRCファイル#1に対し、基本処理を行う。つまり、ノードN3のrestricted linkの対向ノードであるノードN2に対して基本処理を行い、符号102に示すMRCファイル#1へ更新する(S6)。以上の処理により、トポロジのすべてのノードがisolated nodeとなったので、処理を終了する。そして、符号103に示すMRCファイル#0、符号102に示すMRCファイル#1、S3で作成したMRCファイル#2、S4で作成したMRCファイル#3を出力する。
【0011】
このようなアルゴリズムによれば、前のMRCファイルではisolated linkにできなかったリンクを、次のMRCファイルでisolated linkとするので、トポロジのすべてのノードをisolated nodeとし、また、すべてのリンクをisolated linkとすることができる。また、所定数のMRCファイルに対し順に基本処理を行っていき、最後のMRCファイルまで基本処理を行っても、まだすべてのノードをisolated nodeにできていなければ、最初に作成したMRCファイルに戻り、基本処理を実行し、この基本処理の結果(isolated link、restricted linkおよびisolated node)を当該MRCファイルに追加していく。したがって、1つのMRCファイルに複数の故障(故障ノードおよび故障リンク)が発生したときの迂回経路を記憶することができるので、必ずしも故障ごとにMRCファイルを用意する必要がなくなる。
【先行技術文献】
【非特許文献】
【0012】
【非特許文献1】IETF RFC2328“OSPF Version 2”、1999年4月
【非特許文献2】A.Kyalbein,et.al “FAST IP NETWORK RECOVERY USING multiple routing configurations”in proceeding of infocom、2006年4月
【発明の概要】
【発明が解決しようとする課題】
【0013】
しかし、前記した技術は、単一故障(単一のノードの故障および単一のリンクの故障)に対する迂回経路をすべて網羅することを主な目的としており、MRCファイル1つあたりの故障パターン(isolated nodeやisolated link)の集約効率は必ずしも高くない。よって、ルータが記憶すべきMRCファイルが多くなってしまうこともある。例えば、図11で説明した例では符号101に示すトポロジについて、合計4つのMRCファイルを作成した。しかし、符号101に示すトポロジのすべての故障パターンの迂回経路を網羅するMRCファイル群は、この4つのMRCファイルに限定されず、たとえば、図12に示す3つのMRCファイル(MRCファイル#0〜#2)も考えられる。そこで、本発明は、前記した課題を解決し、ルータが保持すべきMRCファイルの数を低減することを目的とする。
【課題を解決するための手段】
【0014】
前記した課題を解決するため、請求項1に記載の発明は、ネットワークにおけるノード故障発生時およびリンク故障発生時の迂回経路を示したMRC(Multiple Routing Configurations)ファイルを作成するMRCファイル作成装置であって、ネットワークのトポロジを示したトポロジ情報と、そのトポロジに対し、今まで作成されたMRCファイルにおいてisolated nodeとなったノードおよびisolated linkとなったリンクを示したMRCファイル作成管理情報とを記憶する記憶部と、乱数を用いて、トポロジにおけるリンクそれぞれのリンクコストの初期値の集合である初期値W0を生成するリンクコスト初期値作成部と、生成した初期値W0を用いて、Kruskal法によりトポロジのリンクの少なくとも一部を削除し、トポロジの全域木を作成する全域木作成部と、トポロジを参照して、全域木作成部により作成された全域木における末端のノードを、MRCファイルにおけるisolated nodeとし、この末端のノードに接続するリンクをrestricted linkとし、全域木の作成において削除されたリンクをisolated linkとして、トポロジのMRCファイルを作成し、その作成したMRCファイルにおいて、isolated nodeとなったノードおよびisolated linkとなったリンクをMRCファイル管理情報に記録していくMRCファイル作成部と、MRCファイル作成部により、MRCファイルが作成された後、MRCファイルにおけるisolated link以外のリンクのリンクコストそれぞれの値に、ランダムな値を加算した新たなリンクコストの集合W’をN個作成するリンクコスト値変更部と、全域木作成部、MRCファイル作成部およびリンクコスト値変更部の制御を行う反復制御部と、MRCファイル作成部により作成されたMRCファイル群を出力する出力部とを備え、反復制御部は、(1)全域木作成部に、新たなリンクコストの集合W’1〜W’Nそれぞれのリンクコストの値を用いて全域木を作成させ、この作成させた全域木のうち、当該全域木によりMRCファイルを作成した場合、MRCファイル管理情報に示される今まで作成したMRCファイルに対し、新規にisolated nodeになる数およびisolated linkになる数が最も多い全域木を選択する処理と、(2)MRCファイル作成部に、選択された全域木によりMRCファイルを作成させる処理と、(3)リンクコスト値変更部に、MRCファイルにおけるisolated link以外のリンクのリンクコストそれぞれの値に、ランダムな値を加算した新たなリンクコストの集合W’をN個作成させる処理とをMRCファイル作成管理情報において、トポロジに示されるすべてのノードがisolated nodeとなり、かつ、すべてのリンクがisolated linkとなるまで実行させることを特徴とする。
【0015】
請求項6に記載の発明は、ネットワークにおけるノード故障発生時およびリンク故障発生時の迂回経路を示したMRCファイルを作成し、ネットワークのトポロジを示したトポロジ情報と、そのトポロジに対し、今まで作成されたMRCファイルにおいてisolated nodeとなったノードおよびisolated linkとなったリンクを示したMRCファイル作成管理情報とを記憶する記憶部を備えるMRCファイル作成装置が、乱数を用いて、トポロジにおけるリンクそれぞれのリンクコストの値の集合である初期値W0を生成するステップと、リンクコストの集合の初期値W0を用いて、Kruskal法によりトポロジのリンクの少なくとも一部を削除し、トポロジの全域木を作成するステップと、トポロジを参照して、全域木作成部により作成された全域木における末端のノードを、MRCファイルにおけるisolated nodeとし、この末端のノードに接続するリンクをrestricted linkとし、全域木の作成において削除されたリンクをisolated linkとして、トポロジのMRCファイルを作成し、その作成したMRCファイルにおいて、isolated nodeとなったノードおよびisolated linkとなったリンクをMRCファイル管理情報に記録していくステップと、MRCファイルが作成された後、MRCファイルにおけるisolated link以外のリンクのリンクコストそれぞれの値に、ランダムな値を加算した新たなリンクコストの集合W’をN個作成するステップと、作成されたMRCファイル群を出力するステップとを実行し、MRCファイル作成装置が、(1)新たなリンクコストの集合W’1〜W’Nそれぞれのリンクコストの値を用いてN個の全域木を作成し、この作成した全域木のうち、当該全域木によりMRCファイルを作成した場合、MRCファイル管理情報に示される今まで作成したMRCファイルに対し、新規にisolated nodeになる数およびisolated linkになる数が最も多い全域木を選択するステップと、(2)選択した全域木によりMRCファイルを作成するステップと、(3)MRCファイルにおけるisolated link以外のリンクのリンクコストそれぞれの値に、ランダムな値を加算した新たなリンクコストの集合W’をN個作成するステップとを、MRCファイル作成管理情報において、トポロジに示されるすべてのノードがisolated nodeとなり、かつ、すべてのリンクがisolated linkとなるまで実行することを特徴とするMRCファイル作成方法とした。
【0016】
このようなMRCファイル作成装置は、まず、トポロジの全域木を作成し、この全域木をベースとしてMRCファイル作成する。つまり、MRCファイルにおけるトポロジにおいて各ノードの経路到達性を確保しつつ、リンクの数をできるだけ減らしたトポロジを作成する。これにより、1つのMRCファイルに集約される故障パターン数をできるだけ多くすることができる。この後、このMRCファイル作成装置は、トポロジにおけるすべての故障パターンを網羅するMRCファイルを順次作成していくが、あるMRCファイルの作成後、次のMRCファイルを作成するとき、MRCファイル管理情報を参照して、今まで作成したMRCファイルに対し、新規なisolated node、isolated linkの数が最も増えるような全域木を作成し、この全域木を用いてMRCファイルを作成する。このようにすることで、MRCファイル作成装置が、MRCファイル群を作成するとき、そのMRCファイル同士でできるだけ故障パターンの重複のないMRCファイル群を作成することができる。従って、MRCファイル作成装置は、トポロジに対するMRCファイルの数を低減できる。なお、このMRCファイル作成装置において全域木作成に用いるKruskal法は、リンクコストの値が比較的高いリンクを除去して全域木を作成するものである。よって、この性質を利用し、リンクコストの集合作成部が新たなリンクコストの集合を作成するとき、MRCファイルにおけるisolated link以外のリンクのリンクコストの値それぞれを、ランダムに増加させたリンクコストの集合W’を作成することで、前回作成した全域木とは異なる全域木を作成しやすくなる。また、リンクコストの集合W’もN個(Nパターン)作成するので、バリエーションに富んだ全域木を作成できる。よって、MRCファイル作成装置が作成するMRCファイルもバリエーションに富んだものになり新規のisolated nodeおよびisolated linkの数が大きく増えるようなMRCファイルを発見しやすくなる。したがって、MRCファイル作成装置は、与えられたトポロジに対し、そのトポロジにおける故障パターンをすべて網羅するMRCファイル群ができるだけ少なくなるようなMRCファイル群を発見しやすくなる。
【0017】
請求項2に記載の発明は、請求項1に記載のMRCファイル作成装置におけるリンクコスト値変更部が、(1)MRCファイルにおけるisolated link以外のリンクのリンクコストそれぞれに、ランダムな値を加算して新たなリンクコストの集合W’をN個作成した後、(2)作成したN個の新たなリンクコストの集合W’それぞれについて、MRCファイルにおけるisolated node以外のノードに接続するリンクのリンクコストを1つ選択し、その選択したリンクコストを、OSPF(Open Shortest Path First)において設定可能な最小値に変更し、isolated node以外のノードに接続するリンクのリンクコストのうち、選択したリンクコスト以外のリンクのリンクコストを、OSPFにおいて設定可能な最大値に変更することを特徴とする。
【0018】
このようにすることで、MRCファイル作成装置は、新規のisolated nodeおよびisolated linkの数が大きく増えるようなMRCファイルを発見しやすくなる。したがって、MRCファイル作成装置は、与えられたトポロジに対し、そのトポロジにおける故障パターンをすべて網羅するMRCファイル群ができるだけ少なくなるようなMRCファイル群を発見しやすくなる。
【0019】
請求項3に記載の発明は、請求項1または請求項2に記載のMRCファイル作成装置におけるリンクコスト初期値作成部は、乱数を用いて、初期値WOを複数個生成し、反復制御部は、生成した初期値W0をもとに、全域木作成部、MRCファイル作成部およびリンクコスト値変更部によりMRCファイル群を作成させる処理を、生成した初期値W0の個数分実行させ、作成したMRCファイル群のうち、最もファイル数が少ないMRCファイル群を選択し、出力部は、選択されたMRCファイル群を出力することを特徴とする。
【0020】
このようにすることで、MRCファイル作成装置は、様々なMRCファイル群を作成し、その中から最もファイル数が少ないMRCファイル群を選ぶので、よりMRCファイル数の少ないMRCファイル群を発見しやすくなる。
【0021】
請求項4に記載の発明は、請求項1または請求項2に記載のMRCファイル作成装置における反復制御部が、(1)MRCファイルにおけるisolated link以外のリンクのリンクコストそれぞれに、ランダムな値を加算して作成したN個の新たなリンクコストの集合W’をもとに全域木を作成し、この作成した全域木をもとにMRCファイルを作成した場合、そのいずれの全域木によっても、MRCファイル作成管理情報に示される今まで作成したMRCファイルに対し、新規にisolated nodeになるノードを増やすMRCファイルを作成できなかったと判断したとき、(2)リンクコスト値変更部に、作成したN個の新たなリンクコストの集合W’それぞれについて、MRCファイルにおけるisolated node以外のノードに接続するリンクのリンクコストを1つ選択し、その選択したリンクコストを、OSPFにおいて設定可能な最小値に変更し、isolated node以外のノードに接続するリンクのリンクコストのうち、選択したリンクコスト以外のリンクのリンクコストを、OSPFにおいて設定可能な最大値に変更する処理を実行させることを特徴とする。
【0022】
このようにすることでも、MRCファイル作成装置は、新規に作成するMRCファイルを、今まで作成したMRCファイルではカバーしきれていない新規なisolated nodeを含むようなMRCファイルとすることができる。ここで、MRCファイル作成装置は、リンクコストの値をランダムに増加させたN個のリンクコストの集合W’のいずれによっても、新規なisolated nodeを増やすようなMRCファイルが作成できないと判断したときに、(2)に示す処理を実行する。よって、MRCファイル作成装置は必要以上に(2)に示す処理を実行する必要がなくなる。
【0023】
請求項5に記載の発明は、請求項1から請求項4のいずれか1項に記載のMRCファイル作成装置により作成されたMRCファイル群を用いて、ネットワーク内のノード故障またはリンク故障発生時の経路制御を行う経路制御装置とした。
【0024】
このようにすることで、経路制御装置の保持するMRCファイル数を低減できる。
【0025】
請求項7に記載の発明は、請求項6に記載のMRCファイル作成方法をコンピュータに実行させるためのプログラムとした。
【0026】
このようなプログラムによれば、一般的なコンピュータ(例えば、ルータ)に請求項6に記載のMRCファイル作成方法を実行させることができる。
【発明の効果】
【0027】
本発明によれば、ルータが保持すべきMRCファイルの数を低減できる。
【図面の簡単な説明】
【0028】
【図1】本実施の形態のMRCファイル作成方法の概要を説明した図である。
【図2】本実施の形態のMRCファイル作成方法の概要を説明した図である。
【図3】本実施の形態のルータの機能ブロックである。
【図4】図3のルータの処理手順の概要を示したフローチャートである。
【図5】図4のS11の処理の詳細を示したフローチャートである。
【図6】図4のS11の処理の詳細を示したフローチャートである。
【図7】(a)は、本実施の形態におけるリンクコストの集合の初期値W0を例示した図である。(b)は、本実施の形態におけるリンクコストの集合W1〜WNの値の増加を概念的に説明した図である。(c)は、本実施の形態における全域木GXの選択処理を概念的に示した図である。
【図8】(a)は、比較例となるMRCファイル作成方法を説明した図である。(b)は、図3のルータにより作成されるMRCファイル群を例示した図である。
【図9】本実施の形態のMRCファイル作成装置の効果を説明するために引用した図である。
【図10】本実施の形態の故障復旧装置の機能ブロック図である。
【図11】比較例となるMRCファイル作成方法を説明した図である。
【図12】MRCファイルを例示した図である。
【発明を実施するための形態】
【0029】
以下、本発明を実施するための形態について説明する。まず、図1および図2を用いて本実施の形態のMRCファイルの処理手順の概要を説明する。ここでは、図1のトポロジ301のMRCファイルを作成する場合を例に説明する。このトポロジ301を構成するリンクそれぞれには、乱数により発生させたリンクコストの初期値が与えられているものとする。MRCファイル作成装置は、このトポロジ301をもとに、全域木302を作成する。なお、全域木とは、各ノード間のリンクを一部除去し、経路到達性を確保できる最低限のリンクで構成したツリートポロジである。そして、この全域木302において、末端となっているノード(リーフのノード)を、isolated node(故障ノード)とする。また、このリーフのノードに接続するリンクをrestricted link(最終ホップでのみ用いるリンク)とする。そして、この全域木302を作成するときに削除したリンクをisolated link(故障リンク)とし、図1に示すようなMRCファイル#0を作成する。このような方法によれば、前記したMRCファイルの作成条件、すなわち、前記した(条件1)MRCファイルにおいて、isolated linkを除いたリンクは、連結グラフとなること、および、(条件3)isolated nodeには少なくとも一本のrestricted linkが接続され、それ以外のリンクはisolated linkであることを満たすMRCファイルを作成することができる。
【0030】
ここで、MRCファイル作成装置は、トポロジの全域木をもとにMRCファイルを作成するので、経路到達性を確保しつつ、1つのMRCファイルが多数の故障パターンの迂回経路を網羅できる。MRCファイル作成装置は、このようにしてMRCファイルを1つ作成すると、今度は、トポロジの各リンクのリンクコストの値を変更して、別の全域木を作成する。なお、本実施の形態で用いる全域木の作成方法は、Kruskal法を用いる(石畑清、「アルゴリズムとデータ構造」p280-283、岩波書店、1991年、参照)。このKruskal法では、リンクコストの値が高いものから優先的にリンクを除去して全域木を作成する。よって、トポロジの各リンクのリンクコストの値を変更することで、異なる全域木を作成することができる。そして、MRCファイル作成装置は、作成した全域木をもとにMRCファイルを作成する。このような処理を、前記したMRCファイルの作成条件、(条件3)すべてのMRCファイルにおけるisolated nodeとisolated nodeとの和集合が、もとのトポロジに一致する、という条件を満たすまで繰り返す。
【0031】
すなわち、MRCファイル作成装置は、図2に示すように、まず、(1)入力トポロジに対し、(2)全域木を作成する。ここでの全域木の作成は、乱数により生成された入力トポロジのリンクコストの初期値をもとに行われる。作成した全域木をもとに(3)MRCファイル(MRCファイル#0)を作成する。そして、この作成したMRCファイルの情報を(A)MRCファイル作成管理情報に記録する。ここで、(A)MRCファイル作成管理情報にまだisolated linkになっていないリンク、isolated nodeになっていないノードがある。よって、MRCファイル作成装置は、(3)で、isolated linkとならなかったリンクのリンクコストの値にランダムな値を加算して、リンクコストの値を変更する。そして、(4)この変更したリンクコストの値を用いて全域木を作成し、作成した全域木をもとに、(5)MRCファイル(MRCファイル#1)を作成する。そして、この作成したMRCファイルの情報を(B)MRCファイル作成管理情報に記録する。
【0032】
ここで、(B)MRCファイル作成管理情報にはまだisolated linkになっていないリンクおよびisolated nodeになっていないノードがある。よって、MRCファイル作成装置は、さらに、(5)で、isolated linkとならなかったリンクのリンクコストの値にランダムな値を加算して、リンクコストの値を変更する。そして、(6)この変更したリンクコストの値を用いて全域木を作成し、作成した全域木をもとに(7)MRCファイル(MRCファイル#2)を作成する。この作成したMRCファイルの情報を(C)MRCファイル作成管理情報に記録する。ここで、MRCファイル作成管理情報の、すべてのリンクがisolated linkであり、すべてのノードがisolated nodeとなっていることを確認すると、処理を終了する。この後、再度乱数を発生させて各リンクのリンクコストの初期値を設定し、全域木作成と、その作成した全域木に基づくMRCファイル作成処理を所定回数繰り返す。そして、MRCファイル作成装置は、以上の処理により作成されたMRCファイル群のうち、そのファイル数が最も少ないMRCファイル群を出力する。このようにすることで、MRCファイル作成装置は、入力トポロジに対しできるだけファイル数の少ないMRCファイル群の組み合わせを発見することができる。
【0033】
<構成>
次に、図3を用いて、このようなMRCファイル作成装置の構成を説明する。ここでは、MRCファイル作成装置がネットワーク内で経路制御を行うルータ(経路制御装置)により実現される場合を例に説明する。
【0034】
図3に示すように、ルータ10の機能は、大きく入出力部11と、処理部12と、記憶部13とに分けられる。入出力部11は、他のルータ10との間でトポロジ情報131(後記)や経路情報134のもととなるデータや、他のルータ10との間のパケットの入出力を司る。処理部12は、MRCファイルの作成処理や、作成したMRCファイルに基づく経路制御等を行う。記憶部13は、MRCファイルの作成ために必要なトポロジ情報131や経路情報134を記憶する。このような入出力部11は、ネットワーク経由でパケットの送受信を行うための通信インタフェースや、入出力インタフェースから構成される。また、処理部12は、このルータ10が備えるCPU(Central Processing Unit)によるプログラム実行処理や、専用回路等により実現される。さらに、記憶部13は、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等の記憶媒体から構成される。なお、ルータ10をプログラム実行処理により実現する場合、記憶部13には、ルータ10の機能を実現するためのプログラムが格納される。
【0035】
処理部12は、MRCファイルの作成を行うMRCファイル作成処理部121と、受信したパケットの経路制御を行う経路制御部128とを備える。
【0036】
このMRCファイル作成処理部121は、リンクコスト初期値作成部122と、全域木作成部123と、MRCファイル作成部124と、リンクコスト値変更部125と、反復制御部126と、MRCファイル群出力処理部127とを備える。
【0037】
このうち、リンクコスト初期値作成部122は、乱数を発生させて、トポロジ情報131に示されるネットワークのリンクそれぞれのリンクコストの値の集合である初期値W0(WO={w01,w02,w03,…,w0X,…})を作成する。なお、このリンクコスト初期値作成部122は、この初期値W0を複数個(M個)作成する。
【0038】
全域木作成部123は、与えられたリンクコストの集合の値を用いて、Kruskal法によりトポロジ情報131に示されるトポロジの全域木を作成する。このKruskal法による全域木の作成処理は、以下の手順により行われる。
(1)グラフ(トポロジ)が与えられたとき全リンクにフラグ「0」を付与する。
(2)このグラフから、リンクコスト最小のリンクを選び、そのリンクのフラグを「1」とする。
(3)残りのフラグ「0」のリンクから、コスト最小の辺を取り出す。
(4)(3)で選んだリンクのフラグを「1」としたときに、すべてのフラグ「1」のリンクによりサイクル(ループ)ができるとき、このリンクをグラフから削除する。サイクルができないときは、このリンクのフラグを「1」とする。
(5)グラフにフラグ「1」にできるリンクがなければ、そのフラグ「1」のリンクと、全ノードにより全域木が作成される。もし、グラフにフラグ「1」にできるリンクがあれば(3)へ戻る。
以上の処理により、全域木作成部123は、トポロジ情報に示されるトポロジの全域木(スパニングツリー)を作成することができる。このKruskal法では、リンクコストの値が高いリンクが除去されやすいという特性がある。
【0039】
また、この全域木作成部123は、複数のリンクコストの集合W’1〜W’Nの入力を受け付けたときには、そのそれぞれの値を用いてN個の全域木を作成する。
【0040】
MRCファイル作成部124は、トポロジ情報131に示されるネットワークのトポロジと、全域木作成部123が作成した全域木とを比較することで、MRCファイルを作成する。このMRCファイルの作成手順は、以下の通りである(図1参照)。
(1)全域木のリーフ(leaf)、つまり、全域木の末端のノードをisolated nodeとする。例えば、図1に全域木302において、リーフはノードN3,N5,N6であるので、これらのノードをisolated nodeとする。
(2)全域木のリーフに接続するリンクをrestricted linkとする。つまり、リーフに接続するリンクは1本であるので、このリンクをrestricted linkとする。例えば、図1に全域木302において、リーフはノードN3,N5,N6であるので、これらのノードに接続するリンクをrestricted linkとする。
(3)全域木の作成によって、トポロジから削除されたリンクをisolated linkとする。例えば、トポロジ301と、全域木302とを比較して、ノードN2,N3の間のリンク、ノードN3,N4の間のリンク、ノードN5,N6の間のリンクが削除されているので、これらのリンクをisolated linkとする。
【0041】
また、図3のMRCファイル作成部124は、MRCファイルを作成するたび、そのMRCファイルにおいてisolated nodeとなったノード、isolated linkとなったリンクとを、MRCファイル作成管理情報133(詳細は後記)に記録していく。このようなMRCファイル作成管理情報133を参照することで、今まで作成したMRCファイル(MRCファイル群)により、どのノードがisolated nodeとなり、どのリンクがisolated linkとなったかが分かる。
【0042】
リンクコスト値変更部125は、Wopt(前回全域木作成に用いたリンクコストの集合)を変更した新たなリンクコストの集合W’をN個作成する。ここで、リンクコスト値変更部125は、(1)Woptに示されるリンクコストのうち、非isolated linkのリンクコストの値をランダムに増加させ、(2)この非isolated nodeの中からランダムに選択した1つのノードについて、そのノードに接続するリンクのうち1本のリンクコストの値を設定可能な最小値とし、そのノードに接続する残りのリンクのリンクコストの値を最大値とする。
【0043】
すなわち、(1)リンクコスト値変更部125は、前回全域木作成に用いたリンクコストの集合Woptを読み出すと、この値をN個コピーする。そして、そのコピーしたN個のリンクコストの集合(W1〜WN)のうち、前回作成したMRCファイルにおいて非isolated linkとなったリンクのリンクコストの値に、ランダムな値(wmin〜wmax)を加算する(後記する図7(b)参照)。ここで、非isolated linkのリンクのリンクコストの値を増加させるのは、前記したKruskal法においてリンクコストの値が高いリンクが除去されやすいからである。つまり、リンクが除去されると、MRCファイルにおいてそのリンクはisolated linkとなるので、isolated linkを増加させることができるからである。また、(2)リンクコスト値変更部125は、このN個の新たなリンクコストの集合W’それぞれについて、MRCファイルにおけるisolated node以外のノード(非isolated node)に接続するリンクを1つ選択する。そして、その選択したリンクのリンクコストを、OSPF(Open Shortest Path First)において設定可能な最小値(例えば、「1」)とする。また、その非isolated nodeに接続するリンクのうち、この最小値を設定したリンク以外のリンクコストを、OSPFにおいて設定可能な最大値(例えば、「65535」)とする。
【0044】
すなわち、リンクコスト値変更部125は、全域木作成部123が、このリンクコストに基づき全域木を作成すると、少なくとも1つの非isolated nodeをリーフとなるようにリンクコストを変更する。つまり、リンクコスト値変更部125は、MRCファイル作成部124が作成するMRCファイルにおいてisolated nodeが増加するようなリンクコストに変更する。
【0045】
反復制御部126は、前記した条件2(MRCファイルにおけるisolated nodeとisolated linkとの和集合が、トポロジ情報131に示すトポロジと一致すること)を満たすまで、リンクコスト値変更部125にリンクコスト値変更処理を実行させ、全域木作成部123に全域木作成処理を実行させ、MRCファイル作成部124にMRCファイル作成処理を実行させる。
【0046】
具体的には、反復制御部126は、全域木作成部123に、新たなリンクコストの集合W’1〜W’Nそれぞれのリンクコストの値を用いてN個の全域木を作成させる。そして、この全域木の中から、当該全域木によりMRCファイルを作成したときに、新規にisolated nodeになる数およびisolated linkになる数が最も多い全域木を選択する。そして、反復制御部126は、MRCファイル作成部124に、この選択した全域木によりMRCファイルを作成させる。ここで、新規にisolated nodeになる数およびisolated linkになる数が最も多い全域木を選択するのは、1つのファイルあたり、できるだけ多くの故障パターンの迂回経路の情報を含むMRCファイルを作成するためである。そして、反復制御部126は、MRCファイル作成管理情報133における非isolated linkおよび非isolated nodeがなくなるまで、リンクコスト値変更部125、全域木作成部123およびMRCファイル作成部124に、リンクコスト値変更処理、全域木作成処理およびMRCファイル作成処理を実行させる。つまり、MRCファイル作成管理情報133に非isolated linkまたは非isolated nodeが残っていれば、反復制御部126は、リンクコスト値変更部125に再度リンクコスト値を変更させ、全域木作成部123にこの変更後のリンクコスト値をもとに全域木を作成させ、MRCファイル作成部124にMRCファイルを作成させる。反復制御部126は、このような処理を、リンクコスト初期値作成部122が作成したリンクコストの集合の初期値WOの個数分(例えば、M回)実行させる。そして、反復制御部126は、その結果作成されたMRCファイル群のうち、最もファイル数が少ないMRCファイル群(MRCファイルのセット)を選択する。この反復制御部126の処理手順の詳細は、フローチャートを用いて後記する。
【0047】
MRCファイル群出力処理部(出力部)127は、反復制御部126が選択したMRCファイル群を記憶部13へ出力する。
【0048】
次に、経路制御部128を説明する。経路制御部128は、経路計算部129と、パケット転送部130とを備える。経路計算部129は、トポロジ情報131やMRCファイル群132に基づき、転送経路の計算を行い、経路情報134(後記)や、故障パターンごとの迂回経路情報135(後記)を作成する。例えば、経路情報134は、パケットの宛先アドレスごとに、このパケットを出力するためのインタフェースを示した情報である。また、迂回経路情報135は、故障パターンごとに、その故障パターンの故障が発生した場合における、パケットの宛先アドレスごとの、当該パケットを出力するためのインタフェースを示した情報である。
【0049】
パケット転送部130は、受信したパケットの宛先アドレスをもとに、経路情報134または迂回経路情報135を参照して、このパケットの出力インタフェースを選択し、この選択した出力インタフェースからパケットを出力する。ここで、故障発生時にはパケット転送部130は迂回経路情報135を参照して、パケットの出力インタフェースを選択するが、どの迂回経路情報135を用いればよいかは、このルータ10に入力される故障情報に基づき判断される。
【0050】
次に、記憶部13を説明する。記憶部13は、トポロジ情報131と、MRCファイル群132と、MRCファイル作成管理情報133と、経路情報134と、迂回経路情報135とを記憶する。
【0051】
トポロジ情報131は、ネットワーク内の各ノード(ルータ)の識別情報や、そのそれぞれのノードがどのリンクにより接続されているか等を示した情報である。このトポロジ情報131は、例えば、図1のトポロジ301に示すような情報である。このトポロジ情報131は、全域木の作成やMRCファイルの作成において参照される。
【0052】
MRCファイル群132は、MRCファイル群出力処理部127により出力されたMRCファイル群である。このMRCファイル群は、迂回経路情報135の作成に用いられる。
【0053】
MRCファイル作成管理情報133は、MRCファイル作成部124が作成したMRCファイルにおいて、isolated linkとなったリンク、isolated nodeとなったノードを記録した情報である(図2の(A)〜(C)に示すMRCファイル作成管理情報参照)。反復制御部126は、このMRCファイル作成管理情報133を参照することで、与えられたトポロジに対し、すべてのノード故障およびリンク故障をカバーするようなMRCファイル群を作成できたか否かを判断できる。
【0054】
経路情報134は、パケットの宛先アドレスごとに、このパケットを出力するためのインタフェースを示した情報である。また、迂回経路情報135は、故障パターンごとに、その故障パターンの故障が発生した場合における、パケットの宛先アドレスごとの、当該パケットを出力するためのインタフェースを示した情報である。
【0055】
<処理手順>
図3を参照しつつ、図4を用いてルータ10によるMRCファイル作成処理の概要を説明する。まず、図3のルータ10は、リンクコスト初期値作成部122により、リンクコストの初期値W0をM個(Mパターン)作成すると、その作成したM個の初期値WOの中から選択した初期値W0を用いてMRCファイル群を作成する(S11)。そして、この作成したMRCファイル群を記憶部13に記録する(S12)。なお、このS11におけるMRCファイル群の作成処理の詳細は後記する。次に、ルータ10の反復制御部126は、S11に示すMRCファイル群の作成処理をM回実行したか否かを判断する(S13)。つまり、作成したM個の初期値W0すべてについてMRCファイル群を作成した否かを判断し、作成したM個の初期値W0すべてについてMRCファイル群を作成したと判断したとき(S13のYes)、作成したMRCファイル群のうち、ファイル数が最も少ないMRCファイル群(MRCファイル群のセット)を選択し、記憶部13へ出力する(S14)。一方、反復制御部126がまだMRCファイル群の作成処理をM回実行していないと判断したとき(S13のNo)、S11へ戻り、MRCファイル群の作成処理を実行する。
【0056】
このようにルータ10は、M個(Mパターン)のリンクコストの集合の初期値W0それぞれについて、MRCファイル群を作成するので、様々なMRCファイル群を作成することができる。よって、ルータ10は、できるだけファイル数の少ないMRCファイル群(MRCファイルのセット)を発見しやすくなる。
【0057】
次に、図3を参照しつつ、図5および図6を用いて、図4のS11の処理の詳細を説明する。まず、図3のルータ10のリンクコスト初期値作成部122は、乱数を発生させ、リンクコストの集合の初期値W0を生成する(S21)。そして、この初期値W0を、Woptに代入し(S22)、MRCファイルの管理変数i=0とする(S23)。
【0058】
次に、ルータ10の全域木作成部123は、このWoptの値に基づき全域木を作成し、MRCファイル作成部124は、この全域木によりMRCファイルを作成し(S24)、管理変数iの値を1増加させる(S25)。作成したMRCファイルは、記憶部13の所定領域に記憶される。また、作成したMRCファイルにより新規にisolated nodeとなったノードおよびisolated linkとなったリンクは、MRCファイル作成管理情報133(図2の(A)〜(C)参照)に記録する。ここで、反復制御部126は、このMRCファイル作成管理情報133を参照して、全MRCファイルにおける非isolated nodeV’および非isolated nodeの集合であるG’=(V’,E’)を作成する(S26)。そして、このG’が空集合であれば(S27のYes)、MRCファイル群出力処理部127は全MRCファイル(MRCファイル群)を出力する(S30)。
【0059】
一方、S27において、このG’が空集合でなければ(S27のNo)、反復制御部126は、このG’に含まれるノードとリンクを、それぞれisolated node、isolated linkとして1つのMRCファイルを作成可能か否かを判断する(S28)。ここで、1つのMRCファイルを作成可能であれば(S28のYes)、MRCファイル作成部124によりMRCファイルを作成し(S29)、MRCファイル群出力処理部127は作成した全MRCファイル(MRCファイル群)を出力する(S30)。
【0060】
一方、S28において1つのMRCファイルを作成可能でなければ(S28のNo)、図6のS31へ進む。図3のリンクコスト値変更部125は、まず、Woptの値をコピーしたN個のリンクコストの集合W1〜WNを作成する(S31)。そして、リンクコスト値変更部125は、リンクコストの集合W1〜WNの中から選択したリンクコストの集合Wに対し、以下の処理を実行する。すなわち、リンクコスト値変更部125は、このリンクコストの集合Wのうち、非isolated linkのリンクコストの値をwmin〜wmaxの範囲でランダムに増加させる(S32)。
【0061】
例えば、図7(a)に示すように初期値W0が{w01,w02,w03,…,w0X,…}であった場合、リンクコスト値変更部125は、(b)に示すように、まずこの初期値WOをN個コピーし、W1〜WNを作成する。そして、そのW1〜WNの中から今回の処理の対象のWを選択し、この選択したWのリンクコストのうち、非isolated linkのリンクコストにwmin〜wminの値を加算する。例えば、w02、w0Xが非isolated linkのリンクコストである場合、W1におけるw02、w0Xの値に、wmin〜wmaxからランダムに選択した値(wa,wc)を加算する。
【0062】
図6の説明に戻る。このようにしてリンクコスト値変更部125が、初期値W0におけるリンクコストの値を増加させると、次に、リンクコスト値変更部125は、MRCファイル作成管理情報133を参照して、非isolated nodeを選択する。そして、その選択した非isolated nodeに接続するリンクに対し、1つのリンクはOSPFで設定可能な最小のリンクコスト(例えば、「1」)を設定し、残りのリンクには設定可能な最大のリンクコスト(例えば、「65535」)を設定する。これにより、全域木作成部123がこのリンクコストをもとに全域木を作成すると、選択した非isolated nodeは全域木のリーフ(図1の全域木302参照)となる。つまり、この全域木をもとにMRCファイルを作成すると、このノードはisolated nodeになるので、MRCファイル作成部124は、新規のisolated nodeを増やすようなMRCファイルを作成することができる。
【0063】
ここで、反復制御部126が、S31で作成したリンクコストの集合W1〜WNについて処理を終了していると判断したとき(S34のYes)、全域木作成部123は、S32およびS33の処理後のリンクコストの集合W1〜WNを用いて全域木G1〜GNを作成する(S35)。一方、S34において、まだリンクコストの集合W1〜WNについて処理を終了していなければ(S34のNo)、S32へ戻る。S35の後、反復制御部126は、MRCファイル作成管理情報133を参照して、全域木G1〜GNの中から、新規にisolated node、isolated linkとなる数が最も多い全域木GXを選択する(S36)。
【0064】
例えば、図7(b)に示すように、全域木作成部123は、リンクコストの集合W1〜WNに基づき、全域木G1〜GNを作成する。そして、反復制御部126は、(c)に示すようにMRCファイル作成管理情報133と、全域木G1〜GNそれぞれに基づきMRCファイルを作成したときに、新規にisolated link、isolated nodeとなる数が最も多い全域木GXを選択する(S36)。そして、反復制御部126は、この全域木GX作成のもととなったリンクコストの集合WXを、Woptに代入する(S37)。そして図5のS24へ戻る。
【0065】
ルータ10が以上のような処理を行うことで、MRCファイル1つあたりに集約できる故障パターンをできるだけ多くすることができる。よって、入力されたトポロジに対するMRCファイル数をできるだけ少なくすることができる。
【0066】
また、本実施の形態のルータ10によれば、従来技術にはない以下のような効果を得ることができる。例えば、図8(a)に示すようなトポロジにおいて、従来技術により、3つMRCファイルを作成しようすると、MRCファイルを作成できない場合もある。つまり、ノードN1,N6間のリンクをrestricted linkとし、このノードN1に接続するその他のリンクをisolated linkとし、ノードN1をisolated nodeとする(S81)。また、ノードN6,N5間のリンクをrestricted linkとし、ノードN1,N6間のリンクをisolated nodeとする(S82)。そして、ノードN5,N4間のリンクをrestricted linkとし、ノードN6,N5間のリンクをisolated nodeとする(S83)。ここで、まだすべてのノードをisolated nodeとし、すべてのリンクをisolated linkにできていない。また、目標とするMRCファイル数は「3」なので、S81で作成したMRCファイル#0に戻って処理を続ける。しかし、MRCファイル#0に対し、ノードN5,N4間のリンクを除去すると、つまりisolated linkとすると接続性(経路到達性)を確保できないので、このリンクをisolated linkにできない。すなわち、ノードN5,N4間のリンクを除去すると、ノードN6,N5間のリンクが孤立するので、前記した(条件1)MRCファイルにおいて、isolated linkを除いたリンクは、連結グラフとなることが必要である、という条件を満たすことができない。よって、与えられたトポロジに対するMRCファイルを作成できないことになる。
【0067】
一方、本実施の形態のルータ10によれば、図8(b)に示すように、(条件1)〜(条件3)を満たす3つのMRCファイル(MRCファイル#0〜#2)を作成することができる。つまり、例えば、図8(a)(b)に示すような対称性がないトポロジに対し、従来技術によりMRCファイルを作成しようとすると、故障パターン(故障による迂回経路のパターン)の集約が非効率になる。よって、目標とするMRCファイル数では、すべての故障パターンを網羅することができない場合もある。一方、本実施の形態のルータ10によれば、(1)MRCファイルにおいて故障箇所除去したトポロジを全域木により作成し、また、(2)できるだけ新規にisolated node、isolated linkを増やすようなMRCファイルを探索するという処理を行うので、MRCファイル1つあたりに含まれる故障パターンの数をできるだけ多くし、対称性がないトポロジであっても、少ないMRCファイル数で故障パターンを網羅できるようなMRCファイル群を作成することができる。
【0068】
なお、前記した実施の形態において、図3のルータ10のリンクコスト値変更部125は、W1〜WNそれぞれのリンクコストの値をランダムに増加させて新たなリンクコストの集合W1’〜WN’を作成した後、反復制御部126が、このN個の新たなリンクコストの集合W’をもとに全域木を作成し、MRCファイルを作成した場合、新規にisolated nodeになるノードがあると判断したとき、図6のS33に示す処理を省くようにしてもよい。つまり、ルータ10は、リンクコストの値をランダムに増加させることだけでも、確実に新規のisolated nodeを増やせることが分かっていれば、S33に示す処理を行わないようにしてもよい。また、リンクコスト値変更部125は、このように図6のS32に示す処理をスキップして、S33に示す処理を実行したが、このS33に示す処理の実行により新規にisolated linkとなるリンクの数が所定の閾値よりも少なかったとき、S32に示す処理を実行するようにしてもよい。
【0069】
なお、本実施の形態のMRCファイル作成装置を、図9に示す故障復旧装置40として実現するようにしてもよい。前記した実施の形態と同様の構成要素は、同じ符号を付して説明を省略する。この故障復旧装置40は、ネットワーク情報取得装置50によりネットワーク内のルータ20およびルータ20間を接続するリンクの故障を監視し、故障発生時には、ネットワーク内の各ルータ20に対し、MRCファイルに基づく迂回経路への経路変更を指示する。このようなシステムは、故障復旧装置40と、ネットワーク情報取得装置50と、複数のルータ20からなるネットワークとを含んで構成される。故障復旧装置40は、ルータ20へ経路制御を指示するコンピュータであり、例えば、PCE(Path Computation Element)により実現される。ネットワーク情報取得装置50は、ネットワーク内のルータ20やルータ20間を接続するリンクの故障等を検出すると、この故障が発生したルータ20やリンクを故障復旧装置40へ通知する。ルータ20は、この故障復旧装置40の指示に基づき経路制御を行うIPルータである。
【0070】
このような故障復旧装置40の機能は、図10に示すように、大きく入出力部41、処理部42および記憶部43に分けられる。入出力部41は、ネットワーク内のルータ20と通信を行うための通信インタフェースや、入出力インタフェースから構成される。また、処理部42は、この故障復旧装置40の備えるCPUによるプログラム実行処理や、専用回路等により実現される。さらに、記憶部43は、RAM、ROM、HDD、フラッシュメモリ等の記憶媒体から構成される。なお、故障復旧装置40の機能をプログラム実行処理により実現する場合、記憶部43には、故障復旧装置40の機能を実現するためのプログラムが格納される。
【0071】
処理部42は、図3のルータ10の経路制御部128に代えて、ネットワーク内のルータ20に対し、経路制御の指示を行う経路制御部428を備えることを特徴とする。この経路制御部428は、経路計算部129と、経路制御指示部430とを備える。この経路制御指示部430は、故障発生前は、経路情報134に示される経路情報をもとにルータ20に対し経路制御を指示する。一方、図9のネットワーク情報取得装置50経由で故障情報を受信したときには、迂回経路情報135を参照して、故障したルータ20やリンクを避けるような迂回経路をルータ20に対し指示する。なお、この故障発生時にどの迂回経路情報135を用いればよいかは、故障復旧装置40に入力される故障情報に基づき判断される。このようなMRCファイル作成部124を備えることで、故障復旧装置40の保持するMRCファイル数、迂回経路情報をできるだけ削減できる。
【0072】
本実施の形態に係るルータ10および故障復旧装置40を実現するプログラムは、コンピュータによる読み取り可能な記録媒体(CD−ROM等)に記憶して提供することが可能である。また、そのプログラムを、インターネット等のネットワークを通して提供することも可能である。
【符号の説明】
【0073】
10,20 ルータ
11,41 入出力部
12,42 処理部
13,43 記憶部
40 故障復旧装置
50 ネットワーク情報取得装置
121 MRCファイル作成処理部
122 リンクコスト初期値作成部
123 全域木作成部
124 MRCファイル作成部
125 リンクコスト値変更部
126 反復制御部
127 MRCファイル群出力処理部
128,428 経路制御部
129 経路計算部
130 パケット転送部
131 トポロジ情報
132 MRCファイル群
133 MRCファイル作成管理情報
134 経路情報
135 迂回経路情報
430 経路制御指示部

【特許請求の範囲】
【請求項1】
ネットワークにおけるノード故障発生時およびリンク故障発生時の迂回経路を示したMRC(Multiple Routing Configurations)ファイルを作成するMRCファイル作成装置であって、
前記ネットワークのトポロジを示したトポロジ情報と、そのトポロジに対し、今まで作成されたMRCファイルにおいてisolated nodeとなったノードおよびisolated linkとなったリンクを示したMRCファイル作成管理情報とを記憶する記憶部と、
乱数を用いて、前記トポロジにおけるリンクそれぞれのリンクコストの初期値の集合である初期値W0を生成するリンクコスト初期値作成部と、
前記生成した初期値W0を用いて、Kruskal法により前記トポロジのリンクの少なくとも一部を削除し、前記トポロジの全域木を作成する全域木作成部と、
前記トポロジを参照して、前記全域木作成部により作成された全域木における末端のノードを、前記MRCファイルにおけるisolated nodeとし、この末端のノードに接続するリンクをrestricted linkとし、前記全域木の作成において削除されたリンクをisolated linkとして、前記トポロジのMRCファイルを作成し、その作成したMRCファイルにおいて、isolated nodeとなったノードおよびisolated linkとなったリンクを前記MRCファイル管理情報に記録していくMRCファイル作成部と、
前記MRCファイル作成部により、前記MRCファイルが作成された後、前記MRCファイルにおけるisolated link以外のリンクのリンクコストそれぞれの値に、ランダムな値を加算した新たなリンクコストの集合W’をN個作成するリンクコスト値変更部と、
前記全域木作成部、前記MRCファイル作成部およびリンクコスト値変更部の制御を行う反復制御部と、
前記MRCファイル作成部により作成されたMRCファイル群を出力する出力部とを備え、
前記反復制御部は、
(1)前記全域木作成部に、前記新たなリンクコストの集合W’1〜W’Nそれぞれのリンクコストの値を用いて全域木を作成させ、この作成させた全域木のうち、当該全域木によりMRCファイルを作成した場合、前記MRCファイル管理情報に示される今まで作成したMRCファイルに対し、新規に前記isolated nodeになる数およびisolated linkになる数が最も多い全域木を選択する処理と、
(2)前記MRCファイル作成部に、前記選択された全域木によりMRCファイルを作成させる処理と、
(3)前記リンクコスト値変更部に、前記MRCファイルにおけるisolated link以外のリンクのリンクコストそれぞれの値に、ランダムな値を加算した新たなリンクコストの集合W’をN個作成させる処理とを
前記MRCファイル作成管理情報において、前記トポロジに示されるすべてのノードがisolated nodeとなり、かつ、すべてのリンクがisolated linkとなるまで実行させることを特徴とするMRCファイル作成装置。
【請求項2】
前記リンクコスト値変更部は、
(1)前記MRCファイルにおけるisolated link以外のリンクのリンクコストそれぞれに、ランダムな値を加算して新たなリンクコストの集合W’をN個作成した後、
(2)前記作成したN個の新たなリンクコストの集合W’それぞれについて、前記MRCファイルにおけるisolated node以外のノードに接続するリンクのリンクコストを1つ選択し、その選択したリンクコストを、OSPF(Open Shortest Path First)において設定可能な最小値に変更し、前記isolated node以外のノードに接続するリンクのリンクコストのうち、前記選択したリンクコスト以外のリンクのリンクコストを、OSPFにおいて設定可能な最大値に変更することを特徴とする請求項1に記載のMRCファイル作成装置。
【請求項3】
前記リンクコスト初期値作成部は、
乱数を用いて、前記初期値WOを複数個生成し、
前記反復制御部は、
前記生成した初期値W0をもとに、前記全域木作成部、前記MRCファイル作成部および前記リンクコスト値変更部によりMRCファイル群を作成させる処理を、前記生成した初期値W0の個数分実行させ、
前記作成したMRCファイル群のうち、最もファイル数が少ないMRCファイル群を選択し、
前記出力部は、前記選択されたMRCファイル群を出力することを特徴とする請求項1または請求項2に記載のMRCファイル作成装置。
【請求項4】
前記反復制御部は、
(1)前記MRCファイルにおけるisolated link以外のリンクのリンクコストそれぞれに、ランダムな値を加算して作成したN個の新たなリンクコストの集合W’をもとに全域木を作成し、この作成した全域木をもとにMRCファイルを作成した場合、そのいずれの全域木によっても、前記MRCファイル作成管理情報に示される今まで作成したMRCファイルに対し、新規にisolated nodeになるノードを増やすMRCファイルを作成できなかったと判断したとき、
(2)前記リンクコスト値変更部に、前記作成したN個の新たなリンクコストの集合W’それぞれについて、前記MRCファイルにおけるisolated node以外のノードに接続するリンクのリンクコストを1つ選択し、その選択したリンクコストを、OSPFにおいて設定可能な最小値に変更し、前記isolated node以外のノードに接続するリンクのリンクコストのうち、前記選択したリンクコスト以外のリンクのリンクコストを、OSPFにおいて設定可能な最大値に変更する処理を実行させることを特徴とする請求項1または請求項2に記載のMRCファイル作成装置。
【請求項5】
請求項1から請求項4のいずれか1項に記載のMRCファイル作成装置により作成されたMRCファイル群を用いて、前記ネットワーク内のノード故障またはリンク故障発生時の経路制御を行う経路制御装置。
【請求項6】
ネットワークにおけるノード故障発生時およびリンク故障発生時の迂回経路を示したMRCファイルを作成し、前記ネットワークのトポロジを示したトポロジ情報と、そのトポロジに対し、今まで作成されたMRCファイルにおいてisolated nodeとなったノードおよびisolated linkとなったリンクを示したMRCファイル作成管理情報とを記憶する記憶部を備えるMRCファイル作成装置が、
乱数を用いて、前記トポロジにおけるリンクそれぞれのリンクコストの値の集合である初期値W0を生成するステップと、
前記リンクコストの集合の初期値W0を用いて、Kruskal法により前記トポロジのリンクの少なくとも一部を削除し、前記トポロジの全域木を作成するステップと、
前記トポロジを参照して、前記全域木作成部により作成された全域木における末端のノードを、前記MRCファイルにおけるisolated nodeとし、この末端のノードに接続するリンクをrestricted linkとし、前記全域木の作成において削除されたリンクをisolated linkとして、前記トポロジのMRCファイルを作成し、その作成したMRCファイルにおいて、isolated nodeとなったノードおよびisolated linkとなったリンクを前記MRCファイル管理情報に記録していくステップと、
前記MRCファイルが作成された後、前記MRCファイルにおけるisolated link以外のリンクのリンクコストそれぞれの値に、ランダムな値を加算した新たなリンクコストの集合W’をN個作成するステップと、
前記作成されたMRCファイル群を出力するステップとを実行し、
前記MRCファイル作成装置が、
(1)前記新たなリンクコストの集合W’1〜W’Nそれぞれのリンクコストの値を用いてN個の全域木を作成し、この作成した全域木のうち、当該全域木によりMRCファイルを作成した場合、前記MRCファイル管理情報に示される今まで作成したMRCファイルに対し、新規に前記isolated nodeになる数およびisolated linkになる数が最も多い全域木を選択するステップと、
(2)前記選択した全域木によりMRCファイルを作成するステップと、
(3)前記MRCファイルにおけるisolated link以外のリンクのリンクコストそれぞれの値に、ランダムな値を加算した新たなリンクコストの集合W’をN個作成するステップとを、
前記MRCファイル作成管理情報において、前記トポロジに示されるすべてのノードがisolated nodeとなり、かつ、すべてのリンクがisolated linkとなるまで実行することを特徴とするMRCファイル作成方法。
【請求項7】
請求項6に記載のMRCファイル作成方法をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2010−193322(P2010−193322A)
【公開日】平成22年9月2日(2010.9.2)
【国際特許分類】
【出願番号】特願2009−37244(P2009−37244)
【出願日】平成21年2月19日(2009.2.19)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】