JPWO2013115177A1 - ネットワークシステム、及びトポロジー管理方法 - Google Patents

ネットワークシステム、及びトポロジー管理方法 Download PDF

Info

Publication number
JPWO2013115177A1
JPWO2013115177A1 JP2013556411A JP2013556411A JPWO2013115177A1 JP WO2013115177 A1 JPWO2013115177 A1 JP WO2013115177A1 JP 2013556411 A JP2013556411 A JP 2013556411A JP 2013556411 A JP2013556411 A JP 2013556411A JP WO2013115177 A1 JPWO2013115177 A1 JP WO2013115177A1
Authority
JP
Japan
Prior art keywords
packet
flow entry
topology
switches
switch
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
JP2013556411A
Other languages
English (en)
Other versions
JP5846221B2 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2013556411A priority Critical patent/JP5846221B2/ja
Publication of JPWO2013115177A1 publication Critical patent/JPWO2013115177A1/ja
Application granted granted Critical
Publication of JP5846221B2 publication Critical patent/JP5846221B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/18Loop-free operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

オープンフローネットワーク等において、コントローラがスイッチ間のネットワークが高遅延な状況でのスイッチの物理トポロジーを維持・更新する際のセキュアチャンネルネットワーク上のスイッチの負荷を低減する。具体的には、複数のスイッチの各々に対して、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリを設定するコントローラが、複数のスイッチの各々に対して、複数のスイッチ間で相互に送受信される巡回パケットが到着しなくなった場合に削除される巡回用フローエントリを設定する。そして、各スイッチから、巡回用フローエントリを削除した旨の通知を受信した場合、複数のスイッチ間の障害を検出する。

Description

本発明は、ネットワークシステムに関し、特にネットワークシステムを構成するスイッチの物理トポロジーの管理方法に関する。
[CD分離型ネットワークの説明]
ネットワークシステムの制御方式の1つとして、外部の制御装置(コントロールプレーン)からノード装置(データプレーン)を制御するCD(C:コントロールプレーン/D:データプレーン)分離型ネットワークが提案されている。
CD分離型ネットワークの一例として、コントローラからスイッチを制御してネットワークの経路制御を行うオープンフロー(OpenFlow)技術を利用したオープンフローネットワークが挙げられる。オープンフロー技術の詳細については、非特許文献1(OpenFlow Switch Specification Version1.1.0)に記載されている。なお、オープンフローネットワークは一例に過ぎない。
[オープンフローネットワークの説明]
オープンフローネットワークでは、オープンフローコントローラ(OFC:OpenFlow Controller)が、オープンフロースイッチ(OFS:OpenFlow Switch)のフローテーブルを操作することによりスイッチの挙動を制御する。コントローラとスイッチの間は、コントローラがオープンフロープロトコルに準拠した制御メッセージであるオープンフローメッセージ(OpenFlow Message)を用いてスイッチを制御するためのセキュアチャンネル(Secure Channel)により接続されている。
以下、記載の簡略化のため、オープンフローコントローラ(OFC)を「コントローラ(OFC)」と表記し、オープンフロースイッチ(OFS)を「スイッチ(OFS)」と表記する。また、コントローラとスイッチとの間で、セキュアチャンネルにより構成されたネットワークを、「セキュアチャンネルネットワーク」と呼ぶ。
オープンフローネットワークにおけるスイッチ(OFS)とは、オープンフローネットワークを構成し、コントローラ(OFC)の制御下にあるエッジスイッチ及びコアスイッチのことである。オープンフローネットワークにおける入力側エッジスイッチでのパケット(packet)の受信から出力側エッジスイッチでの送信までのパケットの一連の流れをフロー(Flow)と呼ぶ。
パケットは、フレーム(frame)と読み替えても良い。パケットとフレームの違いは、プロトコルが扱うデータの単位(PDU:Protocol Data Unit)の違いに過ぎない。パケットは、「TCP/IP」(Transmission Control Protocol/Internet Protocol)のPDUである。一方、フレームは、「Ethernet(登録商標)」のPDUである。
フローテーブルとは、所定のマッチ条件(ルール)に適合するパケット(通信データ)に対して行うべき所定の動作(アクション)を定義したフローエントリ(Flow Entry)が登録されたテーブルである。
フローエントリのルールは、パケットの各プロトコル階層のヘッダ領域に含まれる宛先アドレス(dst:Destination Address)、送信元アドレス(src:Source Address)、宛先ポート(Destination Port)、送信元ポート(Source Port)のいずれか又は全てを用いた様々な組み合わせにより定義され、区別可能である。なお、上記のアドレスには、MACアドレス(Media Access Control Address)やIPアドレス(Internet Protocol Address)を含むものとする。また、上記に加えて、入力ポート(Ingress Port)の情報も、フローエントリのルールとして使用可能である。また、フローエントリのルールとして、フローを示すパケットのヘッダ領域の値の一部(又は全部)を、正規表現やワイルドカード「*」等で表現したものを設定することもできる。
フローエントリのアクションは、「特定のポートに出力する」、「廃棄する」、「ヘッダを書き換える」といった動作を示す。例えば、スイッチ(OFS)は、フローエントリのアクションに出力ポートの識別情報(出力ポート番号等)が示されていれば、これに該当するポートにパケットを出力し、出力ポートの識別情報が示されていなければ、パケットを破棄する。或いは、スイッチ(OFS)は、フローエントリのアクションにヘッダ情報が示されていれば、当該ヘッダ情報に基づいて、パケットのヘッダを書き換える。
スイッチ(OFS)は、フローエントリのルールに適合するパケット群(パケット系列)に対して、フローエントリのアクションを実行する。
なお、オープンフローでは、コントローラ(OFC)は、スイッチ(OFS)側のフローエントリを把握・管理するため、スイッチ(OFS)側のフローエントリのコピー(複写)を保持している。例えば、コントローラ(OFC)は、スイッチ(OFS)のフローテーブルと同じフローテーブルを保持している。
[オープンフローネットワークにおけるトポロジー検出の現状]
オープンフローネットワークでは、コントローラ(OFC)は、LLDP(Link Layer Discovery Protocol)やOFDP(OpenFlow Discovery Protocol)等のトポロジーディスカバリープロトコル(Topology Discovery Protocol)を利用し、隣接スイッチ(OsFS)間の接続情報を収集する。なお、OFDPは、LLDPを拡張したオープンフロー用のトポロジー検出プロトコルである。
また、コントローラ(OFC)は、収集した隣接スイッチ(OFS)間の接続情報に基づいて、オープンフローネットワーク全体のトポロジーを検出する。オープンフローネットワーク全体のトポロジーの例として、スイッチ(OFS)間の接続情報や、接続用ポートの情報等が考えられる。
コントローラ(OFC)は、検出したスイッチ(OFS)の接続情報に基づいて、スイッチ(OFS)間の相互接続ポートや、各スイッチ(OFS)と通信端末機器(ホスト)との接続ポートに、適切なフローエントリを設定することで、オープンフローネットワーク内の通信を実現する。
更に、運用中に、相互接続ポート間のリンクダウン以外の障害を検出するため、コントローラ(OFC)は、各スイッチ(OFS)に対して、定期的に、LLDPやOFDP等のトポロジーディスカバリーパケット(TDP:Topology Discovery Packet)を送信するように指示する。
各スイッチ(OFS)は、ポート状態メッセージ(PSM:Port Status Message)をコントローラ(OFC)に送信する。
コントローラ(OFC)は、各スイッチ(OFS)から送信されたポート状態メッセージ(PSM)の通知を受信する。これにより、相互接続ポート間のリンクダウンの障害の発生時にはリンクダウンの障害を検出する。
以上のように、コントローラ(OFC)は、検出したオープンフローネットワークトポロジーを維持・更新する。
[既存のオープンフローネットワークにおけるトポロジー検出・維持の手順]
図1を参照して、既存のオープンフローネットワークにおけるトポロジー検出・維持の手順について説明する。
ここでは、説明の簡略化のため、1台のコントローラ(OFC)と、2台のスイッチ(OFS)で構成されるオープンフローネットワークを例に説明する。
既存のオープンフローネットワークは、コントローラ(OFC)10と、スイッチ(OFS)20−1と、スイッチ(OFS)20−2を含む。
コントローラ(OFC)10は、セキュアチャンネルネットワーク100を介して、スイッチ(OFS)20−1及びスイッチ(OFS)20−2と接続されている。セキュアチャンネルネットワーク100には、コントローラ(OFC)とスイッチ(OFS)間のコントロール信号が流れる。コントロール信号の1つに、オープンフローメッセージがある。
コントローラ(OFC)10は、パケット出力メッセージ(POM:Packet−Out Message)30−1にトポロジーディスカバリーパケット(TDP)30−2を格納し、セキュアチャンネルネットワーク100を介して、パケット出力メッセージ(POM)30−1をスイッチ(OFS)20−1に送信する。なお、パケット出力メッセージ(POM)30−1は、オープンフローメッセージの1つである。
スイッチ(OFS)20−1は、接続ポート21−1を備える。スイッチ(OFS)20−2は、接続ポート21−2を備える。接続ポート21−1及び接続ポート21−2は、スイッチ(OFS)間の接続ポートである。接続ポート21−1及び接続ポート21−2は、スイッチ(OFS)20−1とスイッチ(OFS)20−2を接続する。
スイッチ(OFS)20−1は、パケット出力メッセージ(POM)30−1に格納されたトポロジーディスカバリーパケット(TDP)30−2を取得し、トポロジーディスカバリーパケット(TDP)30−2を接続ポート21−1に伝送する。
トポロジーディスカバリーパケット(TDP)30−2は、スイッチ(OFS)20−1の接続ポート21−1からスイッチ(OFS)20−2の接続ポート21−2に到達する。
スイッチ(OFS)20−2は、受信したトポロジーディスカバリーパケット(TDP)30−2をパケット入力メッセージ(PIM:Packet−In Message)30−3に格納し、セキュアチャンネルネットワーク100を介して、パケット入力メッセージ(PIM)30−3をコントローラ(OFC)10に送信する。なお、パケット入力メッセージ(PIM)30−3は、オープンフローメッセージの1つである。
以下に、具体的な処理について説明する。
[初期設定処理]
まず、トポロジー検出処理の開始前に行うべき初期設定処理について説明する。
コントローラ(OFC)10は、各スイッチ(OFS)に、トポロジーディスカバリーパケット(TDP)用のフローエントリを設定する。
コントローラ(OFC)10は、このフローエントリの整合領域(MF:Match Field)に、トポロジーディスカバリーパケット(TDP)30−2がマッチする整合値(MV:Match Value)を指定する。すなわち、整合領域(MF)の整合値(MV)がフローエントリのルールとなる。
コントローラ(OFC)10は、このフローエントリのアクション領域(AF:Action Field)に、アクション(Action)として、「コントローラ(OFC)10に対して、トポロジーディスカバリーパケット(TDP)に関するパケット入力メッセージ(PIM)を送信する」と指定する。すなわち、アクション領域(AF)のアクションがフローエントリのアクションとなる。
したがって、各スイッチ(OFS)は、受信したトポロジーディスカバリーパケット(TDP)30−2が、上記のフローエントリにマッチした場合、コントローラ(OFC)10に対して、トポロジーディスカバリーパケット(TDP)30−2に関するパケット入力メッセージ(PIM)30−3を送信することになる。
このとき、各スイッチ(OFS)は、このパケット入力メッセージ(PIM)30−3のデータ領域(DF:Data Field)に、トポロジーディスカバリーパケット(TDP)30−2を格納する。
また、各スイッチ(OFS)は、このパケット入力メッセージ(PIM)30−3に、当該スイッチ(OFS)の「DPID」と「Port」を格納する。
「DPID」(Delivery Point Identifier)は、スイッチ(OFS)の識別情報である。
ここでは、スイッチ(OFS)20−1の「DPID」を、「OFS1−DPID」とする。また、スイッチ(OFS)20−2の「DPID」を、「OFS2−DPID」とする。
「Port」は、スイッチ(OFS)の接続ポートの識別情報である。
ここでは、スイッチ(OFS)20−1の接続ポート21−1の「Port」を、「Port1」とする。また、スイッチ(OFS)20−2の接続ポート21−2の「Port」を、「Port2」とする。
[トポロジー検出処理]
次に、初期設定処理の完了後に行われるトポロジー検出処理について説明する。
コントローラ(OFC)10は、初期設定処理完了後、各スイッチ(OFS)のリンクアップしたポートに、セキュアチャンネルネットワーク経由で、オープンフローメッセージとして、トポロジーディスカバリーパケット(TDP)30−2に関するパケット出力メッセージ(POM)30−1を送信する。
このとき、コントローラ(OFC)10は、送信するパケット出力メッセージ(POM)30−1のアクション領域(AF)に、アクションとして、「当該リンクアップしたポートからトポロジーディスカバリーパケット(TDP)を送信する」と指定する。
また、コントローラ(OFC)10は、トポロジーディスカバリーパケット(TDP)30−2に、パケット出力メッセージ(POM)30−1の送信先であり、このトポロジーディスカバリーパケット(TDP)30−2の送信元となるスイッチ(OFS)の「DPID」と「Port」を指定する。
図1の例では、パケット出力メッセージ(POM)30−1の送信先であり、トポロジーディスカバリーパケット(TDP)30−2の送信元となるスイッチ(OFS)は、スイッチ(OFS)20−1である。
したがって、コントローラ(OFC)10は、スイッチ(OFS)20−1に対して、トポロジーディスカバリーパケット(TDP)30−2に関するパケット出力メッセージ(POM)30−1を送信する。
このとき、コントローラ(OFC)10は、このパケット出力メッセージ(POM)30−1のデータ領域(DF)に、トポロジーディスカバリーパケット(TDP)30−2を格納する。
また、コントローラ(OFC)10は、このパケット出力メッセージ(POM)30−1のアクション領域(AF)に、アクションとして、「スイッチ(OFS)20−1の接続ポート21−1からトポロジーディスカバリーパケット(TDP)30−2を送信する」と指定する。
また、コントローラ(OFC)10は、このトポロジーディスカバリーパケット(TDP)30−2に、当該スイッチ(OFS)20−1の「DPID」と「Port」として、「OFS1−DPID」と「Port1」を格納する。「OFS1−DPID」は、スイッチ(OFS)20−1の識別情報である。このスイッチ(OFS)20−1は、このトポロジーディスカバリーパケット(TDP)30−2の送信元となるスイッチ(OFS)である。「Port1」は、接続ポート21−1の識別情報である。この接続ポート21−1は、トポロジーディスカバリーパケット(TDP)30−2の送信ポートである。
スイッチ(OFS)20−1は、コントローラ(OFC)10から、上記のパケット出力メッセージ(POM)30−1を受信する。
スイッチ(OFS)20−1は、パケット出力メッセージ(POM)30−1のデータ領域(DF)に格納されたトポロジーディスカバリーパケット(TDP)30−2を取得する。
スイッチ(OFS)20−1は、このパケット出力メッセージ(POM)30−1のアクション領域(AF)に指定されたアクションに基づき、このトポロジーディスカバリーパケット(TDP)30−2を接続ポート21−1から送信する。
図1に示すように、スイッチ(OFS)20−1の接続ポート21−1は、スイッチ(OFS)20−2の接続ポート21−2と接続されている。したがって、スイッチ(OFS)20−1の接続ポート21−1から送信されたトポロジーディスカバリーパケット(TDP)30−2は、スイッチ(OFS)20−2の接続ポート21−2に到達する。
スイッチ(OFS)20−2は、接続ポート21−2で、トポロジーディスカバリーパケット(TDP)30−2を受信する。
スイッチ(OFS)20−2は、受信したトポロジーディスカバリーパケット(TDP)30−2が、初期設定処理で設定されたフローエントリにマッチした場合、コントローラ(OFC)10に対して、トポロジーディスカバリーパケット(TDP)30−2に関するパケット入力メッセージ(PIM)30−3を送信する。
このとき、スイッチ(OFS)20−2は、このパケット入力メッセージ(PIM)30−3に、当該スイッチ(OFS)20−2の「DPID」と「Port」として、「OFS2−DPID」と「Port2」を格納する。「OFS2−DPID」は、スイッチ(OFS)20−2の識別情報である。このスイッチ(OFS)20−2は、パケット入力メッセージ(PIM)30−3の送信元となるスイッチ(OFS)である。「Port2」は、接続ポート21−2の識別情報である。この接続ポート21−2は、トポロジーディスカバリーパケット(TDP)30−2の受信ポートである。
また、スイッチ(OFS)20−2は、このパケット入力メッセージ(PIM)30−3のデータ領域(DF)に、トポロジーディスカバリーパケット(TDP)30−2を格納する。
コントローラ(OFC)10は、上記のパケット入力メッセージ(PIM)30−3を受信する。
コントローラ(OFC)10は、このパケット入力メッセージ(PIM)30−3に格納された送信元のスイッチ(OFS)20−2の「OFS2−DPID」と「Port2」を取得する。
また、コントローラ(OFC)10は、このパケット入力メッセージ(PIM)30−3のデータ領域(DF)に格納されたトポロジーディスカバリーパケット(TDP)30−2を取得し、トポロジーディスカバリーパケット(TDP)30−2に格納されたスイッチ(OFS)20−1の「OFS1−DPID」と「Port1」を取得する。
これにより、コントローラ(OFC)10は、スイッチ(OFS)20−1の接続ポート21−1がスイッチ(OFS)20−2の接続ポート21−2と接続していることを検出する。
また、コントローラ(OFC)10は、上記と同様の仕組みで、逆方向にトポロジーディスカバリーパケット(TDP)30−2を流し、スイッチ(OFS)20−2の接続ポート21−2がスイッチ(OFS)20−1の接続ポート21−1と接続していることを検出する。
更に、コントローラ(OFC)10は、運用中に、一定的なインターバル/リトライ回数で、上記のトポロジーディスカバリーパケット(TDP)30−2と、上記の仕組みを利用し、検出したトポロジーを維持・更新する。
なお、DPID、パケット入力メッセージ(PIM)30−3、パケット出力メッセージ(POM)30−1、フローエントリの仕様については、非特許文献1(OpenFlow Switch Specification Version1.1.0)によって規定されている。
[検出したトポロジーの維持・更新における問題点]
上記の既存のオープンフローネットワークにおけるトポロジー検出・維持の手順は、オープンフローネットワークにおけるトポロジーの初期検出には有用であるが、検出したトポロジーを維持・更新する場合には、以下の(1)〜(3)のような問題点がある。
(1)セキュアチャンネルネットワークへの負荷が高まる。
コントローラ(OFC)は、検出したトポロジーを維持・更新するために、各スイッチ(OFS)の全リンクアップしたポートに定期的にトポロジーディスカバリーパケット(TDP)をセキュアチャンネルネットワークに流す必要がある。
また、各スイッチ(OFS)も受信したトポロジーディスカバリーパケット(TDP)をセキュアチャンネルネットワーク経由でコントローラ(OFC)に流す必要がある。
1つの双方向接続関係を維持・更新するため、一回のトポロジー走査で4個のトポロジーディスカバリーパケット(TDP)がセキュアチャンネルネットワーク上に流れる。
(2)検出したトポロジーを維持・更新はコントローラ(OFC)走査方法を利用するので、トポロジー変更があると、その変更を検出するために時間がかかる。
トポロジー変更を検出するタイミングは、運用中にコントローラ(OFC)がトポロジーディスカバリーパケット(TDP)を出すインターバル時間と、スイッチ(OFS)からのトポロジーディスカバリーパケット(TDP)のリプライタイムアウトに依存する。
インターバル時間とリプライタイムアウトが短ければ短いほど素早く検出できるが、その代わりに、セキュアチャンネルネットワーク上のスイッチ(OFS)への負荷が増大し、発生していないトポロジー変更を誤検出するリスクが増大する。
(3)既存の多くのスイッチ(OFS)は、従来のレガシースイッチ(legacy switch)に、オープンフローに対応したファームウェア(firmware)を実装することで実現されている。
例えば、スイッチ(OFS)は、オープンフローメッセージの処理において、「パケットがマッチしたフローエントリを検索し、マッチしたフローエントリに指定されたアクションに従ってパケットを処理する部分」以外の処理部分については、従来のレガシースイッチの汎用プロセッサを利用し、ソフトウェア(software)で実現している。
汎用プロセッサのリソースは非常に限られているので、処理する必要があるオープンフローメッセージのロード(load:読込)が増大すると、計算リソース不足で、オープンフローメッセージの処理が遅延したり、オープンフローメッセージ自体が消失(ロスト)したりする可能性が大きい。
そのため、このようなスイッチ(OFS)を利用したオープンフローネットワークでは、上記の既存のオープンフローネットワークにおけるトポロジー検出・維持の手順を利用すると、コントローラ(OFC)は、発生していないトポロジー変更を誤検出し、システムを通信不能の状態に陥らせる可能性が非常に高い。
関連する技術として、特許文献1(特開2003−143169号公報)にルーティングブリッジシステムが開示されている。このルーティングブリッジシステムでは、複数のノードをリング状に接続したリング状ネットワークが接続ノードを介して複数接続されたネットワークの、データリンクレイヤのアドレスを用いてデータの送信経路を決定する。各ノードは、所属するリング上の各ノード間のノード間スパニングツリーの作成を行うノードツリー作成部を備える。各接続ノードは、所属する各リング上の各ノード間のノード間スパニングツリーの作成を行うノードツリー作成部と、各リングを論理リンクに見立てた、各リング間のリング間スパニングツリーの作成を行うリング間ツリー作成部を備える。
また、特許文献2(特開2006−340361号公報)にホームネットワークのコネクショントポロジーの決定方法が開示されている。このホームネットワークのコネクショントポロジーの決定方法は、多重のハブ及びスイッチの周辺に配置されている複数のノードによって構成されているホームネットワークのコネクショントポロジーを決定するための方法である。この方法は、該複数のノードによってトポロジー決定メッセージをランダムなシーケンスにおいて1つずつ伝送し、該トポロジー決定メッセージの受信に基づいてノードの全てのコネクショントポロジーを1つずつ決定し、ノードの全てのローカルノードのリストを生成しかつ更新するステップを有している。トポロジー決定メッセージは、2つの連続するパケットを含んでいる。第1のパケットは、それをトポロジー決定パケットと識別する予め定めたペイロードを備えているブロードキャストパケットである。第2のパケットは、同じコンテント及び非実在デスティネーションMACアドレスを備えているユニキャストパケットである。
また、特許文献3(特開2008−172449号公報)にネットワークの論理トポロジーを検出するトポロジー検出方法が開示されている。この関連技術では、通信装置は、ポート番号と送信元MAC(Media Access Control)アドレスとを対応付けた転送情報を記録している。管理装置が、TTL(Time To Live)を1から順に1増分する毎に、該TTLを含むトレース要求を通信装置へ送信する。次に、通信装置が、TTL=1のトレース要求に対して、転送情報を含むトレース応答を管理装置へ返信する。そして、管理装置が、受信したトレース応答から転送情報を取得し、ネットワークの装置トポロジーにおけるポートトポロジを導出する。
また、特許文献4(特開2009−111976号公報)に無線メッシュ型ネットワークの構成及び最適化が開示されている。この関連技術では、ネットワーク設計ツールは、無線ネットワーク内でのノード及び機器の追加、除去、及び位置決めのための対話式グラフィックインターフェースと、閾値、ネットワークトポロジ選択、経路指定設定、及び無線メッシュ型ネットワーク内での通信経路及びスケジュールの生成及び最適化に関連するその他の構成パラメータを指定するための複数の対話式画面を含むメニューと、を提供する。ネットワーク設計ツールは、最適化規則の集合をユーザが入力するパラメータと共にネットワークモデルに自動的に適用して効率のよいネットワーク構成データを生成する。
特開2003−143169号公報 特開2006−340361号公報 特開2008−172449号公報 特開2009−111976号公報
"OpenFlow Switch Specification, Version 1.1.0 Implemented",[online],February 28, 2011,インターネット(URL:http://www.openflowswitch.org/documents/openflow−spec−v1.1.0.pdf)
本発明の目的は、オープンフローネットワーク等において、コントローラがスイッチ間のネットワークが高遅延な状況でのスイッチの物理トポロジーの維持・更新を行うネットワークシステムを提供することである。
本発明に係るネットワークシステムは、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行う複数のスイッチと、複数のスイッチの各々に対して、フローエントリの設定を行うコントローラとを含む。コントローラは、複数のスイッチの各々に対して、複数のスイッチ間で相互に送受信される巡回パケットが到着しなくなった場合に削除される巡回用フローエントリを設定し、各スイッチから、巡回用フローエントリを削除した旨の通知を受信した場合、複数のスイッチ間の障害を検出する。
本発明に係るコントローラは、複数のスイッチの各々に対して、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリを設定する機構と、複数のスイッチの各々に対して、複数のスイッチ間で相互に送受信される巡回パケットが到着しなくなった場合に削除される巡回用フローエントリを設定する機構と、各スイッチから、巡回用フローエントリを削除した旨の通知を受信した場合、複数のスイッチ間の障害を検出する機構とを備える。
本発明に係るトポロジー管理方法は、計算機により実施されるトポロジー管理方法であって、コントローラとして、複数のスイッチの各々に対して、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリを設定することと、複数のスイッチの各々に対して、複数のスイッチ間で相互に送受信される巡回パケットが到着しなくなった場合に削除される巡回用フローエントリを設定することと、各スイッチから、巡回用フローエントリを削除した旨の通知を受信した場合、複数のスイッチ間の障害を検出することとを含む。
本発明に係るプログラムは、上記のトポロジー管理方法における処理を、コントローラとして使用される計算機に実行させるためのプログラムである。なお、本発明に係るプログラムは、記憶装置や記憶媒体に格納することが可能である。
これにより、オープンフローネットワーク等において、トポロジーを維持・更新する際のセキュアチャンネルネットワーク上のスイッチの負荷を低減する。
既存のオープンフローネットワークにおけるトポロジー検出・維持の手順について説明するための図である。 本発明に係るネットワークシステムの構成例を示す図である。 本発明に係るトポロジーキープアライブパケットの仕様について説明するための図である。 本発明に係るパケット出力メッセージについて説明するための図である。 本発明に係るトポロジーキープアライブフローエントリの仕様について説明するための図である。 本発明に係るフローエントリ変更メッセージの仕様について説明するための図である。 本発明に係るフローエントリ削除済メッセージの仕様について説明する。 本発明に係るネットワークシステムの実施例について説明するための図である。
本発明は、CD分離型ネットワークを対象としている。ここでは、CD分離型ネットワークの1つであるオープンフローネットワークを例に説明する。但し、実際には、オープンフローネットワークに限定されない。
<第1実施形態>
以下に、本発明の第1実施形態について添付図面を参照して説明する。
本実施形態では、検出したトポロジーを維持・更新するために、「トポロジーキープアライブフローエントリ(TKAFE:Topology KeepAlive Flow Entry)」と、「トポロジーキープアライブパケット(TKAP:Topology KeepAlive Packet)」を規定して利用する。
トポロジーキープアライブパケット(TKAP)は、検出したトポロジーを維持・更新するために予め規定された巡回パケットであり、トポロジーキープアライブフローエントリ(TKAFE)にマッチするパケットである。
「トポロジーキープアライブフローエントリ(TKAFE)」や、「トポロジーキープアライブパケット(TKAP)」については後に詳述する。
[システム構成]
図2を参照して、本発明に係るネットワークシステムの構成例について説明する。
本発明に係るネットワークシステムは、コントローラ(OFC)10と、スイッチ(OFS)20(20−i、i=1〜n:nは任意)を含む。
コントローラ(OFC)10は、スイッチ(OFS)20(20−i、i=1〜n)の各々(以下、各スイッチ(OFS)20)に対して、フローエントリを設定する。
コントローラ(OFC)10は、セキュアチャンネルネットワーク100を介して、各スイッチ(OFS)20と接続されている。セキュアチャンネルネットワーク100には、コントローラ(OFC)とスイッチ(OFS)間のコントロール信号が流れる。
各スイッチ(OFS)20は、パケットを受信した際、コントローラ(OFC)10から設定されたフローエントリと受信パケットを比較し、受信パケットのヘッダ領域(HF:Header Field)の値が、フローエントリの整合領域(MF)の整合値(MV)とマッチした場合、このフローエントリのアクション領域(AF)に指定されたアクションを実行する。
[コントローラ(OFC)の構成]
次に、コントローラ(OFC)10の構成例について説明する。
コントローラ(OFC)10は、トポロジー管理部11と、トポロジー検出部12と、パケット梱包・振り分け処理部13と、パケット送信部14と、パケット受信部15を備える。
トポロジー管理部11は、トポロジー情報保存データベースを管理しており、コントローラ(OFC)10が検出したオープンフローネットワークのトポロジー情報をトポロジー情報保存データベースに保存する。また、トポロジー管理部11は、トポロジー検出部12からトポロジー情報の更新を指示された場合、指示の内容に従って、トポロジー情報保存データベースに保存されているトポロジー情報を更新する。
トポロジー検出部12は、既存のトポロジー検出機能を有し、トポロジーを検出・維持・更新する。すなわち、トポロジー検出部12は、従来通り、トポロジーディスカバリーパケット(TDP)を作成し、トポロジーを検出・維持・更新することができる。また、トポロジー検出部12は、検出したトポロジーを維持・更新するために、本実施形態において規定するトポロジーキープアライブフローエントリ(TKAFE)と、トポロジーキープアライブパケット(TKAP)を作成する。トポロジー検出部12は、作成した情報をパケット梱包・振り分け処理部13に渡す。更に、トポロジー検出部12は、パケット梱包・振り分け処理部13から受け取ったトポロジー変更通知メッセージを解析し、トポロジー管理部11に対し、トポロジー情報保存データベースに保存されているトポロジー情報の更新を指示する。
パケット梱包・振り分け処理部13は、トポロジー検出部12から受け取った情報で実際のパケットを梱包し、パケット送信部14に渡す。例えば、パケット梱包・振り分け処理部13は、各スイッチ(OFS)20にトポロジーキープアライブフローエントリ(TKAFE)を追加(登録)するためのフローエントリ変更メッセージ(MFEM:Modify Flow Entry Message)を作成し、このフローエントリ変更メッセージ(MFEM)をパケット送信部14に渡す。或いは、パケット梱包・振り分け処理部13は、トポロジー検出部12から受け取ったトポロジーキープアライブパケット(TKAP)をパケット出力メッセージ(POM)に格納し、このパケット出力メッセージ(POM)をパケット送信部14に渡す。また、パケット梱包・振り分け処理部13は、パケット受信部15から受け取ったパケットを解析し、適切なモジュールに振り分ける。例えば、パケット梱包・振り分け処理部13は、パケット受信部15から受け取ったパケット入力メッセージ(PIM)を解析してトポロジー変更通知メッセージを取得/作成し、このトポロジー変更通知メッセージをトポロジー検出部12に渡す。
パケット送信部14は、セキュアチャンネルネットワーク100を介して、パケット梱包・振り分け処理部13から受け取ったパケットを各スイッチ(OFS)20に送信する。例えば、パケット送信部14は、パケット出力メッセージ(POM)を各スイッチ(OFS)20に送信する。
パケット受信部15は、セキュアチャンネルネットワーク100を介して、各スイッチ(OFS)20からパケットを受信し、受信パケットをパケット梱包・振り分け処理部13に渡す。例えば、パケット受信部15は、各スイッチ(OFS)20からパケット入力メッセージ(PIM)を受信し、このパケット入力メッセージ(PIM)をパケット梱包・振り分け処理部13に渡す。
[トポロジーキープアライブパケットの仕様]
図3を参照して、本発明に係るトポロジーキープアライブパケット(TKAP)の仕様について説明する。
トポロジーキープアライブパケット(TKAP)として、以下の条件を満たす任意のパケットを利用することが可能である。
(1)ブロードキャスト(BC)・マルチキャスト(MC)と一般的に使われているパケットタイプ以外の任意のタイプのパケット
(2)非特許文献1(OpenFlow Switch Specification Version1.1.0)に規定されたフローエントリの整合領域(MF)、或いは、その一部を定義したパケット
本実施形態では、パケットのオーバヘッドを小さくするため、単純なMACヘッダフレーム(Ether Header Frame)を使用する。図3では、MACヘッダ(Ether Header)領域以外の領域の記載を省略する。
トポロジー検出部12は、MACヘッダ(Ether Header)領域のMAC送信元(Ether src)領域、MAC送信先(Ether dst)領域、及びフレームタイプ(Ether Type)領域の各々に、以下のような値を指定する。
トポロジー検出部12は、MAC送信元(Ether src)領域に、ワイルドカードの「*」を指定する。
トポロジー検出部12は、MAC送信先(Ether dst)領域に、「ブロードキャスト(BC)・マルチキャスト(MC)以外のMACアドレス」(Not BC/MC)を指定する。
トポロジー検出部12は、フレームタイプ(Ether Type)領域に、IANA(Internet Assigned Number Authority)に規定された「Experimental Type」の「0x1111」を指定する。
[パケット出力メッセージの仕様]
図4を参照して、本発明に係るパケット出力メッセージ(POM)の仕様について説明する。
パケット出力メッセージ(POM)は、ヘッダ領域(HF)と、アクション領域(AF)と、データ領域(DF)を有する。
ヘッダ領域(HF)は、本メッセージがパケット出力メッセージ(POM)である旨を示す情報を格納するための領域である。
アクション領域(AF)は、データ領域(DF)に格納されたパケットを送出する送信ポートを指定するための領域である。
データ領域(DF)は、トポロジーキープアライブパケット(TKAP)を格納するための領域である。
ここでは、コントローラ(OFC)10は、パケット出力メッセージ(POM)のヘッダ領域(HF)に、「Type is Packet Out」を指定する。「Type is Packet Out」は、本メッセージがパケット出力メッセージ(POM)である旨を示す情報である。
各スイッチ(OFS)20は、このパケット出力メッセージ(POM)を受信した場合、パケット出力メッセージ(POM)のデータ領域(DF)に格納されたトポロジーキープアライブパケット(TKAP)を、アクション領域(AF)に指定された送信ポートから送出する。
[トポロジーキープアライブフローエントリの仕様]
図5を参照して、本発明に係るトポロジーキープアライブフローエントリ(TKAFE)の仕様について説明する。
トポロジーキープアライブフローエントリ(TKAFE)は、整合領域(MF)と、クッキー領域(CF:Cookie Field)と、アクション領域(AF)を有する。
[整合領域]
まず、整合領域(MF)について説明する。
整合領域(MF)は、パケットのマッチングに使用されるエントリー項目を示す領域である。エントリー項目は、整合領域(MF)のサブフィールドである。コントローラ(OFC)10は、整合領域(MF)に示されたエントリー項目毎に、整合値(MV)を指定する。
なお、整合領域(MF)のエントリー項目には、入力ポート(Ingress Port)、メタデータ(Meta data)、MAC送信元(Ether src)、MAC送信先(Ether dst)、フレームタイプ(Ether type)、仮想LAN識別子(VLAN id)、仮想LAN優先度(VLAN priority)、MPLSラベル(MPLS label)、MPLSトラフィッククラス(MPLS traffic class)、IP送信元(IP src)、IP送信先(IP dst)、IPプロトコル(IP Protocol)、IPサービスタイプ(IP ToS bits)、送信元ポート(TCP/UDP src Port)、及び送信先ポート(TCP/UDP dst Port)等がある。
入力ポート(Ingress Port)は、最初に本パケットを受信したポートを示す。メタデータ(Meta data)は、本パケットに関する情報を示す。MAC送信元(Ether src)、MAC送信先(Ether dst)、フレームタイプ(Ether type)は、それぞれ、送信元MACアドレス、送信先MACアドレス、上位層のプロトコルを識別するための16ビットの情報を示す。MPLS(Multi−Protocol Label Switching)は、ラベルスイッチング方式を用いたパケット転送技術である。MPLSラベル(MPLS label)は、IPヘッダの代わりに利用される固定長の識別標識を示す。MPLSトラフィッククラス(MPLS traffic class)は、異なるクラス又は優先順位の特定と識別を行うための情報を示す。IP送信元(IP src)、IP送信先(IP dst)、IPプロトコル(IP Protocol)、IPサービスタイプ(IP ToS bits)は、それぞれ、送信元IPアドレス、送信先IPアドレス、IPプロトコル番号、TOSオクテット(IPパケットのヘッダ中に含まれる8ビットのオクテット部分)を示す。TOSオクテットは、通信のサービス品質(QoS)を制御する目的で,処理の優先度を指定するために使う。送信元ポート(TCP/UDP src Port)、及び送信先ポート(TCP/UDP dst Port)は、それぞれ、送信元ポート番号、送信先ポート番号を示す。
本実施形態では、入力ポート(Ingress Port)とフレームタイプ(Ether type)のみ、マッチングに使用する。
コントローラ(OFC)10は、各スイッチ(OFS)20にトポロジーキープアライブフローエントリ(TKAFE)を設定する際、入力ポート(Ingress Port)とフレームタイプ(Ether type)以外の整合領域(MF)のエントリー項目の整合値(MV)に「ANY」を指定する。
整合値(MV)が「ANY」である整合領域(MF)のエントリー項目は、任意の値(全ての値)にマッチするため、パケットのマッチングには使用されない。
これにより、各スイッチ(OFS)20は、受信パケットとトポロジーキープアライブフローエントリ(TKAFE)とを比較し、入力ポート(Ingress Port)及びフレームタイプ(Ether type)について、双方の値がマッチした場合、受信パケットとトポロジーキープアライブフローエントリ(TKAFE)がマッチしたと判断する。
ここでは、コントローラ(OFC)10は、入力ポート(Ingress Port)の整合値(MV)に、特定のポート(Specified Port)を指定する。この特定のポート(Specified Port)は、コントローラ(OFC)10が検出した各スイッチ(OFS)20のポートのうち、他の各スイッチ(OFS)20と繋がるポートを示す。
また、コントローラ(OFC)10は、フレームタイプ(Ether type)の整合値(MV)に「0x1111」を指定する。「0x1111」は、本実施形態におけるトポロジーキープアライブパケット(TKAP)のフレームタイプ(Ether type)を示す。
[クッキー領域]
次に、クッキー領域(CF)について説明する。
クッキー領域(CF)は、付加情報等のデータを一時保存しておくためのクッキー(Cookie)を示す領域である。クッキーには、クッキー値(CV:Cookie Value)が指定される。
コントローラ(OFC)10は、クッキーのクッキー値(CV)に、64ビットの識別子を指定する。
この64ビットの識別子は、トポロジーキープアライブフローエントリ(TKAFE)を設定したコントローラ(OFC)10が内部管理しているフローエントリを特定するための識別子である。オープンフローでは、コントローラ(OFC)10は、各スイッチ(OFS)20側のフローエントリを把握・管理するため、各スイッチ(OFS)20側のフローエントリのコピー(複写)を保持している。
[アクション領域]
次に、アクション領域(AF)について説明する。
アクション領域(AF)は、当該フローエントリの特性に関するプロパティー項目(properties)を示す領域である。プロパティー項目は、アクション領域(AF)のサブフィールドである。コントローラ(OFC)10は、アクション領域(AF)に示されたプロパティー項目毎に、特性を示す値(特性値)を指定する。
なお、アクション領域(AF)のプロパティー項目には、優先度(Entry Priority)、遊休時間(Idle time)、固定時間(Hard time)、フラグ(Flag)、アクション(Action)等がある。
コントローラ(OFC)10は、優先度(Entry Priority)に「0xffff」を指定する。優先度(Entry Priority)は、フローエントリ自体の優先度を示す。「0xffff」は、最も高い優先度(最優先)を示す。すなわち、トポロジーキープアライブフローエントリ(TKAFE)は、最優先のフローエントリとなる。これにより、各スイッチ(OFS)20は、受信パケットに対して、トポロジーキープアライブフローエントリ(TKAFE)を最優先に比較し、マッチした場合、トポロジーキープアライブフローエントリ(TKAFE)のアクションを実行する。
また、コントローラ(OFC)10は、遊休時間(Idle time)に「0x0003」を指定し、固定時間(Hard time)に「0x0000」を指定する。時間の指定において、「0x0003」は「3秒」を示す。これにより、各スイッチ(OFS)20は、トポロジーキープアライブパケット(TKAP)を受信してから、3秒以内に、次のトポロジーキープアライブパケット(TKAP)を受信しなかった場合、トポロジーキープアライブフローエントリ(TKAFE)がエクスパイヤ(expire:期限満了、失効)したものと判断し、フローテーブルから当該トポロジーキープアライブフローエントリ(TKAFE)を削除(エージアウト)する。
また、コントローラ(OFC)10は、フラグ(Flag)に、「送信フロー削除フラグ(SFRF:Send Flow Removed Flag)=on」を指定する。すなわち、送信フロー削除フラグ(SFRF)を「on」(有効)にする。これにより、各スイッチ(OFS)20は、エクスパイヤしたトポロジーキープアライブフローエントリ(TKAFE)を削除した後、エクスパイヤしたトポロジーキープアライブフローエントリ(TKAFE)を削除した旨を示すオープンフローメッセージをコントローラ(OFC)10に送信する。本実施形態では、各スイッチ(OFS)20は、エクスパイヤしたトポロジーキープアライブフローエントリ(TKAFE)を削除した後、後述するフローエントリ削除済メッセージ(FERM:Flow Entry Removed Message)をコントローラ(OFC)10に送信する。
また、コントローラ(OFC)10は、アクション(Action)に、「マッチしたパケットを受信ポートに送り戻す動作」(Send to in−port)を指定する。「マッチしたパケットを受信ポートに送り戻す動作」とは、接続ポートで受信したパケットが当該フローエントリにマッチした場合、当該パケットを、当該接続ポートに送り戻す動作を示す。これにより、各スイッチ(OFS)20は、トポロジーキープアライブフローエントリ(TKAFE)にマッチしたトポロジーキープアライブパケット(TKAP)を、受信ポートに送り戻す。したがって、トポロジーキープアライブパケット(TKAP)は、相互接続され、トポロジーキープアライブフローエントリ(TKAFE)が設定されたスイッチ(OFS)20間を巡回する。
[フローエントリ変更メッセージの仕様]
図6を参照して、コントローラ(OFC)10が各スイッチ(OFS)20にトポロジーキープアライブフローエントリ(TKAFE)を追加(登録)するためのフローエントリ変更メッセージ(MFEM)の仕様について説明する。
フローエントリ変更メッセージ(MFEM)は、ヘッダ領域(HF)と、整合領域(MF)と、クッキー領域(CF)と、アクション領域(AF)を有する。
ヘッダ領域(HF)は、本メッセージがフローエントリ変更メッセージ(MFEM)である旨を示す情報を格納するための領域である。
ここでは、コントローラ(OFC)10は、フローエントリ変更メッセージ(MFEM)のヘッダ領域(HF)に、「Type is Modify State」を指定する。「Type is Modify State」は、本メッセージがフローエントリ変更メッセージ(MFEM)である旨を示す情報である。
整合領域(MF)、クッキー領域(CF)、及びアクション領域(AF)については、基本的に、図5で説明したトポロジーキープアライブフローエントリ(TKAFE)と同様である。
なお、アクション領域(AF)のプロパティー項目には、更に、命令(Command)が追加されている。
コントローラ(OFC)10は、新規のトポロジーキープアライブフローエントリ(TKAFE)を追加する場合、命令(Command)に、「フローエントリの追加」(Add Flow entry)を指定する。また、コントローラ(OFC)10は、既存のトポロジーキープアライブフローエントリ(TKAFE)を修正する場合、命令(Command)に、「フローエントリの変更」(Modify Flow entry)を指定する。
また、コントローラ(OFC)10は、整合領域(MF)、クッキー領域(CF)、及びアクション領域(AF)の各項目に、設定値を指定する。
各スイッチ(OFS)20は、このフローエントリ変更メッセージ(MFEM)を受信した場合、アクション領域(AF)の命令(Command)を確認する。
各スイッチ(OFS)20は、アクション領域(AF)の命令(Command)に「フローエントリの変更」(Modify Flow entry)が指定されている場合、整合領域(MF)、クッキー領域(CF)、及びアクション領域(AF)の各項目を参照し、該当するトポロジーキープアライブフローエントリ(TKAFE)が存在するか確認する。
各スイッチ(OFS)20は、該当するトポロジーキープアライブフローエントリ(TKAFE)が存在しない場合、或いは、アクション領域(AF)の命令(Command)に「フローエントリの追加」(Add Flow entry)が指定されている場合、このフローエントリ変更メッセージ(MFEM)の整合領域(MF)、クッキー領域(CF)、及びアクション領域(AF)の各項目に指定された値に基づいて、新規のトポロジーキープアライブフローエントリ(TKAFE)を追加する。
各スイッチ(OFS)20は、該当するトポロジーキープアライブフローエントリ(TKAFE)が存在する場合、このフローエントリ変更メッセージ(MFEM)の整合領域(MF)、クッキー領域(CF)、及びアクション領域(AF)の各項目に指定された値を、トポロジーキープアライブフローエントリ(TKAFE)に反映する。すなわち、フローエントリ変更メッセージ(MFEM)の上記の各領域に指定された値を、トポロジーキープアライブフローエントリ(TKAFE)の該当する領域に上書きする。
これにより、コントローラ(OFC)10は、作成/修正したトポロジーキープアライブフローエントリ(TKAFE)を、各スイッチ(OFS)20側に設定することができる。
なお、コントローラ(OFC)10が、既存のトポロジーキープアライブフローエントリ(TKAFE)を削除する場合には、命令(Command)に、「フローエントリの削除」(Delete Flow entry)を指定すれば良い。「フローエントリの削除」(Delete Flow entry)の手順は、「フローエントリの変更」(Modify Flow entry)の手順と同様である。
[フローエントリ削除済メッセージの仕様]
図7を参照して、各スイッチ(OFS)20がエクスパイヤしたトポロジーキープアライブフローエントリ(TKAFE)を削除した後に、コントローラ(OFC)10に送信するフローエントリ削除済メッセージ(FERM)の仕様について説明する。
ヘッダ領域(HF)は、本メッセージがフローエントリ削除済メッセージ(FERM)である旨を示す情報を格納するための領域である。
ここでは、各スイッチ(OFS)20は、フローエントリ削除済メッセージ(FERM)のヘッダ領域(HF)に、「Type is Flow Removed」を指定する。「Type is Flow Removed」は、本メッセージがフローエントリ削除済メッセージ(FERM)である旨を示す情報である。
整合領域(MF)、クッキー領域(CF)、及びアクション領域(AF)については、基本的に、図6で説明したフローエントリ変更メッセージ(MFEM)と同様である。
各スイッチ(OFS)20は、命令(Command)に、「フローエントリの削除」(Delete Flow entry)を指定する。
また、各スイッチ(OFS)20は、整合領域(MF)、クッキー領域(CF)、及びアクション領域(AF)の各項目に、削除対象となるトポロジーキープアライブフローエントリ(TKAFE)に指定されている値(既定値)を指定する。
コントローラ(OFC)10は、このフローエントリ削除済メッセージ(FERM)を受信した場合、ヘッダ領域(HF)、又は、アクション領域(AF)の命令(Command)の少なくとも一方を確認する。
コントローラ(OFC)10は、ヘッダ領域(HF)に「Type is Flow Removed」が指定されている場合、又は、アクション領域(AF)の命令(Command)に「フローエントリの削除」(Delete Flow entry)が指定されている場合、クッキー領域(CF)のクッキーに格納された64ビットの識別子を参照し、或いは、整合領域(MF)、クッキー領域(CF)、及びアクション領域(AF)の各項目を参照し、該当するトポロジーキープアライブフローエントリ(TKAFE)が存在するか確認する。
コントローラ(OFC)10は、該当するトポロジーキープアライブフローエントリ(TKAFE)が存在しない場合、このフローエントリ削除済メッセージ(FERM)を無視・破棄する。
コントローラ(OFC)10は、該当するトポロジーキープアライブフローエントリ(TKAFE)が存在する場合、そのトポロジーキープアライブフローエントリ(TKAFE)を削除する。
これにより、各スイッチ(OFS)20は、エクスパイヤしたトポロジーキープアライブフローエントリ(TKAFE)の削除を、コントローラ(OFC)10側に反映することができる。
<実施例>
図8を参照して、本発明に係るネットワークシステムの実施例について説明する。
本実施例では、1台のコントローラ(OFC)10と4台のスイッチ(OFS)20でオープンフローネットワークが構成されている。
コントローラ(OFC)10は、セキュアチャンネルネットワーク100を介して、4台のスイッチ(OFS)20の各々と接続されている。セキュアチャンネルネットワーク100には、コントローラ(OFC)とスイッチ(OFS)間のコントロール信号が流れる。
4台のスイッチ(OFS)20を、それぞれ、スイッチ(OFS)20−1、スイッチ(OFS)20−2、スイッチ(OFS)20−3、及びスイッチ(OFS)20−4とする。
ここでは、スイッチ(OFS)20−1の「DPID」を、「OFS1−DPID」とする。スイッチ(OFS)20−2の「DPID」を、「OFS2−DPID」とする。スイッチ(OFS)20−3の「DPID」を、「OFS3−DPID」とする。スイッチ(OFS)20−4の「DPID」を、「OFS4−DPID」とする。
また、スイッチ(OFS)20−1の接続ポートの1つである「Port1」は、スイッチ(OFS)20−2の接続ポートの1つである「Port2」と接続されている。スイッチ(OFS)20−2の接続ポートの1つである「Port3」は、スイッチ(OFS)20−3の接続ポートの1つである「Port4」と接続されている。スイッチ(OFS)20−3の接続ポートの1つである「Port5」は、スイッチ(OFS)20−4の接続ポートの1つである「Port6」と接続されている。スイッチ(OFS)20−4の接続ポートの1つである「Port7」は、スイッチ(OFS)20−1の接続ポートの1つである「Port8」と接続されている。
[トポロジー初期検出]
まず、トポロジーを初期検出した際の動作について説明する。
コントローラ(OFC)10のトポロジー検出部12は、既存のトポロジー検出機能を利用して、繋がっているスイッチ(OFS)20の相互接続関係を収集し、オープンフローネットワークのトポロジーを検出する。
トポロジー検出部12は、検出したトポロジー情報を、以下のように、トポロジー管理部11のトポロジー情報保存データベースに格納する。
(Connection (OFS1−DPID: Port1 to OFS2−DPID: Port2), KeepAlive Flow Entry Cookie (0x0000000000000000))
(Connection (OFS2−DPID: Port2 to OFS1−DPID: Port1), KeepAlive Flow Entry Cookie (0x0000000000000000))
(Connection (OFS2−DPID: Port3 to OFS3−DPID: Port4), KeepAlive Flow Entry Cookie (0x0000000000000000))
(Connection (OFS3−DPID: Port4 to OFS2−DPID: Port3), KeepAlive Flow Entry Cookie (0x0000000000000000))
(Connection (OFS3−DPID: Port5 to OFS4−DPID: Port6), KeepAlive Flow Entry Cookie (0x0000000000000000))
(Connection (OFS4−DPID: Port6 to OFS3−DPID: Port5), KeepAlive Flow Entry Cookie (0x0000000000000000))
(Connection (OFS4−DPID: Port7 to OFS1−DPID: Port8), KeepAlive Flow Entry Cookie (0x0000000000000000))
(Connection (OFS1−DPID: Port8 to OFS4−DPID: Port7), KeepAlive Flow Entry Cookie (0x0000000000000000))
[トポロジー維持・更新]
次に、トポロジーを維持・更新する際の動作について説明する。
トポロジー検出部12は、トポロジーを初期検出した後、トポロジー管理部11のトポロジー情報データベースに格納した各スイッチ(OFS)とポート(Port)の組み合わせを順次に取り出し、そのスイッチ(OFS)とポート(Port)の組み合わせに基づいて、トポロジーキープアライブフローエントリ(TKAFE)を作成する。
また、トポロジー検出部12は、トポロジーキープアライブフローエントリ(TKAFE)の作成と同時に、作成したトポロジーキープアライブフローエントリ(TKAFE)を識別するためのクッキーを生成する。
本実施例では、トポロジー検出部12は、まず「OFS1−DPID」の「Port1」に基づいて、トポロジーキープアライブフローエントリ(TKAFE)を生成する。
トポロジー検出部12は、生成したトポロジーキープアライブフローエントリ(TKAFE)の整合領域(MF)の各エントリー項目について、以下のような値を指定する。
トポロジー検出部12は、入力ポート(Ingress Port)の整合値(MV)に「Port1」を指定する。
トポロジー検出部12は、フレームタイプ(Ether type)の整合値(MV)に「0x1111」を指定する。
トポロジー検出部12は、優先度(Entry Priority)に「0xffff」を指定する。
トポロジー検出部12は、遊休時間(Idle time)に「0x0003」を指定する。
トポロジー検出部12は、固定時間(Hard time)に「0x0000」を指定する。
トポロジー検出部12は、フラグ(Flag)に、「送信フロー削除フラグ(SFRF)=on」を指定する。すなわち、送信フロー削除フラグ(SFRF)を「on」(有効)にする。
また、トポロジー検出部12は、上記の指定と同時に、クッキーを生成し、クッキーのクッキー値(CV)に、フローエントリを特定するための64ビットの識別子を指定する。
本実施例では、クッキーのクッキー値(CV)に、「OFS1−DPID」の「Port1」のトポロジーキープアライブフローエントリ(TKAFE)を識別するために生成した「0x0000000000000001」を指定する。
トポロジー検出部12は、クッキーを生成した後、生成したトポロジーキープアライブフローエントリ(TKAFE)、クッキー値(CV)、送信先のスイッチ(OFS)20−1の「DPID」等の情報をパケット梱包・振り分け処理部13に渡し、新規のフローエントリを追加するためのフローエントリ変更メッセージ(MFEM)に梱包する旨の指示を出す。
パケット梱包・振り分け処理部13は、トポロジー検出部12から受け取った情報及び指示に基づいて、図6で説明したフローエントリ変更メッセージ(MFEM)を作成する。また、パケット梱包・振り分け処理部13は、作成したフローエントリ変更メッセージ(MFEM)と、送信先スイッチ(OFS)のIPアドレスと、セキュアチャンネルポートのポート番号を、パケット送信部14に渡す。
パケット送信部14は、パケット梱包・振り分け処理部13から受け取った情報に基づいて、フローエントリ変更メッセージ(MFEM)を、セキュアチャンネルポートから、送信先スイッチ(OFS)に送信する。
本実施例では、パケット送信部14は、フローエントリ変更メッセージ(MFEM)をスイッチ(OFS)20−1に送信する。
トポロジー検出部12は、非特許文献1(OpenFlow Switch Specification Version1.1.0)によって規定されている「Barrier Request/Reply」の同期の仕組みで、スイッチ(OFS)20−1に対するトポロジーキープアライブフローエントリ(TKAFE)の追加が成功したことを知り、追加に成功したトポロジーキープアライブフローエントリ(TKAFE)のクッキー値(CV)をトポロジー情報データベースに追加する。
本実施例では、トポロジー検出部12は、トポロジー管理部11のトポロジー情報データベースに、以下のようにクッキー値(CV)を追加する。
(Connection (OFS1−DPID: Port1 to OFS2−DPID: Port2), KeepAlive Flow Entry Cookie (0x0000000000000001))
また、本実施例では、トポロジー検出部12は、「OFS1−DPID」の「Port1」と相互接続している「OFS2−DPID」の「Port2」に対して、上記と同様な手順で、トポロジーキープアライブフローエントリ(TKAFE)を追加し、クッキー値(CV)をトポロジー情報データベースに設定する。
トポロジー検出部12は、トポロジー管理部11のトポロジー情報データベースに、以下のようなクッキー値(CV)を追加する。
(Connection (OFS2−DPID: Port2 to OFS1−DPID: Port1), KeepAlive Flow Entry Cookie (0x0000000000000002))
トポロジー検出部12は、相互接続しているスイッチ(OFS)の両方に対して、トポロジーキープアライブフローエントリ(TKAFE)の追加に成功した後に、トポロジーキープアライブパケット(TKAP)と、図4で説明したパケット出力メッセージ(POM)を両方のスイッチ(OFS)に送信する旨の指示を、パケット梱包・振り分け処理部13に渡す。
パケット梱包・振り分け処理部13は、トポロジー検出部12から受け取った情報及び指示に基づいて、トポロジーキープアライブパケット(TKAP)をパケット出力メッセージ(POM)のデータ領域(DF)に格納する。
パケット出力メッセージ(POM)のアクション領域(AF)に、スイッチ(OFS)間の相互接続ポートからデータ領域(DF)のパケットを送信する動作を指定する。
本実施例では、パケット梱包・振り分け処理部13は、スイッチ(OFS)20−1に対して、アクション領域(AF)に「Port1からパケットを送信する動作」を指定したパケット出力メッセージ(POM)を作成する。また、スイッチ(OFS)20−2に対して、アクション領域(AF)に「Port2からパケットを送信する動作」を指定したパケット出力メッセージ(POM)を作成する。
パケット梱包・振り分け処理部13は、これらのパケット出力メッセージ(POM)と、送信先スイッチ(OFS)のIPアドレスと、セキュアチャンネルポートのポート番号を、パケット送信部14に渡す。
パケット送信部14は、パケット梱包・振り分け処理部13から受け取った情報に基づいて、これらのパケット出力メッセージ(POM)を、それぞれ該当する送信先スイッチ(OFS)に送信する。
本実施例では、パケット送信部14は、スイッチ(OFS)20−1に対して、アクション領域(AF)に「Port1からパケットを送信する動作」を指定したパケット出力メッセージ(POM)を送信する。また、スイッチ(OFS)20−2に対して、アクション領域(AF)に「Port2からパケットを送信する動作」を指定したパケット出力メッセージ(POM)を送信する。
スイッチ(OFS)20−1は、受け取ったパケット出力メッセージ(POM)に従って、図3で説明したトポロジーキープアライブパケット(TKAP)を「Port1」から送信する。
スイッチ(OFS)20−2は、受け取ったパケット出力メッセージ(POM)に従って、図3で説明したトポロジーキープアライブパケット(TKAP)を「Port2」から送信する。
また、トポロジーキープアライブパケット(TKAP)は、スイッチ(OFS)20−1とスイッチ(OFS)20−2の各々に設定されたトポロジーキープアライブフローエントリ(TKAFE)にマッチするので、障害が発生しない限り、トポロジーキープアライブパケット(TKAP)は、スイッチ(OFS)20−1の「Port1」とスイッチ(OFS)20−2の「Port2」との間で往復する。
以上の仕組みで、コントローラ(OFC)10は、検出した全部のスイッチ(OFS)とポート(Port)の組み合わせに対して、トポロジーキープアライブフローエントリ(TKAFE)の登録と、トポロジーキープアライブパケット(TKAP)の送信を実施する。
[障害発生時]
次に、スイッチ(OFS)間の相互接続ポートやネットワークに障害が発生した際の動作について説明する。
スイッチ(OFS)間の相互接続ポートやネットワークに障害が発生すると、トポロジーキープアライブパケット(TKAP)は、正しくスイッチ(OFS)間の相互接続ポートに到着できなくなる。すなわち、スイッチ(OFS)において、トポロジーキープアライブフローエントリ(TKAFE)にマッチするパケットが到着しなくなる。
スイッチ(OFS)は、トポロジーキープアライブフローエントリ(TKAFE)にマッチするパケットが到着しない時間が、トポロジーキープアライブフローエントリ(TKAFE)の遊休時間(Idle time)に設定した時間以上になると、トポロジーキープアライブフローエントリ(TKAFE)がエクスパイヤしたと判断し、このトポロジーキープアライブフローエントリ(TKAFE)を削除する。
スイッチ(OFS)は、エクスパイヤしたトポロジーキープアライブフローエントリ(TKAFE)を削除した後に、コントローラ(OFC)10に対して図7で説明したフローエントリ削除済メッセージ(FERM)を送信する。
コントローラ(OFC)10のトポロジー検出部12は、スイッチ(OFS)から送信されたフローエントリ削除済メッセージ(FERM)のクッキー値(CV)でトポロジー情報データベースに格納したトポロジー情報を検索することで、どのスイッチ(OFS)のどのポート(Port)のトポロジーキープアライブフローエントリ(TKAFE)がエクスパイヤしたことを知り、該当のトポロジー情報をデータベースから削除する。
本実施例では、スイッチ(OFS)20−1の「Port1」とスイッチ(OFS)20−2の「Port2」(相互接続しているポート)の間に障害が発生した場合を例として説明する。
障害が発生すると、スイッチ(OFS)20−1とスイッチ(OFS)20−2の各々に、スイッチ(OFS)20−1の「Port1」とスイッチ(OFS)20−2の「Port2」との間のトポロジーキープアライブパケット(TKAP)が届かなくなる。
スイッチ(OFS)20−1とスイッチ(OFS)20−2は、それぞれ、このトポロジーキープアライブフローエントリ(TKAFE)にマッチするトポロジーキープアライブパケット(TKAP)が届かなくなってから3秒が経つと、このトポロジーキープアライブフローエントリ(TKAFE)がエクスパイヤしたと判断し、このトポロジーキープアライブフローエントリ(TKAFE)を削除する。
スイッチ(OFS)20−1とスイッチ(OFS)20−2は、それぞれ、トポロジーキープアライブフローエントリ(TKAFE)を削除した後、フローエントリ削除済メッセージ(FERM)をコントローラ(OFC)10に送信する。
コントローラ(OFC)10は、スイッチ(OFS)20−1とスイッチ(OFS)20−2の各々から、それぞれフローエントリ削除済メッセージ(FERM)を受信する。
コントローラ(OFC)10は、それぞれのフローエントリ削除済メッセージ(FERM)に格納されたクッキー値(CV)に基づいて、相互接続がなくなっていると判断し、相互接続情報をトポロジー情報データベースから削除することで、トポロジー変更を更新する。
なお、スイッチ(OFS)20−1から受信したフローエントリ削除済メッセージ(FERM)に格納されたクッキー値(CV)は、「0x0000000000000001」である。
また、スイッチ(OFS)20−2から受信したフローエントリ削除済メッセージ(FERM)に格納されたクッキー値(CV)は、「0x0000000000000002」である。
本実施例では、コントローラ(OFC)10は、以下の相互接続情報をトポロジー情報データベースから削除することで、トポロジー変更を更新する。
(Connection (OFS1−DPID: Port1 to OFS2−DPID: Port2), KeepAlive Flow Entry Cookie (0x0000000000000001))
(Connection (OFS2−DPID: Port2 to OFS1−DPID: Port1), KeepAlive Flow Entry Cookie (0x0000000000000002))
<第2実施形態>
以下に、本発明の第2実施形態について説明する。
本実施形態では、トポロジーキープアライブフローエントリ(TKAFE)がエクスパイヤした際に、即時に相互接続ポートに障害が発生したと判断せずに、LLDPパケットを利用して一定のリトライ回数でトポロジー検査を行う。
すなわち、二重の検査を行い、LLDPパケットを利用したトポロジー検査でも相互接続関係を確認できない場合に、スイッチ(OFS)間の相互接続ポートに障害が発生したと判断する。
<各実施形態の関係>
なお、上記の各実施形態は、組み合わせて実施することも可能である。
<本発明の特徴>
次に、本発明の特徴について説明する。
本発明に係るネットワークシステムは、例えばオープンフローネットワークにおいて、コントローラ(OFC)がスイッチ(OFS)間のネットワークが高遅延な状況でのスイッチの物理トポロジーの維持・更新を行うネットワークシステムに関する。
コントローラ(OFC)は、スイッチ(OFS)間の初期接続の完了後に、各スイッチ(OFS)の相互接続ポートに対して、アクション領域(AF)に「パケットが入ってきたポートにパケットを転送する動作」(Send to in−port)を指定し、遊休時間経過領域(Idle timeout Field)に遊休時間を指定した巡回用のフローエントリを設定する。なお、トポロジーキープアライブフローエントリ(TKAFE)は、巡回用のフローエントリの1つである。
コントローラ(OFC)は、パケット出力メッセージ(POM)を利用して、予め規定された巡回パケットを各スイッチ(OFS)の相互接続ポートに送る。なお、トポロジーキープアライブパケット(TKAP)は、巡回パケットの1つである。
巡回パケットは、アクション領域(AF)に「Send to in−port」が指定されている巡回用のフローエントリにマッチし、各スイッチ(OFS)の相互接続ポート間で往復する。
OPS間の相互接続ポートに障害発生時に、巡回パケットが各スイッチ(OFS)の相互接続ポートに届かなくなる。
各スイッチ(OFS)において、アクション領域(AF)に「Send to in−port」が指定されている巡回用のフローエントリにマッチするパケットがなくなる。
各スイッチ(OFS)は、巡回用のフローエントリの遊休時間経過領域(Idle timeout Field)に指定されている遊休時間の経過後に、当該巡回用のフローエントリを削除(エージアウト)する。
また、スイッチ(OFS)は、巡回用のフローエントリを削除(エージアウト)したことを示すエージアウトメッセージを、コントローラ(OFC)へ通知する。
コントローラ(OFC)は、スイッチ(OFS)から通知された巡回用のフローエントリのエージアウトメッセージに基づいて、該当スイッチ(OFS)間の相互接続ポートに障害が発生したと判断する。
なお、本発明に係るネットワークシステムでは、オープンフローネットワークにおいて、コントローラ(OFC)が検出したトポロジーを維持し、トポロジー変更を検出するために、コントローラ(OFC)が頻繁的に走査パケットを流す仕組みを利用するのではなく、トポロジー変更をスイッチ(OFS)が主動的にコントローラ(OFC)に通知する仕組みを利用する。そのため、セキュアチャンネルネットワーク上のスイッチ(OFS)への負荷を軽減することができる。
また、本発明に係るネットワークシステムでは、トポロジーキープアライブフローエントリ(TKAFE)の遊休時間(Idle time)と、エクスパイヤと、フローエントリ削除済メッセージ(FERM)の仕組みを利用する。そのため、セキュアチャンネルネットワーク上のスイッチ(OFS)に負荷を与えることなく、トポロジー変更の検出を素早くするように調整することができる。
また、本発明に係るネットワークシステムでは、セキュアチャンネルに流すトポロジー変更を通知するパケットが、1つのスイッチ(OFS)間の相互接続ポートに対して1つしか存在しない。そのため、セキュアチャンネルが高負荷の状態でも、トポロジー変更の検出が漏れる可能性を、既存のトポロジー検出技術よりも低くすることができる。
また、本発明に係るネットワークシステムでは、スイッチ(OFS)が、トポロジーキープアライブパケット(TKAP)を汎用プロセッサ以外のLSI等で処理する。そのため、スイッチ(OFS)の汎用プロセッサのリスース不足が原因で、発生していない物理トポロジーの変更を誤って検出してしまう可能性を軽減することができる。
更に、本発明に係るネットワークシステムでは、オープンフロープロトコル(OpenFlow Protocol)に対応したスイッチ(OFS)を利用すれば、スイッチ(OFS)に新たな機能(ハードウェア実装、ソフトウェア実装)を追加する必要がなく、コントローラへのソフトウェア実装だけで実現することができる。
<ハードウェアの例示>
以下に、本発明に係るネットワークシステムを実現するための具体的なハードウェアの例について説明する。
コントローラ(OFC)の例として、PC(パソコン)、アプライアンス(appliance)、シンクライアントサーバ、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。なお、コントローラ(OFC)は、端末やサーバに限らず、中継機器や周辺機器でも良い。また、コントローラ(OFC)は、計算機等に搭載される拡張ボードや、物理マシン上に構築された仮想マシン(VM:Virtual Machine)でも良い。
スイッチ(OFS)の例として、ネットワークスイッチ(network switch)、ルータ(router)、プロキシ(proxy)、ゲートウェイ(gateway)、ファイアウォール(firewall)、ロードバランサ(load balancer:負荷分散装置)、帯域制御装置(packet shaper)、セキュリティ監視制御装置(SCADA:Supervisory Control And Data Acquisition)、ゲートキーパー(gatekeeper)、基地局(base station)、アクセスポイント(AP:Access Point)、通信衛星(CS:Communication Satellite)、或いは、複数の通信ポートを有する計算機等が考えられる。また、物理マシン上に構築された仮想マシン(VM)により実現される仮想スイッチでも良い。
コントローラ(OFC)及びスイッチ(OFS)の各々は、車両や船舶、航空機等の移動体に搭載されていても良い。
図示しないが、コントローラ(OFC)及びスイッチ(OFS)の各々は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリと、ネットワークとの通信に用いられるインターフェースによって実現される。
上記のプロセッサの例として、CPU(Central Processing Unit)、ネットワークプロセッサ(NP:Network Processor)、マイクロプロセッサ(microprocessor)、マイクロコントローラ(microcontroller)、或いは、専用の機能を有する半導体集積回路(LSI:Large Scale Integration)等が考えられる。
上記のメモリの例として、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)やフラッシュメモリ等の半導体記憶装置、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置、又は、DVD(Digital Versatile Disk)等のリムーバブルディスクや、SDメモリカード(Secure Digital memory card)等の記憶媒体(メディア)等が考えられる。また、バッファ(buffer)やレジスタ(register)等でも良い。或いは、DAS(Direct Attached Storage)、FC−SAN(Fibre Channel − Storage Area Network)、NAS(Network Attached Storage)、IP−SAN(IP − Storage Area Network)等を用いたストレージ装置でも良い。
なお、上記のプロセッサ及び上記のメモリは、一体化していても良い。例えば、近年では、マイコン等の1チップ化が進んでいる。したがって、電子機器等に搭載される1チップマイコンが、上記のプロセッサ及び上記のメモリを備えている事例も考えられる。
上記のインターフェースの例として、ネットワーク通信に対応した基板(マザーボード、I/Oボード)やチップ等の半導体集積回路、NIC(Network Interface Card)等のネットワークアダプタや同様の拡張カード、アンテナ等の通信装置、接続口(コネクタ)等の通信ポート等が考えられる。
また、ネットワークの例として、インターネット、LAN(Local Area Network)、無線LAN(Wireless LAN)、WAN(Wide Area Network)、バックボーン(Backbone)、ケーブルテレビ(CATV)回線、固定電話網、携帯電話網、WiMAX(IEEE 802.16a)、3G(3rd Generation)、専用線(lease line)、IrDA(Infrared Data Association)、Bluetooth(登録商標)、シリアル通信回線、データバス等が考えられる。
なお、コントローラ(OFC)の内部の構成要素は、モジュール(module)、コンポーネント(component)、或いは専用デバイス、又はこれらの起動(呼出)プログラムでも良い。
但し、実際には、これらの例に限定されない。
<備考>
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
なお、本出願は、日本出願番号2012−016225に基づく優先権を主張するものであり、日本出願番号2012−016225における開示内容は引用により本出願に組み込まれる。

Claims (12)

  1. パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行う複数のスイッチと、
    前記複数のスイッチの各々に対して、前記複数のスイッチ間で相互に送受信される巡回パケットが到着しなくなった場合に削除される巡回用フローエントリを設定し、前記各スイッチから、前記巡回用フローエントリを削除した旨の通知を受信した場合、前記複数のスイッチ間の障害を検出するコントローラと
    を含む
    ネットワークシステム。
  2. 請求項1に記載のネットワークシステムであって、
    前記コントローラは、
    前記巡回用フローエントリに、パケットが入ってきたポートに当該パケットを転送する旨のアクションと、マッチするパケットが到着しなくなってからの有効期間を示す遊休時間と、を指定して前記各スイッチに設定する手段と、
    前記巡回パケットを作成して前記各スイッチに送信する手段と、
    前記各スイッチから、前記遊休時間が経過した巡回用フローエントリを削除した旨の通知を受信する手段と
    を具備する
    ネットワークシステム。
  3. 請求項2に記載のネットワークシステムであって、
    前記コントローラは、
    前記遊休時間が経過した巡回用フローエントリを削除した旨の通知を受信した際に、LLDPパケットを利用して一定のリトライ回数でトポロジー検査を行う手段と、
    前記LLDPパケットを利用したトポロジー検査でも相互接続関係を確認できない場合、前記複数のスイッチ間に障害が発生したと判断する手段と
    を更に具備する
    ネットワークシステム。
  4. 複数のスイッチの各々に対して、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリを設定する手段と、
    前記複数のスイッチの各々に対して、前記複数のスイッチ間で相互に送受信される巡回パケットが到着しなくなった場合に削除される巡回用フローエントリを設定する手段と、
    前記各スイッチから、前記巡回用フローエントリを削除した旨の通知を受信した場合、前記複数のスイッチ間の障害を検出する手段と
    を具備する
    コントローラ。
  5. 請求項4に記載のコントローラであって、
    前記巡回用フローエントリに、パケットが入ってきたポートに当該パケットを転送する旨のアクションと、マッチするパケットが到着しなくなってからの有効期間を示す遊休時間と、を指定して前記各スイッチに設定する手段と、
    前記巡回パケットを作成して前記各スイッチに送信する手段と、
    前記各スイッチから、前記遊休時間が経過した巡回用フローエントリを削除した旨の通知を受信する手段と
    を更に具備する
    コントローラ。
  6. 請求項5に記載のコントローラであって、
    前記遊休時間が経過した巡回用フローエントリを削除した旨の通知を受信した際に、LLDPパケットを利用して一定のリトライ回数でトポロジー検査を行う手段と、
    前記LLDPパケットを利用したトポロジー検査でも相互接続関係を確認できない場合、前記複数のスイッチ間に障害が発生したと判断する手段と
    を更に具備する
    コントローラ。
  7. 計算機により実施されるトポロジー管理方法であって、
    コントローラとして、複数のスイッチの各々に対して、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリを設定することと、
    前記複数のスイッチの各々に対して、前記複数のスイッチ間で相互に送受信される巡回パケットが到着しなくなった場合に削除される巡回用フローエントリを設定することと、
    前記各スイッチから、前記巡回用フローエントリを削除した旨の通知を受信した場合、前記複数のスイッチ間の障害を検出することと
    を含む
    トポロジー管理方法。
  8. 請求項7に記載のトポロジー管理方法であって、
    前記巡回用フローエントリに、パケットが入ってきたポートに当該パケットを転送する旨のアクションと、マッチするパケットが到着しなくなってからの有効期間を示す遊休時間と、を指定して前記各スイッチに設定することと、
    前記巡回パケットを作成して前記各スイッチに送信することと、
    前記各スイッチから、前記遊休時間が経過した巡回用フローエントリを削除した旨の通知を受信することと
    を更に含む
    トポロジー管理方法。
  9. 請求項8に記載のトポロジー管理方法であって、
    前記遊休時間が経過した巡回用フローエントリを削除した旨の通知を受信した際に、LLDPパケットを利用して一定のリトライ回数でトポロジー検査を行うことと、
    前記LLDPパケットを利用したトポロジー検査でも相互接続関係を確認できない場合、前記複数のスイッチ間に障害が発生したと判断することと
    を更に含む
    トポロジー管理方法。
  10. コントローラとして、複数のスイッチの各々に対して、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリを設定するステップと、
    前記複数のスイッチの各々に対して、前記複数のスイッチ間で相互に送受信される巡回パケットが到着しなくなった場合に削除される巡回用フローエントリを設定するステップと、
    前記各スイッチから、前記巡回用フローエントリを削除した旨の通知を受信した場合、前記複数のスイッチ間の障害を検出するステップと
    を計算機に実行させるためのプログラムを格納した記憶媒体。
  11. 請求項10に記載の記憶媒体であって、
    前記巡回用フローエントリに、パケットが入ってきたポートに当該パケットを転送する旨のアクションと、マッチするパケットが到着しなくなってからの有効期間を示す遊休時間と、を指定して前記各スイッチに設定するステップと、
    前記巡回パケットを作成して前記各スイッチに送信するステップと、
    前記各スイッチから、前記遊休時間が経過した巡回用フローエントリを削除した旨の通知を受信するステップと
    を更に計算機に実行させるためのプログラムを格納した
    記憶媒体。
  12. 請求項11に記載の記憶媒体であって、
    前記遊休時間が経過した巡回用フローエントリを削除した旨の通知を受信した際に、LLDPパケットを利用して一定のリトライ回数でトポロジー検査を行うステップと、
    前記LLDPパケットを利用したトポロジー検査でも相互接続関係を確認できない場合、前記複数のスイッチ間に障害が発生したと判断するステップと
    を更に計算機に実行させるためのプログラムを格納した
    記憶媒体。
JP2013556411A 2012-01-30 2013-01-29 ネットワークシステム、及びトポロジー管理方法 Expired - Fee Related JP5846221B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013556411A JP5846221B2 (ja) 2012-01-30 2013-01-29 ネットワークシステム、及びトポロジー管理方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2012016225 2012-01-30
JP2012016225 2012-01-30
PCT/JP2013/051889 WO2013115177A1 (ja) 2012-01-30 2013-01-29 ネットワークシステム、及びトポロジー管理方法
JP2013556411A JP5846221B2 (ja) 2012-01-30 2013-01-29 ネットワークシステム、及びトポロジー管理方法

Publications (2)

Publication Number Publication Date
JPWO2013115177A1 true JPWO2013115177A1 (ja) 2015-05-11
JP5846221B2 JP5846221B2 (ja) 2016-01-20

Family

ID=48905212

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013556411A Expired - Fee Related JP5846221B2 (ja) 2012-01-30 2013-01-29 ネットワークシステム、及びトポロジー管理方法

Country Status (6)

Country Link
US (1) US9467363B2 (ja)
EP (1) EP2811702A4 (ja)
JP (1) JP5846221B2 (ja)
CN (1) CN104081731B (ja)
IN (1) IN2014DN05741A (ja)
WO (1) WO2013115177A1 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103259728B (zh) * 2013-05-24 2016-03-30 华为技术有限公司 一种ofs带内通信方法及ofs
US9374308B2 (en) * 2013-08-30 2016-06-21 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Openflow switch mode transition processing
EP3047607B1 (en) 2013-09-20 2017-09-06 Telefonaktiebolaget LM Ericsson (publ) In band control channels of a communication network
US9628356B2 (en) * 2013-10-10 2017-04-18 Ixia Methods, systems, and computer readable media for providing user interfaces for specification of system under test (SUT) and network tap topology and for presenting topology specific test results
US9356855B2 (en) * 2013-10-10 2016-05-31 Ixia Methods, systems, and computer readable media for providing for specification or autodiscovery of device under test (DUT) topology information
WO2015114714A1 (ja) * 2014-02-03 2015-08-06 日本電気株式会社 ネットワークトポロジー検出システム、方法およびプログラムならびに制御装置
US9743367B2 (en) * 2014-09-18 2017-08-22 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Link layer discovery protocol (LLDP) on multiple nodes of a distributed fabric
US10015048B2 (en) 2014-12-27 2018-07-03 Intel Corporation Programmable protocol parser for NIC classification and queue assignments
CN105871964B (zh) * 2015-01-23 2020-08-07 中兴通讯股份有限公司 用户设备ue处理方法及装置
US10397063B2 (en) * 2015-02-12 2019-08-27 Telefonaktiebolaget Lm Ericsson (Publ) Discovering links between operating domains in a communication network
JP2016181819A (ja) * 2015-03-24 2016-10-13 富士通株式会社 ネットワークの制御装置及び制御方法、並びに、ネットワークスイッチ
NO3073701T3 (ja) * 2015-03-27 2018-03-03
US9825862B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Packet header field extraction
CN106559325B (zh) 2015-09-25 2020-06-09 华为技术有限公司 路径检测方法和装置
US10868708B2 (en) 2015-11-02 2020-12-15 Google Llc System and method for handling link loss in a network
US9912774B2 (en) 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
CN105634817A (zh) * 2016-01-08 2016-06-01 广州西麦科技股份有限公司 一种基于sdn的网络故障自动检测的系统及方法
US10484282B2 (en) 2016-01-12 2019-11-19 International Business Machines Corporation Interconnecting multiple separate openflow domains
CN107204924B (zh) * 2016-03-18 2020-09-25 华为技术有限公司 链路发现方法及装置
KR20180041977A (ko) * 2016-10-17 2018-04-25 숭실대학교산학협력단 링크 검출 서비스에 대한 인증을 지원하는 소프트웨어 정의 네트워크 및 이에 포함되는 컨트롤러
US20180175772A1 (en) * 2016-12-21 2018-06-21 Rockwell Automation Technologies, Inc. Motor drive with multi-function high speed communications interface
US11139768B2 (en) * 2016-12-21 2021-10-05 Rockwell Automation Technologies, Inc. Motor drive with independent physical backplane communication
US11296640B2 (en) * 2016-12-21 2022-04-05 Rockwell Automation Technologies, Inc. Motor drive with dynamic interval communication
US11223520B1 (en) 2017-01-31 2022-01-11 Intel Corporation Remote control plane directing data plane configurator
US20180234407A1 (en) * 2017-02-14 2018-08-16 Quanta Computer Inc. Method for securely exchanging link discovery information
CN106982169B (zh) * 2017-03-30 2020-01-03 新华三技术有限公司 报文转发方法及装置
US10355939B2 (en) * 2017-04-13 2019-07-16 International Business Machines Corporation Scalable data center network topology on distributed switch
US10694006B1 (en) 2017-04-23 2020-06-23 Barefoot Networks, Inc. Generation of descriptive data for packet fields
CN109104339A (zh) * 2017-06-21 2018-12-28 富士通株式会社 信息传输方法、装置及电子设备
US11503141B1 (en) 2017-07-23 2022-11-15 Barefoot Networks, Inc. Stateful processing unit with min/max capability
US10594630B1 (en) 2017-09-28 2020-03-17 Barefoot Networks, Inc. Expansion of packet data within processing pipeline
US11563722B2 (en) * 2019-08-22 2023-01-24 Hewlett Packard Enterprise Development Lp Firewall coordination in a network
US10917326B1 (en) 2019-08-23 2021-02-09 Keysight Technologies, Inc. Methods, systems, and computer readable media for debugging test traffic generation
CN112887756B (zh) * 2021-01-11 2023-02-07 上海七牛信息技术有限公司 一种多媒体微服务的多输入多输出通信系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010143607A1 (ja) * 2009-06-08 2010-12-16 日本電気株式会社 通信ネットワーク管理システム、方法、及び管理計算機
WO2011144495A1 (en) * 2010-05-19 2011-11-24 Telefonaktiebolaget L M Ericsson (Publ) Methods and apparatus for use in an openflow network

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003143169A (ja) 2001-11-01 2003-05-16 Nec Corp ルーティングブリッジシステム、ノード、接続ノード、及びルーティングプログラム
EP1729458A1 (en) 2005-06-01 2006-12-06 Thomson Licensing Method for determining connection topology of home network
US7782793B2 (en) 2005-09-15 2010-08-24 Alcatel Lucent Statistical trace-based methods for real-time traffic classification
US8717911B2 (en) 2006-06-30 2014-05-06 Centurylink Intellectual Property Llc System and method for collecting network performance information
JP4873556B2 (ja) 2007-01-10 2012-02-08 Kddi株式会社 ネットワークの論理トポロジを検出するトポロジ検出方法、通信装置、管理装置及びプログラム
US9730078B2 (en) 2007-08-31 2017-08-08 Fisher-Rosemount Systems, Inc. Configuring and optimizing a wireless mesh network
US8005012B1 (en) * 2009-01-30 2011-08-23 Juniper Networks, Inc. Traffic analysis of data flows
WO2010103909A1 (ja) 2009-03-09 2010-09-16 日本電気株式会社 OpenFlow通信システムおよびOpenFlow通信方法
JP5310662B2 (ja) 2010-07-02 2013-10-09 オムロン株式会社 電圧変換回路、および電子機器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010143607A1 (ja) * 2009-06-08 2010-12-16 日本電気株式会社 通信ネットワーク管理システム、方法、及び管理計算機
US20120026891A1 (en) * 2009-06-08 2012-02-02 Nec Corporation Communication network management system and method and management computer
WO2011144495A1 (en) * 2010-05-19 2011-11-24 Telefonaktiebolaget L M Ericsson (Publ) Methods and apparatus for use in an openflow network
US20110286324A1 (en) * 2010-05-19 2011-11-24 Elisa Bellagamba Link Failure Detection and Traffic Redirection in an Openflow Network
EP2572473A1 (en) * 2010-05-19 2013-03-27 Telefonaktiebolaget L M Ericsson (PUBL) Methods and apparatus for use in an openflow network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015023726; 及川永寿 他: 'OpenFlowネットワークにおける経路情報の通知手法に関する提案' 第73回(平成23年)全国大会講演論文集(3) , 20110302, p.3-319〜3-320, 一般社団法人情報処理学会 *

Also Published As

Publication number Publication date
CN104081731B (zh) 2017-06-23
WO2013115177A1 (ja) 2013-08-08
US20150003259A1 (en) 2015-01-01
CN104081731A (zh) 2014-10-01
JP5846221B2 (ja) 2016-01-20
EP2811702A4 (en) 2015-08-26
US9467363B2 (en) 2016-10-11
IN2014DN05741A (ja) 2015-04-10
EP2811702A1 (en) 2014-12-10

Similar Documents

Publication Publication Date Title
JP5846221B2 (ja) ネットワークシステム、及びトポロジー管理方法
EP3332511B1 (en) Method and system for path monitoring in a software-defined networking (sdn) system
US9515868B2 (en) System and method for communication
JP5610247B2 (ja) ネットワークシステム、及びポリシー経路設定方法
US9686199B2 (en) Method and system for implementing ethernet OAM in a software-defined networking (SDN) system
EP3304812B1 (en) Method and system for resynchronization of forwarding states in a network forwarding device
US9215175B2 (en) Computer system including controller and plurality of switches and communication method in computer system
RU2583745C2 (ru) Сетевая система, коммутатор и способ обнаружения подсоединенного терминала
JP5557066B2 (ja) スイッチシステム、モニタリング集中管理方法
JP5842933B2 (ja) ネットワークシステム、及び経路情報同期方法
WO2019138415A1 (en) Mechanism for control message redirection for sdn control channel failures
EP2731313A1 (en) Distributed cluster processing system and message processing method thereof
JP2017050774A (ja) ゲートウェイ装置、および演算装置
Lopez-Pajares et al. Amaru: Plug&play resilient in-band control for SDN
JP4532253B2 (ja) フレーム転送装置及びフレームのループ抑止方法
CN110380966B (zh) 一种发现转发路径的方法及其相关设备
JP5966488B2 (ja) ネットワークシステム、スイッチ、及び通信遅延短縮方法
EP3817341B1 (en) Bulk configuration of devices behind a network address translation device
WO2021224931A1 (en) System and a method to efficiently exchange echo and stats messages between sdn controller and the open vswitches
JP2013115733A (ja) ネットワークシステム、及びネットワーク制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150810

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151109

R150 Certificate of patent or registration of utility model

Ref document number: 5846221

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees