IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許7409191コントロールノード決定方法と装置およびプログラム
<>
  • 特許-コントロールノード決定方法と装置およびプログラム 図1
  • 特許-コントロールノード決定方法と装置およびプログラム 図2
  • 特許-コントロールノード決定方法と装置およびプログラム 図3
  • 特許-コントロールノード決定方法と装置およびプログラム 図4
  • 特許-コントロールノード決定方法と装置およびプログラム 図5
  • 特許-コントロールノード決定方法と装置およびプログラム 図6
  • 特許-コントロールノード決定方法と装置およびプログラム 図7
  • 特許-コントロールノード決定方法と装置およびプログラム 図8
  • 特許-コントロールノード決定方法と装置およびプログラム 図9
  • 特許-コントロールノード決定方法と装置およびプログラム 図10
  • 特許-コントロールノード決定方法と装置およびプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-25
(45)【発行日】2024-01-09
(54)【発明の名称】コントロールノード決定方法と装置およびプログラム
(51)【国際特許分類】
   H04L 41/40 20220101AFI20231226BHJP
【FI】
H04L41/40
【請求項の数】 10
(21)【出願番号】P 2020053896
(22)【出願日】2020-03-25
(65)【公開番号】P2021158406
(43)【公開日】2021-10-07
【審査請求日】2023-02-02
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100080816
【弁理士】
【氏名又は名称】加藤 朝道
(74)【代理人】
【識別番号】100098648
【弁理士】
【氏名又は名称】内田 潔人
(72)【発明者】
【氏名】田淵 公士
【審査官】大石 博見
(56)【参考文献】
【文献】特開平07-087088(JP,A)
【文献】特表2015-531552(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 41/40
(57)【特許請求の範囲】
【請求項1】
ネットワークを構成する複数のスイッチ装置から予め定められた個数のコントロールノードを決定するにあたり、
前記複数のスイッチ装置の各々について、前記各スイッチ装置から前記予め定められたスイッチ装置経由数以内で到達可能なスイッチ装置の数である到達可能数を積算し、
前記複数のスイッチ装置の各々の前記到達可能数の積算値に基づき、前記複数のスイッチ装置の中から一つのスイッチ装置をコントロールノードとして選択し、
前記コントロールノードの個数が前記予め定められた個数に達するまで、
前記各スイッチ装置に関して前記到達可能数を積算したネットワークから前記コントロールノードとして選択された前記一つのスイッチ装置を除外したネットワーク上の残りのスイッチ装置の各々について、該各スイッチ装置に関する前記到達可能数を積算し、前記各スイッチ装置の前記到達可能数の積算値に基づき、前記残りのスイッチ装置の中から一つのスイッチ装置を次のコントロールノードとして選択する処理を繰り返す、ことを特徴とするコントロールノード決定方法。
【請求項2】
前記各スイッチ装置に対応する到達可能数積算値を配列で管理し、
前記スイッチ装置に関する前記到達可能数を積算する処理は、前記スイッチ装置の識別番号と、前記スイッチ装置経由数を引数とする探索関数を呼び出し、
呼び出された前記探索関数は、前記引数として与えられた前記スイッチ装置に対応する配列要素の値を+1加算し、前記引数として与えられた前記スイッチ装置経由数の値が0の場合、処理を終了し呼び出し側に制御を戻し、
前記引数として与えられた前記スイッチ装置経由数の値が1以上の場合、
トポロジ情報から、前記引数として与えられたスイッチ装置が接続する他のスイッチ装置の各々の識別番号を取得し、
前記他のスイッチ装置の各々の識別番号と、前記引数として与えられた前記スイッチ装置経由数を1つ減算した値を引数として、前記探索関数を再帰的に呼び出す、ことを特徴とする請求項1記載のコントロールノード決定方法。
【請求項3】
前記複数のスイッチ装置は、前記スイッチ装置を除外する前の元のネットワークトポロジとして、リング型および/またはラダー型のネットワークを構成する、ことを特徴とする請求項1記載のコントロールノード決定方法。
【請求項4】
ネットワークを構成する複数のスイッチ装置から予め定められた個数のコントロールノードを決定する手段として、
前記複数のスイッチ装置の各々について、前記各スイッチ装置から前記予め定められたスイッチ装置経由数以内で到達可能なスイッチ装置の数である到達可能数を積算し、
前記複数のスイッチ装置の各々の前記到達可能数の積算値に基づき、前記複数のスイッチ装置の中から一つのスイッチ装置をコントロールノードとして選択する第1の手段と、
前記ネットワークから前記コントロールノードとして選択された前記スイッチ装置を除外する第2の手段と、
制御手段と、
を備え、
前記制御手段は、
前記コントロールノードの個数が前記予め定められた個数に達するまで、
前記各スイッチ装置に関して前記到達可能数を積算したネットワークから前記コントロールノードとして選択された前記一つのスイッチ装置を除外したネットワーク上の残りのスイッチ装置の各々について、該各スイッチ装置に関する前記到達可能数を積算し、前記各スイッチ装置の前記到達可能数の積算値に基づき、前記残りのスイッチ装置の中から一つのスイッチ装置を次のコントロールノードとして選択する処理を繰り返すように制御する、ことを特徴とするコントロールノード決定装置。
【請求項5】
前記各スイッチ装置に対応する到達可能数積算値を格納する配列を備え、
前記第1の手段は、前記スイッチ装置に関する前記到達可能数を積算するにあたり、前記スイッチ装置の識別番号と、前記スイッチ装置経由数を引数とする探索関数を呼び出し、
呼び出された前記探索関数は、前記引数として与えられた前記スイッチ装置に対応する配列要素の値を+1加算し、前記引数として与えられた前記スイッチ装置経由数の値が0の場合、処理を終了し呼び出し側に制御を戻し、
前記引数として与えられた前記スイッチ装置経由数の値が1以上の場合、
トポロジ情報から、前記引数として与えられたスイッチ装置が接続する他のスイッチ装置の各々の識別番号を取得し、
前記他のスイッチ装置の各々の識別番号と、前記引数として与えられた前記スイッチ装置経由数を1つ減算した値を引数として、前記探索関数を再帰的に呼び出す、ことを特徴とする請求項4記載のコントロールノード決定装置。
【請求項6】
前記コントロールノードとして選択されたスイッチ装置に対して配下のスイッチ装置から前記配下のスイッチ装置のトポロジ情報の収集及び集約と、前記トポロジ情報の他のスイッチ装置への配信の動作を行うように設定する手段をさらに備えた、ことを特徴とする請求項4又は5記載のコントロールノード決定装置。
【請求項7】
前記複数のスイッチ装置は、前記スイッチ装置を除外する前の元のネットワークトポロジとして、リング型および/またはラダー型のネットワークを構成する、ことを特徴とする請求項4乃至6のいずれか1項に記載のコントロールノード決定装置。
【請求項8】
前記複数のスイッチ装置のトポロジ情報を登録する手段と、
前記複数のスイッチ装置の個数、前記コントロールノードの個数に基づき、前記スイッチ装置経由数を導出する手段をさらに備えた、ことを特徴とする請求項4乃至6のいずれか1項に記載のコントロールノード決定装置。
【請求項9】
ネットワークを構成する複数のスイッチ装置から予め定められた個数のコントロールノードを決定するにあたり、
前記複数のスイッチ装置の各々について、前記各スイッチ装置から前記予め定められたスイッチ装置経由数以内で到達可能なスイッチ装置の数である到達可能数を積算し、
前記複数のスイッチ装置の各々の前記到達可能数の積算値に基づき、前記複数のスイッチ装置の中から一つのスイッチ装置をコントロールノードとして選択する処理と、
前記コントロールノードの個数が前記予め定められた個数に達するまで、
前記各スイッチ装置に関して前記到達可能数を積算したネットワークから前記コントロールノードとして選択された前記一つのスイッチ装置を除外したネットワーク上の残りのスイッチ装置の各々について、該各スイッチ装置に関する前記到達可能数を積算し、前記各スイッチ装置の前記到達可能数の積算値に基づき、前記残りのスイッチ装置の中から一つのスイッチ装置を次のコントロールノードとして選択する処理を繰り返す処理と、
を、コンピュータに実行させるプログラム。
【請求項10】
前記各スイッチ装置に対応する到達可能数積算値を配列で管理し、
前記スイッチ装置に関する前記到達可能数を積算する処理は、前記スイッチ装置の識別番号と、前記スイッチ装置経由数を引数とする探索関数を呼び出し、
呼び出された前記探索関数は、前記引数として与えられた前記スイッチ装置に対応する配列要素の値を+1加算し、前記引数として与えられた前記スイッチ装置経由数の値が0の場合、処理を終了し呼び出し側に制御を戻し、
前記引数として与えられた前記スイッチ装置経由数の値が1以上の場合、
トポロジ情報から、前記引数として与えられたスイッチ装置が接続する他のスイッチ装置の各々の識別番号を取得し、
前記他のスイッチ装置の各々の識別番号と、前記引数として与えられた前記スイッチ装置経由数を1つ減算した値を引数として、前記探索関数を再帰的に呼び出す処理を、前記コンピュータに実行させる請求項9記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はコントロールノード決定方法と装置およびプログラムに関する。
【背景技術】
【0002】
ネットワークをソフトウェアで動的に制御するソフトウェア定義ネットワーク(Software Defined Networking:SDN)では、例えばL3(Layer 3)スイッチやL2(Layer 2)スイッチなどのネットワーク機器を相互接続した物理ネットワーク環境の上にテナントごとに独立した仮想ネットワーク(テナントネットワーク)の提供を可能としている。なお、SDNの運用等については、例えば非特許文献1等が参照される。
【0003】
図9は、典型的なSDNの一例を模式的に説明する図である。SDNコントローラ10にネットワークの構成情報を集約し、ネットワーク定義により個々に独立した論理的なトポロジ(テナントネットワーク)を組むことができる。すなわち、SDNコントローラ10上に、ユーザの希望するテナントネットワークを定義することで、SDNコントローラ10は各スイッチ装置(S1~S4)に対して必要な動作を設定しネットワークリソース等を自動的に払い出すことが可能である。例えばテナントネットワークの利用開始前に、スイッチ装置がテナントネットワークのトポロジ情報(例えば各スイッチ装置のポートに接続するノードの情報)を交換する動作が行われる(「基盤ネットワークの構築」という)。図9の例では、テナントネットワーク定義情報13のL2スイッチL2-1、L2-2は、スイッチ装置S1、S2に対応し、スイッチ装置S1が保持しているテナントネットワークのトポロジ情報11(S1のポートAで通信端末H1に接続)を、スイッチ装置S2、S3、S4へ伝達し、スイッチ装置S2が保持しているテナントネットワークのトポロジ情報12(S2のポートBで通信端末H2に接続)をスイッチ装置S1、S3、S4へ伝達する。その際、例えばトポロジ情報の交換動作の効率化のため、複数のスイッチ装置のうちいくつかのスイッチ装置をコントロールノードとして選出し、コントロールノードとして選出されたスイッチ装置が、ネットワークのトポロジ情報を各スイッチ装置から収集および集約し、別のスイッチ装置に配信するように設定される。
【0004】
データセンタのインフラネットワーク(ファブリック)としてよく用いられるトポロジとして、例えば図10に模式的に例示したリーフスパイン(Leaf-Spine)型の2層の構成がある。この構成は、例えばユーザホスト等を収容するリーフ(Leaf)スイッチ装置(S1~S4)と、それらをメッシュで接続し通信を中継するスパイン(Spine)スイッチ装置(S11、S12)の2層で構成される。Leafスイッチ装置(S1~S4)の各々はすべてのSpineスイッチ装置(S11、S12)と接続され、Spineスイッチ装置(S11、S12)の各々は、すべてのLeafスイッチ装置(S1~S4)と接続されているが、Leafスイッチ装置同士、Spineスイッチ装置同士は接続されない。SDNコントローラ10で実行されるソフトウェアにより各スイッチ装置に対して指令(例えばパケット/フレームの転送に関する指令)を行い、Leafスイッチ装置、Spineスイッチ装置として動作させる制御を行っている。このようにトポロジ構成において、スイッチ装置の役割が明確に分かれている場合、これに一致するように、例えばLeafスイッチ装置を集約するSpineスイッチ装置にコントロールノードの役割を割り当てるアルゴリズムで基盤ネットワークの自動構築が可能になる。
【0005】
一方、例えば広域ネットワーク(Wide Area Network: WAN)等で用いられるリング構成が複数重畳した構成やその派生形においては、スイッチ装置間の役割は、基本的には同等であり、コントロールノードを単純に選出することはできない。図11(A)はリング型のネットワークトポロジの一例、図11(B)はラダー型のネットワークトポロジの一例を説明する図である。コントロールノードは、制御対象のスイッチ装置数により負荷が増加する。このため、ネットワーク内にできるだけ均等に分散する。また。コントロールノードの障害は、それが情報を集約するスイッチ装置の通信にも影響がでることから、できるだけ障害の影響が小さくなるようにコントロールノードの選出が行われる。図11(A)、(B)において、広域ネットワークは、不図示のSDNコントローラで動的に制御する構成としてもよい。この場合、図11の広域ネットワーク(広域仮想ネットワーク)を介して接続する異なるサイトのテナント毎のネットワーク(例えば図9)をVxLAN(Virtual eXtensible Local Area Network)等で接続するようにしてもよい。
【先行技術文献】
【非特許文献】
【0006】
【文献】NEC Data Center SDN Solutions ネットワーク運用自動化ソリューション(WebSAM Network Automation + UNIVERGE PFシリーズ)、2020年3月9日閲覧、インターネット<URL:https://jpn.nec.com/sdn/pdf/NEC_SDN_NW.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0007】
図11を参照して説明したリング型やその派生型のネットワークにおいて、ネットワーク内でできるだけ均等に負荷を分散し、障害の影響が小さくなるようにコントロールノードを自動で選出することが求められる。同様に、図9を参照して説明したテナントネットワークでも、基盤ネットワークの構築等において、適切なコントロールノードの選出を自動で行うことが望まれる。
【0008】
したがって、本発明の目的は、例えばリング型やラダー型およびその派生型等、所定のトポロジのネットワークを構成する複数のスイッチ装置の中から適切なコントロールノードを自動的に選出可能とする方法、装置、プログラムを提供することにある。
【課題を解決するための手段】
【0009】
本発明の一つの形態によれば、ネットワークを構成する複数のスイッチ装置から予め定められた個数のコントロールノードを決定するにあたり、
前記複数のスイッチ装置の各々について、前記各スイッチ装置から前記予め定められたスイッチ装置経由数以内で到達可能なスイッチ装置の数である到達可能数を積算し、
前記複数のスイッチ装置の各々の前記到達可能数の積算値に基づき、前記複数のスイッチ装置の中から一つのスイッチ装置をコントロールノードとして選択し、
前記コントロールノードの個数が前記予め定められた個数に達するまで、
前記各スイッチ装置に関して前記到達可能数を積算したネットワークから前記コントロールノードとして選択された前記一つのスイッチ装置を除外したネットワーク上の残りのスイッチ装置の各々について、該各スイッチ装置に関する前記到達可能数を積算し、前記各スイッチ装置の前記到達可能数の積算値に基づき、前記残りのスイッチ装置の中から一つのスイッチ装置を次のコントロールノードとして選択する処理を繰り返すコントロールノード決定方法が提供される。
【0010】
本発明の他の一つの形態によれば、ネットワークを構成する複数のスイッチ装置から予め定められた個数のコントロールノードを決定する手段として、
前記複数のスイッチ装置の各々について、前記各スイッチ装置から前記予め定められたスイッチ装置経由数以内で到達可能なスイッチ装置の数である到達可能数を積算し、
前記複数のスイッチ装置の各々の前記到達可能数の積算値に基づき、前記複数のスイッチ装置の中から一つのスイッチ装置をコントロールノードとして選択する第1の手段と、
前記ネットワークから前記コントロールノードとして選択された前記スイッチ装置を除外する第2の手段と、
制御手段と、
を備え、
前記制御手段は、
前記コントロールノードの個数が前記予め定められた個数に達するまで、
前記各スイッチ装置に関して前記到達可能数を積算したネットワークから前記コントロールノードとして選択された前記一つのスイッチ装置を除外したネットワーク上の残りのスイッチ装置の各々について、該各スイッチ装置に関する前記到達可能数を積算し、前記各スイッチ装置の前記到達可能数の積算値に基づき、前記残りのスイッチ装置の中から一つのスイッチ装置を次のコントロールノードとして選択する処理を繰り返すように制御するコントロールノード決定装置が提供される。
【0011】
本発明のさらに別の一つの形態によれば、ネットワークを構成する複数のスイッチ装置から予め定められた個数のコントロールノードを決定するにあたり、
前記複数のスイッチ装置の各々について、前記各スイッチ装置から前記予め定められたスイッチ装置経由数以内で到達可能なスイッチ装置の数である到達可能数を積算し、
前記複数のスイッチ装置の各々の前記到達可能数の積算値に基づき、前記複数のスイッチ装置の中から一つのスイッチ装置をコントロールノードとして選択する処理と、
前記コントロールノードの個数が前記予め定められた個数に達するまで、
前記各スイッチ装置に関して前記到達可能数を積算したネットワークから前記コントロールノードとして選択された前記一つのスイッチ装置を除外したネットワーク上の残りのスイッチ装置の各々について、該各スイッチ装置に関する前記到達可能数を積算し、前記各スイッチ装置の前記到達可能数の積算値に基づき、前記残りのスイッチ装置の中から一つのスイッチ装置を次のコントロールノードとして選択する処理を、繰り返す処理とを、コンピュータに実行させるプログラムが提供される。さらに、本発明によれば、上記プログラムを記憶したコンピュータ可読型記録媒体((例えばRAM(Random Access Memory)、ROM(Read Only Memory)、又は、EEPROM(Electrically Erasable and Programmable ROM))等の半導体ストレージ、HDD(Hard Disk Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc))が提供される。
【発明の効果】
【0012】
本発明によれば、例えばリング型やラダー型およびその派生型等、所定のトポロジのネットワークを構成する複数のスイッチ装置の中から適切なコントロールノードを自動的に選出可能としている。
【図面の簡単な説明】
【0013】
図1】本発明の一実施形態によるコントロールノード選出結果を例示する図である。
図2】本発明の一実施形態の構成を説明する図である。
図3】(A)、(B)は本発明の一実施形態によるコントロールノードの選択を例示する図である。
図4】本発明の一実施形態の動作を説明する流れ図である。
図5】(A)、(B)は本発明の一実施形態を説明する図である。
図6】本発明の一実施形態における探索関数のアルゴリズムを説明する図である。
図7】(A)、(B)は本発明の一実施形態を説明する図である。
図8】コンピュータ実装例を説明する図である。
図9】SDNの一例を説明する図である。
図10】リーフスパインネットワークを説明する図である。
図11】(A)、(B)はリング型とラダー型のネットワークを例示する図である。
【発明を実施するための形態】
【0014】
本発明の実施形態について説明する。本発明の一実施形態に係るコントロールノードの決定方法によれば、例えばリング型等所定のネットワークトポロジで構成された複数のスイッチ装置の各々について、各スイッチ装置が、予め定められた所定の装置経由数(Nh)以内で到達可能なスイッチ装置を、装置経由数(Nh)以内で到達可能なスイッチ装置について積算し、各スイッチ装置に関して求めた到達可能数の積算値(Er)に基づき、一つのスイッチ装置をコントロールノードの一つとして選出する。選出方法として、例えば、到達可能数の積算値(Er)が最大のスイッチ装置をコントロールノードの一つとして選出する(処理1)。なお、コントロールノードは、例えば、前述したように、スイッチ装置のトポロジ情報の集約や収集したトポロジ情報の別のスイッチ装置への配信を行う。
【0015】
選出するコントロールノードの数(Nc)が複数の場合、上記で選出されたコントロールノードをネットワークから除外した場合のトポロジで構成された残りのスイッチ装置の中から、予め定められた所定の装置経由数(Nh)以内で到達可能なスイッチ装置を、装置経由数(Nh)以内で到達可能なスイッチ装置について積算し、各スイッチ装置に関して求めた到達可能数の積算値(Er)に基づき、一つのスイッチ装置を次優先のコントロールノードの一つとして選出する。選出方法として、処理1と同様、到達可能数の積算値(Er)が最大のスイッチ装置を次優先のコントロールノードとする(処理2)。
【0016】
上記処理1、2を、選出するネットワークノードの個数(Nc)回、繰り返すことにより、ネットワーク全体で到達性が平準化されたNc個のスイッチ装置をコントロールノードとして選出できる。図1に、本発明の一実施形態によるコントロールノード選出結果の一例を例示する。本発明の一実施形態によれば、ネットワーク内でできるだけ均等な負荷分散を可能とし、障害の影響等を抑制可能とした、適切なコントロールノードを自動で選出することができる。
【0017】
本発明の一実施形態において、所定の装置経由数(Nh)の決定方法は、当該スイッチ装置が、コントロールノードとして稼働した場合における期待される集約可能なスイッチ装置の数としてもよい。
【0018】
特に制限されないが、ネットワーク上のスイッチ装置の数をNsとした場合、装置経由数(Nh)とコントロールノードの数(Nc)の関係は、例えば、次式(1)で与えられる。
Nh=Ns/Nc以上 …(1)
なお、Ns/Ncが整数でない場合、
以上としてもよい(実数xに関して、n=<x<n+1となる整数nを
で表す)。
【0019】
図1に例示するネットワークは、スイッチ装置S1-S2-S3-S4-S13-S14-S1、スイッチ装置S4-S5-S6-S7-S8-S9-S10-S11-S12-S13-S4、スイッチ装置S6-S7-S8-S9-S10-S6、スイッチ装置S4-S5-S6-S10-S11-S12-S13-S4がそれぞれリングを構成することが可能なマルチリング型である(あるいはラダー型とリング型の混在型ともいえる)。スイッチ装置の数Ns=14に対してコントロールノードの数Nc=2の場合、装置経由数(Nh)は、
Ns/Nc=14/2=7
に設定される。コントロールノードとして選択された2つのスイッチ装置はS4とS10である。なお、図1のマルチリング型のネットワークは、スイッチ装置S1-S14が不図示のSDNコントローラで制御される広域ネットワーク(WAN)であってもよい。特に制限されないが、スイッチ装置間接続は光ファイバケーブル等であってもよい。図1のネットワークは、広域ネットワークに制限されるものでなく、例えばマルチリング型のテナントネットワークであってもよい。すなわち、リング型やその派生型等のトポロジの基盤ネットワークの自動構築においても、SDNコントローラにより、コントロールノードの選出を自動的に行い、コントロールノードの設定をスイッチ装置に行うことを可能としている。
【0020】
装置経由数(Nh)の決定において、装置経由数(Nh)=ネットワーク上のスイッチ装置の数(Ns)としてもよい。この場合、
・計算量が多くなること、
・近傍のスイッチ装置以外の構成の影響を受けやすい傾向となる。
【0021】
なお、NhがNs/Nc未満の場合、コントロールノードとして期待する収容能力以下のスイッチ装置数で評価されるため、コントロールノードの適切な選出が行われない可能性が高まるともいえる。
【0022】
リング構成の特徴として、スイッチ装置が原則として数珠つなぎになっており、目的のスイッチ装置へ到達する。このため、他スイッチ装置の経由数が多くなる傾向になる。これは、他スイッチ装置の障害影響を受けやすいことを意味している。このため、各スイッチ装置からのコントロールノードへの到達に必要な他スイッチ装置の経由数を均質化することが、所定のコントロールノード数で障害影響が局所化された構成ということになる。
【0023】
到達可能数の積算値(Er)は、ネットワーク上の各スイッチ装置について、各スイッチ装置から1~Nh回、スイッチ装置を経由して到達するスイッチ装置への1加算(increment)を繰り返すことで求めるようにしてもよい。
【0024】
装置を経由した数の加算ではなく、+1加算とすることで、局所的にスイッチ装置数が偏ったトポロジの影響を軽減することができる。
【0025】
ネットワーク上の全スイッチ装置の内で、到達可能数の積算値(Er)が最大(Emax)のスイッチ装置をコントロールノードの一つ(第1のコントロールノード)として選出する。
【0026】
本発明の一実施形態において、到達可能数の積算値(Er)が最大のスイッチ装置が複数あった場合、いずれか一つを選出するようにしてもよい。
【0027】
次のコントロールノードの選出は、
・ネットワークから、上記でコントロールノードとして選出されたスイッチ装置を削除したトポロジ情報を作成し、
・該トポロジに基づき、コントロールノードとして選出されたスイッチ装置の除く各スイッチ装置について到達可能数の積算値(Er)を計算する。
【0028】
到達可能数の積算値(Er)が最大のスイッチ装置を次のコントロールノードとして選出する。
【0029】
これにより、第1のコントロールノードが障害になった場合においても、到達性が偏ることのないコントロールノードが選出されたことになる。以降はこれを繰り返し所定数(Nc)になるまでコントロールノードを選出していく。
【0030】
図2は、本実施形態に係るコントロールノード決定装置100の構成を模式的に例示する図である。図2のコントロールノード決定装置100は、好ましくは、リング型、マルチリング型、リング型+ラダー型のネットワークを制御するSDNコントロ―ラに実装するようにしてもよい。図2を参照すると、コントロールノード決定装置100は、トポロジ情報登録部101、パラメータ決定部102、制御部103、コントロールノード選出部104と、コントロールノード除外部105、到達可能数積算部106、設定部107、出力部108、記憶部109を備えている。各部の機能、処理の一部又は全部は、後述するように、プログラム制御で動作するプロセッサ等で実現するようにしてもよい。
【0031】
図2を参照すると、トポロジ情報登録部101は、ネットワークのトポロジ情報110を記憶部109に記憶する。トポロジ情報登録部101は、複数のスイッチ装置から構成されるネットワークに対してリンクトレース(Link Trace)やループバック(Loop Back)等のコマンドを送信しスイッチ装置からの応答を受信することで、ネットワーク構成(トポロジ情報)を取得するようにしてもよい。
【0032】
パラメータ決定部102は、ネットワーク構成内のスイッチ装置の数をNsとした場合、装置経由数(Nh)とコントロールノードの数(Nc)の関係(式(1))から、装置経由数(Nh)を決定する。制御部103は、コントロールノードの数(Nc)分、コントロールノード選出部104と、コントロールノード除外部105の処理を繰り返す。
【0033】
コントロールノード選出部104は、ネットワーク上の各スイッチ装置(識別番号が割り付けられている)に対して、到達可能数積算部106を呼び出し、算出された到達可能数積算値の最大のスイッチ装置をコントロールノードとして選出する。制御部103は、コントロールノードの数(Nc)を一つ減算し、0の場合、コントロールノード除外部105は実行せず、1以上の場合、コントロールノード除外部105を実行する。
【0034】
コントロールノード除外部105は、記憶部109に記憶されているネットワークのトポロジ情報110から、コントロールノード選出部104によりコントロールノードとして選出されたスイッチ装置を外す。すなわち、コントロールノード除外部105は、記憶部109に記憶されているネットワークのトポロジ情報110を、該スイッチ装置(コントロールノード)を外したネットワーク構成に対応したものに更新する。
【0035】
制御部103は、コントロールノード選出部104を動作させ、コントロールノード選出部104は、トポロジが更新され、すでにコントロールノードとして選出されたスイッチ装置が除外されているネットワーク上の各スイッチ装置に対して到達可能数積算部106を呼び出す。到達可能数積算部106は、記憶部109に記憶されている、更新されたトポロジ情報に基づき、到達可能数積算値を算出し、コントロールノード選出部104は到達可能数積算値が最大のスイッチ装置を次のコントロールノードとして選出する。制御部103は、コントロールノードの数(Nc)を一つ減算し、0の場合、コントロールノード除外部105は実行せず、1以上の場合、コントロールノード除外部105、コントロールノード選出部104の実行を繰り返す。
【0036】
設定部107は、コントロールノードとして選出されたスイッチ装置に対して、コントロールノードとしての機能、動作(スイッチ装置のトポロジ情報の収集・集約とその配信等)を行うための設定を行う。出力部108は、コントロールノードとして選出されたスイッチ装置を表示装置又はファイル(ネットワークファイルのスイッチ属性情報等)等に出力する。
【0037】
図3(A)、(B)は、コントロールノード選出部104、コントロールノード除外部105の動作を説明する図である。
【0038】
図3(A)において、装置経由数(Nh)、リング型のネットワーク構成のスイッチ装置の数(Ns)、コントロールノードの数(Nc)をそれぞれ、3、6、2とする。
【0039】
コントロールノード選出部104は、ネットワークの各スイッチ装置の到達可能数の積算値(Er)が最大(Er=27)のスイッチ装置S2をコントロールノードとして選出する。
【0040】
コントロールノード除外部105は、図3(B)に示すように、ネットワークからスイッチ装置S2を削除し、スイッチ装置S2が削除されたネットワーク(ラダー型)で構成される各スイッチ装置のトポロジ情報を更新する。コントロールノード選出部104は、図3(B)のネットワークの各スイッチ装置の到達可能数の積算値(Er)が最大(Er=12)のスイッチ装置S5をコントロールノードとして選出する。すなわち、スイッチ装置S2、S5がコントロールノードとして選出される。なお、図3(B)のトポロジ構成(T')は、次のコントロールノード選出のためにのみ用いられ、スイッチ装置S2、S5がコントロールノードとして選出された後、図3(A)のトポロジ構成(T)が用いられる。
【0041】
図4は、本発明の一実施形態の動作を説明するフローチャートである。以下の各ステップは、スイッチ装置を制御するSDNコントローラで実行するようにしてもよい。
【0042】
SDNコントローラはスイッチ装置のトポロジ情報を登録する(S101)。SDNコントローラは、ネットワークを構成するスイッチ装置のトポロジ構成におけるスイッチ装置間の接続関係をリスト形式で表現し、これをデータとして登録する。
【0043】
図5(A)、図5(B)は、リング型のネットワーク構成のスイッチ装置のトポロジ構成(T)とそのリスト形式表現の例を示す図である。
【0044】
図5(A)において、スイッチ装置S1はそのNIC(Network Interface Card)のポートが、スイッチ装置S2のNICのポートとスイッチ装置S6のNICのポートに接続されている。スイッチ装置S1がスイッチ装置S2とS6に接続していることを、トポロジ情報として、リスト表現形式でS1={S2,S6}と表している。なお、これらのトポロジ情報は図2の記憶部109に記憶されている。
【0045】
SDNコントローラはパラメータを決定する(S102)。
【0046】
全スイッチ装置数(Ns)は図5(A)のトポロジ情報より6となる。コントロールノード数(Nc)を2とし、装置経由数(Nh)は6/2=3とする。
【0047】
SDNコントローラは、ネットワークを構成する各スイッチ装置(図5(A)のスイッチ装置S1~S6)の到達可能数積算値(Er)を評価する(図4のS104)。
【0048】
SDNコントローラは、繰り返し制御(図4のS103)に基づき、到達可能数積算値(Er)評価(図4のS104)、コントロールノード選出処理(図4のS105)、コントロールノード排除(S106)の処理をNc回繰り返す。なお、Ncが1の場合、到達可能数積算数(Er)の評価(S104)、コントロールノード選出処理(S105)が1回行われる。
【0049】
到達可能数積算値の評価(図4のS104)は、各スイッチ装置毎の到達可能数積算値(Er)を計算する。到達可能数積算値(Er)は、装置経由数(Nh)内に到達可能なスイッチ装置を探索して算出する。特に制限されないが、本実施形態では、各スイッチ装置について、再帰的呼び出し(recursive call)可能な探索関数:cacl_erをNh回実行し、発見したスイッチ装置毎に到達可能数積算値(Er)を1加算していく。
【0050】
図6は、探索関数(calc_er)のアルゴリズムの概要を示す図である。スイッチ装置のID(sx:1~6)と、装置経由数(Nh=3)を引数として、探索関数(calc_er)を呼び出す。なお、スイッチ装置の参照符号はS1~S6等、大文字Sで始まるが、探索関数(calc_er)では、スイッチ装置の識別情報は小文字の変数sxで表している。
【0051】
探索関数(calc_er)では、グローバル変数である到達可能数積算値配列:Er(sx)を+1する。なお、到達可能数積算値配列の各要素:Er(S1)~Er(S6)は0に初期化されているものとする。
【0052】
装置経由数(Nh)が0であれば、処理を終了してリターン(return)し呼び出し側に制御を戻す。
【0053】
装置経由数(Nh)が1以上であれば、スイッチ装置sxのトポロジ情報リストにおける要素数を返す関数(number_of_topology (sx))を呼び出し、整数変数nに設定する。例えば、図5(B)の場合、スイッチ装置S1のトポロジ情報リストはS1={S2 S6}であるため、n=number_of_topology (s1)=2となる。
【0054】
ループ変数i=1からnまで以下を繰り返す。
【0055】
スイッチ装置sxのトポロジ情報リストにおけるi番目のエントリを与える関数 entry_of_topology (sx,i)を呼び出し、syに設定する。探索関数(calc_er)を引数sy、装置経由数:Nh-1で再帰的に呼び出す。
【0056】
SDNコントローラは、到達可能数積算値配列:Er(S1)~Er(S6)から、各スイッチ装置の到達可能数積算値Erを比較し、最大の値の到達可能数積算値Erを持つスイッチ装置をコントロールノードとして選出する(図4のS105)。
【0057】
SDNコントローラは、トポロジ情報から選出したコントロールノードを除外した新しいトポロジ情報を生成する。SDNコントローラは、コントロールノードに該当するスイッチ装置のリスト情報の削除および、各スイッチ装置のリスト情報に含まれる該当スイッチ装置を除外する(図4のS106)。
【0058】
図7(A)に、図5(A)のコントロールノードとしてスイッチ装置S2を選出した場合の新しいトポロジ情報(T')の例を示す。図7(A)のトポロジ情報(T')は、スイッチ装置S1-S6-S5-S4-S3が一列に接続された線形リスト(linked list:連結リスト)構成である。図7(B)は、図7(A)のトポロジ情報(T')のリスト形式表現である。不図示のSDNコントローラは、図7(A)の新しいトポロジ情報(T')について、到達可能数積算値(Er)評価(図4のS104)、コントロールノード選出処理(図4のS105)を実行して、次のコントロールノードを決定する。
【0059】
図7(A)の場合、例えばスイッチ装置S1に関する到達可能数は以下のように計算される。探索関数calc_er(s1,Nh=3)の呼び出しにより、グローバル変数である到達可能数積算値配列の要素Er(s1)を1加算する。装置経由数(Nh)=3であるため、number_of_topology(s1)を呼び出し、スイッチ装置S1に関するトポロジ情報はS1={S6}であるため、その戻り値は1であり、sy=entry_of_topology(s1,1)のsyはs6である。そして、探索関数calc_er(s1,Nh=3)は、探索関数calc_er(s6, Nh-1(=2))を再帰的に呼び出す。calc_er(s6, 2)では到達可能数積算値配列の要素Er(S6)を+1加算し、スイッチ装置S6に関するトポロジ情報はS6={S1,S5}であるため、calc_er(s6, Nh-1(=2))は、calc_er(s1,1)とcalc_er(s5, 1)を再帰的に呼び出す。呼び出されたcalc_er(s1,1)では到達可能数積算値配列の要素Er(s1)を+1加算し、トポロジ情報はS1={S6}であるため、calc_er(s6, 0)を再帰的に呼び出す。calc_er(s6, 0)では到達可能数積算値配列の要素Er(s6)を+1加算してreturnする。一方、calc_er(s6, Nh-1(=2))から呼び出されたcalc_er (s5, 1)では、到達可能数積算値配列の要素Er(s5)を+1加算し、スイッチ装置S5に関するトポロジ情報はS5={S6,S4}であるため、calc_er(s6,0)とcalc_er(s4,0)を再帰的に呼び出す。calc_er(s6,0)では到達可能数積算値配列の要素Er(s6)を+1加算してreturnし、calc_er(s4,0)では到達可能数積算値配列の要素Er(s4)を+1加算してreturnする。calc_er(s1, Nh(=3))の呼び出しの結果、Er(s1)は2である。図7(A)において、スイッチ装置S1から例えば装置経由数(Nh)=3で到達可能なスイッチ装置sx(=s6, s5, s4)の各々についても、探索関数calc_er(sx,Nh=3)をそれぞれ呼び出し、各スイッチ装置の到達可能数積算値を計算するようにしてもよい。その結果、スイッチ装置S1の到達可能数の積算値Er(s1)は7となる(図3(B)参照)。なお、到達可能数積算値Erの計算は、上記に制限されるものでないことは勿論である。例えば、各スイッチ装置について到達可能数の計算にあたり、各スイッチ装置が装置経由数(Nh)以内で到達可能な別のスイッチ装置の数を、到達可能性のあるスイッチ装置について積算して求めるようにしてもよい。
【0060】
図8は、本発明の実施の形態を説明する図であり、図2のコントロールノード決定装置100を、コンピュータ装置200(例えばSDNコントローラ等)に実装した場合の構成を説明する図である。図8を参照すると、コンピュータ装置200は、プロセッサ201と、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)等の半導体メモリやHDD(Hard Disk Drive)、SSD(Solid State Drive)等のメモリ(ストレージ)202と、表示装置203と、NIC(Network Interface Card)等の通信インタフェース204を備えている。通信インタフェース204は不図示のスイッチ装置と通信接続する。プロセッサ201は、メモリ202に格納されたプログラムを実行することで、図4の各ステップの処理を実行する。メモリ202は、図2の記憶部109として機能するようにしてもよい。
【0061】
なお、本発明が適用されるネットワークは、リング型、ラダー型、これらの派生型等のトポロジの広域ネットワークに制限されるものでなく、同様のトポロジのテナントネットワークなどSDNで実現される任意のネットワーク(仮想ネットワーク)等に適用可能である。また、例えばラダー型トポロジのスイッチ装置群を有するデータセンタにも適用可能である。
【0062】
本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施の形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0063】
10 SDNコントローラ
11、12 テナントネットワークのトポロジ情報
13 テナントネットワーク定義情報
100 コントロールノード決定装置
101 トポロジ情報登録部
102 パラメータ決定部
103 制御部
104 コントロールノード選出部
105 コントロールノード除外部
106 到達可能数積算部
107 設定部
108 出力部
109 記憶部
110 トポロジ情報
200 コンピュータ装置
201 プロセッサ
202 メモリ
203 表示装置
204 通信インタフェース
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11