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

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

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

特許7593501通信システム、通信方法及び通信プログラム
<>
  • 特許-通信システム、通信方法及び通信プログラム 図1
  • 特許-通信システム、通信方法及び通信プログラム 図2
  • 特許-通信システム、通信方法及び通信プログラム 図3
  • 特許-通信システム、通信方法及び通信プログラム 図4
  • 特許-通信システム、通信方法及び通信プログラム 図5
  • 特許-通信システム、通信方法及び通信プログラム 図6
  • 特許-通信システム、通信方法及び通信プログラム 図7
  • 特許-通信システム、通信方法及び通信プログラム 図8
  • 特許-通信システム、通信方法及び通信プログラム 図9
  • 特許-通信システム、通信方法及び通信プログラム 図10
  • 特許-通信システム、通信方法及び通信プログラム 図11
  • 特許-通信システム、通信方法及び通信プログラム 図12
  • 特許-通信システム、通信方法及び通信プログラム 図13
  • 特許-通信システム、通信方法及び通信プログラム 図14
  • 特許-通信システム、通信方法及び通信プログラム 図15
  • 特許-通信システム、通信方法及び通信プログラム 図16
  • 特許-通信システム、通信方法及び通信プログラム 図17
  • 特許-通信システム、通信方法及び通信プログラム 図18
  • 特許-通信システム、通信方法及び通信プログラム 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-25
(45)【発行日】2024-12-03
(54)【発明の名称】通信システム、通信方法及び通信プログラム
(51)【国際特許分類】
   H04L 41/0853 20220101AFI20241126BHJP
【FI】
H04L41/0853
【請求項の数】 7
(21)【出願番号】P 2023543554
(86)(22)【出願日】2021-08-25
(86)【国際出願番号】 JP2021031175
(87)【国際公開番号】W WO2023026402
(87)【国際公開日】2023-03-02
【審査請求日】2023-12-14
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】杉園 幸司
(72)【発明者】
【氏名】河野 伸也
(72)【発明者】
【氏名】加納 浩輝
(72)【発明者】
【氏名】宮本 克真
【審査官】浜岸 広明
(56)【参考文献】
【文献】米国特許出願公開第2019/0274070(US,A1)
【文献】特開2010-233126(JP,A)
【文献】国際公開第2020/112448(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 41/0853
(57)【特許請求の範囲】
【請求項1】
複数のネットワークを統合し、単一のアドレス体系に従いパケット転送を行うネットワークであって、かつ、その一部に当該ネットワークとは異なるアドレス体系のアンダーレイネットワーク上に設定されたオーバレイパスから成るオーバレイネットワークを組み込むネットワークを有する通信システムであって、
前記アンダーレイネットワークのパケット転送装置は、前記アンダーレイネットワークと他のネットワークとの境界に位置する同一の境界パケット転送装置へ向かう出力経路として複数の経路が登録されている場合には、前記オーバレイパスを通過するパケットが有する転送用情報を基に該パケットの出力経路を決定するとともに、自装置の識別子を、検索対象となる検索用パスを経由する検索用パケットに記載し、
前記オーバレイネットワークの分散候補のオーバレイパスである分散候補パスのうち、前記検索対象となる検索用パスを選択し、選択した検索用パスを経由する前記検索用パケットを送信する選択部と、
戻ってきた前記検索用パケットに記載された識別子を基に、前記検索用パスのアンダーレイネットワークにおける装置及びリンクを検索する検索部と、
前記検索部による複数の検索用パケットに対する検索結果を基に、始点及び終点が同じオーバレイパスのうち、一部或いは全ての経路において、通過するパケット転送装置とリンクとが異なるオーバレイパス群を検知する検知部と、
を有することを特徴とする通信システム。
【請求項2】
前記検知部によって検知されたオーバレイパス群に対し、各オーバレイパスを通過するトラヒック流量を変化させた場合の前記アンダーレイネットワーク内のリンクのトラヒック流量を通過リンクごとに計算する計算部と、
オーバレイパス用に割り当て可能なリンク帯域を、前記リンクを通過するバックグラウンドトラヒック量を基に計算し、計算結果に合致するようオーバレイパスに通過させるネットワーク内フローを割り当てる割り当て部と、
をさらに有することを特徴とする請求項1に記載の通信システム。
【請求項3】
前記オーバレイパスは、VXLAN(Virtual eXtensible Local Area Network)であり、
前記通過するパケット転送装置とリンクとが異なるオーバレイパス群を検知するときの検知対象のパスは、前記オーバレイパスのヘッダのうち、UDPヘッダのUDP source port IDを変更した場合に生じるパスとなることを特徴とする請求項1または2に記載の通信システム。
【請求項4】
前記オーバレイパスは、MPLS(Multi-Protocol Label Switching)であり、
前記通過するパケット転送装置とリンクとが異なるオーバレイパス群を検知するときの検知対象のパスは、前記オーバレイパスのヘッダのうち、MPLSヘッダのラベルうちラベルの値を変更した場合に生じるパスとなることを特徴とする請求項1または2に記載の通信システム。
【請求項5】
前記オーバレイパスは、GRE(Generic Routing Encapsulation)であり、
前記通過するパケット転送装置とリンクとが異なるオーバレイパス群を検知するときの検知対象のパスは、前記オーバレイパスのヘッダのうち、GREヘッダのKeyフィールドベルのパス識別子を変更した場合に生じるパスとなることを特徴とする請求項1または2に記載の通信システム。
【請求項6】
複数のネットワークを統合し、単一のアドレス体系に従いパケット転送を行うネットワークであって、かつ、その一部に当該ネットワークとは異なるアドレス体系のアンダーレイネットワーク上に設定されたオーバレイパスから成るオーバレイネットワークを組み込むネットワークを有する通信システムにおいて実行される通信方法であって、
前記アンダーレイネットワークのパケット転送装置が、前記アンダーレイネットワークと他のネットワークとの境界に位置する同一の境界パケット転送装置へ向かう出力経路として複数の経路が登録されている場合には、前記オーバレイパスを通過するパケットが有する転送用情報を基に該パケットの出力経路を決定するとともに、自装置の識別子を、検索対象となる検索用パスを経由する検索用パケットに記載する工程と、
前記通信システムに配置される装置が、前記オーバレイネットワークの分散候補のオーバレイパスである分散候補パスのうち、前記検索対象となる検索用パスを選択し、選択した検索用パスを経由する前記検索用パケットを送信する工程と、
前記通信システムに配置される装置が、戻ってきた前記検索用パケットに記載された識別子を基に、前記検索用パスのアンダーレイネットワークにおける装置及びリンクを検索する工程と、
前記通信システムに配置される装置が、複数の前記検索用パケットに対する検索結果を基に、始点及び終点が同じオーバレイパスのうち、一部或いは全ての経路において、通過するパケット転送装置とリンクとが異なるオーバレイパス群を検知する工程と、
を含んだことを特徴とする通信方法。
【請求項7】
方法をコンピュータに実行させる通信プログラムであって、
複数のネットワークを統合し、単一のアドレス体系に従いパケット転送を行うネットワークであって、かつ、その一部に当該ネットワークとは異なるアドレス体系のアンダーレイネットワーク上に設定されたオーバレイパスから成るオーバレイネットワークを組み込むネットワークを有する通信システムにおける前記アンダーレイネットワークのパケット転送装置としてのコンピュータに、
前記アンダーレイネットワークと他のネットワークとの境界に位置する同一の境界パケット転送装置へ向かう出力経路として複数の経路が登録されている場合には、前記オーバレイパスを通過するパケットが有する転送用情報を基に該パケットの出力経路を決定するとともに、自装置の識別子を、検索対象となる検索用パスを経由する検索用パケットに記載するステップ
を実行させ、
前記通信システムに配置される装置としてのコンピュータに、
前記オーバレイネットワークの分散候補のオーバレイパスである分散候補パスのうち、前記検索対象となる検索用パスを選択し、選択した検索用パスを経由する前記検索用パケットを送信するステップと、
前記通信システムに配置される装置が、戻ってきた前記検索用パケットに記載された識別子を基に、前記検索用パスのアンダーレイネットワークにおける装置及びリンクを検索するステップと、
複数の前記検索用パケットに対する検索結果を基に、始点及び終点が同じオーバレイパスのうち、一部或いは全ての経路において、通過するパケット転送装置とリンクとが異なるオーバレイパス群を検知するステップと、
を実行させることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システム、通信方法及び通信プログラムに関する。
【背景技術】
【0002】
ISP(Internet Service Provider)のIP(Internet Protocol)ネットワークを介して複数の拠点にあるサブネットワークを1つのIPサブネットに統合する際、VPN(Virtual Private Network)を構築する必要がある。この拠点内サブネットを統合するための技術として、VXLAN(Virtual eXtensible Local Area Network)が注目を集めている。
【0003】
VXLANは、拠点とIPネットワークの接点にあたるゲートウェイとの間にTCP(Transmission Control Protocol)/IPのL4プロトコルであるUDP(User Datagram Protocol)のパスを設定し、サブネット間を通過するトラヒックをUDPでカプセル化することによって転送する技術である。
【0004】
あるサブネットから別のサブネットへ転送されるIPパケットは、発側サブネットのゲートウェイでUDPパケットへとカプセリングにより変換される。UDPパケットは、IPフォワーディングにより着側ゲートウェイへと転送される。パケットを受け取った着側ゲートウェイは、UDPヘッダを削除したのち、元のIPパケットに添付されたIPアドレスに従って宛先へと転送される。このようなUDPトラヒックを2拠点間で結ぶトンネルを、UDPトンネルと呼ぶ。
【0005】
ISPネットワークにおいてトラヒック輻輳が発生すると、パケットロスや転送遅延の増加を招く。そこで、トラヒック輻輳を回避する技術として、マルチパス転送技術が提案されている。
【0006】
マルチパス転送技術は、ネットワークにおいて特定の2つのルータ間を結ぶ経路が複数存在する場合に、優先度が同程度の経路間で同程度のトラヒックが流れるようにパケットの転送先を振り分ける技術である。
【0007】
パケット転送装置であるルータやスイッチは、トラヒックの転送経路を発見するルーチングプロトコルにより優先度が同程度の経路を発見すると、パケットの送信元アドレス、送信先アドレス及びポートなど、パケットヘッダにある情報を基に、振り分け先となる経路を選択する。この選択方法として、ヘッダ情報からハッシュ値を計算し、計算したハッシュ値を基に振り分け先を決める方法が主に使用される。
【先行技術文献】
【非特許文献】
【0008】
【文献】D. Dutt, “EVPN in the Data Center”, O’reilly media, pp.11-12
【発明の概要】
【発明が解決しようとする課題】
【0009】
VXLANにおけるUDPトンネルも同様の方法を用いてマルチパス転送を行うことが可能である。図16は、VXLANにおけるUDPトンネルにおけるマルチパス転送を説明する図である。図17は、転送パケットフォーマットを説明する図である。
【0010】
図16及び図17に示すように、2拠点間を結ぶUDPトンネルが複数の経路を有する場合、ルータは、それぞれの経路を決定するために、UDPパケットヘッダ、並びに、UDPを運ぶIPパケットヘッダの情報からハッシュ値を計算する。そして、ルータは、計算したハッシュ値を基に、経路上のルータやスイッチが振り分け先経路を決定する。例えば、ハッシュ関数として、ハッシュ関数=UDP Src Port%2を用いる。%は、剰余を計算する。
【0011】
ルータは、計算したハッシュの数字が付与された出力ポート(例えば、output Port 0、output Port 1)にパケットを出力する。ハッシュ値を計算する情報として5-tupleを使用する場合、UDPヘッダのUDP source port IDを変えることにより、ハッシュ値が変わる。これは、トンネルの始点と終点となるゲートウェイのIPアドレスが、経路によらず同じで、かつ、UDP destination port IDは、終点ゲートウェイでUDPヘッダを外すためのサインであるプロトコル番号を示すためである。
【0012】
理想的な負荷分散状態は、2拠点間のトラヒック流量が最大であり、リンク間の帯域利用率が均等である状態である。図18及び図19は、負荷分散状態について説明する図である。他のトラヒックがあるとトラヒック流量が少なくなるため(図18の(1))、理想的な負荷分散を実現するには、リンク共有が生じない経路を通るパス間でトラヒックを分散し(図18の(2))、パスの共有リンクでパス間のトラヒック流量を調節することが望ましい。
【0013】
振り分け先となる複数経路が同一のリンクを共有しない場合、マルチパス転送技術による負荷分散を適切に実行できる。従来技術では、個々の経路について、tracerouteなどのツールを用いることで、経路が通過するルータを調査することが可能である。
【0014】
しかしながら、従来技術では、複数の経路に対し、複数の経路が通過する同一リンクを検知することや、複数の経路のうち、同一リンクを通過する経路の個数をカウントすることはできなかった。このため、従来技術では、複数の経路に対し、実際に負荷分散できているのか保証できなかった。
【0015】
具体的には、ルータが独自ポリシーで出力先を決めているため、経路の始まりではリンク共有がない状態であっても(図19の(1))、経路の中途で、大容量トラヒックが流れるリンクを通過する場合(図19の(2))や、同一のリンクを通過するリンク共有が生じる場合(図19の(3))があった。特にオーバレイネットワークにおいては、オーバレイネットワークのパスで経路を振り分け、負荷分散を行ったとしても、或いは、複数のオーバレイネットワークでそれぞれのパスに対して経路を振り分けたとしても、アンダーレイネットワークでは、経路の中途で、大容量トラヒックが流れるリンクを通過する場合や、リンク共有が生じる場合があった。
【0016】
本発明は、上記に鑑みてなされたものであって、オーバレイネットワークの複数の分散候補パスのアンダーレイネットワークにおける経路を検知することができる通信システム、通信装置及び通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【0017】
上述した課題を解決し、目的を達成するために、本発明に係る通信システムは、複数のネットワークを統合し、単一のアドレス体系に従いパケット転送を行うネットワークであって、かつ、その一部に当該ネットワークとは異なるアドレス体系のアンダーレイネットワーク上に設定されたオーバレイパスから成るオーバレイネットワークを組み込むネットワークを有する通信システムであって、アンダーレイネットワークのパケット転送装置は、アンダーレイネットワークと他のネットワークとの境界に位置する同一の境界パケット転送装置へ向かう出力経路として複数の経路が登録されている場合には、オーバレイパスを通過するパケットが有する転送用情報を基に該パケットの出力経路を決定するとともに、自装置の識別子を、検索対象となる検索用パスを経由する検索用パケットに記載し、オーバレイネットワークの分散候補のオーバレイパスである分散候補パスのうち、検索対象となる検索用パスを選択し、選択した検索用パスを経由する検索用パケットを送信する選択部と、戻ってきた検索用パケットに記載された識別子を基に、検索用パスのアンダーレイネットワークにおける装置及びリンクを検索する検索部と、検索部による複数の検索用パケットに対する検索結果を基に、始点及び終点が同じオーバレイパスのうち、一部或いは全ての経路において、通過するパケット転送装置とリンクとが異なるオーバレイパス群を検知する検知部と、を有することを特徴とする。
【発明の効果】
【0018】
本発明によれば、オーバレイネットワークの複数の分散候補パスのアンダーレイネットワークにおける経路を検知することができる。
【図面の簡単な説明】
【0019】
図1図1は、実施の形態に係る通信システムの構成の一例を模式的に示す図である。
図2図2は、転送パケットフォーマットを説明する図である。
図3図3は、図1に示すルータの構成の一例を模式的に示す図である。
図4図4は、検索用パスの選択を説明する図である。
図5図5は、VXLANフォーマットを説明する図である。
図6図6は、検索用パスの経路検索を説明する図である。
図7図7は、経路検知を説明する図である。
図8図8は、トラヒック流量の計算を説明する図である。
図9図9は、フローの割り当てを説明する図である。
図10図10は、実施の形態に係る通信処理の処理手順を示すシーケンス図である。
図11図11は、実施の形態に係る通信システムの構成の他の例を模式的に示す図である。
図12図12は、実施の形態の変形例2を説明する図である。
図13図13は、実施の形態の変形例2を説明する図である。
図14図14は、実施の形態の変形例3を説明する図である。
図15図15は、プログラムが実行されることにより、学習装置及び推定装置が実現されるコンピュータの一例を示す図である。
図16図16は、VXLANにおけるUDPトンネルにおけるマルチパス転送を説明する図である。
図17図17は、転送パケットフォーマットを説明する図である。
図18図18は、負荷分散状態について説明する図である。
図19図19は、負荷分散状態について説明する図である。
【発明を実施するための形態】
【0020】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0021】
[実施の形態]
本実施の形態では、アンダーレイネットワークとその他のネットワークの境界に位置するパケット転送装置(例えば、ルータ)がオーバレイネットワークの分散候補パスに対して検索用パケットを送信し、途中で経過するアンダーレイネットワークのルータがルータ自身の識別子(例えば、IPアドレス)を検索用パケットに記載する。
【0022】
実施の形態では、この検索用パケットを基に、各分散候補パスがアンダーレイネットワークのどのルータを経由するかといったパスの経路、すなわち、オーバレイネットワークの複数の分散候補パスのアンダーレイネットワークにおける経路を検知することを可能とする。実施の形態では、複数の経路に対し、複数の経路が通過するアンダーレイネットワークにおける同一リンクを検知することや、複数の経路のうち、アンダーレイネットワークにおける同一リンクを通過する経路の個数をカウントすることが可能になる。
【0023】
[通信システム]
次に、実施の形態に係る通信システムについて説明する。図1は、実施の形態に係る通信システムの構成の一例を模式的に示す図である。
【0024】
図1に示すように、実施の形態に係る通信システム100は、複数のネットワークを統合し、単一のアドレス体系に従いパケット転送を行うネットワークであって、かつ、その一部に当該ネットワークとは異なるアドレス体系のアンダーレイネットワーク(Underlay network)上に設定されたオーバレイパスから成るオーバレイネットワーク(Overlay network)を組み込むネットワークを有する。アンダーレイネットワーク上には、仮想的に構築されたオーバレイネットワーク(サブネット1)が設定される。
【0025】
アンダーレイネットワークは、複数のネットワークを統合したネットワークで構成されている。通信システム100では、アンダーレイネットワークは、複数のルータ30が設けられた複数のネットワークであり、単一のアドレス体形に従いパケット転送を行うネットワークである。アンダーレイネットワークは、その一部に、アンダーレイネットワークとは異なるオーバレイ区間を組み込むよう統合ネットワークにおけるオーバレイパスが設定され、フローが割り当てられる。
【0026】
通信システム100は、オーバレイネットワークである2つのサブネット1間に対し、VXLANを使ってVPNを構築する。図2は、転送パケットフォーマットを説明する図である。
【0027】
アンダーレイネットワークとオーバレイネットワークとの境界に位置するサブネット1のルータ20I(IPアドレス:IPI)(境界パケット転送装置)は、サブネット1間を通過するトラヒックをカプセル化する(図2参照)ことによって、ルータ20E(IPアドレス:IPE)(境界パケット転送装置)にパケットを転送する。具体的には、ルータ20Iは、サーバ10-1(IPアドレス:IPsrc1)から発信されたパケットを、UDPパケットへとカプセル化する。UDPパケットは、ルータ20Eへと転送される。ルータ20Eは、受信したパケットからUDPヘッダを削除したのち、元のパケットに添付されたIPアドレスに従って宛先であるサーバ11-1(IPアドレス:IPdst1)に転送する。
【0028】
通信システム100では、ルータ20Iが、オーバレイネットワークの分散対象のオーバレイパスに対して実際にトラヒックフローを割り当てる前に、分散対象の各オーバレイパスの経路を検知する。
【0029】
ルータ20Iは、オーバレイネットワークの分散候補である分散候補パスのうち、検索対象となる検索用パスを選択し、選択した検索用パスを経由する検索用パケットを送信する。そして、ルータ20Iは、戻ってきた複数の検索用パケットを基に、分散候補パスが、アンダーレイネットワークのどのルータを経由するかといったパスの経路、すなわち、オーバレイネットワークの複数の分散候補パスのアンダーレイネットワークにおける経路を検知する。続いて、ルータ20Iは、分散候補パスのトラヒック流量を計算し、サブネットフローを分散候補パスに割り当てる。
【0030】
なお、途中で経過するアンダーレイネットワークのルータ30(パケット転送装置)は、パケットを転送する機能とともに、自装置のIPアドレスを検索用パケットに記載する機能を有する。ルータ30は、ルータ30に、同一の境界パケット転送装置(例えば、ルータ20E)に向かう出力経路が複数登録されている場合、オーバレイパスを通過するパケットが有する転送用情報を基に該パケットの出力経路を決定する。
【0031】
[ルータの構成]
次に、ルータ20Iについて説明する。図3は、図1に示すルータ20Iの構成の一例を模式的に示す図である。なお、ルータ20Eもルータ20Iと同様の構成を有する。
【0032】
図3に示すルータ20Iは、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、CPU(Central Processing Unit)等を含むコンピュータ等に所定のプログラムが読み込まれて、CPUが所定のプログラムを実行することで実現される。ルータ20Iは、通信部21、パス選択部22(選択部)、検索部23、経路検知部24(検知部)、トラヒック流量計算部25(計算部)及びフロー割り当て部26(割り当て部)を有する。
【0033】
通信部21は、無線または有線にて他の装置との間で通信を行う。通信部51は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。
【0034】
パス選択部22は、オーバレイネットワークにおけるパスの経路検索のために、オーバレイネットワークの複数の分散候補パスのうち、経路の検索対象となる検索用パスを選択し、選択した検索用パスを経由する検索用パケットを送信する。パス選択部22は、統合ネットワーク内フローのパケットヘッダを基にオーバレイ区間の始点-終点ペアの間に設定しうる複数のオーバレイパスの中から、経路検索対象の検索用パスを選択する。
【0035】
図4は、検索用パスの選択を説明する図である。図5は、VXLANフォーマットを説明する図である。図6は、検索用パスの経路検索を説明する図である。図4に示すネットワーク構成の場合、ルータ20Iからルータ20Eまでの分候補パスとして、パスP1,P2,P3がある。パス選択部22は、パスP1,P2,P3のうち、まず、検索対象のパスである検索用パスとしてパスP1を選択する。なお、パス選択部22は、検索用パスを選択する場合、総当たりで選択するほか、予め指定した回数だけランダムにUDP source port IDの番号を選出してもよい。UDP source port IDは、0から2^32(=65536)の値をとることができる。
【0036】
パス選択部22は、検索用パスを経由する検索用パケットに、パスP1と同じ5-tupleを入力する。パス選択部22は、検索用パスに対する検索用パケットをUDPトンネル用にカプセル化する。この際、パス選択部22は、ヘッダ内のUDP source port IDを変更する。具体的には、パス選択部22は、UDPヘッダのUDP source port IDにパス識別子を入れる(図5の(1))。
【0037】
例えば、UDP source port ID=1のパス(Port1のパス)の経路が、ルータ20I,30a,30b,20Eの経路である。このパスP1を検索する場合、パス選択部22は、ヘッダ内のUDP source port IDを「1」に変えたパスを検索用パケットとする。なお、パス選択部22は、IPアドレス(src/dst)、UDP destination port ID、プロトコルIDは、変更しない。
【0038】
パス選択部22は、検索用パケットを転送する。例えば、検索用パケットの通過経路は、ルータ20I,30a,30b,20Eを経由して、同経路でルータ20Iに戻るパスP1´である。経路途中のアンダーレイネットワークのルータ30a,30bは、検索用パケットを転送する際、検索用パケットにルータ30a,30b自身のIPアドレスを記載する。
【0039】
パス選択部22は、戻ってきた検索用パケットを受信し、検索用パケットに記載されたIPアドレスを基に、この検索用パケットが通過した経路をパステーブル(不図示)に書き込む。パス選択部22は、この検索用パケットの送信、受信及びパステーブルへの経路の書き込みを、他の分散候補パス、例えば、ルータ20I,30c,30d,20Eを経由するパスP2についても実行する。
【0040】
検索部23は、戻ってきた検索用パケットに記載されたIPアドレスを基に、検索用パスのアンダーレイネットワークにおける装置及びリンクを検索する。検索部23は、パステーブルを参照し、検索対象の分散候補パスごとに、分散候補パスのアンダーレイネットワークにおける通過装置及びリンクを検索する。
【0041】
経路検知部24は、検索部23による複数の検索用パスに対する検索結果を基に、分散候補パスがそれぞれアンダーレイネットワークのどのルータを経由するかといったパスの経路、すなわち、オーバレイネットワークの複数の分散候補パスの経路を検知する。経路検知部24は、始点及び終点が同じオーバレイパスであって、一部或いは全ての経路において、通過するパケット転送装置とリンクとが異なるオーバレイパス群を検知する。始点及び終点が同じオーバレイパスは、複数の経路へと分散してパケットを転送する対象となる。
【0042】
通信システム100では、オーバレイパスがVXLANであり、通過するパケット転送装置とリンクとが異なるオーバレイパス群を検知するときの検知対象のパスは、オーバレイパスのヘッダのうち、UDPヘッダのUDP source port IDを変更した時に生じるパスとなる。経路検知部24は、通過するパケット転送装置とリンクとが異なるオーバレイパス群を検知する場合の検知対象のパスとして、オーバレイパスのヘッダのうち、UDPヘッダのUDP source port IDを変更した場合に生じるパスを解析する。
【0043】
なお、図7に示すように、経路検知部24は、例えば、パスP1(UDP source port ID 1)と同一経路を通過するパスP3(ルータ20I,30a,30b,20Eを通過する経路)(UDP source port ID 3)が見つかった場合、パスP3の登録を保留、或いは、分散候補パスからパスP3を除外してもよい。
【0044】
経路検知部24は、検索部23による検索結果を基に、分散候補パスがアンダーレイネットワークのそれぞれどのルータを経由するかといったパスの経路、すなわち、オーバレイネットワークの複数の分散候補パスの経路を検知する。経路検知部24は、複数の経路に対し、それぞれ通過する経路を計算し、各経路を比較することで、複数の経路が通過する同一リンクを検知することや、複数の経路のうち、同一リンクを通過する経路の個数をカウントする。
【0045】
トラヒック流量計算部25は、分散候補パスの経路に対する検知結果を基に、各分散候補パスを通過する分散候補パスのトラヒック流量を計算する。トラヒック流量計算部25は、通過装置及びリンクの検索結果を集約し、経路検知部24によって検知されたオーバレイパス群に対し、各オーバレイパスを通過するトラヒック流量を変化させた場合のアンダーレイネットワーク内リンクのトラヒック流量を、通過リンクごとに集計する。トラヒック流量計算部25は、リンク帯域の上限を制約条件として、各リンクの通過トラヒック流量を計算する。
【0046】
図8は、トラヒック流量の計算を説明する図である。図4に示すネットワークに対し、トラヒック流量計算部25は、例えば、線形計画法を用いて、各リンクの通過トラヒック量を計算する(図8参照)。トラヒック流量計算部25は、例えば、UDP source port IDが1のパスのトラヒック流量が5Gbpsであることを計算する。
【0047】
フロー割り当て部26は、サブネットフローを分散候補パスに割り当てる。フロー割り当て部26は、オーバレイパス用に割り当て可能なリンク帯域を、リンクを通過するバックグラウンドトラヒック量を基に計算し、計算結果に合致するようオーバレイパスに通過させる統合ネットワーク内フローを割り当てる。フロー割り当て部26は、所定のルールを用いて、割り当てたフローのトラヒック総量が割当先の候補パスのトラヒック流量を下回るように、サブネット内フローを候補パスに割り当てる。
【0048】
図9は、フローの割り当てを説明する図である。例えば、パスP2,P4は、一部でリンクを共有しているので、フロー割り当て部26は、トラヒック量を半々に割り当てる(図9の(1))。また、パスP1は、バックグラウンドトラヒックが大きいため、フロー割り当て部26は、割り当てるトラヒック量を他のパスよりも少なくする(図9の(2))。また、フロー割り当て部26は、ネットワークの負荷を最小限にするために、ナップサック問題やビンパッキング問題などの組み合わせ問題を解くアルゴリズムを使用して、サブネット内トラヒックフローを割り当ててもよい。
【0049】
[通信処理の処理手順]
次に、通信システム100における通信処理の処理手順について説明する。図10は、実施の形態に係る通信処理の処理手順を示すシーケンス図である。
【0050】
図10に示すように、通信システム100では、ルータ20Iが、オーバレイネットワークの複数の分散候補パスのうち、経路検索対象の検索用パスを選択する(ステップS1)。ルータ20Iは、検索用パスに対する検索用パケットを、UDPパケットにカプセル化し(ステップS2)、UDPヘッダのUDP source port IDにパス識別子を入れる。ルータ20Iは、検索用パケットを転送する(ステップS3)。
【0051】
経路途中のアンダーレイネットワークのルータ30a,30bは、検索用パケットを転送する際、検索用パケットにルータ30a,30b自身のIPアドレスを記載する(ステップS4~ステップS7)。ルータ20Eは、検索用パケットを受信すると、検索用パケットをルータ20I宛てに送信する(ステップS8)。
【0052】
ルータ30a,30bは、検索用パケットを転送する際、検索用パケットにルータ30a,30b自身のIPアドレスを記載する(ステップS9~ステップS12)。ルータ20Iは、戻ってきた検索用パケットを受信し、検索用パケットに記載されたIPアドレスを基に、この検索用パケットが通過した経路をパステーブルに書き込む(ステップS13)。ルータ20Iは、他の検索用パスについても、UDPパケットへカプセル化後、転送し、戻ってきた検索用パスを受信し、パステーブルの経路の書き込みを行う。
【0053】
ルータ20Iは、パステーブルを参照し、指定した分散候補パスごとに、分散候補パスのアンダーレイネットワークにおける通過装置やリンクを検索する(ステップS14)。そして、ルータ20Iは、検索部23による検索結果を基に、オーバレイネットワークの複数の分散候補パスの経路を検知する(ステップS15)。
【0054】
続いて、ルータ20Iは、各分散候補パスを通過する分散候補パスのトラヒック流量を計算し(ステップS16)、サブネットフローを分散候補パスに割り当てる(ステップS17)。
【0055】
[実施の形態の効果]
このように、実施の形態では、アンダーレイネットワークとその他のネットワークの境界に位置するパケット転送装置(例えば、ルータ)がオーバレイネットワークの分散候補パスに対して検索用パケットを送信し、途中で経過するアンダーレイネットワークのルータがルータ自身のIPアドレスを検索用パケットに記載する。
【0056】
実施の形態では、この検索用パケットを基に、分散候補パスがそれぞれアンダーレイネットワークのどのルータを経由するかといったパスの経路、すなわち、オーバレイネットワークの複数の分散候補パスの経路を検知することを可能とする。したがって、実施の形態では、検知したオーバレイネットワークの各分散候補パスの経路を比較することで、各経路が通過する同一リンクの有無及び個数をカウントすることが可能になる。
【0057】
そして、実施の形態では、検知したオーバレイネットワークの複数の分散候補パスの経路を基に、分散候補パスが共有するリンクの帯域、及び、各リンクのバックグラウンドトラヒックから、それぞれの分散候補パスに対してトラヒックフローを割り当てる。これにより、振り分けた先のリンクの状態を考慮した分散候補パスへのフローの割当てが可能となるため、効率的な負荷分散が可能となる。
【0058】
[変形例1]
実施の形態では、ルータ20Iが、検索用のパスを選択して、検索用パスの送受信を基に、経路検知、トラヒック流量計算及びフロー割り当てを行う場合を例に説明したが、これに限らない。図11は、実施の形態に係る通信システムの構成の他の例を模式的に示す図である。
【0059】
図11に示す通信システム100Aのように、ルータ20I´,20E´は、検索用パスの送受信のみを行い、コントローラ40が、検索用のパスの選択し、ルータ20I´によって受信された検索用パスを基に、経路検知、トラヒック流量計算及びフロー割り当てを行ってもよい。
【0060】
コントローラ40は、無線または有線にて他の装置との間で通信を行う通信部41、パス選択部22、検索部23、経路検知部24、トラヒック流量計算部25及びフロー割り当て部26を有する。
【0061】
コントローラ40は、検索用パスを選択すると、UDPヘッダのUDP source port IDにパス識別子を入れた、この検索用パスに対する検索用パケットの送信をルータ20I´に指示する。ルータ20I´は、戻ってきた検索用パケットをコントローラに送信する。コントローラ40は、ルータ20I´から受信した検索用パケットを基に、分散候補パスのアンダーレイネットワークにおける通過装置やリンクを検索し、複数の分散候補パスの経路を検知する。コントローラ40は、分散候補パスの経路に対する検知結果を基に、トラヒック流量計算及びフロー割り当てを行う。
【0062】
[変形例2]
図12及び図13は、実施の形態の変形例2を説明する図である。実施の形態は、VXLAN以外のオーバレイ技術、例えば、Label(ラベル)をパケットに付加するMPLS(Multi-Protocol Label Switching)にも適用することが可能である。
【0063】
図12に示すように、MPLSの場合、ルータ20Iは、MPLSヘッダのラベルにパス識別子(初期値)を入れる(図12の(1))。このため、MPLSの場合、通過するパケット転送装置とリンクとが異なるオーバレイパス群を検知するときの検知対象のパスは、MPLSヘッダのラベルうちラベルの値を変更した場合に生じるパスとなる。
【0064】
なお、図13に示すように、MPLSの場合、ラベルの値は各ルータで書き換わる。例えば、MPLSの場合、以下のように、ラベルの値は各ルータで書き換わる。ルータ20Iにおいてラベルに入れられた34(初期ラベル値)が、ルータ30aでは34から45に書き換わり、ルータ30bでは45から23に書き換わるため、23のラベルの値でルータ20Eに到着する。このため、MPLSに適用する場合には、ルータ20Iがパスの初期ラベルと通過ルータをマップするためにオーバレイトンネルの検索用パケットに初期ラベル値を記録するフィールドが必要である。
【0065】
[変形例3]
また、実施の形態は、トンネリングプロトコルの一つであるGRE(Generic Routing Encapsulation)にも適用することが可能である。図14は、実施の形態の変形例3を説明する図である。
【0066】
図14に示すように、GREの場合、ルータ20Iは、GREヘッダのKeyフィールドにパス識別子を入れる(図14の(1))。なお、GREの場合、MPLSと異なり挿入したパス識別子の値は不変である。このため、GREの場合、通過するパケット転送装置とリンクとが異なるオーバレイパス群を検知するときの検知対象のパスは、オーバレイパスのヘッダのうち、GREヘッダのKeyフィールドベルのパス識別子を変更した場合に生じるパスとなる。
【0067】
[実施の形態のシステム構成について]
ルータ20I及びコントローラ40の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、ルータ20I及びコントローラ40の機能の分散及び統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
【0068】
また、ルータ20I及びコントローラ40においておこなわれる各処理は、全部または任意の一部が、CPU、GPU(Graphics Processing Unit)、及び、CPU、GPUにより解析実行されるプログラムにて実現されてもよい。また、ルータ20I及びコントローラ40においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
【0069】
また、実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述及び図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
【0070】
[プログラム]
図15は、プログラムが実行されることにより、ルータ20I及びコントローラ40が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0071】
メモリ1010は、ROM1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0072】
ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、ルータ20I及びコントローラ40の各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、ルータ20I及びコントローラ40における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0073】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0074】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0075】
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【0076】
100,100A 通信システム
10,10-1,10-2,11,11-1,11-2 サーバ
20I,20I´,20E,20E´,30,30a,30b,30c,30d ルータ
21,41 通信部
22 パス選択部
23 検索部
24 経路検知部
25 トラヒック流量計算部
26 フロー割り当て部
40 コントローラ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19