JP5429179B2 - ネットワークノードおよびその負荷分散方法 - Google Patents

ネットワークノードおよびその負荷分散方法 Download PDF

Info

Publication number
JP5429179B2
JP5429179B2 JP2010531879A JP2010531879A JP5429179B2 JP 5429179 B2 JP5429179 B2 JP 5429179B2 JP 2010531879 A JP2010531879 A JP 2010531879A JP 2010531879 A JP2010531879 A JP 2010531879A JP 5429179 B2 JP5429179 B2 JP 5429179B2
Authority
JP
Japan
Prior art keywords
network
module
node
virtual
virtual node
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.)
Active
Application number
JP2010531879A
Other languages
English (en)
Other versions
JPWO2010038775A1 (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 JP2010531879A priority Critical patent/JP5429179B2/ja
Publication of JPWO2010038775A1 publication Critical patent/JPWO2010038775A1/ja
Application granted granted Critical
Publication of JP5429179B2 publication Critical patent/JP5429179B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Landscapes

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

Description

本発明は、複数の同等な機能を持つネットワークモジュールにより通信装置として構成されたネットワークノードとその負荷分散方法に関する。
TCP/IP(Transmission Control Protocol/Internet Protocol)やMPLS(Multi−Protocol Label Switching)などに基づくネットワークをアンダーレイネットワークとして、このようなアンダーネットワーク上に覆いかぶせるように構築した仮想ネットワークであって、アンダーレイネットワークとは異なる名前空間を有するネットワークのことを、オーバーレイネットワークと呼ぶ。アンダーレイネットワーク上には、複数のサービスに対応して複数のオーバーレイネットワークを構築することが可能である。非特許文献1(Andy Bavier, Nick Feamster, Mark Huang, Larry Peterson, Jennifer Rexford, “In VINI veritas: realistic and controlled network experimentation,” September 2006, SIGCOMM ’06: Proceedings of the 2006 conference on Applications, technologies, architectures, and protocols for computer communications)には、オーバーレイネットワークで構成した仮想ネットワーク内では、既存のネットワーク技術に依存しないネットワーク技術を使えることが開示されている。これらのオーバーレイネットワーク技術は、例えば、インターネット上でSkypeやBitTorrentなどのサービスや機能を提供するために使われている。このようなオーバーレイネットワーク技術により、これまでのTCP/IP通信では実現できなかったファイヤーウォール越えの音声通信などを実現している。このように、オーバーレイネットワークの需要は、その使い勝手の良さとともに年々高まっている。また、上述のAndy Bavierらによる論文(非特許文献1)では、単一のサーバーを用いて複数の仮想ネットワークを収容するため、ソフトウェアで構成した仮想ノードを仮想マシン(バーチャルマシン;Virtual Machine)技術で分離する手法も開示されている。
オーバーレイネットワークを実現する手法として、複数のクライアント間でのピアツーピア(peer−to−peer)通信による手法がある。しかしながら、ピアツーピア通信を用いる場合にはトラフィックの最適化がネットワーク主導で行えないため、現状では、ピアツーピア通信によるオーバーレイネットワークのトラフィック増大が、各通信事業者のネットワークにおける帯域の浪費をもたらしている。
そこで特開2008−54214号公報(特許文献1)には、アンダーレイネットワーク上のサーバーに、ソフトウェアにより実現された仮想ノードを配備することによって、オーバーレイネットワークにおけるネットワーク主導によるトラフィックの最適化を実現する手法が開示されている。
しかしながら、特開2008−54214号公報に記載されたような、ソフトウェアにより実現された仮想ノードをアンダーレイネットワークに配備する手法では、一度に大量のオーバーレイネットワークを処理することができないため、仮想ノードがオーバーレイネットワークのスケーラビリティのボトルネックとなる。このため、ボトルネック解消のために、仮想ノードを搭載したネットワークノードの負荷分散を行う必要がある。
ところでネットワークにおけるノードの負荷分散を図る一般的な手法としては、単一のアドレスへのアクセスをラウンドロビン手法により複数のノードに振り分ける技術がある。また特開2004−110611号公報(特許文献2)には、ローカルネットワークに複数のサーバー(ローカルサーバー)が配備されているときに、外部ネットワークからの特定の一つのアドレスに対するアクセスを記憶してローカルサーバーのアドレスに変換を行うことにより、アクセスデータを複数のサーバーに振り分けてサーバーの処理を負荷分散する通信装置(以下、負荷分散装置あるいはロードバランサーと呼ぶ)が開示されている。
図1は、負荷分散装置902と負荷分散装置902に接続された複数のネットワークモジュール903とを有するシステムを示している。ネットワークモジュール903は、例えば、サーバーとして用いられるものである。この構成では、負荷分散装置903を用いて複数のネットワークモジュール903にサーバーアクセスの分散を行うことにより、システムのトータルとしての処理性能を向上できる。しかしながら、負荷分散装置902は物理インタフェース901を介して外部ネットワークと接続されているため、この物理インタフェース901がボトルネックとなる。したがってこのシステムでは、負荷分散装置902あるいは物理インタフェース901の転送性能によって性能が規定されることとなり、ネットワークモジュールの数を増やしたとしても、トータルとしての転送性能の頭打ちが発生する。
また上述した手法により、オーバーレイネットワークの構築のために複数のサーバーによってネットワークノードを構成する場合に、アンダーレイネットワーク上に複数のサーバーを配備しその前段にロードバランサーを配備し、このロードバランサーによりサーバー宛ての通信を振り分け、個々のサーバーに入力されるトラフィックを分散させてサーバー当たりの処理負荷を軽減することができる。しかしながらこの構成では、複数のサーバー群が外部通信装置と通信するときの外部ネットワークとの接続箇所が、ロードバランサーの一点に集中するため、トラフィックがロードバランサーに集中し、ロードバランサーの転送性能がボトルネックとなり、問題となる。またこのような構成では、あるサーバーにおける仮想ノードとしての制御信号処理、例えば、ルーティングやプロビジョニングなどの処理の結果を、ロードバランサーの処理に反映することができないため、統合的な制御を行うことができなくて、運用が煩雑になる。ロードバランサーは、あらかじめ設定された情報に一致するアクセスを検知したときに、どのサーバーへそのアクセスを振り分けるか決定し、そのアクセスを記憶するように構成されている。このため、仮想ノードが動的なルーティングプロトコル(STP(Spaninng Tree Protocol)やOSPF(Open Shortest Path First)、DHT(Distributed Hash Table)など)や動的なプロビジョニングを行って待ち受け状態を変更した場合には、ロードバランサーのあらかじめ設定された情報を動的に追加・変更・削除する必要がある。しかしながら、このような情報を仮想ノードからロードバランサーに転送するための仮想ノードとロードバランサーとの間の通信手段が存在しないため、仮想ノードとしての制御信号処理の結果を、ロードバランサーの処理に反映することができなくなる。
本発明の例示的な目的は、オーバーレイネットワークを収容することができる仮想ノードを1または複数実行することができるネットワークモジュールを構成要素として、これらの複数のネットワークモジュールを統合した一つのネットワークノードにおいて、ネットワークモジュールを増加させるに応じて、トータルの処理性能と転送性能が増加するようにすることにある。
また本発明の別の例示的な目的は、オーバーレイネットワークの仮想ノードを構成する複数のネットワークモジュール間で連携した制御を行うことにより、複数のネットワークモジュールを統合して一つのネットワークノードとして扱えるようにして、その管理・運用を容易にすることにある。
本発明の例示的な一態様によれば、ネットワークノードは、仮想ノードを搭載する複数のネットワークモジュールと、複数のネットワークモジュールをスター接続する際に当該スター接続の基点となるスイッチモジュールと、を備え、各ネットワークモジュールは、そのネットワークモジュールを外部ネットワークに接続する物理インタフェースと、物理インタフェースに到着したデータに関し、該データの情報から取り出したキーを基にあて先検索を行うことにより、あて先が、到着した物理インタフェースを搭載するネットワークモジュールに搭載された仮想ノードか、スイッチモジュールを経由して接続されるネットワークモジュールに搭載された仮想ノードか、を判断し、判断結果に応じて、いずれかのネットワークモジュールに搭載された仮想ノードにデータを伝送するネットワーク仮想化部と、を備える。
本発明の例示的な別の態様によれば、仮想ノードを搭載して外部ネットワークとの接続に用いる物理インタフェースを備える複数のネットワークモジュールと、複数のネットワークモジュールをスター接続する際に当該スター接続の基点となるスイッチモジュールと、を備えるネットワークノードにおける負荷分散方法は、物理インタフェースに到着したデータに関し、該データの情報から取り出したキーを基にあて先検索を行うことと、あて先検索の結果に基づき、該データのあて先が、到着した物理インタフェースを搭載するネットワークモジュールに搭載された仮想ノードか、スイッチモジュールを経由して接続されるネットワークモジュールに搭載された仮想ノードか、を判断することと、判断結果に応じて、いずれかのネットワークモジュールに搭載された仮想ノードにデータを伝送することと、複数のネットワークモジュールのうち負荷が最も軽いネットワークモジュールに新たな仮想ノードを設置することと、を有する。
上述した構成では、例えば、オーバーレイネットワークの仮想ノードを構成する複数のネットワークモジュール間で連携した制御を行わせることができて、複数のネットワークモジュールを統合して一つのネットワークノードとして扱うことが可能となり、ネットワークノードとしての管理・運用が容易になる。また、ネットワークノード内のネットワークモジュールを増加させることにより、例えば、処理分散による仮想ノードの性能向上と、インタフェース数が増えることによるトータル転送性能の向上を図ることができる。
ロードバランサー(負荷分散装置)を有するシステムを示す図である。 物理ネットワークとこの物理ネットワークに収容される複数の仮想ネットワークとの概要を説明する図である。 仮想ノードと仮想リンクによる仮想ネットワークの構成を示す図である。 ネットワークノードの構成を示すブロック図である。 送受信データを処理する機能ブロック間の接続を示すブロック図である。 制御信号の処理に関わる機能ブロック間の接続を示すブロック図である。 送受信データの制御情報を説明する図である。 仮想ノードのライフサイクルを示す図である。 仮想ノードインタフェースの構成を示すブロック図である。
次に、本発明の実施の形態について図面を参照して説明する。
以下に説明する本発明の例示的な実施形態は、複数の同等な機能を持つネットワークモジュールにより通信装置として構成されたネットワークノードとその負荷分散方法に関するものである。特に例示実施形態は、それぞれのネットワークモジュールに独立に配備され仮想化された仮想ノードの通信を実現するための、ネットワークモジュール間で連携したパスとそのテーブルの管理と制御とに向けられている。
最初に、本発明の例示実施形態を適用することが可能なネットワークの構成の一例について説明する。図2は、例えば物理ネットワーク(すなわちアンダーレイネットワーク)100と、そのような物理ネットワーク上に構築される複数の仮想ネットワーク(すなわちオーバーレイネットワーク)140,150との基本的な関係を示している。
物理ネットワーク100から、仮想ネットワークを構築するネットワークノード101〜105が構成され、これらのネットワークノード上に仮想ノード110〜113、120〜123が搭載されている。ここでは、2つの仮想ネットワーク140,150は、“A”および“B”の文字で区別されており、文字“A”がラベルされた仮想ノード110〜113は、“A”の仮想ネットワーク140の仮想ノードであり、文字“B”がラベルされた仮想ノード120〜123は“B”の仮想ネットワーク150の仮想ノードである。同一のネットワークノードに両方の仮想ネットワークの仮想ノードが共存してもよいし、片方の仮想ネットワークの仮想ノードのみが存在してもよい。これらの仮想ノードは、オーバーレイネットワークである仮想ネットワークごとに、仮想リンク141〜144、151〜154で相互に接続されている。仮想リンクには、例えば、TCPセッションやIP/IPSec(Internet Protocol Security)トンネル、MPLSパス、ATM(Asynchronous Transfer Mode)コネクションなどが用いられる。物理ネットワーク100では、ネットワークノード101〜105間は、例えばリンク130〜133で接続されている。
ネットワークノードとそれらの間のリンクは、物理ネットワークでのノードおよびリンク(物理リンク)と1対1に対応しているわけではない。図3は、仮想ネットワークと物理ネットワークでのノードやリンクとの関係の例を示している。ここで示した例では、2つのネットワークノード101,102間のリンクが、複数のアンダーレイノード170〜173を経由している。ネットワークノード101,102に搭載されている仮想ノード110,111が仮想リンク141により接続されて、仮想ネットワークが構築されている。ネットワークノード101,102とアンダーレイノード170,172との間、およびアンダーレイノード170〜173の相互間は、物理リンク160〜165によって接続されている。アンダーレイノード170〜173は、一般的なルーターやスイッチによって構成されるものであって、既存のSTPやOSPF等のルーティングプロトコルで経路計算を行い、TCP/IPやEthernet(登録商標)、MPLSなどの転送プロトコルを用いてデータ転送を行う。
仮想ネットワークは、“A1”とラベルされている仮想ノード110と“A2”とラベルされている仮想ノード111とを仮想リンク141によって接続することにより、アンダーレイネットワーク(すなわち物理ネットワーク)から見て、入れ子状になっている。アンダーレイネットワークに対して独立した名前空間を仮想ネットワークに持たせることにより、アンダーレイネットワークのプロトコルに依存することのない仮想ネットワークを構築することができる。独立した名前空間の利用は、既知の技術として、MPLSによるIP−VPN(Virtual Private Network)や、IPsecによるインターネットVPNで使用されている。一方で、仮想ノードの処理動作を変更し、複数の仮想リンクで接続された仮想ノードにおいて新規のネットワーク技術を処理させることにより、仮想ネットワーク上で新規のネットワーク技術を適用することが可能となる。
図4は、例示実施形態におけるネットワークノード101の内部構成の一例を示している。ネットワークノード101は、通信装置として構成されたものである。ネットワークノード101は、複数のネットワークモジュール301a〜301nと、これらのネットワークモジュール301a〜301nの間を接続するスイッチモジュール308とから構成されている。スイッチモジュール308から放射状に設けられたデータ転送用の接続307a〜307nにより、各ネットワークモジュール301a〜301nは、スイッチモジュール308に接続している。したがってスイッチモジュール308は、ネットワークモジュール301a〜301nをスター接続する際にそのスター接続の基点となるものである。
以下の説明において、複数のネットワークモジュールを区別することなく、ネットワークモジュール一般を示す場合には、符号301を用いることとする。同様に、複数の接続を区別することなくデータ転送用の接続一般を示す場合には符号307を用いることとする。
ネットワークノード101において、ネットワークモジュール301a〜301nにはそれぞれ物理インタフェース304a〜304nが設けられている。物理インタフェース304a〜304nによって、ネットワークモジュール301a〜301nをそれぞれ外部ネットワークに接続することができる。ネットワークモジュール301a〜301nは、いずれも同様の構成のものである。ネットワークモジュール301aは、ネットワーク仮想化部(NWV)305a、ネットワークスタック部(NWS)306a、複数の仮想ノード部(VN)3021a,3022aおよびネットワーク制御部(NWC)303aを備え、さらに前述の物理インタフェース304aを備えている。同様に他のネットワークモジュール301b〜301nも、ネットワーク仮想化部305b〜305n、ネットワークスタック部306b〜306n、仮想ノード部3021b〜3021n,3022b〜3022n、ネットワーク制御部303b〜202nおよび物理インタフェース304b〜304nを備えている。これらの各機能ブロックには、それを特定するための固有の識別子/番号が割り当てられている。
以下の説明において、いずれのネットワークモジュールに含まれるかを区別しない場合には、ネットワークモジュール301a〜301nに含まれる仮想ノード部3021a〜3021n,3022a〜3022nを一般的に符号3021,3022で表すこととする。同様に、いずれのネットワークモジュールに含まれるかを区別しない場合には、ネットワーク制御部303a〜303n、物理インタフェース304a〜304n、ネットワーク仮想化部305a〜305nおよびネットワークスタック部306a〜306nを、それぞれ、符号303,304,305,306で表すこととする。
ネットワーク仮想化部305は、外部ネットワークからネットワークノード101で受信されるデータの配送先を、同じネットワークモジュール301内のネットワークスタック部306、同じネットワークモジュール301内の仮想ノード部3021,3022、および異なるネットワークモジュール301上の仮想ノード部3021,3022の中から検索して選び出し、選び出した配送先に、その受信データを転送する。またネットワーク仮想化部305は、ネットワークノード101から外部ネットワークに送信されるデータの配送先を、同じネットワークモジュール301内の物理インタフェース304、および異なるネットワークモジュール301上の物理インタフェース304の中から検索して選び出し、選び出した物理インタフェースにその送信データを転送する。すなわちネットワーク仮想化部305は、物理インタフェース304に到着したデータに関し、そのデータの情報から取り出したキーを基にあて先検索を行うことにより、あて先が、到着した物理インタフェースを搭載するネットワークモジュールに搭載された仮想ノードか、スイッチモジュール308を経由して接続されるネットワークモジュールに搭載された仮想ノードか、を判断し、判断結果に応じて、いずれかのネットワークモジュールに搭載された仮想ノードにデータを伝送する機能を有する。
ネットワークスタック部306は、アンダーレイネットワークにおける転送プロトコルを処理するものである。ネットワークスタック部306は、ネットワーク仮想化部305から送受信データの制御情報を受け取った場合には、その受け取った制御情報に応じて、仮想ノード部3021,3022から1つを選択して選択した仮想ノード部にデータを転送するか、あるいは、アンダーレイネットワークにおける転送プロトコルにより送受信データのあて先を検索する。アンダーレイネットワークにおける転送プロトコルによりあて先の検索を行った場合には、ネットワークスタック部306は、その検索結果により、仮想ノード部3021,3022の1つを選択してその仮想ノード部にデータを転送するか、あるいは、外部ネットワークか他のネットワークモジュール301上の仮想ノードに転送するために、そのデータをネットワーク仮想化部305に送信する。またネットワークスタック部306は、仮想ノード部3021,3022から送受信データの制御情報を受け取った場合には、その制御情報に基づいて、ネットワーク仮想化部305にデータを送信するか、あるいは、アンダーレイネットワークにおける転送プロトコルにより送受信データのあて先を検索してそのあて先にデータを転送するためにネットワーク仮想化部305にデータを送信する。さらにネットワークスタック部306は、アンダーレイネットワークの名前空間におけるアドレスを終端する。
本例示実施形態においては、ネットワークモジュール301内に複数の仮想ノード部3021,3022が搭載されているが、このように複数の仮想ノード部を一つのネットワークモジュールに搭載することは、関連技術分野における仮想マシンやコンテナ技術などの一般的な技術を使用することに実現可能である。そのことは、当業者には自明のことである。ここでは、各ネットワークモジュールには2個の仮想ノード部が搭載されているが、一つのネットワークモジュールに搭載される仮想ノード部の個数は、2個に限られるものではなく、3個以上であってもよい。あるいは一つのネットワークモジュールには単一の仮想ノード部のみが搭載されるようにしてもよい。
仮想ノード部3021,3022は、ネットワークスタック部306から受信した送受信データを処理し、仮想ネットワークにおける仮想リンクの終端、仮想リンク上を転送される通信データの処理、および仮想ネットワークにおける制御信号の処理の実行を行う。ここでの通信データの処理には、終端や転送などの処理が含まれる。仮想ノード部3021,3022における受信データの処理の結果、あるいは、制御信号処理などの内部処理の結果、データを送信しなければならないときには、仮想ノード部は、ネットワークスタック部306に対して、制御情報602とともにデータ601を送信する。制御情報602の詳細については後述する。
ネットワーク制御部303は、ネットワークモジュール301内の各種のテーブル情報の登録・修正・削除の処理を実行し、各仮想ノード部3021,3022からの制御情報を処理するものである。特にネットワーク制御部303は、自ネットワークモジュール301に対して影響のある情報に関しての設定情報を取得し、テーブルをメンテナンスする。またネットワーク制御部303は、他のネットワークモジュール301やスイッチモジュール308に対して影響のある情報に関して、制御メッセージを交換して情報同期を行う。さらにネットワーク制御部303は、他のネットワークモジュール301やスイッチモジュール308から得られた制御メッセージに基づいて情報同期を行い、自ネットワークモジュール301に対して影響のある情報に関して設定情報を取得し、テーブルをメンテナンスする。
スイッチモジュール308は、スイッチファブリック部310とスイッチネットワーク制御部(SWNWC)309とにより構成されている。スイッチファブリック部310は、送受信データの転送において、後述の制御情報602を参照することにより、いずれのネットワークモジュール306に送受信データを転送するか選び出し、そのネットワークモジュールに送受信データを転送する。スイッチネットワーク制御部309は、スイッチモジュール308内のテーブル情報の登録・修正・削除などのメンテナンスを行い、ネットワークモジュール306と制御メッセージを交換する。特にスイッチネットワーク制御部309は、各ネットワークモジュール301からの制御情報にしたがって、スイッチモジュール308に対して影響のある情報に関して設定情報を取得し、テーブルをメンテナンスする。
このようにネットワークモジュール301内のネットワーク制御部303とスイッチモジュール308内のスイッチネットワーク制御部309とは、相互に制御メッセージの交換を行い、かつ各種のテーブルの内容のメンテナンスを行うことによって、複数のネットワークモジュール301とスイッチモジュール308との間でのネットワーク制御情報の同期を実行するネットワーク制御手段として機能する。ここでいうネットワーク制御情報には、仮想ノード部でのルーティングやプロビジョニングなどの処理結果によって構築されるネットワーク経路情報や仮想リンク情報などが挙げられる。
次に、図5を参照して、ネットワークノード101内で送受信データの通信経路を構成する各要素について説明する。図5は、ネットワークノード101において、送受信データを直接処理する各機能ブロック間の接続を示している。ネットワークモジュール301において送受信データの通信経路を構成する要素には、ネットワークスタック部306内に設けられる共有転送テーブル401と、ネットワーク仮想化部305内に設けられる他モジュール転送テーブル402及び仮想ノードインタフェース転送テーブル403と、ネットワーク仮想化部305とネットワークスタック部306との間の接続405と、ネットワークスタック部306と仮想ノード部3021,3022との間の接続4061,4062とが含まれる。共有転送テーブル401は、ネットワークスタック部306において送受信データの転送先を検索するために使用されるものであり、アンダーレイネットワークの経路情報を保持する。他モジュール転送テーブル402及び仮想ノードインタフェース転送テーブル403は、いずれも、ネットワーク仮想化部305において、送受信データの転送先を検索するために使用される。特に他モジュール転送テーブル402は、このネットワーク仮想化部305を備えるネットワークモジュール以外の他ネットワークモジュール上の仮想ノードを検索するために使用され、その一方で、仮想ノードインタフェース転送テーブル403は、このネットワーク仮想化部305を備えるネットワークモジュール上の仮想ノードを検索するために使用される。接続405,4061,4062は送受信データの転送のために用いられる接続である。また、スイッチモジュール308において送受信データの通信経路を構成する要素には、スイッチファブリック部301内に設けられて、スイッチファブリック部310において送受信データの転送先を検索するために使用されるスイッチ転送テーブル404が含まれる。これらの各要素(すなわちブロック)とデータ転送用の接続とによって、送受信データの通信経路が実現されている。
同様に、図6を参照して、ネットワークノード101内でブロック間での制御信号の接続構成を説明する。図6は、ネットワークノード101において、制御信号の処理に関わる各機能ブロック間の接続を示している。ネットワークモジュール301において制御信号のための接続構成は、ネットワーク制御部303と仮想ノード部3021,3022との間の接続5031,5032と、ネットワーク制御部303と共有転送テーブル401との間の接続504と、ネットワーク制御部303と他モジュール転送テーブル402との間の接続505と、ネットワーク制御部303と仮想ノードインタフェース転送テーブル403との間の接続506とからなる。スイッチモジュール308において制御信号のための接続構成は、スイッチネットワーク制御部309とスイッチ転送テーブル404との間の接続507からなっている。接続5031,5031,504,505,506,507は、いずれも、制御信号の伝送のために用いられるものである。さらに制御信号の接続構成には、複数のネットワークモジュール301とスイッチモジュール306との間の制御メッセージを伝送するためのネットワーク制御部間の通信経路501と、この通信経路501とネットワークモジュール301のネットワーク制御部303との間の接続5021と、通信経路501とスイッチモジュール306のスイッチネットワーク制御部309との間の接続5022とが含まれる。これらの各要素(すなわちブロック)及び接続によって、制御信号の接続構成が実現されている。
次に、制御情報602について説明する。図7は、送受信データとその制御情報との関係を示している。送受信データを扱うために、ネットワークノード101は、受信および/または送信されるデータ本体を送受信データ601として、そのような送受信データ601と、その送受信データに対する制御情報602とを、それぞれの送受信データ単位に管理する。制御情報602は、ネットワークモジュール番号6021と、インタフェース番号6022と、仮想ノード番号6023と、受信・送信フラグ6024とから構成されている。制御情報602は、データ601の受信時および送信時に、ネットワーク仮想化部305、ネットワークスタック部306および仮想ノード部3021,3022で作成され、また、ネットワーク仮想化部305、ネットワークスタック部306、仮想ノード部3021,3022およびスイッチファブリック部310において参照され、書き換えられるものである。
なお送受信データ601は、例えば、IPパケットやEthernet(登録商標)フレームなどとして構成される。
データ受信時に、データのあて先が仮想ノード3021,3022であるときは、受信・送信フラグ6024は受信を示し、ネットワークモジュール番号6021には、あて先となるネットワークモジュールの識別子/番号が設定され、インタフェース番号6022には、受信時のネットワークノード101においてユニークなインタフェース識別子/番号が設定され、仮想ノード番号6023には、仮想ノードの識別子/番号が設定される。データ受信時に、データのあて先があらかじめ仮想ノード部3021,3022のいずれにも設定されていないときは、受信・送信フラグ6024は受信を示し、ネットワークモジュール番号6021には、自ネットワークモジュールの識別子/番号が設定され、インタフェース番号6022には、受信時のネットワークノード101でユニークなインタフェース識別子/番号が設定され、仮想ノード番号6023には、特別の番号が設定される。このデータは、ネットワークスタック部306に送付され、アンダーレイネットワークのプロトコルによって転送処理が行われる。
データ送信時には、受信・送信フラグ6024は送信を示し、ネットワークモジュール番号6021には、あて先となるネットワークモジュールの識別子/番号が設定され、インタフェース番号6022には、送信インタフェースのネットワークノード101でユニークなインタフェース識別子/番号が設定され、仮想ノード番号6023は“ドントケア(Don’t Care)”となる。
動作の説明:
次に、図3に示すような仮想ネットワーク構成において、ネットワークモジュール301の性能を向上するために、負荷分散の手法により各仮想ノード部3021,3022の処理を低減させるための動作を説明する。図8は、仮想ノードのライフサイクルを示しており、図9は、仮想ノードのインタフェースの構成を示している。
図8を参照すると、仮想ノードのライフサイクルでは、ステップ701に示すように、負荷分散のため、負荷の低いネットワークモジュール301を見つけ出し、そのようなネットワークモジュールにおいて仮想ノード部3021,3022を新たに生成する。負荷の低いネットワークモジュールを発見する手法としては、例えば、ネットワークノード101内のすべてのネットワークモジュール301のCPU負荷状態を監視して、負荷の平均が一番小さいネットワークモジュールを選択する手法や、それぞれのネットワークモジュール301に流れるトラフィック量を監視して、トラフィック量が一番少ないネットワークモジュールを選択する手法が考えられ、さらには、これらの手法を組み合わせたものとを用いることも考えられる。ここでは、ネットワークモジュール301aに仮想ノード部3021a,3022aが生成したものとする。
続いてステップ702において、生成された仮想ノード部3021aに対するインタフェースのパスが設定される。ここでは、アンダーレイネットワークの転送プロトコルがIP(Internet Protocol)であるとし、仮想リンクを構成するトンネルプロトコルがGRE(Generic Routing Encapsulation)であるとする。この場合、一般的には、どの物理インタフェースからIPトラフィックが受信されるかを特定できないため、仮想ノード部3021aと、すべてのネットワークモジュール301a〜301nのすべての物理インタフェース304a〜304nで受信されるデータとに対して、パス設定を有効にする必要がある。したがって、図9に示す破線のパスの設定が必要となる。このようなパスの設定の動作は、以下のように行われる。
はじめに、仮想ノード部3021aにおいて、トンネルプロトコル(ここではGREとIP)と仮想ネットワークとの要件が設定される。仮想ネットワークは、トンネルのトポロジとして設定される。本実施形態では、IPトラフィックであるので、仮想ノード部3021aは、すべての物理インタフェースとのパスを構築する判断を行う。次に、仮想ノード部3021aは、同じネットワークモジュール301a内のネットワーク制御部303aに対して、パス要件を伝える。本例の場合は、そのパス要件は、図9に示す破線で表される。
次に、ネットワークモジュール301aでは、ネットワーク制御部303aが、そのネットワークモジュールで収容する仮想ノード部3021a宛のデータに対しての設定を、仮想ノードインタフェース転送テーブル403aに行う。この例では、IPアドレスとGRE Keyとをキーとしたエントリを登録することにより、この設定が行われる。引き続き、ネットワーク制御部303aは、制御バスであるネットワーク制御部間の通信経路501を経由して、スイッチモジュール308内のスイッチネットワーク制御部309と、他のネットワークモジュール301b〜301n内のネットワーク制御部303b〜303nとに対して、仮想ノード部3021aのパス情報を伝送する。
ネットワークモジュール301b〜301nでは、それぞれのネットワーク制御部303b〜303nが、他モジュール転送テーブル402b〜402nの設定を行うとともに、ネットワークモジュール301aで収容する仮想ノード部3021a宛のデータに対しての設定を、他モジュール転送テーブル403b〜403nに対して行う。この例では、仮想ノード部3021aに関し、そのIPアドレスとGRE Keyとをキーとしたエントリが他モジュール転送テーブル403b〜403nに登録される。
スイッチネットワーク制御部309は、スイッチ転送テーブル404においてネットワークモジュール301a宛のエントリがない場合に、そのエントリの設定を行う。
このような設定を行うことにより、仮想ノード部3021a宛のトンネルプロトコル(この例ではGERとIP)に一致するデータが、ネットワークノード101のいかなる物理インタフェース304に到着したとしても、すべて、ネットワークモジュール301aの仮想ノード部3021aに転送されるようになる。これにより、図8のステップ703に示すように、仮想ノード部3021aは、仮想ネットワークに対応した処理を実行することができるようになる。
ここでもし、仮想ノード部3021aに関係するネットワークモジュール301に変更があったとする。そのような場合、ステップ704において、ネットワークモジュール301の新規追加や交換、削除により、パスの再設定が駆動される。このとき、該当するネットワークモジュールに係わるテープルエントリのみが修正される。
また、仮想ノード部3021aのサービスを停止することが決まった場合、ステップ705において、関連するパスをネットワークノード101のすべてのテーブルエントリから削除し、仮想ノード部の処理を停止させる。
次に、本例示実施形態での、データ受信時における、データに対する処理フローを説明する。以下の説明において、“[R1]”とか“[RA6]”の記載は、フローにおける各処理を区別するラベルである。
[R1]→[R2]→[R3]→[R4a]→[RA5]→[RA6]によって示される処理フローが、データを受信したネットワークモジュール301aにおいてデータに対応する仮想ノード部3021aが搭載されているときの、正常な処理フローである。この処理フローを第1の受信処理フローと呼ぶ。
[R1]→[R2]→[R3]→[R4b]→[RB5c]→[RBC6]→[RBC7]→[RBC8]→[RBC9]→[RBC10]によって示される処理フローが、データを受信したネットワークモジュール301aとは別のネットワークモジュール301nにおいて、データに対応する仮想ノード部3021nが搭載されているときの、正常な処理フローを示している。この処理フローを第2の受信処理フローと呼ぶ。
[R1]→[R2]→[R3]→[R4b]→[RB5d]→[RBD6]→[RBD7]によって示される処理フローが、アンダーレイネットワークの転送プロトコルによって転送されるデータに対する、正常な処理フローである。この処理フローを第3の受信処理フローと呼ぶ。
まず、第1の受信処理フローにおける各処理を説明する。第1の受信処理フローにおける各ラベルごとの処理は、以下に示されるものである。以下では、ラベルを見出しとし、それに引き続いて、当該ラベルでの処理を説明している。
[R1] データを受信する;
[R2] ネットワーク仮想化部305aは、制御情報602を生成し、インタフェース番号6022に、データを受信したときの物理インタフェースの識別子/番号を付与する;
[R3] ネットワーク仮想化部305aは、データ601に含まれる情報(例えば、あて先IPアドレスとプロトコル番号とGRE Key値など)とインタフェース番号6022とをキーとして、仮想ノードインタフェース転送テーブル403aを検索する;
[R4a] 処理[R3]での検索の結果、データが自ネットワークモジュール301aに搭載された仮想ノード部3021a宛のものであった場合、ネットワーク仮想化部305aは、制御情報602のネットワークモジュール番号6021と仮想ノード番号6023を、それぞれ自ネットワークモジュール識別子/番号と仮想ノードの識別子/番号に更新して、ネットワークスタック部306aに、データ601と制御情報602を転送する;
[RA5] ネットワークスタック部306aは、制御情報602のネットワークモジュール番号6021と仮想ノード番号6023とに基づいて、データ601と制御情報602とを適切な仮想ノード部3021aに転送する;
[RA6] 仮想ノード部3021aは、制御情報602に基づいて物理インタフェース番号を取得する。また、受信したデータ601のトンネルプロトコルを仮想リンクとして終端し、仮想ネットワークにおける通信データを取得し、あらかじめ決められた処理を行う。
次に、第2の受信処理フローについて説明する。[R1]から[R3]までの処理は第1の受信処理フローと同じであり、以下では、処理[R3]に引き続く処理のみを説明する。
[R4b] 処理[R3]での検索の結果、ミスヒットした場合、ネットワーク仮想化部305aは、同じキーを使用して、他モジュール転送テーブル402aを検索する;
[RB5c] 処理[R4b]での検索の結果、データが他ネットワークモジュール301n宛のものであった場合、ネットワーク仮想化部305aは、制御情報602のネットワークモジュール番号6021を、あて先の他ネットワークモジュール識別子/番号に更新して、スイッチファブリック部310に、データ601と制御情報602を転送する;
[RBC6] スイッチファブリック部310は、受信した制御情報602のネットワークモジュール番号6021に基づいて、スイッチ転送テーブル404を検索し、ネットワークモジュール301nのネットワーク仮想化部305nにデータを転送する;
[RBC7] ネットワーク仮想化部305nは、データ601に含まれる情報(例えば、あて先IPアドレスとプロトコル番号とGRE Key値など)とインタフェース番号6022をキーとして、仮想ノードインタフェース転送テーブル403nを検索する;
[RBC8] 処理[RBC7]での検索の結果、データが自ネットワークモジュール301nに搭載された仮想ノード部3021n宛のものであった場合、ネットワーク仮想化部305nは、制御情報602の仮想ノード番号6023を、仮想ノードの識別子/番号に更新して、ネットワークスタック部306nに、データ601と制御情報602を転送する;
[RBC9] ネットワークスタック部306nは、制御情報602のネットワークモジュール番号6021と仮想ノード番号6023とに基づいて、データ601と制御情報602を適切な仮想ノード部3021nに転送する;
[RBC10] 仮想ノード部3021nは、制御情報602に基づいて物理インタフェース番号を取得する。また、受信したデータ601のトンネルプロトコルを仮想リンクとして終端し、仮想ネットワークにおける通信データを取得し、あらかじめ決められた処理を行う。
次に、第3の受信処理フローについて説明する。[R1]から[R4b]までの処理は第2の受信処理フローと同じであり、以下では、処理[R4b]に引き続く処理のみを説明する。
[RB5d] 処理[R4b]での検索の結果、ミスヒットした場合、ネットワーク仮想化部305aは、ネットワークスタック部306aに、データ601と制御情報602を転送する;
[RBD6] ネットワークスタック部306aは、制御情報602の仮想ノード番号6023がセットされていないことにより、データ601をアンダーレイネットワークの通信データと判断し、データ601に対してプロトコル処理を行った上で、これに含まれるアンダーレイネットワークの転送プロトコルに対応したヘッダ情報(例えば、IPヘッダ情報など)と、制御情報602のインタフェース番号6022とをキーとして、共有転送テーブル401aを検索する;
[RBD7] 処理[RBD6]での検索の結果、あて先解決されたデータ601について、ネットワークスタック部306nは、制御情報602の送信・受信フラグ6024を受信から送信に書き換え、ネットワークモジュール番号6021とインタフェース番号6022とを、それぞれ送信インタフェースを含むネットワークモジュールの識別子/番号と送信インタフェース識別子/番号とに更新し、ネットワーク仮想化部305aに転送する。
次に、本例示実施形態での、データ送信時における、データに対する処理フローを説明する。以下の説明において、“[T1]”とか“[TA5]”の記載は、フローにおける各処理を区別するラベルである。
[T1]→[T2]→[T3a]→[TA4]→[TA5]によって示される処理フローは、仮想ノード部3021aにおいて出力先の物理インタフェース304が解決できる場合の処理フローである。これを第1の送信処理フローと呼ぶ。
[T1]→[T2]→[T3b]→[TB5]→[TB6]によって示される処理フローは、仮想ノード部3021aにおいて出力先の物理インタフェース304を解決できないため、アンダーレイネットワークの転送プロトコルによって転送先を解決させることにより出力先の物理インタフェース304にデータを送信する場合の処理フローである。これを第2の送信処理フローと呼ぶ。
まず、第1の送信処理フローにおける各処理を説明する。第1の送信処理フローにおける各ラベルごとの処理は、以下に示されるものである。以下では、ラベルを見出しとし、それに引き続いて、当該ラベルでの処理を説明している。
[T1] データ601の送信先を解決した結果に基づいて、仮想ノード部3021aは、制御情報602の送信・受信フラグ6024を受信から送信に書き換え、ネットワークモジュール番号6021とインタフェース番号6022、仮想ノード番号6023を、それぞれ送信インタフェースを含むネットワークモジュールの識別子/番号と送信インタフェース識別子/番号、仮想ノード識別子/番号に更新し、ネットワークスタック部306aにデータ601を転送する;
[T2] ネットワークスタック部306aは、受信したデータ601の制御情報602のインタフェース番号6022を確認する;
[T3a] 処理[T2]においてインタフェース番号6022に有効な値が設定されている場合は、ネットワークスタック部306aは、データ601と制御情報602をネットワーク仮想化部305aに転送する;
[TA4] ネットワーク仮想化部305aでは、ネットワークモジュール番号6021とインタフェース番号6022に基づき、データ601と制御情報602を転送する。もし、データ601が他ネットワークモジュール301nの物理インタフェース宛であった場合、処理[RBC6]の手順を使い、他ネットワークモジュール301nにデータ601と制御情報602を転送する。送信・受信フラグ6024が送信であるときに、ネットワークモジュール番号6021とインタフェース番号6022が自ネットワークモジュール301a〜301nの物理インタフェース304a〜304nを示している場合、ネットワーク仮想化部305a〜305nは、データ601を当該物理インタフェースに出力する;
[TA5]データを送信する。
次に、第2の送信処理フローについて説明する。[T1]及び[T2]の処理は第2の送信処理フローと同じであり、以下では、処理[T2]に引き続く処理のみを説明する。
[T3b] 処理[T2]においてインタフェース番号6022が設定されていないときは、ネットワークスタック部306aは、データ601をアンダーレイネットワークの通信データと判断し、データ601に対してプロトコル処理を行った上で、これに含まれるアンダーレイネットワークの転送プロトコルに対応したヘッダ情報(例えば、IPヘッダ情報など)と、制御情報602のインタフェース番号6022とをキーとして、共有転送テーブル401aを検索する;
[TB4] 処理[T3b]での検索の結果、あて先解決されたデータ601について、ネットワークスタック部306aは、制御情報602のネットワークモジュール番号6021とインタフェース番号6022を、それぞれ送信インタフェースを含むネットワークモジュールの識別子/番号と送信インタフェース識別子/番号に更新し、ネットワーク仮想化部305aに転送する;
[TB5] ネットワーク仮想化部305aは、ネットワークモジュール番号6021とインタフェース番号6022に基づき、データ601と制御情報602を転送する。もし、データ601が他ネットワークモジュール301nの物理インタフェース宛であった場合、処理[RBC6]の手順を使い、他ネットワークモジュール301nにデータ601と制御情報602を転送する。送信・受信フラグ6024が送信であるときに、ネットワークモジュール番号6021とインタフェース番号6022が自ネットワークモジュール301a〜301nの物理インタフェース304a〜304nを示している場合、ネットワーク仮想化部305a〜305nは、データ601を当該物理インタフェースに出力する;
[TB6]データ送信を行う。
本例示実施形態において、アンダーレイネットワークにおけるネットワークプロトコルの経路情報は、ネットワークモジュール301のネットワークスタック部306内にある共有転送テーブル401に登録される。すべてのネットワークモジュール301の共有転送テーブル401には、同一の情報が同期して登録される。本例示実施形態の構成では、負荷分散のためにネットワークモジュール301の間で分散配置されるのは、仮想ノード部3021,3022である。このため、仮想ノード部宛のデータ以外の送受信データについては、どのネットワークモジュール301のネットワークスタック部306の共有転送テーブル401を検索しても出力先の物理インタフェースとして同じものが導き出されるようにするにより、共有転送テーブル401間の同期を容易なものにすることができる。また、送信時に物理インタフェースが異なるネットワークモジュール301に所属しているとしても、ネットワーク仮想化部305とスイッチファブリック部310により、制御情報602の情報に基づいてデータ601がネットワークノード101内を転送されるので、ネットワークスタック部306が個別に意識して共有転送テーブル401の設定を変更する必要はなく、ネットワークノード101で一様に同じ情報を共有転送テーブル401に登録すればよい。
本例示実施形態によれば、既存のアンダーレイネットワークのプロトコルを処理するネットワークスタック部306の下位層にネットワーク仮想化部305を配備することで、既存のネットワークスタック部306を大きく変更することなく、ネットワーク仮想化部305を使用することが可能となる。これは、このような構成によれば、既存のネットワークスタック部306では全く処理できない送受信データを、あらかじめネットワーク仮想化部305で振り分けておくことができるようになり、ネットワークスタック部306をバイパスすることが可能となるからである。またネットワーク仮想化部305を、ネットワークスタック部306の下位層に配備することで、仮想ノード部3021,3022を搭載するネットワークモジュールの負荷分散が可能となる。これは、ネットワークノード101内の複数のネットワークモジュール301のネットワークスタック部306において同じ識別子/番号のアドレスを使っても、ネットワーク仮想化部305において、アドレスより細かい粒度の情報、例えば、TCPポート番号やUDPポート番号などで送受信データの振り分けを行うことが可能となるためである。
結局、上述したネットワークノード101は、
1または複数の仮想ノード部と、
送受信データを処理する仮想ノード部を、ネットワークノード101内の複数のネットワークモジュール301の1または複数の仮想ノード部の中から特定するために、あらかじめ設定されたテーブル情報を基に決定する、ネットワークモジュール301上のネットワーク仮想化部305と、
受信データを処理する仮想ノード部3021,3022および出力方路を含むネットワークモジュール301を、あらかじめ設定されたテーブル情報に基づいて、ネットワークノード101内の複数のネットワークモジュール301の中から特定する、スイッチモジュール308上のスイッチファブリック部310と、
前述のテーブル情報を登録・変更・削除などのメンテナンスを行うネットワークモジュール301のネットワーク制御部303およびスイッチモジュール308のスイッチネットワーク制御部309と、
前述のテーブル情報などを複数のネットワークモジュール301とスイッチモジュール308との間で共有するために、ネットワークモジュール301のネットワーク制御部303とスイッチモジュール308のスイッチネットワーク制御部309の間で情報交換される制御メッセージを伝送する通信経路501と、
仮想ノード部で決定したネットワーク制御情報をネットワークに反映させるためにその情報をネットワーク制御部303に通知する手段と、
を備えていることになる。ネットワーク制御情報は、例えば、仮想ネットワークにおけるルーティングやトポロジーやQoS(Quality of Service)などのプロビジョニング情報などである。通知手段は、例えば、制御信号用の接続5031,5032によって構成されている。
このようにネットワークノード101を構成することによって、ネットワークモジュール301が増加するたびに、処理分散による仮想ノード3021,3022の性能向上と、インタフェース数が増えることによるトータル転送性能の向上の両方を図ることができる。また、送受信データの処理に関し、ネットワークノード101内に分散された仮想ノード部3021,3022における制御信号の処理結果を反映して、ネットワークノード101内で分散され配置された複数のネットワークモジュール301のそれぞれで、その指示にしたがった処理を行うことができる。必要であればネットワークノード101内に分散配置されたネットワークモジュール301上のある仮想ノードに、送受信データを伝送することができる。
上述した例示実施形態においては、下記に示すようなさらなる変更が可能である。
実施例1:
ネットワーク制御部303とスイッチネットワーク制御部309にアクセスリストを配備することにより、仮想ノード部3021,3022からのアクセスで設定してはいけないテーブルエントリなどをフィルタすることが可能になる。これにより、仮想ネットワーク相互のアイソレーションを実現することが可能になる。
実施例2:
ネットワーク制御部303は、他のネットワークモジュール301からの制御メッセージを、仮想ノード部3021,3022に転送することができる。これにより、独立した仮想ネットワーク間における協調動作や、仮想ノード部3021,3022で動いている処理を強調させることが可能となる。例えば、ネットワークモジュール301a上の仮想ノード部3021aで動作しているOSPFと、ネットワークモジュール301b上の仮想ノード部3022bで動作しているBGP(Border Gateway Protocol)とを連動させることが可能となる。
実施例3:
制御情報602の送信・受信フラグ6024が“送信”に設定されているときにおいて、例えば全てのエントリに“F”の値を格納するなどしてインタフェース番号6022の情報が無効にされ、仮想ノード番号6023には有効な値が入力されているという条件に一致するときに、ネットワーク仮想化部305が仮想ノードインタフェース転送テーブル403を検索することにより、あるネットワークモジュール301で一度処理されたデータを異なるネットワークモジュール301で再び処理することができるようになる。これにより、仮想ノード部の多段接続が可能になり、仮想ネットワークにおいてパイプライン処理により転送性能を向上させることや、同じ転送性能を有するネットワークにより一つのデータに対してより複雑な処理を実行することが可能になる。
実施例4:
制御情報602のネットワークモジュール番号6021のフィールドを送信用のネットワークモジュール番号と受信用のネットワークモジュール番号とに分離し、インタフェース番号6022のフィールドを送信用のインタフェース番号と受信用のインタフェース番号とに分離し、仮想ノード番号6023のフィールドを送信用の仮想ノード番号と受信用の仮想ノード番号とに分離することができる。このように各フィールドを送信用と受信用とに分けて送信用の制御情報と受信用の制御情報とを分けて格納するようにした場合には、制御情報602の書き換えが必要なくなり、実施例3で示したような多段接続を行う際に以前の情報が消失しなくなるため、受信インタフェース番号を使い続けて後段でフィルタ処理等を行うことも実現可能になる。
実施例5:
アンダーレイネットワークのルーティングプロトコルパケットに関して、仮想ノード部のパスを設定する手順と同じ手順で設定することにより、仮想ノード部3021,3022にプロトコルパケットを集めることが可能となる。これにより、仮想ノード部3021,3022においてアンダーレイネットワークのルーティングプロトコルを処理し、ネットワークスタック部306の共有転送テーブル404に格納されるべき経路情報を作成することが可能になる。この構成では、アンダーレイネットワークのルーティングプロトコル処理のために別にモジュールを準備する必要がなくなる。
実施例6:
アンダーレイネットワークがレイヤ2ネットワークである場合、ネットワークノード101での仮想ノード部3021,3022での仮想リンクのパスの設定において、隣接するネットワークノード102とのリンクを直接収容する特定の物理インタフェース304を収容するネットワークモジュール301にのみ、パスを設定してもよい。この構成では、すべてのネットワークモジュール301のテーブルエントリを消費してパスの設定を行う必要がなくなる。
以上、例示実施形態及び実施例を参照して本発明を説明したが、本発明は上記の例示実施形態及び実施例に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2008年10月2日に出願された日本国特許出願:特願2008−257530を基礎とする優先権を主張し、その開示の全てを参照によりここに取り込む。
日本:特開2008−54214号公報 日本:特開2004−110611号公報
Andy Bavier, Nick Feamster, Mark Huang, Larry Peterson, Jennifer Rexford, "In VINI veritas: realistic and controlled network experimentation," September 2006, SIGCOMM ’06: Proceedings of the 2006 conference on Applications, technologies, architectures, and protocols for computer communications
100 物理ネットワーク
101 ネットワークノード
140,150 仮想ネットワーク
301a〜301n ネットワークモジュール
3021a〜3021n,3022a〜3022n 仮想ノード部
303 ネットワーク制御部
304 物理インタフェース
305 ネットワーク仮想化部
306 ネットワークスタック部
308 スイッチモジュール
309 スイッチネットワーク制御部
310 スイッチファブリック部
401 共有転送テーブル
402 他モジュール転送テーブル
403 仮想ノードインタフェース転送テーブル
404 スイッチ転送テーブル

Claims (13)

  1. 仮想ノードを搭載する複数のネットワークモジュールと、
    前記複数のネットワークモジュールを接続するスイッチモジュールと、
    受信したデータの情報から取り出したキーを基にあて先検索を行うことにより、前記あて先検索の結果に基づき、いずれかのネットワークモジュールに搭載された仮想ノードに前記データを伝送するネットワーク仮想化部と、
    を備える、ネットワークノード。
  2. 前記複数のネットワークモジュールはスター接続されて、前記スイッチモジュールが当該スター接続の基点となり、
    前記各ネットワークモジュールは、前記ネットワーク仮想化部を備えるとともに、当該ネットワークモジュールを外部ネットワークに接続する物理インタフェースを備え、
    前記ネットワーク仮想化部は、前記物理インタフェースに到着したデータの情報から前記キーを取り出し、前記あて先検索を行って、あて先が、到着した物理インタフェースを搭載するネットワークモジュールに搭載された仮想ノードか、前記スイッチモジュールを経由して接続されるネットワークモジュールに搭載された仮想ノードか、を判断し、前記判断結果に応じて、いずれかのネットワークモジュールに搭載された仮想ノードに前記データを伝送する、請求項1に記載のネットワークノード。
  3. 前記各ネットワークモジュールは、アンダーレイネットワークにおける転送プロトコルを処理するネットワークスタック部を備え、
    前記ネットワークスタック部は、前記アンダーレイネットワークの経路情報を保持する共有転送テーブルを備え、前記共有転送テーブルを検索して前記アンダーレイネットワークの経路情報を取得し、
    すべての前記ネットワークモジュールにおいて同期された情報が前記共有転送テーブルに格納される、請求項1または2に記載のネットワークノード。
  4. 前記物理インタフェースと前記仮想ノードとを前記ネットワークモジュール内のパスで接続し、アンダーレイネットワークのプロトコルスタックの処理をバイパスするようにした、請求項2に記載のネットワークノード。
  5. 前記仮想ノードで行われる制御信号の処理の結果に基づいて生成する情報を、制御メッセージを介して、前記ネットワークノード内のすべての前記ネットワークモジュールおよび前記スイッチモジュールの間で情報同期させるネットワーク制御手段をさらに有する、請求項2に記載のネットワークノード。
  6. 前記生成する情報は、ルーティングおよびプロビジョニングのための制御信号の処理の結果に基づいて構築されるネットワーク経路情報及び仮想リンク情報である、請求項5に記載のネットワークノード。
  7. 前記ネットワーク仮想化部は、
    当該ネットワーク仮想化部を備える前記ネットワークモジュール上の前記仮想ノードを検索するための仮想ノードインタフェース転送テーブルを備え、
    仮想ノード宛ての通信データをネットワークノード内で伝送するために、当該通信データから抽出したキー情報に基づいて前記仮想ノードインタフェース転送テーブルを検索して、当該ネットワークモジュール上にある仮想ノード宛の通信データを見つけ出す、請求項1または2に記載のネットワークノード。
  8. 前記ネットワーク仮想化部は、
    当該ネットワーク仮想化部を備える前記ネットワークモジュール以外のネットワークモジュール上の前記仮想ノードを検索するための他モジュール転送テーブルを備え、
    仮想ノード宛ての通信データをネットワークノード内で伝送するために、当該通信データから抽出したキー情報に基づいて前記他モジュール転送テーブルを検索して、他ネットワークモジュール上にある仮想ノード宛の通信データを見つけ出す、請求項1または2に記載のネットワークノード。
  9. 前記各ネットワークモジュールは、複数の仮想ノードを搭載する、請求項1乃至8のいずれか1項に記載のネットワークノード。
  10. 仮想ノードを搭載して外部ネットワークとの接続に用いる物理インタフェースを備える複数のネットワークモジュールと、前記複数のネットワークモジュールをスター接続する際に当該スター接続の基点となるスイッチモジュールと、を備えるネットワークノードにおける負荷分散方法であって、
    前記物理インタフェースに到着したデータに関し、該データの情報から取り出したキーを基にあて先検索を行うことと、
    前記あて先検索の結果に基づき、該データのあて先が、到着した物理インタフェースを搭載するネットワークモジュールに搭載された仮想ノードか、前記スイッチモジュールを経由して接続されるネットワークモジュールに搭載された仮想ノードか、を判断することと、
    前記判断結果に応じて、いずれかのネットワークモジュールに搭載された仮想ノードに前記データを伝送することと、
    前記複数のネットワークモジュールのうち負荷が最も軽いネットワークモジュールに新たな仮想ノードを設置することと、
    を有する、負荷分散方法。
  11. 複数の前記新たな仮想ノードを設置する、請求項10に記載の方法。
  12. 請求項1に記載のネットワークノードにおける負荷分散方法であって、
    新たな仮想ノードを前記ネットワークモジュールのいずれかに設置するときに、最も負荷の軽いネットワークモジュールに当該仮想ノードを設置する、負荷分散方法。
  13. 請求項2に記載のネットワークノードにおける負荷分散方法であって、
    新たな仮想ノードを前記ネットワークモジュールのいずれかに設置するときに、最も負荷の軽いネットワークモジュールに当該仮想ノードを設置する、負荷分散方法。
JP2010531879A 2008-10-02 2009-09-30 ネットワークノードおよびその負荷分散方法 Active JP5429179B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010531879A JP5429179B2 (ja) 2008-10-02 2009-09-30 ネットワークノードおよびその負荷分散方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008257530 2008-10-02
JP2008257530 2008-10-02
PCT/JP2009/067024 WO2010038775A1 (ja) 2008-10-02 2009-09-30 ネットワークノードおよびその負荷分散方法
JP2010531879A JP5429179B2 (ja) 2008-10-02 2009-09-30 ネットワークノードおよびその負荷分散方法

Publications (2)

Publication Number Publication Date
JPWO2010038775A1 JPWO2010038775A1 (ja) 2012-03-01
JP5429179B2 true JP5429179B2 (ja) 2014-02-26

Family

ID=42073535

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010531879A Active JP5429179B2 (ja) 2008-10-02 2009-09-30 ネットワークノードおよびその負荷分散方法

Country Status (3)

Country Link
US (1) US20110170550A1 (ja)
JP (1) JP5429179B2 (ja)
WO (1) WO2010038775A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022139284A1 (en) * 2020-12-23 2022-06-30 Genirobot Co., Ltd. Method and system for providing virtual interface by using star network

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5304813B2 (ja) * 2011-02-22 2013-10-02 沖電気工業株式会社 通信ノード装置
US8660124B2 (en) 2011-08-05 2014-02-25 International Business Machines Corporation Distributed overlay network data traffic management by a virtual server
US20130034094A1 (en) * 2011-08-05 2013-02-07 International Business Machines Corporation Virtual Switch Data Control In A Distributed Overlay Network
US8751641B2 (en) * 2011-09-15 2014-06-10 International Business Machines Corporation Optimizing clustered network attached storage (NAS) usage
US8782128B2 (en) 2011-10-18 2014-07-15 International Business Machines Corporation Global queue pair management in a point-to-point computer network
US9973375B2 (en) * 2013-04-22 2018-05-15 Cisco Technology, Inc. App store portal providing point-and-click deployment of third-party virtualized network functions
KR101636265B1 (ko) * 2015-04-29 2016-07-06 주식회사 스타넷시스템 무선 통신보드를 이용한 무선통신 시스템
JP6570033B2 (ja) * 2015-07-28 2019-09-04 日本電信電話株式会社 仮想スイッチ制御システム及び方法
CN109687943B (zh) * 2018-10-11 2021-10-12 中国人民解放军海军陆战队训练基地 一种双机备份冗余控制系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008054214A (ja) * 2006-08-28 2008-03-06 Toshiba Corp ネットワーク仮想化システム及びネットワーク仮想化プログラム
JP2008219644A (ja) * 2007-03-06 2008-09-18 Mitsubishi Electric Corp パケット転送方法および制御装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7545755B2 (en) * 2000-03-03 2009-06-09 Adtran Inc. Routing switch detecting change in session identifier before reconfiguring routing table
US7356818B2 (en) * 2003-06-24 2008-04-08 International Business Machines Corporation Virtual machine communicating to external device without going through other virtual machines by using a list of IP addresses managed only by a single virtual machine monitor
US7483374B2 (en) * 2003-08-05 2009-01-27 Scalent Systems, Inc. Method and apparatus for achieving dynamic capacity and high availability in multi-stage data networks using adaptive flow-based routing
GB2418326B (en) * 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
US7580415B2 (en) * 2005-04-27 2009-08-25 Hewlett-Packard Development Company, L.P. Aggregation of hybrid network resources operable to support both offloaded and non-offloaded connections
US8549513B2 (en) * 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US20070288921A1 (en) * 2006-06-13 2007-12-13 King Steven R Emulating a network-like communication connection between virtual machines on a physical device
US8307359B1 (en) * 2006-06-23 2012-11-06 Emc Corporation Embedded virtual storage area network using a virtual block network fabric
US8923328B2 (en) * 2007-11-07 2014-12-30 Brocade Communications Systems, Inc. Method and system for facilitating application-oriented quality of service in a fibre channel network
US7849265B2 (en) * 2007-12-18 2010-12-07 Hitachi, Ltd. Avoiding use of an inter-unit network in a storage system having multiple storage control units
EP2248003A1 (en) * 2007-12-31 2010-11-10 Netapp, Inc. System and method for automatic storage load balancing in virtual server environments
US8336094B2 (en) * 2008-03-27 2012-12-18 Juniper Networks, Inc. Hierarchical firewalls
US20090276774A1 (en) * 2008-05-01 2009-11-05 Junji Kinoshita Access control for virtual machines in an information system
US7941539B2 (en) * 2008-06-30 2011-05-10 Oracle America, Inc. Method and system for creating a virtual router in a blade chassis to maintain connectivity
US9426095B2 (en) * 2008-08-28 2016-08-23 International Business Machines Corporation Apparatus and method of switching packets between virtual ports

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008054214A (ja) * 2006-08-28 2008-03-06 Toshiba Corp ネットワーク仮想化システム及びネットワーク仮想化プログラム
JP2008219644A (ja) * 2007-03-06 2008-09-18 Mitsubishi Electric Corp パケット転送方法および制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022139284A1 (en) * 2020-12-23 2022-06-30 Genirobot Co., Ltd. Method and system for providing virtual interface by using star network

Also Published As

Publication number Publication date
JPWO2010038775A1 (ja) 2012-03-01
US20110170550A1 (en) 2011-07-14
WO2010038775A1 (ja) 2010-04-08

Similar Documents

Publication Publication Date Title
JP5429179B2 (ja) ネットワークノードおよびその負荷分散方法
EP4024787B1 (en) Sharing routes using an in-memory data store in a distributed network system
CN110535760B (zh) 聚合接口的转发检测
US9215175B2 (en) Computer system including controller and plurality of switches and communication method in computer system
EP2572473B1 (en) Methods and apparatus for use in an openflow network
EP2974133B1 (en) Method and system for controlling an underlying physical network by a software defined network
KR101669700B1 (ko) 민첩한 데이터 센터 네트워크 아키텍처
CN102857416B (zh) 一种实现虚拟网络的方法、控制器和虚拟网络
US9065768B2 (en) Apparatus for a high performance and highly available multi-controllers in a single SDN/OpenFlow network
EP2449735B1 (en) Inter-node link aggregation method and node
EP3054634B1 (en) Scheme for performing one-pass tunnel forwarding function on two-layer network structure
US8953599B1 (en) Traffic cut-through within network device having multiple virtual network devices
CN110061915B (zh) 跨多个架构交换机的虚拟链路聚合的方法和系统
JP2002508123A (ja) マルチレイヤ・ネットワーク要素用のシステムおよび方法
JP5861772B2 (ja) ネットワークアプライアンス冗長化システム、制御装置、ネットワークアプライアンス冗長化方法及びプログラム
US7411945B2 (en) Adaptive router architecture enabling efficient internal communication
JP2011160363A (ja) コンピュータシステム、コントローラ、スイッチ、及び通信方法
JPWO2013176262A1 (ja) パケット転送システム、制御装置、パケット転送方法及びプログラム
US20160006511A1 (en) Metro-core network layer system and method
WO2015151442A1 (ja) 通信システム、通信方法および制御装置
EP2517422B1 (en) Grid router and network
CN110300073A (zh) 级联端口的目标选择方法、聚合装置及存储介质
US20050169265A1 (en) Adaptive router architecture
JP3887301B2 (ja) フレーム転送ネットワーク
JP4255863B2 (ja) 広域ネットワークシステム及び通信方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120814

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: 20131105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131118

R150 Certificate of patent or registration of utility model

Ref document number: 5429179

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150