JP6191703B2 - 通信制御システム、通信制御方法および通信制御プログラム - Google Patents
通信制御システム、通信制御方法および通信制御プログラム Download PDFInfo
- Publication number
- JP6191703B2 JP6191703B2 JP2015561200A JP2015561200A JP6191703B2 JP 6191703 B2 JP6191703 B2 JP 6191703B2 JP 2015561200 A JP2015561200 A JP 2015561200A JP 2015561200 A JP2015561200 A JP 2015561200A JP 6191703 B2 JP6191703 B2 JP 6191703B2
- Authority
- JP
- Japan
- Prior art keywords
- domain
- controller
- communication
- adjacent
- ofc
- 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
Links
- 238000004891 communication Methods 0.000 title claims description 197
- 238000000034 method Methods 0.000 title claims description 55
- 238000012545 processing Methods 0.000 claims description 24
- 238000012790 confirmation Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 201000006284 orofacial cleft 1 Diseases 0.000 description 84
- 238000004364 calculation method Methods 0.000 description 68
- 208000010376 orofacial cleft 2 Diseases 0.000 description 67
- 208000010486 orofacial cleft 3 Diseases 0.000 description 64
- 238000010586 diagram Methods 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 15
- 238000012546 transfer Methods 0.000 description 14
- 238000006424 Flood reaction Methods 0.000 description 13
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 4
- 230000000644 propagated effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000007616 round robin method Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/036—Updating the topology between route computation elements, e.g. between OpenFlow controllers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/18—Loop-free operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、複数の通信装置を管理するコントローラ間の通信制御を行う通信制御システム、通信制御方法および通信制御プログラムに関する。
複数の通信機器を一つの制御装置で集中管理する技術として、オープンフローが広く知られている。オープンフローでは、1台以上のオープンフロースイッチ(Open Flow Switch。以下、OFSと記す。)を、オープンフローコントローラ(Open Flow Controller。以下、OFCと記す。)が制御する。また、近年、OFCが制御可能なOFSの台数や、OFSの設置場所などの関係で、オープンフローを用いたネットワークを、複数のOFCで管理する要求が高まっている。
特許文献1には、独自に負荷分散機能を持たないスイッチとコントローラの組合せや、メーカの違いにより負荷分散機能に互換性がないスイッチとコントローラの組合せにおいても、コントローラの負荷分散を可能にする負荷分散システムが記載されている。特許文献1に記載された負荷分散システムでは、スイッチとコントローラの間にプロキシが設置され、そのプロキシが、1つのスイッチからの接続を複数のコントローラに通知しつつ、そのスイッチに対してマスタとなる1つのコントローラを決定し、そのスイッチからの問合せメッセージを、マスタとなる1つのコントローラのみに転送する。
一般にOFCは、他のOFCが管理するOFS群との繋がりを意識せず、自身が管理している配下のトポロジを検出する。以下、OFCが管理するOFS群のことを、OFCドメインと記す。すなわち、OFCは、OFCごとに検出された自OFCドメインのトポロジをベースとして、BCMC(Broadcast and Multicast)、Unkonwn unicast、Unicast転送をOpenFlowプロトコルで制御する。しかし、OFCが自OFCドメインのトポロジのみを検出して制御を行う場合、以下の課題が発生する。
図11は、2つのOFCドメイン間を複数の回線で接続した場合の例を示す説明図である。図11に示す例では、OFC1ドメイン110と、OFC2ドメイン120が、2本の回線C41および回線C42で接続されている。OFC1ドメイン110は、OFC1によって管理されるドメインであり、OFC2ドメイン120は、OFC2によって管理されるドメインである。
OFC1ドメイン110は、4つのOFS(OFS1〜4)を含む。OFC1ドメイン110において、OFS1とOFS2は、回線C11で接続され、OFS1とOFS3は、回線C12で接続され、OFS2とOFS4は、回線C13で接続され、OFS3とOFS4は、回線C14で接続される。また、クライアントPC(Personal Computer )210が、OFC1ドメイン110のOFS1に接続されている。
OFC2ドメイン120も同様に、4つのOFS(OFS1〜4)を含む。OFC2ドメイン120において、OFS1とOFS2は、回線C21で接続され、OFS1とOFS3は、回線C22で接続され、OFS2とOFS4は、回線C23で接続され、OFS3とOFS4は、回線C24で接続される。
OFC1は、OFC1ドメイン110のトポロジを検出(ディスカバリ)し、OFC2は、OFC2ドメイン120のトポロジを検出(ディスカバリ)する。さらに、OFC1は、自ドメイン内の回線C14を遮断(ブロック)し、また、OFC2は、自ドメイン内の回線C23を遮断(ブロック)するように、論理スパニングツリーを構築している。
図11に例示する環境の場合、PC210からBCMCパケットが送信されても、BCMCパケットは、各OFSドメイン内でループされなくなる。
しかし、回線C41、回線C22、回線C42および回線C13は、遮断されていないため、OFCドメインを跨いだこれらの回線では、ループが発生する。そのため、図11に例示するシステム全体で、BCMCストームが発生してしまう。
このような課題を解決する方法として、MCLAG(Multi−Chassis Link Aggregation Group)という技術が知られている。この技術を用いた場合、回線C41と回線C42を論理的に一本のリンクとして扱うことができるため、図11に例示するループの発生を回避することは可能である。
しかし、MCLAG技術を用いた場合であっても、3つ以上のOFCドメインが接続されたネットワークでループを回避することは困難である。図12は、3つのOFCドメインが接続された場合の例を示す説明図である。
図12に示す例では、OFC1ドメイン110と、OFC2ドメイン120に加えて、さらに、OFC3ドメイン130が存在する。OFC3ドメイン130は、OFC3によって管理されるドメインである。OFC1ドメイン110とOFC3ドメイン130は、回線C43で接続され、OFC2ドメイン120とOFC3ドメイン130は、回線C44で接続される。
OFC3ドメイン130も、4つのOFS(OFS1〜4)を含む。OFS1とOFS2は、回線C31で接続され、OFS1とOFS3は、回線C32で接続され、OFS2とOFS4は、回線C33で接続され、OFS3とOFS4は、回線C34で接続される。さらに、図12に示す例では、OFC1ドメイン110とOFC2ドメイン120は、回線C41および回線C42を用いて作成されるMCLAGで接続される。
この場合、PC1から送信されるBCMCパケットは、回線C41および回線C42を用いて作成されるMCLAG、回線C43および回線C44のリンクを経由することにより、OFC1ドメイン110、OFC2ドメイン120およびOFC3ドメイン130の間でループになる。そのため、図12に例示するシステム全体で、BCMCストームが発生してしまう。
このように、一般的な通信ネットワークでは、複数のOFCドメイン間の接続を冗長構成にすることは困難である。そのため、全OFCドメイン間の繋がりを配慮し、ループ構成を排除するようなトポロジを構築することが望まれる。
また、特許文献1に記載された負荷分散システムでは、このような状況を想定していない。そのため、複数のOFCを利用したオープンフローのネットワーク環境であっても、OFCドメインを跨いだ通信を複数の経路に負荷分散させたり、最適な経路を算出したりすることが望まれている。
そこで、本発明は、オープンフローのネットワーク環境において、接続される複数のOFCドメイン間に物理的なループが存在する場合であっても、通信をループさせずに、最適な経路を用いて通信を行うことができる通信制御システム、通信制御方法および通信制御プログラムを提供することを目的とする。
本発明による通信制御システムは、各オープンフローコントローラによって少なくとも1つ以上のオープンフロースイッチが管理される範囲を示すコントローラドメインが相互に接続されるネットワークにおいて、各コントローラドメイン間の通信を制御する通信制御システムであって、自コントローラドメインに隣接するコントローラドメインを特定する隣接ドメイン特定手段と、隣接するコントローラドメイン間の通信経路中に存在するループ構成を回避する通信ツリーを作成するループ解決手段と、各コントローラドメイン間のネットワークトポロジを特定するトポロジ特定手段と、ネットワークトポロジを利用して、通信ツリーに基づく最適経路を算出して、各オープンフロースイッチに接続される通信装置からの通信を制御する通信制御手段とを備えたことを特徴とする。
本発明による他の通信制御システムは、各オープンフローコントローラによって少なくとも1つ以上のオープンフロースイッチが管理される範囲を示すコントローラドメインが相互に接続されるネットワークにおいて、各コントローラドメイン間の通信を制御する通信制御システムであって、複数のオープンフローコントローラと、オープンフローコントローラからの通信が到達するように接続され、コントローラドメイン間の通信経路を示す通信ツリーを作成するトポロジマネージャとを備え、オープンフローコントローラが、自コントローラドメインに隣接するコントローラドメインを特定する隣接ドメイン特定手段と、特定した隣接するコントローラドメインを示す情報を、トポロジマネージャに送信する隣接ドメイン情報送信手段と、トポロジマネージャが算出したネットワークトポロジに基づく最適経路を算出して、各オープンフロースイッチに接続される通信装置からの通信を制御する通信制御手段とを含み、トポロジマネージャが、オープンフローコントローラから受信した情報に基づいて、各コントローラドメイン間のネットワークトポロジを特定し、隣接するコントローラドメイン間の通信経路中に存在するループ構成を回避する通信ツリーを作成する通信ツリー作成手段と、作成した通信ツリーをオープンフローコントローラに配信するネットワークトポロジ配信手段とを含むことを特徴とする。
本発明による通信制御方法は、各オープンフローコントローラによって少なくとも1つ以上のオープンフロースイッチが管理される範囲を示すコントローラドメインが相互に接続されるネットワークにおいて、各コントローラドメイン間の通信を制御する通信制御方法であって、自コントローラドメインに隣接するコントローラドメインを特定し、隣接するコントローラドメイン間の通信経路中に存在するループ構成を回避する通信ツリーを作成し、各コントローラドメイン間のネットワークトポロジを特定し、ネットワークトポロジを利用して、通信ツリーに基づく最適経路を算出して、各オープンフロースイッチに接続される通信装置からの通信を制御することを特徴とする。
本発明による通信制御プログラムは、各オープンフローコントローラによって少なくとも1つ以上のオープンフロースイッチが管理される範囲を示すコントローラドメインが相互に接続されるネットワークにおいて、各コントローラドメイン間の通信を制御するコンピュータに適用される通信制御プログラムであって、コンピュータに、自コントローラドメインに隣接するコントローラドメインを特定する隣接ドメイン特定処理、隣接するコントローラドメイン間の通信経路中に存在するループ構成を回避する通信ツリーを作成するループ解決処理、各コントローラドメイン間のネットワークトポロジを特定するトポロジ特定処理、および、ネットワークトポロジを利用して、通信ツリーに基づく最適経路を算出して、各オープンフロースイッチに接続される通信装置からの通信を制御する通信制御処理を実行させることを特徴とする。
本発明によれば、オープンフローのネットワーク環境において、接続される複数のOFCドメイン間に物理的なループが存在する場合であっても、通信をループさせずに、最適な経路を用いて通信を行うことができる。
以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図1は、本発明による通信制御システムの第1の実施形態の構成例を示す説明図である。また、図2は、本実施形態の通信制御システムで用いられるOFCの構成例を示すブロック図である。以下の説明では、通信ネットワーク内には、3つのOFCドメイン(OFCドメイン110,120,130)と各OFCドメインにおけるOFCに管理されるそれぞれ4台のOFSが含まれるものとする。すなわち、以下で説明する環境は、3台のOFCを含むマルチコントローラ環境である。
図1は、本発明による通信制御システムの第1の実施形態の構成例を示す説明図である。また、図2は、本実施形態の通信制御システムで用いられるOFCの構成例を示すブロック図である。以下の説明では、通信ネットワーク内には、3つのOFCドメイン(OFCドメイン110,120,130)と各OFCドメインにおけるOFCに管理されるそれぞれ4台のOFSが含まれるものとする。すなわち、以下で説明する環境は、3台のOFCを含むマルチコントローラ環境である。
ただし、通信制御システムに含まれるOFCドメインの数は3つに限定されず、4つ以上であってもよい。また、各OFCドメインに含まれるOFSの数は4つに限定されず、1〜3つであってもよく、5つ以上であってもよい。
また、図1に例示する通信制御システムにおいて、PC211は、OFC1ドメイン110に含まれるOFS1のport1にcost=1で接続され、PC212は、OFC1ドメイン110に含まれるOFS3のport1にcost=1で接続される。また、PC231は、OFC3ドメイン130に含まれるOFS4のport1にcost=1で接続され、PC232は、OFC3ドメイン130に含まれるOFS3のport1にcost=1で接続される。
さらに、OFC1ドメイン110に含まれるOFS2のport1は、OFC2ドメイン120に含まれるOFS1のport1とcost=1で接続され、OFC2ドメイン120に含まれるOFS1のport1は、OFC1ドメイン110に含まれるOFS2のport1とcost=1で接続される。また、OFC1ドメイン110に含まれるOFS4のport1は、OFC3ドメイン130に含まれるOFS1のport1とcost=2で接続され、OFC3ドメイン130に含まれるOFS1のport1は、OFC1ドメイン110に含まれるOFS4のport1とcost=1で接続される。また、OFC2ドメイン120に含まれるOFS3のport1は、OFC3ドメイン130に含まれるOFS2のport1とcost=1で接続され、OFC3ドメイン130に含まれるOFS2のport1は、OFC2ドメイン120に含まれるOFS3のport1とcost=1で接続される。
図2は、本実施形態のOFCの機能モジュール構成を示している。図2に例示するOFC100は、OFCドメインを制御する。図2に例示するOFC100は、図1に例示するOFC1、OFC2およびOFC3に対応する。OFC100は、経路計算モジュール10と、トポロジ管理モジュール20と、メッセージ解析モジュール30と、メッセージ送受信モジュール40とを備えている。
メッセージ送受信モジュール40は、オープンフローメッセージを送受信するモジュールである。
メッセージ解析モジュール30は、メッセージ送受信モジュール40から受信したオープンフローメッセージを解析し、上位モジュール(経路計算モジュール10およびトポロジ管理モジュール20)に通知する。また、メッセージ解析モジュール30は、上位モジュール(経路計算モジュール10およびトポロジ管理モジュール20)から発行されたOFS制御メッセージをオープンフローメッセージに変換し、メッセージ送受信モジュール40に通知する。
トポロジ管理モジュール20は、ドメイン間トポロジ管理モジュール21と、内部ドメイントポロジ管理モジュール22とを含む。
トポロジ管理モジュール20(より具体的には、ドメイン間トポロジ管理モジュール21と、内部ドメイントポロジ管理モジュール22)は、プログラム(通信制御プログラム)に従って動作するコンピュータのCPUによって実現される。例えば、プログラムは、OFC100の記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、トポロジ管理モジュール20(より具体的には、ドメイン間トポロジ管理モジュール21と、内部ドメイントポロジ管理モジュール22)として動作してもよい。
また、ドメイン間トポロジ管理モジュール21と、内部ドメイントポロジ管理モジュール22とは、それぞれが専用のハードウェアで実現されていてもよい。また、ドメイン間トポロジ管理モジュール21と、内部ドメイントポロジ管理モジュール22がそれぞれ行う処理を、トポロジ管理モジュール20がまとめて行ってもよい。
内部ドメイントポロジ管理モジュール22は、OFCドメイン内のトポロジの探索およびトポロジの維持を行う。OFCドメイン内のトポロジを検索する方法は、OFCの実装によって異なるが、内部ドメイントポロジ管理モジュール22は、一般的に知られた方法を用いてトポロジの探索およびトポロジの維持を行えばよい。ここでは、OFCが管理するOFCドメイン内のトポロジの探索方法および維持方法について、詳細な説明を省略する。
ドメイン間トポロジ管理モジュール21は、OFCドメイン間のトポロジの探索およびトポロジの維持を行う。また、ドメイン間トポロジ管理モジュール21は、探索したトポロジの情報を経路計算モジュール10に通知する。
経路計算モジュール10は、MAC(Media Access Control)・宛先ドメインテーブル記憶部11と、MACローカルテーブル記憶部12と、ドメイン間トポロジ情報記憶部13とを含む。MAC・宛先ドメインテーブル記憶部11、MACローカルテーブル記憶部12およびドメイン間トポロジ情報記憶部13は、例えばメモリや、磁気ディスク等により実現される。また、経路計算モジュール10は、プログラム(通信制御プログラム)に従って動作するコンピュータのCPUによって実現される。
ドメイン間トポロジ情報記憶部13は、ドメイン間トポロジ管理モジュール21から通知されたシステム全体におけるOFCドメイン間のトポロジ情報を保持する。
MACローカルテーブル記憶部12は、自OFCドメイン内で学習したMAC情報を保持する。MAC情報は、自OFCドメイン内のOFSの移動や消滅、新規学習により更新される。なお、トポロジ管理モジュール20は、MAC情報が消滅したり、新規にMAC情報を学習した場合、OFCSDA(OFC Source Domain Advertise )を他のOFCドメインにフラディングする。
MAC・宛先ドメインテーブル記憶部11は、他のOFCドメインから収集した情報(例えば、OFCSDA)に基づいて生成されるMAC・宛先ドメインテーブルを記憶する。
以下、ドメイン間トポロジ管理モジュール21が行う処理を、具体的に説明する。
(1)ネーバーディスカバリ段階
ドメイン間トポロジ管理モジュール21は、自OFCドメインに隣接するOFCドメインを特定し、他のOFCドメインにおけるOFCに通知する。ドメイン間トポロジ管理モジュール21は、隣接するOFCドメインを探索するため、OFCND(OFC Neighbor Discovery)パケットを使用する。
ドメイン間トポロジ管理モジュール21は、自OFCドメインに隣接するOFCドメインを特定し、他のOFCドメインにおけるOFCに通知する。ドメイン間トポロジ管理モジュール21は、隣接するOFCドメインを探索するため、OFCND(OFC Neighbor Discovery)パケットを使用する。
OFCNDパケットのうち、自OFCドメインから他のOFCドメインに対して送信されるパケットのタイプはNAD(Neighbor Advertise)で識別され、他のOFCドメインから自OFCドメインに対して送信されるパケットのタイプはNRS(Neighbor Response)で識別される。以下の説明では、パケットのタイプがNADのOFCNDパケットをOFCNADパケットと記すことがあり、パケットのタイプがNRSのOFCNDパケットをOFCNRSパケットと記すことがある。
図3は、パケットのタイプがNADであるOFCNDパケットによって伝搬される情報の例を示す説明図である。また、図4は、パケットのタイプがNRSであるOFCNDパケットによって伝搬される情報の例を示す説明図である。
OFCNDメッセージは、タイプを示すTypeフィールドおよびノード(Node)の種類を示すNodeフィールドを含む。Nodeフィールドは、OFC Domain ID、OFS Domain ID、OFS ID、OFS Port IDおよびPort Link Costの各フィールドを含む。
図3に示す例では、NodeフィールドにON(Original Node)が設定されている。また、図3に例示するOFCNDメッセージにおいて、OFC Domain IDには、送信する自ドメインID、OFS Domain IDには、送信するOFSのドメインID、OFS IDには、送信するOFSのID、OFS Port IDには、送信するOFSのポートID、Port Link Costには、送信するポートのリンクコストを示す情報がそれぞれ設定されている。
図4に示す例では、ONが設定されたNodeフィールド以外に、NN(Neighbor Node)が設定されたNodeフィールドが存在する。図4に例示するOFCNDメッセージにおいて、図3に例示するNodeフィールドのNodeIDがNNに設定されている。
また、ONが設定されたNodeフィールドにおいて、OFC Domain IDには、NADを受信した隣接OFCドメインID、OFS Domain IDには、NADを受信した隣接OFSのドメインID、OFS IDには、NADを受信した隣接OFSのID、OFS Port IDには、NADを受信した隣接OFSのポートID、Port Link Costには、NADを受信した隣接ポートのリンクコストを示す情報がそれぞれ設定されている。
なお、NodeフィールドのOFS Domain IDは、1つのOFCが複数の隔離したアイランド状態のOFS群を管理する場合において、それぞれのOFS群を識別するためのフィールドである。図5は、OFCが複数のOFS群を管理している状態を示す説明図である。図5に示す例では、OFC1が、2つのOFSドメインをそれぞれ管理していることを示す。このように、各OFCが、複数の隔離された(アイランド状態)のOFS群を管理していてもよい。
OFS Domain IDは、OFCドメイン内でユニークなIDが割り振られ、OFCによって管理される。
なお、OFC Domain IDも、通信制御システム内でユニークなIDが割り振られる。OFC Domain IDを割り振る方法は任意である。例えば、OFC Domain IDを各OFCに手動で設定してもよいし、OFC間で自動的に割り振るようにしてもよいし、集中管理機能を持つ他の装置によって自動的に割り振られるようにしてもよい。
OFCNDパケットのフレームは、以下の条件を満たせば、その他のフォーマット等については、特に限定されない。
・MACSA(MAC Source Address)
OFC OpenFlow Channelとして利用するNIC(Network Interface Card)のMAC
なお、クラスタ構成の場合、共有の仮想MAC
・MACDA(MAC Destination Address)
パケットのタイプがNADの場合、BC/MC
パケットのタイプがNRSの場合、受信NADのMACSA
レガシースイッチの透過性があるMACDA
・Ether Type
レガシースイッチの透過性があるEther Type
OFC OpenFlow Channelとして利用するNIC(Network Interface Card)のMAC
なお、クラスタ構成の場合、共有の仮想MAC
・MACDA(MAC Destination Address)
パケットのタイプがNADの場合、BC/MC
パケットのタイプがNRSの場合、受信NADのMACSA
レガシースイッチの透過性があるMACDA
・Ether Type
レガシースイッチの透過性があるEther Type
各OFCがOFCNADパケットを他のOFCドメインに送信し、OFCNADを受信したOFCがOFCNADを送信したOFCドメインに対してOFCNRSを回答することで、隣接するOFCドメインの特定(ネーバーディスカバリ)を行う。
具体的には、ドメイン間トポロジ管理モジュール21は、OFCNADパケットを他のOFCドメインに送信する。また、ドメイン間トポロジ管理モジュール21は、OFCNADを受信すると、OFCNADを送信したOFCドメインに対してOFCNRSを回答する。
ドメイン間トポロジ管理モジュール21は、送信したOFCNADパケットに対して、正しいOFCNRSパケットを受信した場合、OFCNADパケットを送信したポートをネーバーあり外向きポート(隣接するOFCドメインが存在するポート)として記録する。
次に、隣接するOFCドメインの特定処理(ネーバーディスカバリ処理)について具体的に説明する。以下、OFCが管理するドメインをOFC−OFSドメインと記す。なお、本実施形態の説明では、OFCが管理するOFSドメインは1つであるが、OFSドメインが2つ以上に場合についても同様である。
まず、内部ドメイントポロジ管理モジュール22は、自OFC−OFSドメインのトポロジを検出して、物理BCMC配信ツリーおよび論理BCMC配信ツリーを構築する。なお、自ドメイン内のトポロジを検出する方法および配信ツリーを構築する方法は広く知られており、ここでは説明を省略する。
初期状態において、外向きポートが外部OFCドメインとの接続している状況は不明であるため、外向きポート状態は接続不明であることを示す情報(例えば、0)に設定されている。そこで、内部ドメイントポロジ管理モジュール22は、外向きポート状態が0に設定されている外向きポートからのOFCND以外のパケットの送受信を禁止するように、フローエントリを設定する。
なお、自OFCドメイン内のトポロジを検知する際にOFCNDと異なるタイプのパケットが使用される場合、内部ドメイントポロジ管理モジュール22は、そのパケットの送受信をOFCNDと同様に許可する設定を行えばよい。
内部ドメイントポロジ管理モジュール22は、外向きポート状態をドメイン間トポロジ管理モジュール21に通知する。
ドメイン間トポロジ管理モジュール21は、外向きポート状態が0の外向きポートに関して、以下の条件を満たすOFCNDパケットをパケットインさせるフローエントリ(OFCNDパケットインフロー)を登録する。
・OFCNDパケットを受信した場合、OFCにPacket_Inさせる。
・OFCNDパケットを受信した場合、OFCにPacket_Inさせる。
内部ドメイントポロジ管理モジュール22は、OFCNADパケットを全外向きポートにPacket_Outメッセージを用いて送信する。OFCNADパケットは、接続性がある外部OFCドメインに到達するため、OFCNDパケットインフローにマッチしてOFCにPacket_Inされる。
ドメイン間トポロジ管理モジュール21は、受信したOFCNADにおけるMACSA、ON NodeにおけるOFC Domain IDおよびOFS Domain IDを、自MAC、自OFCドメインIDおよびOFCNADを受信したOFS Domain IDと比較する。
すべての項目が一致した場合、ドメイン間トポロジ管理モジュール21は、ON NodeのOFS Port IDで識別されるポート、または、OFCNADを受信したOFSのPortからのパケット転送を即時ブロックする。なお、どちらのポートをブロックするかは、OFCの実装に応じて定められればよい。
OFCNADパケットを受信すると、ドメイン間トポロジ管理モジュール21は、OFCNRSパケットを、OFCNADパケットの受信ポートに送信する。OFCNRSパケットは、OFCNADを送信したOFCドメインに到達するため、OFCNDパケットインフローにマッチし、OFCにPacket_Inされる。
ドメイン間トポロジ管理モジュール21は、自OFCドメインID、OFCNRSを受信したOFSドメインID、OFS IDおよびPORT IDを、OFCNRSにおけるON Nodeの情報と比較する。すべての項目が一致しない場合、受信したパケットを廃棄する。
一方、すべての項目が一致した場合、ドメイン間トポロジ管理モジュール21は、受信したOFCNRSのON Node情報およびNN Node情報から、自管理配下のOFC−OFSドメインと、隣接するOFC−OFSドメインとが接続されていることを示す情報としてドメイン間トポロジ情報記憶部13にネーバードメインDBを保持する。
さらに、ドメイン間トポロジ管理モジュール21は、外部OFC−OFSドメインと接続しているポートを、隣接するドメインが存在する外向きポートと判定し、外向きポート状態を2に設定する。すなわち、外向きポート状態に2が設定された外向きポートは、ネーバーディスカバリが完了し、隣接するドメインが存在することを示す。
事前に設定された一定の時間を経過し、タイムアウトが発生すると、ドメイン間トポロジ管理モジュール21は、外向きポート状態に0が設定されている外向きポートについて、その外向きポート状態を1に設定する。すなわち、外向きポート状態に1が設定された外向きポートは、ネーバーディスカバリが完了し、隣接するドメインが存在しないことを示す。
以後、ドメイン間トポロジ管理モジュール21は、外向きポート状態に1が設定された外向きポートを、隣接ドメインが存在しない外向きポートと認識する。ドメイン間トポロジ管理モジュール21は、OFCが外向きポートに対して行う一般的な処理(例えば、パケットインを許可する処理、OFC内部のBCMCツリーの要素として行う処理、など)をその外向きポートに関して行う。
OFCは、全外向きポートに対してOFCNDを送受信することで、ネーバードメインDBを維持する。例えば、OFCNADに対する新たなOFCNRSを正しく受信した場合、ドメイン間トポロジ管理モジュール21は、ネーバードメインDBを新しい情報で更新する。
一方、OFCNADに対するOFCNRSを正しく受信できない場合、ドメイン間トポロジ管理モジュール21は、一定のリトライ処理を行い、該当の情報をネーバードメインDBから削除するなどの動作を行う。
なお、ここまでの処理において、隣接ドメインが存在する外向きポートでOFCND以外のパケットを送受信する処理は、まだ禁止されている。
(2)ループディスカバリ段階
ドメイン間トポロジ管理モジュール21は、通信経路内にループが存在するか否か判断する。以下の説明では、通信経路内のループのことを、閉鎖グラフと記すこともある。本実施形態では、ドメイン間トポロジ管理モジュール21は、ループが存在するか否か判断する際に、OFCDU(OFC Data Unit)パケットを利用する。
ドメイン間トポロジ管理モジュール21は、通信経路内にループが存在するか否か判断する。以下の説明では、通信経路内のループのことを、閉鎖グラフと記すこともある。本実施形態では、ドメイン間トポロジ管理モジュール21は、ループが存在するか否か判断する際に、OFCDU(OFC Data Unit)パケットを利用する。
OFCDUは、STP(Spanning Tree Protocol)で用いられるBPDU(Bridge Protocol Data Unit)パケットと同様のフォーマットである。ただし、BPDUパケットがスイッチの情報の伝送に用いられるのに対し、本実施形態で用いられるOFCDUパケットは、以下に例示する情報(具体的には、OFC−OFSドメインの情報)の伝送に用いられる。
・Root OFC−OFS Domain ID
・送信OFC−OFS Domain ID
・Root Path Cost(各OFC−OFSドメインについて、ルートOFC−OFSドメインとのパスコスト)
・送信OFC−OFS Domain ID
・Root Path Cost(各OFC−OFSドメインについて、ルートOFC−OFSドメインとのパスコスト)
ドメイン間トポロジ管理モジュール21は、STPと同様のアルゴリズムを用いて、OFCDUに対する処理を行う。以下、ループを回避するための処理を説明する。
ドメイン間トポロジ管理モジュール21は、隣接ドメインが存在する全外向きポートに関して、以下の条件を満たすOFCDUパケットをパケットインさせるフローエントリ(OFCDUパケットインフロー)を登録する。
・OFCDUパケットを受信した場合、OFCにPacket_Inさせる。
・OFCDUパケットを受信した場合、OFCにPacket_Inさせる。
ドメイン間トポロジ管理モジュール21は、隣接ドメインが存在する全外向きポートからOFCDUを送受信する。OFC同士でOFCDUを送受信することにより、OFCは、Root OFC−OFS Domainを決定する。
具体的には、ドメイン間トポロジ管理モジュール21は、初めに、自身が管理するすべてのOFC−OFS DomainがRoot OFC−OFS Domainであると認識し、そのOFC−OFS DomainのIDをOFCDUのRoot OFC−OFS Domain IDに設定する。そして、ドメイン間トポロジ管理モジュール21は、隣接ドメインが存在する各外向きポートにOFCDUを送信する。
各コントローラは、受信したOFCDUのRoot OFC−OFS Domain IDを、自身が管理するOFC−OFS Domain IDと比較する。自身が管理するOFC−OFS Domain IDよりも、受信したOFCDUのRoot OFC−OFS Domain IDが小さい場合、ドメイン間トポロジ管理モジュール21は、自身がRoot OFC−OFS Domainではないと判断する。
この処理を繰り返すことで、各閉鎖グラフ上に、唯一のRoot OFC−OFS Domainが特定される。以後、Root OFC−OFS Domainと特定されたOFCのみ、OFCDUを送信する。それ以外のOFCは、OFCDUを受信し、Path Costを加算して転送する。
Root OFC−OFS Domainにおいて隣接ドメインが存在する外向きポートは、代表ポートになる。また、他のOFC−OFS Domainにおいて、Root OFC−OFS Domainに一番近い(Root Path Cost)ポートは、Root Portになる。
また、他の異なるOFC−OFS Domainに存在する隣り合うポートについて、Root OFC−OFS Domainに近いOFC−OFS Domainのポートは、代表ポートになり、遠いポートは非代表ポートになる。
ドメイン間トポロジ管理モジュール21は、隣接ドメインが存在する代表ポートに関して、OFCがポートに対して行う一般的な処理(例えば、パケットインを許可する処理、OFC内部のBCMCツリーの要素として行う処理、など)を行う。このような処理を行うことで、STPで構築されるようなループ構成を回避する(単一経路)の通信ツリーが構築される。以下、このような通信ツリーを、Inter−Domain BCMC Treeと記すこともある。
なお、上述の処理において、Root Path Costが同一の場合、ドメイン間トポロジ管理モジュール21は、OFCDUにおける送信OFC−OFS Domain ID、受信OFS ID、受信OFS PortIDを順次比較すればよい。
ドメイン間トポロジ管理モジュール21は、Inter−Domain BCMC TreeをSTPで用いられる方法と同様の方法を用いて維持する。Root OFC−OFS Domainのドメイン間トポロジ管理モジュール21は、例えば、一定間隔で継続的にOFCDUを送信してもよい。また、一定時間内にOFCDUを受信できない場合、ドメイン間トポロジ管理モジュール21は、自らOFCDUを送信し、ループディスカバリ処理を再度行ってもよい。
このように、ドメイン間トポロジ管理モジュール21は、OFCドメイン間で通信経路がループする閉鎖グラフが存在する場合、その閉鎖グラフを対象としてSTPで用いられるようなループ構成を回避する通信ツリーを計算する。その結果、構築された通信ツリーであるInter−Domain BCMC Tree経由で、OFC−OFSドメイン間の通信が可能になる。
(3)トポロジディスカバリ段階
ドメイン間トポロジ管理モジュール21は、各OFCドメイン間のネットワークトポロジを特定する。本実施形態では、ドメイン間トポロジ管理モジュール21は、ドメイン間のネットワークトポロジを判断する際に、OFCTDDU(OFC Topology Discovery Data Unit)パケットを利用する。
ドメイン間トポロジ管理モジュール21は、各OFCドメイン間のネットワークトポロジを特定する。本実施形態では、ドメイン間トポロジ管理モジュール21は、ドメイン間のネットワークトポロジを判断する際に、OFCTDDU(OFC Topology Discovery Data Unit)パケットを利用する。
図6は、OFCTDDUパケットの例を示す説明図である。図6に例示するOFCTDDUパケットでは、Node IDごとに、OFC Domain ID、OFS Domain ID、OFS ID、OFS Port ID、Port Link Costの各フィールドを含む。
OFCTDDUパケットのフレームは、以下の条件を満たせば、その他のフォーマット等については、特に限定されない。
・MACSA
OFC OpenFlow Channelとして利用するNICのMAC
なお、クラスタ構成の場合、共有の仮想MAC
・MACDA
BC/MC
レガシースイッチの透過性があるMACDA
・Ether Type
レガシースイッチの透過性があるEther Type
OFC OpenFlow Channelとして利用するNICのMAC
なお、クラスタ構成の場合、共有の仮想MAC
・MACDA
BC/MC
レガシースイッチの透過性があるMACDA
・Ether Type
レガシースイッチの透過性があるEther Type
OFCTDDUには、Node情報が各Nodeラベルに格納される。Node ID=0のNodeラベルには、OFCTDDUを送信するOFC−OFSドメインの情報が格納される。OFCがOFCTDDUを受信すると、ドメイン間トポロジ管理モジュール21は、OFCTDDUの最後尾のNode IDをインクリメントして、新たなNodeラベルを作成し、受信OFC−OFSドメインの情報を、そのNodeラベルに格納する。
具体的には、各OFCのドメイン間トポロジ管理モジュール21は、隣接ドメインが存在する全外向きポートに対して、送信元のOFC−OFS Domain情報を格納したOFCTDDUを送信する。OFCがOFCTDDUを受信すると、ドメイン間トポロジ管理モジュール21は、OFCTDDUを受信したOFC−OFS Domainを示す情報がそのOFCTDDUに含まれているか判断する。
その情報がOFCTDDUに含まれている場合、ドメイン間トポロジ管理モジュール21は、トポロジ情報を学習する。一方、その情報がOFCTDDUに含まれていない場合、ドメイン間トポロジ管理モジュール21は、トポロジ情報を学習し、さらに、OFC−OFS Domain情報をOFCTDDUに追加して、受信ポート以外で隣接ドメインが存在する外向きポートに転送する。
一定時間経過後、OFCのトポロジ管理モジュール20は、収集したトポロジ情報に基づいてネットワーク全体のトポロジ(以下、Inter−Domain Topologyと記すこともある。)を特定し、経路計算モジュール10に通知する。
Inter−Domain Topologyを特定する際、ドメイン間トポロジ管理モジュール21は、隣り合うポートのリンクコストのうち、最も大きな値を、トポロジにおけるリンクコスト(エッジコスト)として利用してもよい。
(4)Unicast経路計算段階
経路計算モジュール10は、特定されたネットワークトポロジを利用して、上述する通信経路に基づく経路を算出して、各OFSに接続される装置からの通信を制御する。具体的には、経路計算モジュール10は、ARP(Address Resolution Protocol ) RequestのブロードキャストMACDAを書き換え、MACSAの発信元OFC−OFS Domain ID情報を設定する。そして、経路計算モジュール10は、Inter−Domain BCMC Tree経由で、書き換えたパケットを他のOFCに通知する。
経路計算モジュール10は、特定されたネットワークトポロジを利用して、上述する通信経路に基づく経路を算出して、各OFSに接続される装置からの通信を制御する。具体的には、経路計算モジュール10は、ARP(Address Resolution Protocol ) RequestのブロードキャストMACDAを書き換え、MACSAの発信元OFC−OFS Domain ID情報を設定する。そして、経路計算モジュール10は、Inter−Domain BCMC Tree経由で、書き換えたパケットを他のOFCに通知する。
MACSAの発信元OFC−OFS Domain ID情報は、OFSDAパケットおよびOFSDDパケットで伝送される。図7は、OFSDAパケットとOFSDDパケットの例を示す説明図である。図7に例示するOFSDAパケットには、OFSDAを識別するための固定値として“03255c00”が設定されている。また、図7に例示するOFSDDパケットには、OFSDDを識別するための固定値として“03255c01”が設定されている。
なお、図7に示すOFSDAパケットおよびOFSDDパケットは一例である。ただし、以下の条件を満たす。
・MACDA
Multicast
OFCDAとOFCDDを識別するための識別子を格納するフィールドを有する。
MACSAの送信元OFC−OFS Domain ID情報を格納するフィールドを有する。
・Ether Type
ARP
Multicast
OFCDAとOFCDDを識別するための識別子を格納するフィールドを有する。
MACSAの送信元OFC−OFS Domain ID情報を格納するフィールドを有する。
・Ether Type
ARP
まず、経路計算モジュール10は、Inter−Domain BCMC Tree上で、隣接ドメインが存在する外向きポートに対して、以下のOFCDA−OFCDDパケットインフローを登録する。
・OFCDAまたはOFCDDを受信した場合、OFCにPacket_Inさせる。
・OFCDAまたはOFCDDを受信した場合、OFCにPacket_Inさせる。
次に、経路計算モジュール10は、端末(例えば、PC)から受信したBC ARP Requestを、OFCドメイン内部のBCMCツリーを経由させ、各OFSドメイン内の各OFSにおいて隣接ドメインが存在しない外向きポートにフラディングする。
経路計算モジュール10は、BC ARP RequestのMACSAを学習し、MACローカルテーブル記憶部12に登録する。なお、OFSドメイン内部の経路は、既存の方法により特定される。
次に、経路計算モジュール10は、端末(例えば、PC)から受信したBC ARP RequestをOFSDAに書き換え、Inter−Domain BCMC Tree上で、隣接ドメインが存在する外向きポートにフラディングする。
OFCがOFCDAを受信すると、経路計算モジュール10は、OFSDAに含まれるMACSA、および、MACDAに設定されたOFCドメインIDとOFSドメインIDとを、MAC・宛先ドメインテーブル記憶部11に登録する。
そして、経路計算モジュール10は、そのOFCDAパケットを、Inter−Domain BCMC Tree上で、隣接ドメインが存在する全外向きポート(ただし、受信ポートを除く。)にフラディングする。
次に、経路計算モジュール10は、OFCDAのMACDAをブロードキャストMACDAに書き戻したARP Requestを、受信したOFCドメイン内部のBCMCツリーを経由させ、ドメイン内において隣接ドメインが存在しない外向きポートにフラディングする。
以上の処理を行うことで、各OFCは、端末のMACが存在するOFC−OFS DomainのIDを把握できる。
次に、その端末のMACがMACDAに設定されたパケットを、OFCが受信した場合の処理を説明する。
MACローカルテーブル記憶部12にその端末のMACが存在する場合、経路計算モジュール10は、一般的な方法で、その端末のMACが存在するポートにパケットを転送する制御を行う。経路計算モジュール10は、例えば、フローエントリを追加してパケットを転送するように制御してもよい。
一方、MACローカルテーブル記憶部12にその端末のMACが存在しない場合、経路計算モジュール10は、MAC・宛先ドメインテーブル記憶部11を検索する。
MAC・宛先ドメインテーブル記憶部11にも、その端末のMACが存在しない場合、経路計算モジュール10は、受信したパケットをUnknown unicastパケットとして認識する。そして、経路計算モジュール10は、Inter−Domain BCMC Tree上において隣接ドメインが存在する全外向きポート、および、自OFC−OFSドメイン内において隣接ドメインが存在しない外向きポートに対して、受信したパケットをフラディングする。
一方、MAC・宛先ドメインテーブル記憶部11にその端末のMACが存在する場合、経路計算モジュール10は、Unicastパケットを受信した自OFC−OFSドメインを始点とし、MAC・宛先ドメインテーブルの宛先OFC−OFSドメインを終点として、最短経路を探索する。
経路計算モジュール10は、例えば、ダイクストラ法など、一般的に用いられる任意の探索アルゴリズムを用いて最短経路を探索すればよい。
また、最短経路が複数存在する場合、経路計算モジュール10は、予め定めた分散アルゴリズム(例えば、ラウンドロビン法や、MACハッシュ、IPハッシュなど)を用いて、経路を選択してもよい。
経路計算モジュール10は、OFCは、計算された最短経路上のOFC−OFSドメインに接続されたポートに該当のパケットを転送する制御を行う。経路計算モジュール10は、例えば、フローエントリをOFSに設定し、送信するUnicastパケットのハードウェア転送を実施させる。
また、OFC管理配下のMACが消滅した場合、経路計算モジュール10は、MACローカルテーブル記憶部12から、消滅したMACのラーニング情報を削除する。そして、経路計算モジュール10は、そのMACをMACSAに設定したOFCDDを、Inter−Domain BCMC Tree経由で、各OFC−OFSドメインにフラディングする。OFCがOFCDDを受信すると、経路計算モジュール10は、OFCDDに設定されたMACSAの情報を、MAC・宛先ドメインテーブル記憶部11から削除する。
経路計算モジュール10は、トポロジディスカバリが完了した後、Unicast経路を計算することで、Known Unicastの転送および負荷分散を行う。よって、接続される複数のOFCドメイン間に物理的なループが存在する場合であっても、通信をループさせずに、最適な経路を用いて通信を行うことができる。
以下、第1の実施形態の通信制御システムの動作例を、図1を参照して用いてさらに説明する。図1に示す例では、各OFCは、既存の方式で自ドメイン内部のBCMC Treeを構築する。具体的には、OFC1ドメイン110(以下、OFC1−OFS1ドメインと記す。)においてはOFS3とOFS4の間のリンクがブロックされ、OFC2ドメイン120(以下、OFC2−OFS1ドメインと記す。)においてはOFS2とOFS4の間のリンクがブロックされ、OFC3ドメイン130(以下、OFC3−OFS1ドメインと記す。)においてはOFS3とOFS4の間のリンクがブロックされたものとする。
また、OFC1−OFS1ドメインにおけるOFS1−Port1、OFS2−Port1、OFS3−Port1およびOFS4−Port1は、外向きポートとしてOFC1に認識されている。
同様に、OFC2−OFS1ドメインにおけるOFS1−Port1およびOFS3−Port1は、外向きポートとしてOFC2に認識されている。また、OFC3−OFS1ドメインにおけるOFS1−Port1およびOFS2−Port1は、外向きポートとしてOFC3に認識されている。
(1)ネーバーディスカバリ段階
各OFCの内部ドメイントポロジ管理モジュール22は、自身が管理する配下に存在する外向きポートに対して、OFCNADをフラディングする。OFC1が送信するOFCNADは、以下に例示する情報を含む。
各OFCの内部ドメイントポロジ管理モジュール22は、自身が管理する配下に存在する外向きポートに対して、OFCNADをフラディングする。OFC1が送信するOFCNADは、以下に例示する情報を含む。
・OFS1−Port1に対して
Type:NAD,
Original Node:{OFC1ドメイン,OFS1ドメイン,OFS1,Port1,LinkCost1}
・OFS2−Por1に対して
Type:NAD,
Original Node:{OFC1ドメイン,OFS1ドメイン,OFS2,Port1,LinkCost1}
・OFS3−Por1に対して
Type:NAD,
Original Node:{OFC1ドメイン,OFS1ドメイン,OFS3,Port1,LinkCost1}
・OFS4−Por1に対して
Type:NAD,
Original Node:{OFC1ドメイン,OFS1ドメイン,OFS4,Port1,LinkCost2}
Type:NAD,
Original Node:{OFC1ドメイン,OFS1ドメイン,OFS1,Port1,LinkCost1}
・OFS2−Por1に対して
Type:NAD,
Original Node:{OFC1ドメイン,OFS1ドメイン,OFS2,Port1,LinkCost1}
・OFS3−Por1に対して
Type:NAD,
Original Node:{OFC1ドメイン,OFS1ドメイン,OFS3,Port1,LinkCost1}
・OFS4−Por1に対して
Type:NAD,
Original Node:{OFC1ドメイン,OFS1ドメイン,OFS4,Port1,LinkCost2}
OFC1から送信されるOFCND(NAD)は、PC211、PC212、OFC2−OFS1ドメインおよびOFC3−OFS1ドメインに到達する。PC211とPC212は端末なので、ONCND(NAD)パケットに対して回答を行わない。
OFC2−OFS1ドメインおよびOFC3−OFS1ドメインに到達したOFCND(NAD)は、OFCNDパケットインフローに一致し、それぞれ、OFC2とOFC3にPacket_Inされる。
OFC2およびOFS3のドメイン間トポロジ管理モジュール21は、OFCND(NRS)パケットを回答する。この場合にOFC2およびOFC3が送信するOFCND(NRS)パケットは、以下の情報を含む。
・OFC2はOFS1−Port1に対して
Type:NRS,
Original Node:{OFC1ドメイン,OFS1ドメイン,OFS2,Port1,LinkCost1},
Neighbor Node:{OFC2ドメイン,OFS1ドメイン,OFS1,Port1,LinkCost1}
・OFC3はOFS1−Port1に対して
Type:NRS,
Original Node:{OFC1ドメイン,OFS1ドメイン,OFS4,Port1,LinkCost2},
Neighbor Node:{OFC3ドメイン,OFS1ドメイン,OFS1,Port1,LinkCost1}
Type:NRS,
Original Node:{OFC1ドメイン,OFS1ドメイン,OFS2,Port1,LinkCost1},
Neighbor Node:{OFC2ドメイン,OFS1ドメイン,OFS1,Port1,LinkCost1}
・OFC3はOFS1−Port1に対して
Type:NRS,
Original Node:{OFC1ドメイン,OFS1ドメイン,OFS4,Port1,LinkCost2},
Neighbor Node:{OFC3ドメイン,OFS1ドメイン,OFS1,Port1,LinkCost1}
OFC2およびOFC3から送信されるOFCND(NRS)は、OFC1−OFS1ドメインに到達し、OFCNDパケットフローに一致し、OFC1にPacket_Inされる。OFC1のドメイン間トポロジ管理モジュール21は、OFS2−Port1およびOFS4−Port1をネーバーあり外向きポートとして認識し、ドメイン間トポロジ情報記憶部13に以下の情報を記録する。
・Original Node:{OFC1ドメイン,OFS1ドメイン,OFS2,Port1,LinkCost1},
Neighbor Node:{OFC2ドメイン,OFS1ドメイン,OFS1,Port1,LinkCost1}
・Original Node:{OFC1ドメイン,OFS1ドメイン,OFS4,Port1,LinkCost2},
Neighbor Node:{OFC3ドメイン,OFS1ドメイン,OFS1,Port1,LinkCost1}
Neighbor Node:{OFC2ドメイン,OFS1ドメイン,OFS1,Port1,LinkCost1}
・Original Node:{OFC1ドメイン,OFS1ドメイン,OFS4,Port1,LinkCost2},
Neighbor Node:{OFC3ドメイン,OFS1ドメイン,OFS1,Port1,LinkCost1}
一方、OFS1−Port1およびOFS3−Port1では、OFCND(NRS)が受信されない。そのため、OFC1のドメイン間トポロジ管理モジュール21は、この2つのポートをネーバーなし外向きポートとして認識し、既存の方式に従って、OFS1−Port1およびOFS3−Port1のPacket_Inやパケット転送を許可する。
この場合、OFC1ドメイン内の通信(例えば、PC211とPC212との間の通信)は可能になる。他のOFC2とOFC3も同様にネーバーディスカバリ処理を行う。OFC2が検出した情報は、以下に例示する内容である。
・Original Node:{OFC2ドメイン,OFS1ドメイン,OFS1,Port1,LinkCost1},
Neighbor Node:{OFC1ドメイン,OFS1ドメイン,OFS2,Port1,LinkCost1}
・Original Node:{OFC2ドメイン,OFS1ドメイン,OFS3,Port1,LinkCost1},
Neighbor Node:{OFC3ドメイン,OFS1ドメイン,OFS2,Port1,LinkCost1}
Neighbor Node:{OFC1ドメイン,OFS1ドメイン,OFS2,Port1,LinkCost1}
・Original Node:{OFC2ドメイン,OFS1ドメイン,OFS3,Port1,LinkCost1},
Neighbor Node:{OFC3ドメイン,OFS1ドメイン,OFS2,Port1,LinkCost1}
同様に、OFC3が検出した情報は、以下に例示する内容である。
・Original Node:{OFC3ドメイン,OFS1ドメイン,OFS1,Port1,LinkCost1},
Neighbor Node:{OFC1ドメイン,OFS1ドメイン,OFS4,Port1,LinkCost2}
・Original Node:{OFC3ドメイン,OFS1ドメイン,OFS2,Port1,LinkCost1},
Neighbor Node:{OFC2ドメイン,OFS1ドメイン,OFS3,Port1,LinkCost1}
Neighbor Node:{OFC1ドメイン,OFS1ドメイン,OFS4,Port1,LinkCost2}
・Original Node:{OFC3ドメイン,OFS1ドメイン,OFS2,Port1,LinkCost1},
Neighbor Node:{OFC2ドメイン,OFS1ドメイン,OFS3,Port1,LinkCost1}
(2)ループディスカバリ段階
各OFCは、OFCDUを送受信することにより、上記の実施形態で説明したSTPに類似する動作を行い、OFCドメイン間のループを防止する。ループを防止する際のアルゴリズムは、STPに基づく処理と同様のため、ここでは詳細な説明は省略する。
各OFCは、OFCDUを送受信することにより、上記の実施形態で説明したSTPに類似する動作を行い、OFCドメイン間のループを防止する。ループを防止する際のアルゴリズムは、STPに基づく処理と同様のため、ここでは詳細な説明は省略する。
ここでは、OFCドメインIDが最小のドメインであるOFC1−OFS1ドメインが、Root Domainとして選出される。一方、OFC3−OFS1ドメインのOFS2−Port1が、非代表ポートとして選出される。
各OFCのドメイン間トポロジ管理モジュール21は、OFC3−OFS1ドメインのOFS2−Port1以外のネーバーあり外向きポートに対して、Packet_Inやパケット転送などを許可する。その結果、以下に例示するInter−Domain BCMC Treeが構成される。以降、OFC−OFSドメイン間の通信は、Inter−Domain BCMC Treeを介して行われる。
・(OFC1−OFS1ドメイン、OFS2、Port1)と、
(OFC2−OFS1ドメイン、OFS1、Port1)とが接続される。
・(OFC1−OFS1ドメイン、OFS4、Port1)と、
(OFC3−OFS1ドメイン、OFS1、Port1)とが接続される。
(OFC2−OFS1ドメイン、OFS1、Port1)とが接続される。
・(OFC1−OFS1ドメイン、OFS4、Port1)と、
(OFC3−OFS1ドメイン、OFS1、Port1)とが接続される。
(3)トポロジディスカバリ段階
各OFCは、ネーバーあり全外向きポートに対して、OFCTDDUを送信する。ここでは、OFC1から送信されたOFCTDDUに対する処理例を説明する。
各OFCは、ネーバーあり全外向きポートに対して、OFCTDDUを送信する。ここでは、OFC1から送信されたOFCTDDUに対する処理例を説明する。
OFC1のドメイン間トポロジ管理モジュール21は、OFS2−Port1とOFS4−Port1に対して、それぞれ以下の情報を含むOFCTDDUを送信する。このとき、Node ID=0のNodeラベルに格納されるLinkcostは、OFCTDDUが送信されたポート(OFS2−Port1およびOFS4−Port1)に設定されるリンクのリンクコスト値である。
・OFS2−Port1に対して
Node ID=0
{OFC1ドメイン,OFS1ドメイン、Linkcost1}
・OFS4−Port1に対して
Node ID=0
{OFC1ドメイン,OFS1ドメイン、Linkcost2}
Node ID=0
{OFC1ドメイン,OFS1ドメイン、Linkcost1}
・OFS4−Port1に対して
Node ID=0
{OFC1ドメイン,OFS1ドメイン、Linkcost2}
OFC2−OFS1ドメインに到達したOFCTDDUは、OFCTDDUパケットインフローに一致し、OFC2にPacket_Inされる。OFC2のドメイン間トポロジ管理モジュール21は、OFCTDDUに含まれるトポロジ情報を学習する。
OFC2のドメイン間トポロジ管理モジュール21は、OFCTDDUのNodeラベルに、OFCTDDUを受信したOFC−OFSドメイン(OFC2−OFS1ドメイン)の情報が含まれていないと判定する。そこで、ドメイン間トポロジ管理モジュール21は、受信したOFCTDDUにおける最後のNode IDをインクリメントし、新たなNode IDを有するNodeラベルに、OFCTDDUを受信したOFC2−OFS1ドメインの情報を格納する。
OFC2のドメイン間トポロジ管理モジュール21は、新たに作成したOFCTDDUを、受信ポート以外のネーバーあり外向きポート(OFC2−OFS1ドメインに存在するOFS3−Port1)にフラディングする。
OFC1が発信したOFCTDDUは、OFC2を経由して転送され、以下に例示する情報を含む。
・OFS3−Port1に対して
Node ID=0
{OFC1ドメイン,OFS1ドメイン、Linkcost1}
Node ID=1
{OFC2ドメイン,OFS1ドメイン、Linkcost1}
Node ID=0
{OFC1ドメイン,OFS1ドメイン、Linkcost1}
Node ID=1
{OFC2ドメイン,OFS1ドメイン、Linkcost1}
同様に、OFC3のドメイン間トポロジ管理モジュール21は、受信したOFCTDDUパケットからトポロジ情報を学習する。OFC3のドメイン間トポロジ管理モジュール21は、受信したOFCTDDUに基づいて新たなOFCTDDUを作成し、OFS2−Port1にフラディングする。
OFC1が発信したOFCTDDUは、OFC3を経由して転送され、以下に例示する情報を含む。
・OFS2−Port1に対して
Node ID=0
{OFC1ドメイン、OFS1ドメイン、Linkcost2}
・Node ID=1
{OFC3ドメイン、OFS1ドメイン、Linkcost1}
Node ID=0
{OFC1ドメイン、OFS1ドメイン、Linkcost2}
・Node ID=1
{OFC3ドメイン、OFS1ドメイン、Linkcost1}
一方、OFC1が発信したOFCTDDUがOFC2から転送されてOFC3に到達する。OFC3のドメイン間トポロジ管理モジュール21は、受信したOFCTDDUパケットからトポロジ情報を学習する。
OFC3のドメイン間トポロジ管理モジュール21は、OFCTDDUのNodeラベルに、OFCTDDUを受信した受信OFC−OFSドメインの情報が含まれていないと判定する。そこで、ドメイン間トポロジ管理モジュール21は、新たなOFCTDDUを作成し、OFS1−Port1にフラディングする。
新たに作成されたOFCTDDUには、以下に例示する情報が含まれる。
・OFS1−Port1に対して
Node ID=0
{OFC1ドメイン、OFS1ドメイン、Linkcost1}
Node ID=1
{OFC2ドメイン、OFS1ドメイン、Linkcost1}
Node ID=2
{OFC3ドメイン、OFS1ドメイン、Linkcost1}
Node ID=0
{OFC1ドメイン、OFS1ドメイン、Linkcost1}
Node ID=1
{OFC2ドメイン、OFS1ドメイン、Linkcost1}
Node ID=2
{OFC3ドメイン、OFS1ドメイン、Linkcost1}
さらに、OFC1が発信したOFCTDDUがOFC2から転送されてOFC2に到達する。OFC2のドメイン間トポロジ管理モジュール21は、受信したOFCTDDUパケットからトポロジ情報を学習する。
OFC2のドメイン間トポロジ管理モジュール21は、OFCTDDUのNodeラベルに、OFCTDDUを受信した受信OFC−OFSドメインの情報が含まれていないと判定する。そこで、ドメイン間トポロジ管理モジュール21は、新たなOFCTDDUを作成し、OFS1−Port1にフラディングする。
新たに作成されたOFCTDDUには、以下に例示する情報が含まれる。
・OFS1−Port1に対して
Node ID=0
{OFC1ドメイン、OFS1ドメイン、Linkcost2}
Node ID=1
{OFC2ドメイン、OFS1ドメイン、Linkcost1}
Node ID=2
{OFC3ドメイン、OFS1ドメイン、Linkcost1}
Node ID=0
{OFC1ドメイン、OFS1ドメイン、Linkcost2}
Node ID=1
{OFC2ドメイン、OFS1ドメイン、Linkcost1}
Node ID=2
{OFC3ドメイン、OFS1ドメイン、Linkcost1}
その後、OFC1は、OFC1からOFC2を経由しさらにOFC3を経由したOFCTDDUと、OFC1からOFC3を経由しさらにOFC2を経由したOFCTDDUとを受信する。OFC1のドメイン間トポロジ管理モジュール21は、自身のOFC−OFSドメイン(OFC1−OFS1ドメイン)がOFCTDDUのNodeラベルに含まれていると判定する。そこで、ドメイン間トポロジ管理モジュール21は、OFCTDDUに含まれるトポロジ情報を学習し、OFCTDDUパケットを廃棄する。
OFC2およびOFC3も同様に、自らOFCTDDUを発行し、トポロジディスカバリ処理を行う。その結果、OFC1、OFC2およびOFC3は、以下のトポロジ情報を保持する。
・OFC1−OFS1ドメインとOFC2−OFS1ドメインが、Linkcost1で接続されている。
・OFC1−OFS1ドメインとOFC3−OFS1ドメインが、Linkcost2で接続されている。
・OFC2−OFS1ドメインとOFC3−OFS1ドメインが、Linkcost1で接続されている。
・OFC1−OFS1ドメインとOFC3−OFS1ドメインが、Linkcost2で接続されている。
・OFC2−OFS1ドメインとOFC3−OFS1ドメインが、Linkcost1で接続されている。
(4)Unicast経路計算段階
本具体例では、PC211がARP Requestを送信する。APR Requestは、OFC1−OFS1ドメインに到達し、OFC1にPacket_Inされる。
本具体例では、PC211がARP Requestを送信する。APR Requestは、OFC1−OFS1ドメインに到達し、OFC1にPacket_Inされる。
OFC1の経路計算モジュール10は、ARP RequestをOFS3−Port1にフラディングし、MACローカルテーブルにARP RequestのMACSAと学習位置(OFS1ドメインのOFS1−Port1)を登録する。
OFC1の経路計算モジュール10は、ARP RequestをOFCDAに書き換える。具体的には、経路計算モジュール10は、ARP Requestを受信したOFC1−OFS1ドメインのIDをOFCDAに含め、Inter−Domain BCMC Treeにあるネーバーあり外向きポートに対してそのOFCDAをフラディングする。
OFC2およびOFC3は、OFC1から発行されたPC211のMACがMACSAとして含まれるOFCDAをPacket_Inで受信する。
OFC2の経路計算モジュール10は、受信したOFCDAから、PC211のMACSAと、そのMACの送信元ドメインであるOFC1−OFS1ドメインIDを抽出し、MAC・宛先ドメインテーブル記憶部11に登録する。
同様に、OFC3の経路計算モジュール10は、PC211のMACSAと、そのMACの送信元ドメインであるOFC1−OFS1ドメインIDを抽出し、MAC・宛先ドメインテーブル記憶部11に登録する。また、OFC3の経路計算モジュール10は、OFCDAをARP Requestに書き換え、OFS4−Port1とOFS3−Port1にフラディングする。
PC211、PC212、PC231およびPC232のすべてが、ARP Requestを出した場合、OFC1、OFC2およびOFC3のMACローカルテーブル記憶部12およびMAC・宛先ドメインテーブル記憶部11には、以下の情報が登録される。
<OFC1>
・MACローカルテーブル
MACSA=PC211,Learning Point:OFS1−Port1
MACDA=PC212,Learning Point:OFS2−Port1
・MAC・宛先ドメインテーブル
MACSA=PC231,Learning Point:OFC3−OFS1ドメイン
MACSA=PC232,Learning Point:OFC3−OFS1ドメイン
<OFC2>
・MACローカルテーブル
空(未設定)
・MAC・宛先ドメインテーブル
MACSA=PC211,Learning Point:OFC1−OFS1ドメイン
MACSA=PC212,Learning Point:OFC1−OFS1ドメインMACSA=PC231,Learning Point:OFC3−OFS1ドメイン
MACSA=PC232,Learning Point:OFC3−OFS1ドメイン
<OFC3>
・MACローカルテーブル
MACSA=PC231,Learning Point:OFS4−Port1
MACDA=PC232,Learning Point:OFS3−Port1
・MAC・宛先ドメインテーブル
MACSA=PC211,Learning Point:OFC1−OFS1ドメイン
MACSA=PC212,Learning Point:OFC1−OFS1ドメイン
・MACローカルテーブル
MACSA=PC211,Learning Point:OFS1−Port1
MACDA=PC212,Learning Point:OFS2−Port1
・MAC・宛先ドメインテーブル
MACSA=PC231,Learning Point:OFC3−OFS1ドメイン
MACSA=PC232,Learning Point:OFC3−OFS1ドメイン
<OFC2>
・MACローカルテーブル
空(未設定)
・MAC・宛先ドメインテーブル
MACSA=PC211,Learning Point:OFC1−OFS1ドメイン
MACSA=PC212,Learning Point:OFC1−OFS1ドメインMACSA=PC231,Learning Point:OFC3−OFS1ドメイン
MACSA=PC232,Learning Point:OFC3−OFS1ドメイン
<OFC3>
・MACローカルテーブル
MACSA=PC231,Learning Point:OFS4−Port1
MACDA=PC232,Learning Point:OFS3−Port1
・MAC・宛先ドメインテーブル
MACSA=PC211,Learning Point:OFC1−OFS1ドメイン
MACSA=PC212,Learning Point:OFC1−OFS1ドメイン
例えば、PC211からPC231に対してUnicast通信を行う場合、OFC1の経路計算モジュール10は、Packet_Inで受信したUnicastパケットのMACDA(PC231)で、MACローカルテーブル記憶部12を検索する。
この場合、MACローカルテーブル記憶部12には、対象のMACDAが存在しないため、OFC1の経路計算モジュール10は、PC231でMAC・宛先ドメインテーブル記憶部11を検索する。その結果、OFC1の経路計算モジュール10は、PC231がOFC3−OFS1ドメインに存在することを知る。
OFC1の経路計算モジュール10は、Unicastパケットインを受信したOFC−OFSドメイン(OFC1−OFS1ドメイン)を始点とし、PC231が存在するOFC3−OFS1ドメインを終点として、トポロジ上における最小コスト経路を探索する。
本例の場合、OFC1の経路計算モジュール10は、以下に例示する最小コスト経路を算出する。
(1)OFC1−OFS1ドメインからOFC2−OFS1ドメインを経由し、OFC3−OFS1ドメインに至るまでのLinkcost=2
(2)OFC1−OFS1ドメインからOFC3−OFS1ドメインに至るまでのLinkcost=2
(2)OFC1−OFS1ドメインからOFC3−OFS1ドメインに至るまでのLinkcost=2
上記に例示するように、最小コスト経路は2つ存在する。そこで、OFC1の経路計算モジュール10は、一般的なOFCの負荷分散アルゴリズムに従って、任意の経路を選択する。なお、ここでは、(1)の経路が選択されたものとする。
OFC1の経路計算モジュール10は、ドメイン間トポロジ情報記憶部13を参照し、OFC2−OFS1ドメインに転送するためのOFS IDおよびPort IDを取得する。そして、OFC1の経路計算モジュール10は、PC211からPC231宛てのUnicastパケットを、OFC2−OFS1ドメインに転送するように制御する。
PC211からPC231宛てのUnicastパケットは、OFC1−OFS1ドメインからOFC2−OFS1ドメインに転送される。
OFC2は、UnicastパケットをPacket_Inで受信する。OFC2の経路計算モジュール10は、MACローカルテーブル記憶部12およびMAC・宛先ドメインテーブル記憶部11からMACDA(PC231)を検索する。本例において、OFC2の経路計算モジュール10は、PC231がOFC3−OFS1ドメインに存在することを知る。
OFC2の経路計算モジュール10は、Unicastパケットインを受信したOFC−OFSドメイン(OFC2−OFS1ドメイン)を始点とし、PC231が存在するOFC3−OFS1ドメインを終点として、トポロジ上における最小コスト経路を探索する。
本例の場合、OFC2の経路計算モジュール10は、以下に例示する最小コスト経路を算出する。
(1)OFC2−OFS1ドメインからOFC3−OFS1ドメインに至るまでのLinkcost=1
OFC2の経路計算モジュール10は、ドメイン間トポロジ情報記憶部13を参照し、OFC3−OFS1ドメインに転送するためのOFS IDおよびPort IDを取得する。そして、OFC2の経路計算モジュール10は、PC211からPC231宛てのUnicastパケットを、OFC3−OFS1ドメインに転送するように制御する。
PC211からPC231宛てのUnicastパケットは、Packet_InでOFC3に到達する。
OFC3の経路計算モジュール10は、MACローカルテーブル記憶部12からMACDA(PC231)を検索する。すると、経路計算モジュール10は、管理する配下のドメイン内のOFS4−Port1にPC231が接続されていることを知る。よって、OFC3の経路計算モジュール10は、PC211からPC231宛てのUnicastパケットを、OFS4−Port1転送するように制御する。
以上の処理により、Unicastパケットは、PC211から、OFC1−OFS1ドメイン、OFC2−OFS1ドメイン、OFC3−OFS1ドメインの順にドメインを経由して、PC231まで転送される。
なお、上記説明では、PC211からPC231宛てのUnicastパケットが単独で送信される場合を例示した。例えば、PC211からPC231宛の通信と、PC212からPC232宛の通信が同時に行われてもよい。この場合、各OFCの経路計算モジュール10は、トラヒック負荷分散を考慮した処理を行ってもよい。
PC211からPC231宛の通信と、PC212からPC232宛の通信が同時に行われる場合、OFC1−OFS1ドメインからOFC3−OFS1ドメイン宛の最小コスト経路は2つ存在する。経路計算モジュール10は、例えば、ラウンドロビンアルゴリズムを用いて負荷分散処理を行ってもよい。この場合、経路計算モジュール10は、PC211からPC231への通信には、OFC1−OFS1ドメインからOFC2−OFS1ドメインを経由し、OFC3−OFS1ドメインへ到達する経路を算出してもよい。また、経路計算モジュール10は、PC221からPC232への通信には、OFC1−OFS1ドメインからOFC3−OFS1ドメインへ到達する経路を算出してもよい。
以上のように、本実施形態によれば、ドメイン間トポロジ管理モジュール21が、自OFCドメインに隣接するOFCドメインを特定する。ドメイン間トポロジ管理モジュール21は、隣接するOFCドメイン間の通信経路中に存在するループ構成を回避する通信ツリーを作成し、各OFCドメイン間のネットワークトポロジを特定する。そして、経路計算モジュール10が、特定されたネットワークトポロジを利用して、上述する通信ツリーに基づく最適経路を算出して、各OFSに接続される通信装置からの通信を制御する。
よって、オープンフローのネットワーク環境において、接続される複数のOFCドメイン間に物理的なループが存在する場合であっても、通信をループさせずに、最適な経路を用いて通信を行うことができる。
具体的には、本実施形態の通信制御システムは、既存のOFCの処理方式に影響を与えず、標準的なOpenFlowプロトコルを用いて実現できる。そして、本実施形態の通信制御システムを用いることで、独立に動作する複数のOFCによって制御されているOpenFlowネットワーク間のループを防止できるため、OpenFlowネットワーク間の冗長構成を組むことができる。
また、本実施形態によれば、独立に動作する複数のOFCによって制御されているOpenFlowネットワーク間に、複数の通信経路の候補が存在する場合であっても、ECMP(Equal-cost multi-path )的なロードバランシングを実現できる。そのため、ネットワーク帯域の利用効率を上げることができる。
また、本実施形態によれば、オープンフローのネットワーク内にダークファイバが存在する場合でも、最適なリンクコストを用いて経路計算ができるため、ネットワーク帯域の利用率を上げることができる。したがって、ダークファイバリンクコストの誤判断により発生する帯域圧迫の確率を低減できる。
実施形態2.
次に、本発明の第2の実施形態を説明する。第1の実施形態では、OFCが、隣接するドメインの情報に基づいてシステム全体のドメイントポロジを計算し、さらに、ドメイン間のSPTを算出していた。一方、本実施形態では、システム内全てのOFCとIP到達性を有するトポロジマネージャを用意し、これらの処理をそのトポロジマネージャが行って、処理結果を各OFCに通知する。
次に、本発明の第2の実施形態を説明する。第1の実施形態では、OFCが、隣接するドメインの情報に基づいてシステム全体のドメイントポロジを計算し、さらに、ドメイン間のSPTを算出していた。一方、本実施形態では、システム内全てのOFCとIP到達性を有するトポロジマネージャを用意し、これらの処理をそのトポロジマネージャが行って、処理結果を各OFCに通知する。
このように、第1の実施形態では、各OFCが自律的に通信制御を行うことから、第1の実施形態で説明した手法を、完全自律手法と呼ぶことができる。また、本実施形態で説明する手法は、OFCとトポロジマネージャが協働して通信制御を行うことから、ハイブリッド手法と呼ぶことができる。
図8は、本発明による通信制御システムの第2の実施形態の構成例を示す説明図である。なお、第1の実施形態と同様の構成については、図1と同一の符号を付し、説明を省略する。
図8に例示する通信制御システムは、第1の実施形態の通信制御システムに加え、トポロジマネージャ140を備えている。また、トポロジマネージャ140は、制御部141を含む。制御部141は、プログラム(ドメイン間トポロジ管理プログラム)に従って動作するコンピュータのCPUによって実現される。例えば、プログラムは、トポロジマネージャ140の記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、制御部141として動作してもよい。
本実施形態のOFCでは、ネーバーディスカバリ段階の処理が完了すると、各OFCのドメイン間トポロジ管理モジュール21は、隣接ドメインを示す情報をトポロジマネージャ140に送信する。
トポロジマネージャ140が各OFCから隣接ドメインを示す情報を受信すると、制御部141は、受信した情報に基づいて、OFCドメイン間のトポロジを計算し、さらに、OFCドメイン間でループ構成を回避する通信ツリー(例えば、スパニングツリー)を算出する。そして、制御部141は、算出した通信ツリーを各OFCに配信する。
制御部141は、第1の実施形態でドメイン間トポロジ管理モジュール21が行う方法と同様の方法を用いて、OFCドメイン間のトポロジを計算してもよく、OFCドメイン間のループ構成を回避する通信ツリーを算出してもよい。
ドメイン間トポロジ管理モジュール21は、トポロジマネージャ140から受信した通信ツリーを、ドメイン間の通信経路と判断し、例えば、ドメイン間のスパンニングツリーを構築する。以降、経路計算モジュール10は、Unicast経路計算段階の処理を行う。経路計算モジュール10がUnicast経路を計算する方法は、第1の実施形態と同様である。
このように、ハイブリッド方式では、完全自律方式におけるループディスカバリ段階の処理、および、トポロジディスカバリ段階の処理が、OFCではなく、トポロジマネージャ140で行われることになる。
以上のように、本実施形態によれば、OFCの代わりに、トポロジマネージャ140の制御部141が、OFCから受信した隣接ドメイン情報に基づいて、各OFCドメイン間のトポロジを特定し、隣接するOFCドメイン間の通信経路中に存在するループ構成を回避する通信ツリーを作成する。そして、制御部141が、作成した通信ツリーを各OFCに配信する。
このような構成であっても、オープンフローのネットワーク環境において、接続される複数のOFCドメイン間に物理的なループが存在する場合であっても、通信をループさせずに、最適な経路を用いて通信を行うことができる。
このように、本発明を実現する方式として、完全自律方式とハイブリッド方式が挙げられ、異なる環境に柔軟に対応することが可能である。完全自律方式の場合、例えば、ループ防止や負荷分散を、他の装置を介さずに実現することが可能である。一方、ハイブリッド方式の場合、OFCドメイン間のトポロジを集中管理するトポロジマネージャを利用することで、例えば、OFCDUやOFCTDDUに占有されるネットワーク帯域や負荷を低減できる。
次に、本発明の概要を説明する。図9は、本発明による通信制御システムの概要を示すブロック図である。本発明による通信制御システムは、各オープンフローコントローラ(例えば、OFC1〜OFC3)によって少なくとも1つ以上のオープンフロースイッチ(例えば、OFS1〜OFS4)が管理される範囲を示すコントローラドメイン(例えば、OFCドメイン)が相互に接続されるネットワークにおいて、各コントローラドメイン間の通信を制御する通信制御システムであって、自コントローラドメインに隣接するコントローラドメインを特定する隣接ドメイン特定手段81(例えば、ドメイン間トポロジ管理モジュール21)と、隣接するコントローラドメイン間の通信経路中に存在するループ構成を回避する通信ツリー(例えば、スパニングツリー)を作成するループ解決手段82(例えば、ドメイン間トポロジ管理モジュール21)と、各コントローラドメイン間のネットワークトポロジを特定するトポロジ特定手段83(例えば、ドメイン間トポロジ管理モジュール21)と、ネットワークトポロジを利用して、通信ツリーに基づく最適経路を算出して、各オープンフロースイッチに接続される通信装置(例えば、PC211等)からの通信を制御する通信制御手段84(例えば、経路計算モジュール10)とを備えている。
そのような構成により、オープンフローのネットワーク環境において、接続される複数のOFCドメイン間に物理的なループが存在する場合であっても、通信をループさせずに、最適な経路を用いて通信を行うことができる。
また、隣接ドメイン特定手段81は、自コントローラドメインの外向きポートから隣接ドメインを確認する隣接確認パケット(例えば、OFCNAD)を送信し、隣接確認パケットを受信したときにその隣接確認パケットを送信したコントローラドメイン宛に隣接応答パケット(例えば、OFCNRS)を返信し、隣接応答パケットを受信して隣接するコントローラドメインを特定してもよい。
また、ループ解決手段82は、スパニングツリーアルゴリズムに基づいて、隣接するコントローラドメイン間の通信経路中に存在するループ構成を回避する通信ツリーを作成してもよい。
また、ループ解決手段82は、隣接するコントローラドメイン間の通信経路中のポート(例えば、非代表ポート)に対して、パケット転送を禁止するフローエントリを設定することにより、ループ構成を回避する通信ツリーを作成してもよい。
また、通信制御手段84は、複数の経路を算出し、各オープンフロースイッチに接続される通信装置からの通信を複数の経路に負荷分散する制御(例えば、ECMP的なロードバランシング)を行ってもよい。
また、図10は、本発明による通信制御システムの他の概要を示すブロック図である。本発明による他の通信制御システムは、各オープンフローコントローラ(例えば、OFC1〜OFC3)によって少なくとも1つ以上のオープンフロースイッチ(例えば、OFS1〜OFS4)が管理される範囲を示すコントローラドメイン(例えば、OFCドメイン)が相互に接続されるネットワークにおいて、各コントローラドメイン間の通信を制御する通信制御システムであって、複数のオープンフローコントローラ80(例えば、OFC1〜OFC3)と、オープンフローコントローラからの通信が到達するように(例えば、IP到達性を有するように)接続され、コントローラドメイン間の通信経路を示す通信ツリーを作成するトポロジマネージャ90(例えば、トポロジマネージャ140)とを備えている。
オープンフローコントローラ80は、自コントローラドメインに隣接するコントローラドメインを特定する隣接ドメイン特定手段81(例えば、第2の実施形態におけるドメイン間トポロジ管理モジュール21)と、特定した隣接するコントローラドメインを示す情報を、トポロジマネージャに送信する隣接ドメイン情報送信手段85(例えば、第2の実施形態におけるドメイン間トポロジ管理モジュール21)と、トポロジマネージャが算出したネットワークトポロジに基づく最適経路を算出して、各オープンフロースイッチに接続される通信装置からの通信を制御する通信制御手段86(例えば、経路計算モジュール10)とを含む。
トポロジマネージャ90は、オープンフローコントローラ80から受信した情報に基づいて、各コントローラドメイン間のネットワークトポロジを特定し、隣接するコントローラドメイン間の通信経路中に存在するループ構成を回避する通信ツリーを作成する通信ツリー作成手段91(例えば、制御部141)と、作成した通信ツリーをオープンフローコントローラに配信するネットワークトポロジ配信手段92(例えば、制御部141)とを含む。
そのような構成によっても、オープンフローのネットワーク環境において、接続される複数のOFCドメイン間に物理的なループが存在する場合であっても、通信をループさせずに、最適な経路を用いて通信を行うことができる。
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2014年2月5日に出願された日本特許出願2014−020390を基礎とする優先権を主張し、その開示の全てをここに取り込む。
10 経路計算モジュール
11 MAC・宛先ドメインテーブル記憶部
12 MACローカルテーブル記憶部
13 ドメイン間トポロジ情報記憶部
20 トポロジ管理モジュール
21 ドメイン間トポロジ管理モジュール
22 内部ドメイントポロジ管理モジュール
30 メッセージ解析モジュール
40 メッセージ送受信モジュール
100 OFC
110 OFC1ドメイン
120 OFC2ドメイン
130 OFC3ドメイン
210,211,212,231,232 PC
11 MAC・宛先ドメインテーブル記憶部
12 MACローカルテーブル記憶部
13 ドメイン間トポロジ情報記憶部
20 トポロジ管理モジュール
21 ドメイン間トポロジ管理モジュール
22 内部ドメイントポロジ管理モジュール
30 メッセージ解析モジュール
40 メッセージ送受信モジュール
100 OFC
110 OFC1ドメイン
120 OFC2ドメイン
130 OFC3ドメイン
210,211,212,231,232 PC
Claims (10)
- 各オープンフローコントローラによって少なくとも1つ以上のオープンフロースイッチが管理される範囲を示すコントローラドメインが相互に接続されるネットワークにおいて、各コントローラドメイン間の通信を制御する通信制御システムであって、
自コントローラドメインに隣接するコントローラドメインを特定する隣接ドメイン特定手段と、
前記隣接するコントローラドメイン間の通信経路中に存在するループ構成を回避する通信ツリーを作成するループ解決手段と、
各コントローラドメイン間のネットワークトポロジを特定するトポロジ特定手段と、
前記ネットワークトポロジを利用して、前記通信ツリーに基づく最適経路を算出して、各オープンフロースイッチに接続される通信装置からの通信を制御する通信制御手段とを備えた
ことを特徴とする通信制御システム。 - 隣接ドメイン特定手段は、自コントローラドメインの外向きポートから隣接ドメインを確認する隣接確認パケットを送信し、前記隣接確認パケットを受信したときに当該隣接確認パケットを送信したコントローラドメイン宛に隣接応答パケットを返信し、前記隣接応答パケットを受信して隣接するコントローラドメインを特定する
請求項1記載の通信制御システム。 - ループ解決手段は、スパニングツリーアルゴリズムに基づいて、隣接するコントローラドメイン間の通信経路中に存在するループ構成を回避する通信ツリーを作成する
請求項1または請求項2記載の通信制御システム。 - ループ解決手段は、隣接するコントローラドメイン間の通信経路中のポートに対して、パケット転送を禁止するフローエントリを設定することにより、ループ構成を回避する通信ツリーを作成する
請求項1から請求項3のうちのいずれか1項に記載の通信制御システム。 - 通信制御手段は、複数の経路を算出し、各オープンフロースイッチに接続される通信装置からの通信を前記複数の経路に負荷分散する制御を行う
請求項1から請求項4のうちのいずれか1項に記載の通信制御システム。 - 各オープンフローコントローラによって少なくとも1つ以上のオープンフロースイッチが管理される範囲を示すコントローラドメインが相互に接続されるネットワークにおいて、各コントローラドメイン間の通信を制御する通信制御システムであって、
複数のオープンフローコントローラと、
前記オープンフローコントローラからの通信が到達するように接続され、前記コントローラドメイン間の通信経路を示す通信ツリーを作成するトポロジマネージャとを備え、
前記オープンフローコントローラは、
自コントローラドメインに隣接するコントローラドメインを特定する隣接ドメイン特定手段と、
特定した隣接するコントローラドメインを示す情報を、前記トポロジマネージャに送信する隣接ドメイン情報送信手段と、
前記トポロジマネージャが算出したネットワークトポロジに基づく最適経路を算出して、各オープンフロースイッチに接続される通信装置からの通信を制御する通信制御手段とを含み、
前記トポロジマネージャは、
前記オープンフローコントローラから受信した情報に基づいて、各コントローラドメイン間のネットワークトポロジを特定し、隣接するコントローラドメイン間の通信経路中に存在するループ構成を回避する通信ツリーを作成する通信ツリー作成手段と、
作成した通信ツリーを前記オープンフローコントローラに配信するネットワークトポロジ配信手段とを含む
ことを特徴とする通信制御システム。 - 各オープンフローコントローラによって少なくとも1つ以上のオープンフロースイッチが管理される範囲を示すコントローラドメインが相互に接続されるネットワークにおいて、各コントローラドメイン間の通信を制御する通信制御方法であって、
自コントローラドメインに隣接するコントローラドメインを特定し、
前記隣接するコントローラドメイン間の通信経路中に存在するループ構成を回避する通信ツリーを作成し、
各コントローラドメイン間のネットワークトポロジを特定し、
前記ネットワークトポロジを利用して、前記通信ツリーに基づく最適経路を算出して、各オープンフロースイッチに接続される通信装置からの通信を制御する
ことを特徴とする通信制御方法。 - 隣接ドメインを特定する際、自コントローラドメインの外向きポートから隣接ドメインを確認する隣接確認パケットを送信し、前記隣接確認パケットを受信したときに当該隣接確認パケットを送信したコントローラドメイン宛に隣接応答パケットを返信し、前記隣接応答パケットを受信して隣接するコントローラドメインを特定する
請求項7記載の通信制御方法。 - 各オープンフローコントローラによって少なくとも1つ以上のオープンフロースイッチが管理される範囲を示すコントローラドメインが相互に接続されるネットワークにおいて、各コントローラドメイン間の通信を制御するコンピュータに適用される通信制御プログラムであって、
前記コンピュータに、
自コントローラドメインに隣接するコントローラドメインを特定する隣接ドメイン特定処理、
前記隣接するコントローラドメイン間の通信経路中に存在するループ構成を回避する通信ツリーを作成するループ解決処理、
各コントローラドメイン間のネットワークトポロジを特定するトポロジ特定処理、および、
前記ネットワークトポロジを利用して、前記通信ツリーに基づく最適経路を算出して、各オープンフロースイッチに接続される通信装置からの通信を制御する通信制御処理
を実行させるための通信制御プログラム。 - コンピュータに、
隣接ドメイン特定処理で、自コントローラドメインの外向きポートから隣接ドメインを確認する隣接確認パケットを送信させ、前記隣接確認パケットを受信したときに当該隣接確認パケットを送信したコントローラドメイン宛に隣接応答パケットを返信させ、前記隣接応答パケットを受信して隣接するコントローラドメインを特定させる
請求項9記載の通信制御プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014020390 | 2014-02-05 | ||
JP2014020390 | 2014-02-05 | ||
PCT/JP2015/000262 WO2015118822A1 (ja) | 2014-02-05 | 2015-01-21 | 通信制御システム、通信制御方法および通信制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2015118822A1 JPWO2015118822A1 (ja) | 2017-03-23 |
JP6191703B2 true JP6191703B2 (ja) | 2017-09-06 |
Family
ID=53777637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015561200A Active JP6191703B2 (ja) | 2014-02-05 | 2015-01-21 | 通信制御システム、通信制御方法および通信制御プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US9998367B2 (ja) |
EP (1) | EP3104561A4 (ja) |
JP (1) | JP6191703B2 (ja) |
WO (1) | WO2015118822A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160122226A (ko) * | 2014-02-19 | 2016-10-21 | 닛본 덴끼 가부시끼가이샤 | 통신 시스템, 제어 장치, 통신 제어 방법 및 프로그램 |
EP3400685B1 (en) * | 2016-01-05 | 2020-07-01 | Telefonaktiebolaget LM Ericsson (PUBL) | Mechanism to detect control plane loops in a software defined networking (sdn) network |
KR102117497B1 (ko) * | 2017-06-29 | 2020-06-02 | 주식회사 케이티 | 네트워크 인프라 구축 시스템 및 네트워크 인프라 구축 방법 |
CN111277423B (zh) * | 2018-12-04 | 2022-05-20 | 中兴通讯股份有限公司 | 数据中心流量互通方法、装置、设备及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6556541B1 (en) * | 1999-01-11 | 2003-04-29 | Hewlett-Packard Development Company, L.P. | MAC address learning and propagation in load balancing switch protocols |
AU2004321282B2 (en) | 2004-06-30 | 2009-08-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for multi-domain virtual private network configuration |
EP1847071A4 (en) * | 2005-01-26 | 2010-10-20 | Internet Broadcasting Corp B V | MULTI-DIFFUSION IN LAYERS AND EXACT ATTRIBUTION OF BANDWIDTH AND PRIORIZATION OF PACKETS |
WO2009042919A2 (en) | 2007-09-26 | 2009-04-02 | Nicira Networks | Network operating system for managing and securing networks |
WO2011065268A1 (ja) | 2009-11-26 | 2011-06-03 | 日本電気株式会社 | 負荷分散システム、負荷分散方法、及びプログラム |
US10244500B2 (en) * | 2011-03-30 | 2019-03-26 | Wei Lu | Open wireless architecture (OWA) mobile cloud infrastructure and method |
US9204207B2 (en) | 2011-11-01 | 2015-12-01 | Plexxi Inc. | Hierarchy of control in a data center network |
US9337931B2 (en) * | 2011-11-01 | 2016-05-10 | Plexxi Inc. | Control and provisioning in a data center network with at least one central controller |
US9306800B2 (en) * | 2013-05-10 | 2016-04-05 | Telefonaktiebolaget L M Ericsson (Publ) | Inter-domain fast reroute methods and network devices |
-
2015
- 2015-01-21 JP JP2015561200A patent/JP6191703B2/ja active Active
- 2015-01-21 EP EP15745896.9A patent/EP3104561A4/en not_active Withdrawn
- 2015-01-21 US US15/111,082 patent/US9998367B2/en not_active Expired - Fee Related
- 2015-01-21 WO PCT/JP2015/000262 patent/WO2015118822A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20160344625A1 (en) | 2016-11-24 |
EP3104561A4 (en) | 2017-10-18 |
WO2015118822A1 (ja) | 2015-08-13 |
US9998367B2 (en) | 2018-06-12 |
JPWO2015118822A1 (ja) | 2017-03-23 |
EP3104561A1 (en) | 2016-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10230577B2 (en) | Packet broadcast mechanism in a split architecture network | |
EP3474502B1 (en) | Reduced configuration for multi-stage network fabrics | |
US9379975B2 (en) | Communication control system, control server, forwarding node, communication control method, and communication control program | |
EP2544417B1 (en) | Communication system, path control apparatus, packet forwarding apparatus and path control method | |
US20160269289A1 (en) | Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow | |
GB2513188A (en) | Identification of the paths taken through a network of interconnected devices | |
CN116668305A (zh) | 多级网络结构的简化配置 | |
JP6191703B2 (ja) | 通信制御システム、通信制御方法および通信制御プログラム | |
CN111147372B (zh) | 下行报文发送、转发方法和装置 | |
WO2017084448A1 (zh) | 一种网络系统及网络运行方法 | |
KR20090110916A (ko) | 링크 상태 광고(lsa)에 기반한 신장 트리를 계산하는 방법, 브릿지 및 컴퓨터 네트워크 | |
CN105262686B (zh) | 一种网络连通性验证方法和装置 | |
US10171306B2 (en) | Automatic discovery and provisioning of multi-chassis etherchannel peers | |
WO2014126094A1 (ja) | 通信システム、通信方法、制御装置、制御装置の制御方法及びプログラム | |
US20150036508A1 (en) | Method and Apparatus For Gateway Selection In Multilevel SPB Network | |
US10574481B2 (en) | Heterogeneous capabilities in an overlay fabric | |
JP2017175522A (ja) | ネットワークシステム、制御装置、方法およびプログラム | |
JP2002185504A (ja) | パケット転送中継装置および転送制御方法 | |
JP4805708B2 (ja) | データ転送装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20170711 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170724 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6191703 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |