JP5029373B2 - ノード、経路制御方法および経路制御プログラム - Google Patents

ノード、経路制御方法および経路制御プログラム Download PDF

Info

Publication number
JP5029373B2
JP5029373B2 JP2008004913A JP2008004913A JP5029373B2 JP 5029373 B2 JP5029373 B2 JP 5029373B2 JP 2008004913 A JP2008004913 A JP 2008004913A JP 2008004913 A JP2008004913 A JP 2008004913A JP 5029373 B2 JP5029373 B2 JP 5029373B2
Authority
JP
Japan
Prior art keywords
node
link state
virtual network
information
state information
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.)
Expired - Fee Related
Application number
JP2008004913A
Other languages
English (en)
Other versions
JP2009171056A (ja
Inventor
範人 藤田
昌弘 地引
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008004913A priority Critical patent/JP5029373B2/ja
Priority to US12/171,346 priority patent/US8144621B2/en
Publication of JP2009171056A publication Critical patent/JP2009171056A/ja
Application granted granted Critical
Publication of JP5029373B2 publication Critical patent/JP5029373B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、仮想ネットワークにおけるノード、経路制御方法および経路制御プログラムに関し、特に、VPN(Virtual Private Network )やオーバレイネットワーク等のような、実ネットワーク上に構成された仮想的なネットワーク(仮想ネットワーク)において、リンクステート型ルーティングプロトコルを用いて経路制御を行うノード、およびそのノードに適用される経路制御方法、経路制御プログラムに関する。
実ネットワーク上に構成された仮想ネットワークにおける経路制御方法には、リンクステート型ルーティングプロトコルが用いられている。また、リンクステート型ルーティングプロトコルは、仮想ネットワークのみならず、一般的な有線・無線ネットワーク上でのルーティングプロトコルとして用いられている。
リンクステート型ルーティングプロトコルは、コンピュータネットワークにおける経路計算を行うための代表的なルーティングプロトコルの1つとして広く用いられる。具体的なリンクステート型ルーティングプロトコルの代表例としては、OSPF(Open Shortest Path First)が挙げられる。
リンクステート型ルーティングプロトコルは、隣接状態などの各ノードにおけるリンク状態(リンクステート情報)を他のノードと共有することにより、ネットワーク全体のトポロジを把握し、経路計算を実現している。リンクステート情報は、定期的に送信される他に、隣接状態が変化した際もリンクステート更新を通知する情報として送信される。このように、隣接状態が変化し、ネットワーク全体のトポロジが不明である状況下においても確実に他の全てのノードに対してリンクステート情報を行き渡らせるために、フラッディングと呼ばれるメッセージ転送手法が用いられる。フラッディングとは、水があふれるように周り中にパケットを流し、多方面に連鎖的に転送してもらうメッセージ転送方式のことである。これによってパケットは、一定の生存期間中に無差別に転送される。
フラッディングには、確実にリンクステート情報を行き渡らせるという利点がある。しかし、その反面、上述のように連鎖的にメッセージ転送を繰り返すと、同じノードが同じメッセージを重複して受信することになり、無駄な転送によってネットワーク資源を浪費してしまうという問題がある。そのため、リンクステート型ルーティングプロトコルにおけるフラッディングによるトラフィック量を削減するための様々な方法が提案されている(例えば、非特許文献1参照)。非特許文献1には、OLSR(Optimized Link State Routing Protocol )におけるMPR(Multipoint Relays )を利用した方法が記載されている。
OLSRでは、一般的なリンクステート型ルーティングプロトコルと同様、各ノードがHelloメッセージを定期的に送信し、隣接ノードのセットを認識する。OLSRではさらに、認識した隣接ノードのセットをHelloメッセージに含めて広告を行う。これにより各ノードは、2ホップ先に存在するノードのセット(2ホップ隣接ノードセット)を認識することができる。2ホップ隣接ノードセットを認識すると、全ての2ホップ隣接ノードへ到達するために経由しなければならない最小の隣接ノードのセットを計算する。ここで計算される隣接ノードのセットがMPRセットである。MPRに選択されたノードは、そのMPRを選択したノード(MPRセレクタ)によって通知され、MPRセレクタによって送信されたノードから受信したフラッディングメッセージだけを転送するように動作する。
OLSRでは、上述のように各ノードがMPRを計算し、リンクステート情報を他のノードへフラッディングする際、MPRとして選択されたノードだけがリンクステート情報の転送を行う。そのため、フラッディングによるトラフィック量を削減することが可能となる。
このように、リンクステート型ルーティングプロトコルでは、制御メッセージによるトラフィック量を削減するために、フラッディングによって受信したリンクステート情報を転送するノードを最小限に絞り込むという方法が用いられていた。
また、一般的なリンクステート型ルーティングプロトコルでは、リンクステート情報の交換は、実際にユーザのデータが通る仮想ネットワークのトポロジ上か、あるいはその仮想ネットワークのトポロジを縮退したトポロジ上で行われる。また、Helloメッセージも、実際にユーザのデータが通る仮想ネットワークのトポロジ上で交換される。
T. Clausen, P. Jacquet,"Optimized Link State Routing Protocol (OLSR)", RFC3626, October 2003.
しかしながら、仮想ネットワークにおいて、リンクステート型ルーティングプロトコルで用いる制御メッセージ量を非特許文献1に記載の方法で削減しようとする場合、Helloメッセージによるトラフィック量が大きいという問題がある。その理由は、仮想ネットワークでは、隣接ノードとのリンクはPoint−to−Pointのトンネルによって構成されるため、Helloメッセージはリンクごとに独立して流れるからである。すなわち、無線ネットワークのように1回のブロードキャストによって全ての隣接ノードへHelloメッセージが届く仕組みではなく、各隣接ノードごとに個別にHelloメッセージを送信しなければならない。一般的なリンクステート型ルーティングプロトコルでは、Helloメッセージは全ての隣接ノード間で交換されるので、Helloメッセージによるトラフィック量はネットワーク内のリンク数に比例する。この場合、リンク数が多いネットワーク(例えばフルメッシュトポロジなどのリンク密度が高いネットワーク)では、Helloメッセージによるトラフィック量が無視できない。このように、トラフィック量が大きいという問題がある。
そこで、本発明は、制御メッセージのトラフィック量を削減可能な、仮想ネットワークにおけるリンクステート型ルーティングプロトコルを用いたノード、経路制御方法および経路制御プログラムを提供することを目的とする。
本発明によるノードは、ベースネットワーク上に設けられる仮想ネットワークに属し、リンクステート型ルーティングプロトコルによる前記仮想ネットワークの経路制御を行うノードであって、メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成する分散ハッシュテーブル生成手段と、自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信するリンクステート情報交換手段と、リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定めるツリー配送制御手段と、リンクステート情報交換手段が受信したリンクステート情報によって、当該リンクステート情報を送信したノードを認識するノード認識手段と、仮想ネットワークに属する隣接ノードが設定されたテーブルを予め保持し、前記テーブルに設定された隣接ノードのうち、前記ノード認識手段が認識したノードを生存中の隣接ノードとして設定するテーブル設定手段とを備え、リンクステート情報交換手段が、生存中の隣接ノードの情報を含むリンクステート情報を送信することを特徴とする。
また、本発明によるノードは、ベースネットワーク上に設けられる仮想ネットワークに属し、リンクステート型ルーティングプロトコルによる前記仮想ネットワークの経路制御を行うノードであって、メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成する分散ハッシュテーブル生成手段と、自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信するリンクステート情報交換手段と、リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定めるツリー配送制御手段と、仮想ネットワークのトポロジに対する指針であるトポロジポリシを保持するトポロジポリシ保持手段と、仮想ネットワークに属する隣接ノードが設定されたテーブルを保持し、受信したリンクステート情報に含まれるノード情報およびリンク情報が、前記トポロジポリシに合致しない場合、前記テーブルにおける隣接ノードの設定を、前記トポロジポリシに合致するように修正するテーブル設定手段とを備え、リンクステート情報交換手段が、修正後の前記テーブルに設定された隣接ノードの情報を含むリンクステート情報を送信することを特徴とする。
また、本発明によるノードは、ベースネットワーク上に設けられる仮想ネットワークに属し、リンクステート型ルーティングプロトコルによる前記仮想ネットワークの経路制御を行うノードであって、メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成する分散ハッシュテーブル生成手段と、自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信するリンクステート情報交換手段と、リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定めるツリー配送制御手段と、リンクステート情報交換手段が受信したリンクステート情報によって、仮想ネットワークに属するノードを認識するノード認識手段と、仮想ネットワークの構成態様を指定する情報である態様指定情報を保持する態様指定情報保持手段と、仮想ネットワークに属する隣接ノードが設定されたテーブルを保持し、ノード認識手段が仮想ネットワークに属するノードを認識したときに、前記態様指定情報が指定する構成態様を満たすように、前記テーブルにおける隣接ノードの設定を修正するテーブル設定手段とを備え、リンクステート情報交換手段が、修正後の前記テーブルに設定された隣接ノードの情報を含むリンクステート情報を送信することを特徴とする。
また、本発明による経路制御方法は、ベースネットワーク上に設けられる仮想ネットワークに適用されるリンクステート型ルーティングプロトコルを用いた経路制御方法であって、メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成し、リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定め、自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信し、受信したリンクステート情報によって、当該リンクステート情報を送信したノードを認識し、仮想ネットワークに属する隣接ノードが設定されたテーブルを予め保持し、前記テーブルに設定された隣接ノードのうち、認識した前記ノードを生存中の隣接ノードとして設定し、生存中の隣接ノードの情報を含むリンクステート情報を送信することを特徴とする。
また、本発明による経路制御方法は、ベースネットワーク上に設けられる仮想ネットワークに適用されるリンクステート型ルーティングプロトコルを用いた経路制御方法であって、メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成し、リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定め、自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信し、仮想ネットワークのトポロジに対する指針であるトポロジポリシを保持し、仮想ネットワークに属する隣接ノードが設定されたテーブルを保持し、受信したリンクステート情報に含まれるノード情報およびリンク情報が、前記トポロジポリシに合致しない場合、前記テーブルにおける隣接ノードの設定を、前記トポロジポリシに合致するように修正し、修正後の前記テーブルに設定された隣接ノードの情報を含むリンクステート情報を送信することを特徴とする。
また、本発明による経路制御方法は、ベースネットワーク上に設けられる仮想ネットワークに適用されるリンクステート型ルーティングプロトコルを用いた経路制御方法であって、メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成し、リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定め、自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信し、受信したリンクステート情報によって、仮想ネットワークに属するノードを認識し、仮想ネットワークの構成態様を指定する情報である態様指定情報を保持し、仮想ネットワークに属する隣接ノードが設定されたテーブルを保持し、仮想ネットワークに属するノードを認識したときに、前記態様指定情報が指定する構成態様を満たすように、前記テーブルにおける隣接ノードの設定を修正し、修正後の前記テーブルに設定された隣接ノードの情報を含むリンクステート情報を送信することを特徴とする
また、本発明による経路制御プログラムは、ベースネットワーク上に設けられる仮想ネットワークに属し、リンクステート型ルーティングプロトコルによる前記仮想ネットワークの経路制御を行うノードとなるコンピュータに搭載される経路制御プログラムであって、前記コンピュータに、メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成する分散ハッシュテーブル生成処理、自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信するリンクステート情報交換処理リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定めるツリー配送制御処理、リンクステート情報交換処理で受信したリンクステート情報によって、当該リンクステート情報を送信したノードを認識するノード認識処理、および、仮想ネットワークに属する隣接ノードが設定されたテーブルを予め保持し、前記テーブルに設定された隣接ノードのうち、前記ノード認識処理で認識したノードを生存中の隣接ノードとして設定するテーブル設定処理を実行させ、リンクステート情報交換処理で、生存中の隣接ノードの情報を含むリンクステート情報を送信させることを特徴とする。
また、本発明による経路制御プログラムは、ベースネットワーク上に設けられる仮想ネットワークに属し、リンクステート型ルーティングプロトコルによる前記仮想ネットワークの経路制御を行うノードとなるコンピュータであって、仮想ネットワークのトポロジに対する指針であるトポロジポリシを保持するトポロジポリシ保持手段を備えたコンピュータに搭載される経路制御プログラムにおいて、前記コンピュータに、メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成する分散ハッシュテーブル生成処理、自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信するリンクステート情報交換処理、リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定めるツリー配送制御処理、および、仮想ネットワークに属する隣接ノードが設定されたテーブルを保持し、受信したリンクステート情報に含まれるノード情報およびリンク情報が、前記トポロジポリシに合致しない場合、前記テーブルにおける隣接ノードの設定を、前記トポロジポリシに合致するように修正するテーブル設定処理を実行させ、リンクステート情報交換処理で、修正後の前記テーブルに設定された隣接ノードの情報を含むリンクステート情報を送信させることを特徴とする。
また、本発明による経路制御プログラムは、ベースネットワーク上に設けられる仮想ネットワークに属し、リンクステート型ルーティングプロトコルによる前記仮想ネットワークの経路制御を行うノードとなるコンピュータであって、仮想ネットワークの構成態様を指定する情報である態様指定情報を保持する態様指定情報保持手段を備えたコンピュータに搭載される経路制御プログラムにおいて、前記コンピュータに、メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成する分散ハッシュテーブル生成処理、自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信するリンクステート情報交換処理、リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定めるツリー配送制御処理、リンクステート情報交換処理で受信したリンクステート情報によって、仮想ネットワークに属するノードを認識するノード認識処理、および、仮想ネットワークに属する隣接ノードが設定されたテーブルを保持し、ノード認識処理で仮想ネットワークに属するノードを認識したときに、前記態様指定情報が指定する構成態様を満たすように、前記テーブルにおける隣接ノードの設定を修正するテーブル設定処理を実行させ、リンクステート情報交換処理で、修正後の前記テーブルに設定された隣接ノードの情報を含むリンクステート情報を送信させることを特徴とする。
本発明によれば、リンクステート情報がそのリンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定めるので、リンクステート情報のトラフィック量を削減することができる。
以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図1は、本発明の第1の実施形態のノードを示すブロック図である。図1に示す本発明の第1の実施形態のノードA1,A2は、ベースネットワークN1を介して接続されている。なお、図1では、2つのノードA1,A2を図示しているが、ベースネットワークN1を介して接続されるノードの数は2つに限定されない。各ノードA1,A2は、仮想ネットワークに属するノードであり、それぞれ同一の構成を有する。そのため、以下、ノードA1を例に説明する。
ベースネットワークN1上に、各ノードが属する仮想ネットワークが設けられる。
ノードA1は、DHTプロトコル部A11と、ツリー配送制御部A12と、リンクステート情報交換部A13と、リンクステートデータベース記憶部A14と、仮想ネットワークトポロジ設定部A15と、経路計算部A16と、ルーティングテーブル記憶部A17とを備える。ノードA2も同様の要素を備えるが、図1では、DHTプロトコル部A11とリンクステート情報交換部A13のみを図示している。
DHTプロトコル部A11は、分散ハッシュテーブル(Distributed Hash Table; DHT)を構成するためのプロトコルに従って動作する。分散ハッシュテーブルのプロトコルとしては、Chord,Pastry,Tapestry,CANなどがあり、DHTプロトコル部A11は、いずれのプロトコルに従って動作してもよい。また、例示したプロトコル以外のプロトコルに従ってもよい。
Chordについては、以下に示す参考文献1に記載されている。
[参考文献1]
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, and Hari Balakrishnan,“Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications”,ACM SIGCOMM 2001, San Deigo, CA, August 2001, pp. 149-160.
Pastryについては、以下に示す参考文献2に記載されている。
[参考文献2]
A. Rowstron and P. Druschel,“Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems”, IFIP/ACM International Conference on Distributed Systems Platforms (Middleware), Heidelberg, Germany, pages 329-350, November, 2001.
Tapestryについては、以下に示す参考文献3に記載されている。
[参考文献3]
B. Zhou, A. Joseph, J. Kubiatowicz,“Tapestry: A Resilient Global Scale Overlay for Service Deployment”,IEEE JSAC, Jan 2004.
CANについては、以下に示す参考文献4に記載されている。
[参考文献4]
Sylvia Ratnasamy, Paul Francis, Mark Handley, Richard Karp, and Scott Shenker,“A Scalable Content-Addressable Network”, In Proceedings of ACM SIGCOMM 2001.
DHTプロトコル部A11は、各ノードに割り当てられたキーをもとに、分散ハッシュテーブルを構成(生成)する。ここで、各ノードのキーは、各ノードのIPアドレスやホストネームなどのユニークな識別子に対してハッシュをかけることによって作成すればよい。また、キー長としては128ビットや160ビットなどの互いに重複する可能性が現実的にゼロである十分な長さの値が用いられる。
分散ハッシュテーブルの構成方法はプロトコルの種類によって異なるが、その大きな特徴として、全てのノードを知らなくとも、予め決められた規則に従って隣接ノードを設定するだけで、全ての他のノードへたどり着くための構造化されたテーブルが構成されるという点が挙げられる。ここで、「隣接ノードを設定する」とは、あるキーの範囲に対応するノードにメッセージ(リンクステート情報)を到達させるために、そのメッセージを転送すべき次のホップノードを定めることを意味する。すなわち、いずれの分散ハッシュテーブルのプロトコルに従う場合であっても、各ノードのDHTプロトコル部が、宛先ノードのキーの範囲に応じてメッセージを転送すべき次のノードを定めることで、メッセージを到達させるべきノードにメッセージを転送することができる。分散ハッシュテーブルのプロトコル(DHTプロトコル)を使わない場合、全てのノードへたどり着くためのテーブルを構成するためには、全体のノード数がNである場合、1ノードあたり、Nの1乗のオーダーのコストがかかるが、DHTプロトコルでは、典型的にはlogNのオーダーでテーブルを構成することができるため、スケーラビリティの高い方法であるといえる。また、ノードの追加・削除に対して自律分散的にテーブルを再構成できるという点も大きな特徴として挙げられる。
以下、DHTプロトコル部A11がChordプロトコルに従って動作する場合を例にして説明する。すなわち、あるキーの範囲に対応するノードにメッセージを到達させるために、そのメッセージを転送すべき次のホップノードを定める処理を、Chordプロトコルに従って行う場合を例にする。Chordプロトコルは、ハッシュ空間をリング状に見立ててテーブルを構成する手法である。Chordを用いる場合、隣接ノードはfingerと呼ばれる。fingerの最大数はハッシュ長によって決まり、ハッシュ長が2ビットの場合、n個である。このとき、k番目のfingerをfinger(k)と記す。なお、0≦k≦n−1である。DHTプロトコル部A11は、自分(自ノード)のキーをXとすると、キーがX+2以上であるノードのなかから、X+2に最も近い値のキーをもつノードをfinger(k)として選択する。そして、Yというキーをもつ宛先ノードへ到達するためには、Y以下で最もYに近いキーをもつfingerへ転送を行うように定める。換言すると、X_(k−1)<Y≦X_kを満足するキーYを有するノードにメッセージを到達させるためにメッセージを転送すべきノードがfinger(k)であるというエントリを作成する。この動作は、メッセージを転送すべき次のノードを示す分散ハッシュテーブルの生成の一例である。ここで、X_(k−1)は、finger(k−1)のキーであり、X_kは、finger(k)のキーである。各ノードのDHTプロトコル部がこの動作を再帰的に繰り替えることにより(すなわち、各ノードのDHTプロトコル部がそれぞれfingerを定めることにより)、任意のキーをもつ宛先ノードへメッセージを到達させることができる。
また、DHTプロトコル部A11は、DHTプロトコルによって管理される隣接ノード(Chordの場合はfinger)の状態を監視する。そして、隣接ノードのネットワークからの離脱が検出された場合、DHTプロトコル部A11は、そのノードの離脱をリンクステート情報交換部A13へ伝え、そのノードが離脱したことを示すリンクステート情報を送信させる。
リンクステート情報とは、自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報である。ノード情報は、例えば、ノードを識別するノードID(ノード識別子)である。また、リンク情報は、例えば、隣接ノードのIPアドレス、隣接ノードとのリンクコスト、隣接ノードとのリンクのリンク品質などである。
また、DHTプロトコル部A11は、隣接ノードの死活監視を行う。すなわち、隣接ノードが仮想ネットワークに参加しているか離脱したかを判定する。例えば、DHTプロトコル部A11は、分散ハッシュテーブルにおける隣接ノード(Chordの場合にはfinger)に対して定期的にpingパケットを送信し、閾値以上の回数分だけ連続して応答がなかった場合に、その隣接ノードが離脱したと判定し、離脱したと判定するまでの間は仮想ネットワークに参加していると判定すればよい。この判定方法は、死活監視の一例であり、他の方法で死活監視を行ってもよい。なお、Chordプロトコルでは、ノードの死活監視はfingerに対してしか行わない。
ツリー配送制御部A12は、DHTプロトコル部A11によって構成された分散ハッシュテーブルに基づいて、リンクステート情報交換部A13が送信するリンクステート情報を他の全てのノードへ到達するように配送制御する。各ノードのツリー配送制御部A12は、ノードA1だけではなく、他の全てのノードにおいても同じアルゴリズムで動作する。そして、ツリー配送制御部A12は、自ノードをルートとし他の全てのノードがリーフあるいは分節点となるブロードキャストツリーに沿ってリンクステート情報を転送する。例えば、ノードA1のツリー配送制御部A12は、自ノードであるノードA1をルートとし他の全てのノードがリーフあるいは分節点となるブロードキャストツリーに沿ってリンクステート情報を転送する。このように自ノードをルートとするブロードキャストツリー上にリンクステート情報を配送することによって、同じノードが同じメッセージを重複して受信する無駄な転送が発生しない。従って、フラッディングによって発生するトラフィック量を最小限に抑えることができる。
DHTプロトコル部A11によって構成された分散ハッシュテーブルに基づいてツリー配送を行う方法の例として、本実施形態では、Chord Broadcastを用いる場合を例にとって説明する。Chord Broadcastの詳細な動作については以下の参考文献5に記載されている。
[参考文献5]
Sameh El-Ansary, Luc Onana Alima, Per Brand and Seif Haridi,“"Efficient Broadcast in Structured P2P Networks”, The 2nd International Workshop On Peer-To-Peer Systems (IPTPS'03), (Berkeley, CA, USA), February 2003.
Chord Broadcastを用いたメッセージの配送方法について説明する。ここでは、ノードA1がメッセージの送信元であるソースノードである場合を例にする。ソースノードであるノードA1のツリー配送制御部A12は、全てのfingerに対してメッセージを送信すると決定する。ここで、ノードA1のリンクステート情報交換部A13は、finger(k)へ送信されるメッセージのヘッダに、Key_(k+1)を付加情報として入れる。なお、Key_k はfinger(k)のキーを意味するものとする。ノードA1からメッセージを受信したfinger(k)のツリー配送制御部A12は、finger(k)のキーである Key_k から、Key_(k+1) 未満までのキーの範囲に存在する全てのfingerに対して、受信したメッセージを転送すると決定する。以後、メッセージを受信したfingerは、再帰的に同様の動作でメッセージを転送する。この結果、参加している全てのノードに対して同じメッセージを送り届けることができる。
リンクステート情報交換部A13は、自ノード(本例ではノードA1)がもつリンクステート情報を他ノードへ送信する。また、リンクステート情報交換部A13は、他のノードから送られてきたリンクステート情報を受信する。リンクステート情報の送受信は、ツリー配送制御部A12を介して行われ、無駄な転送を発生させないようにツリー上での配送が行われる。すなわち、リンクステート情報交換部A13は、ツリー配送制御部A12が上記のようにリンクステート情報を送信すると決定したノードに対してリンクステート情報を送信する。リンクステート情報交換部A13は、他のノードから受信したリンクステート情報をリンクステートデータベース記憶部A14へ渡す。また、自ノードのリンクステート情報を送信する際は、仮想ネットワークトポロジ設定部A15において、生存フラグが1である隣接ノードだけをリンクステート情報に含めて送信する。また、リンクステート情報交換部A13は、DHTプロトコル部A11によってノードの離脱の検出を伝えられた場合、そのノードが送信したリンクステート情報を消去(フラッシュ)するためのリンクステート情報を送信する。換言すれば、そのノードの離脱を示すリンクステート情報を送信する。フラッシュするためには、例えば、そのノードが送信したリンクステート情報の経過時間をMaxAgeとして再送信する。MaxAgeの経過時間を有するリンクステート情報を受信したノードは、該リンクステート情報(離脱したノードが送信したリンクステート情報)を直ちに消去する。
リンクステートデータベース記憶部A14は、リンクステート情報交換部A13によって集められた自ノードを含む仮想ネットワーク内の全てのノードのリンクステート情報を蓄積し、接続しているノードのリストやリンクの接続状況を認識する機能を有する。例えば、リンクステートデータベース記憶部A14は、リンクステート情報を送信したノードのノードIDをリストアップすることによって、接続しているノードのリストを認識すればよい。また、リンクステートデータベース記憶部A14は、ノードのリストおよび各リンクステート情報において広告されている各ノードからの隣接ノードへのリンク情報により、リンクの接続情報を認識すればよい。さらに、リンクステートデータベース記憶部A14は、認識したノードのリストを仮想ネットワークトポロジ設定部A15に渡す。
仮想ネットワークトポロジ設定部A15は、自ノード(ここではノードA1)が属する仮想ネットワークにおいて、自ノード(ノードA1)がどのノードと隣接ノードとして仮想リンクを設定するかを示す情報が設定されている。自ノードがどのノードと仮想リンクを設定するのかを示す情報を仮想ネットワークトポロジ設定テーブルと記す。
図2は、仮想ネットワークトポロジ設定部A15において設定される仮想ネットワークトポロジ設定テーブルの例を示す説明図である。図2に示す例では、ノードA1の仮想ネットワークトポロジ設定テーブル101において、4つの隣接ノードが設定されていて、それぞれの隣接ノードのノードIDがA2,A3,A4,A6となっている。なお、仮想ネットワークトポロジ設定テーブルのノードIDは、分散ハッシュテーブル(DHT)においてノードを識別するためのIDとは別に定められている。また、図2に示す例では、各隣接ノードのベースIPアドレスが、“2.3.4.5”,“3.4.5.6”,“4.5.6.7”,“6.7.8.9”となっている。さらに、“2.3.4.5” のベースIPアドレスをもつ隣接ノードに対しては、仮想リンクを構成するために設定されるトンネルに振られる仮想IPアドレスが、ローカル側(すなわちノードA1側)が“10.1.2.1”に設定され、リモート側(隣接ノード側)が“10.1.2.2”に設定されている。同様に、他の3つの隣接ノードに対しても仮想IPアドレスが設定されている。
また、仮想ネットワークトポロジ設定テーブルでは、それぞれの隣接ノードに対して生存フラグを設定する。仮想ネットワークトポロジ設定部A15は、リンクステートデータベース記憶部A14によって生存していると認識されたノードに対しては“1”を設定し、そのように認識されていないノードに対しては“0”を設定する。
リンクステート情報交換部A13は、仮想ネットワークトポロジ設定部A15において生存フラグが“1”となっている隣接ノードの情報だけをリンクステート情報として広告する。このように動作することにより、現在オンラインであるノードについてのみ隣接ノードとして仮想リンクが設定され、仮想ネットワークトポロジを構成することができる。すなわち、オフラインであるノードを除いて仮想ネットワークトポロジが構成される。
経路計算部A16は、リンクステートデータベース記憶部A14によって認識されたリンクステート情報を用いて、仮想ネットワーク内の各ノードへ到達するための次ホップまたは経路全体を計算し、経路エントリとしてルーティングテーブル記憶部A17へ登録する。この動作の結果、リンクステート型ルーティングプロトコルによる仮想ネットワークの経路制御が実現される。経路計算部A16が用いる経路計算アルゴリズムとしては、リンクステート型ルーティングプロトコルで用いられるDijkstraアルゴリズムが一般的である。経路計算部A16は、例えば、Dijkstraアルゴリズムに従って到達先までの経路計算を行えばよい。また、経路計算部A16は、リンクステートデータベース記憶部A14が認識するリンクステート情報に変化があった際に経路計算を行う。
ルーティングテーブル記憶部A17は、ルーティングテーブルを記憶する。ルーティングテーブルは、経路計算部A16によって計算された経路エントリが登録されるテーブルである。ルーティングテーブル記憶部A17が記憶するルーティングテーブルには、宛先IPアドレスに対応する次ホップノードのIPアドレスだけが登録されてもよい。また、経路上の各ホップのIPアドレス(すなわち経路全体)が登録されてもよい。
図3は、本発明の第1の実施形態における制御メッセージ用トポロジと仮想ネットワークトポロジとの関係の例を示す説明図である。以下、図3を参照して、本実施形態においてリンクステート情報交換部A13がツリー配送制御部A12を介してリンクステート情報の交換を行った結果、経路計算部A16によって経路の計算が行われる対象となる仮想ネットワークのトポロジとの関係を示す。
図3に示す例では、ノードA1〜A6が仮想ネットワークに接続している。また、図3に示す制御メッセージ用トポロジT11は、DHTプロトコル部A11によって構成される分散ハッシュテーブルに基づいてリンクステート情報をツリー状に配送するための論理トポロジである。制御メッセージ用トポロジT11で示している各矢印は、ノードA1を送信元として送信されるリンクステート情報の配送経路を示している。図3に示すように、ノードA1がリンクステート情報の送信元となる場合には、ノードA1を頂点(ルート)とし、他のノードA2〜A6にそれぞれ到達するツリー状のトポロジとなる。仮想ネットワークトポロジT21は、制御メッセージ用トポロジT11を用いて行われたリンクステート情報交換の結果構成される。仮想ネットワークトポロジT21は、実際にユーザのデータが通る仮想ネットワークのトポロジである。
本発明では、リンクステート情報の交換は、仮想ネットワークトポロジT21ではなく、制御メッセージ用トポロジT11上で行われる。また、本発明のノードは、仮想ネットワークトポロジT21における全てのリンク上でHelloメッセージを交換する必要はない。
一般的なリンクステート型ルーティングプロトコルにおけるHelloメッセージは、本発明では、DHTプロトコル部A11がもつノードの死活監視機構によって代替される。
本実施形態では、図2に例示するような仮想ネットワークトポロジ設定テーブルが予め各ノードに設定され、各ノードが自ノードをルートとするブロードキャストツリーに沿ってリンクステート情報を送信する。そして、各ノードは、受信したリンクステート情報に応じて、仮想ネットワークトポロジ設定テーブルの生存フラグを更新して、仮想ネットワークを修正する。
次に、動作について説明する。
図4は、本発明の第1の実施形態のノードがリンクステート情報を受信した際の動作の例を示すフローチャートである。ノードA1を例にして動作を説明する。
まず、ノードA1のリンクステート情報交換部A13が隣接ノードからリンクステート情報を受信する(ステップS101)。すると、リンクステート情報交換部A13は、受信したリンクステート情報のヘッダを参照し、自ノードのDHTキーとヘッダで内に情報として含められているキーの間の範囲内のキーをもつfingerが存在するかどうかをツリー転送配送制御部A12に判定させる(ステップS102)。ツリー転送配送制御部A12は、自ノードのキーと受信したリンクステート情報のヘッダに含まれるキーとの間の範囲内のキーに対応するfingerがあるか否かを判定する。
ツリー転送配送制御部A12がその範囲内にfingerがあると判定した場合(ステップS102におけるYes)、リンクステート情報交換部A13は、該当する全てのfingerへ受信したリンクステート情報をコピーして転送する(ステップS103)。すなわち、上記の範囲内のキーに対応する各fingerに、リンクステート情報のコピーを送信する。このとき、リンクステート情報交換部A13は、リンクステート情報のヘッダ内にはキーとしてKey_(k+1)を含める。既に説明したように、Key_k はfinger(k)のキーを意味する。従って、リンクステート情報交換部A13は、自ノードであるノードA1にとっての1つ先のfingerのキーを、ヘッダ内に含めたリンクステート情報を送信する。
ステップS103の処理の後、あるいは、上記の範囲内にfingerがないとツリー転送配送制御部A12が判定した場合(ステップS102におけるNo)、リンクステート情報交換部A13は、ステップS101で受信したリンクステート情報をリンクステートデータベース記憶部A14へ渡す。リンクステートデータベース記憶部A14は、ステップS101で受信したリンクステート情報を参照し、以前に受信したリンクステート情報と比較して、リンクステート情報が変化しているか否かを判定する(ステップS104)。
ステップS104においてリンクステート情報に変化があると判定した場合、リンクステートデータベース記憶部A14は、そのリンクステート情報から認識されるノードのリストが、それまで認識していたノードのリストから変化しているか否かを判定する(ステップS105)。ここで、ノードのリストはリンクステートデータベース記憶部A14によって管理されている。
ステップS105においてノードのリストに変化があると判定した場合、リンクステートデータベース記憶部A14は、仮想ネットワークトポロジ設定部A15において設定されている隣接ノード設定の各エントリの生存フラグとの食い違いを調べる。そして、違いがあれば仮想ネットワークトポロジ設定部A15に、設定されている隣接ノードの生存フラグを修正させる(ステップS106)。
ステップS106の具体例を説明する。例えば、仮想ネットワークトポロジ設定部A15において、図2に例示する仮想ネットワークトポロジ設定テーブル101が設定されており、ステップA101で受信したリンクステート情報からノードA3が追加されたと認識されたとする。この場合、仮想ネットワークトポロジ設定部A15に、ノードA3に対する生存フラグを0から1に変更させる。また、例えば、受信したリンクステート情報から、ノードA4が消滅したと判断された場合は、ノードA4に対する生存フラグを1から0に変更させる。
ステップS106でデータトポロジ設定部A15が設定を変更すると、データトポロジ設定部A15は、その変更に基づいてリンクステート情報を更新する。このリンクステート情報は、自ノードに関するリンクステート情報である。すなわち、自ノードのノード情報および自ノードと隣接ノードとの間の各リンクに関するリンク情報を更新する。データトポロジ設定部A15は、他のノードへ送信すべく更新したそのリンクステート情報をリンクステート情報交換部A13に渡す(ステップS107)。また、ステップS107において、リンクステート情報交換部A13は、ツリー配送制御部A12を介して、ノードA1のfingerの情報を取得し、各fingerに対してそのリンクステート情報を送信する。
ステップS107の処理を行った後、あるいは、ステップS105においてノードのリストに変化がないと判定された場合、経路計算部A16は、新しいリンクステート情報に基づいて経路計算を実行し(ステップS108)、計算結果に基づいてルーティングテーブル記憶部A17の更新を行う(ステップS109)。
また、ステップS104においてリンクステート情報に変化がないと判定された場合は、経路計算・ルーティングテーブル更新を行わず終了する。すなわち、ステップS105以降の処理を行わずに処理を終了する。
以上、本実施形態において、ノードA1においてリンクステート情報を受信した際の動作について説明した。
以上の説明では、DHTプロトコル部A11においてChordが用いられる場合について説明したが、その他のDHTプロトコルを用いる場合でも適用が可能である。利用可能なDHTプロトコルであるか否かの選択基準は、ツリー配送が可能であるか否かである。
他のDHTプロトコルが使われる場合の例として、TapestryやPastryなどのPlaxtonアルゴリズムを用いるDHTプロトコルの場合について説明する。ここで、各ノードのもつキーは16進数で4桁であるとする。すなわち、b=4,l=4であるとする。この“b”は、キーの各桁の基数であり、16進数の場合、16=2であるので、b=4となる。lは、キーの桁数である。ソースノード(この場合ノードA1)のリンクステート情報交換部A13は、Plaxtonアルゴリズムにおける全ての隣接ノードに対してメッセージを送信する。ここで、リンクステート情報交換部A13は、隣接ノードに対応する宛先キーをメッセージのヘッダに付加情報として入れる。例えば、送信するノードのキーが1A7Dであり、1E**(*は任意の数字を示す)の宛先キーに対する経路エントリとして、1E29というキーをもつ隣接ノードへメッセージを転送するとする。この場合、経路エントリの宛先キーである“1E**”を付加情報としてヘッダに含める。このメッセージを受信したノードは、ヘッダに入っている付加情報に基づき、よりキーを絞り込む範囲の隣接ノードへメッセージを転送する。この際、同様に、隣接ノードに対応する宛先キーをメッセージのヘッダに付加情報として入れる。例えば、自ノードのキーが1E29であり、“1E**”が受信したメッセージのヘッダの付加情報に含まれていた場合、1E**の**の部分(この場合下位8ビット)をより絞り込む宛先キー(すなわち1E1*,1E2*,・・・といった宛先キー)に対応する経路エントリの隣接ノードへ、受信したメッセージを転送する。以上の動作を再帰的に繰り返すことにより、参加している全てのノードに対して同じメッセージを送り届けることができる。
また、本実施形態においては、DHTプロトコル部A11において、ChordやPastryなどの構造化DHTプロトコルが用いられる場合について説明したが、他にも、Gnutellaなどの非構造型のP2P(Peer-to-Peer)プロトコルが用いられてもよい。
次に本実施形態の効果について説明する。
本実施形態では、ツリー配送制御部A12が、DHTプロトコル部A11によって自律分散的に構成された分散ハッシュテーブルに基づいて、リンクステート情報交換部A13が送信するリンクステート情報を他の全てのノードへ到達するように制御する。こうすることにより、フラッディングにおける問題であった、同じノードが同じメッセージを重複して受信する無駄な転送を防ぎ、フラッディングによって発生するトラフィック量を最小限に抑えることができる。すなわち、リンクステート情報のトラフィック量を削減することができる。
また、一般的なリンクステート型ルーティングプロトコルではHelloメッセージを仮想ネットワークトポロジ上で交換しているが、本実施形態では、Helloメッセージの交換を、DHTプロトコル部A11がもつノードの死活監視機構で代替している。すなわち、Helloメッセージの交換を行わずに、DHTプロトコル部A11が隣接ノードの死活を監視する。DHTプロトコルでは、ノードの死活監視はDHTプロトコル上での隣接ノード(Chordの場合はfinger)に対してしか行わないため、そのトラフィック量は、仮想ネットワークトポロジにおけるリンク数に比例せず、フルメッシュトポロジのようなリンク密度が多い仮想ネットワークでも、ノードの死活監視のトラフィック量を一定に抑えることができる。
実施形態2.
図5は、本発明の第2の実施形態のノードを示すブロック図である。図5に示す本発明の第2の実施形態のノードB1,B2は、ベースネットワークN1を介して接続されている。第1の実施形態と同様に、ベースネットワークN1に接続されるノードの数は2つに限定されない。各ノードB1,B2は、仮想ネットワークに属するノードであり、それぞれ同一の構成を有する。そのため、以下、ノードB1を例に説明する。
ノードB1は、DHTプロトコル部B11と、ツリー配送制御部B12と、リンクステート情報交換部B13と、リンクステートデータベース記憶部B14と、仮想ネットワークトポロジ設定部B15と、経路計算部B16と、ルーティングテーブル記憶部B17と、トポロジポリシ設定部B18とを備える。これらの各構成要素のうち、DHTプロトコル部B11と、ツリー配送制御部B12と、リンクステート情報交換部B13と、経路計算部B16と、ルーティングテーブル記憶部B17は、第1の実施形態のノードA1(図1参照)におけるDHTプロトコル部A11と、ツリー配送制御部A12と、リンクステート情報交換部A13と、経路計算部A16と、ルーティングテーブル記憶部A17と同様の構成要素であり、説明を省略する。また、リンクステートデータベース記憶部B14も、第1の実施形態のノードA1におけるリンクステートデータベース記憶部A14と同様の構成要素である。また、ノードB2もノードB1と同様の要素を備えるが、DHTプロトコル部B11とリンクステート情報交換部B13のみを図示している。
リンクステートデータベース記憶部B14は、図1に示すリンクステートデータベース記憶部A14と同様に、リンクステート情報交換部B13によって集められた自ノードを含む仮想ネットワーク内の全てのノードのリンクステート情報を蓄積し、接続しているノードの情報やリンクの情報(すなわち仮想ネットワークのトポロジ)を認識する機能を有する。リンクステートデータベース記憶部B14は、認識されたノード情報およびリンク情報を、仮想ネットワークトポロジ設定部B15へ渡す。
仮想ネットワークトポロジ設定部B15は、第1の実施形態における仮想ネットワークトポロジ設定部A15(図1参照)が有する機能に加え、さらに、以下の処理も行う。仮想ネットワークトポロジ設定部B15は、リンクステートデータベース記憶部B14から受け取った仮想ネットワークのノード情報およびリンク情報がトポロジポリシ設定部B18に設定されているトポロジポリシに適合するか否かを判断する。そして、そのノード情報およびリンク情報がトポロジポリシに適合していない場合、仮想ネットワークのトポロジを修正する機能を有する。トポロジポリシは、仮想ネットワークのトポロジに対する指針であり、換言すれば、仮想ネットワークの状態に応じて設定すべき設定内容を示す情報である。
図6は、第2の実施形態において仮想ネットワークトポロジ設定部B15に設定される仮想ネットワークトポロジ設定テーブルの例を示す説明図である。図6に示す例では、本実施形態における仮想ネットワークトポロジ設定テーブル102の項目には、第1の実施形態における仮想ネットワークトポロジ設定テーブル101(図2参照)と同様に、ノードID、隣接ノードのベースIPアドレス、ローカル側およびリモート側の仮想IPアドレス、生存フラグが含まれる。これらの項目に加えて、第2の実施形態ではさらに、修正フラグも仮想ネットワークトポロジ設定テーブル102に含まれる。
修正フラグは、ノードがトポロジポリシに適合していないために修正されたか否かを示すフラグである。修正フラグは、予め設定されている隣接ノードのエントリに対しては初期値(本例では“0”とする。)が設定される。そして、トポロジポリシ設定部B18に設定されているトポロジポリシに適合しないために仮想ネットワークトポロジ設定部B15において修正されたエントリに対しては、修正されたことを示す値(本例では“1”とする)が設定される。図6に示す例では、隣接ノードであるノードB4のエントリは新規に作成された隣接ノードのエントリであることがわかる。
トポロジポリシ設定部B18は、トポロジポリシ(自ノードが属している仮想ネットワークのトポロジに対する指針)が設定されている。トポロジポリシ設定部B18に設定されているトポロジポリシを、仮想ネットワークトポロジ設定部B15が参照する。仮想ネットワークトポロジ設定部B15は、ノード情報およびリンク情報が表している仮想ネットワークのトポロジがトポロジポリシに適合するか否かを判断する。
図7は、トポロジポリシ設定部B18に設定されるトポロジポリシの例を示す説明図である。図7に例示するトポロジポリシ201は、仮想ネットワークが複数のセグメントに分離した場合の動作を示している。具体的には、仮想ネットワークが複数のセグメントに分離した場合、各セグメントの最も小さいIDをもつノード同士が仮想リンクを設定する状態にするという動作を示している。このトポロジポリシにより、仮想ネットワークが複数のセグメントに分離されないようにすることができる。
図8は、制御メッセージ用トポロジと仮想ネットワークトポロジとの関係の例を示す説明図である。図8を参照して、トポロジ修正の例を説明する。リンクステートデータベース記憶部B14によって認識されたノード情報およびリンク情報では、ノードB1〜B3および、ノードB4〜B6の2つのセグメントに分かれていたとする。すなわち、図8における仮想ネットワークトポロジT22に示すように、ノードB1〜B3が仮想ネットワークの1つのセグメントに属し、ノードB4〜B6が仮想ネットワークの他のセグメントに属しているとする。仮想ネットワークトポロジ設定部B15がトポロジポリシに従ってトポロジを修正した結果、各セグメント内で最も小さいノードIDをもつノードB1,B4とを接続するリンクが構成される。本例の場合、例えば、ノードB1の仮想ネットワークトポロジ設定部B15が、仮想ネットワークトポロジ設定テーブルにノードB4を追加し、ノードB4の仮想ネットワークトポロジ設定部B15が、仮想ネットワークトポロジ設定テーブルにノードB1を追加すればよい。
ここでは、トポロジポリシの例として、仮想ネットワークが複数のセグメントに分離しないというポリシが記述される場合について説明したが、トポロジポリシの記述内容は本例の場合に限定されない。例えば、必ず2つ以上のノードに対して仮想リンクを構成するというポリシや、各ノードにおける仮想リンク数を一定数以下に抑えるというポリシなどが設定されていてもよい。また、仮想ネットワークトポロジ設定部B15は、隣接ノードを追加する修正のほか、隣接ノードを削除する修正を行ってもよい。
次に、動作について説明する。
図9は、本発明の第2の実施形態のノードがリンクステート情報を受信した際の動作の例を示すフローチャートである。ノードB1を例にして動作を説明する。
第1の実施形態と同様の処理については、図4と同一の符号を付し、説明を省略する。すなわち、図9に示すステップS101〜S107およびステップS107〜S109の動作は、第1の実施形態における動作(図4参照)と同様の動作である。
本実施形態では、ステップS106の後、仮想ネットワークトポロジ設定部B15は、リンクステートデータベース記憶部B14から受け取った仮想ネットワークのノード情報およびリンク情報がトポロジポリシ設定部B18に設定されているトポロジポリシに適合するかを調べる(ステップS207)。
ノード情報およびリンク情報がトポロジポリシに適合していると判断した場合(ステップS207のYes)、ステップS107以降の処理を行う。
ノード情報およびリンク情報がトポロジポリシに適合していないと判断した場合(ステップS207のNo)、仮想ネットワークトポロジ設定部B15は、仮想ネットワークトポロジ設定部B15に設定されている仮想ネットワークトポロジ設定テーブルに対して修正を行う(ステップS208)。すなわち、仮想ネットワークトポロジ設定テーブルの設定内容が、トポロジポリシに合致するように仮想ネットワークトポロジ設定テーブルの内容を修正する。例えば、特定の条件を満たすノードが仮想リンクを設定したり、仮想リンクを削除する場合、その条件を満たしているノードの仮想ネットワークトポロジ設定部B15が仮想ネットワークトポロジ設定テーブルに隣接ノードを追加したり、削除したりする。図8に示した例では、「小さいノードIDをもつ」という条件に該当するノードB1,B4が隣接ノードを追加する場合を示した。仮想ネットワークトポロジ設定部B15は、修正により追加または削除した隣接ノードのエントリの修正フラグを、修正されたことを示す値(“1”)とする。
このステップS208の後、ステップS107以降の処理を行う。
次に、本実施形態の効果について説明する。
第2の実施形態においても、第1の実施形態と同様の効果を得ることができる。また、第2の実施形態では、仮想ネットワークトポロジ設定部B15が、リンクステート情報交換部B13によって交換されたリンクステート情報に基づいて構成される仮想ネットワークのトポロジに対して、トポロジポリシ設定部B18に設定されているトポロジポリシと適合するか否かを調べる。そして、適合しない場合は、トポロジの修正を行うべく、仮想ネットワークトポロジ設定部B15における隣接ノードの追加・削除を行う。このように動作することにより、ノードの追加・離脱やリンクの追加・削除により仮想ネットワークが複数のセグメントに分断されてしまうなど、トポロジの最適性が損なわれる場合に、事前に設定したトポロジポリシに従って、トポロジを修正することが可能となる。すなわち、ノードの追加・離脱により仮想ネットワークのトポロジが変化したときであっても、仮想ネットワークのトポロジを最適化することができる。
実施形態3.
図10は、本発明の第3の実施形態のノードを示すブロック図である。図10に示す本発明の第3の実施形態のノードC1,C2は、ベースネットワークN1を介して接続されている。前述の各実施形態と同様に、ベースネットワークN1に接続されるノードの数は2つに限定されない。各ノードC1,C2は、仮想ネットワークに属するノードであり、それぞれ同一の構成を有する。そのため、以下、ノードC1を例に説明する。
ノードC1は、DHTプロトコル部C11と、ツリー配送制御部C12と、リンクステート情報交換部C13と、リンクステートデータベース記憶部C14と、仮想ネットワークトポロジ構成部C15と、経路計算部C16と、ルーティングテーブル記憶部C17と、トポロジポリシ設定部C18とを備える。これらの各構成要素のうち、DHTプロトコル部C11と、ツリー配送制御部C12と、リンクステート情報交換部C13と、リンクステートデータベース記憶部C14と、経路計算部C16と、ルーティングテーブル記憶部C17は、第1の実施形態のノードA1(図1参照)におけるDHTプロトコル部A11、ツリー配送制御部A12、リンクステート情報交換部A13、リンクステートデータベース記憶部A14、経路計算部A16、ルーティングテーブル記憶部A17と同様の構成要素であり、説明を省略する。
仮想ネットワークトポロジ構成部C15は、リンクステートデータベース記憶部C14から渡されたノードのリストおよびトポロジポリシ設定部C18において設定されているトポロジポリシに基づいて、仮想ネットワークのトポロジがトポロジポリシを満たすように隣接ノードの設定を行う。本実施形態におけるトポロジポリシは、仮想ネットワークの構成態様を指定する情報である。仮想ネットワークの構成態様として、例えば、フルメッシュトポロジ、リング型トポロジ、スター型トポロジ、ツリー型トポロジ等があり、本実施形態におけるトポロジポリシは、それらの構成態様のいずれかを指定する情報である。仮想ネットワークのトポロジがトポロジポリシを満たすように、仮想ネットワークトポロジ構成部C15が隣接ノードの設定を行うことで、仮想ネットワークのトポロジが自動的に構成される。
例えば、トポロジポリシ設定部C18において「フルメッシュトポロジ」という仮想ネットワークのポリシが設定されているとする。この場合、仮想ネットワークトポロジ構成部C15は、リンクステートデータベース記憶部C14において認識している他のノードの全てを隣接ノードとして設定する。すなわち、それらの各ノードを隣接ノードとして、仮想ネットワークトポロジ構成テーブルを設定する。 図11は、仮想ネットワークトポロジ構成部C15において設定される仮想ネットワークトポロジ設定テーブルの例を示す説明図である。トポロジポリシ設定部C18において「フルメッシュトポロジ」というトポロジポリシが設定されているとすると、例えば、ノードID“C1”のノードの仮想ネットワークトポロジ構成部C15は、図11に例示する仮想ネットワークトポロジ構成テーブル103のように、自ノード(ノードC1)以外の他の全てのノードに対する隣接ノードのエントリを仮想ネットワークトポロジ構成テーブルに設定する。ただし、ここでは、ノードC1は、自ノード以外にノードC2〜C6を認識しているものとする。
また、例えば、トポロジポリシ設定部C18において「リング型トポロジ」という仮想ネットワークのポリシが設定されているとする。この場合、仮想ネットワークトポロジ構成部C15は、自ノードのノードIDと隣り合うノードIDを持つ2つのノードに対してそれぞれリンクを設定する(すなわち、その2つのノードを隣接ノードとして、仮想ネットワークトポロジ構成テーブルを設定する)。具体的には、リンクステートデータベース記憶部C14によって認識されたノードのうち、自ノードのノードIDより大きいノードIDを持つノードのうち、最も小さいノードIDを持つノードに対して仮想リンクを設定する。また、自ノードのノードIDより小さいノードIDを持つノードのうち、最も大きいノードIDを持つノードに対して仮想リンクを設定する。
また、例えば、トポロジポリシ設定部C18において「スター型トポロジ」という仮想ネットワークのポリシが設定されているとする。スター型トポロジは、ある特定のノードを中心として放射状に構成されるトポロジであり、この場合、中心となる特定のノードの仮想ネットワークトポロジ構成部C15は、リンクステートデータベース記憶部C14によって認識された他の全てのノードに対してリンクを設定する(その各ノードを隣接ノードとして仮想ネットワークトポロジ構成テーブルを設定する)。また、中心となる特定のノード以外の各ノードの仮想ネットワークトポロジ構成部C15は、その特定のノードに対してリンクを設定する(特定のノードを隣接ノードとして仮想ネットワークトポロジ構成テーブルを設定する)。
また、例えば、トポロジポリシ設定部C18において「ツリー型トポロジ」という仮想ネットワークのポリシが設定されているとする。ツリー型トポロジは、ある特定のノードを頂点とし、その他のノードが階層的に枝分かれしながら接続される構成のトポロジであり、この場合、仮想ネットワークトポロジ構成部C15は、リンクステートデータベース記憶部C14によって認識されたノードのうち、自ノードの上位階層のノードおよび下位階層のノードとリンクを設定する。すなわち、上位階層のノードおよび下位階層のノードを隣接ノードとして仮想ネットワークトポロジ構成テーブルを設定する。
なお、スター型トポロジにおいて中心となる特定のノードや、ツリー型トポロジにおいて頂点となる特定のノードは、事前に定めておけばよい。あるいは、最大または最小のノードID(IPアドレスでもよい。)を持つノードを特定のノードとしてもよい。
トポロジポリシ設定部C18には、仮想ネットワークトポロジ構成部C15において自動的に構成される仮想ネットワークのトポロジ構成指針(トポロジポリシ)が設定されている。換言すれば、トポロジポリシ設定部C18は、予め定められたトポロジポリシを記憶する。トポロジポリシの例として、フルメッシュトポロジ、リング型トポロジ、スター型トポロジ、ツリー型トポロジなどが挙げられる。既に説明したように、例えば、フルメッシュトポロジが設定される場合、リンクステートデータベース記憶部C14によって認識された他ノードの全てに対して仮想リンクを設定するように隣接ノードの設定がなされる。また例えば、リング型トポロジが設定される場合、リンクステートデータベース記憶部C14によって認識されている他のノードのうち、自ノードと隣り合うノードIDを有するノード(すなわち自ノードのIDより大きいIDをもつノードのうち、最も小さいIDをもつノードと、自ノードのIDより小さいIDをもつノードのうち、最も大きいIDをもつノード)に対してそれぞれ仮想リンクを設定するように隣接ノードの設定がなされる。
図12は、第3の実施形態における制御メッセージ用トポロジと仮想ネットワークトポロジとの関係の例を示す説明図である。図12に示す例では、仮想ネットワークトポロジとしてリング型トポロジが構成される場合の制御メッセージ用トポロジと仮想ネットワークトポロジとの関係を示している。各ノードC1〜C6のトポロジポリシ設定部C18に「リング型トポロジ」が設定されているとすると、各ノードの仮想ネットワークトポロジ構成部C15がそのトポロジポリシに応じて隣接ノードを設定し、図12に例示する仮想ネットワークトポロジT23のように、ノードIDの並びでリング型トポロジが構成される。
次に、動作について説明する。
図13は、本発明の第3の実施形態のノードがリンクステート情報を受信した際の動作の例を示す説明図である。ノードC1を例にして動作を説明する。
第1の実施形態と同様の処理については、図4と同一の符号を付し、説明を省略する。すなわち、図13に示すステップS101〜S105およびステップS107〜S109の動作は、第1の実施形態における動作(図4参照)と同様の動作である。
本実施形態では、ステップS105においてノードのリストに変化があると判定した場合(ステップS105のYes)、仮想ネットワークトポロジ構成部C15は、トポロジポリシ設定部C18に設定されているトポロジポリシを参照する(ステップS306)。換言すれば、トポロジポリシ設定部C18を参照し、自動的に構成すべきトポロジの形状に対するポリシを調べる。
次に、仮想ネットワークトポロジ構成部C15は、参照したトポロジポリシに適合するように仮想ネットワークトポロジ構成テーブルの更新を行う(ステップS307)。例えば、フルメッシュトポロジというトポロジポリシが設定されているとする。また、ステップS105においてノードの追加が検出されたとする。この場合、仮想ネットワークトポロジ構成部C15は、検出されたノードに対する仮想リンクを構成するための隣接ノード設定エントリを仮想ネットワークトポロジ設定テーブルに追加する。また、あるノードの離脱が検出された場合、仮想ネットワークトポロジ構成部C15は、検出されたノードに対する隣接ノード設定エントリを、仮想ネットワークトポロジ設定テーブルから削除する。
ステップS307の後、更新された仮想ネットワークトポロジ構成テーブルに基づくリンクステート情報の送信など、ステップS107〜S109の処理を行う。
次に本実施形態の効果について説明する。
本実施形態では、第1の実施形態と同様の効果を得ることができる。また、リンクステートデータベース記憶部C14によって認識されたノードのリストに基づいて、仮想ネットワークトポロジ構成部C15が、トポロジポリシ設定部C18に設定されているトポロジポリシに応じて隣接ノードの設定を行う。このように動作することにより、ノードの追加・離脱などが発生しても自動的に事前に設定したトポロジポリシに従ってトポロジが再構成され、仮想ネットワークのトポロジの最適化を図ることができる。
実施形態4.
図14は、本発明の第4の実施形態のノードを示すブロック図である。図14に示す本発明の第4の実施形態のノードD1,D2は、ベースネットワークN1を介して接続されている。前述の各実施形態と同様に、ベースネットワークN1に接続されるノードの数は2つに限定されない。各ノードD1,D2は、仮想ネットワークに属するノードであり、それぞれ同一の構成を有する。そのため、以下、ノードD1を例に説明する。
ノードD1は、DHTプロトコル部D11と、ツリー配送制御部D12と、リンクステート情報交換部D13と、リンクステートデータベース記憶部D14と、仮想ネットワークトポロジ構成部D15と、経路計算部D16と、ルーティングテーブル記憶部D17と、トポロジポリシ設定部D18とを備える。これらの構成要素のうち、DHTプロトコル部D11と、ツリー配送制御部D12と、リンクステート情報交換部D13と、リンクステートデータベース記憶部D14は、第3の実施形態のノードC1(図1参照)におけるDHTプロトコル部C11、ツリー配送制御部C12、リンクステート情報交換部C13、リンクステートデータベース記憶部C14と同様の構成要素であり、説明を省略する。
仮想ネットワークトポロジ構成部D15は、リンクステートデータベース記憶部D14から渡されたノードのリストおよびトポロジポリシ設定部D18において設定されているトポロジポリシに基づいて複数の仮想ネットワークのトポロジを自動的に構成する機能を有する。本実施形態では、トポロジポリシ設定部D18には複数の仮想ネットワークを構成するためのトポロジポリシが設定されており、仮想ネットワークトポロジ構成部D15は、それぞれの仮想ネットワークのトポロジポリシに基づいて隣接ノードの設定を行う。個々の仮想ネットワークごとの隣接ノード設定の方法は、図10のトポロジポリシ設定部C18において説明した方法と同様である。
経路計算部D16は、リンクステートデータベース記憶部D14によって認識された、各仮想ネットワークのリンクステート情報を用いて、各仮想ネットワーク内の各ノードへ到達するための次ホップまたは経路全体を計算し、経路エントリとしてルーティングテーブル記憶部D17へ登録する。すなわち、経路計算部D16は、仮想ネットワーク単位で経路計算を行い、その結果導出した次ホップまたは経路全体をルーティングテーブル記憶部D17に登録する。個々の仮想ネットワークごとに経路計算部D16が行う処理は、第1の実施形態における経路計算部A16の処理と同様の処理でよい。また、経路計算部D16は、各仮想ネットワークごとに異なる経路計算アルゴリズムで経路計算を行ってもよい。
ルーティングテーブル記憶部D17は、各仮想ネットワークごとにルーティングテーブルを記憶し、経路計算部D16によって計算された各仮想ネットワークごとの経路エントリの登録を受け付ける。各仮想ネットワークごとの個々のルーティングテーブルは、第1の実施形態のルーティングテーブル記憶部A17におけるルーティングテーブルと同様である。
トポロジポリシ設定部D18は、複数の仮想ネットワークを構成するためのトポロジポリシが設定されている。図15は、トポロジポリシ設定部D18に設定されるトポロジポリシの例を示す。本実施形態におけるトポロジポリシは、第3の実施形態におけるトポロジポリシと同様に、仮想ネットワークの構成態様を指定する情報である。ただし、複数種類の各仮想ネットワークごとにトポロジポリシが設定される点で、第3の実施形態と異なる。図15に示す例では、3つの仮想ネットワーク(仮想ネットワークX,Y,Z)に対応するトポロジポリシが設定されている。具体的には、仮想ネットワークXに対応してフルメッシュトポロジが設定され、仮想ネットワークYに対応してリング型トポロジが設定され、仮想ネットワークZにはノードD1を中心とするスタートポロジを構成するとして設定がなされている。
本実施形態では、トポロジポリシ設定部D18において複数の仮想ネットワークごとにトポロジポリシが設定され、各仮想ネットワークごとに仮想ネットワークトポロジ構成テーブルの設定、および経路計算を実行する点が、第3の実施形態と異なる。他の点については、第3の実施形態と同様である。
また、本実施形態では、DHTプロトコル部D11は、分散ハッシュテーブルにおける隣接ノードの死活監視を行う。この動作は、第1の実施形態におけるDHTプロトコル部A11と同様の動作である。そして、DHTプロトコル部D11が、複数の仮想ネットワークのうちいずれか1つ以上の仮想ネットワークに属するノードの離脱を検出した場合、ツリー配送制御部D12は、複数の仮想ネットワークのそれぞれに対する隣接ノードの設定に基づいて、仮想ネットワーク毎に個別にリンクステート情報をリンクステート情報交換部D13に広告させる。このリンクステート情報を受信したノードは、各仮想ネットワークごとに仮想ネットワークトポロジ構成テーブルの設定、および経路計算を実行する。このように、DHTプロトコル部D11は、ノードの死活監視を仮想ネットワーク毎ではなく共通的に行う。
次に本実施形態の効果について説明する。
本実施形態では、第1の実施形態と同様の効果を得ることができる。また、リンクステートデータベース記憶部D14によって認識されたノードのリストに基づき、仮想ネットワークトポロジ構成部D15が、トポロジポリシ設定部D18に設定されているトポロジポリシに応じて複数種類のそれぞれの仮想ネットワークごとに隣接ノードの設定を行う。すなわち、隣接ノードの設定を仮想ネットワーク単位で行い、結果的に複数の仮想ネットワークのそれぞれに対応するルーティングテーブルを作成することになる。このように動作することにより、異なるトポロジポリシをもつ複数の仮想ネットワークの構成を、ノードの追加・離脱などに追随して自動的に行うことができる。
また、複数の仮想ネットワークを構成する場合において、それぞれの仮想ネットワークごとにHelloメッセージによるノードの死活監視を行うとすると、仮想ネットワークの数に比例したトラフィックが発生してしまう。それに対し、本実施形態では、ノードの死活監視はDHTプロトコル部D11が共通的に行う。そのため、ノードの死活監視に必要なトラフィック量は仮想ネットワークの数に比例させずに一定に抑えることができる。
上記の各実施形態において、DHTプロトコル部、ツリー配送制御部、リンクステート情報交換部、リンクステートデータベース記憶部、仮想ネットワークトポロジ設定部、経路計算部は、例えば、プログラム経路制御プログラムに従って動作するCPUによって実現されていてもよい。また、ルーティングテーブル記憶部およびトポロジポリシ設定部は、例えば、コンピュータが備える記憶装置によって実現されていてもよい。
次に、本発明の概要について説明する。図16は、本発明の概要を示すブロック図である。本発明のノードは、ベースネットワーク上に設けられる仮想ネットワークに属し、リンクステート型ルーティングプロトコルによる仮想ネットワークの経路制御を行うノードである。そして、本発明のノードは、図16に示すように、分散ハッシュテーブル生成手段71と、リンクステート情報交換手段72と、ツリー配送制御手段73とを備える。
分散ハッシュテーブル生成手段71(例えば、DHTプロトコル部A11によって実現される。)は、メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成する。
リンクステート情報交換手段72(例えば、リンクステート情報交換部A13によって実現される。)は、自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信する。
ツリー配送制御手段73(例えば、ツリー配送制御部A12によって実現される。)は、リンクステート情報がそのリンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定める。このように、リンクステート情報の転送先を定めるのでリンクステート情報のトラフィック量を抑えることができる。
また、リンクステート型ルーティングプロトコルが、Chordであり、ツリー配送制御手段73が、Chord Broadcastにおけるブロードキャストツリーに沿ってリンクステート情報が転送されるようにリンクステート情報の転送先を定めてもよい。
また、仮想ネットワークに属するノードの死活監視を行う死活監視手段(例えば、DHTプロトコル部A11によって実現される。)を備え、リンクステート情報交換手段72が、仮想ネットワークに属するノードの離脱が検出されたときに、そのノードの離脱を示すリンクステート情報を送信してもよい。
また、リンクステート情報交換手段72が受信したリンクステート情報によって、そのリンクステート情報を送信したノードを認識するノード認識手段(例えば、リンクステートデータベース記憶部A14によって実現される。)と、仮想ネットワークに属する隣接ノードが設定されたテーブルを予め保持し、そのテーブルに設定された隣接ノードのうち、ノード認識手段が認識したノードを生存中の隣接ノードとして設定するテーブル設定手段(例えば、仮想ネットワークトポロジ構成部A15によって実現される。)とを備え、リンクステート情報交換手段72が、生存中の隣接ノードの情報を含むリンクステート情報を送信してもよい。
また、仮想ネットワークのトポロジに対する指針であるトポロジポリシを保持するトポロジポリシ保持手段(例えば、トポロジポリシ設定部B18)と、仮想ネットワークに属する隣接ノードが設定されたテーブルを保持し、受信したリンクステート情報に含まれるノード情報およびリンク情報がトポロジポリシに合致しない場合、そのテーブルにおける隣接ノードの設定を、トポロジポリシに合致するように修正するテーブル設定手段(例えば、仮想ネットワークトポロジ設定部B15によって実現される。)とを備え、リンクステート情報交換手段72が、修正後のテーブルに設定された隣接ノードの情報を含むリンクステート情報を送信してもよい。
また、リンクステート情報交換手段72が受信したリンクステート情報によって、仮想ネットワークに属するノードを認識するノード認識手段(例えば、リンクステートデータベース記憶部C14によって実現される。)と、仮想ネットワークの構成態様を指定する情報である態様指定情報を保持する態様指定情報保持手段(例えばトポロジポリシ設定部C18によって実現される。)と、仮想ネットワークに属する隣接ノードが設定されたテーブルを保持し、ノード認識手段が仮想ネットワークに属するノードを認識したときに、態様指定情報が指定する構成態様を満たすように、そのテーブルにおける隣接ノードの設定を修正するテーブル設定手段(例えば、仮想ネットワークトポロジ設定部C15によって実現される。)とを備え、リンクステート情報交換手段72が、修正後のテーブルに設定された隣接ノードの情報を含むリンクステート情報を送信してもよい。
また、態様指定情報保持手段(例えばトポロジポリシ設定部C18)が、仮想ネットワークの構成態様としてフルメッシュトポロジを指定する態様指定情報を保持し、テーブル設定手段が、ノード認識手段が認識した各ノードを隣接ノードとしてテーブルに設定してもよい。
また、態様指定情報保持手段(例えばトポロジポリシ設定部C18)が、仮想ネットワークの構成態様としてリング型トポロジを指定する態様指定情報を保持し、テーブル設定手段が、自ノードのノードIDより大きいノードIDを持つノードのうち、最も小さいノードIDを持つノードと、自ノードのノードIDより小さいノードIDを持つノードのうち、最も大きいノードIDを持つノードとを隣接ノードとしてテーブルに設定してもよい。
また、態様指定情報保持手段(例えばトポロジポリシ設定部C18)が、仮想ネットワークの構成態様としてスター型トポロジを指定する態様指定情報を保持し、テーブル設定手段が、自ノードがスター型トポロジの中心となる特定のノードであるならば、ノード認識手段が認識した各ノードを隣接ノードとしてテーブルに設定し、自ノードがスター型トポロジの中心となる特定のノードでないならば、その特定のノードを隣接ノードとしてテーブルに設定してもよい。
また、態様指定情報保持手段(例えばトポロジポリシ設定部C18)が、仮想ネットワークの構成態様としてツリー型トポロジを指定する態様指定情報を保持し、テーブル設定手段が、ノード認識手段が認識したノードのうち、自ノードの上位階層のノードおよび下位階層のノードを隣接ノードとしてテーブルに設定してもよい。
また、ノード認識手段が認識したノードが属する仮想ネットワーク上の経路計算を行う経路計算手段(例えば、経路計算部D16によって実現される。)を備え、テーブル設定手段が、複数の仮想ネットワークそれぞれに対応する複数のテーブルを保持し、態様指定情報保持手段が、個々の仮想ネットワーク毎の態様指定情報を保持し、テーブル設定手段が、個々の仮想ネットワーク毎に、その仮想ネットワークに対して定められた態様指定情報に応じて、その仮想ネットワークに対応するテーブルを設定し、経路計算手段が、個々の仮想ネットワーク毎に経路計算を行ってもよい。
また、仮想ネットワークに属するノードの死活監視を行う死活監視手段(例えば、DHTプロトコル部D11によって実現される。)を備え、リンクステート情報交換手段は、仮想ネットワークに属するノードの離脱が検出されたときに、個々の仮想ネットワーク毎に、そのノードの離脱を示すリンクステート情報を送信してもよい。
本発明は、例えば、VPN(Virtual Private Network )やオーバレイネットワーク等のような、仮想ネットワークに属するノードに好適に適用される。
本発明の第1の実施形態のノードを示すブロック図である。 本発明の第1の実施形態で設定される仮想ネットワークトポロジ設定テーブルの例を示す説明図である。 本発明の第1の実施形態における制御メッセージ用トポロジと仮想ネットワークトポロジとの関係を示す説明図である。 本発明の第1の実施形態のノードの動作の例を示すフローチャートである。 本発明の第2の実施形態のノードを示すブロック図である。 本発明の第2の実施形態で設定される仮想ネットワークトポロジ設定テーブルの例を示す説明図である。 本発明の第2の実施形態で設定されるトポロジポリシの例を示す説明図である。 本発明の第2の実施形態における制御メッセージ用トポロジと仮想ネットワークトポロジとの関係の例を示す説明図である。 本発明の第2の実施形態のノードの動作の例を示すフローチャートである。 本発明の第3の実施形態のノードを示すブロック図である。 本発明の第3の実施形態で設定される仮想ネットワークトポロジ設定テーブルの例を示す説明図である。 第3の実施形態における制御メッセージ用トポロジと仮想ネットワークトポロジとの関係の例を示す説明図である。 本発明の第3の実施形態のノードの動作の例を示すフローチャートである。 本発明の第4の実施形態のノードを示すブロック図である。 本発明の第4の実施形態で設定されるトポロジポリシの例を示す。 本発明の概要を示すブロック図である。
符号の説明
A1,A2 ノード
A11 DHTプロトコル部
A12 ツリー配送制御部
A13 リンクステート情報交換部
A14 リンクステートデータベース記憶部
A15 仮想ネットワークトポロジ設定部
A16 経路計算部
A17 ルーティングテーブル記憶部
71 分散ハッシュテーブル生成手段
72 リンクステート情報交換手段
73 ツリー配送制御手段

Claims (33)

  1. ベースネットワーク上に設けられる仮想ネットワークに属し、リンクステート型ルーティングプロトコルによる前記仮想ネットワークの経路制御を行うノードであって、
    メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成する分散ハッシュテーブル生成手段と、
    自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信するリンクステート情報交換手段と、
    リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定めるツリー配送制御手段と
    リンクステート情報交換手段が受信したリンクステート情報によって、当該リンクステート情報を送信したノードを認識するノード認識手段と、
    仮想ネットワークに属する隣接ノードが設定されたテーブルを予め保持し、前記テーブルに設定された隣接ノードのうち、前記ノード認識手段が認識したノードを生存中の隣接ノードとして設定するテーブル設定手段とを備え、
    リンクステート情報交換手段は、生存中の隣接ノードの情報を含むリンクステート情報を送信する
    ことを特徴とするノード。
  2. ベースネットワーク上に設けられる仮想ネットワークに属し、リンクステート型ルーティングプロトコルによる前記仮想ネットワークの経路制御を行うノードであって、
    メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成する分散ハッシュテーブル生成手段と、
    自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信するリンクステート情報交換手段と、
    リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定めるツリー配送制御手段と、
    仮想ネットワークのトポロジに対する指針であるトポロジポリシを保持するトポロジポリシ保持手段と、
    仮想ネットワークに属する隣接ノードが設定されたテーブルを保持し、受信したリンクステート情報に含まれるノード情報およびリンク情報が、前記トポロジポリシに合致しない場合、前記テーブルにおける隣接ノードの設定を、前記トポロジポリシに合致するように修正するテーブル設定手段とを備え、
    リンクステート情報交換手段は、修正後の前記テーブルに設定された隣接ノードの情報を含むリンクステート情報を送信する
    ことを特徴とするノード。
  3. ベースネットワーク上に設けられる仮想ネットワークに属し、リンクステート型ルーティングプロトコルによる前記仮想ネットワークの経路制御を行うノードであって、
    メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成する分散ハッシュテーブル生成手段と、
    自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信するリンクステート情報交換手段と、
    リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定めるツリー配送制御手段と、
    リンクステート情報交換手段が受信したリンクステート情報によって、仮想ネットワークに属するノードを認識するノード認識手段と、
    仮想ネットワークの構成態様を指定する情報である態様指定情報を保持する態様指定情報保持手段と、
    仮想ネットワークに属する隣接ノードが設定されたテーブルを保持し、ノード認識手段が仮想ネットワークに属するノードを認識したときに、前記態様指定情報が指定する構成態様を満たすように、前記テーブルにおける隣接ノードの設定を修正するテーブル設定手段とを備え、
    リンクステート情報交換手段は、修正後の前記テーブルに設定された隣接ノードの情報を含むリンクステート情報を送信する
    ことを特徴とするノード。
  4. 態様指定情報保持手段は、仮想ネットワークの構成態様としてフルメッシュトポロジを指定する態様指定情報を保持し、
    テーブル設定手段は、ノード認識手段が認識した各ノードを隣接ノードとして前記テーブルに設定する
    請求項に記載のノード。
  5. 態様指定情報保持手段は、仮想ネットワークの構成態様としてリング型トポロジを指定する態様指定情報を保持し、
    テーブル設定手段は、自ノードのノードIDより大きいノードIDを持つノードのうち、最も小さいノードIDを持つノードと、自ノードのノードIDより小さいノードIDを持つノードのうち、最も大きいノードIDを持つノードとを隣接ノードとして前記テーブルに設定する
    請求項に記載のノード。
  6. 態様指定情報保持手段は、仮想ネットワークの構成態様としてスター型トポロジを指定する態様指定情報を保持し、
    テーブル設定手段は、自ノードがスター型トポロジの中心となる特定のノードであるならば、ノード認識手段が認識した各ノードを隣接ノードとして前記テーブルに設定し、自ノードがスター型トポロジの中心となる特定のノードでないならば、前記特定のノードを隣接ノードとして前記テーブルに設定する
    請求項に記載のノード。
  7. 態様指定情報保持手段は、仮想ネットワークの構成態様としてツリー型トポロジを指定する態様指定情報を保持し、
    テーブル設定手段は、ノード認識手段が認識したノードのうち、自ノードの上位階層のノードおよび下位階層のノードを隣接ノードとして前記テーブルに設定する
    請求項に記載のノード。
  8. ノード認識手段が認識したノードが属する仮想ネットワーク上の経路計算を行う経路計算手段を備え、
    テーブル設定手段は、複数の仮想ネットワークそれぞれに対応する複数のテーブルを保持し、
    態様指定情報保持手段は、個々の仮想ネットワーク毎の態様指定情報を保持し、
    テーブル設定手段は、個々の仮想ネットワーク毎に、当該仮想ネットワークに対して定められた態様指定情報に応じて、当該仮想ネットワークに対応するテーブルを設定し、
    経路計算手段は、個々の仮想ネットワーク毎に経路計算を行う
    請求項から請求項のうちのいずれか1項に記載のノード。
  9. 仮想ネットワークに属するノードの死活監視を行う死活監視手段を備え、
    リンクステート情報交換手段は、仮想ネットワークに属するノードの離脱が検出されたときに、個々の仮想ネットワーク毎に、前記ノードの離脱を示すリンクステート情報を送信する
    請求項に記載のノード。
  10. リンクステート型ルーティングプロトコルは、Chordであり、
    ツリー配送制御手段は、Chord Broadcastにおけるブロードキャストツリーに沿ってリンクステート情報が転送されるようにリンクステート情報の転送先を定める
    請求項1から請求項9のうちのいずれか1項に記載のノード
  11. 仮想ネットワークに属するノードの死活監視を行う死活監視手段を備え、
    リンクステート情報交換手段は、仮想ネットワークに属するノードの離脱が検出されたときに、当該ノードの離脱を示すリンクステート情報を送信する
    請求項1から請求項10のうちのいずれか1項に記載のノード。
  12. ベースネットワーク上に設けられる仮想ネットワークに適用されるリンクステート型ルーティングプロトコルを用いた経路制御方法であって、
    メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成し、
    リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定め、
    自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信し、
    受信したリンクステート情報によって、当該リンクステート情報を送信したノードを認識し、
    仮想ネットワークに属する隣接ノードが設定されたテーブルを予め保持し、前記テーブルに設定された隣接ノードのうち、認識した前記ノードを生存中の隣接ノードとして設定し、
    生存中の隣接ノードの情報を含むリンクステート情報を送信する
    ことを特徴とする経路制御方法。
  13. ベースネットワーク上に設けられる仮想ネットワークに適用されるリンクステート型ルーティングプロトコルを用いた経路制御方法であって、
    メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成し、
    リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定め、
    自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信し、
    仮想ネットワークのトポロジに対する指針であるトポロジポリシを保持し、
    仮想ネットワークに属する隣接ノードが設定されたテーブルを保持し、受信したリンクステート情報に含まれるノード情報およびリンク情報が、前記トポロジポリシに合致しない場合、前記テーブルにおける隣接ノードの設定を、前記トポロジポリシに合致するように修正し、
    修正後の前記テーブルに設定された隣接ノードの情報を含むリンクステート情報を送信する
    ことを特徴とする経路制御方法。
  14. ベースネットワーク上に設けられる仮想ネットワークに適用されるリンクステート型ルーティングプロトコルを用いた経路制御方法であって、
    メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成し、
    リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定め、
    自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信し、
    受信したリンクステート情報によって、仮想ネットワークに属するノードを認識し、
    仮想ネットワークの構成態様を指定する情報である態様指定情報を保持し、
    仮想ネットワークに属する隣接ノードが設定されたテーブルを保持し、仮想ネットワークに属するノードを認識したときに、前記態様指定情報が指定する構成態様を満たすように、前記テーブルにおける隣接ノードの設定を修正し、
    修正後の前記テーブルに設定された隣接ノードの情報を含むリンクステート情報を送信する
    ことを特徴とする経路制御方法。
  15. 仮想ネットワークの構成態様としてフルメッシュトポロジを指定する態様指定情報を保持し、
    認識した各ノードを隣接ノードとして前記テーブルに設定する
    請求項14に記載の経路制御方法。
  16. 仮想ネットワークの構成態様としてリング型トポロジを指定する態様指定情報を保持し、
    自ノードのノードIDより大きいノードIDを持つノードのうち、最も小さいノードIDを持つノードと、自ノードのノードIDより小さいノードIDを持つノードのうち、最も大きいノードIDを持つノードとを隣接ノードとして前記テーブルに設定する
    請求項14に記載の経路制御方法。
  17. 仮想ネットワークの構成態様としてスター型トポロジを指定する態様指定情報を保持し、
    自ノードがスター型トポロジの中心となる特定のノードであるならば、認識した各ノードを隣接ノードとして前記テーブルに設定し、自ノードがスター型トポロジの中心となる特定のノードでないならば、前記特定のノードを隣接ノードとして前記テーブルに設定する
    請求項14に記載の経路制御方法。
  18. 仮想ネットワークの構成態様としてツリー型トポロジを指定する態様指定情報を保持し、
    認識したノードのうち、自ノードの上位階層のノードおよび下位階層のノードを隣接ノードとして前記テーブルに設定する
    請求項14に記載の経路制御方法。
  19. 複数の仮想ネットワークそれぞれに対応する複数のテーブルを保持し、
    個々の仮想ネットワーク毎の態様指定情報を保持し、
    個々の仮想ネットワーク毎に、当該仮想ネットワークに対して定められた態様指定情報に応じて、当該仮想ネットワークに対応するテーブルを設定し、
    認識したノードが属する仮想ネットワーク上の経路計算を個々の仮想ネットワーク毎に行う
    請求項14から請求項18のうちのいずれか1項に記載の経路制御方法。
  20. 仮想ネットワークに属するノードの死活監視を行い、
    仮想ネットワークに属するノードの離脱が検出されたときに、個々の仮想ネットワーク毎に、前記ノードの離脱を示すリンクステート情報を送信する
    請求項19に記載の経路制御方法。
  21. リンクステート型ルーティングプロトコルは、Chordであり、
    Chord Broadcastにおけるブロードキャストツリーに沿ってリンクステート情報が転送されるようにリンクステート情報の転送先を定める
    請求項12から請求項20のうちのいずれか1項に記載の経路制御方法。
  22. 仮想ネットワークに属するノードの死活監視を行い、
    仮想ネットワークに属するノードの離脱が検出されたときに、当該ノードの離脱を示すリンクステート情報を送信する
    請求項12から請求項21のうちのいずれか1項に記載の経路制御方法。
  23. ベースネットワーク上に設けられる仮想ネットワークに属し、リンクステート型ルーティングプロトコルによる前記仮想ネットワークの経路制御を行うノードとなるコンピュータに搭載される経路制御プログラムであって、
    前記コンピュータに、
    メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成する分散ハッシュテーブル生成処理、
    自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信するリンクステート情報交換処理
    リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定めるツリー配送制御処理
    リンクステート情報交換処理で受信したリンクステート情報によって、当該リンクステート情報を送信したノードを認識するノード認識処理、および、
    仮想ネットワークに属する隣接ノードが設定されたテーブルを予め保持し、前記テーブルに設定された隣接ノードのうち、前記ノード認識処理で認識したノードを生存中の隣接ノードとして設定するテーブル設定処理を実行させ、
    リンクステート情報交換処理で、生存中の隣接ノードの情報を含むリンクステート情報を送信させる
    ための経路制御プログラム。
  24. ベースネットワーク上に設けられる仮想ネットワークに属し、リンクステート型ルーティングプロトコルによる前記仮想ネットワークの経路制御を行うノードとなるコンピュータであって、仮想ネットワークのトポロジに対する指針であるトポロジポリシを保持するトポロジポリシ保持手段を備えたコンピュータに搭載される経路制御プログラムにおいて、
    前記コンピュータに、
    メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成する分散ハッシュテーブル生成処理、
    自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信するリンクステート情報交換処理、
    リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定めるツリー配送制御処理、および、
    仮想ネットワークに属する隣接ノードが設定されたテーブルを保持し、受信したリンクステート情報に含まれるノード情報およびリンク情報が、前記トポロジポリシに合致しない場合、前記テーブルにおける隣接ノードの設定を、前記トポロジポリシに合致するように修正するテーブル設定処理を実行させ、
    リンクステート情報交換処理で、修正後の前記テーブルに設定された隣接ノードの情報を含むリンクステート情報を送信させる
    ための経路制御プログラム。
  25. ベースネットワーク上に設けられる仮想ネットワークに属し、リンクステート型ルーティングプロトコルによる前記仮想ネットワークの経路制御を行うノードとなるコンピュータであって、仮想ネットワークの構成態様を指定する情報である態様指定情報を保持する態様指定情報保持手段を備えたコンピュータに搭載される経路制御プログラムにおいて、
    前記コンピュータに、
    メッセージを転送すべき次のノードを示す分散ハッシュテーブルを、リンクステート型ルーティングプロトコルを用いて生成する分散ハッシュテーブル生成処理、
    自ノードに関するノード情報と、隣接ノードとの各リンクに関する情報であるリンク情報とを含む情報であるリンクステート情報を送受信するリンクステート情報交換処理、
    リンクステート情報が当該リンクステート情報の送信元ノードをルートとするツリーに沿って配送されるようにリンクステート情報の転送先を定めるツリー配送制御処理、
    リンクステート情報交換処理で受信したリンクステート情報によって、仮想ネットワークに属するノードを認識するノード認識処理、および、
    仮想ネットワークに属する隣接ノードが設定されたテーブルを保持し、ノード認識処理で仮想ネットワークに属するノードを認識したときに、前記態様指定情報が指定する構成態様を満たすように、前記テーブルにおける隣接ノードの設定を修正するテーブル設定処理を実行させ、
    リンクステート情報交換処理で、修正後の前記テーブルに設定された隣接ノードの情報を含むリンクステート情報を送信させる
    ための経路制御プログラム。
  26. 態様指定情報保持手段が仮想ネットワークの構成態様としてフルメッシュトポロジを指定する態様指定情報を保持するコンピュータに搭載され、
    前記コンピュータに、
    テーブル設定処理で、ノード認識処理で認識した各ノードを隣接ノードとして前記テーブルに設定させる
    請求項25に記載の経路制御プログラム。
  27. 態様指定情報保持手段が仮想ネットワークの構成態様としてリング型トポロジを指定する態様指定情報を保持するコンピュータに搭載され、
    前記コンピュータに、
    テーブル設定処理で、自ノードのノードIDより大きいノードIDを持つノードのうち、最も小さいノードIDを持つノードと、自ノードのノードIDより小さいノードIDを持つノードのうち、最も大きいノードIDを持つノードとを隣接ノードとして前記テーブルに設定させる
    請求項25に記載の経路制御プログラム。
  28. 態様指定情報保持手段が仮想ネットワークの構成態様としてスター型トポロジを指定する態様指定情報を保持するコンピュータに搭載され、
    前記コンピュータに、
    テーブル設定処理で、自ノードがスター型トポロジの中心となる特定のノードであるならば、ノード認識処理で認識した各ノードを隣接ノードとして前記テーブルに設定させ、自ノードがスター型トポロジの中心となる特定のノードでないならば、前記特定のノードを隣接ノードとして前記テーブルに設定させる
    請求項25に記載の経路制御プログラム。
  29. 態様指定情報保持手段が仮想ネットワークの構成態様としてツリー型トポロジを指定する態様指定情報を保持するコンピュータに搭載され、
    前記コンピュータに、
    テーブル設定処理で、ノード認識処理で認識したノードのうち、自ノードの上位階層のノードおよび下位階層のノードを隣接ノードとして前記テーブルに設定させる
    請求項25に記載の経路制御プログラム。
  30. 態様指定情報保持手段が個々の仮想ネットワーク毎の態様指定情報を保持するコンピュータに搭載され、
    前記コンピュータに
    ノード認識処理で認識したノードが属する仮想ネットワーク上の経路計算を行う経路計算処理を実行させ、
    テーブル設定処理で、複数の仮想ネットワークそれぞれに対応する複数のテーブルを保持させ、個々の仮想ネットワーク毎に、当該仮想ネットワークに対して定められた態様指定情報に応じて、当該仮想ネットワークに対応するテーブルを設定させ、
    経路計算処理で、個々の仮想ネットワーク毎に経路計算を行わせる
    請求項25から請求項29のうちのいずれか1項に記載の経路制御プログラム。
  31. 前記コンピュータに、
    仮想ネットワークに属するノードの死活監視を行う死活監視処理を実行させ、
    リンクステート情報交換処理で、仮想ネットワークに属するノードの離脱が検出されたときに、個々の仮想ネットワーク毎に、前記ノードの離脱を示すリンクステート情報を送信させる
    請求項30に記載の経路制御プログラム。
  32. 前記コンピュータに、
    分散ハッシュテーブル生成処理で、リンクステート型ルーティングプロトコルとしてChordを用いて分散ハッシュテーブルを生成させ、
    ツリー配送制御処理で、Chord Broadcastにおけるブロードキャストツリーに沿ってリンクステート情報が転送されるようにリンクステート情報の転送先を定めさせる
    請求項23から請求項31のうちのいずれか1項に記載の経路制御プログラム。
  33. 前記コンピュータに、
    仮想ネットワークに属するノードの死活監視を行う死活監視処理を実行させ、
    リンクステート情報交換処理で、仮想ネットワークに属するノードの離脱が検出されたときに、当該ノードの離脱を示すリンクステート情報を送信させる
    請求項23から請求項32のうちのいずれか1項に記載の経路制御プログラム。
JP2008004913A 2008-01-11 2008-01-11 ノード、経路制御方法および経路制御プログラム Expired - Fee Related JP5029373B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008004913A JP5029373B2 (ja) 2008-01-11 2008-01-11 ノード、経路制御方法および経路制御プログラム
US12/171,346 US8144621B2 (en) 2008-01-11 2008-07-11 Node, routing control method, and routing control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008004913A JP5029373B2 (ja) 2008-01-11 2008-01-11 ノード、経路制御方法および経路制御プログラム

Publications (2)

Publication Number Publication Date
JP2009171056A JP2009171056A (ja) 2009-07-30
JP5029373B2 true JP5029373B2 (ja) 2012-09-19

Family

ID=40850570

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008004913A Expired - Fee Related JP5029373B2 (ja) 2008-01-11 2008-01-11 ノード、経路制御方法および経路制御プログラム

Country Status (2)

Country Link
US (1) US8144621B2 (ja)
JP (1) JP5029373B2 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5080406B2 (ja) * 2008-09-05 2012-11-21 株式会社エヌ・ティ・ティ・ドコモ 配信装置、端末装置及びシステム並びに方法
JP5112229B2 (ja) * 2008-09-05 2013-01-09 株式会社エヌ・ティ・ティ・ドコモ 配信装置、端末装置及びシステム並びに方法
JP5239783B2 (ja) * 2008-11-27 2013-07-17 富士通株式会社 経路計算方法及びノード装置
US8201237B1 (en) 2008-12-10 2012-06-12 Amazon Technologies, Inc. Establishing secure remote access to private computer networks
US9137209B1 (en) 2008-12-10 2015-09-15 Amazon Technologies, Inc. Providing local secure network access to remote services
US9524167B1 (en) 2008-12-10 2016-12-20 Amazon Technologies, Inc. Providing location-specific network access to remote services
US8230050B1 (en) 2008-12-10 2012-07-24 Amazon Technologies, Inc. Providing access to configurable private computer networks
CN101860459B (zh) * 2009-04-07 2012-08-29 鸿富锦精密工业(深圳)有限公司 网络装置及其连线状态侦测方法
JP5294324B2 (ja) * 2009-06-22 2013-09-18 日本電気株式会社 ネットワークシステム
JP5365434B2 (ja) * 2009-09-07 2013-12-11 富士通株式会社 ノード装置及び経路計算方法
CN101656618B (zh) * 2009-09-11 2012-09-05 中兴通讯股份有限公司 一种基于结构化对等网络的多媒体消息广播方法及系统
JP5087062B2 (ja) * 2009-11-12 2012-11-28 日本電信電話株式会社 経路計算装置、経路計算方法、および、経路計算プログラム
US8995301B1 (en) 2009-12-07 2015-03-31 Amazon Technologies, Inc. Using virtual networking devices to manage routing cost information
US9036504B1 (en) 2009-12-07 2015-05-19 Amazon Technologies, Inc. Using virtual networking devices and routing information to associate network addresses with computing nodes
US7937438B1 (en) 2009-12-07 2011-05-03 Amazon Technologies, Inc. Using virtual networking devices to manage external connections
US9203747B1 (en) 2009-12-07 2015-12-01 Amazon Technologies, Inc. Providing virtual networking device functionality for managed computer networks
US7953865B1 (en) 2009-12-28 2011-05-31 Amazon Technologies, Inc. Using virtual networking devices to manage routing communications between connected computer networks
US7991859B1 (en) 2009-12-28 2011-08-02 Amazon Technologies, Inc. Using virtual networking devices to connect managed computer networks
US8224971B1 (en) 2009-12-28 2012-07-17 Amazon Technologies, Inc. Using virtual networking devices and routing information to initiate external actions
CN102823194A (zh) * 2010-03-31 2012-12-12 瑞典爱立信有限公司 操作、监管和管理代理和用于处理操作、监管和管理消息的方法
KR101612475B1 (ko) 2010-04-19 2016-04-27 삼성전자주식회사 가십 기반의 p2p 서비스의 파트너쉽 형성 방법 및 장치
US8719307B2 (en) * 2010-04-23 2014-05-06 Red Hat, Inc. Concurrent linked hashed maps
JP5476261B2 (ja) * 2010-09-14 2014-04-23 株式会社日立製作所 マルチテナント型情報処理システム、管理サーバ及び構成管理方法
KR20120096314A (ko) * 2011-02-22 2012-08-30 한국전자통신연구원 가상 네트워크 구성장치 및 그 방법
US8995303B1 (en) * 2011-03-11 2015-03-31 Amazon Technologies, Inc. Coordinated routing of network traffic
JP5668579B2 (ja) * 2011-04-08 2015-02-12 富士通株式会社 通信装置及び経路決定方法
US8855014B2 (en) * 2012-06-15 2014-10-07 Cisco Technology, Inc. Distributed stateful path computation element overlay architecture
WO2014050386A1 (ja) * 2012-09-27 2014-04-03 日本電気株式会社 ネットワーク、ネットワークノード、配信方法及びネットワークノード用プログラム
US9819548B2 (en) * 2013-01-25 2017-11-14 Cisco Technology, Inc. Shared information distribution in a computer network
EP2945320B1 (en) * 2013-02-06 2018-01-31 Huawei Technologies Co., Ltd. Method, device and routing system for data transmission of network virtualization
US9565105B2 (en) * 2013-09-04 2017-02-07 Cisco Technology, Inc. Implementation of virtual extensible local area network (VXLAN) in top-of-rack switches in a network environment
JP5716107B1 (ja) * 2014-02-25 2015-05-13 日本電信電話株式会社 ノード検出システム及び方法及び仮想ノードの機能制御装置及び方法
CN105162712B (zh) * 2015-10-20 2019-01-15 烽火通信科技股份有限公司 一种路由器中分布式协议的实现方法及系统
JP6697158B2 (ja) * 2016-06-10 2020-05-20 富士通株式会社 情報管理プログラム、情報管理方法、及び情報管理装置
US10268776B1 (en) * 2016-09-23 2019-04-23 Amazon Technologies, Inc. Graph store built on a distributed hash table
JP7437722B2 (ja) * 2019-01-31 2024-02-26 コネクトフリー株式会社 データ送信方法、通信処理方法、装置、および通信処理プログラム
CN110830394B (zh) * 2019-12-10 2021-09-24 中国航空无线电电子研究所 一种基于RapidIO网络的路由表生成方法
US11689455B2 (en) 2020-05-28 2023-06-27 Oracle International Corporation Loop prevention in virtual layer 2 networks
US11765080B2 (en) 2020-12-30 2023-09-19 Oracle International Corporation Layer-2 networking span port in a virtualized cloud environment
US11671355B2 (en) 2021-02-05 2023-06-06 Oracle International Corporation Packet flow control in a header of a packet
JP2024507147A (ja) * 2021-02-13 2024-02-16 オラクル・インターナショナル・コーポレイション クラウドインフラストラクチャにおけるキャッシュされたフロー情報の無効化
US11777897B2 (en) 2021-02-13 2023-10-03 Oracle International Corporation Cloud infrastructure resources for connecting a service provider private network to a customer private network
US20220263754A1 (en) * 2021-02-13 2022-08-18 Oracle International Corporation Packet flow in a cloud infrastructure based on cached and non-cached configuration information

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3762348B2 (ja) * 2002-10-07 2006-04-05 日本電信電話株式会社 階層化ネットワークノード並びにそのノードにより構成されたネットワーク
US20050015511A1 (en) * 2003-07-02 2005-01-20 Nec Laboratories America, Inc. Accelerated large data distribution in overlay networks
US7788400B2 (en) * 2003-09-19 2010-08-31 Hewlett-Packard Development Company, L.P. Utilizing proximity information in an overlay network
US7313565B2 (en) * 2004-02-19 2007-12-25 Microsoft Corporation Data overlay, self-organized metadata overlay, and associated methods
US7418454B2 (en) * 2004-04-16 2008-08-26 Microsoft Corporation Data overlay, self-organized metadata overlay, and application level multicasting
WO2006068365A1 (en) * 2004-12-21 2006-06-29 Electronics And Telecommunications Research Institute P2p overlay network construction method and apparatus
US7428220B1 (en) * 2005-02-10 2008-09-23 Sun Microsystems, Inc. Method and apparatus for data aggregation in a distributed system
US20070079004A1 (en) * 2005-09-30 2007-04-05 Junichi Tatemura Method and apparatus for distributed indexing
US7468952B2 (en) * 2005-11-29 2008-12-23 Sony Computer Entertainment Inc. Broadcast messaging in peer to peer overlay network
US7974221B2 (en) * 2006-01-24 2011-07-05 Brown Universtiy Efficient content authentication in peer-to-peer networks
US7684352B2 (en) * 2006-11-02 2010-03-23 Nortel Networks Ltd Distributed storage of routing information in a link state protocol controlled network
EP2087667A4 (en) * 2006-11-27 2015-03-04 Ericsson Telefon Ab L M METHOD AND SYSTEM FOR PROVIDING A ROUTING ARCHITECTURE FOR OVERLAY NETWORKS
US8223668B2 (en) * 2006-12-14 2012-07-17 Rockstar Bidco Lp Method and apparatus for exchanging routing information and the establishment of connectivity across multiple network areas
US8693392B2 (en) * 2007-02-21 2014-04-08 Avaya Canada Corp. Peer-to-peer communication system and method
JP4894590B2 (ja) * 2007-03-30 2012-03-14 ブラザー工業株式会社 ネットワークシステム、情報処理装置及び情報処理用プログラム
US8374086B2 (en) * 2007-06-06 2013-02-12 Sony Computer Entertainment Inc. Adaptive DHT node relay policies
US8238237B2 (en) * 2007-06-18 2012-08-07 Sony Computer Entertainment Inc. Load balancing distribution of data to multiple recipients on a peer-to-peer network
US8930522B2 (en) * 2007-06-29 2015-01-06 Alcatel Lucent Replica/cache locator, an overlay network and a method to locate replication tables and caches therein

Also Published As

Publication number Publication date
US8144621B2 (en) 2012-03-27
US20090180489A1 (en) 2009-07-16
JP2009171056A (ja) 2009-07-30

Similar Documents

Publication Publication Date Title
JP5029373B2 (ja) ノード、経路制御方法および経路制御プログラム
US8817798B2 (en) Constraining topology size and recursively calculating routes in large networks
US8320361B2 (en) Advertising alternate paths at border gateway protocol route reflectors
JP4886045B2 (ja) 分散型通信ネットワークにおけるネットワーク管理タスクの分散配置
EP2137844B1 (en) Distributed routing table architecture and design
CN113261245B (zh) 网络链路或节点故障的恢复系统和方法
CN100555968C (zh) Igp中的bgp下一跳路由的自动路由标记
CN107070798B (zh) 网络区域划分方法、网络设备和系统
US7200120B1 (en) Packet-switched network topology tracking method and system
US8467389B2 (en) Subscription Management and Routing Protocol (SMRP) and Method
EP2915294B1 (en) Multiple path availability between walkable clusters
EP3259887A2 (en) Automatic optimal route reflector root address assignment to route reflector clients and fast failover in a network environment
EP2282459A1 (en) Link state routing protocols for database synchronisation in GMPLS networks
JP2009543237A (ja) 自己統制ネットワークのための分散ハッシュメカニズム
JP5191494B2 (ja) リンク状態アドバタイズメント(lsa)に基づきスパニングツリーを計算する方法、ブリッジ及びコンピュータ・ネットワーク
US20120124238A1 (en) Prioritization of routing information updates
EP2997700B1 (en) Method for assured network state configuration and rollback in link-state packet networks
Mimura et al. RelayCast: A middleware for application-level multicast services
EP1983699A1 (en) Multicast routing protocol for a clustered mobile ad hoc network
JP4369882B2 (ja) ルーティング方法、および、ネットワークシステム
JP4863973B2 (ja) オーバーレイマルチキャスト配信ネットワーク構成方法とシステムおよびプログラム
JP2013118537A (ja) マルチキャスト配信システム、ルータ及びマルチキャスト配信方法
JP5287500B2 (ja) ノード装置およびノード装置用プログラム
JP2008191904A (ja) 分散データ管理システムおよび方法
JP2011145749A (ja) P2p型通信用ピア情報提供システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120501

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120529

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120611

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150706

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees