JP2015204533A - オープンフロースイッチおよびオープンフローネットワークの障害復旧方法 - Google Patents

オープンフロースイッチおよびオープンフローネットワークの障害復旧方法 Download PDF

Info

Publication number
JP2015204533A
JP2015204533A JP2014083141A JP2014083141A JP2015204533A JP 2015204533 A JP2015204533 A JP 2015204533A JP 2014083141 A JP2014083141 A JP 2014083141A JP 2014083141 A JP2014083141 A JP 2014083141A JP 2015204533 A JP2015204533 A JP 2015204533A
Authority
JP
Japan
Prior art keywords
switch
openflow
channel
controller
open flow
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.)
Granted
Application number
JP2014083141A
Other languages
English (en)
Other versions
JP6287518B2 (ja
Inventor
山下 真司
Shinji Yamashita
真司 山下
亜紀子 山田
Akiko Yamada
亜紀子 山田
利夫 宗宮
Toshio Somiya
利夫 宗宮
翔 清水
Sho Shimizu
翔 清水
中津川 恵一
Keiichi Nakatsugawa
恵一 中津川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014083141A priority Critical patent/JP6287518B2/ja
Priority to US14/665,564 priority patent/US9628324B2/en
Publication of JP2015204533A publication Critical patent/JP2015204533A/ja
Application granted granted Critical
Publication of JP6287518B2 publication Critical patent/JP6287518B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】オープンフローネットワークにおいてオープンフローコントローラとオープンフロースイッチとの間に予備回線を設けることなくオープンフローチャネルの障害の復旧を実現する。
【解決手段】複数のオープンフロースイッチおよび複数のオープンフロースイッチを制御するオープンフローコントローラを含むオープンフローネットワークにおいて使用されるオープンフロースイッチは、オープンフローコントローラとの間のリンクの障害を検出する障害検出部と、障害検出部により障害が検出されたときに、他のオープンフロースイッチを経由して前記オープンフローコントローラとの間で制御情報を伝送するためのオープンフローチャネルを確立するチャネル管理部を有する。
【選択図】図4

Description

本発明は、オープンフローネットワークにおいて使用されるオープンフロースイッチ、およびオープンフローネットワークの障害復旧方法に係わる。
SDN(Software Defined Networking)についての研究および開発が進められている。SDNは、ソフトウェアでネットワーク全体の挙動を制御する。そして、SDNを実現する技術の1つとしてオープンフローネットワークが注目されている。オープンフローネットワークは、オープンフローコントローラ(OFC:Open Flow Controller)および複数のオープンフロースイッチ(OF−SW:Open Flow Switch)を含んで構成される。
各オープンフロースイッチは、フローテーブルを有する。フローテーブルは、1または複数のフローエントリにより構成される。各フローエントリには、対応するフローに対する動作が記述されている。具体的には、各フローエントリは、「マッチ条件」「アクション」などにより構成される。マッチ条件は、受信パケットが属するフローを識別する識別情報に相当する。アクションは、マッチ条件に適合する受信パケットに対する動作を記述する。そして、オープンフロースイッチは、受信パケットのヘッダ情報でフローテーブルのマッチ条件をサーチし、対応するアクションを実行する。
オープンフローコントローラは、各オープンフロースイッチのフローテーブルを一元的に管理する。また、オープンフローコントローラは、各オープンフロースイッチのフローテーブルの内容を更新することができる。
オープンフローネットワークの立上げ時には、オープンフローコントローラと各オープンフロースイッチとの間にそれぞれオープンフローチャネルが確立される。そして、オープンフローコントローラと各オープンフロースイッチとの間でそれぞれオープンフローチャネルを介してメッセージが伝送され、各オープンフロースイッチのフローテーブルが設定される。これにより、オープンフローコントローラの制御の下でパケット転送が実現される。また、ネットワークの動作を変更する際には、オープンフローコントローラは、必要な情報および指示を含むメッセージを対応するオープンフローチャネルを介して対応するオープンフロースイッチに送信する。そうすると、そのオープンフロースイッチは、受信したメッセージに応じてフローテーブルを更新する。
このように、各オープンフロースイッチは、オープンフローコントローラからオープンフローチャネルを介して受信するメッセージに基づいてフローテーブルを作成し、そのフローテーブルを利用してパケットを転送する。このため、オープンフローコントローラとオープンフロースイッチとの間に確立されているオープンフローチャネルに障害が発生すると、オープンフロースイッチは、オープンフローコントローラの制御の下でのパケット転送を実行できなくなるおそれがある。したがって、オープンフローチャネルの障害を復旧するための構成または方法が提案されている。
例えば、オープンフローコントローラと各オープンフロースイッチとの間の物理リンクを2重化する構成が提案されている。この場合、現用系リンク上にオープンフローチャネルが確立される。そして、現用系リンクに障害が発生したときは、予備系リンク上にオープンフローチャネルが確立される。
なお、関連する技術は、例えば、特許文献1〜6に記載されている。
WO2011/083785号 特開2011−146982号公報(特許第5207082号) 特開2011−160363号公報 特開2011−166384号公報 特開2013−211706号公報 特開2012−49674号公報
しかしながら、オープンフローコントローラと各オープンフロースイッチとの間の物理リンクを2重化する構成では、ネットワークを構築するためのコストが増加してしまう。また、各オープンフロースイッチの物理ポートの数を増やす必要がある。
本発明の1つの側面に係わる目的は、オープンフローネットワークにおいてオープンフローコントローラとオープンフロースイッチとの間に予備回線を設けることなくオープンフローチャネルの障害の復旧を実現することである。
本発明の1つの態様のオープンフロースイッチは、複数のオープンフロースイッチおよび前記複数のオープンフロースイッチを制御するオープンフローコントローラを含むオープンフローネットワークにおいて使用される。このオープンフロースイッチは、前記オープンフローコントローラとの間のリンクの障害を検出する障害検出部と、前記障害検出部により障害が検出されたときに、他のオープンフロースイッチを経由して前記オープンフローコントローラとの間で制御情報を伝送するためのオープンフローチャネルを確立するチャネル管理部と、を有する。
上述の態様によれば、オープンフローネットワークにおいてオープンフローコントローラとオープンフロースイッチとの間に予備回線を設けることなくオープンフローチャネルの障害を復旧できる。
オープンフローネットワークの一例を示す図である。 フローテーブルの実施例を示す図である。 オープンフローネットワークの立上げ手順を示すシーケンス図である。 リンク障害に対する復旧手順の一例を示す図である。 OFスイッチの構成の一例を示す図である。 スイッチ管理テーブルの一例を示す図である。 復旧手順の一例を示すシーケンス図(その1)である。 復旧手順の一例を示すシーケンス図(その2)である。 多重障害に対する復旧手順の一例を示す図である。 復旧手順のバリエーションを示す図である。 復旧手順の他のバリエーションを示す図である。 第2の実施形態における復旧手順の一例を示す図である。 OFスイッチの統計情報について説明する図である。 第2の実施形態の復旧手順の一例を示すシーケンス図(その1)である。 第2の実施形態の復旧手順の一例を示すシーケンス図(その2)である。 第2の実施形態の復旧手順の一例を示すシーケンス図(その3)である。
図1は、本発明の実施形態に係わるオープンフローネットワークの一例を示す。実施形態に係わるオープンフローネットワーク100は、図1に示すように、複数のオープンフロースイッチ(OF−SW:Open Flow Switch)10、及びオープンフローコントローラ(OFC:Open Flow Controller)20を有する。この例は、オープンフローネットワーク100は、4台のオープンフロースイッチ10(10−1〜10−4)を有する。また、各オープンフロースイッチ10とオープンフローコントローラ20との間には、レイヤ2スイッチ(L2−SW)30が設けられている。
尚、以下の記載では、オープンフロースイッチを「OFスイッチ」と呼ぶことがある。また、オープンフローコントローラを「OFコントローラ」と呼ぶことがある。さらに、図面上では、OFスイッチ10−1〜10−4を「OF−SW1」〜「OF−SW4」と表記することがある。
OFスイッチ10は、他の1または複数のOFスイッチ10に接続されている。図1に示す実施例では、OFスイッチ10−1は、OFスイッチ10−2およびOFスイッチ10−3に接続されている。OFスイッチ10−2は、OFスイッチ10−1およびOFスイッチ10−4に接続されている。OFスイッチ10−3は、OFスイッチ10−1およびOFスイッチ10−4に接続されている。OFスイッチ10−4は、OFスイッチ10−2およびOFスイッチ10−3に接続されている。なお、OFスイッチ10間のリンクは、例えば、光ファイバにより実現される。また、OFスイッチ10間のリンク上には、中継ノードが設けられていてもよい。
OFスイッチ10−1にはホスト41が収容されている。また、OFスイッチ10−4にはホスト42が収容されている。この実施例では、ホスト41およびホスト42のIPアドレスは、それぞれ「10.0.0.1」「10.0.0.2」である。
OFスイッチ10は、OFコントローラ20に接続されている。この実施例では、各OFスイッチ10は、レイヤ2スイッチ30を介してOFコントローラ20に接続されている。また、各OFスイッチ10とレイヤ2スイッチ30との間にはそれぞれ専用の物理リンクが設けられている。ただし、オープンフローネットワーク100において、レイヤ2スイッチ30は必須の装置ではない。
OFスイッチ10は、フローテーブル11を有する。フローテーブル11は、1または複数のフローエントリにより構成される。各フローエントリには、対応するフローに対する動作が記述されている。
図2は、フローテーブル11の実施例を示す。図2に示す例では、フローテーブル11の各エントリは「マッチ条件」「アクション」「統計情報」を含む。「マッチ条件」は、受信パケットが属するフローを識別する。図2に示す例では、マッチ条件として送信元ホストのIPアドレスが記録されている。「アクション」は、マッチ条件に適合する受信パケットに対する動作を記述する。たとえば、OFスイッチ10−1(OF−SW1)のフローテーブル11には「マッチ条件:送信元IPアドレス:10.0.0.1」に対して「アクション:受信パケットをポートp2を介して出力する」が記録されている。「統計情報」は、マッチ条件に適合するフローに係わる統計情報を表す。図2に示す例では、OFスイッチ10を通過するフローのトラヒック量(ここでは、転送パケットのバイト数)が記録されている。
なお、フローテーブル11のマッチ条件は、受信パケットの送信元IPアドレスに限定されず、他の条件であってもよい。即ち、マッチ条件としては、受信パケットのヘッダ内の任意の情報を使用することができる。例えば、ポート番号、送信元MACアドレス、宛先MACアドレス、仮想LAN識別子、送信元IPアドレス、宛先IPアドレス、またはこれらの任意の組合せをマッチ条件として使用してもよい。
フローテーブル11は、OFコントローラ20により設定され、更新される。即ち、OFコントローラ20は、各OFスイッチ10のフローテーブル11を設定および更新することができる。例えば、OFコントローラ20は、ユーザからの要求に応じて、その要求に係わる1または複数のOFスイッチ10のフローテーブル11を設定または更新する。
OFコントローラ20と各OFスイッチ10との間では、それぞれオープンフローチャネル(以下、OFチャネル)を介して双方向にメッセージが伝送される。図1に示す例では、OFコントローラ20とOFスイッチ10−1、10−2、10−3、10−4との間にそれぞれOFチャネルCH1、CH2、CH3、CH4が設定されている。OFチャネルは、例えば、TCPコネクションにより実現される。或いは、例えば、TCPコネクション上に設定される。
図3は、オープンフローネットワーク100の立上げ手順の一例を示すシーケンス図である。このシーケンスは、OFコントローラ20と各OFスイッチ10との間でそれぞれ実行される。
コネクション確立処理においては、TCPまたはTLSを利用してコネクションが確立される。すなわち、OFスイッチ20は、OFコントローラ20へコネクション確立要求メッセージを送信する。OFコントローラ20は、コネクション確立要求メッセージに対してOFスイッチ10へコネクション確立応答メッセージを返送する。OFスイッチ10は、OFコントローラ20へACKメッセージを送信する。この後、OFコントローラ20とOFスイッチ10との間でHelloメッセージが交換される。
ハンドシェイク処理では、OFコントローラ20は、OFスイッチ10へFeatures要求メッセージを送信する。そうすると、OFスイッチ10は、この要求メッセージに応じてOFコントローラ20へFeatures応答メッセージを返送する。Features応答メッセージは、OFスイッチ10の基本情報を含む。この基本情報は、例えば、OFスイッチ10を識別する情報(DPID:Data Path ID)、OFスイッチ10がサポートする機能を表す情報などを含む。
フローテーブル設定処理においては、OFコントローラ20からOFスイッチ10に対してFlowModメッセージが送信される。FlowModメッセージは、フローテーブル11に格納される情報を含む。したがって、OFコントローラ20は、OFスイッチ10のフローテーブル11を設定することができる。
死活監視処理では、OFコントローラ20からOFスイッチ10へEcho要求メッセージが送信される。OFスイッチ10は、Echo要求メッセージを受信すると、OFコントローラ20へEcho応答メッセージを返送する。この死活監視処理は、例えば、定期的に実行される。したがって、OFコントローラ20は、Echo要求/応答メッセージに基づいて、OFスイッチ10との間のリンクの障害をモニタできる。同様に、OFスイッチ10も、Echo要求/応答メッセージに基づいて、OFコントローラ20との間のリンクの障害をモニタできる。
この後、OFコントローラ20は、必要に応じて、任意のタイミングでOFスイッチ10へFlowModメッセージを送信することができる。また、OFスイッチ10は、OFコントローラ20に対してFlowModメッセージを要求することができる。例えば、受信パケットのヘッダ情報がフローテーブル11のマッチ条件に適合しないときは、OFスイッチ10は、OFコントローラ20に対して問合せメッセージを送信する。この場合、OFコントローラ20は、問合せメッセージに対応するFlowModメッセージを生成してOFスイッチ10へ送信する。
なお、OFコントローラ20は、メッセージ送受信部21およびチャネル管理部22を有する。メッセージ送受信部21は、OFスイッチ10へOFメッセージを送信し、OFスイッチ10からOFメッセージを受信する。なお、OFメッセージは、OFスイッチ10とOFコントローラ20との間で伝送される制御情報の一例である。OFメッセージの実施例は、図3を参照しながら説明した通りである。ただし、OFメッセージは、図3に示すメッセージに限定されるものではない。チャネル管理部22は、OFスイッチ10との間のOFチャネルを管理する。
上記構成のオープンフローネットワーク100において、例えば、ホスト41とホスト42との間の通信が要求されたものとする。この場合、OFコントローラ20は、ホスト41とホスト42との間の通信を提供するパスを決定する。この実施例では、OFスイッチ10−1、10−2、10−4を経由するパスが指定されるものとする。この場合、OFコントローラ20は、OFスイッチ10−1、10−2、10−4のフローテーブル11をそれぞれ図2に示す状態に更新する。
ホスト41からホスト42へ送信されるパケットは、OFスイッチ10−1により受信される。OFスイッチ10−1は、受信パケットのヘッダ情報(ここでは、送信元IPアドレス)でフローテーブル11を参照することにより、ポートp2を介してそのパケットを送出する。よって、このパケットは、OFスイッチ10−2へ転送される。同様に、OFスイッチ10−2は、このパケットをOFスイッチ10−4へ転送する。また、OFスイッチ10−4は、このパケットをホスト42へ転送する。ホスト42は、ホスト41から送信されるパケットを受信する。同様に、ホスト42から送信されるパケットは、OFスイッチ10−4、10−2、10−1によりホスト41へ転送される。
このように、OFスイッチ10は、フローテーブル11に基づいて受信パケットを処理する。そして、フローテーブル11は、OFコントローラ20により設定および更新される。よって、OFコントローラ20との間のリンクに障害が発生すると、OFスイッチ10は、要求されている通信サービスを提供できない。したがって、オープンフローネットワーク100は、リンク障害を復旧させる機能を有している。
<第1の実施形態>
図4は、OFスイッチ10とOFコントローラ20との間のリンク障害に対する復旧手順の一例を示す。図4に示す例では、OFスイッチ10−1とOFコントローラ20との間のリンク(実際には、OFスイッチ10−1とレイヤ2スイッチ30との間のリンク)に障害が発生している。そして、この結果、OFスイッチ10−1とOFコントローラ20との間のOFチャネルCH1が切断されている。この場合、OFスイッチ10−1およびOFコントローラ20は、Echo要求/Echo応答を受信しないことにより、それぞれその障害を検出する。
OFスイッチ10−1は、OFコントローラ20との間のリンク障害を検出すると、予め指定されているプロキシOFスイッチとの間に新たなTCPコネクションを確立する。図4に示す例では、OFスイッチ10−1に対して指定されているプロキシOFスイッチは、OFスイッチ10−2である。この場合、OFスイッチ10−1は、OFスイッチ10−2との間に新たなTCPコネクションを確立する。これにより、OFスイッチ10−1とOFスイッチ10−2との間にOFチャネルCH1aが設定される。
続いて、OFスイッチ10−2は、OFコントローラ20との間に、OFスイッチ10−1のための新たなTCPコネクションを確立する。ここで、OFコントローラ20は、OFスイッチ10−1との間のリンクに障害が発生したことを検出している。また、OFコントローラ20は、OFスイッチ10−1のプロキシOFスイッチがOFスイッチ10−2であることを知っているものとする。そうすると、OFコントローラ20は、OFスイッチ10−2からコネクション確立要求を受信したときに、そのコネクション確立要求を許可する。これにより、OFスイッチ10−2とOFコントローラ20との間にTCPコネクションが確立され、OFチャネルCH1bが設定される。
更に、OFスイッチ10−2は、下記の処理が実行されるようにメッセージ転送部の設定を更新する。
(1)OFチャネルCH1aを介してOFスイッチ10−1からOFコントローラ20宛てのOFメッセージを受信したときは、そのOFメッセージをOFチャネルCH1bを介してOFコントローラ20へ転送する。
(2)OFチャネルCH1bを介してOFコントローラ20からOFスイッチ10−1宛てのOFメッセージを受信したときは、そのOFメッセージをOFチャネルCH1aを介してOFスイッチ10−1へ転送する。
なお、上述したOFチャネルCH1aおよびCH1bは、例えば、仮想LANで実現してもよい。この場合、例えば、OFスイッチ10−1とOFコントローラ20との間の通信を識別する仮想LAN識別子が予めOFスイッチ10−1、OFスイッチ10−2、OFコンントローラ20に設定されている。或いは、OFチャネルCH1a、CH1bを設定する手順において、上述の仮想LAN識別子がOFスイッチ10−1、OFスイッチ10−2、OFコンントローラ20に設定さるようにしてもよい。なお、以下の説明では、この仮想LAN識別子を「VID−SW1」と呼ぶことがある。そして、OFスイッチ10−1は、OFコントローラ20へOFメッセージを送信するときは、そのOFメッセージにVID−SW1を付与する。また、OFスイッチコントローラ20は、OFスイッチ10−1へOFメッセージを送信するときは、そのOFメッセージにVID−SW1付与する。さらに、OFスイッチ10−2は、下記の処理が実行されるようにメッセージ転送部の設定を更新する。
(1)VID−SW1が付与されたOFメッセージをOFスイッチ10−1からOFチャネルCH1aを介して受信したときは、そのOFメッセージをOFチャネルCH1bを介してOFコントローラ20へ転送する。
(2)VID−SW1が付与されたOFメッセージをOFコントローラ20からOFチャネルCH1bを介して受信したときは、そのOFメッセージをOFチャネルCH1aを介してOFスイッチ10−1へ転送する。
このように、OFスイッチ10−1は、OFスイッチ10−1とOFコントローラ20との間のリンク障害を検出したときは、オープンフローネットワーク100内の他のOFスイッチ10をプロキシOFスイッチとして指定して、OFコントローラ20との間に新たなコネクションを確立する。これにより、OFスイッチ10−1とOFコントローラ20との間のOFチャネルが復旧する。
OFスイッチ10−1とOFコントローラ20との間でOFスイッチ10−2を経由するOFチャネルが復旧した後は、OFスイッチ10−1がOFチャネルCH1aを使用してOFメッセージを送信すると、そのメッセージはOFスイッチ10−2によりOFコントローラ20へ転送される。すなわち、OFスイッチ10−1にとっては、OFスイッチ10−2がOFコントローラ20であるように見える。同様に、OFコントローラ20がOFチャネルCH1bを使用してOFメッセージを送信すると、そのメッセージはOFスイッチ10−2によりOFスイッチ10−1へ転送される。すなわち、OFコントローラ20にとっては、OFスイッチ10−2がOFスイッチ10−1であるように見える。
このように、オープンフローネットワーク100においては、各OFスイッチ10とOFコントローラ20との間に予備回線を設けていなくても、各OFスイッチ10とOFコントローラ20との間のリンク障害を復旧させることが可能である。したがって、オープンフローネットワークを構築するためのコストを削減することができる。すなわち、安価な構成でリンク障害の復旧を実現できる。また、各OFスイッチに予備回線のためのポートを設ける必要がないので、OFスイッチのコストを削減することも可能である。
図5は、OFスイッチ10の構成の一例を示す。OFスイッチ10は、図5に示すように、フローテーブル11、パケット処理部12、プロキシ情報格納部13、動作モード情報格納部14、メッセージ送受信部15、メッセージ転送部16、チャネル管理部17を有する。なお、この実施例では、オープンフローネットワーク100は、パケット(または、フレーム)を伝送するものとする。また、OFスイッチ10は、他の要素を有していてもよい。
パケット処理部12は、受信パケットを処理する。例えば、パケット処理部12は、受信パケットのヘッダ情報に基づいてフローテーブル11をサーチし、そのパケットに対するアクションを決定することができる。また、パケット処理部12は、受信パケットのペイロードにOFメッセージが格納されているときは、そのパケットをメッセージ送受信部15またはメッセージ転送部16に渡す。
プロキシ情報格納部13は、プロキシ情報および要求元情報を格納する。プロキシ情報は、OFコントローラ20との間のリンク障害が検出されたときにプロキシOFスイッチとして動作する他のOFスイッチ10を表す。例えば、図4に示す例では、OFスイッチ10−1のプロキシ情報格納部13には「プロキシ情報:OFスイッチ10−2」が格納されている。また、プロキシ情報は、プロキシOFスイッチを使用して伝送されるOFメッセージが属する仮想LANを識別する仮想LAN識別子を格納していてもよい。また、要求元情報は、OFスイッチ10に対してプロキシOFスイッチとして動作することを要求する他のOFスイッチ10を表す。例えば、図4に示す例では、OFスイッチ10−2は、OFスイッチ10−1からプロキシOFスイッチとして動作することを要求されている。この場合、OFスイッチ10−2のプロキシ情報格納部13には「要求元情報:OFスイッチ10−1」が格納される。
プロキシ情報は、例えば、OFコントローラ20により指定され、プロキシ情報格納部13に予め格納されている。一方、要求元情報は、予めプロキシ情報格納部13に格納されていてもよいし、コネクション確立時にプロキシ情報格納部13に格納されるようにしてもよい。
動作モード情報格納部14は、障害フラグおよびプロキシフラグを格納する。OFスイッチ10が通常の動作をしているとき(ここでは、OFコントローラ20との間のリンクが正常であるとき)は、障害フラグは「0」である。そして、OFコントローラ20との間のリンク障害が検出されたときに、障害フラグは「1」に更新される。また、プロキシフラグは、OFスイッチ10が他のOFスイッチのためのプロキシOFスイッチとして動作しているか否かを表す。例えば、図4に示す例では、OFスイッチ10−1の障害フラグは「1」に更新され、OFスイッチ10−2のプロキシフラグは「1」に更新される。
メッセージ送受信部15は、OFコントローラ20へOFメッセージを送信し、OFコントローラ20からOFメッセージを受信する。ただし、OFコントローラ20との間のリンクに障害が発生しているときは、メッセージ送受信部15は、プロキシOFスイッチへOFメッセージを送信し、プロキシOFスイッチからOFメッセージを受信する。
メッセージ送受信部15は、メッセージ処理部15aおよび障害検出部15bを有する。メッセージ処理部15aは、OFコントローラ20へ送信するOFメッセージを生成することができる。例えば、受信パケットのヘッダ情報がフローテーブル11のマッチ条件に適合しないときは、メッセージ処理部15aは、問合せメッセージを生成してもよい。また、メッセージ処理部15aは、OFコントローラ20から受信するOFメッセージを処理する。例えば、メッセージ処理部15aは、OFコントローラ20から受信するOFメッセージに基づいてフローテーブル11を設定または更新することができる。障害検出部15bは、上述したEcho要求メッセージおよびEcho応答メッセージを利用してOFコントローラ20との間のリンクの状態をモニタする。
メッセージ転送部16は、転送情報に従って受信メッセージを転送する。転送情報は、例えば、他のOFスイッチ10から受信するコネクション確立要求に応じて生成される。或いは、コネクション確立要求の要求元OFスイッチが予め決められているときは、生成情報も予めメッセージ転送部16に設定されていてもよい。例えば、図4に示すOFスイッチ10−2に与えられる転送情報は、以下の通りである。
(1)OFスイッチ10−1からOFチャネルCH1aを介して受信するOFメッセージは、OFチャネルCH1bを介してOFコントローラ20へ転送される。
(2)OFコントローラ20からOFチャネルCH1bを介して受信するOFメッセージは、OFチャネルCH1aを介してOFスイッチ10−1へ転送される。
チャネル管理部17は、他のOFスイッチ10との間にコネクションを確立してOFチャネルを設定することができる。また、チャネル管理部17は、OFコントローラ20との間にコネクションを確立してOFチャネルを設定することができる。さらに、チャネル管理部17は、確立したコネクション/OFチャネルに応じてメッセージ転送部16の転送情報を更新してもよい。
パケット処理部12、メッセージ送受信部15、メッセージ転送部16、チャネル管理部17は、例えば、プロセッサおよびメモリを用いて実現される。この場合、パケット処理部12、メッセージ送受信部15、メッセージ転送部16、チャネル管理部17の一部をハードウェア回路で実現してもよい。
なお、OFコントローラ20は、各OFスイッチ10の状態を管理している。例えば、OFコントローラ20は、図6に示すスイッチ管理テーブルを利用して各OFスイッチ10の状態を管理してもよい。スイッチ管理テーブルには、各OFスイッチ10について対応するプロキシOFスイッチが登録されている。例えば、OFスイッチ10−1のプロキシOFスイッチとしてOFスイッチ10−2が登録されている。また、各OFスイッチ10とOFコントローラ20との間のリンクの状態もスイッチ管理テーブルに記録される。図6に示す例では、OFスイッチ10−1とOFコントローラ20との間のリンクに障害が発生している状態が表されている。
図7A〜図7Bは、第1の実施形態における障害復旧手順の一例を示すシーケンス図である。なお、初期立上げは、図3を参照しながら説明したように、OFコントローラ20と各OFスイッチ10との間で実行される。すなわち、OFコントローラ20と各OFスイッチ10との間でコネクション確立処理、ハンドシェイク処理、フローテーブル設定処理が実行される。
初期立上げが完了した後は、OFコントローラ20と各OFスイッチ10との間で死活監視処理が実行される。すなわち、OFコントローラ20と各OFスイッチ10との間でEcho要求/Echo応答が送信される。そして、この実施例では、OFコントローラ20とOFスイッチ10−1との間のリンクに障害が発生する。この場合、OFコントローラ20のメッセージ送受信部21およびOFスイッチ10−1のメッセージ送受信部15は、それぞれそのリンク障害を検出する。
OFスイッチ10−1において、メッセージ送受信部15は、リンク障害の発生をチャネル管理部17に通知する。そうすると、チャネル管理部17は、プロキシ情報格納部13に格納されているプロキシ情報を参照することにより、プロキシOFスイッチとして動作するOFスイッチを特定する。この実施例では、プロキシOFスイッチとしてOFスイッチ10−2が指定されている。この場合、チャネル管理部17は、OFスイッチ10−2へコネクション確立要求を送信する。このコネクション確立要求は、OFスイッチ10−2のチャネル管理部17により受信される。
コネクション確立要求を受信すると、OFスイッチ10−2のチャネル管理部17は、コネクション確立応答をOFスイッチ10−1へ返送する。これにより、OFスイッチ10−1とOFスイッチ10−2との間に新たなコネクション/OFチャネルが確立される。図4に示す例では、OFチャネルCH1aが確立される。
また、OFスイッチ10−2のチャネル管理部17は、OFコントローラ20へコネクション確立要求を送信する。このコネクション確立要求は、OFコントローラ20のチャネル管理部22により受信される。そうすると、チャネル管理部22は、コネクション確立応答をOFスイッチ10−2へ返送する。これにより、OFスイッチ10−2とOFコントローラ20との間に新たなコネクション/OFチャネルが確立される。図4に示す例では、OFチャネルCH1bが確立される。
ここで、OFコントローラ20は、OFスイッチ10−1との間のリンク障害を先に検出している。また、OFコントローラ20には、OFスイッチ10−1のプロキシOFスイッチがOFスイッチ10−2であることが登録されている。すなわち、OFコントローラ20は、上記リンク障害に起因してOFスイッチ10−2からコネクション確立要求が送信されてくることを予測している。よって、OFコントローラ20は、OFスイッチ10−2からコネクション確立要求を受信したときは、その要求を許可してコネクション確立応答をOFスイッチ10−2へ返送する。一方、OFコントローラ20は、OFスイッチ10−2以外のOFスイッチ10からコネクション確立要求を受信した場合には、その要求を却下する。したがって、予測されていないプロキシOFスイッチを経由するOFチャネルが確立されることはなく、オープンフローネットワーク100のセキュリティが確保される。
このように、リンク障害が発生すると、その障害を検出したOFスイッチ10−1とプロキシOFスイッチとして指定されているOFスイッチ10−2との間、及び、OFスイッチ10−2とOFコントローラ20との間にそれぞれOFチャネルが確立される。このとき、OFスイッチ10−1、OFスイッチ10−2、OFコントローラ20において以下の設定が行われる。
OFスイッチ10−1においては、障害フラグが「0」から「1」に更新される。障害フラグが「1」に設定されているときは、メッセージ送受信部15は、生成したOFメッセージを、OFコントローラ20ではなくプロキシOFスイッチ(すなわち、OFスイッチ10−2)へ送信する。すなわち、OFメッセージの送信先がOFコントローラ20からOFスイッチ10−2に変更される。
OFスイッチ10−2においては、メッセージ転送部16の転送情報が上述したように更新される。また、プロキシフラグが「0」から「1」に更新される。プロキシフラグが「1」に設定されているときは、OFスイッチ10−2は、受信したOFメッセージを転送情報により指定される宛先へ転送する。
OFコントローラ20においては、図6に示すスイッチ管理テーブルが更新される。具体的には、OFスイッチ10−1の状態が「1:障害」に更新される。そうすると、メッセージ送受信部21は、OFスイッチ10−1のためのOFメッセージを、OFスイッチ10−1ではなくプロキシOFスイッチ(即ち、OFスイッチ10−2)へ送信する。すなわち、OFメッセージの送信先がOFスイッチ10−1からOFスイッチ10−2に変更される。
この後、オープンフローネットワーク100においてOFメッセージは以下のよう伝送される。
OFスイッチ10−1は、OFメッセージをOFコントローラ20へ送信するときは、障害フラグを参照する。このとき、OFスイッチ10−1の障害フラグは「1」に設定されている。この場合、OFスイッチ10−1のOFメッセージ送信部15は、生成したOFメッセージを、OFコントローラ20ではなくプロキシOFスイッチ(即ち、OFスイッチ10−2)へ送信する。すなわち、OFスイッチ10−1は、図4に示すOFチャネルCH1aを介してOFメッセージをOFスイッチ10−2へ送信する。
OFスイッチ10−2は、OFスイッチ10−1からOFチャネルCH1aを介してOFメッセージを受信すると、プロキシフラグを参照する。このとき、OFスイッチ10−2のプロキシフラグは「1」に設定されている。この場合、OFスイッチ10−2のメッセージ転送部16は、転送情報に基づいて、受信したOFメッセージをOFチャネルCH1bを介してOFコントローラ20へ転送する。
OFコントローラ20は、OFメッセージをOFスイッチ10−1へ送信するときは、図6に示すスイッチ管理テーブルを参照する。このとき、OFスイッチ10−1の状態は「1:障害」である。この場合、OFコントローラ20のOFメッセージ送信部21は、生成したOFメッセージを、OFスイッチ10−1ではなくプロキシOFスイッチ(すなわち、OFスイッチ10−2)へ送信する。すなわち、OFコントローラ20は、図4に示すOFチャネルCH1bを介してOFメッセージをOFスイッチ10−2へ送信する。
OFスイッチ10−2は、OFコントローラ20からOFチャネルCH1bを介してOFメッセージを受信すると、プロキシフラグを参照する。このとき、OFスイッチ10−2のプロキシフラグは「1」に設定されている。この場合、OFスイッチ10−2のメッセージ転送部16は、転送情報に基づいて、受信したOFメッセージをOFチャネルCH1aを介してOFスイッチ10−1へ転送する。
OFスイッチ10−2とOFコントローラ20との間のメッセージ送信は、プロキシOFスイッチを経由することなく行われる。すなわち、OFスイッチ10−2は、生成したOFメッセージをOFチャネルCH2を介してOFコントローラ20へ送信する。また、OFコントローラ20は、生成したOFメッセージをOFチャネルCH2を介してOFスイッチ10−2へ送信する。
なお、リンク障害を検出したOFスイッチ10は、他のOFスイッチ10へコネクション確立要求およびプロキシリクエストを送信してもよい。この場合、プロキシリクエストを受信したOFスイッチ10は、そのプロキシリクエストの要求元を識別する情報をOFコントローラ20へ送信してもよい。この構成によれば、各OFスイッチ10に要求元情報が格納されている必要はない。また、OFコントローラ20は、各OFスイッチ10のプロキシOFスイッチを管理する必要はない。
図8は、多重障害に対する復旧手順の一例を示す図である。この例では、先に、OFスイッチ10−1とOFコントローラ20との間のリンクに障害1が発生しているものとする。この場合、図4に示す実施例と同様に、OFスイッチ10−1は、OFスイッチ10−2を経由してOFコントローラ20との間でOFメッセージを伝送するためのOFチャネルを確立する。すなわち、障害1が発生すると、OFスイッチ10−1とOFスイッチ10−2との間にOFチャネルCH1aが設定され、OFスイッチ10−2とOFコントローラ20との間にOFチャネルCH1bが設定される。
続いて、OFスイッチ10−2とOFコントローラ20との間のリンクに障害2が発生する。このとき、このリンク上には、OFスイッチ10−1のためのOFチャネルCH1bおよびOFスイッチ10−2のためのOFチャネルCH2が確立されている。よって、オープンフローネットワーク100は、OFスイッチ10−1およびOFスイッチ10−2を救済する。
図8に示す例では、OFスイッチ10−1を救済するために、OFスイッチ10−1とOFスイッチ10−3との間にOFチャネルCH1cが確立され、OFスイッチ10−3とOFコントローラ20との間にOFチャネルCH1dが確立される。OFチャネルCH1cおよびOFチャネルCH1dを確立する方法は、OFチャネルCH1aおよびOFチャネルCH1bを確立する方法と実質的に同じである。ただし、多重障害の復旧を実現するためには、OFスイッチ10に対して複数のプロキシOFスイッチ候補が指定されていることが好ましい。例えば、OFスイッチ10−1に対しては、第1のプロキシ候補としてOFスイッチ10−2が指定され、第2のプロキシ候補としてOFスイッチ10−3が指定されている。
OFスイッチ10−2を救済するためには、OFスイッチ10−2とOFスイッチ10−4との間にOFチャネルCH2aが確立され、OFスイッチ10−4とOFコントローラ20との間にOFチャネルCH2bが確立される。OFチャネルCH2aおよびOFチャネルCH2bを確立する方法は、OFチャネルCH1aおよびOFチャネルCH1bを確立する方法と実質的に同じである。
このように、オープンフローネットワーク100においては、障害リンクを復旧するために使用されているリンクに障害が発生した場合であっても、その障害に係わるOFスイッチは、さらに他のOFスイッチを選択することにより、OFコントローラに接続することがでる。したがって、OFチャネルが確立されるリンクに多重障害が発生しても、OFスイッチ10がOFコントローラ20に接続できない状態となるリスクは低い。
なお、OFコントローラと各OFスイッチとの間のリンクがそれぞれ2重化されているネットワーク(以下、2重化ネットワーク)では、現用リンクに障害が発生すると、予備リンク上にOFチャネルが設定される。しかし、このような構成の2重化ネットワークでは、現用リンクおよび予備リンクの双方に障害が発生すると、OFスイッチはOFコントローラに接続することはできない。したがって、2重化ネットワークと比較して、本発明の実施形態に係わる障害復旧方法は、物理リンクの本数を削減できると共に、多重障害に対する耐性が向上する。
上述の実施例では、障害を検出したOFスイッチ10は、自分に隣接するOFスイッチをプロキシOFスイッチとして使用する。しかしながら、本発明はこの方法に限定されるものではない。すなわち、障害を検出したOFスイッチ10は、自分に隣接していないOFスイッチをプロキシOFスイッチとして使用してもよい。
例えば、図9に示す例では、OFスイッチ10−1は、OFスイッチ10−4をプロキシOFスイッチとして使用する。即ち、OFスイッチ10−1とOFスイッチ10−3との間にOFチャネルCH1xが確立され、OFスイッチ10−3とOFスイッチ10−4との間にOFチャネルCH1yが確立され、OFスイッチ10−4とOFコントローラ20との間にOFチャネルCH1zが確立される。この場合、OFスイッチ10−2およびOFスイッチ10−3においてそれぞれ転送情報が更新される。また、各OFスイッチ10のプロキシ情報格納部13には、プロキシOFスイッチとして動作するOFスイッチの識別子に加えて、プロキシOFスイッチへの経路を表す情報も格納される。
上述の実施例では、リンク障害を復旧させるための新たなOFチャネルは、先に確立されているOFチャネルとは別に設定される。しかしながら、本発明はこの方法に限定されるものではない。すなわち、リンク障害を復旧させるためのOFチャネルは、先に確立されているOFチャネルを利用して実現してもよい。
例えば、図10に示す例では、OFスイッチ10−1のためのOFメッセージは、OFスイッチ10−1とOFスイッチ10−2との間ではOFチャネルCH1aを介して伝送され、OFスイッチ10−2とOFコントローラ20との間ではOFチャネルCH2を介して伝送される。即ち、OFチャネルCH2は、OFスイッチ10−1のためのOFメッセージおよびOFスイッチ10−2のためのOFメッセージを伝送する。このように、OFスイッチ10−1のためのOFメッセージは、OFスイッチ10−2のためのOFメッセージを伝送するために先に設定されているOFチャネルCH2を介して伝送される。
この場合、OFスイッチ10−2は、OFスイッチ10−1のためのOFメッセージを格納するパケットと、OFスイッチ10−2のためのOFメッセージを格納するパケットとを識別できるものとする。そして、OFスイッチ10−2は、OFチャネルCH2を介してOFスイッチ10−1のためのOFメッセージを格納するパケットを受信したときには、そのパケットをOFチャネルCH1aを介してOFスイッチ10−1へ転送する。また、OFスイッチ10−2は、OFチャネルCH2を介してOFスイッチ10−2のためのOFメッセージを格納するパケットを受信したときには、そのパケットを終端する。
<第2の実施形態>
第1の実施形態では、OFコントローラ20とOFスイッチ10との間のリンクに障害が発生したときは、予め指定されているOFスイッチがプロキシOFスイッチとして動作することにより、障害復旧が行われる。第2の実施形態では、オープンフローネットワーク100においてトラヒック量の少ないOFスイッチが特定され、その特定されたOFスイッチがプロキシOFスイッチとして動作する。
図11は、第2の実施形態における復旧手順の一例を示す図である。ここでは、OFコントローラ20とOFスイッチ10−1との間でリンク障害が発生し、図4または図7Aに示す復旧手順が先に行われているものとする。すなわち、OFスイッチ10−2がOFスイッチ10−1のプロキシOFスイッチとして指定され、OFチャネルCH1aおよびOFチャネルCH1bが設定されているものとする。
第2の実施形態では、OFコントローラ20は、定期的に、各OFスイッチ10のトラヒック量を確認する。ここで、OFスイッチ10は、フロー毎にトラヒック量をモニタしている。一例としては、OFスイッチ10は、フロー毎に、通過パケットのバイト数をカウントする。そして、各フローのトラヒック量は、統計情報としてフローテーブル11に記録される。
図12は、各OFスイッチ10の統計情報について説明する図である。ここでは、OFスイッチ10−2〜10−4のフローテーブル11が例示されている。統計情報は、この実施例では、フロー毎のトラヒック量を表している。また、各OFスイッチ10において合計トラヒック量が算出されている。
したがって、OFコントローラ20は、定期的に、各OFスイッチ10から統計情報を収集することにより、各OFスイッチ10のトラヒック量を確認することができる。そして、OFコントローラ20は、トラヒック量の最も少ないOFスイッチ10を特定する。図12に示す例では、OFスイッチ10−2〜10−4の中でOFスイッチ10−3のトラヒック量が最も少ない。
ここで、現在、OFスイッチ10−1のプロキシOFスイッチはOFスイッチ10−2である。すなわち、プロキシOFスイッチとして動作しているOFスイッチ10−2のトラヒック量は、オープンフローネットワーク100内で最小ではない。この場合、OFコントローラ20は、オープンフローネットワーク100内でトラヒック量が最も少ないOFスイッチがプロキシOFスイッチとして動作するように、ネットワーク構成を変更する。すなわち、OFスイッチ10−3がOFスイッチ10−1のプロキシOFスイッチとして動作するように、ネットワーク構成が変更される。
この場合、図11に示すように、OFスイッチ10−1とOFスイッチ10−2との間に設定されているOFチャネルCH1a、及び、OFスイッチ10−2とOFコントローラ20との間に設定されているOFチャネルCH1bが解除される。また、OFスイッチ10−1とOFスイッチ10−3との間に新たなOFチャネルCH1cが設定され、OFスイッチ10−3とOFコントローラ20との間に新たなOFチャネルCH1dが設定される。
図13A〜図13Cは、第2の実施形態における障害復旧手順の一例を示すシーケンス図である。なお、初期立上げは、図3を参照しながら説明したように、OFコントローラ20と各OFスイッチ10との間で実行される。すなわち、OFコントローラ20と各OFスイッチ10との間でコネクション確立処理、ハンドシェイク処理、フローテーブル設定処理が実行される。
また、初期立上げが終了した後、OFスイッチ10−1とOFコントローラ20との間でリンク障害が発生し、図7Aに示すシーケンスによってその障害が復旧しているものとする。すなわち、OFスイッチ10−2がプロキシOFスイッチとして指定されている。そして、OFスイッチ10−1とOFスイッチ10−2との間にOFチャネルCH1aが設定され、OFスイッチ10−2とOFコントローラ20との間にOFチャネルCH1bが設定されている。
上記ネットワーク構成において、OFコントローラ20は、定期的に、各OFスイッチ10−1〜10−4に対して統計情報を要求する。ただし、図13Aにおいては、図面を見やすくするために、OFスイッチ10−2、10−3に対する要求のみが表記されている。そして、各OFスイッチ10−1〜10−4は、統計情報をOFコントローラ20へ送信する。統計情報は、この実施例では、フローテーブル11に記録されている合計トラヒック量である。
OFコントローラ20において、チャネル管理部22は、各OFスイッチ10−1〜10−4から収集した統計情報に基づいて、OFスイッチ10−1のプロキシOFスイッチとして動作するOFスイッチの最適化を実行する。即ち、OFコントローラ20は、収集した統計情報に基づいてトラヒック量の最も少ないOFスイッチ10を特定する。この実施例では、OFスイッチ10−3のトラヒック量が最も少ない。この場合、現在のプロキシOFスイッチとトラヒック量の最も少ないOFスイッチとが一致していないので、OFコントローラ20は、OFスイッチ10−1に対してプロキシ変更通知を送信する。ただし、このプロキシ変更通知は、プロキシOFスイッチ(即ち、OFスイッチ10−2)を経由してOFスイッチ10−1へ伝送される。また、このプロキシ変更通知は、トラヒック量の最も少ないOFスイッチ(即ち、OFスイッチ10−3)を識別する情報を含む。
OFスイッチ10−1のチャネル管理部17は、プロキシ変更通知で指定されているOFスイッチ(即ち、OFスイッチ10−3)を経由してOFコントローラ20との間でOFメッセージを伝送するためのOFチャネルを確立する。この手順は、図7Aに示すシーケンスにおいてOFチャネルを確立する処理と実質的に同じである。すなわち、OFスイッチ10−1からOFスイッチ10−3へOFチャネル確立要求が送信され、OFスイッチ10−3からOFスイッチ10−1へOFチャネル確立応答が返送される。また、OFスイッチ10−3からOFコントローラ20へOFチャネル確立要求が送信され、OFコントローラ20からOFスイッチ10−3へOFチャネル確立応答が返送される。
この手順により、図11に示すOFチャネルCH1cおよびOFチャネルCH1dが設定される。そうすると、OFスイッチ10−1のメッセージ送受信部15は、メッセージの送信先をOFスイッチ10−2からOFスイッチ10−3へ変更する。このとき、メッセージ送受信部15は、チャネル管理部17に対してメッセージ送信先の変更を通知してもよい。また、OFスイッチ10−3のメッセージ転送部16は、以下のように転送情報を更新する。
(1)OFスイッチ10−1からOFチャネルCH1cを介して受信するOFメッセージは、OFチャネルCH1dを介してOFコントローラ20へ転送される。
(2)OFコントローラ20からOFチャネルCH1dを介して受信するOFメッセージは、OFチャネルCH1cを介してOFスイッチ10−1へ転送される。
さらに、OFスイッチ10−1のチャネル管理部17は、旧プロキシOFスイッチを経由するOFチャネルを解除する。すなわち、OFスイッチ10−1からOFスイッチ10−2へOFチャネル解除要求が送信され、OFスイッチ10−2からOFスイッチ10−1へOFチャネル解除応答が返送される。また、OFスイッチ10−2からOFコントローラ20へOFチャネル解除要求が送信され、OFコントローラ20からOFスイッチ10−2へOFチャネル解除応答が返送される。この結果、図11に示すOFチャネルCH1aおよびOFチャネルCH1bが解除される。
以降、OFスイッチ10−1は、OFスイッチ10−3を経由してOFコントローラ20へOFメッセージを送信する。また、OFコントローラ20は、OFスイッチ10−3を経由してOFスイッチ10−1へOFメッセージを送信する。
このように、第2の実施形態においては、OFコントローラ20とOFスイッチ10との間のリンク障害を復旧するために、オープンフローネットワーク内で最も負荷の小さいOFスイッチ(或いは、使用可能なリソースが最も多く残っているOFスイッチ)がプロキシOFスイッチとして動作する。したがって、プロキシOFスイッチのための処理が、ホスト間のデータ転送のパフォーマンスを低下させることはない。
なお、上述の実施例では、トラヒック量が最小のOFスイッチがプロキシOFスイッチとして選択されているが、本発明はこの構成に限定されるものではない。例えば、予め指定されているデフォルトOFスイッチのトラヒック量が所定の閾値未満であれば、そのデフォルトOFスイッチよりもトラヒック量の少ないOFスイッチが存在している場合であっても、プロキシOFスイッチの変更を行わなくてもよい。また、プロキシOFスイッチを選択するためのパラメータは、トラヒック量に限定されるものではない。即ち、各OFスイッチの使用可能なリソース量(例えば、プロセッサの負荷など)に基づいて、プロキシOFスイッチを選択してもよい。
<他の実施形態>
上述した実施例では、OFメッセージは、アウトオブバンド(Out-of-band)方式でOFスイッチ10とOFコントローラ20との間で伝送される。しかし、本発明はこの構成に限定されるものではない。すなわち、OFメッセージは、インバンド(In-band)方式でOFスイッチ10とOFコントローラ20との間で伝送されるようにしてもよい。ただし、インバンド方式でOFメッセージを送信する場合、OFメッセージを格納するパケットは、フローテーブル11に従って転送される。したがって、プロキシOFスイッチとして動作するOFスイッチ10のフローテーブル11は、新たに設定されるOFチャネルを実現するように更新される。例えば、図4に示す実施例において、OFスイッチ10−1とOFコントローラ20との間でOFチャネルCH1aおよびCH1bを介してOFメッセージを伝送するフローに対して仮想LAN識別子「VID−SW1」が割り当てられているものとする。この場合、OFスイッチ10−2のフローテーブル11において「マッチ条件:VID−SW1」に対して、OFスイッチ10−1とOFコントローラ20との間でOFメッセージを転送するためのアクション情報が記録される。
以上記載した各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数のオープンフロースイッチおよび前記複数のオープンフロースイッチを制御するオープンフローコントローラを含むオープンフローネットワークにおいて使用されるオープンフロースイッチであって、
前記オープンフローコントローラとの間のリンクの障害を検出する障害検出部と、
前記障害検出部により障害が検出されたときに、他のオープンフロースイッチを経由して前記オープンフローコントローラとの間で制御情報を伝送するためのオープンフローチャネルを確立するチャネル管理部と、
を有するオープンフロースイッチ。
(付記2)
複数のオープンフロースイッチおよび前記複数のオープンフロースイッチを制御するオープンフローコントローラを含むオープンフローネットワークにおいて使用されるオープンフロースイッチであって、
前記オープンフローコントローラとの間のリンクに障害が発生した障害オープンフロースイッチから、前記オープンフローコントローラとの間で制御情報を伝送するためのオープンフローチャネルの確立を要求するチャネル確立要求を受信したときに、前記障害オープンフロースイッチとの間に第1のオープンフローチャネルを確立し、前記オープンフローコントローラとの間に第2のオープンフローチャネルを確立するチャネル管理部と、
前記障害オープンフロースイッチから前記第1のオープンフローチャネルを介して受信する制御情報を前記第2のオープンフローチャネルを介して前記オープンフローコントローラへ転送し、前記オープンフローコントローラから前記第2のオープンフローチャネルを介して受信する制御情報を前記第1のオープンフローチャネルを介して前記障害オープンフロースイッチへ転送する転送部と、
を有するオープンフロースイッチ。
(付記3)
前記オープンフローコントローラとの間のリンクの障害を検出する障害検出部をさらに有し、
前記障害検出部により障害が検出されたときに、前記チャネル管理部は、予め指定されているデフォルトオープンフロースイッチを経由して前記オープンフローコントローラとの間で制御情報を伝送するためのオープンフローチャネルの確立を要求するチャネル確立要求を前記デフォルトオープンフロースイッチに送信する
ことを特徴とする付記2に記載のオープンフロースイッチ。
(付記4)
複数のオープンフロースイッチおよび前記複数のオープンフロースイッチを制御するオープンフローコントローラを含むオープンフローネットワークにおいて使用される障害復旧方法であって、
第1のオープンフロースイッチと前記オープンフローコントローラとの間のリンクに障害が発生したときに、前記第1のオープンフロースイッチから第2のオープンフロースイッチへ、前記オープンフローコントローラとの間で制御情報を伝送するためのオープンフローチャネルの確立を要求するチャネル確立要求を送信し、
前記チャネル確立要求に応じて、前記第1のオープンフロースイッチと前記第2のオープンフロースイッチとの間に第1のオープンフローチャネルを確立し、前記第2のオープンフロースイッチと前記オープンフローコントローラとの間に第2のオープンフローチャネルを確立する
ことを特徴とする障害復旧方法。
(付記5)
前記第1のオープンフロースイッチから前記第1のオープンフローチャネルを介して伝送される制御情報を前記第2のオープンフローチャネルを介して前記オープンフローコントローラへ転送し、前記オープンフローコントローラから前記第2のオープンフローチャネルを介して伝送される制御情報を前記第1のオープンフローチャネルを介して前記第1のオープンフロースイッチへ転送するように、前記第2のオープンフロースイッチの転送回路を設定する
ことを特徴とする付記4に記載の障害復旧方法。
(付記6)
前記第2のオープンフローチャネルは、前記チャネル確立要求に応じて前記第2のオープンフロースイッチと前記オープンフローコントローラとの間に確立されるコネクション上に設定される
ことを特徴とする付記4に記載の障害復旧方法。
(付記7)
前記第2のオープンフローチャネルは、前記第2のオープンフロースイッチと前記オープンフローコントローラとの間に予め確立されているコネクション上に設定される
ことを特徴とする付記4に記載の障害復旧方法。
(付記8)
前記第1のオープンフロースイッチに対して、前記第2のオープンフロースイッチが予め指定されている
ことを特徴とする付記4〜7のいずれか1つに記載の障害復旧方法。
(付記9)
前記第1のオープンフロースイッチに対して、前記第1のオープンフロースイッチと前記第2のオープンフロースイッチとの間の経路が予め指定されている
ことを特徴とする付記8に記載の障害復旧方法。
(付記10)
前記第1のオープンフロースイッチは、前記第1のオープンフロースイッチと前記オープンフローコントローラとの間の通信を識別する識別子を制御情報に付与して前記第1のオープンフローチャネルへ出力し、
前記オープンフローコントローラは、前記識別子を制御情報に付与して前記第2のオープンフローチャネルへ出力する
ことを特徴とする付記4に記載の障害復旧方法。
(付記11)
前記オープンフローコントローラは、各オープンフロースイッチのトラヒック量を表す統計情報を収集し、
前記オープンフローコントローラは、前記統計情報に基づいてトラヒック量が最も少ないオープンフロースイッチを特定し、
前記オープンフローコントローラは、特定したオープンフロースイッチを前記第1のオープンフロースイッチに通知し、
前記第1のオープンフロースイッチは、前記オープンフローコントローラにより特定されたオープンフロースイッチへ、前記オープンフローコントローラとの間で制御情報を伝送するためのオープンフローチャネルの確立を要求するチャネル確立要求を送信する
ことを特徴とする付記4に記載の障害復旧方法。
(付記12)
各オープンフロースイッチの負荷を表す統計情報を収集し、
前記統計情報に基づいて前記第2のオープンフロースイッチを決定し、
前記第1のオープンフロースイッチは、前記統計情報に基づいて決定された前記第2のオープンフロースイッチへ前記チャネル確立要求を送信する
ことを特徴とする付記4に記載の障害復旧方法。
10(10−1〜10−4) オープンフロースイッチ(OFスイッチ)
11 フローテーブル
15 メッセージ送受信部
15a メッセージ処理部
15b 障害検出部
16 メッセージ転送部
17 チャネル管理部
20 オープンフローコントローラ(OFコントローラ)
21 メッセージ送受信部
22 チャネル管理部
100 オープンフローネットワーク

Claims (10)

  1. 複数のオープンフロースイッチおよび前記複数のオープンフロースイッチを制御するオープンフローコントローラを含むオープンフローネットワークにおいて使用されるオープンフロースイッチであって、
    前記オープンフローコントローラとの間のリンクの障害を検出する障害検出部と、
    前記障害検出部により障害が検出されたときに、他のオープンフロースイッチを経由して前記オープンフローコントローラとの間で制御情報を伝送するためのオープンフローチャネルを確立するチャネル管理部と、
    を有するオープンフロースイッチ。
  2. 複数のオープンフロースイッチおよび前記複数のオープンフロースイッチを制御するオープンフローコントローラを含むオープンフローネットワークにおいて使用されるオープンフロースイッチであって、
    前記オープンフローコントローラとの間のリンクに障害が発生した障害オープンフロースイッチから、前記オープンフローコントローラとの間で制御情報を伝送するためのオープンフローチャネルの確立を要求するチャネル確立要求を受信したときに、前記障害オープンフロースイッチとの間に第1のオープンフローチャネルを確立し、前記オープンフローコントローラとの間に第2のオープンフローチャネルを確立するチャネル管理部と、
    前記障害オープンフロースイッチから前記第1のオープンフローチャネルを介して受信する制御情報を前記第2のオープンフローチャネルを介して前記オープンフローコントローラへ転送し、前記オープンフローコントローラから前記第2のオープンフローチャネルを介して受信する制御情報を前記第1のオープンフローチャネルを介して前記障害オープンフロースイッチへ転送する転送部と、
    を有するオープンフロースイッチ。
  3. 前記オープンフローコントローラとの間のリンクの障害を検出する障害検出部をさらに有し、
    前記障害検出部により障害が検出されたときに、前記チャネル管理部は、予め指定されているデフォルトオープンフロースイッチを経由して前記オープンフローコントローラとの間で制御情報を伝送するためのオープンフローチャネルの確立を要求するチャネル確立要求を前記デフォルトオープンフロースイッチに送信する
    ことを特徴とする請求項2に記載のオープンフロースイッチ。
  4. 複数のオープンフロースイッチおよび前記複数のオープンフロースイッチを制御するオープンフローコントローラを含むオープンフローネットワークにおいて使用される障害復旧方法であって、
    第1のオープンフロースイッチと前記オープンフローコントローラとの間のリンクに障害が発生したときに、前記第1のオープンフロースイッチから第2のオープンフロースイッチへ、前記オープンフローコントローラとの間で制御情報を伝送するためのオープンフローチャネルの確立を要求するチャネル確立要求を送信し、
    前記チャネル確立要求に応じて、前記第1のオープンフロースイッチと前記第2のオープンフロースイッチとの間に第1のオープンフローチャネルを確立し、前記第2のオープンフロースイッチと前記オープンフローコントローラとの間に第2のオープンフローチャネルを確立する
    ことを特徴とする障害復旧方法。
  5. 前記第1のオープンフロースイッチから前記第1のオープンフローチャネルを介して伝送される制御情報を前記第2のオープンフローチャネルを介して前記オープンフローコントローラへ転送し、前記オープンフローコントローラから前記第2のオープンフローチャネルを介して伝送される制御情報を前記第1のオープンフローチャネルを介して前記第1のオープンフロースイッチへ転送するように、前記第2のオープンフロースイッチの転送回路を設定する
    ことを特徴とする請求項4に記載の障害復旧方法。
  6. 前記第2のオープンフローチャネルは、前記チャネル確立要求に応じて前記第2のオープンフロースイッチと前記オープンフローコントローラとの間に確立されるコネクション上に設定される
    ことを特徴とする請求項4に記載の障害復旧方法。
  7. 前記第2のオープンフローチャネルは、前記第2のオープンフロースイッチと前記オープンフローコントローラとの間に予め確立されているコネクション上に設定される
    ことを特徴とする請求項4に記載の障害復旧方法。
  8. 前記第1のオープンフロースイッチは、前記第1のオープンフロースイッチと前記オープンフローコントローラとの間の通信を識別する識別子を制御情報に付与して前記第1のオープンフローチャネルへ出力し、
    前記オープンフローコントローラは、前記識別子を制御情報に付与して前記第2のオープンフローチャネルへ出力する
    ことを特徴とする請求項4に記載の障害復旧方法。
  9. 前記オープンフローコントローラは、各オープンフロースイッチのトラヒック量を表す統計情報を収集し、
    前記オープンフローコントローラは、前記統計情報に基づいてトラヒック量が最も少ないオープンフロースイッチを特定し、
    前記オープンフローコントローラは、特定したオープンフロースイッチを前記第1のオープンフロースイッチに通知し、
    前記第1のオープンフロースイッチは、前記オープンフローコントローラにより特定されたオープンフロースイッチへ、前記オープンフローコントローラとの間で制御情報を伝送するためのオープンフローチャネルの確立を要求するチャネル確立要求を送信する
    ことを特徴とする請求項4に記載の障害復旧方法。
  10. 各オープンフロースイッチの負荷を表す統計情報を収集し、
    前記統計情報に基づいて前記第2のオープンフロースイッチを決定し、
    前記第1のオープンフロースイッチは、前記統計情報に基づいて決定された前記第2のオープンフロースイッチへ前記チャネル確立要求を送信する
    ことを特徴とする請求項4に記載の障害復旧方法。
JP2014083141A 2014-04-14 2014-04-14 オープンフロースイッチおよびオープンフローネットワークの障害復旧方法 Active JP6287518B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014083141A JP6287518B2 (ja) 2014-04-14 2014-04-14 オープンフロースイッチおよびオープンフローネットワークの障害復旧方法
US14/665,564 US9628324B2 (en) 2014-04-14 2015-03-23 Openflow switch and failure recovery method in openflow network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014083141A JP6287518B2 (ja) 2014-04-14 2014-04-14 オープンフロースイッチおよびオープンフローネットワークの障害復旧方法

Publications (2)

Publication Number Publication Date
JP2015204533A true JP2015204533A (ja) 2015-11-16
JP6287518B2 JP6287518B2 (ja) 2018-03-07

Family

ID=54265986

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014083141A Active JP6287518B2 (ja) 2014-04-14 2014-04-14 オープンフロースイッチおよびオープンフローネットワークの障害復旧方法

Country Status (2)

Country Link
US (1) US9628324B2 (ja)
JP (1) JP6287518B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019041368A (ja) * 2017-08-25 2019-03-14 日本電信電話株式会社 転送装置、転送システム、転送方法、およびプログラム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017071743A1 (en) * 2015-10-28 2017-05-04 Huawei Technologies Co., Ltd. Control traffic in software defined networks
EP3413514B1 (en) * 2016-03-02 2020-02-26 Huawei Technologies Co., Ltd. Method and device for managing network apparatus
CN105897580B (zh) * 2016-03-29 2019-01-18 中国科学院信息工程研究所 一种协议无关转发网络快速故障检测与流量保护切换方法
US10841222B2 (en) 2016-07-05 2020-11-17 Ologn Technologies Ag Systems, apparatuses and methods for network packet management
WO2018087721A1 (en) * 2016-11-11 2018-05-17 Ologn Technologies Ag Systems, apparatuses and methods for cooperating routers
CN108183810B (zh) * 2016-12-08 2019-06-04 中兴通讯股份有限公司 Sdn架构下多业务的并行恢复方法、装置及系统
CN108737169A (zh) * 2018-05-08 2018-11-02 重庆邮电大学 一种基于sdn的异构工业网络集中式融合管理方法
CN109120520B (zh) * 2018-10-15 2021-03-12 迈普通信技术股份有限公司 一种故障处理方法和设备
CN111404734B (zh) * 2020-03-06 2021-03-19 北京邮电大学 一种基于配置迁移的跨层网络故障恢复系统及方法
CN113556208B (zh) * 2020-04-24 2022-08-26 华为技术有限公司 Hello报文传输方法、装置和可读存储介质
CN113726556B (zh) * 2021-08-06 2024-05-31 国网电力科学研究院有限公司 边缘物联代理节点运维方法、系统、存储介质及计算设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004357167A (ja) * 2003-05-30 2004-12-16 Mitsubishi Electric Corp 光リングネットワーク監視制御システム、光伝送装置および監視制御装置
US20130215769A1 (en) * 2012-02-22 2013-08-22 Telefonaktiebolaget L M Ericsson (Publ) Controller placement for fast failover in the split architecture
WO2014132967A1 (ja) * 2013-02-26 2014-09-04 日本電気株式会社 通信システム、スイッチ、制御装置、制御用チャネルの構築方法及びプログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8953432B2 (en) * 2004-11-01 2015-02-10 Alcatel Lucent Softrouter dynamic binding protocol
JP2008061091A (ja) * 2006-09-01 2008-03-13 Hitachi Communication Technologies Ltd パス設定方法およびノード装置
JP5652400B2 (ja) * 2009-10-06 2015-01-14 日本電気株式会社 ネットワークシステムとコントローラ、方法とプログラム
EP2523403B1 (en) 2010-01-05 2014-08-20 Nec Corporation Network system and network redundancy method
JP5207082B2 (ja) 2010-01-15 2013-06-12 日本電気株式会社 コンピュータシステム、及びコンピュータシステムの監視方法
JP5488979B2 (ja) 2010-02-03 2014-05-14 日本電気株式会社 コンピュータシステム、コントローラ、スイッチ、及び通信方法
JP5488980B2 (ja) 2010-02-08 2014-05-14 日本電気株式会社 コンピュータシステム、及び通信方法
US8619546B2 (en) * 2010-08-17 2013-12-31 Alcatel Lucent Method and apparatus for coping with link failures in central control plane architectures
JP2012049674A (ja) 2010-08-25 2012-03-08 Nec Corp 通信装置、通信システム、通信方法、および通信プログラム
US9185027B2 (en) * 2011-07-29 2015-11-10 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for resilient routing of control traffic in a split-architecture system
US8995272B2 (en) * 2012-01-26 2015-03-31 Brocade Communication Systems, Inc. Link aggregation in software-defined networks
JP5814849B2 (ja) 2012-03-30 2015-11-17 株式会社エヌ・ティ・ティ・データ オープンフローネットワークシステム、及び、データ通信方法
FI20135058L (fi) * 2013-01-21 2014-07-22 Tellabs Oy Menetelmä ja ohjausjärjestelmä ohjelmallisesti määriteltävän verkon kontrolloimiseksi
WO2014131429A1 (en) * 2013-02-26 2014-09-04 Telefonaktiebolaget L M Ericsson (Publ) Traffic recovery in openflow networks
US9407560B2 (en) * 2013-03-15 2016-08-02 International Business Machines Corporation Software defined network-based load balancing for physical and virtual networks
US9391844B2 (en) * 2014-01-15 2016-07-12 Dell Products, L.P. System and method for network topology management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004357167A (ja) * 2003-05-30 2004-12-16 Mitsubishi Electric Corp 光リングネットワーク監視制御システム、光伝送装置および監視制御装置
US20130215769A1 (en) * 2012-02-22 2013-08-22 Telefonaktiebolaget L M Ericsson (Publ) Controller placement for fast failover in the split architecture
WO2014132967A1 (ja) * 2013-02-26 2014-09-04 日本電気株式会社 通信システム、スイッチ、制御装置、制御用チャネルの構築方法及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019041368A (ja) * 2017-08-25 2019-03-14 日本電信電話株式会社 転送装置、転送システム、転送方法、およびプログラム

Also Published As

Publication number Publication date
US9628324B2 (en) 2017-04-18
US20150295752A1 (en) 2015-10-15
JP6287518B2 (ja) 2018-03-07

Similar Documents

Publication Publication Date Title
JP6287518B2 (ja) オープンフロースイッチおよびオープンフローネットワークの障害復旧方法
EP2157746B1 (en) Routing control system for L3VPN service network
EP3373547B1 (en) Method for realizing disaster tolerance backup
JP4840236B2 (ja) ネットワークシステム及びノード装置
CN102148677B (zh) 一种更新地址解析协议表项的方法及核心交换机
JP5941404B2 (ja) 通信システム、経路切替方法及び通信装置
JP5743809B2 (ja) 網管理システムおよび網管理方法
CN104301146A (zh) 软件定义网络中的链路切换方法和装置
CN101860492A (zh) 快速切换的方法、装置和系统
CN101588304A (zh) 一种vrrp的实现方法和设备
JP2017079399A (ja) 伝送装置及び伝送システム
CN102255757A (zh) 一种链路切换方法及其装置
US20090245099A1 (en) Repeater and communication method
US9912527B2 (en) Communication device, communication system, method for determining path, and program
JP4544415B2 (ja) 中継ネットワークシステム、ノード装置、および障害通知方法
CN112995002B (zh) 一种交换机环网的设计方法、交换机及存储介质
WO2011150780A1 (zh) 触发路由切换的方法和服务运营商侧运营商边缘设备
CN109150709B (zh) 一种实现Mux机的方法、设备及系统
WO2014101125A1 (zh) 聚合组链路协商方法、装置和系统
JP2013197690A (ja) Ponシステム、onuおよびolt
Vaghani et al. A comparison of data forwarding schemes for network resiliency in software defined networking
US20080212610A1 (en) Communication techniques and generic layer 3 automatic switching protection
JP5518771B2 (ja) 冗長ネットワークシステム、終端装置及び中継点隣接装置
CN111835544B (zh) 一种基于用户态协议栈的虚拟路由器的监控方法及系统
WO2022044546A1 (ja) 通信システムおよびその障害復旧方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171026

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180122

R150 Certificate of patent or registration of utility model

Ref document number: 6287518

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150