JP2011199383A - 閉路検出方法、閉路検出システム、及び閉路検出用プログラム - Google Patents
閉路検出方法、閉路検出システム、及び閉路検出用プログラム Download PDFInfo
- Publication number
- JP2011199383A JP2011199383A JP2010061117A JP2010061117A JP2011199383A JP 2011199383 A JP2011199383 A JP 2011199383A JP 2010061117 A JP2010061117 A JP 2010061117A JP 2010061117 A JP2010061117 A JP 2010061117A JP 2011199383 A JP2011199383 A JP 2011199383A
- Authority
- JP
- Japan
- Prior art keywords
- node
- router
- communication network
- euler characteristic
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】通信ネットワーク内のノードがマイクロループという意味での閉路を自律分散的かつ簡易に検出できるようにする。
【解決手段】本発明による閉路検出方法は、ノードとノード間を接続するリンクとを含む通信ネットワークにおいて、該通信ネットワーク内のあるノードから他のノードに情報を伝達するための経路を決定した後、前記通信ネットワークに含まれる所定のノードが、前記通信ネットワークを所定個のサブネットワークに分割し、分割された前記サブネットワークに含まれるノードが、前記サブネットワークのグラフとしての構造の1次元複体までのオイラー標数を求め、前記ノードが、求めた前記オイラー標数に基づいて、前記サブネットワーク内に閉路が含まれるか否かを判断することを特徴とする。
【選択図】図2
【解決手段】本発明による閉路検出方法は、ノードとノード間を接続するリンクとを含む通信ネットワークにおいて、該通信ネットワーク内のあるノードから他のノードに情報を伝達するための経路を決定した後、前記通信ネットワークに含まれる所定のノードが、前記通信ネットワークを所定個のサブネットワークに分割し、分割された前記サブネットワークに含まれるノードが、前記サブネットワークのグラフとしての構造の1次元複体までのオイラー標数を求め、前記ノードが、求めた前記オイラー標数に基づいて、前記サブネットワーク内に閉路が含まれるか否かを判断することを特徴とする。
【選択図】図2
Description
本発明は、通信ネットワーク内に発生する閉路を検出する閉路検出方法、閉路検出システム、及び閉路検出用プログラムに関する。
通信ネットワーク内における閉路を検出する関連技術が、例えば、非特許文献1に記載されている。オリジナルのRIPを用いた経路制御を行う場合、通常30秒毎に経路を一度に更新する。そのため、通信ネットワーク内にいわゆるマイクロループが発生し得る。非特許文献1に記載された関連技術では、30秒毎に経路を更新することをやめて、経路に変更があった場合にのみ経路更新を行うよう設定することで、通信ネットワーク内におけるループの発生そのものを防いでいる。
また、通信ネットワーク内における閉路を検出する他の関連技術が、例えば、非特許文献2に記載されている。非特許文献2に記載された関連技術(Split Horizon)では、経路情報を受信したインターフェイスからは、その経路情報を送信しないように制御することによって、通信ネットワーク内における閉路の発生そのものを防いでいる。また、非特許文献2には、さらに他の関連技術(Split Horizon with Poisoned Reverse)として、経路情報を受信したインターフェイスに対して、その経路情報のメトリックを16(無限大)として送信することで、通信ネットワーク内における閉路の発生そのものを防ぐことが記載されている。
また、通信ネットワーク内における閉路を検出するさらに他の関連技術が、例えば、非特許文献3に記載されている。非特許文献3には、通信ネットワークを扱う最大の学会であるSIGCOMMにおいて、2007年開催に提案されたFCP(Failure Carrying Packets)と呼ばれる技術が記載されている。非特許文献3に記載されたFCPは、ある特別なノードが経路表を管理作成し、通信ネットワーク内の全てのノードに配付するという中央集権型手法である。非特許文献3に記載された関連技術を用いれば、一意に経路を決めるので、いわゆるマイクロループの意味での閉路そのものが通信ネットワーク内に発生しないようにすることができる。
また、通信ネットワーク内における閉路を検出するさらに他の関連技術が、例えば、非特許文献4に記載されている。非特許文献4には、インターネットの実効的な規格化団体であるIETFにおけるIGP Microloop Analysis & Minimization と呼ばれるサブワーキンググループにおいて提案された技術が記載されている。非特許文献4に記載された関連技術では、PLSN(Path Locking via Safe Neighbors )とIPFRR(IP Fast ReRoute )とを組み合わせた手法を用いる。
ここで、IPFRRとは、ノード/リンク故障時の迂回経路の決定方法に関する提案の総称である。この非特許文献4に記載された手法では、以下の手順により、いわゆるマイクロループの意味での閉路を防いでいる。
(1)各ノードは、経路再計算で求められた、主隣接次HOPノードの安全性を評価する。ここで、主隣接次HOPノードとは、あるノードに直接隣接するノードのうち、経路表に書かれているノード(つまり、宛先までのリンクコストが最小になるノード)のことである。
(2)該主隣接次HOPノードが安全であれば、そのノードを次HOPノードとして用いる。
(3)該主隣接次HOPノードが安全でなければ、以下のいずれかの処理を行う。
(あ)主隣接次HOPノード以外の副隣接次ノードがあれば、その副隣接次ノードを新しい安全な主隣接次HOPノードが見つかるまで用いる。ここで、副隣接次HOPノードとは、あるノードに直接隣接するノードのうち、経路表に書かれていないノード(つまり、宛先までのリンクコストが最小ではないが、隣接しているノード)のことである。
(い)安全な隣接HOPノードが見つからなければ(副隣接次ノードもなければ)、これまで用いてきた主隣接次HOPノードを新しい安全な主隣接次HOPノードが見つかるまで用いる
(あ)主隣接次HOPノード以外の副隣接次ノードがあれば、その副隣接次ノードを新しい安全な主隣接次HOPノードが見つかるまで用いる。ここで、副隣接次HOPノードとは、あるノードに直接隣接するノードのうち、経路表に書かれていないノード(つまり、宛先までのリンクコストが最小ではないが、隣接しているノード)のことである。
(い)安全な隣接HOPノードが見つからなければ(副隣接次ノードもなければ)、これまで用いてきた主隣接次HOPノードを新しい安全な主隣接次HOPノードが見つかるまで用いる
なお、上記でいう「安全性」とは、経路再計算完了後、あるノードSが任意の宛先ノードへの次HOPノードとしてノードNに経路を変更するためのノードNの条件が、次の条件を満たすことを意味する。すなわち、ノードNが、経路再計算前の経路でノードSにとってループが無いノードであって、かつ経路再計算完了後の経路表でノードNが自ノードより、下流にいるという条件を満たしていることを意味する。
Protocol Analysis for Triggered RIP(Routing Information Protocol),[平成22年3月12日検索],インターネット<URL: http://tools.ietf.org/html/rfc2092>
Split Horizon ,[平成22年3月12日検索],インターネット<URL:http://tools.ietf.org/html/rfc2453>
K. Lakshminarayanan, M. Caesar, M. Rangan, T. Anderson, S. Shenker, and I. Stoica, "Achieving Convergence-free routing using failure-carrying Packets.", In SIGCOMM, 2007, p241-252.
Analysis and Minimization of Microloops in Link-state Routing Protocols,[平成22年3月12日検索],インターネット<URL:https://tools.ietf.org/html/draft-ietf-rtgwg-microloop-analysis-01>
まず、通信ネットワークにおいて、経路計算方法の代表的な手法の1つであるOSPF(Open Shortest Path First)を用いて経路再計算を行う場合に、どのようにしてマイクロループが発生するかを説明する。OSPFを用いた経路計算は「Dijkstraアルゴリズム」に従っており、各ノードが自ノードiと通信ネットワーク内の全てのノードjとに対して、両者間のリンクi−jのコストdijが最小となるような経路を計算する。そして、自ノードiをルートとする全域木をつくり、その全域木に基づいて経路表をつくる。この経路表に従って、ノードiは通信ネットワーク内の任意の宛先に情報を届けることが可能となる。
図5は、通信ネットワークの構成例を示す説明図である。このうち、図5(a)は、通信ネットワークが正常に動作している場合を示している。また、図5(b)は、通信ネットワーク内に障害(故障)が発生した場合を示している。また、図5において、各破線7は物理リングを示しており、各物理リンク7に付随して示されている括弧内の数字は、その物理リンク7のコストを示している。また、図5において、各矢印8は、そのようなコスト条件下で、各ノードが自ノードを送信元としてノードAに情報を伝送する場合の情報の流れ(すなわち、論理リンク)を示している。
例えば、ノードBに着目すると、ノードBからノードAに情報を送るための最小コスト経路がB→C→Aであることが経路表に書かれているため、ノードBは、ノードCに情報を送る。そして、ノードCは、自ノードの経路表を見て、ノードBから送られてきた情報がノードA宛の情報であるので、その情報をノードAに送る。また、他のノードC,D,Eも同様の処理に従って情報をノードAに送る。
OSPFでは、一定間隔で、リンクやノードが故障していないか否かを調べるための特殊なパケットをノード間でやり取りしている。そのため、もしノード又はリンクに故障が発生すれば、そのノード又はリンクに直接つながっているノードが、どのノード/リンクが故障したかを示す情報をアラームパケットに載せて、隣接ノードに送る。このアラームパケットは、同様にして、他のノードに次々と伝送される。
図5(b)に示すように、リンクB−Cが故障40により使用不能になったとする。この場合、ノードBは、リンクB−Cが故障したことを検出すると、アラームパケットをノードDに送るとともに、全ての宛先ノードへの経路再計算を開始する。そのアラームパケットを受信したノードDは、そのアラームパケットを隣接するノードEに送る。このようにして、リンクB−Cの故障は、時間遅れを伴いながら、各ノードに伝えられる。
ここで、ノードDに着目すると、ノードBがリンクB−Cの故障40を検出して、アラームパケットをノードDに送り、そのアラームパケットをノードDが受信して初めて、経路再計算を行うことになる。そのため、その故障が発生してから経路再計算を開始するまでの遷移過程においては、ノードDは、ノードA宛の情報を故障前と同じくノードBに送ってしまう。しかし、ノードBはリンクB−Cが使えないことを既に知っているため、その情報をノードDに送り返してしまう。つまり、D→B→Dという狭い領域内で閉路(いわゆるマイクロループ)が発生してしまう。
上記の閉路はノードDが経路再計算を開始するまで続いてしまい、情報の輻輳を加速的に増大させ、その結果、最悪の場合ノードB及びノードDがともにダウンしてしまう。一方、経路再計算が始まれば、経路再計算が完了するまでに送られてきた情報は全て破棄されてしまうため、多大な情報損失が発生することになる。
非特許文献1〜3には、いずれもループの発生そのものを防ぐ関連技術が記載されており、非特許文献1〜3に記載された関連技術を用いれば、経路が収束した時点での通信ネットワーク内のループの発生をある程度回避可能である。しかし、非特許文献1〜3には、いずれも、いわゆるマイクロループという意味での閉路の発生を防止することに関しては何も言及されていない。また、非特許文献4に記載された関連技術を用いる場合、マイクロループという意味での閉路検出を行うためには、各経路制御手法で用いられている経路表を見なければならず、より自立分散的かつ簡易に閉路を検出できるようにすることが望まれる。
そこで、本発明は、通信ネットワーク内のノードがマイクロループという意味での閉路を自律分散的かつ簡易に検出できる閉路検出方法、閉路検出システム、及び閉路検出用プログラムを提供することを目的とする。
本発明による閉路検出方法は、ノードとノード間を接続するリンクとを含む通信ネットワークにおいて、該通信ネットワーク内のあるノードから他のノードに情報を伝達するための経路を決定した後、通信ネットワークに含まれる所定のノードが、通信ネットワークを所定個のサブネットワークに分割し、分割されたサブネットワークに含まれるノードが、サブネットワークのグラフとしての構造の1次元複体までのオイラー標数を求め、ノードが、求めたオイラー標数に基づいて、サブネットワーク内に閉路が含まれるか否かを判断することを特徴とする。
本発明による閉路検出システムは、ノードとノード間を接続するリンクとを含む通信ネットワークにおいて、該通信ネットワーク内のあるノードから他のノードに情報を伝達するための経路が決定された後、通信ネットワークを所定個のサブネットワークに分割するネットワーク分割手段と、サブネットワークのグラフとしての構造の1次元複体までのオイラー標数を求めるオイラー標数算出手段と、オイラー標数算出手段が求めたオイラー標数に基づいて、サブネットワーク内に閉路が含まれるか否かを判断する閉路判断手段とを備えたことを特徴とする。
本発明による閉路検出用プログラムは、コンピュータに、ノードとノード間を接続するリンクとを含む通信ネットワークにおいて、該通信ネットワーク内のあるノードから他のノードに情報を伝達するための経路が決定された後、通信ネットワークを所定個のサブネットワークに分割する処理と、サブネットワークのグラフとしての構造の1次元複体までのオイラー標数を求める処理と、求めたオイラー標数に基づいて、サブネットワーク内に閉路が含まれるか否かを判断する処理とを実行させるためのものである。
本発明によれば、通信ネットワーク内のノードがマイクロループという意味での閉路を自律分散的かつ簡易に検出することができる。
以下、本発明の実施形態を図面を参照して説明する。まず、本発明による閉路検出システムの概要について説明する。通信ネットワーク等のようにノードとリンクとで構成され、情報等をある送信元からある宛先の送信先に対して送信するための経路制御を行うネットワークにおいて、何らかの故障や障害等により経路を再計算しなければならなくなる場合がある。そのような場合に、その経路再計算が全てのノードにおいて完了するまでの遷移過程において、マイクロループという意味での閉路が発生し、その結果、情報損失や情報の輻輳が引き起こされるという問題がある。本発明は、マイクロループという意味での閉路を各ノードで自律分散的かつ簡易に検出する閉路検出方法に関する。
まず、閉路を自律分散的かつ簡易に検出できるようにするために、閉路検出システムは、グラフの連結性を理解する指標として知られているオイラー標数を用いる。この場合、1次元複体(つまり、点と線分によって構成されるグラフについてのオイラー標数)は、グラフのノード集合をVとし、リンク集合をEとし、それぞれの濃度(要素数)をv,eとすると、次の式(1)で求められる。
オイラー標数=v−e ・・・式(1)
従って、グラフが木構造である場合には、オイラー標数は必ず“1”になり、閉路を含む場合には、オイラー標数は“0”以下になる。そのため、閉路検出システムは、通信ネットワークについてオイラー標数を求め、求めたオイラー標数の値が0以下であるか否かを判定することによって、通信ネットワーク内に閉路が発生しているか否かを判定できる。
既存の経路制御手法を用いて経路制御を行う場合には、閉路の発生を防ぎ、かつ任意の宛先までの情報の到達性を重複無く実現するために、木構造の経路表を作成するので、オイラー標数をマイクロループという意味での閉路検出に適用することは効果的である。
なお、上記に説明したオイラー標数は、例えば、文献A(瀬山士郎(著),“トポロジー:柔らかい幾何学”,日本評論社,増補版,2003年11月)に記載されている。
また、閉路検出システムにおいて、さらに、マイクロループという意味での閉路検出を行う時間を短縮できるようにすることが望ましい。そのため、閉路検出システムは、ネットワーク階層以外の階層であって、かつ通信ネットワークNW内の様々な情報を入手することができるプロトコルをネットワーク構造の検出のために用いることで、マイクロループという意味での閉路の発生時間を可能な限り低減する。なお、マイクロループという意味での閉路検出は、ネットワーク構造の検出の一部として実行される。
以下、閉路検出システムの処理手順の概要について説明する。
(手順1)まず、閉路検出システムにおいて、通信ネットワーク内の各ノードは、常に適当な時間間隔を通信ネットワーク内で統一的に、あるいは各ノードが自律分散的に設定する。また、各ノードは、自身に論理リンクで接続されている全ての方向のリンクについて、何HOP先のノードの論理リンク情報を得るかを自律分散的に決定する。そして、各ノードは、そのようにして得たノード集合Vを自身のもつ記憶領域に記憶させる。ここで、各方向によって何HOP先のノードまでの論理リンク情報を得るかは同じであってもよいし、異なっていてもよい。なお、論理リンクとは、通信ネットワークが用いている経路制御手法によって決定されたリンクであって、あるノードからその他の全てのノードに情報を送信するための経路を構成するリンクのことである。
(手順2)次に、通信ネットワーク内の各ノードは、ネットワーク階層以外の階層であって、かつ通信ネットワーク内の様々な情報を入手することができるプロトコルを用いて、次の処理を行う。すなわち、各ノードは、常に適当な時間間隔で、上記の(手順1)で決定したノード集合Vに含まれる、自身を除く他の全てのノードに対して、パケットを送出(送信)する。このパケットは、ノード情報(他の各ノードと論理リンクで接続されていて、かつノード集合Vに含まれるノード数)及び論理リンク情報(他の各ノードのもつ論理リンクの両端のルータ番号、向き及び本数)を要求するためのものである。そして、各ノードは、その送信したパケットに対して、各相手ノードから論理リンク情報を受け取る(受信する)。
(手順3)次に、各ノードは、ノード集合Vで得られるノード数と上記の(手順2)で得られたリンク情報とに基づいて、オイラー標数を計算する。そして、各ノードは、求めたオイラー標数に基づいて、その限定された通信ネットワークにおけるトポロジーが木構造であるのか、マイクロループという意味での閉路を含む状態であるかを判定する。つまり、各ノードは、オイラー標数が“1”であるのか、オイラー標数が“0”以下であるのか、を求める。
(手順4)そして、各ノードは、マイクロループという意味での閉路が見つかった場合、その通信ネットワークで用いている経路制御手段(例えば、所定のノードや管理サーバ)に通知する。
実施形態1.
次に、本発明の第1の実施形態について図面を参照して説明する。図1は、本発明による閉路検出方法を用いた通信ネットワークの必要最小のネットワーク構成の例を示す構成図である。図1に示すように、本実施形態では、一例として、通信ネットワークが2つのルータ1A,1Bを含む場合について説明する。なお、通信ネットワークは、3以上のルータを含んでいてもよい。なお、本実施形態において、閉路検出システムは、2つのルータ1A,1Bを含む通信ネットワークによって実現される。また、本実施形態において、ノードは、ルータ1A,1Bによって実現される。
次に、本発明の第1の実施形態について図面を参照して説明する。図1は、本発明による閉路検出方法を用いた通信ネットワークの必要最小のネットワーク構成の例を示す構成図である。図1に示すように、本実施形態では、一例として、通信ネットワークが2つのルータ1A,1Bを含む場合について説明する。なお、通信ネットワークは、3以上のルータを含んでいてもよい。なお、本実施形態において、閉路検出システムは、2つのルータ1A,1Bを含む通信ネットワークによって実現される。また、本実施形態において、ノードは、ルータ1A,1Bによって実現される。
図1に示すように、本実施形態では、2個のルータ1A,1B間には、物理リンク7が1本張られている。また、ルータ1A,1B同士は、通信ネットワーク内の各ノードが論理リンク数を取得するための手法として、既存手法であるSNMP(Simple Network Management )プロトコルを用いて、論理リンク数の情報を取得(他のノードから受信)する。
なお、上記に示したSNMPは、例えば、文献B(インターネット<URL:http://www.ietf.org/rfc/rfc1157.txt>,<URL:http://www.ietf.org/rfc/rfc1901.txt>,<URL:http://www.ietf.org/rfc/rfc2571.txt>)に記載されている。
また、通信ネットワークは、経路制御手法としてOSPFを用いて経路制御を行うものとする。また、図1に示すように、OSPFを用いて左側のルータ1Aから右側のルータ1Bの向きに論理リンク8が張られているものとする。論理リンク8とは、すなわち、図1に示す矢印の向きに従って、各ルータ1A,1Bが情報を送信する経路を構成するリンクのことである。
また、通信ネットワークにおいて、ノードに関する様々な情報及び論理リンクに関する様々な情報は、通信ネットワーク内に存在するルータや物理/論理リンク等に関する様々な情報を保持するMIB−2と呼ばれるデータベース5A,5Bに通常蓄積されている。なお、MIB−2と呼ばれるデータベース5A,5Bは、図1に示すように、具体的には、各ルータ1A,1Bが備える。
なお、上記に示したMIB−2は、例えば、文献C(インターネット<URL:http://www.ietf.org/rfc/rfc1155.txt>,<URL:http://www.ietf.org/rfc/rfc1157.txt>,<URL:http://www.ietf.org/rfc/rfc1213.txt>)に記載されている。
本実施形態では、データベース5A,5Bが記憶するMIB−2情報のうち、ノード情報及び論理リンク情報は、ネットワーク階層におけるトポロジー確認及び更新パケット(OSPFの場合、Helloパケット)の送信間隔よりも十分に短い時間間隔の範囲で、定期的、不定期又は何らかの更新通知情報に基づいて更新される。なお、ノード情報とは、そのノード自身と論理リンクで接続されているノード数を示す情報である。また、論理リンク情報は、そのノード自身がもつ論理リンクの両端のルータ番号、向き及び本数を示す情報である。
以上に説明したように、本実施形態では、既存の通信ネットワークで既に用いられている手法を用いた経路制御が行われ、ルータ1A,1Bが構成されている。
次に、各ルータ1A,1Bの構成について説明する。なお、以下では、一例として、2つのルータのうちのルータ1Aの構成について説明するが、ルータ1Bの構成も同様であるので、説明を省略する。
図1に示すように、ルータ1Aは、通信部2A、制御部3A、計算部4A、データベース5A、及び記憶部6Aを含む。
通信部2Aは、制御部3Aの制御に従って、物理リンク7を介して、ルータ1Bと各種情報を送受信する機能を備える。
制御部3Aは、プログラム制御により動作し、ルータ情報(ノード情報)及び論理リンク情報を、SNMPを用いて取得するための各種処理を実行する機能を備える。具体的には、制御部3Aは、通信部2Aを用いて、ルータ情報及び論理リンク情報を要求するためのパケットを、物理リンク7を介してルータ1Bに送信する。ルータ情報及び論理リンク情報をルータ1Bから受信する。逆に、制御部3Aは、ルータ1Bからルータ情報及び論理リンク情報を要求するためのパケットを受信した場合には、データベース5AからMIB−2情報としてのルータ情報(ノード情報)及び論理リンク情報を抽出する。そして、制御部3Aは、抽出したルータ情報及び論理リンク情報を、通信部2Aを用いて、物理リンク7を介してルータ1Bに送信する。
計算部4Aは、制御部3Aが取得したルータ数(ルータ情報)及び論理リンク数(論理リンク情報)に基づいて、オイラー標数を計算する機能を備える。また、計算部4Aは、算出したオイラー標数を記憶部6Aに記憶させる機能を備える。なお、計算部4Aは、オイラー標数を算出するための独立の処理回路として実現されてもよいし、制御部3Aがプログラムに従って処理を実行することによって実現されてもよい。
データベース5Aは、具体的には、ルータ1Aが備える磁気ディスク装置やメモリ等の記憶装置によって実現される。データベース5Aは、MIB−2情報として、例えば、ノード情報や論理リンク情報を記憶する。
記憶部6Aは、具体的には、ルータ1Aが備える磁気ディスク装置やメモリ等の記憶装置によって実現される。記憶部6Aは、計算部4Aによるオイラー標数の計算結果を蓄積する。
次に、本発明による閉路検出システムの機能構成について説明する。図2は、閉路検出システムの機能構成例を示すブロック図である。図2に示すように、閉路検出システムは、ネットワーク分割手段11と、オイラー標数算出手段12と、閉路判断手段13とを含む。
ネットワーク分割手段11は、具体的には、通信ネットワーク内の所定のノード(ルータ)が備えるプログラムに従って動作する制御部によって実現される。ネットワーク分割手段11は、ノードとノード間を接続するリンクとを含む通信ネットワークにおいて、通信ネットワーク内のあるノードから他のノードに情報を伝達するための経路が決定された後、通信ネットワークを所定個のサブネットワークに分割する機能を備える。
オイラー標数算出手段12は、具体的には、通信ネットワーク内の各ノード(ルータ)が備えるプログラムに従って動作する制御部によって実現される。なお、オイラー標数算出手段12を、通信ネットワーク内の全てのノード(ルータ)が備えるのではなく、通信ネットワーク内の所定個数のノード(ルータ)が備えるようにしてもよい。オイラー標数算出手段12は、サブネットワークのグラフとしての構造の1次元複体までのオイラー標数を求める機能を備える。具体的には、また、オイラー標数算出手段12は、サブネットワークに含まれるノード数をNとしたときに、サブネットワークに含まれるノードを起点として、最大でN−1ホップ先までのノード集合VNと、両端ノードがノード集合VNに含まれるリンクとについて、1次元複体までのオイラー標数を求める。
閉路判断手段13は、具体的には、通信ネットワーク内の各ノード(ルータ)が備えるプログラムに従って動作する制御部によって実現される。なお、閉路判断手段13を、通信ネットワーク内の全てのノード(ルータ)が備えるのではなく、通信ネットワーク内の所定個数のノード(ルータ)が備えるようにしてもよい。閉路判断手段13は、オイラー標数算出手段12が求めたオイラー標数に基づいて、サブネットワーク内に閉路が含まれるか否かを判断する機能を備える。具体的には、閉路判断手段13は、求めたオイラー標数の値が1である場合には、サブネットワーク内に閉路が含まれないと判断する。また、閉路判断手段13は、求めたオイラー標数の値が0以下である場合には、サブネットワーク内に閉路が含まれると判断する。
また、通信ネットワーク内のノード(ルータ)は、サブネットワークについての1次元複体までのオイラー標数の値、サブネットワーク内での閉路の存在の有無、及びサブネットワーク内での閉路の存在箇所を、通信ネットワーク内で経路制御を行う所定の経路制御手段(例えば、所定のノードや管理サーバ)に通知する機能を備える。
また、本実施形態において、通信ネットワークは、同じ大きさのサブネットワークに分割され、又は異なる大きさのサブネットワークに分割されていてもよい。
また、本実施形態において、通信ネットワークは、各サブネットワークが互いに重なるように分割され、又は各サブネットワークが互いに重ならないように分割されていてもよい。
また、本実施形態において、通信ネットワーク内の各ノードは、オイラー標数を求めるために必要な情報の取得間隔を、ノード間で統一的に決定する機能を備える。また、通信ネットワーク内の各ノードは、オイラー標数を求めるために必要な情報の取得間隔を、自律分散的に個々に決定するようにしてもよい。
また、本実施形態において、通信ネットワーク内のノードは、オイラー標数の算出結果を、所定の記憶領域(例えば、記憶部6A,6B)に蓄積する機能を備える。
また、本実施形態において、通信ネットワーク内のノードは、オイラー標数を求めるために用いる通信手段として、SNMPに従って通信を行う通信手段を用いる。
なお、本実施形態において、ルータ1A,1Bの記憶装置は、通信ネットワーク内におけるマイクロループ等の閉路を検出するための各種プログラムを記憶している。例えば、ルータ1A,1Bの記憶装置は、コンピュータに、ノードとノード間を接続するリンクとを含む通信ネットワークにおいて、該通信ネットワーク内のあるノードから他のノードに情報を伝達するための経路が決定された後、通信ネットワークを所定個のサブネットワークに分割する処理と、サブネットワークのグラフとしての構造の1次元複体までのオイラー標数を求める処理と、求めたオイラー標数に基づいて、サブネットワーク内に閉路が含まれるか否かを判断する処理とを実行させるための閉路検出用プログラムを記憶している。
次に、動作について説明する。図3は、通信ネットワーク内におけるマイクロループ等の閉路を検出する処理の一例を示す流れ図である。また、図4は、通信ネットワーク内におけるマイクロループ等の閉路を検出する処理の流れを説明するための説明図である。なお、本実施形態では、図4において、(1)(2)(3)・・・の順に処理が遷移する。
本実施形態では、前提として、経路制御手法OSPFを用いて経路制御を行うのとする。また、通信ネットワーク内の各ルータ1A,1B間の論理経路(論理リンク)8が、図1に示すように、左側のルータ1Aから右側のルータ1Bの向きに決定されている状態から、処理をスタートするものとする。
まず、図4(1)に示すように、左側のルータ1Aにおいて、制御部3Aは、常に適当な時間間隔を、通信ネットワーク内で統一的に、あるいは各ノードにおいて自律分散的に設定する(ステップS11)。すなわち、制御部3Aは、後述するステップS13でSNMPパケットPSを送信する時間間隔を設定する。
次に、制御部3Aは、ルータ1A自身に論理リンク8で接続されている全ての方向について、ルータ1A自身から近い順に、何HOP先のルータのノード情報及び論理リンク情報を得るかを、既にOSPFを用いて得られている全域木あるいは経路表に基づいて自律分散的に決定する。そして、図4(2)に示すように、制御部3Aは、このようにして決定したルータ集合Vを、ルータ1A自身が備える記憶部6Aに蓄積させる(ステップS12)。本実施形態では、ルータ1A,1Bは左右2個しかないので、制御部3Aは、ルータ集合Vとして左右のルータ1A,1Bを含む集合を設定する。
次に、図4(3)に示すように、左側のルータ1Aにおいて、制御部3Aは、ステップS11で設定した適当な時間間隔で、SNMPプロトコルを用いて、ステップS12で決定したルータ集合Vに含まれるルータ1A自身を除く全てのルータにSNMPパケットPSを送信する(ステップS13)。すなわち、制御部3Aは、右側のルータ1Bに、ノード情報及び論理リンク情報を要求するためのSNMPパケットPSを送信する。なお、本実施形態では、論理リンクは、図1に示す論理リンク8の1本のみである。
次に、図4(4)に示すように、右側のルータ1Bは、左側のルータ1Aからノード情報及び論理リンク情報を要求するためのSNMPパケットPSを受信する。すると、右側のルータ1Bは、「両端がルータ集合Vに含まれている該論理リンク8の数=1」という情報を含む返信用のSNMPパケットPRを生成して、左側のルータ1Aに対して送信する(ステップS14)。すなわち、右側のルータ1Bは、左側のルータ1Aの要求に応じて、ノード情報及び論理リンク情報を含むSNMPパケットを返信する。
次に、図4(5)に示すように、左側ルータ1Aは、右側のルータ1Bから返信パケットPRを受信する。すると、左側のルータ1Aの計算部4Aは、パケットを受信した順に、逐次的にルータ集合V、ノード情報及び論理リンク情報を用いてオイラー標数を計算する。そして、計算部4Aは、算出したオイラー標数に基づいて、その限定された通信ネットワークにおけるトポロジーが木構造であるか、マイクロループという意味での閉路を含む状態であるかを判定する(ステップS15)。すなわち、計算部4Aは、算出したオイラー標数が“1”であるか、オイラー標数が“0”以下であるかを判定する。算出したオイラー標数が1であれば、計算部4Aは、通信ネットワークにおけるトポロジーが木構造であると判定する。また算出したオイラー標数が0以下であれば、計算部4Aは、マイクロループが発生していると判定する。
ここで、通信ネットワーク内にノードが多数存在する場合には、返送されるノード情報及び論理リンク情報の到着時間には、物理的な距離等によって時間差が生じる。そのため、受信したパケットPRを受信した順に逐次的にオイラー標数を計算してマイクロループの有無を判定することで、どこでマイクロループという意味での閉路が発生しているかを素早く検知可能になる。
次いで、図4(6)に示すように、左側のルータ1Aにおいて、計算部4Aは、ステップS15で求めたオイラー標数値を、ルータ1A自身の記憶部6Aに記憶させる(ステップS16)。また、図4(7)に示すように、ルータ1Aは、オイラー標数が0以下であると判定し、マイクロループという意味での閉路B→D→Bが見つかった場合、その通信ネットワークで用いられている経路制御手段(例えば、所定のノードや管理サーバ)に、マイクロループが発生している旨の通知情報を通知(送信)する(ステップS17)。
以上のように、本実施形態によれば、通信ネットワークについてオイラー標数を求め、求めたオイラー標数の値が0以下であるか否かを判定することによって、通信ネットワーク内に閉路が発生しているか否かを判定する。従って、通信ネットワーク内のノードがマイクロループという意味での閉路を自律分散的かつ簡易に検出することができる。
また、例えば、非特許文献4に記載された関連技術を用いる場合であっても、経路制御を行うネットワーク階層(通信ネットワークの階層構造の基準であるOSI参照モデルにおいて、Layer3と呼ばれる階層)でネットワーク構造の検出をも行うためには、経路計算が収束するまでに時間がかかる。そのため、非特許文献4に記載された関連技術では、マイクロループという意味での閉路が発生している時間が長くなってしまうという課題もある。
これに対して、本実施形態によれば、ネットワーク階層以外の階層であって、かつ通信ネットワーク内の様々な情報を入手することができるプロトコル(具体的には、SNMPプロトコル)を用いて、通信ネットワーク内の閉路検出を行う。そのため、マイクロループという意味での閉路を検出する時間が短縮可能とすることができる。また、本実施形態によれば、通信ネットワーク内の複数箇所で故障や障害が発生した場合であっても、マイクロループという意味での閉路を検出可能とすることができる。
実施形態2.
次に、本発明の第2の実施形態について図面を参照して説明する。なお、本実施形態では、閉路検出方法を用いた通信ネットワークは、図5と同様のネットワーク構成であるものとする。図5(a)に示すように、本実施形態では、通信ネットワークは、合計5個のルータA,B,C,D,Eを含む。また、それら各ルータA,B,C,D,E間は、6本の物理リンク7を介して接続される。本例では、図5(a)に示すように、ルータA−ルータB間と、ルータA−ルータC間と、ルータB−ルータC間と、ルータB−ルータD間と、ルータC−ルータE間と、ルータD−ルータE間とにそれぞれ物理リンク7が存在するものとする。
次に、本発明の第2の実施形態について図面を参照して説明する。なお、本実施形態では、閉路検出方法を用いた通信ネットワークは、図5と同様のネットワーク構成であるものとする。図5(a)に示すように、本実施形態では、通信ネットワークは、合計5個のルータA,B,C,D,Eを含む。また、それら各ルータA,B,C,D,E間は、6本の物理リンク7を介して接続される。本例では、図5(a)に示すように、ルータA−ルータB間と、ルータA−ルータC間と、ルータB−ルータC間と、ルータB−ルータD間と、ルータC−ルータE間と、ルータD−ルータE間とにそれぞれ物理リンク7が存在するものとする。
また、図5(a)において、物理リンク7に添えて示されている数字は、物理リンク7のコスト値を意味している。なお、実際の通信ネットワークでは、同じ物理リンク7であっても、論理リンク8の向きによってリンクコストが非対称に与えられることが多いが、ここでは説明の簡易化のため、論理リンク8の向きにかかわらず、物理リンク7のリンクコストが対象であるものとして説明する。
なお、本実施形態において、各ルータA,B,C,D,Eは、図1に示したルータ1A,1Bの構成と同様である。
次に、動作について説明する。図6は、第2の実施形態における通信ネットワーク内におけるマイクロループ等の閉路を検出する処理の一例を示す流れ図である。また、図7は、図5に示す構成の通信ネットワークにおいて、通信ネットワークの技術分野において代表的な経路制御手法であるOSPFを用いて決定されたリンク障害発生前の全てのルータに関する全域木を示す説明図である。また、図8は、図5示す構成の通信ネットワークにおいて、通信ネットワークの技術分野において代表的な経路制御手法であるOSPFを用いて決定されたリンク障害発生後のルータB及びルータDに関する全域木を示す説明図である。
図7及び図8において、各ルータA,B,C,D,E間を結んでいる矢印付きの線は、それぞれ、OSPFを用いて決定された論理リンク8を示している。論理リンク8とは、既に説明したように、この矢印付きの線の方向に従って、各ルータ1が情報を送信するための経路を構成するリンクのことである。なお、各ルータA,B,C,D,Eは、図7に示すルータBの全域木や、図8に示すルータDの全域木のように、それぞれルータ毎に全域木を作成している。そして、各ルータA,B,C,D,Eは、それらの全域木に基づいて、論理リンク8を作成する。
以下、主として、ルータBとルータDとの動作に焦点を絞って説明を行い、さらにルータB,C,D,EからルータAに情報を送信するための経路に絞って説明する。
本実施形態では、図5(a)に示すように、通信ネットワーク上に障害や故障が無く、経路制御手法OSPFに従って経路制御の動作を行い、通信ネットワーク内の各ルータ間の論理経路(論理リンク)8が図7のように決定されている状態から、処理をスタートするものとする。
まず、図4(1)と同様に、通信ネットワーク内のルータA,B,C,D,Eにおいて、第1の実施形態と同様の処理に従って、制御部3Aは、後述するステップS23でSNMPパケットPSを送信する時間間隔を設定する(ステップS21)。この場合、各ルータA,B,C,D,Eの制御部3Aは、ネットワーク階層でのトポロジー確認及び更新パケット(OSPFの場合はHelloパケット)の送信間隔よりも十分に短い時間間隔の範囲で、適当な時間間隔を通信ネットワーク内で統一的に、あるいは各ノードにおいて自律分散的に設定する。
次に、各ルータA,B,C,D,Eの制御部3Aは、各ルータ自身に論理リンク8で接続されている全ての方向について、各ルータ自身から近い順に、何HOP先のルータの論理リンク情報を得るかを、既にOSPFを用いて得られている全域木あるいは経路表に基づいて自律分散的に決定する。そして、図4(2)と同様に、制御部3Aは、このようにして決定したルータ集合Vを、各ルータ自身が備える記憶部6Aに蓄積させる(ステップS22)。
図7に示す例では、ルータBは、ルータ集合V_Bとして、{ルータB、ルータC、ルータD、ルータA}を含む集合を選択する。また、ルータDは、ルータ集合V_Dとして、{ルータD、ルータB、ルータE}を含む集合を選択する。
まず、通信ネットワークが正常動作している時(すなわち、OSPFを用いて各ルータA,B,C,D,Eそれぞれの全域木と経路表とが確定している状態)の動作について説明する。
図4(3)と同様に、通信ネットワーク内のルータA,B,C,D,Eは、ステップS21で設定した適当な時間間隔で、SNMPプロトコルを用いて、ステップS22で決定したルータ集合Vに含まれる各ルータ自身を除く全てのルータにSNMPパケットPSを送信する(ステップS23)。すなわち、各ルータA,B,C,D,Eは、ルータ集合Vとともにノード情報及び論理リンク情報を要求するためのSNMPパケットPSを送信する。具体的には、ルータBは、ルータC、ルータD、及びルータAに対してパケットPS_Bを送信する。また、ルータDは、ルータB、及びルータEに対してPS_Bを送信する。
次に、図4(4)と同様に、各ルータは、SNMPパケットPSを受信する。すると、各ルータは、その送信元ルータに対して、各ルータ自身が有する全域木において、下流方向にあるルータとのノード情報及び論理リンク情報に関するノード情報及び論理リンク情報を含む返信用のSNMPパケットPRを生成して送信する(ステップS24)。すなわち、各ルータは、各ルータ自身が有する全域木において、下流方向にあるルータに、受信したSNMPパケットPSを転送する。このような動作を、SNMPパケットPSを受信したルータ全てが行う。
本例では、ルータCは、ルータC自身がルータBから受信したPS_Bパケットを、ルータC自身が有する全域木において、下流方向にあるルータAに転送するとともに、論理リンクB→Cが1本あるという論理リンク情報をルータBに対する返信用パケットPR_Cに付加して返信する。また、ルータAは、ルータCから転送されたPS_Bパケットに含まれるルータ集合V_B情報に基づいて、ルータA自身が有する全域木において、ルータA自身の全域木の下流方向のルータがルータ集合V_Bに無いことを知る。そのため、ルータAは、論理リンクC→Aが1本あるという論理リンク情報とともに、その旨をルータBに対する返信用パケットPR_Aに付加してルータCに送信する。
また、ルータDは、ルータAと同様に、ルータ集合V_B情報とルータD自身が有する全域木とに基づいて、ルータD自身の全域木の下流方向のルータがルータ集合V_Bに無いことを知る。そのため、ルータDは、論理リンクB→Dが1本あるという論理リンク情報とともに、その旨をルータBに対する返信用パケットPR_Dに付加してルータBに送信する。
一方、ルータDからSNMPパケットPS_Dを受信すると、ルータBは、受信したPS_Dパケットのルータ集合V_D情報に基づいて、ルータB自身が有する全域木において、ルータB自身の全域木の下流方向のルータがルータ集合V_Dに無いことを知る。そのため、ルータBは、論理リンクD→Bが1本あるという論理リンク情報とともに、その旨をルータDに対する返信用パケットPR_Dに付加してルータCに送信する。
また、ルータDからSNMPパケットPS_Dを受信すると、ルータEは、受信したPS_Dパケットのルータ集合V_D情報に基づいて、ルータE自身が有する全域木において、ルータE自身の全域木の下流方向のルータがルータ集合V_Dに無いことを知る。そのため、ルータEは、論理リンクD→Eが1本あるという論理リンク情報とともに、その旨をルータDに対する返信用パケットPR_Eに付加してルータCに送信する。
次に、図4(5)と同様に、ルータB,Dは、ルータB,D自身がノード情報及び論理リンク情報を要求するために送信したSNMPパケットPSに対して、その送信先のルータから返信パケットPRを受信する。すると、ルータB,Dは、パケットを受信した順に、逐次的に、ステップS24で得られたノード情報及び論理リンク情報を用いて、オイラー標数を計算する。そして、ルータB,Dは、算出したオイラー標数に基づいて、その限定された通信ネットワークにおけるトポロジーが木構造であるか、マイクロループという意味での閉路を含む状態であるかを判定する(ステップS25)。すなわち、ルータB,Dは、算出したオイラー標数が“1”であるか、オイラー標数が“0”以下であるかを判定する。算出したオイラー標数が1であれば、ルータB,Dは、通信ネットワークにおけるトポロジーが木構造であると判定する。また算出したオイラー標数が0以下であれば、ルータB,Dは、マイクロループが発生していると判定する。
ここで、一般に、返信されるノード情報及び論理リンク情報の到着時間には、ルータ間の物理的な距離等によって時間差が生じる。そのため、受信したパケットPRを受信した順に逐次的にオイラー標数を計算してマイクロループの有無を判定することで、どこでマイクロループという意味での閉路が発生しているかを素早く検知可能になる。
ルータBの場合、オイラー標数計算は、以下のように行われる。まず、ルータBは、ルータ数がルータB,C,D,Aの4個であると求め、また論理リンク数がルータB→ルータC、ルータB→ルータD、ルータC→ルータAの3本であると求める。そして、ルータBは、オイラー標数Bを、以下の式(2)のように算出する。
オイラー標数B={ルータ数=4}−{論理リンク数=3}=1 ・・・式(2)
この場合、ルータBは、オイラー標数を“1”と求めたので、オイラー標数が0以下ではなく、ルータBの経路木の中のルータ集合V_B内には閉路が無いと判定することができる。
ルータDの場合、オイラー標数計算は、以下のように行われる。まず、ルータDは、ルータ数がルータD,B,Eの3個であると求める。また、ルータDは、論理リンク数がルータD→ルータB、ルータD→ルータEの2本であると求める。そして、ルータDは、オイラー標数Bを、以下の式(3)のように算出する。
オイラー標数B={ルータ数=3}−{論理リンク数=2}=1 ・・・式(3)
この場合、ルータDは、オイラー標数を“1” と求めたので、オイラー標数が0以下ではなく、ルータDの経路木の中のルータ集合V_D内には閉路が無いと判定することができる。
次いで、図4(6)と同様に、ルータBとルータDとは、それぞれステップS25で求めたオイラー標数値を、ルータB,D自身の記憶部6Aに記憶させる(ステップS26)。また、図4(7)と同様に、ルータBとルータDとは、それぞれ、ルータB,D自身の全域木の中のルータ集合V_B,V_D内には閉路が無いことを示す通知情報を、通信ネットワークが用いている経路制御手段(例えば、所定のノードや管理サーバ)に通知(送信)する(ステップS27)。
以上の処理に従って、正常動作時のマイクロループ検出が実行される。
ここで、このように通信ネットワークが正常動作しているときに、ある時刻で図5(b)に示すように、故障40が発生し、物理リンクB−Cが切断されたものとする。この場合、ルータBとルータDとの全域木は、図8に示すようになる。図8において、点線の矢印付きの線は、経路制御手法による故障検出パケットが到着する時間に遅延があるために、決定されない論理経路(論理リンク)8を示している。
図4(3)と同様に、通信ネットワーク内のルータA,B,C,D,Eは、ステップS21で設定した適当な時間間隔で、SNMPプロトコルを用いて、ステップS22で決定したルータ集合Vに含まれる各ルータ自身を除く全てのルータにSNMPパケットPSを送信する(ステップS33)。すなわち、各ルータA,B,C,D,Eは、ルータ集合Vとともにノード情報及び論理リンク情報を要求するためのSNMPパケットPSを送信する。具体的には、ルータBは、ルータC、ルータD、及びルータAに対してパケットPS_Bを送信する。また、ルータDは、ルータB、及びルータEに対してPS_Bを送信する。
次に、図4(4)と同様に、各ルータは、SNMPパケットPSを受信する。すると、各ルータは、その送信元ルータに対して、各ルータ自身が有する全域木において、下流方向にあるルータとのノード情報及び論理リンク情報に関するノード情報及び論理リンク情報を含む返信用のSNMPパケットPRを生成して送信する(ステップS34)。すなわち、各ルータは、各ルータ自身が有する全域木において、下流方向にあるルータに、受信したSNMPパケットPSを転送する。このような動作を、SNMPパケットPSを受信したルータ全てが行う。
まず、ルータBを基点とする動作について説明する。ステップS34の段階では、OSPFによる障害検知がルータBにはまだ通知されていないので、ルータBに関するOSPFによる経路再計算は、まだ完了していない。そのため、ルータBの全域木は、図7に示す全域木のままの状態である。よって、ルータBは、ノード集合V_BにあるルータC,D,Aに対して、それぞれPS_Bパケットを送信することになる。
しかし、ルータBとルータCとの間のリンクB→Cが故障40により切断されているので、ルータCとルータAとにはPS_Bパケットが届かない。OSPFを用いた経路再計算を完了し、ルータA,B.C,D,Eの全てのルータの全域木及び経路表が確定されない限り、ルータBには、返信パケットPR_C,PR_Aは帰ってこないことになる。
一方、ルータDについては、論理リンクB→Dは正常ではあるが、OSPFによる障害検知がルータDにはまだ通知されていないので、ルータDに関するOSPFによる経路再計算は、まだ完了していない。そのため、ルータDの全域木は、図8に示す全域木のままの状態である。ルータBから送信されたPS_Bパケットを受信すると、ルータDは、受信したPS_Bパケットに含まれるルータ集合V_Bと、ルータD自身が有する全域木とに基づいて、ルータD自身の全域木の下流方向のルータがルータ集合V_Bに無いことを知る。そのため、ルータDは、論理リンクB→Dが1本あるという論理リンク情報とともに、その旨をルータBに対する返信用パケットPR_Dに付加してルータBに送信する。
次に、ルータDを基点とする動作について説明する。ルータDは、ノード集合V_Dに含まれるルータB,EにPS_Dパケットを送信する。ルータBは、ルータDから受信したPS_Dパケットに含まれるルータ集合V_Dと、ルータB自身が有する全域木とに基づいて、ルータB自身の全域木の下流方向のルータがルータ集合V_Dには無いことを知る。そのため、ルータBは、論理リンクD→Bが1本あるという論理リンク情報とともに、その旨をルータDに対する返信用パケットPR_Dに付加してルータDに送信する。ルータEは、ルータDから受信したPS_Dパケットに含まれるルータ集合V_Dと、ルータE自身が有する全域木とに基づいて、ルータE自身の全域木の下流方向のルータがルータ集合V_Dに無いことを知る。そのため、ルータEは、論理リンクD→Eが1本あるという論理リンク情報とともに、その旨をルータDへの返信用パケットPR_Eに付加してルータDに送信する。
次に、図4(5)と同様に、ルータB,Dは、ルータB,D自身がノード情報及び論理リンク情報を要求するために送信したSNMPパケットPSに対して、その送信先のルータから返信パケットPRを受信する。すると、ルータB,Dは、パケットを受信した順に、逐次的に、ステップS34で得られたノード情報及び論理リンク情報を用いて、オイラー標数を計算する。そして、ルータB,Dは、算出したオイラー標数に基づいて、その限定された通信ネットワークにおけるトポロジーが木構造であるか、マイクロループという意味での閉路を含む状態であるかを判定する(ステップS35)。すなわち、ルータB,Dは、算出したオイラー標数が“1”であるか、オイラー標数が“0”以下であるかを判定する。算出したオイラー標数が1であれば、ルータB,Dは、通信ネットワークにおけるトポロジーが木構造であると判定する。また算出したオイラー標数が0以下であれば、ルータB,Dは、マイクロループが発生していると判定する。
ここで、一般に、返信されるノード情報及び論理リンク情報の到着時間には、ルータ間の物理的な距離等によって時間差が生じる。そのため、受信したパケットPRを受信した順に逐次的にオイラー標数を計算してマイクロループの有無を判定することで、どこでマイクロループという意味での閉路が発生しているかを素早く検知可能になる。
ルータBの場合、オイラー標数計算は、以下のように行われる。まず、ルータBは、ルータ数がルータB,Dの2個であると求める。これは、ルータAとCとは、まだ経路再計算が完了していないので、経路制御手法による故障検出パケットが到着する時間に遅延があり、ルータ数にカウントされないためである。また、ルータBは、論理リンク数がルータB→ルータDとルータD→ルータBの2本であると求める。そして、ルータBは、オイラー標数Bを、以下の式(4)のように算出する。
オイラー標数B={ルータ数=2}−{論理リンク数=2}=0 ・・・式(4)
この場合、ルータBは、オイラー標数を“0” と求めたので、オイラー標数が0以下であり、ルータB−ルータD間にマイクロループが発生していると判定することができる。
ルータDの場合、オイラー標数計算は、以下のように行われる。まず、ルータDは、ルータ数がルータD,B,Eの3個であると求める。また、ルータDは、論理リンク数がルータD→ルータB、ルータD→ルータE、ルータB→ルータDの3本であると求める。そして、ルータDは、オイラー標数Bを、以下の式(5)のように算出する。
オイラー標数B={ルータ数=3}−{論理リンク数=3}=0 ・・・式(5)
この場合、ルータDは、オイラー標数を“0” と求めたので、オイラー標数が0以下であり、ルータD−ルータB−ルータE間のどこかにマイクロループが発生していると判定することができる。
従って、以上に示したオイラー標数計算に基づく処理によって、ルータB,Dは、即座にルータB−ルータD間にマイクロループという意味での閉路が存在すると判定することができる。
次いで、図4(6)と同様に、ルータBとルータDとは、それぞれステップS35で求めたオイラー標数値を、ルータB,D自身の記憶部6Aにさせる(ステップS36)。また、図4(7)と同様に、ルータDは、ルータB−ルータD間にマイクロループという意味での閉路が存在することを示す通知情報を、通信ネットワークが用いている経路制御手段(例えば、所定のノードや管理サーバ)に通知(送信)する(ステップS37)。
なお、ステップS22の処理において、各ルータが決定する各方向によって何HOP先のノードまでの論理リンク情報を得るかの決定結果は、各ルータで同じであってもよいし、ルータ毎に異なっていてもよい。また、ステップS23,S33の処理において、各ルータは、ノード情報と論理リンク情報とを取得するための相手ルータとして、ステップS22で決定したルータ集合Vに含まれる自身を除く適当な数のルータに対してパケットを送信してもよい。
以上のように、本実施形態によれば、第1の実施形態と同様に、通信ネットワークについてオイラー標数を求め、求めたオイラー標数の値が0以下であるか否かを判定することによって、通信ネットワーク内に閉路が発生しているか否かを判定する。従って、通信ネットワーク内のノードがマイクロループという意味での閉路を自律分散的かつ簡易に検出することができる。
また、本実施形態によれば、第1の実施形態と同様に、ネットワーク階層以外の階層であって、かつ通信ネットワーク内の様々な情報を入手することができるプロトコル(具体的には、SNMPプロトコル)を用いて、通信ネットワーク内の閉路検出を行う。そのため、マイクロループという意味での閉路を検出する時間が短縮可能とすることができる。また、本実施形態によれば、通信ネットワーク内の複数箇所で故障や障害が発生した場合であっても、マイクロループという意味での閉路を検出可能とすることができる。
なお、上記に示した各実施形態及び各実施例では、以下の(1)〜(12)に示すような閉路検出方法及び閉路検出システムの特徴的構成が示されている。
(1)閉路検出方法は、ノード(例えば、ノード1A,1B)とノード間を接続するリンクとを含む通信ネットワークにおいて、該通信ネットワーク内のあるノードから他のノードに情報を伝達するための経路を決定した後、通信ネットワークに含まれる所定のノードが、通信ネットワークを所定個のサブネットワークに分割し、分割されたサブネットワークに含まれるノードが、サブネットワークのグラフとしての構造の1次元複体までのオイラー標数を求め、ノードが、求めたオイラー標数に基づいて、サブネットワーク内に閉路が含まれるか否かを判断することを特徴とする。
(2)閉路検出方法は、ノードが、求めたオイラー標数の値が1である場合には、サブネットワーク内に閉路が含まれないと判断し、求めたオイラー標数の値が0以下である場合には、サブネットワーク内に閉路が含まれると判断するように構成されていてもよい。
(3)閉路検出方法は、ノードが、サブネットワークに含まれるノード数をNとしたときに、サブネットワークに含まれるノードを起点として、最大でN−1ホップ先までのノード集合VNと、両端ノードがノード集合VNに含まれるリンクとについて、1次元複体までのオイラー標数を求め、ノードが、求めたオイラー標数の値が1である場合には、サブネットワーク内に閉路が含まれないと判断し、求めたオイラー標数の値が0以下である場合には、サブネットワーク内に閉路が含まれると判断するように構成されていてもよい。
(4)閉路検出方法は、ノードが、サブネットワークについての1次元複体までのオイラー標数の値、サブネットワーク内での閉路の存在の有無、及びサブネットワーク内での閉路の存在箇所を、通信ネットワーク内で経路制御を行う所定の経路制御手段(例えば、所定のノードや管理サーバ)に通知するように構成されていてもよい。
(5)閉路検出方法は、通信ネットワークが、同じ大きさのサブネットワークに分割され、又は異なる大きさのサブネットワークに分割されているように構成されていてもよい。
(6)閉路検出方法は、通信ネットワークが、各サブネットワークが互いに重なるように分割され、又は各サブネットワークが互いに重ならないように分割されているように構成されていてもよい。
(7)閉路検出方法は、通信ネットワーク内の各ノードが、オイラー標数を求めるために必要な情報の取得間隔を、ノード間で統一的に決定するように構成されていてもよい。
(8)閉路検出方法は、通信ネットワーク内の各ノードが、オイラー標数を求めるために必要な情報の取得間隔を、自律分散的に個々に決定するように構成されていてもよい。
(9)閉路検出方法は、ノードが、オイラー標数の算出結果を、所定の記憶領域(例えば、記憶部6A,6B)に蓄積するように構成されていてもよい。
(10)閉路検出方法は、ノードが、オイラー標数を求めるために用いる通信手段として、SNMPに従って通信を行う通信手段を用いるように構成されていてもよい。
(11)閉路検出システムは、ノードとノード間を接続するリンクとを含む通信ネットワークにおいて、該通信ネットワーク内のあるノードから他のノードに情報を伝達するための経路が決定された後、通信ネットワークを所定個のサブネットワークに分割するネットワーク分割手段(例えば、ネットワーク分割手段11によって実現される)と、サブネットワークのグラフとしての構造の1次元複体までのオイラー標数を求めるオイラー標数算出手段(例えば、オイラー標数算出手段12によって実現される)と、オイラー標数算出手段が求めたオイラー標数に基づいて、サブネットワーク内に閉路が含まれるか否かを判断する閉路判断手段(例えば、閉路判断手段13によって実現される)とを備えたことを特徴とする。
(12)閉路検出システムにおいて、閉路判断手段は、オイラー標数算出手段が求めたオイラー標数の値が1である場合には、サブネットワーク内に閉路が含まれないと判断し、オイラー標数算出手段が求めたオイラー標数の値が0以下である場合には、サブネットワーク内に閉路が含まれると判断するように構成されていてもよい。
上記の各実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)ノードとノード間を接続するリンクとを含む通信ネットワークにおいて、該通信ネットワーク内のあるノードから他のノードに情報を伝達するための経路を決定した後、前記通信ネットワークに含まれる所定のノードが、前記通信ネットワークを所定個のサブネットワークに分割し、分割された前記サブネットワークに含まれるノードが、前記サブネットワークのグラフとしての構造の1次元複体までのオイラー標数を求め、前記ノードが、求めた前記オイラー標数に基づいて、前記サブネットワーク内に閉路が含まれるか否かを判断することを特徴とする閉路検出方法。
(付記2)前記ノードが、求めた前記オイラー標数の値が1である場合には、前記サブネットワーク内に閉路が含まれないと判断し、求めた前記オイラー標数の値が0以下である場合には、前記サブネットワーク内に閉路が含まれると判断する付記1記載の閉路検出方法。
(付記3)前記ノードが、前記サブネットワークに含まれるノード数をNとしたときに、前記サブネットワークに含まれるノードを起点として、最大でN−1ホップ先までのノード集合VNと、両端ノードが前記ノード集合VNに含まれるリンクとについて、1次元複体までの前記オイラー標数を求め、前記ノードが、求めた前記オイラー標数の値が1である場合には、前記サブネットワーク内に閉路が含まれないと判断し、求めた前記オイラー標数の値が0以下である場合には、前記サブネットワーク内に閉路が含まれると判断する付記1記載の閉路検出方法。
(付記4)前記ノードが、前記サブネットワークについての1次元複体までの前記オイラー標数の値、前記サブネットワーク内での閉路の存在の有無、及び前記サブネットワーク内での閉路の存在箇所を、前記通信ネットワーク内で経路制御を行う所定の経路制御手段に通知する付記1から付記3のうちのいずれか1項に記載の閉路検出方法。
(付記5)前記通信ネットワークが、同じ大きさのサブネットワークに分割され、又は異なる大きさのサブネットワークに分割されている付記1から付記4のうちのいずれか1項に記載の閉路検出方法。
(付記6)前記通信ネットワークが、各サブネットワークが互いに重なるように分割され、又は各サブネットワークが互いに重ならないように分割されている付記1から付記5のうちのいずれか1項に記載の閉路検出方法。
(付記7)前記通信ネットワーク内の各ノードが、前記オイラー標数を求めるために必要な情報の取得間隔を、ノード間で統一的に決定する付記1から付記6のうちのいずれか1項に記載の閉路検出方法。
(付記8)前記通信ネットワーク内の各ノードが、前記オイラー標数を求めるために必要な情報の取得間隔を、自律分散的に個々に決定する付記1から付記6のうちのいずれか1項に記載の閉路検出方法。
(付記9)前記ノードが、前記オイラー標数の算出結果を、所定の記憶領域に蓄積する付記1から付記8のうちのいずれか1項に記載の閉路検出方法。
(付記10)前記ノードが、前記オイラー標数を求めるために用いる通信手段として、SNMPに従って通信を行う通信手段を用いる付記1から付記9のうちのいずれか1項に記載の閉路検出方法。
(付記11)ノードとノード間を接続するリンクとを含む通信ネットワークにおいて、該通信ネットワーク内のあるノードから他のノードに情報を伝達するための経路が決定された後、前記通信ネットワークを所定個のサブネットワークに分割するネットワーク分割手段と、前記サブネットワークのグラフとしての構造の1次元複体までのオイラー標数を求めるオイラー標数算出手段と、前記オイラー標数算出手段が求めた前記オイラー標数に基づいて、前記サブネットワーク内に閉路が含まれるか否かを判断する閉路判断手段とを備えたことを特徴とする閉路検出システム。
(付記12)前記閉路判断手段は、前記オイラー標数算出手段が求めた前記オイラー標数の値が1である場合には、前記サブネットワーク内に閉路が含まれないと判断し、前記オイラー標数算出手段が求めた前記オイラー標数の値が0以下である場合には、前記サブネットワーク内に閉路が含まれると判断する付記11記載の閉路検出システム。
(付記13)コンピュータに、ノードとノード間を接続するリンクとを含む通信ネットワークにおいて、該通信ネットワーク内のあるノードから他のノードに情報を伝達するための経路が決定された後、前記通信ネットワークを所定個のサブネットワークに分割する処理と、前記サブネットワークのグラフとしての構造の1次元複体までのオイラー標数を求める処理と、求めた前記オイラー標数に基づいて、前記サブネットワーク内に閉路が含まれるか否かを判断する処理とを実行させるための閉路検出用プログラム。
(付記14)コンピュータに、求めた前記オイラー標数の値が1である場合には、前記サブネットワーク内に閉路が含まれないと判断し、求めた前記オイラー標数の値が0以下である場合には、前記サブネットワーク内に閉路が含まれると判断する処理を実行させる付記13記載の閉路検出用プログラム。
本発明は、経路制御手法を用いた経路制御が必要とされる全ての通信ネットワーク及びシステムに適用可能である。
1A,1B ルータ
2A,2B 通信部
3A,3B 制御部
4A,4B 計算部
5A,5B データベース
6A,6B 記憶部
7 物理リンク
8 論理リンク
11 ネットワーク分割手段
12 オイラー標数算出手段
13 閉路判断手段
2A,2B 通信部
3A,3B 制御部
4A,4B 計算部
5A,5B データベース
6A,6B 記憶部
7 物理リンク
8 論理リンク
11 ネットワーク分割手段
12 オイラー標数算出手段
13 閉路判断手段
Claims (10)
- ノードとノード間を接続するリンクとを含む通信ネットワークにおいて、該通信ネットワーク内のあるノードから他のノードに情報を伝達するための経路を決定した後、前記通信ネットワークに含まれる所定のノードが、前記通信ネットワークを所定個のサブネットワークに分割し、
分割された前記サブネットワークに含まれるノードが、前記サブネットワークのグラフとしての構造の1次元複体までのオイラー標数を求め、
前記ノードが、求めた前記オイラー標数に基づいて、前記サブネットワーク内に閉路が含まれるか否かを判断する
ことを特徴とする閉路検出方法。 - 前記ノードが、求めた前記オイラー標数の値が1である場合には、前記サブネットワーク内に閉路が含まれないと判断し、求めた前記オイラー標数の値が0以下である場合には、前記サブネットワーク内に閉路が含まれると判断する
請求項1記載の閉路検出方法。 - 前記ノードが、前記サブネットワークに含まれるノード数をNとしたときに、前記サブネットワークに含まれるノードを起点として、最大でN−1ホップ先までのノード集合VNと、両端ノードが前記ノード集合VNに含まれるリンクとについて、1次元複体までの前記オイラー標数を求め、
前記ノードが、求めた前記オイラー標数の値が1である場合には、前記サブネットワーク内に閉路が含まれないと判断し、求めた前記オイラー標数の値が0以下である場合には、前記サブネットワーク内に閉路が含まれると判断する
請求項1記載の閉路検出方法。 - 前記ノードが、前記サブネットワークについての1次元複体までの前記オイラー標数の値、前記サブネットワーク内での閉路の存在の有無、及び前記サブネットワーク内での閉路の存在箇所を、前記通信ネットワーク内で経路制御を行う所定の経路制御手段に通知する
請求項1から請求項3のうちのいずれか1項に記載の閉路検出方法。 - 前記通信ネットワークが、同じ大きさのサブネットワークに分割され、又は異なる大きさのサブネットワークに分割されている
請求項1から請求項4のうちのいずれか1項に記載の閉路検出方法。 - 前記通信ネットワークが、各サブネットワークが互いに重なるように分割され、又は各サブネットワークが互いに重ならないように分割されている
請求項1から請求項5のうちのいずれか1項に記載の閉路検出方法。 - 前記通信ネットワーク内の各ノードが、前記オイラー標数を求めるために必要な情報の取得間隔を、ノード間で統一的に決定する
請求項1から請求項6のうちのいずれか1項に記載の閉路検出方法。 - 前記通信ネットワーク内の各ノードが、前記オイラー標数を求めるために必要な情報の取得間隔を、自律分散的に個々に決定する
請求項1から請求項6のうちのいずれか1項に記載の閉路検出方法。 - ノードとノード間を接続するリンクとを含む通信ネットワークにおいて、該通信ネットワーク内のあるノードから他のノードに情報を伝達するための経路が決定された後、前記通信ネットワークを所定個のサブネットワークに分割するネットワーク分割手段と、
前記サブネットワークのグラフとしての構造の1次元複体までのオイラー標数を求めるオイラー標数算出手段と、
前記オイラー標数算出手段が求めた前記オイラー標数に基づいて、前記サブネットワーク内に閉路が含まれるか否かを判断する閉路判断手段とを
備えたことを特徴とする閉路検出システム。 - コンピュータに、
ノードとノード間を接続するリンクとを含む通信ネットワークにおいて、該通信ネットワーク内のあるノードから他のノードに情報を伝達するための経路が決定された後、前記通信ネットワークを所定個のサブネットワークに分割する処理と、
前記サブネットワークのグラフとしての構造の1次元複体までのオイラー標数を求める処理と、
求めた前記オイラー標数に基づいて、前記サブネットワーク内に閉路が含まれるか否かを判断する処理とを
実行させるための閉路検出用プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010061117A JP2011199383A (ja) | 2010-03-17 | 2010-03-17 | 閉路検出方法、閉路検出システム、及び閉路検出用プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010061117A JP2011199383A (ja) | 2010-03-17 | 2010-03-17 | 閉路検出方法、閉路検出システム、及び閉路検出用プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011199383A true JP2011199383A (ja) | 2011-10-06 |
Family
ID=44877092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010061117A Pending JP2011199383A (ja) | 2010-03-17 | 2010-03-17 | 閉路検出方法、閉路検出システム、及び閉路検出用プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011199383A (ja) |
-
2010
- 2010-03-17 JP JP2010061117A patent/JP2011199383A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3244574B1 (en) | Alternate down paths for directed acyclic graph (dag) routing | |
EP2737671B1 (en) | Method and apparatus for resilient routing of control traffic in a split-architecture system | |
US7902973B2 (en) | Alarm reordering to handle alarm storms in large networks | |
US8447849B2 (en) | Negotiated parent joining in directed acyclic graphs (DAGS) | |
CN113261245B (zh) | 网络链路或节点故障的恢复系统和方法 | |
KR102118687B1 (ko) | SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 컨트롤러 및 스위치의 동작 방법과, 이를 위한 컨트롤러 및 스위치 | |
US8358652B2 (en) | Apparatus, system and method for reliable, fast, and scalable multicast message delivery in service overlay networks | |
KR101406878B1 (ko) | 네트워크 시스템 및 라우팅 방법 | |
US20020172157A1 (en) | Method and system for fast computation of routes under multiple network states with communication continuation | |
US8898335B2 (en) | Apparatus and method for calculating communication paths | |
US11502940B2 (en) | Explicit backups and fast re-route mechanisms for preferred path routes in a network | |
WO2002006918A2 (en) | A method, system, and product for preventing data loss and forwarding loops when conducting a scheduled change to the topology of a link-state routing protocol network | |
JP4128944B2 (ja) | マルチキャスト転送経路設定方法、マルチキャスト転送経路計算装置、プログラムおよび記録媒体 | |
WO2010073674A1 (ja) | 経路制御装置、経路制御方法、経路制御プログラム、ネットワークシステム | |
US8798050B1 (en) | Re-optimization of loosely routed P2MP-TE sub-trees | |
JP2010199882A (ja) | 通信システム、経路計算装置、経路計算方法及びプログラム | |
JP2011199383A (ja) | 閉路検出方法、閉路検出システム、及び閉路検出用プログラム | |
JP5576837B2 (ja) | 経路情報更新システム、及び経路情報更新方法 | |
CN114430387B (zh) | 一种节点的配置方法、控制器和节点 | |
Cevher et al. | Trade-off analysis of multi topology routing based Ip fast reroute mechanisms | |
WO2018205520A1 (zh) | 基于ospf协议的选择dr设备的方法及装置、存储介质 | |
Cui et al. | QoS-Aware Approach for Maximizing Rerouting Traffic in IP Networks. | |
Norvor et al. | Dynamic Routing Implementation Decision between OSPFv3 and IS–IS in IPv6 Networks | |
Papan et al. | Comparison of New Solutions in IP Fast Reroute | |
JP2010028464A (ja) | 通信システム及び転送装置 |