JP6402078B2 - ネットワークシステムおよびパケット転送方法 - Google Patents

ネットワークシステムおよびパケット転送方法 Download PDF

Info

Publication number
JP6402078B2
JP6402078B2 JP2015150249A JP2015150249A JP6402078B2 JP 6402078 B2 JP6402078 B2 JP 6402078B2 JP 2015150249 A JP2015150249 A JP 2015150249A JP 2015150249 A JP2015150249 A JP 2015150249A JP 6402078 B2 JP6402078 B2 JP 6402078B2
Authority
JP
Japan
Prior art keywords
vtep
network
termination point
tunnel
router
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
JP2015150249A
Other languages
English (en)
Other versions
JP2017034365A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015150249A priority Critical patent/JP6402078B2/ja
Publication of JP2017034365A publication Critical patent/JP2017034365A/ja
Application granted granted Critical
Publication of JP6402078B2 publication Critical patent/JP6402078B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ネットワークシステムおよびパケット転送方法に関する。
従来のネットワーク制御は、主にIP(Internet Protocol)アドレスのルーチングによって行われている。品質の確保やネットワークの利用率向上のため、フロー制御ネットワークが提案されている。フロー制御ネットワークは、パケットを送受信するフロースイッチと、フロースイッチを制御する制御サーバとを備える。フロースイッチは、制御サーバにより与えられたフローエントリを保持するフローテーブルを備える。フローエントリには受信したパケットの種別を識別するための入力物理ポート、L2(レイヤ2:データリンク層)、L3(レイヤ3:ネットワーク層)およびL4(レイヤ4:トランスポート層)の情報と、当該種別のパケットに対する処理(アクション)が記述される。ここでの処理は、例えば、当該種別のパケットを指定の物理ポートから送信することや、当該種別のパケットにVLAN(Virtual Local Area Network)タグを付与することや、宛先MAC(Media Access Control)アドレスを変更すること等である。このフロー制御ネットワークは、MACアドレスやIPアドレス、ポート番号等の組み合わせによって定義されるフロー単位での経路制御を実現するネットワークである。このようなフロー制御ネットワークの例として、OpenFlowネットワークが挙げられる(非特許文献1参照)。このOpenFlowネットワークにおいて、フロースイッチにはOpenFlowスイッチ、制御サーバにはコントローラが用いられる。
近年、特に広域ネットワーク(以下、適宜NWという)において多様なNWサービスを動的に利用するため、NFV(Network Function Virtualization)によるNWサービスの仮想化が検討されている。NFVでは、イーサネット(登録商標)転送のみのL2NW(レイヤ2ネットワーク)でユーザ・サービス間を接続する必要のあるサービスも存在することが知られている。
一方、大規模な広域NWは、スケール性や耐障害性の観点からIPルーチングを用いたL3NW(レイヤ3ネットワーク)で構築されることが多い。そこで、NFVにおいて、L3NW上に仮想的なL2トンネルを構築することでL2転送を実現するNVO3(Network Virtualization Over L3)が検討されている(非特許文献2参照)。
NVO3としては、VXLAN(Virtual eXtensible Local Area Network)(非特許文献3参照)やNVGRE(Network Virtualization Generic Routing Encapsulation)をはじめとした様々な技術が検討されている(非特許文献4参照)。
VXLANは、「VXLAN Network Identifier(VNI)」と呼ばれる24ビットのVXLAN IDを活用して、L2の通信をL3でトンネリングすることで、L3経由でL2の通信(ブロードキャストドメイン)を延長する。VXLANでは、ハイパーバイザの仮想スイッチあるいは物理サーバ単位でVTEP(Virtual Tunnel End Point:トンネル終端ポイント)を設置する。VTEPは、物理L3NWとL2NWの接続点に実装される。VTEPが各仮想マシンのMACアドレスと、その仮想マシンのVNIの対応関係をテーブルで管理する。
NVO3では、トンネル端点にあたるルータ(VTEP)で宛先解決が必要である。VXLANでは、宛先解決方法として、(1)宛先不明トラヒックは一度全ての端点ルータにフラッディングし、D-Planeで学習する方法と、(2)あらかじめC-Planeで学習する方法とがある(E−VPN)(非特許文献5参照)。
図8は、NVO3に係るネットワークシステムの構成を示す図である。
図8(a)に示すように、NVO3に係るネットワークシステムは、ユーザ端末1,1が、ルータ2,2,2(ここではルータ2)を介して中継NWであるL3 広域NW3に接続されている。L3 広域NW3には、ルータ4,4,4を介してサービスを提供するサーバ5〜5が接続されている。ユーザ端末1,1は、ルータ2、L3 広域NW3、およびルータ4を経由してサーバ5〜5からアプリケーションなどの各種サービスA〜Fの提供を受ける。なお、ルータ2,2,2を総称する場合は、ルータ2と呼び、ルータ4,4,4を総称する場合は、ルータ4と呼び、サーバ5〜5を総称する場合は、サーバ5と呼ぶ。ユーザ端末1,1を特に区別しない場合にはユーザ端末1と表記する。
ユーザ端末1は、L3 広域NW3を介して、サーバ5に対して、各種サービスA〜Fの提供要求を送信し、サーバ5から情報を取得する一般的なL2サービス提供端末である。ユーザ端末1は、例えば、一般的なパーソナルコンピュータや携帯情報端末等から構成される。
なお、本明細書中において、サービスとは、各種転送機能を有するアプリケーション(アプリ)、または、アプリにより提供されるサービスをいう。
ルータ2は、例えばマルチキャスト配信中に最終マルチキャストポイントとなるエンドルータである。
L3 広域NW3は、L3NWである。
サーバ5は、各種サービスA〜Fを提供する配信サーバである。
NVO3に係るネットワークシステムの転送について説明する。
例えば、ある仮想マシンが、VXLAN経由で別のサーバ上の仮想マシンと同じセグメントに属していて、これに対するL2の通信を開始すると、VTEPは送信先のMACアドレスがローカルにないと判断したうえで、送信元のVTEPはそのMACフレームの前に適切な仮想L2トンネル識別子(以下、トンネル識別子という)VNI(送信元仮想マシンの属するVXLANセグメントのID)を付加する。VTEPは、さらに自分のIPアドレスとMACアドレスを付け、送信先VTEPのIPアドレスに通信を開始する。送信先のVTEPは、トンネル識別子VNIを見て確認した後、送信元のVTEPが付けた情報をすべて削除し、送信先の仮想マシンに対してこのMACフレームを送る。
転送を行う前に、任意のMACアドレスを持つユーザ・サービスがどのVTEPの先に存在するかを解決しなくてはならない。その方法として、NVO3では、以下の2方式のMAC取得方法が提案されている。
(1)あらかじめ設定したVTEPすべてに転送する方法。
例えば、ユーザ端末1は、サービスFを提供するサーバ5に接続しようとする。この場合、VTEPはその返信パケットを見てMACアドレスを学習し、図8(b)に示すようなテーブルを学習する。図8(b)は、VTEPが管理する各仮想マシンのMACアドレスと、その仮想マシンのトンネル識別子VNIの対応関係を示すテーブルである。
図8(b)の例では、ユーザ端末1が接続されるルータ2は、該当サービスFを提供するサーバ5のMACアドレス(L2(MAC))とルータ4のIPアドレス(L3(RemoteVTEP))のテーブルを学習する。
(2)VTEPに直接接続されたMACアドレスをあらかじめE-VPNなどのコントロールプレーンで広告する方法。
広告されたVTEPは、図8(b)に示すようなテーブルを学習する。
次に、図8(a)を参照して転送の流れを説明する。
はじめに、ユーザ端末1がサービスFを利用する際、ユーザ端末1はサービスFのMACアドレス宛パケットを送出する。そして、発側VTEPであるルータ2は、図8(b)に示すようなテーブルを保持するため、VXLAN・GRE(Generic Routing Encapsulation)ヘッダなど各NVO3で規定されたヘッダによりカプセリングし、ルータ4宛に転送する。着側VTEPであるルータ4では、そのヘッダをデカプセリングしてサービスFのMACアドレス宛にパケットを転送する。この一連の動作により、ユーザ・サービスから見るとL2転送が行われたように見せることができる。
図9は、図8のカプセリング後のフレームフォーマットを示す図である。図9は、VXLANを例にして示す。
図9に示すように、図8のカプセリング後のフレームフォーマット10は、Outer Dst. MAC、Outer Src. MAC、Outer Dst. IP(router 2)、Outer Src. IP(ルータ2)、Outer Src. UDP、Outer Dst. UDP(VXLANport)およびVXLAN ID(id=1)からなるVXLANフレーム11と、Inner Dst. MAC(サービスA)、Inner Src. MAC(ユーザ(11))およびPayloadからなるオリジナルフレーム12と、から構成される。
VTEP以外のL3網(広域NW)では、図9に示すヘッダ(VXLANフレーム11部分)のみを見て転送する。このため、単純なL3転送(IP転送)を行うのみでよい。
図10は、NVO3に係るネットワークシステムおよびDCの構成を示す図である。
図10に示すように、サービス機能が搭載されたサーバ5は、DC(Data Center)20に収容される。DC20は、DC20内に構築されたL3 DC NW21を介して広域NW3と接続される。図10の例では、DC20内のルータ4,4を着側VTEP(対向VTEPともいう)とし、ルータ4(着側VTEP)が、アプリケーションA機能(サービスA)を有するサーバ5に接続される。サーバ5は、現用系であり稼働中であるものとする。また、ルータ4(着側VTEP)およびサーバ5は、予備系である。
ルータ2(発側VTEP)は、ルータ4(着側VTEP)宛のカプセリングを行う。具体的には、ルータ2(発側VTEP)は、MACフレームの前に適切なトンネル識別子VNI(送信元仮想マシンの属するVXLANセグメントのID)と自分および対向ルータのIPアドレスとMACアドレスを付け、ルータ4(着側VTEP)のIPアドレスに通信を開始する。ルータ4(着側VTEP)は、トンネル識別子VNIを見て確認した後、ルータ2(発側VTEP)が付けた情報をすべて削除し、送信先のサーバ5に対してこのMACフレームを送る(図10の破線矢印参照)。
また、DC20では、物理サーバ(物理マシン)が仮想マシン化されている。仮想マシン化の利点として、異なる物理サーバ間で仮想マシンVMを移動させるマイグレーション(Migration)の技術により、ポータビリティを確保し、柔軟な運用が行える点が挙げられる。上記マイグレーションを実現するには、仮想マシンVMの切り替えの際に、仮想マシンVMへアクセスするためのネットワークの情報(VLAN(Virtual Local Area Network)情報、ルーチング情報)も追随して切り替える必要がある。
図10に示すように、DC20では、現用系のサーバ5を予備系のサーバ5にマイグレーションした場合、ルータ4(着側VTEP)は、発側VTEP(図10ではルータ2)に対してMACテーブルを更新する指示を出す。そして、ルータ2(発側VTEP)は、MACフレームの前に適切なトンネル識別子VNIと自分のIPアドレスとMACアドレスを付け、ルータ4(着側VTEP)のIPアドレスに通信を開始する。ルータ4(着側VTEP)は、トンネル識別子VNIを見て確認した後、ルータ2(発側VTEP)が付けた情報をすべて削除し、送信先のサーバ5に対してこのMACフレームを送る(図10の実線矢印参照)。
OpenFlow、[online]、[平成27年7月1日検索]、インターネット、<URL: https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-switch-v1.3.4.pdf> NVO3, IETF RFC7365、[online]、[平成27年7月1日検索]、インターネット、<URL: https://www.tools.ietf.org/html/rfc7365> VXLAN, IETF RFC7348、[online]、[平成27年7月1日検索]、インターネット、<URL: http://www.tools.ietf.org/html/rfc7348> NVGRE, IETF Draft、[online]、[平成27年7月1日検索]、インターネット、<URL: https://www.tools.ietf.org/html/draft-sridharan-virtualization-nvgre-07> E-VPN, IETF Draft、[online]、[平成27年7月1日検索]、インターネット、<URL: https://www.tools.ietf.org/html/draft-boutros-l2vpn-VXLAN-evpn-04>
しかしながら、従来技術では、DC20内の仮想マシンVMのマイグレーション時、その設定がWAN(図10では広域NW3およびルータ2)に波及してしまい、経路切替の時間がかかるという問題がある。
図10を参照してより詳細に説明する。
DC20内で障害が発生した場合、現用系のサーバ5を予備系のサーバ5にマイグレーションする必要がある。特に、仮想L2トンネル利用時にDC20内で障害が発生した場合、発側VTEP(図10ではルータ2)で予備系への経路切り替えのために多くの時間を要する。すなわち、この切り替えのためには、ルータ4(着側VTEP)は、発側VTEP(図10ではルータ2)に対してMACテーブルを更新するような指示を出さなくてはならない。
例えば、上記(1)のMAC取得方法の場合、サービスAのサーバ5側からDC20外の全VTEPに向かってパケットを送出し、全VTEPは受け取ったパケットによって学習する。
また、上記(2)のMAC取得方法の場合、DC20外の全VTEPに対しコントロールプレーンでMACアドレスを広告し、全VTEPは受け取った結果によって学習する。
いずれの場合もDC20側障害を受けて広域NW3(L3)側の全VTEPに通知しなくてはならない。図10の符号aに示すように、この切り替えのためには、ルータ4(着側VTEP)は、全ての発側VTEP(図10ではルータ4)に対してARP(E-VPN)で即座に通知が必要である。図10の符号bに示すように、広域NW3(L3)側のVTEP数が多い場合は、NWへの負荷が大きいため、切り替えに時間を要する。
このように、従来技術では、サーバ5を収容するDC20と広域NWが同一L2NWになってしまうため、耐障害性や運用性の観点で問題があった。
このような背景を鑑みて本発明がなされたのであり、本発明は、耐障害性や運用性を向上させるネットワークシステムおよびパケット転送方法を提供することを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、L3(レイヤ3)ネットワーク上に仮想L2(レイヤ2)トンネルを構築して、前記L3ネットワーク上に接続されるL2サービス提供端末と前記L3ネットワークに接続されたDC(Data Center)内のDCネットワークに接続される端末との間でパケットを送受信するネットワークシステムであって、前記L3ネットワークと前記L2サービス提供端末のL2ネットワークの接続点に実装された発側トンネル終端ポイントと、前記DC内の前記端末と前記DCネットワークの接続点に実装された着側トンネル終端ポイントと、前記L3ネットワークに接続されたOpenFlowスイッチと、を備え、前記OpenFlowスイッチは、前記着側トンネル終端ポイントに対応する予備系着側トンネル終端ポイントを記憶する記憶部と、前記着側トンネル終端ポイントの故障時、あらかじめ設定した規則に従って、故障した前記着側トンネル終端ポイントを、対応する前記予備系着側トンネル終端ポイントに書き換えて転送する処理部と、を備え、前記予備系着側トンネル終端ポイントは、対応する前記着側トンネル終端ポイントが有していた前記発側トンネル終端ポイント宛てにトラヒックを疎通し、前記トラヒックが疎通した前記発側トンネル終端ポイントは、前記予備系着側トンネル終端ポイントを仮想L2トンネルの宛先としてパケットをカプセリングし、前記発側トンネル終端ポイントは、前記故障時以外は前記OpenFlowスイッチへトラヒックを流入させないことを特徴とする。
また、請求項に記載の発明は、L3(レイヤ3)ネットワーク上に仮想L2(レイヤ2)トンネルを構築して、前記L3ネットワーク上に接続されるL2サービス提供端末と前記L3ネットワークに接続されたDC(Data Center)内のDCネットワークに接続される端末との間でパケットを送受信するネットワークシステムのパケット転送方法であって、前記L3ネットワークと前記L2サービス提供端末のL2ネットワークの接続点に実装された発側トンネル終端ポイントと、前記DC内の前記端末と前記DCネットワークの接続点に実装された着側トンネル終端ポイントと、前記L3ネットワークに接続されたOpenFlowスイッチと、を備え、前記OpenFlowスイッチにおいて、前記着側トンネル終端ポイントに対応する予備系着側トンネル終端ポイントを記憶する記憶工程と、前記着側トンネル終端ポイントの故障時、あらかじめ設定した規則に従って、故障した前記着側トンネル終端ポイントを、対応する前記予備系着側トンネル終端ポイントに書き換えて転送する処理工程と、を有し、前記予備系着側トンネル終端ポイントにおいて、対応する前記着側トンネル終端ポイントが有していた前記発側トンネル終端ポイント宛てにトラヒックを疎通し、当該トラヒックが疎通した前記発側トンネル終端ポイントにおいて、前記予備系着側トンネル終端ポイントを仮想L2トンネルの宛先としてパケットをカプセリングし、前記発側トンネル終端ポイントにおいて、前記故障時以外は前記OpenFlowスイッチへトラヒックを流入させないことを特徴とする。
このようにすることで、トラヒックデータそのものだけで切替可能であるため、切替が高速である。例えば、OpenFlowスイッチは、VTEP故障時に最初の数パケットのみ処理する。このため、NFV環境においてサーバ障害時の切り替え時間が短縮される。また、DC故障に対してその影響が広域NWまで波及しない。これにより、耐障害性や運用性を向上させることができる。
また、正常時は、トラヒックがOpenFlowスイッチに流入しないので、OpenFlowスイッチは中継動作に関与せず、通常のVXLAN環境そのものとすることができる。
また、請求項2に記載の発明は、前記着側トンネル終端ポイントと前記予備系着側トンネル終端ポイントと前記OpenFlowスイッチとが、ルーチングの優先度をあらかじめ経路広告し、前記OpenFlowスイッチの優先度は、前記着側トンネル終端ポイントの優先度および前記予備系着側トンネル終端ポイントの優先度よりも、優先度が低いことを特徴とする。
このようにすることで、VTEP故障時に限り、優先度の低いOpenFlowスイッチに一時的にルーチングさせることができ、VTEP故障時以外はOpenFlowスイッチへトラヒックを流入させないようにすることができる。
また、請求項3に記載の発明は、前記発側トンネル終端ポイントが、前記側トンネル終端ポイントからの経路広告がない場合を当該側トンネル終端ポイントの故障と判定し、当該故障時に前記OpenFlowスイッチ宛てに転送を行うことを特徴とする。
このようにすることで、VTEP故障を直ちに判定することができる。
本発明によれば、耐障害性や運用性を向上させるネットワークシステムおよびパケット転送方法を提供することができる。
本発明の実施形態に係るネットワークシステムの構成を示す図である。 本発明の実施形態に係るネットワークシステムの正常時のトラヒックフローを説明する図である。 本発明の実施形態に係るネットワークシステムの正常時のVXLAN環境のフレームフォーマットを示す図である。 本発明の実施形態に係るネットワークシステムの故障切替え中のトラヒックフローを説明する図である。 本発明の実施形態に係るネットワークシステムの故障切替え中のVXLAN環境のフレームフォーマットを示す図である。 本発明の実施形態に係るネットワークシステムの故障切替え完了時のトラヒックフローを説明する図である。 本発明の実施形態に係るネットワークシステムの故障切替え完了時のVXLAN環境のフレームフォーマットを示す図である。 NVO3に係るネットワークシステムの構成を示す図である。 図8のカプセリング後のフレームフォーマットを示す図である。 NVO3に係るネットワークシステムおよびDCの構成を示す図である。
以下、図面を参照して本発明を実施するための形態(以下、「本実施形態」という)におけるネットワークシステム等について説明する。
本実施形態は、大規模な物理ネットワーク上に仮想パスを生成する際、その中継区間における転送方法およびそれを実現するネットワークシステムに適用することができる。NFV環境において必要となるNVO3、すなわちL3NW上に仮想L2NWを構築する技術について説明する。
図1は、本発明の実施形態に係るネットワークシステムの構成を示す図である。図10と同一構成部分には、同一符号を付している。
図1に示すように、ネットワークシステム1000は、ユーザ端末1,1,1(L2サービス提供端末)が、ルータ2,2,2(発側VTEP20,20,20)を介してL3 広域NW3(L3ネットワーク)に接続され、DC100(DC#1)のルータ110,110,DC200(DC#2)のルータ210,210を介してL3 DC NW120,220に接続される。
DC100は、L3 広域NW3に接続されたルータ110,110と、L3 DC NW120と、L3 DC NW120に接続されたルータ130,130(着側VTEP131,131)と、サービスA機能を有するサーバ140,140と、を有する。
DC100内では、L3 DC NW120に接続されたルータ130,130(着側VTEP131,131)を介してサービスA機能を有するサーバ140,140に接続される。図1のサーバ140,140は、共にサービスAのための転送機能を有するものとし、サーバ140を現用系、サーバ140を予備系とする例である。
同様に、DC200は、L3 広域NW3に接続されたルータ210,210と、L3 DC NW220と、L3 DC NW220に接続されたルータ230,230(着側VTEP231,231)と、サービスB機能を有するサーバ240,240と、を有する。
DC200内では、L3 DC NW220に接続されたルータ230,230(着側VTEP231,231)を介してサービスB機能を有するサーバ240,240に接続される。図1のサーバ240,240は、共にサービスBのための転送機能を有するものとし、サーバ240を現用系、サーバ240を予備系とする例である。
ネットワークシステム1000は、ネットワーク全体に1または複数のOpenFlowスイッチ(OpenFlowSW)300を備える。本実施形態では、OpenFlowスイッチ300は、L3 広域NW3に接続され、全国で1または複数箇所に設置される。
なお、ルータ110,110を総称する場合は、ルータ110と呼び、ルータ130,130を総称する場合は、ルータ130と呼び、サーバ140,140を総称する場合は、サーバ140と呼ぶ。同様に、ルータ210,210を総称する場合は、ルータ210と呼び、ルータ230,230を総称する場合は、ルータ230と呼び、サーバ240,240を総称する場合は、サーバ240と呼ぶ。また、ユーザ端末1,1,1を特に区別しない場合にはユーザ端末1と表記し、ルータ2,2,2(発側VTEP)を特に区別しない場合にはルータ2と表記する。
<OpenFlowスイッチ>
OpenFlowスイッチ300は、L3 広域NW3(L3ネットワーク)に接続される。OpenFlowスイッチ300は、故障切替え中(後記)、一時的に、あらかじめ設定しておいたルール(規則)に従い、宛先IPを現用系着側VTEPから予備系着側VTEPに書き換える。OpenFlowスイッチ300は、VTEP故障時に最初の数パケットのみ処理する。なお、正常時およびVTEP故障時(障害時)の定義については、後記する。
OpenFlowスイッチ300は、OpenFlow対応ルータ310を備え、OpenFlow対応ルータ310は、OpenFlowコントローラ(OpenFlowCTL)320(処理部)、ルーチングエンジン321および予備VTEP対応表322(記憶部)を有する。
OpenFlowコントローラ320は、転送装置であるOpenFlowスイッチ300の振る舞いを一括して管理する。OpenFlowスイッチ300は、振る舞いを記述したフローテーブル(flow table)に基づいてデータの転送や破棄、宛先の書き換えなどを実行する。
特に、OpenFlowコントローラ320は、着側VTEPの故障時、あらかじめ設定した規則に従って、予備VTEP対応表322を参照して故障した着側VTEPを対応する予備系着側VTEPに書き換えて転送する。
ルーチングエンジン321は、OpenFlowを実現するとともに、既存のL2/L3ネットワークに対応可能なオープンソースのエンジンである。
予備VTEP対応表322は、宛先VTEPを現用系から予備系VTEPに書き換えるための対応表である。予備VTEP対応表322は、コントロール保持情報(図2の符号c参照)として、着側VTEPに対応する予備系着側VTEPを記憶する。
OpenFlowスイッチ300の実装例として、OpenFlowを用いて実現することができる。その際のエントリテーブルを以下に示す。
マッチ条件:宛先UDP(User Datagram Protocol)ポート:VXLANポート番号
宛先IPアドレス:故障VTEP(図1のVTEP131)のIPアド
レス
カプセリングID:L2トンネルの識別子
アクション条件:宛先IPアドレス:予備系VTEP(図1のVTEP131)のI
Pアドレス
出力ポート:予備系VTEP(図1のVTEP131)へ転送できるポ
ート
なお、OpenFlowは、パケットが来たときにフローエントリを参照して、参照したフローエントリに基づいて転送する。このフローエントリを、事前に格納しておいてもよいし、事前に記述されていない場合は、OpenFlowコントローラ320に問い合わせ(packetin)、packetin時にフローエントリを格納する態様のどちらでもよい。
<発側VTEP>
ネットワークシステム1000は、L3 広域NW3上に仮想L2トンネルを構築して、L3 広域NW3上に接続されるユーザ端末1と、L3 広域NW3に接続されたDC100内のL3 DC NW120に接続されるサーバ140およびDC200内のL3 DC NW220に接続されるサーバ240との間でパケットを送受信するものである。
ユーザ端末1は、例えば、一般的なパーソナルコンピュータや携帯情報端末等から構成されるL2サービス提供端末である。ユーザ端末1は、L2NWによりルータ2(発側VTEP)に接続される。
ルータ2(発側VTEP)は、L3 広域NW3とユーザ端末1のL2NWの接続点に実装される。ルータ2(発側VTEP)は、L3 広域NW3を介して、DC100内のサーバ140およびDC200内のサーバ240に対して、各種サービスA,Bの提供要求を送信し、サーバ140,240から情報を取得する。
<DC>
DC100,200は、それぞれルータ110,210を介してL3 広域NW3と接続される。DC100,200は、L3 DC NW120,220、ルータ130,230(着側VTEP)やサーバ140,240を大規模で効率的に収容する。DC100,200は、サーバやネットワーク機器などのIT(Information Technology)機器を設置、運用する施設・建物の総称であり、複数のルータ130,230(着側VTEP)を運用するものであればどのような名称でも構わない。
DC100,200内は、L3 DC NW120,220によりネットワークが構築され、ルータ130,230(着側VTEP)を介してサーバ140,240が接続される。
なお、DC100,200は、通常のゲートウェイ機能と、ファイアウォール機能とを備える。
<着側VTEP>
ルータ130,230(着側VTEP)は、DC100,200内のサーバ140,240とL3 DC NW120,220の接続点に実装される。
サーバ140は、サービスAを提供するサーバ、サーバ240は、サービスBを提供するサーバである。
上述したように、ルータ2(発側VTEP)が接続されるL3 広域NW3はL3NWであり、DC100,200内もL3NWである。このため、ユーザ端末1からDC100,200内のサーバ140,240までのL2接続を確保するL2 over L3接続が必要となる。本実施形態では、L2 over L3接続技術として、VXLANを例に採っているが、NVGRE(Network Virtualization using Generic Routing Encapsulation)等であってもよい。
以下、上述のように構成されたネットワークシステム1000のパケット転送方法について説明する。
正常時の動作(図2参照)、故障切替え中(故障直後)の動作(図4参照)、故障切替え完了時の動作(図6参照)の3つに分けて述べる。
正常時とは、ユーザ側VTEPへ定期的に経路広告がある場合をいう。
故障とは、ユーザ側VTEPへの経路広告がとまる(経路広告がこない)ことをいう。
故障切替え中とは、ユーザ側VTEPが優先度の低い(高コスト)経路広告のOpenFlowスイッチ300に一時的にルーチングし、OpenFlowスイッチ300があらかじめ設定しておいたルール(規則)に従い、宛先IPを宛先VTEPから予備系着側VTEPに書き換えるまでをいう。
故障切替え完了時とは、宛先IPが書き換えられた予備系着側VTEPが、ユーザ側VTEPにトラヒックを一回返して、トラヒック疎通した時点をいう。故障切替え完了時は、故障から一定期間が経った後の動作となる。
[正常時の動作]
図2は、ネットワークシステム1000の正常時(通常時)のトラヒックフローを説明する図である。
図2の白抜きに斜線の矢印(⇒(矢印))は、正常時の経路広告を示し、図2の矢印(→(矢印))は、正常時のトラヒックフローを示し、図2の丸印(○(丸印))で囲んだ数値(xx(数値))は、ルーチングコストである優先度イメージをそれぞれ示している。なお、後記図4および図6についても、上記記号は同じ表記で用いる。
各ルータ2,110,110,130,130は、正常時(通常時)、VTEP保持のためのMACテーブル(図1の符号a,b,d参照)を有する。具体的には、ルータ2の発側VTEP20は、図1の符号aに示すMACテーブル(MAC:サービスA RemoteVTEP:VTEP131)を保持する。DC100のルータ130の着側VTEP131は、図1の符号bに示すMACテーブル(MAC:サービスA RemoteVTEP:VTEP20)を保持する。DC100のルータ130の着側VTEP131は、図1の符号dに示すMACテーブル(MAC:−(無し) RemoteVTEP:−(無し))を保持する。
また、OpenFlowスイッチ300は、正常時、故障切替え中、故障切替え完了時のいずれかにかかわらずOpenFlowコントローラ320が予備VTEP対応表322にコントロール保持情報(VTEP(0系):VTEP131 VTEP(1系):VTEP131)(図1の符号c参照)を記憶する。
<正常時:フレームフォーマット>
図3は、ネットワークシステム1000の正常時のVXLAN環境のフレームフォーマットを示す図である。図3は、ルータ2(発側VTEP)がDC100宛のカプセリング動作によってVXLANカプセリングを行った場合のフレームフォーマットを示す。キャリア網(L3 広域NW3)−DC網(L3 DC NW130)間のL2延伸は、トンネルの宛先をDC100のルータ130とする。図3は、正常時のVTEP20からVTEP131間のフレームフォーマットを示す。
図3に示すように、図1のカプセリング後のフレームフォーマット400は、Outer MAC、Outer IP(Dst:VTEP1311)、UDP(Dst:4789)、およびVXLAN ID(VNI:10000)からなるVXLANフレーム410と、Inner MAC(Dst:サービスA)およびPayloadからなるオリジナルフレーム420と、から構成される。図3の符号aに示すように、トンネルの宛先を「Outer IP(Dst:VTEP1311)」とする。これにより、ルータ2(発側VTEP20)は、ルータ2(着側VTEP131)宛のカプセリングを行う。
また、発側VTEPと着側VTEP(以下、発着VTEPという)にトンネル識別子VNIを付与する。具体的には、図2に示すように、ルータ2(発側VTEP20)とルータ130(着側VTEP131)にトンネル識別子(VNI)=10000を付与する。これにより、ルータ2(発側VTEP20)は、付与されたトンネル識別子VNIを参照するだけでどのVTEPに転送すればよいかを判別可能となる。
ルータ2(発側VTEP20)は、ルータ130(着側VTEP131)宛に仮想L2トンネルでカプセリングされたパケットを転送する。
ルータ130(着側VTEP131)は、処理部(図示省略)がトンネル識別子VNIを見て確認した後、ルータ2(発側VTEP20)が付けたVXLANフレーム410(図3参照)をすべて削除する。
<正常時:経路広告>
(1)着側VTEPから対向VTEP宛ての経路広告
図2の白抜きに斜線の矢印(⇒(矢印))に示すように、ルータ130,130(着側VTEP131,131)は、自身のVTEP131,131に直接接続されたMACアドレスをあらかじめE-VPNなどのコントロールプレーンを用いて経路広告する(図2の符号e−h参照)。図2の例では、ルータ130,130(着側VTEP131,131)は、ルータ110,110を経由してルータ2(発側VTEP20)に経路広告する。ネットワークシステム1000は、元々、コアNW(L3 広域NW3)とDC100とが冗長構成を採っているので、ルータ130(着側VTEP131)は、ルータ110のみならず、ルータ110を経由する経路についても経路広告を行う(図2の符号g,h参照)。同様に、ルータ130(着側VTEP131)は、ルータ110を経由する経路についても経路広告を行う(図2の符号e,f参照)。
ここで、対向VTEP宛ての経路広告には、優先度が設けられており、対向VTEP(この場合、着側VTEP131)は、優先度を基に、優先度の最も高い経路広告を学習する(後記)。なお、この優先度は、ルーチングコストと呼称される場合がある。
(2)OpenFlowスイッチ300から対向VTEP宛ての経路広告
OpenFlowスイッチ300は、優先度を高くして対向VTEP宛ての経路広告を行う(図2の符号i参照)。具体的には、OpenFlow対応ルータ310は、E-VPNなどのコントロールプレーンを用いて経路広告する。
<優先度>
ルータ130,130(着側VTEP131,131)は、対向VTEP宛ての経路広告の際、図2の丸印(○(丸印))で囲んだ数値(xx(数値))に示すような優先度を付与する。一方、OpenFlowスイッチ300は、あらかじめ、対向VTEP宛てに優先度を高くした経路広告を行う。
優先度は、対向VTEP宛ての経路広告に付与されるルーチングコストであり、どこに仮想L2トンネルをはればよいのかを決めるときに用いる。対向VTEPは、当該優先度を基に、最適なVTEP経路を決定することができる。優先度は、例えば、各経路広告に付された、数値10,20,30,…,100である。一例として、数値100を最も高コストと取り決めておけば、対向VTEPは、数値100のVTEP経路が、ルーチングの際に最もコストがかかる経路であると判別できるので、最後に選択されることになる。対向VTEPは、コストが小さい、すなわち優先度の数値が小さいVTEP経路から順に伝送に用いる。
図2の例では、ルータ130(着側VTEP131)から、ルータ110を経由してルータ2(発側VTEP20)に経路広告されたVTEP経路(図2の符号e,f参照)の優先度は「10」、ルータ130(着側VTEP131)から、ルータ110を経由してルータ2(発側VTEP20)に経路広告されたVTEP経路(図2の符号g,h参照)の優先度は「20」である。さらに、OpenFlowスイッチ300のOpenFlow対応ルータ310から、L3 広域NW3を経由してルータ2(発側VTEP20)に経路広告されたVTEP経路(図2の符号i参照)の優先度は「100」である。広告された対向VTEP(着側VTEP131)は、優先度の数値が小さいVTEP経路(優先度「10」のVTEP経路(図2の符号e,f参照))を用いる。経路広告がとまる故障時には、次に優先度の数値が小さいVTEP経路(優先度「20」のVTEP経路(図2の符号g,h参照))を用いる。したがって、故障時以外に、優先度の数値が最大「100」のOpenFlowスイッチ300からのVTEP経路(図2の符号i参照)が使用されることはない。
なお、優先度は、ルーチングコストを決定できるものであればよく、優先度が高い場合の数値を大きく、優先度が低い場合の数値を小さくするものでもよい。この場合、優先度の数値が大きいとルーチングコストが小さくなる。
<正常時:トラヒックフロー>
図2の正常時のトラヒックフローを参照して正常時(通常時)の転送の流れを説明する。
図2に示すように、ネットワークシステム1000は、正常時には、ルータ2(発側VTEP20)とルータ130(着側VTEP131)間でL2トンネル(トンネル識別子(VNI)=10000)を形成する。ルータ2(発側VTEP20)は、トンネル識別子VNIを参照してVTEP(ここでは着側VTEP131)に転送することになる。アンダーレイ(VXLANのL2トンネルに対比されるインフラ)では、VTEP131のIPアドレス宛の転送を行う必要がある。この経路制御は、従来技術の通常時と同様であり、静的・動的なルーチングによりルータ130へ転送を行うものである。
図2の例では、図2のトラヒックフロー(→(矢印)参照)に示すように、ユーザ端末1は、サービスAを提供するサーバ140に接続しようとする。この場合、ユーザ端末1が接続されるルータ2は、該当サービスAを提供するサーバ140のMACアドレス(L2(MAC))とルータ130のIPアドレス(L3(RemoteVTEP))のテーブルを学習する(図2符号a参照)。
図3(a)の符号aに示すように、トンネルの宛先を「Outer IP(Dst:VTEP1311)」とする。また、図2に示すように、発側VTEPと着側VTEP(以下、発着VTEPという)にトンネル識別子VNIを付与する。具体的には、図2に示すように、ルータ2(発側VTEP20)とルータ130(着側VTEP131)にトンネル識別子(VNI)=10000を付与する。これにより、ルータ2(発側VTEP20)は、ルータ130(着側VTEP131)宛のカプセリングを行う。
ここで、ネットワークシステム1000は、OpenFlowスイッチ300によって、対向のVTEP以外からも一時的にルーチングが可能である。ただし、OpenFlowスイッチ300からは、あらかじめ優先度を高くして経路広告しておくことで、正常時は本来のルータ130側へルーチングされるようにしておくものである。
図2の符号jに示すように、正常時、ルーチングで優先度(コスト差)をつけることでVTEP故障時以外はOpenFlowスイッチ300へトラヒックを流入させないようにする。正常時は、トラヒックがOpenFlowスイッチ300を通らず、通常のVXLAN環境そのものとなる。
[故障切替え中の動作]
図4は、ネットワークシステム1000の故障切替え中のトラヒックフローを説明する図である。
<ユーザ側VTEPからOpenFlowスイッチ300への一時的ルーチング>:図4のルータ2(発側VTEP20)からOpenFlowスイッチ300へ至るトラヒックフロー(図4の矢印(→)参照)>
図4の符号aに示すように、ルータ2の発側VTEP20は、VTEP保持のため、MAC学習されたMACテーブル(MAC:サービスA RemoteVTEP:VTEP131)を保持している。このため、前記図3の符号aに示すように、トンネルの宛先を「Outer IP(Dst:VTEP1311)」とし、ルータ2(発側VTEP20)は、ルータ130(着側VTEP131)宛のカプセリングを行う(正常時)。また、図4に示すように、ルータ2(発側VTEP20)とルータ130(着側VTEP131)にトンネル識別子(VNI)=10000を付与する(正常時)。
しかしながら、図4の符号bの(×印)に示すように、ルータ130の着側VTEP131は、対向VTEPが故障(すなわち経路広告がとまる)と故障と判定され、故障切替え中に移行する。故障時は、ルータ2(発側VTEP20)は、ルータ130(着側VTEP131)宛に仮想L2トンネルでカプセリングされたパケットを転送することはできない。
そこで、故障切替え中は、下記のようにして、ユーザ側VTEPが優先度の低い(高コスト)OpenFlowスイッチ300に一時的にルーチングする。
図5は、ネットワークシステム1000の故障切替え中のVXLAN環境のフレームフォーマットを示す図である。図5(a)は、対向VTEP故障時の故障切替え中のVTEP20からOpenFlowスイッチ300のOpenFlow対応ルータ310間のフレームフォーマットを示し、図5(b)は、OpenFlow対応ルータ310からVTEP131間のフレームフォーマットを示す。
図5(a)のフレームフォーマットと、前記図3のフレームフォーマットとは、同じである。ルータ2(発側VTEP20)は、ルータ130(着側VTEP131)宛のカプセリングを行おうとするが、故障であるので、故障切替え中に移行する。
より詳細に説明すると、ルータ2(発側VTEP20)は、経路広告がとまることで、ルータ130(着側VTEP131)が故障中であることは分かる(優先度は「10」)。また、コアNW(L3 広域NW3)とDC100とが冗長構成を採っているので、ルータ110を経由して着側VTEP131に経路広告もとどく。このため、ルータ2(発側VTEP20)は、ルータ130(着側VTEP131)が故障中であるものの、ルータ130(着側VTEP131)は正常時(経路広告がとまっていない)ことは分かる(優先度は「20」)。しかしながら、ルータ2(発側VTEP20)は、サービスAとルータ130(着側VTEP131)とが紐付いていないので、ルータ130側へのルーチング変更はできない。
そこで、故障切替え中、一時的に、優先度が最も低い(優先度「100」)のOpenFlowスイッチ300を通るようにする。
ここで、OpenFlowスイッチ300は、正常時、故障切替え中、故障切替え完了時のいずれかにかかわらずOpenFlowコントローラ320が予備系着側VTEP対応表322にコントロール保持情報(図4の符号c参照)を記憶する。OpenFlowコントローラ320は、予備系着側VTEP対応表322にコントロール保持情報(VTEP(0系):VTEP131 VTEP(1系):VTEP131)を記憶する。OpenFlowスイッチ300への優先度は、優先度が最も低い(高コスト)「100」である。
このため、ルータ2(発側VTEP20)は、図5(a)のフレームフォーマットを有する場合、故障切替え中、一時的に、優先度の低い(高コスト)OpenFlowスイッチ300にルーチングする。
以下、OpenFlowスイッチ300への一時的なルーチングについて、図4の経路広告を参照しながら具体的に説明する。
図4の白抜きに斜線の矢印(⇒(矢印))に示すように、ルータ130,130(着側VTEP131,131)は、ルータ110,110を経由してルータ2(発側VTEP20)に経路広告する(図4の符号e,f,g,h参照)。図4の符号e,f,g,hに示すように、対向VTEP宛ての経路広告は、正常時にVTEP131経路(図4の打ち消し線参照)であったものが故障切替え中ではVTEP131経路となる。一方、OpenFlowスイッチ300は、優先度を低くして対向VTEP宛ての経路広告(優先度は「100」)を行う(図4の符号i参照)。すなわち、ルータ130(着側VTEP131)から、ルータ110を経由してルータ2(発側VTEP20)に経路広告されたVTEP経路(図4の符号e,f参照)の優先度は「10」、ルータ130(着側VTEP131)から、ルータ110を経由してルータ2(発側VTEP20)に経路広告されたVTEP経路(図4の符号g,h参照)の優先度は「20」である。また、OpenFlowスイッチ300のOpenFlow対応ルータ310から、L3 広域NW3を経由してルータ2(発側VTEP20)に経路広告されたVTEP経路(図4の符号i参照)の優先度は「100」である。
対向VTEP故障時には、低コストであるVTEP経路(優先度「10」「20」)は、トラヒックに使用されず(使用できず)、従ってルータ130(着側VTEP131)は、優先度が低くて通常では使用されない高コストのOpenFlow対応ルータ310のVTEP経路(優先度「100」)を一時的にトラヒックに用いる。なお、OpenFlowスイッチ300が複数存在する場合には、優先度のより小さい、OpenFlowスイッチ300がルーチングされる。
ここで、経路広告は、本来、自己の先に該当経路がある時に広告するものである。しかし、OpenFlowスイッチ300による経路広告は、自己の先に該当経路(ここではVTEP131宛て経路)がないにも拘わらず経路広告する、という点で一般的なものとは異なる。
<OpenFlowスイッチ300から宛先VTEPから予備系着側VTEPに書き換えるルーチング>:図4のOpenFlowスイッチ300から予備系のルータ130(着側VTEP131)へ至るトラヒックフロー(図4の矢印(→)参照)>
OpenFlowスイッチ300は、図5(b)の符号bに示すように、あらかじめ設定しておいたルールに従い、宛先IPを宛先VTEPから予備系着側VTEPに書き換える。この場合、OpenFlowスイッチ300は、トンネルの宛先を「Outer IP(Dst:VTEP1311)」から、「Outer IP(Dst:VTEP131)」に変更する。一般に、対向のVTEP131以外がMACテーブルのトンネルの宛先を書き換えることは、従来技術では行われていない。本実施形態では、ネットワークシステム1000は、OpenFlowスイッチ300を備え、対向VTEP故障時に限り、OpenFlowスイッチ300が宛先IPを書き換える点に特徴がある。
OpenFlowスイッチ300は、予備系のルータ130(着側VTEP131)へ至るトラヒックフロー(図4の矢印(→)参照)に示すように、通常のルーチングにより予備系のルータ130の着側VTEP131まで転送が行われる。
DC100のルータ130の着側VTEP131は、図4の符号dに示すように、MAC学習されたMACテーブル(MAC:ユーザA RemoteVTEP:VTEP20)を保持する。
<故障切替え中:トラヒックフローのまとめ>
故障が発生すると、発着VTEPのみで構成される従来技術では、VTEPの経路が消失するため、宛先が分からず転送ができなくなる。具体的には、例えば図4に示すルータ130が故障した場合、VTEP131宛の経路が失われ、DC100側へルーチングすべきという経路情報は失われる。
これに対して、本実施形態では、ルータ130(VTEP131)が故障したとしても、OpenFlowスイッチ300宛のルーチングを引き続き実行する。すなわち、故障切替え中、正常時には最も低い優先度「100」であったOpenFlowスイッチ300宛のVTEP経路が一時的に使用され、OpenFlowスイッチ300宛に転送が行われる。つまり、対向VTEP故障時には、ユーザVTEP側からのトラヒックはOpenFlowスイッチ300へ到達する。
OpenFlowスイッチ300は、あらかじめ設定しておいたルールに従い、宛先IPアドレスを予備系VTEP(図4ではルータ130のVTEP131)に書き換える。すなわち、OpenFlowスイッチ300は、図5(b)の符号bに示すように、フレームフォーマット400のVXLANフレーム410の宛先IPを、「Outer IP(Dst:VTEP1311)」から、「Outer IP(Dst:VTEP131)」に変更する。
その後、予備系のルータ130(着側VTEP131)へ至るトラヒックフロー(図4の矢印(→)参照)に示すように、通常のルーチングにより予備系のルータ130まで転送が行われる。これにより、OpenFlowスイッチ300のみで切替可能であるので、高速な故障切替が実現できる。
[故障切替え完了時の動作]
図6は、ネットワークシステム1000の故障切替え完了時のトラヒックフローを説明する図である。
<サーバVTEP側からユーザVTEP側へのトラヒック疎通時のトラヒックフロー(図6の破線矢印(→)参照)>
故障切替え中のOpenFlowスイッチ300の動作によって、予備系のルータ130の着側VTEP131までトラヒックが転送される。ルータ130の着側VTEP131は、図6の符号dに示すように、MAC学習されたMACテーブル(MAC:ユーザA RemoteVTEP:VTEP20)を保持する。
そして、図6の破線矢印(→)に示すように、ルータ130の着側VTEP131(サーバVTEP側)からユーザAのルータ2の発側VTEP20(ユーザVTEP側)へトラヒックが疎通する。
この場合、図6の符号jに示すように、ユーザAへの返答は優先度(ルーチングコスト差)からルータ110経由になる(図6の破線トラヒックフロー(→(破線矢印))参照)。
このように、OpenFlowスイッチ300によって、一度、ルータ130の予備系VTEP131にパケット転送ができているので、高速切替が実現できる。
一般に、予備系サーバ側(図6ではサーバ140)がリクエストに対する応答を返すことが想定される。この応答の仕組みについて説明する。
<ユーザVTEP側のトラヒックフロー(図6の実線矢印(→)参照)>
着側VTEP131(サーバVTEP側)からルータ2の発側VTEP20(ユーザVTEP側)へのトラヒック疎通によって、VTEP20(ユーザVTEP側)は、図6の符号aに示すMACアドレステーブルが書き換わる。
すなわち、故障切替え完了時には、図6の符号aに示すように、ルータ2の発側VTEP20は、MAC学習により、MACテーブルの「RemoteVTEP:VTEP131」がMACテーブルの「RemoteVTEP:VTEP131」に書き換えられる。
ルータ130は、ルータ2からVXLANパケットが一度到達しているため、MACテーブルが学習され(図6の符号d参照)、ユーザAの所属するルータ2のVTEPが発側VTEP20であることを知ることができる。そのため、応答はOpenFlowスイッチ300を経由することなく、直接、ルータ2の発側VTEP20に転送される。また、図6の符号jに示すように、ユーザAへの返答は優先度(ルーチングコスト差)からルータ110経由になる(図6の破線トラヒックフロー(→(破線矢印))参照)。
一度、ルータ2にルータ130宛のトラヒックが転送されると、ルータ2の発側VTEP20は、MACテーブルを学習し(図6の符号a参照)、アプリAがVTEP131の先に存在することを知ることができる。
例えば、サービスAがユーザAに通信を行うとVTEP20にパケットが到達する。これを受けて、VTEP20は、VTEP20が有するMACアドレステーブルを書き換える。これにより、VTEP20は、サービスAが、故障前、VTEP131の先のサーバ140に存在していたが、故障後、VTEP131に存在することを知ることになる。
そして、図6に示すように、ルータ2の発側VTEP20とルータ130の着側VTEP131にトンネル識別子(VNI)=10000を付与する。ルータ2の発側VTEP20は、ルータ130の着側VTEP131宛に仮想L2トンネルでカプセリングされたパケットを転送する。
その結果、OpenFlowスイッチ300経由の通信は行われなくなり、ルーチングによる最適な経路で転送が可能となる。
このように、図6の符号kに示すように、OpenFlowスイッチ300経由の通信は切替え中(図4のトラヒックフロー(→(矢印))参照)のみである(スケールする)。サーバ側からユーザ側へのトラヒック疎通時、ユーザ側VTEPは、MACアドレステーブルが書き換わる。そのため、OpenFlowスイッチ300への疎通は一時的で済み、スケール性を考慮することができる。
図7は、ネットワークシステム1000の故障切替え完了時のVXLAN環境のフレームフォーマットを示す図である。図7は、故障切替え完了時のVTEP20からOpenFlowスイッチ300のOpenFlow対応ルータ310間のフレームフォーマットを示す。
図7の符号aに示すように、トンネルの宛先を「Outer IP(Dst:VTEP131)」とする。MAC学習により、宛先VTEPの変更を知り、素早く予備系へ切り替えできる。下記の利点がある。(1)ARP(またはE−VAN)等による切替ではなく、トラヒックデータそのものだけで切替可能であるため、切替が高速である。(2)フラッディング不要なため、NWやサーバ装置への負荷が小さくて済む。
以上説明したように、ネットワークシステム1000は、L3 広域NW3とL2ユーザ端末1,1,1のL2ネットワークの接続点に実装された発側VTEP2,2,2と、DC100内のサーバ140,140とL3 DC NW120の接続点に実装された着側VTEP131,131と、L3 広域NW3に接続されたOpenFlowスイッチ300と、を備える。OpenFlowスイッチ300は、着側VTEPの故障時、あらかじめ設定した規則に従って、故障した着側VTEPを、対応する予備系着側VTEPに書き換えて転送するOpenFlowコントローラ320(処理部)と、宛先VTEPを現用系から予備系VTEPに書き換えるための予備VTEP対応表322(記憶部)と、を有する。
正常時、ルーチングで優先度をつけることでOpenFlowスイッチ300へトラヒックを流入させないようにする。正常時は、トラヒックがOpenFlowスイッチ300を通らず、通常のVXLAN環境そのものとなる。
故障切替え中、OpenFlowスイッチ300宛のVTEP経路が一時的に使用され、OpenFlowスイッチ300宛に転送が行われる。OpenFlowスイッチ300は、あらかじめ設定しておいたルールに従い、宛先IPアドレスを予備系VTEP(VTEP131)に書き換える。すなわち、OpenFlowスイッチ300は、図5(b)の符号bに示すように、フレームフォーマット400のVXLANフレーム410の宛先IPを、「Outer IP(Dst:VTEP1311)」から、「Outer IP(Dst:VTEP131)」に変更する。
故障切替え完了時、予備系着側VTEPは、対応する着側VTEPが有していた発側VTEP宛てにトラヒックを疎通し、トラヒックが疎通した発側VTEPは、予備系着側VTEPを仮想L2トンネルの宛先としてパケットをカプセリングする。
このように、ネットワークシステム1000は、正常時には一般的なVXLAN環境で転送を行う。ネットワークシステム1000は、VTEP故障時(障害時)にはOpenFlowスイッチ300に最初の数パケットのみ転送を担わせる。すなわち、ネットワークシステム1000は、正常時はOpenFlowスイッチ300のOpenFlowを使用せず、VTEP故障時も一時的な使用にとどめる。
宛先VTEPを変更し、経路切替を実現することで、VTEP故障を救済し、広域NWにおける耐障害性や運用性を向上させることができる。VTEP故障時もフラッディングなしで実現可能となる。
図1に示すように、ルータ2(発側VTEP)とルータ230およびルータ130(着側VTEP)に仮想L2トンネル識別子(VNI)=10000を付与する。これにより、DC100,200は、付与されたトンネル識別子VNIを参照するだけでどのVTEPに転送すればよいかを判別可能となる。また、ルータ2(発側VTEP)に、ルータ230とルータ130(着側VTEP)とが接続されるマルチポイント接続も可能となる。
これにより、以下の効果がある。
(1) NFV環境においてサーバ障害時の切り替え時間が短縮される。特に、ユーザ側のVTEPの数が多い環境になればなるほど顕著になる。一般に、NFVでは、DC側VTEPよりユーザ側VTEPの方が圧倒的に多いため、本ネットワークシステム1000による耐障害性向上は重要となる。
(2) DC故障に対してその影響が広域NWまで波及しない。
以上により、耐障害性や運用性が向上する。
また、本実施形態では、下記のような特有の効果がある。
(3) 全トラヒックを一般に転送処理能力の低いOpenFlowで処理する必要がないので、大規模ネットワークへ適用することができる。
(4) 図1に示すように、ルータ2の発側VTEP20に、ルータ130の着側VTEP131とルータ230の着側VTEP231とが接続されるマルチポイント接続も可能となる。
(5) 通常NW側で切替不可能であり、かつ、切替時間が他の条件(ユーザやアプリケーションの挙動、MACアドレスの削除タイミング)に依存する障害に対し、高速な切替が可能となる。
(6) 正常時はOpenFlowスイッチ300宛のルーチング優先度を低くしておくことで、スケールする構成を実現している。
(7) 故障時は一時的にOpenFlowスイッチ300宛に転送を実行し、宛先IPアドレスを書き換えることで予備系ルータへの転送を実現する。
(8) 経路切替後に予備系ルータ発の通信が一度でも発生すると、MACアドレス学習の仕組みにより最適なルートで経路転送を実現することができる。
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行するためのソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、IC(Integrated Circuit)カード、SD(Secure Digital)カード、光ディスク等の記録媒体に保持することができる。
1,1,1,1 ユーザ端末(L2サービス提供端末)
3 L3 広域NW(L3ネットワーク)
2,2,2,110,110,110,130,130,130,210,210,210,230,230,230 ルータ
20,20,20,20 発側VTEP(発側トンネル終端ポイント)
100,200 DC
140,240 現用系サーバ
140,240 予備系サーバ
131,131,131,231,231,231 着側VTEP(着側トンネル終端ポイント)
120,220 L3 DC NW
300 OpenFlowスイッチ
310 OpenFlow対応ルータ
320 OpenFlowコントローラ(処理部)
321 ルーチングエンジン
322 予備VTEP対応表(記憶部)
1000 ネットワークシステム
VNI トンネル識別子

Claims (4)

  1. L3(レイヤ3)ネットワーク上に仮想L2(レイヤ2)トンネルを構築して、前記L3ネットワーク上に接続されるL2サービス提供端末と前記L3ネットワークに接続されたDC(Data Center)内のDCネットワークに接続される端末との間でパケットを送受信するネットワークシステムであって、
    前記L3ネットワークと前記L2サービス提供端末のL2ネットワークの接続点に実装された発側トンネル終端ポイントと、
    前記DC内の前記端末と前記DCネットワークの接続点に実装された着側トンネル終端ポイントと、
    前記L3ネットワークに接続されたOpenFlowスイッチと、を備え、
    前記OpenFlowスイッチは、
    前記着側トンネル終端ポイントに対応する予備系着側トンネル終端ポイントを記憶する記憶部と、
    前記着側トンネル終端ポイントの故障時、あらかじめ設定した規則に従って、故障した前記着側トンネル終端ポイントを、対応する前記予備系着側トンネル終端ポイントに書き換えて転送する処理部と、を備え、
    前記予備系着側トンネル終端ポイントは、対応する前記着側トンネル終端ポイントが有していた前記発側トンネル終端ポイント宛てにトラヒックを疎通し、
    前記トラヒックが疎通した前記発側トンネル終端ポイントは、前記予備系着側トンネル終端ポイントを仮想L2トンネルの宛先としてパケットをカプセリングし、
    前記発側トンネル終端ポイントは、前記故障時以外は前記OpenFlowスイッチへトラヒックを流入させないこと
    特徴とするネットワークシステム。
  2. 前記着側トンネル終端ポイントと前記予備系着側トンネル終端ポイントと前記OpenFlowスイッチとは、ルーチングの優先度をあらかじめ経路広告し、前記OpenFlowスイッチの優先度は、前記着側トンネル終端ポイントの優先度および前記予備系着側トンネル終端ポイントの優先度よりも、優先度が低いこと
    を特徴とする請求項1に記載のネットワークシステム。
  3. 前記発側トンネル終端ポイントは、前記側トンネル終端ポイントからの経路広告がない場合を当該側トンネル終端ポイントの故障と判定し、当該故障時に前記OpenFlowスイッチ宛てに転送を行うこと
    を特徴とする請求項1または請求項に記載のネットワークシステム。
  4. L3(レイヤ3)ネットワーク上に仮想L2(レイヤ2)トンネルを構築して、前記L3ネットワーク上に接続されるL2サービス提供端末と前記L3ネットワークに接続されたDC(Data Center)内のDCネットワークに接続される端末との間でパケットを送受信するネットワークシステムのパケット転送方法であって、
    前記L3ネットワークと前記L2サービス提供端末のL2ネットワークの接続点に実装された発側トンネル終端ポイントと、
    前記DC内の前記端末と前記DCネットワークの接続点に実装された着側トンネル終端ポイントと、
    前記L3ネットワークに接続されたOpenFlowスイッチと、を備え、
    前記OpenFlowスイッチにおいて、
    前記着側トンネル終端ポイントに対応する予備系着側トンネル終端ポイントを記憶する記憶工程と、
    前記着側トンネル終端ポイントの故障時、あらかじめ設定した規則に従って、故障した前記着側トンネル終端ポイントを、対応する前記予備系着側トンネル終端ポイントに書き換えて転送する処理工程と、を有し、
    前記予備系着側トンネル終端ポイントにおいて、
    対応する前記着側トンネル終端ポイントが有していた前記発側トンネル終端ポイント宛てにトラヒックを疎通し、
    当該トラヒックが疎通した前記発側トンネル終端ポイントにおいて、
    前記予備系着側トンネル終端ポイントを仮想L2トンネルの宛先としてパケットをカプセリングし、
    前記発側トンネル終端ポイントにおいて、前記故障時以外は前記OpenFlowスイッチへトラヒックを流入させないこと
    特徴とするパケット転送方法。
JP2015150249A 2015-07-30 2015-07-30 ネットワークシステムおよびパケット転送方法 Active JP6402078B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015150249A JP6402078B2 (ja) 2015-07-30 2015-07-30 ネットワークシステムおよびパケット転送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015150249A JP6402078B2 (ja) 2015-07-30 2015-07-30 ネットワークシステムおよびパケット転送方法

Publications (2)

Publication Number Publication Date
JP2017034365A JP2017034365A (ja) 2017-02-09
JP6402078B2 true JP6402078B2 (ja) 2018-10-10

Family

ID=57989496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015150249A Active JP6402078B2 (ja) 2015-07-30 2015-07-30 ネットワークシステムおよびパケット転送方法

Country Status (1)

Country Link
JP (1) JP6402078B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6549996B2 (ja) * 2016-01-27 2019-07-24 アラクサラネットワークス株式会社 ネットワーク装置、通信方法、及び、ネットワークシステム
JP7052580B2 (ja) 2018-06-13 2022-04-12 日本電信電話株式会社 ネットワーク制御装置、ユーザ端末、通信システム、ネットワーク制御方法およびネットワーク制御プログラム
WO2022176030A1 (ja) * 2021-02-16 2022-08-25 日本電信電話株式会社 通信制御装置、通信制御方法、通信制御プログラム及び通信制御システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07264233A (ja) * 1994-03-24 1995-10-13 Hitachi Ltd ルート高速切替方法及びルータ装置
JP4773981B2 (ja) * 2007-01-12 2011-09-14 富士通株式会社 通信制御プログラム
JP5367764B2 (ja) * 2011-06-14 2013-12-11 エヌ・ティ・ティ・コミュニケーションズ株式会社 仮想ネットワークシステム、構成変更方法、トンネル接続装置、及びプログラム
CN102333028B (zh) * 2011-06-22 2013-02-13 杭州华三通信技术有限公司 一种分层式二层虚拟专用网发送报文的方法及通信设备

Also Published As

Publication number Publication date
JP2017034365A (ja) 2017-02-09

Similar Documents

Publication Publication Date Title
US11411770B2 (en) Virtual port channel bounce in overlay network
US10333836B2 (en) Convergence for EVPN multi-homed networks
US11271905B2 (en) Network architecture for cloud computing environments
US9100213B1 (en) Synchronizing VPLS gateway MAC addresses
CN111740913B (zh) 在计算机网络内转发网络流量的方法、路由器及可读介质
JP5991424B2 (ja) パケット書換装置、制御装置、通信システム、パケット送信方法及びプログラム
US20180351858A1 (en) Virtual machine migration
US11336485B2 (en) Hitless linkup of ethernet segment
CN112887188B (zh) 一种报文转发方法及设备
EP3641241A1 (en) Node protection for bum traffic for multi-homed node failure
CN111988222A (zh) 数据传输方法及装置、电子设备和计算机可读存储介质
WO2020182085A1 (zh) 报文的传输方法和设备
JP6402078B2 (ja) ネットワークシステムおよびパケット転送方法
US11228459B2 (en) Anycast address configuration for extended local area networks
JP2015512587A (ja) パケット交換網における擬似回線グループ
JP2015512588A (ja) パケット交換網における擬似回線拡張グループメッセージング
JP4388464B2 (ja) パケット中継装置およびパケット通信ネットワーク
JP6718739B2 (ja) 通信装置および通信方法
JP6261001B2 (ja) 経路制御システムおよびその方法
US11296907B2 (en) Systems and methods for transitioning of virtualized transport networks
Cisco Configuring DECnet
US9270588B2 (en) Host route convergence based on sequence values
JP2016149701A (ja) ネットワークシステムおよびパケット転送方法
US20240039832A1 (en) Hitless migration of interconnected data center networks for network virtualization overlay using gateways
JP2017130789A (ja) パケット転送装置、パケット転送方法、および、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180802

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180910

R150 Certificate of patent or registration of utility model

Ref document number: 6402078

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150