(57)【特許請求の範囲】
【請求項１】
Ｌ３（レイヤ３）ネットワーク上に仮想Ｌ２（レイヤ２）トンネルを構築して、前記Ｌ３ネットワーク上に接続されるＬ２サービス提供端末と前記Ｌ３ネットワークに接続されたＤＣ（Data Center）内のＤＣネットワークに接続される端末との間でパケットを送受信するネットワークシステムであって、
前記Ｌ３ネットワークと前記Ｌ２サービス提供端末のＬ２ネットワークの接続点に実装された発側トンネル終端ポイントと、
前記ＤＣ内の前記端末と前記ＤＣネットワークの接続点に実装された着側トンネル終端ポイントと、
前記Ｌ３ネットワークに接続されたOpenFlowスイッチと、を備え、
前記OpenFlowスイッチは、
前記着側トンネル終端ポイントに対応する予備系着側トンネル終端ポイントを記憶する記憶部と、
前記着側トンネル終端ポイントの故障時、あらかじめ設定した規則に従って、故障した前記着側トンネル終端ポイントを、対応する前記予備系着側トンネル終端ポイントに書き換えて転送する処理部と、を備え、
前記予備系着側トンネル終端ポイントは、対応する前記着側トンネル終端ポイントが有していた前記発側トンネル終端ポイント宛てにトラヒックを疎通し、
前記トラヒックが疎通した前記発側トンネル終端ポイントは、前記予備系着側トンネル終端ポイントを仮想Ｌ２トンネルの宛先としてパケットをカプセリングし、
前記発側トンネル終端ポイントは、前記故障時以外は前記OpenFlowスイッチへトラヒックを流入させないこと
を特徴とするネットワークシステム。
【請求項２】
前記着側トンネル終端ポイントと前記予備系着側トンネル終端ポイントと前記OpenFlowスイッチとは、ルーチングの優先度をあらかじめ経路広告し、前記OpenFlowスイッチの優先度は、前記着側トンネル終端ポイントの優先度および前記予備系着側トンネル終端ポイントの優先度よりも、優先度が低いこと
を特徴とする請求項１に記載のネットワークシステム。
【請求項３】
前記発側トンネル終端ポイントは、前記着側トンネル終端ポイントからの経路広告がない場合を当該着側トンネル終端ポイントの故障と判定し、当該故障時に前記OpenFlowスイッチ宛てに転送を行うこと
を特徴とする請求項１または請求項２に記載のネットワークシステム。
【請求項４】
Ｌ３（レイヤ３）ネットワーク上に仮想Ｌ２（レイヤ２）トンネルを構築して、前記Ｌ３ネットワーク上に接続されるＬ２サービス提供端末と前記Ｌ３ネットワークに接続されたＤＣ（Data Center）内のＤＣネットワークに接続される端末との間でパケットを送受信するネットワークシステムのパケット転送方法であって、
前記Ｌ３ネットワークと前記Ｌ２サービス提供端末のＬ２ネットワークの接続点に実装された発側トンネル終端ポイントと、
前記ＤＣ内の前記端末と前記ＤＣネットワークの接続点に実装された着側トンネル終端ポイントと、
前記Ｌ３ネットワークに接続されたOpenFlowスイッチと、を備え、
前記OpenFlowスイッチにおいて、
前記着側トンネル終端ポイントに対応する予備系着側トンネル終端ポイントを記憶する記憶工程と、
前記着側トンネル終端ポイントの故障時、あらかじめ設定した規則に従って、故障した前記着側トンネル終端ポイントを、対応する前記予備系着側トンネル終端ポイントに書き換えて転送する処理工程と、を有し、
前記予備系着側トンネル終端ポイントにおいて、
対応する前記着側トンネル終端ポイントが有していた前記発側トンネル終端ポイント宛てにトラヒックを疎通し、
当該トラヒックが疎通した前記発側トンネル終端ポイントにおいて、
前記予備系着側トンネル終端ポイントを仮想Ｌ２トンネルの宛先としてパケットをカプセリングし、
前記発側トンネル終端ポイントにおいて、前記故障時以外は前記OpenFlowスイッチへトラヒックを流入させないこと
を特徴とするパケット転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステムおよびパケット転送方法に関する。
【背景技術】
【０００２】
従来のネットワーク制御は、主にＩＰ（Internet Protocol）アドレスのルーチングによって行われている。品質の確保やネットワークの利用率向上のため、フロー制御ネットワークが提案されている。フロー制御ネットワークは、パケットを送受信するフロースイッチと、フロースイッチを制御する制御サーバとを備える。フロースイッチは、制御サーバにより与えられたフローエントリを保持するフローテーブルを備える。フローエントリには受信したパケットの種別を識別するための入力物理ポート、Ｌ２（レイヤ２：データリンク層）、Ｌ３（レイヤ３：ネットワーク層）およびＬ４（レイヤ４：トランスポート層）の情報と、当該種別のパケットに対する処理（アクション）が記述される。ここでの処理は、例えば、当該種別のパケットを指定の物理ポートから送信することや、当該種別のパケットにＶＬＡＮ（Virtual Local Area Network)タグを付与することや、宛先ＭＡＣ（Media Access Control）アドレスを変更すること等である。このフロー制御ネットワークは、ＭＡＣアドレスやＩＰアドレス、ポート番号等の組み合わせによって定義されるフロー単位での経路制御を実現するネットワークである。このようなフロー制御ネットワークの例として、OpenFlowネットワークが挙げられる（非特許文献１参照）。このOpenFlowネットワークにおいて、フロースイッチにはOpenFlowスイッチ、制御サーバにはコントローラが用いられる。
【０００３】
近年、特に広域ネットワーク（以下、適宜ＮＷという）において多様なＮＷサービスを動的に利用するため、ＮＦＶ（Network Function Virtualization）によるＮＷサービスの仮想化が検討されている。ＮＦＶでは、イーサネット（登録商標）転送のみのＬ２ＮＷ（レイヤ２ネットワーク）でユーザ・サービス間を接続する必要のあるサービスも存在することが知られている。
一方、大規模な広域ＮＷは、スケール性や耐障害性の観点からＩＰルーチングを用いたＬ３ＮＷ（レイヤ３ネットワーク）で構築されることが多い。そこで、ＮＦＶにおいて、Ｌ３ＮＷ上に仮想的なＬ２トンネルを構築することでＬ２転送を実現するＮＶＯ３（Network Virtualization Over Ｌ３）が検討されている（非特許文献２参照）。
ＮＶＯ３としては、ＶＸＬＡＮ（Virtual eXtensible Local Area Network）（非特許文献３参照）やＮＶＧＲＥ（Network Virtualization Generic Routing Encapsulation）をはじめとした様々な技術が検討されている（非特許文献４参照）。
【０００４】
ＶＸＬＡＮは、「ＶＸＬＡＮ Network Identifier（ＶＮＩ）」と呼ばれる２４ビットのＶＸＬＡＮ ＩＤを活用して、Ｌ２の通信をＬ３でトンネリングすることで、Ｌ３経由でＬ２の通信（ブロードキャストドメイン）を延長する。ＶＸＬＡＮでは、ハイパーバイザの仮想スイッチあるいは物理サーバ単位でＶＴＥＰ（Virtual Tunnel End Point：トンネル終端ポイント）を設置する。ＶＴＥＰは、物理Ｌ３ＮＷとＬ２ＮＷの接続点に実装される。ＶＴＥＰが各仮想マシンのＭＡＣアドレスと、その仮想マシンのＶＮＩの対応関係をテーブルで管理する。
ＮＶＯ３では、トンネル端点にあたるルータ（ＶＴＥＰ）で宛先解決が必要である。ＶＸＬＡＮでは、宛先解決方法として、（１）宛先不明トラヒックは一度全ての端点ルータにフラッディングし、D-Planeで学習する方法と、（２）あらかじめC-Planeで学習する方法とがある（Ｅ−ＶＰＮ）（非特許文献５参照）。
【０００５】
図８は、ＮＶＯ３に係るネットワークシステムの構成を示す図である。
図８（ａ）に示すように、ＮＶＯ３に係るネットワークシステムは、ユーザ端末１１，１２が、ルータ２１，２２，２３（ここではルータ２２）を介して中継ＮＷであるＬ３ 広域ＮＷ３に接続されている。Ｌ３ 広域ＮＷ３には、ルータ４１，４２，４３を介してサービスを提供するサーバ５１〜５６が接続されている。ユーザ端末１１，１２は、ルータ２２、Ｌ３ 広域ＮＷ３、およびルータ４を経由してサーバ５１〜５６からアプリケーションなどの各種サービスＡ〜Ｆの提供を受ける。なお、ルータ２１，２２，２３を総称する場合は、ルータ２と呼び、ルータ４１，４２，４３を総称する場合は、ルータ４と呼び、サーバ５１〜５６を総称する場合は、サーバ５と呼ぶ。ユーザ端末１１，１２を特に区別しない場合にはユーザ端末１と表記する。
【０００６】
ユーザ端末１は、Ｌ３ 広域ＮＷ３を介して、サーバ５に対して、各種サービスＡ〜Ｆの提供要求を送信し、サーバ５から情報を取得する一般的なＬ２サービス提供端末である。ユーザ端末１は、例えば、一般的なパーソナルコンピュータや携帯情報端末等から構成される。
なお、本明細書中において、サービスとは、各種転送機能を有するアプリケーション（アプリ）、または、アプリにより提供されるサービスをいう。
ルータ２は、例えばマルチキャスト配信中に最終マルチキャストポイントとなるエンドルータである。
Ｌ３ 広域ＮＷ３は、Ｌ３ＮＷである。
サーバ５は、各種サービスＡ〜Ｆを提供する配信サーバである。
【０００７】
ＮＶＯ３に係るネットワークシステムの転送について説明する。
例えば、ある仮想マシンが、ＶＸＬＡＮ経由で別のサーバ上の仮想マシンと同じセグメントに属していて、これに対するＬ２の通信を開始すると、ＶＴＥＰは送信先のＭＡＣアドレスがローカルにないと判断したうえで、送信元のＶＴＥＰはそのＭＡＣフレームの前に適切な仮想Ｌ２トンネル識別子（以下、トンネル識別子という）ＶＮＩ（送信元仮想マシンの属するＶＸＬＡＮセグメントのＩＤ）を付加する。ＶＴＥＰは、さらに自分のＩＰアドレスとＭＡＣアドレスを付け、送信先ＶＴＥＰのＩＰアドレスに通信を開始する。送信先のＶＴＥＰは、トンネル識別子ＶＮＩを見て確認した後、送信元のＶＴＥＰが付けた情報をすべて削除し、送信先の仮想マシンに対してこのＭＡＣフレームを送る。
【０００８】
転送を行う前に、任意のＭＡＣアドレスを持つユーザ・サービスがどのＶＴＥＰの先に存在するかを解決しなくてはならない。その方法として、ＮＶＯ３では、以下の２方式のＭＡＣ取得方法が提案されている。
（１）あらかじめ設定したＶＴＥＰすべてに転送する方法。
例えば、ユーザ端末１１は、サービスＦを提供するサーバ５６に接続しようとする。この場合、ＶＴＥＰはその返信パケットを見てＭＡＣアドレスを学習し、図８（ｂ）に示すようなテーブルを学習する。図８（ｂ）は、ＶＴＥＰが管理する各仮想マシンのＭＡＣアドレスと、その仮想マシンのトンネル識別子ＶＮＩの対応関係を示すテーブルである。
図８（ｂ）の例では、ユーザ端末１が接続されるルータ２２は、該当サービスＦを提供するサーバ５６のＭＡＣアドレス（Ｌ２（ＭＡＣ））とルータ４３のＩＰアドレス（Ｌ３（RemoteＶＴＥＰ））のテーブルを学習する。
（２）ＶＴＥＰに直接接続されたＭＡＣアドレスをあらかじめＥ-ＶＰＮなどのコントロールプレーンで広告する方法。
広告されたＶＴＥＰは、図８（ｂ）に示すようなテーブルを学習する。
【０００９】
次に、図８（ａ）を参照して転送の流れを説明する。
はじめに、ユーザ端末１１がサービスＦを利用する際、ユーザ端末１１はサービスＦのＭＡＣアドレス宛パケットを送出する。そして、発側ＶＴＥＰであるルータ２は、図８（ｂ）に示すようなテーブルを保持するため、ＶＸＬＡＮ・ＧＲＥ（Generic Routing Encapsulation）ヘッダなど各ＮＶＯ３で規定されたヘッダによりカプセリングし、ルータ４３宛に転送する。着側ＶＴＥＰであるルータ４３では、そのヘッダをデカプセリングしてサービスＦのＭＡＣアドレス宛にパケットを転送する。この一連の動作により、ユーザ・サービスから見るとＬ２転送が行われたように見せることができる。
【００１０】
図９は、図８のカプセリング後のフレームフォーマットを示す図である。図９は、ＶＸＬＡＮを例にして示す。
図９に示すように、図８のカプセリング後のフレームフォーマット１０は、Outer Dst. MAC、Outer Src. MAC、Outer Dst. IP(router 2)、Outer Src. IP(ルータ2１)、Outer Src. UDP、Outer Dst. UDP(ＶＸＬＡＮport)およびＶＸＬＡＮ ID(id=1)からなるＶＸＬＡＮフレーム１１と、Inner Dst. MAC(サービスA)、Inner Src. MAC(ユーザ(11))およびPayloadからなるオリジナルフレーム１２と、から構成される。
ＶＴＥＰ以外のＬ３網（広域ＮＷ）では、図９に示すヘッダ（ＶＸＬＡＮフレーム１１部分）のみを見て転送する。このため、単純なＬ３転送（ＩＰ転送）を行うのみでよい。
【００１１】
図１０は、ＮＶＯ３に係るネットワークシステムおよびＤＣの構成を示す図である。
図１０に示すように、サービス機能が搭載されたサーバ５は、ＤＣ（Data Center）２０に収容される。ＤＣ２０は、ＤＣ２０内に構築されたＬ３ ＤＣ ＮＷ２１を介して広域ＮＷ３と接続される。図１０の例では、ＤＣ２０内のルータ４１，４２を着側ＶＴＥＰ（対向ＶＴＥＰともいう）とし、ルータ４１（着側ＶＴＥＰ）が、アプリケーションＡ機能（サービスＡ）を有するサーバ５１に接続される。サーバ５１は、現用系であり稼働中であるものとする。また、ルータ４２（着側ＶＴＥＰ）およびサーバ５２は、予備系である。
ルータ２（発側ＶＴＥＰ）は、ルータ４（着側ＶＴＥＰ）宛のカプセリングを行う。具体的には、ルータ２（発側ＶＴＥＰ）は、ＭＡＣフレームの前に適切なトンネル識別子ＶＮＩ（送信元仮想マシンの属するＶＸＬＡＮセグメントのＩＤ）と自分および対向ルータのＩＰアドレスとＭＡＣアドレスを付け、ルータ４１（着側ＶＴＥＰ）のＩＰアドレスに通信を開始する。ルータ４１（着側ＶＴＥＰ）は、トンネル識別子ＶＮＩを見て確認した後、ルータ２（発側ＶＴＥＰ）が付けた情報をすべて削除し、送信先のサーバ５１に対してこのＭＡＣフレームを送る（図１０の破線矢印参照）。
【００１２】
また、ＤＣ２０では、物理サーバ（物理マシン）が仮想マシン化されている。仮想マシン化の利点として、異なる物理サーバ間で仮想マシンＶＭを移動させるマイグレーション（Migration）の技術により、ポータビリティを確保し、柔軟な運用が行える点が挙げられる。上記マイグレーションを実現するには、仮想マシンＶＭの切り替えの際に、仮想マシンＶＭへアクセスするためのネットワークの情報（ＶＬＡＮ（Virtual Local Area Network）情報、ルーチング情報）も追随して切り替える必要がある。
【００１３】
図１０に示すように、ＤＣ２０では、現用系のサーバ５１を予備系のサーバ５２にマイグレーションした場合、ルータ４２（着側ＶＴＥＰ）は、発側ＶＴＥＰ（図１０ではルータ２）に対してＭＡＣテーブルを更新する指示を出す。そして、ルータ２（発側ＶＴＥＰ）は、ＭＡＣフレームの前に適切なトンネル識別子ＶＮＩと自分のＩＰアドレスとＭＡＣアドレスを付け、ルータ４２（着側ＶＴＥＰ）のＩＰアドレスに通信を開始する。ルータ４２（着側ＶＴＥＰ）は、トンネル識別子ＶＮＩを見て確認した後、ルータ２（発側ＶＴＥＰ）が付けた情報をすべて削除し、送信先のサーバ５２に対してこのＭＡＣフレームを送る（図１０の実線矢印参照）。
【先行技術文献】
【非特許文献】
【００１４】
【非特許文献１】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-ＶＸＬＡＮ-evpn-04＞
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、従来技術では、ＤＣ２０内の仮想マシンＶＭのマイグレーション時、その設定がＷＡＮ（図１０では広域ＮＷ３およびルータ２）に波及してしまい、経路切替の時間がかかるという問題がある。
【００１６】
図１０を参照してより詳細に説明する。
ＤＣ２０内で障害が発生した場合、現用系のサーバ５１を予備系のサーバ５２にマイグレーションする必要がある。特に、仮想Ｌ２トンネル利用時にＤＣ２０内で障害が発生した場合、発側ＶＴＥＰ（図１０ではルータ２）で予備系への経路切り替えのために多くの時間を要する。すなわち、この切り替えのためには、ルータ４２（着側ＶＴＥＰ）は、発側ＶＴＥＰ（図１０ではルータ２）に対してＭＡＣテーブルを更新するような指示を出さなくてはならない。
例えば、上記（１）のＭＡＣ取得方法の場合、サービスＡのサーバ５１側からＤＣ２０外の全ＶＴＥＰに向かってパケットを送出し、全ＶＴＥＰは受け取ったパケットによって学習する。
また、上記（２）のＭＡＣ取得方法の場合、ＤＣ２０外の全ＶＴＥＰに対しコントロールプレーンでＭＡＣアドレスを広告し、全ＶＴＥＰは受け取った結果によって学習する。
いずれの場合もＤＣ２０側障害を受けて広域ＮＷ３（Ｌ３）側の全ＶＴＥＰに通知しなくてはならない。図１０の符号ａに示すように、この切り替えのためには、ルータ４２（着側ＶＴＥＰ）は、全ての発側ＶＴＥＰ（図１０ではルータ４）に対してＡＲＰ（Ｅ-ＶＰＮ）で即座に通知が必要である。図１０の符号ｂに示すように、広域ＮＷ３（Ｌ３）側のＶＴＥＰ数が多い場合は、ＮＷへの負荷が大きいため、切り替えに時間を要する。
このように、従来技術では、サーバ５を収容するＤＣ２０と広域ＮＷが同一Ｌ２ＮＷになってしまうため、耐障害性や運用性の観点で問題があった。
【００１７】
このような背景を鑑みて本発明がなされたのであり、本発明は、耐障害性や運用性を向上させるネットワークシステムおよびパケット転送方法を提供することを課題とする。
【課題を解決するための手段】
【００１８】
前記した課題を解決するため、請求項１に記載の発明は、Ｌ３（レイヤ３）ネットワーク上に仮想Ｌ２（レイヤ２）トンネルを構築して、前記Ｌ３ネットワーク上に接続されるＬ２サービス提供端末と前記Ｌ３ネットワークに接続されたＤＣ（Data Center）内のＤＣネットワークに接続される端末との間でパケットを送受信するネットワークシステムであって、前記Ｌ３ネットワークと前記Ｌ２サービス提供端末のＬ２ネットワークの接続点に実装された発側トンネル終端ポイントと、前記ＤＣ内の前記端末と前記ＤＣネットワークの接続点に実装された着側トンネル終端ポイントと、前記Ｌ３ネットワークに接続されたOpenFlowスイッチと、を備え、前記OpenFlowスイッチは、前記着側トンネル終端ポイントに対応する予備系着側トンネル終端ポイントを記憶する記憶部と、前記着側トンネル終端ポイントの故障時、あらかじめ設定した規則に従って、故障した前記着側トンネル終端ポイントを、対応する前記予備系着側トンネル終端ポイントに書き換えて転送する処理部と、を備え、前記予備系着側トンネル終端ポイントは、対応する前記着側トンネル終端ポイントが有していた前記発側トンネル終端ポイント宛てにトラヒックを疎通し、前記トラヒックが疎通した前記発側トンネル終端ポイントは、前記予備系着側トンネル終端ポイントを仮想Ｌ２トンネルの宛先としてパケットをカプセリングし、前記発側トンネル終端ポイントは、前記故障時以外は前記OpenFlowスイッチへトラヒックを流入させないことを特徴とする。
【００１９】
また、請求項４に記載の発明は、Ｌ３（レイヤ３）ネットワーク上に仮想Ｌ２（レイヤ２）トンネルを構築して、前記Ｌ３ネットワーク上に接続されるＬ２サービス提供端末と前記Ｌ３ネットワークに接続されたＤＣ（Data Center）内のＤＣネットワークに接続される端末との間でパケットを送受信するネットワークシステムのパケット転送方法であって、前記Ｌ３ネットワークと前記Ｌ２サービス提供端末のＬ２ネットワークの接続点に実装された発側トンネル終端ポイントと、前記ＤＣ内の前記端末と前記ＤＣネットワークの接続点に実装された着側トンネル終端ポイントと、前記Ｌ３ネットワークに接続されたOpenFlowスイッチと、を備え、前記OpenFlowスイッチにおいて、前記着側トンネル終端ポイントに対応する予備系着側トンネル終端ポイントを記憶する記憶工程と、前記着側トンネル終端ポイントの故障時、あらかじめ設定した規則に従って、故障した前記着側トンネル終端ポイントを、対応する前記予備系着側トンネル終端ポイントに書き換えて転送する処理工程と、を有し、前記予備系着側トンネル終端ポイントにおいて、対応する前記着側トンネル終端ポイントが有していた前記発側トンネル終端ポイント宛てにトラヒックを疎通し、当該トラヒックが疎通した前記発側トンネル終端ポイントにおいて、前記予備系着側トンネル終端ポイントを仮想Ｌ２トンネルの宛先としてパケットをカプセリングし、前記発側トンネル終端ポイントにおいて、前記故障時以外は前記OpenFlowスイッチへトラヒックを流入させないことを特徴とする。
【００２０】
このようにすることで、トラヒックデータそのものだけで切替可能であるため、切替が高速である。例えば、OpenFlowスイッチは、ＶＴＥＰ故障時に最初の数パケットのみ処理する。このため、ＮＦＶ環境においてサーバ障害時の切り替え時間が短縮される。また、ＤＣ故障に対してその影響が広域ＮＷまで波及しない。これにより、耐障害性や運用性を向上させることができる。
また、正常時は、トラヒックがOpenFlowスイッチに流入しないので、OpenFlowスイッチは中継動作に関与せず、通常のＶＸＬＡＮ環境そのものとすることができる。
【００２１】
また、請求項２に記載の発明は、前記着側トンネル終端ポイントと前記予備系着側トンネル終端ポイントと前記OpenFlowスイッチとが、ルーチングの優先度をあらかじめ経路広告し、前記OpenFlowスイッチの優先度は、前記着側トンネル終端ポイントの優先度および前記予備系着側トンネル終端ポイントの優先度よりも、優先度が低いことを特徴とする。
【００２２】
このようにすることで、ＶＴＥＰ故障時に限り、優先度の低いOpenFlowスイッチに一時的にルーチングさせることができ、ＶＴＥＰ故障時以外はOpenFlowスイッチへトラヒックを流入させないようにすることができる。
【００２５】
また、請求項３に記載の発明は、前記発側トンネル終端ポイントが、前記着側トンネル終端ポイントからの経路広告がない場合を当該着側トンネル終端ポイントの故障と判定し、当該故障時に前記OpenFlowスイッチ宛てに転送を行うことを特徴とする。
【００２６】
このようにすることで、ＶＴＥＰ故障を直ちに判定することができる。
【発明の効果】
【００２７】
本発明によれば、耐障害性や運用性を向上させるネットワークシステムおよびパケット転送方法を提供することができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施形態に係るネットワークシステムの構成を示す図である。
【図２】本発明の実施形態に係るネットワークシステムの正常時のトラヒックフローを説明する図である。
【図３】本発明の実施形態に係るネットワークシステムの正常時のＶＸＬＡＮ環境のフレームフォーマットを示す図である。
【図４】本発明の実施形態に係るネットワークシステムの故障切替え中のトラヒックフローを説明する図である。
【図５】本発明の実施形態に係るネットワークシステムの故障切替え中のＶＸＬＡＮ環境のフレームフォーマットを示す図である。
【図６】本発明の実施形態に係るネットワークシステムの故障切替え完了時のトラヒックフローを説明する図である。
【図７】本発明の実施形態に係るネットワークシステムの故障切替え完了時のＶＸＬＡＮ環境のフレームフォーマットを示す図である。
【図８】ＮＶＯ３に係るネットワークシステムの構成を示す図である。
【図９】図８のカプセリング後のフレームフォーマットを示す図である。
【図１０】ＮＶＯ３に係るネットワークシステムおよびＤＣの構成を示す図である。
【発明を実施するための形態】
【００２９】
以下、図面を参照して本発明を実施するための形態（以下、「本実施形態」という）におけるネットワークシステム等について説明する。
本実施形態は、大規模な物理ネットワーク上に仮想パスを生成する際、その中継区間における転送方法およびそれを実現するネットワークシステムに適用することができる。ＮＦＶ環境において必要となるＮＶＯ３、すなわちＬ３ＮＷ上に仮想Ｌ２ＮＷを構築する技術について説明する。
【００３０】
図１は、本発明の実施形態に係るネットワークシステムの構成を示す図である。図１０と同一構成部分には、同一符号を付している。
図１に示すように、ネットワークシステム１０００は、ユーザ端末１１，１２，１３（Ｌ２サービス提供端末）が、ルータ２１，２２，２３（発側ＶＴＥＰ２０１，２０２，２０３）を介してＬ３ 広域ＮＷ３（Ｌ３ネットワーク）に接続され、ＤＣ１００（ＤＣ＃１）のルータ１１０１，１１０２，ＤＣ２００（ＤＣ＃２）のルータ２１０１，２１０２を介してＬ３ ＤＣ ＮＷ１２０，２２０に接続される。
ＤＣ１００は、Ｌ３ 広域ＮＷ３に接続されたルータ１１０１，１１０２と、Ｌ３ ＤＣ ＮＷ１２０と、Ｌ３ ＤＣ ＮＷ１２０に接続されたルータ１３０１，１３０２（着側ＶＴＥＰ１３１１，１３１２）と、サービスＡ機能を有するサーバ１４０１，１４０２と、を有する。
ＤＣ１００内では、Ｌ３ ＤＣ ＮＷ１２０に接続されたルータ１３０１，１３０２（着側ＶＴＥＰ１３１１，１３１２）を介してサービスＡ機能を有するサーバ１４０１，１４０２に接続される。図１のサーバ１４０１，１４０２は、共にサービスＡのための転送機能を有するものとし、サーバ１４０１を現用系、サーバ１４０２を予備系とする例である。
【００３１】
同様に、ＤＣ２００は、Ｌ３ 広域ＮＷ３に接続されたルータ２１０１，２１０２と、Ｌ３ ＤＣ ＮＷ２２０と、Ｌ３ ＤＣ ＮＷ２２０に接続されたルータ２３０１，２３０２（着側ＶＴＥＰ２３１１，２３１２）と、サービスＢ機能を有するサーバ２４０１，２４０２と、を有する。
ＤＣ２００内では、Ｌ３ ＤＣ ＮＷ２２０に接続されたルータ２３０１，２３０２（着側ＶＴＥＰ２３１１，２３１２）を介してサービスＢ機能を有するサーバ２４０１，２４０２に接続される。図１のサーバ２４０１，２４０２は、共にサービスＢのための転送機能を有するものとし、サーバ２４０１を現用系、サーバ２４０２を予備系とする例である。
【００３２】
ネットワークシステム１０００は、ネットワーク全体に１または複数のOpenFlowスイッチ（OpenFlowSW）３００を備える。本実施形態では、OpenFlowスイッチ３００は、Ｌ３ 広域ＮＷ３に接続され、全国で１または複数箇所に設置される。
【００３３】
なお、ルータ１１０１，１１０２を総称する場合は、ルータ１１０と呼び、ルータ１３０１，１３０２を総称する場合は、ルータ１３０と呼び、サーバ１４０１，１４０２を総称する場合は、サーバ１４０と呼ぶ。同様に、ルータ２１０１，２１０２を総称する場合は、ルータ２１０と呼び、ルータ２３０１，２３０２を総称する場合は、ルータ２３０と呼び、サーバ２４０１，２４０２を総称する場合は、サーバ２４０と呼ぶ。また、ユーザ端末１１，１２，１３を特に区別しない場合にはユーザ端末１と表記し、ルータ２１，２２，２３（発側ＶＴＥＰ）を特に区別しない場合にはルータ２と表記する。
【００３４】
<OpenFlowスイッチ>
OpenFlowスイッチ３００は、Ｌ３ 広域ＮＷ３（Ｌ３ネットワーク）に接続される。OpenFlowスイッチ３００は、故障切替え中（後記）、一時的に、あらかじめ設定しておいたルール（規則）に従い、宛先ＩＰを現用系着側ＶＴＥＰから予備系着側ＶＴＥＰに書き換える。OpenFlowスイッチ３００は、ＶＴＥＰ故障時に最初の数パケットのみ処理する。なお、正常時およびＶＴＥＰ故障時（障害時）の定義については、後記する。
OpenFlowスイッチ３００は、OpenFlow対応ルータ３１０を備え、OpenFlow対応ルータ３１０は、OpenFlowコントローラ（OpenFlowＣＴＬ）３２０（処理部）、ルーチングエンジン３２１および予備ＶＴＥＰ対応表３２２（記憶部）を有する。
【００３５】
OpenFlowコントローラ３２０は、転送装置であるOpenFlowスイッチ３００の振る舞いを一括して管理する。OpenFlowスイッチ３００は、振る舞いを記述したフローテーブル（flow table）に基づいてデータの転送や破棄、宛先の書き換えなどを実行する。
特に、OpenFlowコントローラ３２０は、着側ＶＴＥＰの故障時、あらかじめ設定した規則に従って、予備ＶＴＥＰ対応表３２２を参照して故障した着側ＶＴＥＰを対応する予備系着側ＶＴＥＰに書き換えて転送する。
【００３６】
ルーチングエンジン３２１は、OpenFlowを実現するとともに、既存のＬ２／Ｌ３ネットワークに対応可能なオープンソースのエンジンである。
【００３７】
予備ＶＴＥＰ対応表３２２は、宛先ＶＴＥＰを現用系から予備系ＶＴＥＰに書き換えるための対応表である。予備ＶＴＥＰ対応表３２２は、コントロール保持情報（図２の符号ｃ参照）として、着側ＶＴＥＰに対応する予備系着側ＶＴＥＰを記憶する。
【００３８】
OpenFlowスイッチ３００の実装例として、OpenFlowを用いて実現することができる。その際のエントリテーブルを以下に示す。
マッチ条件：宛先ＵＤＰ（User Datagram Protocol）ポート：ＶＸＬＡＮポート番号
宛先ＩＰアドレス：故障ＶＴＥＰ（図１のＶＴＥＰ１３１１）のＩＰアド
レス
カプセリングＩＤ：Ｌ２トンネルの識別子
アクション条件：宛先ＩＰアドレス：予備系ＶＴＥＰ（図１のＶＴＥＰ１３１２）のＩ
Ｐアドレス
出力ポート：予備系ＶＴＥＰ（図１のＶＴＥＰ１３１２）へ転送できるポ
ート
【００３９】
なお、OpenFlowは、パケットが来たときにフローエントリを参照して、参照したフローエントリに基づいて転送する。このフローエントリを、事前に格納しておいてもよいし、事前に記述されていない場合は、OpenFlowコントローラ３２０に問い合わせ（packetin）、packetin時にフローエントリを格納する態様のどちらでもよい。
【００４０】
<発側ＶＴＥＰ>
ネットワークシステム１０００は、Ｌ３ 広域ＮＷ３上に仮想Ｌ２トンネルを構築して、Ｌ３ 広域ＮＷ３上に接続されるユーザ端末１と、Ｌ３ 広域ＮＷ３に接続されたＤＣ１００内のＬ３ ＤＣ ＮＷ１２０に接続されるサーバ１４０およびＤＣ２００内のＬ３ ＤＣ ＮＷ２２０に接続されるサーバ２４０との間でパケットを送受信するものである。
【００４１】
ユーザ端末１は、例えば、一般的なパーソナルコンピュータや携帯情報端末等から構成されるＬ２サービス提供端末である。ユーザ端末１は、Ｌ２ＮＷによりルータ２（発側ＶＴＥＰ）に接続される。
【００４２】
ルータ２（発側ＶＴＥＰ）は、Ｌ３ 広域ＮＷ３とユーザ端末１のＬ２ＮＷの接続点に実装される。ルータ２（発側ＶＴＥＰ）は、Ｌ３ 広域ＮＷ３を介して、ＤＣ１００内のサーバ１４０およびＤＣ２００内のサーバ２４０に対して、各種サービスＡ，Ｂの提供要求を送信し、サーバ１４０，２４０から情報を取得する。
【００４３】
<ＤＣ>
ＤＣ１００，２００は、それぞれルータ１１０，２１０を介してＬ３ 広域ＮＷ３と接続される。ＤＣ１００，２００は、Ｌ３ ＤＣ ＮＷ１２０，２２０、ルータ１３０，２３０（着側ＶＴＥＰ）やサーバ１４０，２４０を大規模で効率的に収容する。ＤＣ１００，２００は、サーバやネットワーク機器などのＩＴ（Information Technology）機器を設置、運用する施設・建物の総称であり、複数のルータ１３０，２３０（着側ＶＴＥＰ）を運用するものであればどのような名称でも構わない。
ＤＣ１００，２００内は、Ｌ３ ＤＣ ＮＷ１２０，２２０によりネットワークが構築され、ルータ１３０，２３０（着側ＶＴＥＰ）を介してサーバ１４０，２４０が接続される。
なお、ＤＣ１００，２００は、通常のゲートウェイ機能と、ファイアウォール機能とを備える。
【００４４】
<着側ＶＴＥＰ>
ルータ１３０，２３０（着側ＶＴＥＰ）は、ＤＣ１００，２００内のサーバ１４０，２４０とＬ３ ＤＣ ＮＷ１２０，２２０の接続点に実装される。
サーバ１４０は、サービスＡを提供するサーバ、サーバ２４０は、サービスＢを提供するサーバである。
【００４５】
上述したように、ルータ２（発側ＶＴＥＰ）が接続されるＬ３ 広域ＮＷ３はＬ３ＮＷであり、ＤＣ１００，２００内もＬ３ＮＷである。このため、ユーザ端末１からＤＣ１００，２００内のサーバ１４０，２４０までのＬ２接続を確保するＬ２ over Ｌ３接続が必要となる。本実施形態では、Ｌ２ over Ｌ３接続技術として、ＶＸＬＡＮを例に採っているが、ＮＶＧＲＥ（Network Virtualization using Generic Routing Encapsulation）等であってもよい。
【００４６】
以下、上述のように構成されたネットワークシステム１０００のパケット転送方法について説明する。
正常時の動作（図２参照）、故障切替え中（故障直後）の動作（図４参照）、故障切替え完了時の動作（図６参照）の３つに分けて述べる。
正常時とは、ユーザ側ＶＴＥＰへ定期的に経路広告がある場合をいう。
故障とは、ユーザ側ＶＴＥＰへの経路広告がとまる（経路広告がこない）ことをいう。
故障切替え中とは、ユーザ側ＶＴＥＰが優先度の低い（高コスト）経路広告のOpenFlowスイッチ３００に一時的にルーチングし、OpenFlowスイッチ３００があらかじめ設定しておいたルール（規則）に従い、宛先ＩＰを宛先ＶＴＥＰから予備系着側ＶＴＥＰに書き換えるまでをいう。
故障切替え完了時とは、宛先ＩＰが書き換えられた予備系着側ＶＴＥＰが、ユーザ側ＶＴＥＰにトラヒックを一回返して、トラヒック疎通した時点をいう。故障切替え完了時は、故障から一定期間が経った後の動作となる。
【００４７】
［正常時の動作］
図２は、ネットワークシステム１０００の正常時（通常時）のトラヒックフローを説明する図である。
図２の白抜きに斜線の矢印（⇒（矢印））は、正常時の経路広告を示し、図２の矢印（→（矢印））は、正常時のトラヒックフローを示し、図２の丸印（○（丸印））で囲んだ数値（xx（数値））は、ルーチングコストである優先度イメージをそれぞれ示している。なお、後記図４および図６についても、上記記号は同じ表記で用いる。
各ルータ２１，１１０１，１１０２，１３０１，１３０２は、正常時（通常時）、ＶＴＥＰ保持のためのＭＡＣテーブル（図１の符号ａ，ｂ，ｄ参照）を有する。具体的には、ルータ２１の発側ＶＴＥＰ２０１は、図１の符号ａに示すＭＡＣテーブル（ＭＡＣ：サービスＡ  RemoteＶＴＥＰ：ＶＴＥＰ１３１１）を保持する。ＤＣ１００のルータ１３０１の着側ＶＴＥＰ１３１１は、図１の符号ｂに示すＭＡＣテーブル（ＭＡＣ：サービスＡ  RemoteＶＴＥＰ：ＶＴＥＰ２０１）を保持する。ＤＣ１００のルータ１３０２の着側ＶＴＥＰ１３１１は、図１の符号ｄに示すＭＡＣテーブル（ＭＡＣ：−(無し)  RemoteＶＴＥＰ：−(無し)）を保持する。
【００４８】
また、OpenFlowスイッチ３００は、正常時、故障切替え中、故障切替え完了時のいずれかにかかわらずOpenFlowコントローラ３２０が予備ＶＴＥＰ対応表３２２にコントロール保持情報（ＶＴＥＰ(０系)：ＶＴＥＰ１３１１  ＶＴＥＰ(１系)：ＶＴＥＰ１３１２）（図１の符号ｃ参照）を記憶する。
【００４９】
<正常時：フレームフォーマット>
図３は、ネットワークシステム１０００の正常時のＶＸＬＡＮ環境のフレームフォーマットを示す図である。図３は、ルータ２１（発側ＶＴＥＰ）がＤＣ１００宛のカプセリング動作によってＶＸＬＡＮカプセリングを行った場合のフレームフォーマットを示す。キャリア網（Ｌ３ 広域ＮＷ３）−ＤＣ網（Ｌ３ ＤＣ ＮＷ１３０）間のＬ２延伸は、トンネルの宛先をＤＣ１００のルータ１３０１とする。図３は、正常時のＶＴＥＰ２０１からＶＴＥＰ１３１２間のフレームフォーマットを示す。
図３に示すように、図１のカプセリング後のフレームフォーマット４００は、Outer MAC、Outer IP(Dst:VTEP1311)、UDP(Dst:4789)、およびVXLAN ID(VNI:10000)からなるＶＸＬＡＮフレーム４１０と、Inner MAC(Dst:サービスA)およびPayloadからなるオリジナルフレーム４２０と、から構成される。図３の符号ａに示すように、トンネルの宛先を「Outer IP(Dst:VTEP1311)」とする。これにより、ルータ２１（発側ＶＴＥＰ２０１）は、ルータ２１（着側ＶＴＥＰ１３１１）宛のカプセリングを行う。
【００５０】
また、発側ＶＴＥＰと着側ＶＴＥＰ（以下、発着ＶＴＥＰという）にトンネル識別子ＶＮＩを付与する。具体的には、図２に示すように、ルータ２１（発側ＶＴＥＰ２０１）とルータ１３０１（着側ＶＴＥＰ１３１１）にトンネル識別子（ＶＮＩ）＝１００００を付与する。これにより、ルータ２１（発側ＶＴＥＰ２０１）は、付与されたトンネル識別子ＶＮＩを参照するだけでどのＶＴＥＰに転送すればよいかを判別可能となる。
【００５１】
ルータ２１（発側ＶＴＥＰ２０１）は、ルータ１３０１（着側ＶＴＥＰ１３１１）宛に仮想Ｌ２トンネルでカプセリングされたパケットを転送する。
ルータ１３０１（着側ＶＴＥＰ１３１１）は、処理部（図示省略）がトンネル識別子ＶＮＩを見て確認した後、ルータ２１（発側ＶＴＥＰ２０１）が付けたＶＸＬＡＮフレーム４１０（図３参照）をすべて削除する。
【００５２】
<正常時：経路広告>
（１）着側ＶＴＥＰから対向ＶＴＥＰ宛ての経路広告
図２の白抜きに斜線の矢印（⇒（矢印））に示すように、ルータ１３０１，１３０２（着側ＶＴＥＰ１３１１，１３１２）は、自身のＶＴＥＰ１３１１，１３１２に直接接続されたＭＡＣアドレスをあらかじめＥ-ＶＰＮなどのコントロールプレーンを用いて経路広告する（図２の符号ｅ−ｈ参照）。図２の例では、ルータ１３０１，１３０２（着側ＶＴＥＰ１３１１，１３１２）は、ルータ１１０１，１１０２を経由してルータ２１（発側ＶＴＥＰ２０１）に経路広告する。ネットワークシステム１０００は、元々、コアＮＷ（Ｌ３ 広域ＮＷ３）とＤＣ１００とが冗長構成を採っているので、ルータ１３０１（着側ＶＴＥＰ１３１１）は、ルータ１１０１のみならず、ルータ１１０２を経由する経路についても経路広告を行う（図２の符号ｇ，ｈ参照）。同様に、ルータ１３０２（着側ＶＴＥＰ１３１２）は、ルータ１１０１を経由する経路についても経路広告を行う（図２の符号ｅ，ｆ参照）。
ここで、対向ＶＴＥＰ宛ての経路広告には、優先度が設けられており、対向ＶＴＥＰ（この場合、着側ＶＴＥＰ１３１１）は、優先度を基に、優先度の最も高い経路広告を学習する（後記）。なお、この優先度は、ルーチングコストと呼称される場合がある。
【００５３】
（２）OpenFlowスイッチ３００から対向ＶＴＥＰ宛ての経路広告
OpenFlowスイッチ３００は、優先度を高くして対向ＶＴＥＰ宛ての経路広告を行う（図２の符号ｉ参照）。具体的には、OpenFlow対応ルータ３１０は、Ｅ-ＶＰＮなどのコントロールプレーンを用いて経路広告する。
【００５４】
<優先度>
ルータ１３０１，１３０２（着側ＶＴＥＰ１３１１，１３１２）は、対向ＶＴＥＰ宛ての経路広告の際、図２の丸印（○（丸印））で囲んだ数値（xx（数値））に示すような優先度を付与する。一方、OpenFlowスイッチ３００は、あらかじめ、対向ＶＴＥＰ宛てに優先度を高くした経路広告を行う。
優先度は、対向ＶＴＥＰ宛ての経路広告に付与されるルーチングコストであり、どこに仮想Ｌ２トンネルをはればよいのかを決めるときに用いる。対向ＶＴＥＰは、当該優先度を基に、最適なＶＴＥＰ経路を決定することができる。優先度は、例えば、各経路広告に付された、数値１０，２０，３０，…，１００である。一例として、数値１００を最も高コストと取り決めておけば、対向ＶＴＥＰは、数値１００のＶＴＥＰ経路が、ルーチングの際に最もコストがかかる経路であると判別できるので、最後に選択されることになる。対向ＶＴＥＰは、コストが小さい、すなわち優先度の数値が小さいＶＴＥＰ経路から順に伝送に用いる。
【００５５】
図２の例では、ルータ１３０１（着側ＶＴＥＰ１３１１）から、ルータ１１０１を経由してルータ２１（発側ＶＴＥＰ２０１）に経路広告されたＶＴＥＰ経路（図２の符号ｅ，ｆ参照）の優先度は「１０」、ルータ１３０２（着側ＶＴＥＰ１３１２）から、ルータ１１０２を経由してルータ２１（発側ＶＴＥＰ２０１）に経路広告されたＶＴＥＰ経路（図２の符号ｇ，ｈ参照）の優先度は「２０」である。さらに、OpenFlowスイッチ３００のOpenFlow対応ルータ３１０から、Ｌ３ 広域ＮＷ３を経由してルータ２１（発側ＶＴＥＰ２０１）に経路広告されたＶＴＥＰ経路（図２の符号ｉ参照）の優先度は「１００」である。広告された対向ＶＴＥＰ（着側ＶＴＥＰ１３１１）は、優先度の数値が小さいＶＴＥＰ経路（優先度「１０」のＶＴＥＰ経路（図２の符号ｅ，ｆ参照））を用いる。経路広告がとまる故障時には、次に優先度の数値が小さいＶＴＥＰ経路（優先度「２０」のＶＴＥＰ経路（図２の符号ｇ，ｈ参照））を用いる。したがって、故障時以外に、優先度の数値が最大「１００」のOpenFlowスイッチ３００からのＶＴＥＰ経路（図２の符号ｉ参照）が使用されることはない。
なお、優先度は、ルーチングコストを決定できるものであればよく、優先度が高い場合の数値を大きく、優先度が低い場合の数値を小さくするものでもよい。この場合、優先度の数値が大きいとルーチングコストが小さくなる。
【００５６】
<正常時：トラヒックフロー>
図２の正常時のトラヒックフローを参照して正常時（通常時）の転送の流れを説明する。
図２に示すように、ネットワークシステム１０００は、正常時には、ルータ２１（発側ＶＴＥＰ２０１）とルータ１３０１（着側ＶＴＥＰ１３１１）間でＬ２トンネル（トンネル識別子（ＶＮＩ）＝１００００）を形成する。ルータ２１（発側ＶＴＥＰ２０１）は、トンネル識別子ＶＮＩを参照してＶＴＥＰ（ここでは着側ＶＴＥＰ１３１１）に転送することになる。アンダーレイ（ＶＸＬＡＮのＬ２トンネルに対比されるインフラ）では、ＶＴＥＰ１３１１のＩＰアドレス宛の転送を行う必要がある。この経路制御は、従来技術の通常時と同様であり、静的・動的なルーチングによりルータ１３０１へ転送を行うものである。
【００５７】
図２の例では、図２のトラヒックフロー（→（矢印）参照）に示すように、ユーザ端末１１は、サービスＡを提供するサーバ１４０に接続しようとする。この場合、ユーザ端末１１が接続されるルータ２１は、該当サービスＡを提供するサーバ１４０のＭＡＣアドレス（Ｌ２（ＭＡＣ））とルータ１３０１のＩＰアドレス（Ｌ３（RemoteＶＴＥＰ））のテーブルを学習する（図２符号ａ参照）。
図３（ａ）の符号ａに示すように、トンネルの宛先を「Outer IP(Dst:VTEP1311)」とする。また、図２に示すように、発側ＶＴＥＰと着側ＶＴＥＰ（以下、発着ＶＴＥＰという）にトンネル識別子ＶＮＩを付与する。具体的には、図２に示すように、ルータ２１（発側ＶＴＥＰ２０１）とルータ１３０１（着側ＶＴＥＰ１３１１）にトンネル識別子（ＶＮＩ）＝１００００を付与する。これにより、ルータ２１（発側ＶＴＥＰ２０１）は、ルータ１３０１（着側ＶＴＥＰ１３１１）宛のカプセリングを行う。
【００５８】
ここで、ネットワークシステム１０００は、OpenFlowスイッチ３００によって、対向のＶＴＥＰ以外からも一時的にルーチングが可能である。ただし、OpenFlowスイッチ３００からは、あらかじめ優先度を高くして経路広告しておくことで、正常時は本来のルータ１３０１側へルーチングされるようにしておくものである。
図２の符号ｊに示すように、正常時、ルーチングで優先度（コスト差）をつけることでＶＴＥＰ故障時以外はOpenFlowスイッチ３００へトラヒックを流入させないようにする。正常時は、トラヒックがOpenFlowスイッチ３００を通らず、通常のＶＸＬＡＮ環境そのものとなる。
【００５９】
［故障切替え中の動作］
図４は、ネットワークシステム１０００の故障切替え中のトラヒックフローを説明する図である。
【００６０】
<ユーザ側ＶＴＥＰからOpenFlowスイッチ３００への一時的ルーチング>：図４のルータ２１（発側ＶＴＥＰ２０１）からOpenFlowスイッチ３００へ至るトラヒックフロー（図４の矢印（→）参照）>
図４の符号ａに示すように、ルータ２１の発側ＶＴＥＰ２０１は、ＶＴＥＰ保持のため、ＭＡＣ学習されたＭＡＣテーブル（ＭＡＣ：サービスＡ  RemoteＶＴＥＰ：ＶＴＥＰ１３１１）を保持している。このため、前記図３の符号ａに示すように、トンネルの宛先を「Outer IP(Dst:VTEP1311)」とし、ルータ２１（発側ＶＴＥＰ２０１）は、ルータ１３０１（着側ＶＴＥＰ１３１１）宛のカプセリングを行う（正常時）。また、図４に示すように、ルータ２１（発側ＶＴＥＰ２０１）とルータ１３０１（着側ＶＴＥＰ１３１１）にトンネル識別子（ＶＮＩ）＝１００００を付与する（正常時）。
【００６１】
しかしながら、図４の符号ｂの（×印）に示すように、ルータ１３０１の着側ＶＴＥＰ１３１１は、対向ＶＴＥＰが故障（すなわち経路広告がとまる）と故障と判定され、故障切替え中に移行する。故障時は、ルータ２１（発側ＶＴＥＰ２０１）は、ルータ１３０１（着側ＶＴＥＰ１３１１）宛に仮想Ｌ２トンネルでカプセリングされたパケットを転送することはできない。
【００６２】
そこで、故障切替え中は、下記のようにして、ユーザ側ＶＴＥＰが優先度の低い（高コスト）OpenFlowスイッチ３００に一時的にルーチングする。
図５は、ネットワークシステム１０００の故障切替え中のＶＸＬＡＮ環境のフレームフォーマットを示す図である。図５（ａ）は、対向ＶＴＥＰ故障時の故障切替え中のＶＴＥＰ２０１からOpenFlowスイッチ３００のOpenFlow対応ルータ３１０間のフレームフォーマットを示し、図５（ｂ）は、OpenFlow対応ルータ３１０からＶＴＥＰ１３１２間のフレームフォーマットを示す。
図５（ａ）のフレームフォーマットと、前記図３のフレームフォーマットとは、同じである。ルータ２１（発側ＶＴＥＰ２０１）は、ルータ１３０１（着側ＶＴＥＰ１３１１）宛のカプセリングを行おうとするが、故障であるので、故障切替え中に移行する。
【００６３】
より詳細に説明すると、ルータ２１（発側ＶＴＥＰ２０１）は、経路広告がとまることで、ルータ１３０１（着側ＶＴＥＰ１３１１）が故障中であることは分かる（優先度は「１０」）。また、コアＮＷ（Ｌ３ 広域ＮＷ３）とＤＣ１００とが冗長構成を採っているので、ルータ１１０２を経由して着側ＶＴＥＰ１３１１に経路広告もとどく。このため、ルータ２１（発側ＶＴＥＰ２０１）は、ルータ１３０１（着側ＶＴＥＰ１３１１）が故障中であるものの、ルータ１３０２（着側ＶＴＥＰ１３１２）は正常時（経路広告がとまっていない）ことは分かる（優先度は「２０」）。しかしながら、ルータ２１（発側ＶＴＥＰ２０１）は、サービスＡとルータ１３０２（着側ＶＴＥＰ１３１２）とが紐付いていないので、ルータ１３０２側へのルーチング変更はできない。
【００６４】
そこで、故障切替え中、一時的に、優先度が最も低い（優先度「１００」）のOpenFlowスイッチ３００を通るようにする。
ここで、OpenFlowスイッチ３００は、正常時、故障切替え中、故障切替え完了時のいずれかにかかわらずOpenFlowコントローラ３２０が予備系着側ＶＴＥＰ対応表３２２にコントロール保持情報（図４の符号ｃ参照）を記憶する。OpenFlowコントローラ３２０は、予備系着側ＶＴＥＰ対応表３２２にコントロール保持情報（ＶＴＥＰ(０系)：ＶＴＥＰ１３１１  ＶＴＥＰ(１系)：ＶＴＥＰ１３１２）を記憶する。OpenFlowスイッチ３００への優先度は、優先度が最も低い（高コスト）「１００」である。
このため、ルータ２１（発側ＶＴＥＰ２０１）は、図５（ａ）のフレームフォーマットを有する場合、故障切替え中、一時的に、優先度の低い（高コスト）OpenFlowスイッチ３００にルーチングする。
【００６５】
以下、OpenFlowスイッチ３００への一時的なルーチングについて、図４の経路広告を参照しながら具体的に説明する。
図４の白抜きに斜線の矢印（⇒（矢印））に示すように、ルータ１３０１，１３０２（着側ＶＴＥＰ１３１１，１３１２）は、ルータ１１０１，１１０２を経由してルータ２１（発側ＶＴＥＰ２０１）に経路広告する（図４の符号ｅ，ｆ，ｇ，ｈ参照）。図４の符号ｅ，ｆ，ｇ，ｈに示すように、対向ＶＴＥＰ宛ての経路広告は、正常時にＶＴＥＰ１３１１経路（図４の打ち消し線参照）であったものが故障切替え中ではＶＴＥＰ１３１２経路となる。一方、OpenFlowスイッチ３００は、優先度を低くして対向ＶＴＥＰ宛ての経路広告（優先度は「１００」）を行う（図４の符号ｉ参照）。すなわち、ルータ１３０１（着側ＶＴＥＰ１３１１）から、ルータ１１０１を経由してルータ２１（発側ＶＴＥＰ２０１）に経路広告されたＶＴＥＰ経路（図４の符号ｅ，ｆ参照）の優先度は「１０」、ルータ１３０２（着側ＶＴＥＰ１３１２）から、ルータ１１０２を経由してルータ２１（発側ＶＴＥＰ２０１）に経路広告されたＶＴＥＰ経路（図４の符号ｇ，ｈ参照）の優先度は「２０」である。また、OpenFlowスイッチ３００のOpenFlow対応ルータ３１０から、Ｌ３ 広域ＮＷ３を経由してルータ２１（発側ＶＴＥＰ２０１）に経路広告されたＶＴＥＰ経路（図４の符号ｉ参照）の優先度は「１００」である。
【００６６】
対向ＶＴＥＰ故障時には、低コストであるＶＴＥＰ経路（優先度「１０」「２０」）は、トラヒックに使用されず（使用できず）、従ってルータ１３０１（着側ＶＴＥＰ１３１１）は、優先度が低くて通常では使用されない高コストのOpenFlow対応ルータ３１０のＶＴＥＰ経路（優先度「１００」）を一時的にトラヒックに用いる。なお、OpenFlowスイッチ３００が複数存在する場合には、優先度のより小さい、OpenFlowスイッチ３００がルーチングされる。
ここで、経路広告は、本来、自己の先に該当経路がある時に広告するものである。しかし、OpenFlowスイッチ３００による経路広告は、自己の先に該当経路（ここではＶＴＥＰ１３１１宛て経路）がないにも拘わらず経路広告する、という点で一般的なものとは異なる。
【００６７】
<OpenFlowスイッチ３００から宛先ＶＴＥＰから予備系着側ＶＴＥＰに書き換えるルーチング>：図４のOpenFlowスイッチ３００から予備系のルータ１３０２（着側ＶＴＥＰ１３１２）へ至るトラヒックフロー（図４の矢印（→）参照）>
OpenFlowスイッチ３００は、図５（ｂ）の符号ｂに示すように、あらかじめ設定しておいたルールに従い、宛先ＩＰを宛先ＶＴＥＰから予備系着側ＶＴＥＰに書き換える。この場合、OpenFlowスイッチ３００は、トンネルの宛先を「Outer IP(Dst:VTEP1311)」から、「Outer IP(Dst:VTEP131２)」に変更する。一般に、対向のＶＴＥＰ１３１１以外がＭＡＣテーブルのトンネルの宛先を書き換えることは、従来技術では行われていない。本実施形態では、ネットワークシステム１０００は、OpenFlowスイッチ３００を備え、対向ＶＴＥＰ故障時に限り、OpenFlowスイッチ３００が宛先ＩＰを書き換える点に特徴がある。
【００６８】
OpenFlowスイッチ３００は、予備系のルータ１３０２（着側ＶＴＥＰ１３１２）へ至るトラヒックフロー（図４の矢印（→）参照）に示すように、通常のルーチングにより予備系のルータ１３０２の着側ＶＴＥＰ１３１２まで転送が行われる。
ＤＣ１００のルータ１３０２の着側ＶＴＥＰ１３１２は、図４の符号ｄに示すように、ＭＡＣ学習されたＭＡＣテーブル（ＭＡＣ：ユーザＡ  RemoteＶＴＥＰ：ＶＴＥＰ２０１）を保持する。
【００６９】
<故障切替え中：トラヒックフローのまとめ>
故障が発生すると、発着ＶＴＥＰのみで構成される従来技術では、ＶＴＥＰの経路が消失するため、宛先が分からず転送ができなくなる。具体的には、例えば図４に示すルータ１３０１が故障した場合、ＶＴＥＰ１３１１宛の経路が失われ、ＤＣ１００側へルーチングすべきという経路情報は失われる。
【００７０】
これに対して、本実施形態では、ルータ１３０１(ＶＴＥＰ１３１１）が故障したとしても、OpenFlowスイッチ３００宛のルーチングを引き続き実行する。すなわち、故障切替え中、正常時には最も低い優先度「１００」であったOpenFlowスイッチ３００宛のＶＴＥＰ経路が一時的に使用され、OpenFlowスイッチ３００宛に転送が行われる。つまり、対向ＶＴＥＰ故障時には、ユーザＶＴＥＰ側からのトラヒックはOpenFlowスイッチ３００へ到達する。
【００７１】
OpenFlowスイッチ３００は、あらかじめ設定しておいたルールに従い、宛先ＩＰアドレスを予備系ＶＴＥＰ（図４ではルータ１３０２のＶＴＥＰ１３１２）に書き換える。すなわち、OpenFlowスイッチ３００は、図５（ｂ）の符号ｂに示すように、フレームフォーマット４００のＶＸＬＡＮフレーム４１０の宛先ＩＰを、「Outer IP(Dst:VTEP1311)」から、「Outer IP(Dst:VTEP131２)」に変更する。
その後、予備系のルータ１３０２（着側ＶＴＥＰ１３１２）へ至るトラヒックフロー（図４の矢印（→）参照）に示すように、通常のルーチングにより予備系のルータ１３０２まで転送が行われる。これにより、OpenFlowスイッチ３００のみで切替可能であるので、高速な故障切替が実現できる。
【００７２】
［故障切替え完了時の動作］
図６は、ネットワークシステム１０００の故障切替え完了時のトラヒックフローを説明する図である。
【００７３】
<サーバＶＴＥＰ側からユーザＶＴＥＰ側へのトラヒック疎通時のトラヒックフロー（図６の破線矢印（→）参照）>
故障切替え中のOpenFlowスイッチ３００の動作によって、予備系のルータ１３０２の着側ＶＴＥＰ１３１２までトラヒックが転送される。ルータ１３０２の着側ＶＴＥＰ１３１２は、図６の符号ｄに示すように、ＭＡＣ学習されたＭＡＣテーブル（ＭＡＣ：ユーザＡ  RemoteＶＴＥＰ：ＶＴＥＰ２０１）を保持する。
そして、図６の破線矢印（→）に示すように、ルータ１３０２の着側ＶＴＥＰ１３１２（サーバＶＴＥＰ側）からユーザＡのルータ２１の発側ＶＴＥＰ２０１（ユーザＶＴＥＰ側）へトラヒックが疎通する。
この場合、図６の符号ｊに示すように、ユーザＡへの返答は優先度（ルーチングコスト差）からルータ１１０１経由になる（図６の破線トラヒックフロー（→（破線矢印））参照）。
このように、OpenFlowスイッチ３００によって、一度、ルータ１３０２の予備系ＶＴＥＰ１３１２にパケット転送ができているので、高速切替が実現できる。
一般に、予備系サーバ側（図６ではサーバ１４０２）がリクエストに対する応答を返すことが想定される。この応答の仕組みについて説明する。
【００７４】
<ユーザＶＴＥＰ側のトラヒックフロー（図６の実線矢印（→）参照）>
着側ＶＴＥＰ１３１２（サーバＶＴＥＰ側）からルータ２１の発側ＶＴＥＰ２０１（ユーザＶＴＥＰ側）へのトラヒック疎通によって、ＶＴＥＰ２０１（ユーザＶＴＥＰ側）は、図６の符号ａに示すＭＡＣアドレステーブルが書き換わる。
すなわち、故障切替え完了時には、図６の符号ａに示すように、ルータ２１の発側ＶＴＥＰ２０１は、ＭＡＣ学習により、ＭＡＣテーブルの「RemoteＶＴＥＰ：ＶＴＥＰ１３１１」がＭＡＣテーブルの「RemoteＶＴＥＰ：ＶＴＥＰ１３１２」に書き換えられる。
【００７５】
ルータ１３０２は、ルータ２１からＶＸＬＡＮパケットが一度到達しているため、ＭＡＣテーブルが学習され（図６の符号ｄ参照）、ユーザＡの所属するルータ２１のＶＴＥＰが発側ＶＴＥＰ２０１であることを知ることができる。そのため、応答はOpenFlowスイッチ３００を経由することなく、直接、ルータ２１の発側ＶＴＥＰ２０１に転送される。また、図６の符号ｊに示すように、ユーザＡへの返答は優先度（ルーチングコスト差）からルータ１１０１経由になる（図６の破線トラヒックフロー（→（破線矢印））参照）。
【００７６】
一度、ルータ２１にルータ１３０２宛のトラヒックが転送されると、ルータ２１の発側ＶＴＥＰ２０１は、ＭＡＣテーブルを学習し（図６の符号ａ参照）、アプリＡがＶＴＥＰ１３１２の先に存在することを知ることができる。
例えば、サービスＡがユーザＡに通信を行うとＶＴＥＰ２０１にパケットが到達する。これを受けて、ＶＴＥＰ２０１は、ＶＴＥＰ２０１が有するＭＡＣアドレステーブルを書き換える。これにより、ＶＴＥＰ２０１は、サービスＡが、故障前、ＶＴＥＰ１３１１の先のサーバ１４０１に存在していたが、故障後、ＶＴＥＰ１３１２に存在することを知ることになる。
【００７７】
そして、図６に示すように、ルータ２１の発側ＶＴＥＰ２０１とルータ１３０２の着側ＶＴＥＰ１３１２にトンネル識別子（ＶＮＩ）＝１００００を付与する。ルータ２１の発側ＶＴＥＰ２０１は、ルータ１３０２の着側ＶＴＥＰ１３１２宛に仮想Ｌ２トンネルでカプセリングされたパケットを転送する。
その結果、OpenFlowスイッチ３００経由の通信は行われなくなり、ルーチングによる最適な経路で転送が可能となる。
【００７８】
このように、図６の符号ｋに示すように、OpenFlowスイッチ３００経由の通信は切替え中（図４のトラヒックフロー（→（矢印））参照）のみである（スケールする）。サーバ側からユーザ側へのトラヒック疎通時、ユーザ側ＶＴＥＰは、ＭＡＣアドレステーブルが書き換わる。そのため、OpenFlowスイッチ３００への疎通は一時的で済み、スケール性を考慮することができる。
【００７９】
図７は、ネットワークシステム１０００の故障切替え完了時のＶＸＬＡＮ環境のフレームフォーマットを示す図である。図７は、故障切替え完了時のＶＴＥＰ２０１からOpenFlowスイッチ３００のOpenFlow対応ルータ３１０間のフレームフォーマットを示す。
図７の符号ａに示すように、トンネルの宛先を「Outer IP(Dst:VTEP131２)」とする。ＭＡＣ学習により、宛先ＶＴＥＰの変更を知り、素早く予備系へ切り替えできる。下記の利点がある。（１）ＡＲＰ（またはＥ−ＶＡＮ）等による切替ではなく、トラヒックデータそのものだけで切替可能であるため、切替が高速である。（２）フラッディング不要なため、ＮＷやサーバ装置への負荷が小さくて済む。
【００８０】
以上説明したように、ネットワークシステム１０００は、Ｌ３ 広域ＮＷ３とＬ２ユーザ端末１１，１２，１３のＬ２ネットワークの接続点に実装された発側ＶＴＥＰ２１，２２，２３と、ＤＣ１００内のサーバ１４０１，１４０２とＬ３ ＤＣ ＮＷ１２０の接続点に実装された着側ＶＴＥＰ１３１１，１３１２と、Ｌ３ 広域ＮＷ３に接続されたOpenFlowスイッチ３００と、を備える。OpenFlowスイッチ３００は、着側ＶＴＥＰの故障時、あらかじめ設定した規則に従って、故障した着側ＶＴＥＰを、対応する予備系着側ＶＴＥＰに書き換えて転送するOpenFlowコントローラ３２０（処理部）と、宛先ＶＴＥＰを現用系から予備系ＶＴＥＰに書き換えるための予備ＶＴＥＰ対応表３２２（記憶部）と、を有する。
【００８１】
正常時、ルーチングで優先度をつけることでOpenFlowスイッチ３００へトラヒックを流入させないようにする。正常時は、トラヒックがOpenFlowスイッチ３００を通らず、通常のＶＸＬＡＮ環境そのものとなる。
故障切替え中、OpenFlowスイッチ３００宛のＶＴＥＰ経路が一時的に使用され、OpenFlowスイッチ３００宛に転送が行われる。OpenFlowスイッチ３００は、あらかじめ設定しておいたルールに従い、宛先ＩＰアドレスを予備系ＶＴＥＰ（ＶＴＥＰ１３１２）に書き換える。すなわち、OpenFlowスイッチ３００は、図５（ｂ）の符号ｂに示すように、フレームフォーマット４００のＶＸＬＡＮフレーム４１０の宛先ＩＰを、「Outer IP(Dst:VTEP1311)」から、「Outer IP(Dst:VTEP131２)」に変更する。
故障切替え完了時、予備系着側ＶＴＥＰは、対応する着側ＶＴＥＰが有していた発側ＶＴＥＰ宛てにトラヒックを疎通し、トラヒックが疎通した発側ＶＴＥＰは、予備系着側ＶＴＥＰを仮想Ｌ２トンネルの宛先としてパケットをカプセリングする。
【００８２】
このように、ネットワークシステム１０００は、正常時には一般的なＶＸＬＡＮ環境で転送を行う。ネットワークシステム１０００は、ＶＴＥＰ故障時（障害時）にはOpenFlowスイッチ３００に最初の数パケットのみ転送を担わせる。すなわち、ネットワークシステム１０００は、正常時はOpenFlowスイッチ３００のOpenFlowを使用せず、ＶＴＥＰ故障時も一時的な使用にとどめる。
宛先ＶＴＥＰを変更し、経路切替を実現することで、ＶＴＥＰ故障を救済し、広域ＮＷにおける耐障害性や運用性を向上させることができる。ＶＴＥＰ故障時もフラッディングなしで実現可能となる。
図１に示すように、ルータ２３（発側ＶＴＥＰ）とルータ２３０１およびルータ１３０１（着側ＶＴＥＰ）に仮想Ｌ２トンネル識別子（ＶＮＩ）＝１００００を付与する。これにより、ＤＣ１００，２００は、付与されたトンネル識別子ＶＮＩを参照するだけでどのＶＴＥＰに転送すればよいかを判別可能となる。また、ルータ２３（発側ＶＴＥＰ）に、ルータ２３０１とルータ１３０１（着側ＶＴＥＰ）とが接続されるマルチポイント接続も可能となる。
【００８３】
これにより、以下の効果がある。
（１)  ＮＦＶ環境においてサーバ障害時の切り替え時間が短縮される。特に、ユーザ側のＶＴＥＰの数が多い環境になればなるほど顕著になる。一般に、ＮＦＶでは、ＤＣ側ＶＴＥＰよりユーザ側ＶＴＥＰの方が圧倒的に多いため、本ネットワークシステム１０００による耐障害性向上は重要となる。
（２)  ＤＣ故障に対してその影響が広域ＮＷまで波及しない。
以上により、耐障害性や運用性が向上する。
【００８４】
また、本実施形態では、下記のような特有の効果がある。
（３）  全トラヒックを一般に転送処理能力の低いOpenFlowで処理する必要がないので、大規模ネットワークへ適用することができる。
（４）  図１に示すように、ルータ２３の発側ＶＴＥＰ２０３に、ルータ１３０１の着側ＶＴＥＰ１３１１とルータ２３０１の着側ＶＴＥＰ２３１１とが接続されるマルチポイント接続も可能となる。
【００８５】
（５）  通常ＮＷ側で切替不可能であり、かつ、切替時間が他の条件（ユーザやアプリケーションの挙動、ＭＡＣアドレスの削除タイミング）に依存する障害に対し、高速な切替が可能となる。
（６）  正常時はOpenFlowスイッチ３００宛のルーチング優先度を低くしておくことで、スケールする構成を実現している。
（７）  故障時は一時的にOpenFlowスイッチ３００宛に転送を実行し、宛先ＩＰアドレスを書き換えることで予備系ルータへの転送を実現する。
（８）  経路切替後に予備系ルータ発の通信が一度でも発生すると、ＭＡＣアドレス学習の仕組みにより最適なルートで経路転送を実現することができる。
【００８６】
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００８７】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行するためのソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、又は、ＩＣ（Integrated Circuit）カード、ＳＤ（Secure Digital）カード、光ディスク等の記録媒体に保持することができる。
【符号の説明】
【００８８】
１，１１，１２，１３  ユーザ端末（Ｌ２サービス提供端末）
３  Ｌ３ 広域ＮＷ（Ｌ３ネットワーク）
２，２１，２２，１１０，１１０１，１１０２，１３０，１３０１，１３０２，２１０，２１０１，２１０２，２３０，２３０１，２３０２  ルータ
２０，２０１，２０２，２０３  発側ＶＴＥＰ（発側トンネル終端ポイント）
１００，２００  ＤＣ
１４０１，２４０１  現用系サーバ
１４０２，２４０２  予備系サーバ
１３１，１３１１，１３１２，２３１，２３１１，２３１２  着側ＶＴＥＰ（着側トンネル終端ポイント）
１２０，２２０  Ｌ３ ＤＣ ＮＷ
３００  OpenFlowスイッチ
３１０  OpenFlow対応ルータ
３２０  OpenFlowコントローラ（処理部）
３２１  ルーチングエンジン
３２２  予備ＶＴＥＰ対応表（記憶部）
１０００  ネットワークシステム
ＶＮＩ  トンネル識別子
【図１】
0006402078.tif 000002
【図２】
0006402078.tif 000003
【図３】
0006402078.tif 000004
【図４】
0006402078.tif 000005
【図５】
0006402078.tif 000006
【図６】
0006402078.tif 000007
【図７】
0006402078.tif 000008
【図８】
0006402078.tif 000009
【図９】
0006402078.tif 000010
【図１０】
0006402078.tif 000011