JP5488980B2 - コンピュータシステム、及び通信方法 - Google Patents

コンピュータシステム、及び通信方法 Download PDF

Info

Publication number
JP5488980B2
JP5488980B2 JP2010025884A JP2010025884A JP5488980B2 JP 5488980 B2 JP5488980 B2 JP 5488980B2 JP 2010025884 A JP2010025884 A JP 2010025884A JP 2010025884 A JP2010025884 A JP 2010025884A JP 5488980 B2 JP5488980 B2 JP 5488980B2
Authority
JP
Japan
Prior art keywords
flow entry
priority
switch
controllers
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.)
Expired - Fee Related
Application number
JP2010025884A
Other languages
English (en)
Other versions
JP2011166384A (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 JP2010025884A priority Critical patent/JP5488980B2/ja
Publication of JP2011166384A publication Critical patent/JP2011166384A/ja
Application granted granted Critical
Publication of JP5488980B2 publication Critical patent/JP5488980B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、コンピュータシステム、及び通信方法に関し、特に、オープンフロー(プログラマブルフロー)技術を利用したコンピュータシステムの冗長化技術、及び通信方法に関する。
従来、パケットの送信元から送信先への経路の決定とパケット転送処理は、経路上の複数のスイッチが行っていた。近年、データセンターといった大規模ネットワークにおいては、故障による機器の停止や規模拡大のための機器の新規追加により、ネットワーク構成の変化が常に発生している。このため、ネットワークの構成の変化に即応し適切な経路を決定するという柔軟性が必要となってきた。しかし、スイッチにおける経路決定処理のプログラムは、外部から変更することができないため、ネットワーク全体を一元的に制御及び管理することはできなかった。
一方、コンピュータネットワークにおいて、各スイッチの転送動作等を外部のコントローラによって一元的に制御する技術(オープンフロー)が、OpenFlow Consortiumによって提案されている(非特許文献1参照)。この技術に対応したネットワークスイッチ(以下、プログラマブルフロースイッチ(PFS)と称す)は、プロトコル種別やポート番号等の詳細な情報をフローテーブルに保持し、フローの制御と統計情報の採取を行うことができる。
図1を参照して、オープンフローを利用したコンピュータシステムの構成及び動作を説明する。図1を参照して、本発明の関連技術によるコンピュータシステムは、プログラマブルフローコントローラ100(以下、PFC100と称す)、複数のプログラマブルスイッチ102−1〜102−n(以下、PFS102−1〜102−nと称す)を有するスイッチ群200、複数のホストコンピュータ103−1〜103−i(以下、ホスト103−1〜103−iと称す)を有するホスト群300を具備する。ただし、n、iは2以上の自然数である。以下、PFS102−1〜102−nを区別せずに総称する場合はPFS102と称し、ホスト103−1〜103−iを区別せずに総称する場合はホスト103と称して説明する。
PFC100は、ホスト103間の通信経路の設定や、経路上におけるPFS102に対する転送動作(中継動作)等の設定を行う。この際、PFC100は、PFS102が保持するフローテーブルに、フロー(パケットデータ)を特定するルールと、当該フローに対する動作を規定するアクションとを対応付けたフローエントリを設定する。通信経路上のPFS102は、PFC100によって設定されたフローエントリに従って受信パケットデータの転送先を決定し、転送処理を行う。これにより、ホスト103は、PFC100によって設定された通信経路を利用して他のホスト103との間でパケットデータの送受信が可能となる。すなわち、オープンフローを利用したコンピュータシステムでは、通信経路を設定するPFC100と、転送処理を行うPFS102とを分離され、システム全体の通信を一元的に制御及び管理することが可能となる。
図1を参照して、ホスト103−1からホスト103−iへパケット送信を行う場合、PFS102−1はホスト103−1から受け取ったパケット内にある送信先情報(ヘッダ情報)を参照し、PFS102−1内部で保持しているフローテーブルから当該ヘッダ情報に適合するエントリを探す。フローテーブルに設定されるエントリの内容については、例えば非特許文献1で規定されている。
PFS102−1は、受信パケットデータについてのエントリがフローテーブルに記載されていない場合、当該パケットデータ(以下、ファーストパケットと称す)、又はファーストパケットのヘッダ情報をPFC101に転送する。PFS102−1からファーストパケットを受け取ったPFC101はパケット内に含まれている送信元ホストや送信先ホストという情報を元に経路400を決定する。
PFC101は、経路400上の全てのPFS102に対して、パケットの転送先を規定するフローエントリの設定を指示する(フローテーブル更新指示を発行)。経路400上のPFS102は、フローテーブル更新指示に応じて、自身で管理しているフローテーブルを更新する。この後PFS102は、更新したフローテーブルに従い、パケットの転送を開始することで、PFC101が決定した経路400を経由して、宛先のホスト103−iへパケットが到達するようになる。
一方、スイッチによって転送経路が設定されるシステムにおいて、多重化された経路から、優先度に従って適切な経路を選択利用する技術が、例えば、特開2006−333135(特許文献1参照)、特開2000−324154(特許文献2参照)、及び特開平4−215349(特許文献3参照)に記載されている。
特開2006−333135 特開2000−324154 特開平4−215349
OpenFlow Switch Specification Version 0.9.0 (Wire Protocol 0x98) July 20, 2009
PFC100で何らかの障害が発生した場合、PFC100は、経路上のPFS102に対するフローテーブルの更新を指示できない。この場合、ファーストパケットを受信したPFS102は自ら設定したタイムアウト時間までPFC101からのフローテーブルの更新指示を待ち続けてしまい、その間ホスト103間のパケット通信を行うことができない。又、PFC100が障害から復旧しない限り、ファーストパケットに対応する転送制御を行うことができない。
このため、耐障害性の観点からPFC100を複数用意することが考えられるが、複数のPFCを利用した通信経路の構築(各PFSに対するフローテーブルの更新)の方法は、未だ確立されていない。このため、オープンフロー技術を利用したコンピュータシステムでは、PFCに発生した障害に対する耐性が低いという問題がある。
従って、本発明による目的は、オープンフロー技術を利用したコンピュータシステムの耐障害性を向上させることにある。
又、本発明による他の目的は、プログラマブルフローコントローラに障害が発生した場合でも、ファーストパケットに応じた通信経路の構築とパケットデータの転送処理を早期に実行することにある。
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、[特許請求の範囲]の記載と[発明を実施するための形態]の記載との対応関係を明らかにするために、[発明を実施するための形態]で使用される番号・符号が付加されている。ただし、付加された番号・符号は、[特許請求の範囲]に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。
本発明によるコンピュータシステムは、それぞれが、通信経路を算出し通信経路上のスイッチ(2)に対して、優先度(147)を付加したフローエントリの設定を指示する複数のコントローラ(1)と、優先度(147)に応じてフローエントリの設定許否を判定し、自身に設定されたフローエントリに適合する受信パケットに対し、自身設定されたフローエントリに従った中継動作を行うスイッチ(2)とを具備する。
又、本発明による通信方法は、複数のコントローラ(1)のそれぞれが、通信経路を算出し、通信経路上のスイッチ(2)に対して、優先度(147)を付加したフローエントリの設定を指示するステップと、スイッチ(2)が、優先度(147)に応じてフローエントリの設定許否を判定するステップと、スイッチ(2)が、自身に設定されたフローエントリに適合する受信パケットに対し、自身に設定されたフローエントリに従った中継動作を行うステップとを具備する。
本発明によれば、オープンフロー技術を利用したコンピュータシステムの耐障害性を向上させることができる。
又、プログラマブルフローコントローラに障害が発生した場合でも、ファーストパケットに応じた通信経路の構築とパケットデータの転送処理を早期に実行することができる。
図1は、従来技術によるコンピュータシステムの構成の一例を示す図である。 図2は、本発明によるコンピュータシステムの実施の形態における構成を示す図である。 図3は、本発明によるプログラマブルフローコントローラの実施の形態における構成を示す図である。 図4は、本発明によるプログラマブルフローコントローラが保持するフローテーブルの一例を示す図である。 図5は、本発明によるプログラマブルフローコントローラが保持するトポロジ情報の一例を示す図である。 図6は、本発明によるプログラマブルフローコントローラが保持する通信経路情報の一例を示す図である。 図7は、本発明によるプログラマブルフロースイッチの実施の形態における構成を示す図である。 図8は、本発明によるプログラマブルフロースイッチが保持するフローテーブルの一例を示す図である。 図9は、本発明に係るプログラマブルフロー制御を説明するための図である。 図10は、本発明によるコンピュータシステムの実施の形態における通信経路の構築処理(フローテーブル更新処理)及びパケット転送処理の動作を示すシーケンス図である。 図11は、本発明によるプログラマブルフロースイッチにおけるフローエントリ設定処理(フローテーブル更新処理)の動作を示すフロー図である。 図12(a)、(b)は、本発明によるプログラマブルフロースイッチにおいて更新されたフローテーブルの一例を示す図である。 図13は、本発明による複数のプログラマブルフローコントローラによって算出された通信経路の一例を示す図である。 図14Aは、複数のプログラマブルフローコントローラに障害が発生した場合の、通信経路の構築処理及びパケット転送処理の一例を示す図である。 図14Bは、複数のプログラマブルフローコントローラに障害が発生した場合の、通信経路の構築処理及びパケット転送処理の一例を示す図である。 図15Aは、複数のプログラマブルフローコントローラに障害が発生した場合の、通信経路の構築処理及びパケット転送処理の他の一例を示す図である。 図15Bは、複数のプログラマブルフローコントローラに障害が発生した場合の、通信経路の構築処理及びパケット転送処理の他の一例を示す図である。 図16は、本発明によるプログラマブルフローコントローラの障害復旧後の通信経路の構築処理の動作を示すフロー図である。
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。
(コンピュータシステムの構成)
図2を参照して、本発明によるコンピュータシステムの構成を説明する。図2は、本発明によるコンピュータシステムの実施の形態における構成を示す図である。本発明によるコンピュータシステムは、オープンフローを利用して通信経路の構築及びパケットデータの転送制御を行う。図2を参照して、本発明によるコンピュータシステムは、プログラマブルフローコントローラ1−1〜1−m(以下、PFC1−1〜1−mと称す)、複数のプログラマブルスイッチ2−1〜2−n(以下、PFS2−1〜2−nと称す)を有するスイッチ群20、複数のホストコンピュータ3−1〜3−i(以下、ホスト3−1〜3−iと称す)を有するホスト群30を具備する。ただし、m、n、iは2以上の自然数である。又、PFC1−1〜1−mを区別せずに総称する場合はPFC1と称し、PFS2−1〜2−nを区別せずに総称する場合はPFS2と称し、ホスト3−1〜3−iを区別せずに総称する場合はホスト3と称して説明する。
ホスト3は、図示しないCPU、主記憶装置、及び外部記憶装置を備えるコンピュータ装置であり、外部記憶装置に格納されたプログラムを実行することで、他のホスト3との間で通信を行う。ホスト3間の通信は、スイッチ群20を介して行われる。ホスト3は、実行するプログラムに応じて、Webサーバ、ファイルサーバ、アプリケーションサーバ、あるいはクライアント端末等に例示される機能を実現する。例えば、ホスト3がWebサーバとして機能する場合、他のホスト3(例示:クライアント端末)の要求に従い、記憶装置(図示なし)内のHTML文書や画像データを他のホスト3(例示:クライアント端末)に転送する。
PFC1は、オープンフロー技術により、システム内におけるパケット転送に係る通信経路パケット転送処理を制御するスイッチ制御部11を備える。オープンフロー技術とは、コントローラ(ここではPFC1)が、ルーティングポリシー(フローエントリ:フロー+アクション)に従い、マルチレイヤ及びフロー単位の経路情報をPFS2に設定し、経路制御やノード制御を行う技術を示す(詳細は、非特許文献1を参照)。これにより、経路制御機能がルータやスイッチから分離され、コントローラによる集中制御によって最適なルーティング、トラフィック管理が可能となる。オープンフロー技術が適用されるPFS2は、従来のルータやスイッチのようにパケットやフレームの単位ではなく、END2ENDのフローとして通信を取り扱う。
PFC1は、PFS2が保持するフローテーブル23にフローエントリ(ルール+アクション)を設定することで当該スイッチやノードの動作(例えばパケットデータの中継動作)を制御する。本発明によるPFC1は、設定経路(設定コントローラ)の優先度を加えたフローエントリを、経路上のPFS2に設定する。
図3を参照して、PFC1の構成の詳細を説明する。図3は、本発明によるPFC1の構成を示す図である。PFC1は、CPU及び記憶装置を備えるコンピュータによって実現されることが好適である。PFC1では、図示しないCPUが記憶装置に格納されたプログラムを実行することで、図3に示すスイッチ制御部11、フロー管理部12、フロー生成部13の各機能が実現される。又、PFC1は、それぞれが図示しない記憶装置に格納されたフローテーブル14、トポロジ情報15、通信経路情報16を備える。
スイッチ制御部11は、フローテーブル14に従ってPFS2毎にフローエントリ(ルール+アクション)の設定又は削除を行う。この際、スイッチ制御部11は、フローエントリ(ルール+アクション情報)に優先度を対応付けてPFS2のフローテーブル23に設定する。又、PFS2に対するフローテーブルの更新(フローエントリの設定又は削除)は、フローの宛先装置側から送信元装置に対して順に行われる。PFS2は、設定されたフローエントリを参照し、受信パケットのヘッダ情報に応じたルールに対応するアクション(例えばパケットデータの中継や破棄)を実行する。ルール、アクション、及び優先度の詳細は後述する。
図4は、PFC1が保持するフローテーブル14の構成の一例を示す図である。図4を参照して、フローテーブル14には、フローエントリを特定するためのフロー識別子141、当該フローエントリの設定対象(PFS2)を識別する識別子(対象装置142)、経路情報143、ルール144、アクション情報145、設定情報146、優先度147が対応付けられて設定される。フローテーブル14には、PFC1の制御対象となる全てのPFS2に対して生成されたフローエントリ(ルール144+アクション情報145)が設定される。又、フローテーブル14には、フロー毎のQoSや暗号化に関する情報など、通信の扱い方が定義されても構わない。
ルール144には、例えば、TCP/IPのパケットデータにおけるヘッダ情報に含まれる、OSI(Open Systems Interconnection)参照モデルのレイヤ1からレイヤ4のアドレスや識別子の組み合わせが規定される。例えば、図9に示すレイヤ1の物理ポート、レイヤ2のMACアドレス、レイヤ3のIPアドレス、レイヤ4のポート番号、VLANタグ(VLAN id)のそれぞれの組み合わせがルール144として設定される。尚、VLANタグには、優先順位(VLAN Priority)が付与されていても良い。
ここで、ルール144に設定されるポート番号等の識別子やアドレス等は、所定の範囲で設定されても構わない。又、宛先や送信元のアドレス等を区別してルール144として設定されルことが好ましい。例えば、MAC宛先アドレスの範囲や、接続先のアプリケーションを特定する宛先ポート番号の範囲、接続元のアプリケーションを特定する送信元ポート番号の範囲がルール144として設定される。更に、データ転送プロトコルを特定する識別子をルール144として設定してもよい。
アクション情報145には、例えばTCP/IPのパケットデータを処理する方法が規定される。例えば、受信パケットデータを中継するか否かを示す情報や、中継する場合はその送信先が設定される。又、アクション情報145には、パケットデータの複製や、破棄することを指示する情報が設定されてもよい。
経路情報143は、フローエントリ(ルール144+アクション情報145)を適用する経路を特定する情報である。これは、後述する通信経路情報16に対応付けられた識別子である。
設定情報146は、フローエントリ(ルール144+アクション情報145)が現在、通信経路上のPFS2に設定されているか否かを示す情報(「設定済み」又は「未設定」)を含む。設定情報146は、対象装置142や経路情報143に対応付けられているため、通信経路にフローエントリが設定されているか否かを確認できるとともに、通信経路上のPFS2毎にフローエントリが設定されているか否かを確認することができる。
本発明によるフローテーブル14には、フローエントリ毎に対応付けられた優先度147が設定される。優先度147は、予めユーザによって設定されても良いし、ファーストパケットを受信したPFS2によって指定(設定)されても良い。又、優先度147は、PFC1毎に決められた値が固定的に設定されても良いし、状況に応じて変更されても良い。例えば、PFS2は、ファーストパケットの受信の都度、PFC1−1〜1−mのそれぞれに指定する優先度147を変更してもよい。あるいは、PFC1−1〜1−mに対し、優先度147として1からmが設定される場合(“m”が最も低い優先度)、障害発生回数が多いPFC1に対して低い値“m”の優先度147を設定し、障害の発生率が低くなった場合、設定する優先度147を上位に上げる。ただし、状況に応じて優先度147を変更する場合、全てのPFC1−1〜1−mを監視し、ユーザによって優先度147が設定可能な統合装置をシステム内に設けることが好ましい。
又、ファーストパケットを受信したPFS2がPFC1に優先度147を設定する場合、当該PFS2は、自身を主として管理するPFC1(メインコントローラ)に高い優先度147を付与し、予備として自身を管理するPFC1(サブコントローラ)に低い優先度を設定することが好ましい。例えば、サブコントローラとして、他のスイッチ群を主に管理するOFC1が選択される。
フロー管理部12は、フロー生成部13によって生成されたフロー(ルール144+アクション情報145)にフロー識別子141をつけて記憶装置に記録する。この際、フローエントリを適用する通信経路の識別子(経路情報143)やフローエントリを適用するPFS2の識別子(対象装置142)、及び優先度147が、フローエントリ(ルール144+アクション情報145)に付されて記録される。ここで、優先度147が、ファーストパケットとともにPFS2から通知された場合、フロー管理部12は、この優先度147を、フロー生成部13によって生成されたフローエントリに対応付けてフローテーブル14に設定する。
又、フロー管理部12は、フローテーブル14を参照して、ファーストパケットのヘッダ情報に対応するフローエントリ(ルール144+アクション情報145)及び、これに対応付けられた優先度147を抽出し、スイッチ制御部11に通知する。スイッチ制御部11は、通知されたフローエントリ(ルール144+アクション情報145)及び優先度147を、当該フローエントリに対応付けられた対象装置142(PFS2)に設定する。
フロー生成部13は、PFS2から通知されたファーストパケットのヘッダ情報から通信経路を算出し、当該通信経路上のPFS2に設定するフローエントリ(ルール144+アクション情報145)を生成する。詳細には、フロー生成部13は、ファーストパケットのヘッダ情報から、送信元のホスト3と宛先のホスト3を特定し、トポロジ情報15を用いて通信経路を算出し、算出結果を通信経路情報16として記憶装置に記録する。ここでは、通信経路の端点となるホスト3と、通信経路上のPFS2及びそれぞれの接続関係が通信経路情報16として設定される。又、フロー生成部13は、通信経路情報16に基づいて通信経路上のPFS2に設定するフローエントリ(ルール144+アクション情報145)を設定する。
図5は、本発明によるPFC1が保持するトポロジ情報15の一例を示す図である。トポロジ情報15は、PFS2やホスト3等の接続状況に関する情報を含む。具体的には、トポロジ情報15として、PFS2やホスト3を特定する装置識別子151に、当該装置のポート数152やポート接続先情報153が対応付けられて記憶装置に記録される。ポート接続先情報153は、接続相手を特定する接続種別(スイッチ/ノード/外部ネットワーク)や接続先を特定する情報(PFS2の場合はスイッチID、ホストの場合はMACアドレス、外部ネットワーク(例示:インターネット)の場合は外部ネットワークID)が含まれる。
図6は、本発明によるPFC1が保持する通信経路情報の一例を示す図である。通信経路情報16は、通信経路を特定するための情報である。詳細には、通信経路情報16として、ホスト3や外部ネットワークインタフェース(図示なし)を端点として指定する端点情報161と、通過するPFS2とポートの対群を指定する通過スイッチ情報162と、付随情報163とが対応付けられて記憶装置に記録される。例えば、通信経路がホスト3間を接続する経路である場合、各ホスト3のMACアドレスが端点情報161として記録される。通過スイッチ情報162は、端点情報161で示される端点間の通信経路上に設けられるPFS2の識別子を含む。又、通過スイッチ情報162は、当該PFS2に設定されるフローエントリ(ルール144+アクション情報145)と当該PFS2とを対応づけるための情報を含んでも良い。付随情報163は、端点が変更された後の経路上のPFS2(通過スイッチ)に関する情報を含む。
以上のような構成により、本発明によるPFC1は、PFS2からのファーストパケットの受信通知に応じて、当該パケットを転送させるためのフローエントリを生成するとともに、生成したフローエントリと、PFS2から通知された優先度147(又は予め設定された優先度147)を、算出した通信経路上のPFS2に設定する。
図7は、本発明によるプログラマブルフロースイッチの実施の形態における構成を示す図である。PFS2は、PFC1によって設定(更新)されたフローテーブル23に従って受信パケットの処理方法(アクション)を決定する。PFS2は、転送処理部21とフロー設定部22を備える。転送処理部21とフロー設定部22は、ハードウェアで構成されても、CPUによって実行されるソフトウェアで実現してもどちらでも良い。
PFS2の記憶装置には、図8に示すようなフローテーブル23が設定される。フロー設定部22は、PFC1から取得したフローエントリ(ルール144+アクション情報145)及び優先度147をフローテーブル23に設定する。詳細には、フロー設定部22は、受信パケットのヘッダ情報が、フローテーブル23に記録されたルール144に適合(又は一致)しない場合、当該パケットデータをファーストパケットとして判定し、ファーストパケットを受信したことをPFC1−1〜1−mに通知する。この際、フロー設定部22は、PFC1毎に異なる優先度24をファーストパケット(又はそのヘッダ情報)に付与し、PFC1−1〜1−mのそれぞれに送信する。例えば、フロー設定部22は、PFC1−1には優先度24“1”を付与したファーストパケットを送信し、PFC1−mには“1”より低い優先度24“m”を付与したファーストパケットを送信する。この場合、PFS2は、予め記憶装置に設定された優先度24を保持することが好ましい。
そして、フロー設定部22は、ファーストパケットの通知に応じてPFC1−1〜1−mのそれぞれから送信されるフローエントリ(ルール144+アクション情報145)及び優先度147を、フローテーブル23に設定する。ここで、送信される優先度147は、PFC1毎に設定(又はPFS2によって付与)された優先度である。PFC1から送信されたルール144と同じフローエントリがフローテーブル23に存在する場合、フロー設定部22は、PFC1から送信された優先度147と、フローテーブル23に設定されている優先度147とを比較し、高い優先度のフローエントリをフローテーブル23に設定する。すなわち、フロー設定部22は、PFC1からのフロー設定指示に対し、送信された優先度147とフローテーブル23に設定された優先度147とによって、フローエントリの設定許否を判定する。ここで、PFC1からのフローエントリの優先度が高い場合、当該フローエントリによってフローテーブル23は上書きされる。一方、フローテーブル23内のフローエントリの優先度が高い場合、PFC1からのフローエントリの設定は拒否され、当該フローエントリは破棄される。
このように、優先度の高いフローエントリを優先して上書き設定するため、PFS2−1〜2−nのそれぞれには、ファーストパケットに適合するフローエントリが1つだけ設定されることとなる。
受信パケットのヘッダ情報が、フローテーブル23に記録されたルール144に適合(一致)する場合、当該パケットデータは、転送処理部21によって、他のPFS2又はホスト3に転送される。詳細には、転送処理部21は、パケットデータのヘッダ情報に適合(又は一致)するルール144に対応するアクション情報145を特定する。転送処理部21は、当該アクション情報145で指定された転送先のノード(PFS2又はホスト3)に当該パケットデータを転送する。
具体的には、ルール144:MAC送信元アドレス(L2)が“A1〜A3”、IP宛先アドレス(L3)が“B1〜B3”、プロトコルが“http”、宛先ポート番号(L4)が“C1〜C3”と、アクション情報145:“PFS2−2に中継”とが対応付けられているフローエントリが設定されたPFS2−1の動作を説明する。MAC送信元アドレス(L2)が“A1”、IP宛先アドレス(L3)が“B2”、プロトコルが“http”、宛先ポート番号(L4)が“C3”であるパケットデータを受信した場合、PFS2−1は、ヘッダ情報が当該ルール144に一致していると判断し、受信したパケットデータをPFS2−2に転送する。一方、MAC送信元アドレス(L2)が“A5”、IP宛先アドレス(L3)が“B2”、プロトコルが“http”、宛先ポート番号(L4)が“C4”であるパケットデータを受信した場合、PFS2−1は、ヘッダ情報が当該ルール144に一致しないと判断し、ファーストパケット受信の旨をPFC1−1〜1−mに通知するとともに当該ヘッダ情報及び優先度24を各PFC1に送信する。
転送処理部21によるファーストパケットの転送処理は、フローテーブル23にフローエントリが設定されたことをトリガとして実施されることが好ましい。例えば、ファーストパケットの転送を優先度147が“3”のフローエントリに従って行われた後、優先度147が“1”のフローエントリに書き換えられた場合、次の受信パケットは、書換え後のフローエントリに従った転送先ノードに転送される。
以上のように、本発明によるコンピュータシステムでは、複数のPFC3−1〜3−iによってフロー(パケット)を転送するための通信経路が構築されるため、PFC3−1〜3−iのいずれかに障害が発生してもパケット転送が可能となる。又、PFC3毎に異なる優先度が付与され、優先度の高いフローエントリによってPFS2のフローテーブルは上書き更新される。これにより、PFS2には、同じルール144に対応するアクション情報145が複数設定されることなく、フローに対して常に1つのフローエントリが設定されることとなる。すなわち、複数のPFC3によってフローエントリが設定されてもPFS2に設定されるフローエントリは常に1つとなるため、PFS2は、誤動作せずにパケットを転送することができる。
本発明では、フローテーブルの更新が、宛先ホスト側のPFS2から送信元ホスト側のPFS2(ファーストパケットを受信したPFS2)に向かって順に行われる。このため、PFS2のフローテーブル23が優先度の高いフローエントリによって上書きされたとしても、構築された通信経路は、必ず送信元ホストと宛先ホストとを結ぶ経路となる。
(通信経路の構築及びパケット転送動作)
図10から図12を参照して、本発明によるコンピュータシステムにおける通信経路の構築動作の詳細を説明する。以下では、ホスト3−1からホスト3−iに対してパケットデータを送信し、それぞれの間の通信経路を構築する動作について説明する。又、ここでは、PFS2−1がホスト3−1からファーストパケットを受信するものとする。
図10は、本発明によるコンピュータシステムの実施の形態における通信経路の構築処理(フローテーブル更新処理)及びパケット転送処理の動作を示すシーケンス図である。図10を参照して、ホスト3−1からホスト3−i宛のパケットデータが送信され、ホスト3−1側で最も近いPFS2−1によって受信される(ステップS101)。
PFS2−1はホスト3−1から受け取ったパケット内にあるヘッダ情報(送信先情報)を参照し、PFS2−1内部で保持しているフローテーブル23から該当エントリを探す(ステップS102)。ここで、ヘッダ情報に対応するフローエントリがある場合、当該エントリで規定されたアクション情報145に基づいた転送先のノードに受信パケットを転送する(ステップS102No、S115)。一方、ヘッダ情報に対応するフローエントリがフローテーブル23にない場合、PFS2−1はファーストパケットを受信したと判定し、ファーストパケットの受信をPFC1−1〜1−mのそれぞれに通知する(ステップS102Yes、S103、S104)。この際、PFS2−1は、ファーストパケット(又はヘッダ情報)及び優先度24を対応付けてPFC1−1〜1−mに送信する。ここでは、一例として、PFS2−1は、PFC1−1に優先度24“1”を、PFC1−2に優先度24“2”を、・・・PFC1−mに優先度24「m」を通知する。ただし、mが1〜mで最も大きな値であり、値の小さな優先度24を高優先とする。
ファーストパケットの受信通知を受け付けたPFC1−1〜1−mのそれぞれは、当該フロー(パケット)に対する通信経路の算出、フローエントリの生成、及びPFS2に対するフローエントリの設定(フローテーブル23の更新)を行う(ステップS105〜S114)。詳細には、PFS2−1からファーストパケットと優先度24を受け取ったPFC1−1は、パケット内に含まれている送信元ホストや宛先ホストのMACアドレスやIPアドレスなど、OpenFlowとして規定されている情報を元に経路を決定し、当該経路上のPFS2に設定するフローエントリを生成する(ステップS105)。
PFC1−1は、生成したフローエントリにPFS2−1から通知された優先度24“1”を付与して、宛先ホスト側のPFS2−nから順にフローテーブル23の更新を行う(ステップS106〜S109)。詳細には、PFC1−1は、先ず、宛先のホスト3−iに最も近いPFS2−nに対して優先度24“1”を付与したフローエントリを送信する(ステップS106)。PFS2−nは、PFC1−1からのフローテーブルの更新指示に応じて、送信されたフローエントリを設定する(ステップS107)。同様に、PFC1−1は、算出した経路上を送信元側に方向に遡り、1つ前のPFS2に対して順にフローテーブルを更新し、最後に送信元のホスト3−1に最も近いPFS2−1フローテーブルを更新する(ステップS108、S109)。
フローエントリの更新処理は、他のPFC1−2〜1−mも同様に行う。例えば、PFC1−mは、生成したフローエントリにPFS2−1から通知された優先度24“m”を付与して、宛先ホスト側のPFS2−nから順にフローテーブル23の更新を行う(ステップS110〜S112)。又、PFC1−mは、算出した経路上を送信元側に方向に遡り、1つ前のPFS2に対して順にフローテーブルを更新し、最後に送信元のホスト3−1に最も近いPFS2−1フローテーブルを更新する(ステップS113、S114)。
PFC1−1〜1−mによるPFS2に対するフローテーブルの更新処理は、それぞれ同期することなく独立的に実施される。ファーストパケットの受信通知を受け取るタイミングや経路計算開始時のタイミングの違いから、ネットワーク上の機器の状態が変化している可能性があり、必ずしも一致しているとは限らない。このため、PFC1−1〜1−mのそれぞれが算出した通信経路や、フローエントリの設定対象となるPFS2は異なる場合がある。又、フローテーブル23を更新処理も、PFC2毎に設定された優先度147に関係ないタイミングで実施される。
しかし、PFS2は、優先度24の高いフローエントリを優先してフローテーブルに上書きするため、複数のPFC1が同期することなくフローテーブルを更新しても、ルール144に対応するアクション情報145を1つとすることができる。
図11は、本発明によるプログラマブルフロースイッチにおけるフローエントリ設定処理(フローテーブル更新処理)の動作を示すフロー図である。図11を参照して、PFS2において実行されるフローエントリの設定処理(ステップS107、S109、S112、S114)の動作の詳細を説明する。
PFS2は、PFC1から送信されたフローエントリのルール144に一致するフローエントリがフローテーブル23に設定されているかを判定する(ステップS201)。ここで、フローテーブル23に該当エントリがない場合、PFC1から受け取ったフローエントリをフローテーブル23に設定する(ステップS201No、ステップS202)。この際、図12(a)に示すように、PFC1から送信されたフローエントリ(ルール144+アクション情報145)及び優先度147が対応付けられてフローテーブル23に設定される。
一方、フローテーブル23に、PFS1から送信されたフローエントリと同じルール144のエントリがある場合、優先度147の比較判定が行われる(ステップS201Yes、S203)。ここで、PFC1から送信されたフローエントリの優先度147が、フローテーブル23に設定された優先度147よりも低い場合、PFS2は、PFC1からのフローテーブルの更新指示を無視(拒否)する(フローテーブルを更新しない)(ステップS203No、S204)。一方、PFC1から送信されたフローエントリの優先度147が、フローテーブル23に設定された優先度147よりも高い場合、PFC1からのフローエントリによってフローテーブルを上書きするとともに、優先度147を変更する(ステップS203Yes、S205)。
例えば、図12(a)に示すようなフローテーブル23が設定されているPFS2に、PFC1からパケットAに対するフローエントリ(優先度“2”)の設定が指示された場合、パケットAに対するフローテーブル23に設定済みのフローエントリの優先度147は、“1”(最優先)であるため、フローエントリの設定指示(フローテーブルの更新指示)は、無視(拒否)される。一方、PFC1からパケットCに対するフローエントリ(優先度“1”)の設定が指示された場合、パケットCに対するフローテーブル23に設定済みのフローエントリの優先度147は、“3”であり、通知された優先度“1”より低いため、フローエントリ及び優先度は図12(b)のように変更される。図12(a)及び図12(b)に示す一例では、パケットB(ルール)に対するアクションとして、「PFS2−5へ転送」が設定されていたところ、「PFS2−9に転送」に変更され、優先度が“3”から“1”に変更される。
以上のように、本発明によるPFS2は、優先度147の高いPFC1によるフローエントリを優先してフローテーブル23に設定するため、複数のPFC1が同期せずに独立的にフローエントリを設定しても、フローに対して1つの転送先を決定できる。
図10を参照して、ファーストパケットの受信に応じてフローエントリの設定を要求したPFS2−1(以下、要求元PFS2−1と称す)は、当該ファーストパケットに対応するフローエントリが自身のフローテーブル23に設定されると、宛先のホスト3−iまでの通信経路が構築されたと判断し、ファーストパケットの転送を開始する(ステップS115)。以降、通信経路上のPFS2は、設定されたルール144に適合するパケットを、設定されたアクション情報145に従って転送する。
要求元PFS2−1は、自身のフローテーブル23にファーストパケットに対するフローエントリが設定されると同時に当該フローテーブルの転送を開始することが好ましい。この場合、要求元PFS2−1は、優先度“1”より低い優先度147のフローエントリに応じてファーストパケットを転送することがある。例えば、PFC1−3がPFC1−1より先に通信経路を構築した場合、要求元PFC2−1は、優先度“3”のフローエントリに応じてファーストパケットを転送する。しかし、時間が経過し、PFC1−1によって優先度147“1”のフローエントリが要求元PFS2−1に設定された後は、PFC1−1によって構築されて通信経路を介してパケット転送が行われることとなる。このように、同じルールのパケットを転送する場合でも、時間の経過に応じて優先度の高いフローエントリがPFS2のフローテーブル23に上書きされるため、所定の期間、同ルールに従うパケットは異なる通信経路を通過して宛先のホスト3−iに転送される。このため、要求元PFS2−1は、自身のフローテーブル23が更新されてから、通信経路が安定するまでの所定の期間、ファーストパケットの送信を待機しても構わない。
(耐障害性)
次に、図13から図16を参照して、本発明によるコンピュータシステムにおける耐障害性について説明する。以下では、一例として、ホスト3−1からホスト3−2に対してパケットデータが転送され、PFS2−1がファーストパケットを受信し、3つのPFC1−1〜1−3が通信経路を構築する場合について説明する。尚、PFC1−1には優先度147“1”、PFC1−2には優先度147“2”、PFC1−3には優先度147“3”が付与され、優先度は“1”>“2”>“3”とする。
図13は、本発明による複数のPFC1−1〜1−3によって算出された通信経路40、50、60の一例を示す図である。ここでは、PFC1−1によって通信経路50が算出され、PFC1−2によって通信経路40が算出され、PFC1−3によって通信経路60が算出されるものとする。尚、通信経路40は、PFS2−1、2−2、2−4、2−6を経由する経路であり、通信経路50は、PFS2−1、2−5、2−3、2−6を経由する経路であり、通信経路60は、PFS2−1、2−2、2−3、2−4、2−6を経由する経路である。
上記のような前提条件の上で、PFC1−1〜1−3のいずれかが通信経路の構築中に動作継続不可能状態となり、通信経路上のPFS2に対してのフローテーブルの更新指示ができなくなった場合について説明する。
優先度の高いPFC1−1に障害がない場合、他のPFC1−2、1−3に障害があっても、PFC1−1によって構築された通信経路50を介してホスト3−1、3−2間のパケット転送は行われる。例えば、通信経路50上のPFS2に、PFC1−1よりも先行して他のPFC1−2、1−3によってフローエントリが設定されている場合、フローテーブル23は、高い優先度“1”のフローエントリによって上書きされるため、問題なく通信経路50が構築される。又、PFC1−1よりも後に、他のPFC1−2、1−3によるフローテーブルの更新が行われても、通信経路50と共通するOFS2には高い優先度“1”のフローエントリが設定されているため、当該フローテーブルの更新は無視(拒否)される。このため、高い優先度“1”のフローエントリによって構築された通信経路50は、変更されない。
又、優先度の低いPFC1−3に障害が発生した場合、その通信経路の構築順序に関わらず、高優先度のPFC1−1又はPFC1−2によってフローエントリが設定されるため、必ずホスト間の通信経路は構築される。本発明では、宛先のホスト3−2に一番近いPFS2−6から順にフローテーブルの更新指示を出しているため、矛盾なくホスト間の通信経路を構築することができる。
次に、図14A及び図14Bを参照して、優先度の高いPFC1−1が他のPFC1に先行して通信経路50を構築中に動作不能となった場合に構築される通信経路について説明する。
図14Aに示すように、PFC1−1は、宛先のホスト3−2に最も近いPFS2−6から送信元のホスト3−1に向かって順にフローテーブル23を更新し、PFS2−5のフローテーブル23を更新した後に何らかの障害によりフローテーブル更新処理を停止する。このとき、PFS2−5、2−6には優先度“1”のフローエントリが設定され、PFS2−5、2−6、ホスト3−2までの通信経路51、52が構築される。
PFC1−1によるフローテーブルの更新開始より後に、PFC1−2が通信経路40の構築(フローテーブルの更新)を開始する。PFC1−2は、宛先のホスト3−2に最も近いPFS2−6から送信元のホスト3−1に向かって順にフローテーブル23を更新する。このとき、FS2−6には高い優先度“1”のフローエントリが既に設定されているため、これよりも低い優先度“2”のフローテーブルには更新されない。ここで、PFC1−2に問題がなく、要求元PFS2−1までフローテーブルの更新が終了すると、PFS2−1、2−3、2−4には優先度“2”のフローエントリが設定される。すなわち、PFC1−2によって、ホスト3−1からPFS2−6の間に通信経路41が構築される。一方、PFS2−6からホスト3−2までの間はPFC1−1によって通信経路51が構築されているため、ホスト3−1とホスト3−2との間は、PFC1−2によって構築された通信経路41とPFC1−1によって構築された通信経路51によって接続されることとなる。尚、これらの動作と前後して、PFC1−3もフローテーブルの更新を行うが、優先度の高いフローエントリが優先的に設定されるため、通信経路60上におけるPFS2−2以外のPFS2では、優先度“3”のフローエントリは設定されない。
ネットワーク環境によってPFC1毎に算出された通信経路40、50、60が異なる場合でも、送信元に最も近いPFS2−6と、送信元に最も近い要求元PFS1−1は、全ての通信経路40、50、60で共通している。又、本発明では、フローテーブルの更新が、宛先ホスト側から送信元ホスト側に向かって順に行われる。このため、高優先度のPFC1(PFC1−1)によるフローテーブルの更新が途中で停止しても、他の低優先度のPFC1(PFC1−2)によって構築される通信経路(通信経路41)は、必ず、高優先度のPFC1(PFC1−1)が構築した通信経路(通信経路51)通信経路に接続される。以上のことから、本発明によれば、優先度147の高いフローエントリを設定するPFC1が通信経路の構築途上で動作不能となっても、他のPFC2によって通信経路を補完することができるため、ホスト3間のパケット転送が保証される。
次に、図15A、図15Bを参照して、優先度の高いPF1−1が他のPFC1より後に通信経路の構築(フローテーブルの更新)を開始し、構築途中で動作不能となった場合の通信経路の構築動作について説明する。
PFC1−2及びPFC1−3は、宛先のホスト3−2に最も近いPFS2−6から送信元のホスト3−1に向かって順にフローテーブル23を更新する。本一例では、図15Aのように通信経路42、61が構築された段階で、PFC1−1が通信経路の構築を開始する。図15Aに示すように、PFC1−1が通信経路の構築を開始する時点において、PFS2−6には優先度“2”のフローエントリによってPFS2−6からホスト3−2までの通信経路42が構築され、PFS2−4には優先度“3”のフローエントリによって、PFS2−5からPFS2−4との間に通信経路61が構築されている。
図15Bを参照して、PFC1−1は、宛先のホスト3−2に最も近いPFS2−6から送信元のホスト3−1に向かって順にフローテーブル23を更新し、PFS2−5のフローテーブル23を更新した後に何らかの障害によりフローテーブル更新処理を停止する。このとき、PFS2−5、2−6には優先度“1”のフローエントリが設定され、PFS2−5、2−6、ホスト3−2までの通信経路51、52が構築される。
PFC1−2は、引き続き、PFS2−3から送信元のホスト3−1に向かって通信経路40上におけるPFS2のフローテーブル23を更新する。ここで、PFC1−2に問題がなく、要求元PFS2−1までフローテーブルの更新が終了すると、PFS2−1、2−3には優先度“2”のフローエントリが設定される。すなわち、PFC1−2によって、ホスト3−1からPFS2−6の間に通信経路41が構築される。一方、PFS2−6からホスト3−2までの間はPFC1−1によって通信経路51が構築されているため、ホスト3−1とホスト3−2との間は、PFC1−2によって構築された通信経路41とPFC1−1によって構築された通信経路51によって接続されることとなる。尚、これらの動作と前後して、PFC1−3もフローテーブルの更新を行うが、優先度の高いフローエントリが優先的に設定されるため、通信経路60上におけるPFS2−2以外のPFS2では、優先度“3”のフローエントリは設定されない。
上述と同様に、後に通信経路の構築を開始した高優先度のPFC1(PFC1−1)によるフローテーブルの更新が途中で停止しても、他の低優先度のPFC1(PFC1−2)によって構築される通信経路(通信経路41)は、必ず、高優先度のPFC1(PFC1−1)が構築した通信経路(通信経路51)通信経路に接続される。以上のことから、本発明によれば、優先度147の高いフローエントリを設定するPFC1が通信経路の構築途上で動作不能となっても、他のPFC2によって通信経路を補完することができるため、ホスト3間のパケット転送が保証される。
最も優先度の高い優先度147が指定されたPFC1−1が正常である場合、フローテーブル23の更新(高優先度のフローエントリによる上書き)によって、所定の時間の経過後、必ず通信経路50が構築される。この場合、1つのPFC1−1によってフローを制御及び管理できるため、オープンフロー技術で提唱されたフローの一元管理が実現できる。
しかし、PFC1−1に異常が発生した場合、ホスト間を接続する通信経路は、上述のように複数のPFC1によって構築されることがある。この場合、複数のPFC1によってフローが制御されることとなり、オープンフロー技術の方針である、「1つのPFC1によるフローの一元管理」に反することとなる。
このため、最高の優先度147“1”が通知されたPFC1−1が、障害から復旧した際、必ず、通信経路50を再構築するように設定することで、他のPFC1と通信することなくPFC1−1によるフローの一元管理が実現できる。
図16は、優先度147“1”が通知されたPFC1−1の障害復旧後の動作を示すフロー図である。障害から復旧したPFC1−1は、例えば再起動により復帰すると、ファーストパケットの転送元のPFS2(要求元PFS2−1)に対してフローテーブル23の更新指示をしたか否かを確認する(ステップS301)。詳細には、PFC1−1は、再起動後、フローテーブル14に設定された優先度147が“1”のフローエントリとその設定情報146を検索することで、該当エントリのPFS1への設定状況を確認する。
ここで、要求元PFS2−1に対するフローエントリの設定を確認した場合、PFC1−1は、経路構築完了後に動作不能となり、再起動により復帰したものと判断する(ステップS301Yes、S302)。一方、要求元PFS2−1に対してフローエントリを設定していないことを確認した場合、PFC1−1は、経路構築途中で動作不能になったものと判断し、通信経路50上のPFS2にフローテーブルの更新指示を発行する(ステップS301No、S303)。この際、ファーストパケットに基づいて設定されたルール144を利用して、新たな通信経路を算出し、当該通信経路上のPFS2に設定するフローエントリ(ルール144+アクション情報145)を生成してもよい。通常、障害復旧後のネットワーク環境は、障害発生時から変動しているため、新たな通信経路及びフローエントリを設定することが有効である。
このように障害から復旧した最高優先度が通知されたPFC1−1によって、通信経路全体のPFS2のフローテーブル23を更新することで、フローをPFC1−1で一元管理することが可能となる。
PFC1は、パケットが最も速く送信元ホスト3−1から宛先ホスト3−2へ到達できるような通信経路を算出するため、複数のPFC1が同じ通信経路を決定する場合が多い。このため、複数のPFC1で通信経路を構築する方法は、耐障害性の観点では有効な策である。このため、本発明では、複数のPFC1を用意することで耐障害性を向上させている。
又、本発明では、複数のPFC1からのフローテーブル更新指示が競合しても、PFS2側でその優先度に基づいてフローテーブルの更新(上書き)許否を判定するため、矛盾することなくパケットの到達を保証する通信経路が構築される。更に、複数のPFC1のそれぞれは、独自にフローテーブルの更新指示を発行するため、コントローラ間で同期を取る必要がない。このため、コントロール間で同期を取るための待ち時間を必要としないため、経路構築までの時間を短縮することも可能となる。すなわち、本発明によれば、オープンフロー技術を利用したコンピュータシステムにおいて通信経路構築の時間を増加させることなく耐障害性を上げることが可能となる。
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。例えば、優先度147に応じたフローテーブルの更新制御は、通信経路の構築(転送先の設定)だけでなく、フローの転送停止や終了(破棄)といった他の制御に対して行われても良い。これにより、複数のコントローラからの指示を矛盾することなく実行することが可能となり、耐障害性が更に向上する。
上記の実施の形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限らない。
(付記1)
それぞれが、通信経路を算出し前記通信経路上のスイッチに対して、優先度を付加したフローエントリの設定を指示する複数のコントローラと、
前記優先度に応じて前記フローエントリの設定許否を判定し、自身に設定されたフローエントリに適合する受信パケットに対し、前記設定されたフローエントリに従った中継動作を行うスイッチと
を具備する
コンピュータシステム。
(付記2)
付記1に記載のコンピュータシステムにおいて、
前記スイッチは、前記複数のコントローラのそれぞれから送信されたフローエントリの優先度が、自身に設定されたフローエントリの優先度より高い場合、前記送信されたフローエントリによって前記設定されたフローエントリを上書き設定する
コンピュータシステム。
(付記3)
付記1又は2に記載のコンピュータシステムにおいて、
前記スイッチは、前記複数のコントローラのそれぞれから送信されたフローエントリの優先度が、自身に設定されたフローエントリの優先度より低い場合、前記送信されたフローエントリの設定を拒否する
コンピュータシステム。
(付記4)
付記2又は3に記載のコンピュータシステムにおいて、
前記複数のコントローラのそれぞれは、前記通信経路上において、パケットデータの宛先装置側のスイッチから送信元装置のスイッチに対して順にフローエントリの設定を指示する
コンピュータシステム。
(付記5)
付記1から4のいずれか1項に記載のコンピュータシステムにおいて、
前記複数のコントローラのそれぞれがフローエントリに付加する前記優先度は、前記複数のコントローラのそれぞれで異なる値である
コンピュータシステム。
(付記6)
付記1から5のいずれか1項に記載のコンピュータシステムにおいて、
前記スイッチは、自身に設定されたフローエントリに適合しないパケットデータを受信すると、前記パケットデータと優先度とを、前記複数のコントローラに通知し、
前記複数のコントローラのそれぞれは、前記パケットデータのヘッダ情報に基づいて作成したフローエントリに前記通知された優先度を付加して、前記通信経路上のスイッチに設定を指示する
コンピュータシステム。
(付記7)
付記1から6のいずれか1項に記載のコンピュータシステムで利用されるコントローラ。
(付記8)
付記1から6のいずれか1項に記載のコンピュータシステムで利用されるスイッチ。
(付記9)
複数のコントローラのそれぞれが、通信経路を算出し前記通信経路上のスイッチに対して、優先度を付加したフローエントリの設定を指示するステップと、
前記スイッチが、前記優先度に応じて前記フローエントリの設定許否を判定するステップと、
前記スイッチが、自身に設定されたフローエントリに適合する受信パケットに対し、前記設定されたフローエントリに従った中継動作を行うステップと
を具備する
通信方法。
(付記10)
付記9に記載の通信方法において、
前記複数のコントローラのそれぞれから送信されたフローエントリの優先度が、前記スイッチに設定されたフローエントリの優先度より高い場合、前記送信されたフローエントリによって前記スイッチに設定されたフローエントリを上書き設定するステップを更に具備する
通信方法。
(付記11)
付記9又は10に記載の通信方法において、
前記複数のコントローラのそれぞれから送信されたフローエントリの優先度が、前記スイッチに設定されたフローエントリの優先度より低い場合、前記送信されたフローエントリの設定を拒否するステップを更に具備する
通信方法。
(付記12)
付記10又は11に記載の通信方法において、
前記設定を指示するステップは、前記通信経路上において、パケットデータの宛先装置側のスイッチから送信元装置のスイッチに対して順にフローエントリの設定を指示するステップを備える
通信方法。
(付記13)
付記9から12のいずれか1項に記載の通信方法において、
前記複数のコントローラのそれぞれがフローエントリに付加する前記優先度は、前記複数のコントローラのそれぞれで異なる値である
通信方法。
(付記14)
付記9から13のいずれか1項に記載の通信方法において、
前記スイッチが、自身に設定されたフローエントリに適合しないパケットデータを受信すると、前記パケットデータと優先度とを、前記複数のコントローラに通知するステップを更に具備し、
前記設定を指示するステップは、前記前記複数のコントローラのそれぞれが、前記パケットデータのヘッダ情報に基づいて作成したフローエントリに前記通知された優先度を付加して、前記通信経路上のスイッチに設定を指示するステップを備える
コンピュータシステム。
1、1−1〜1−m:プログラマブルフローコントローラ(PFC)
2、2−1〜2−n:プログラマブルフロースイッチ(PFS)
3、3−1〜3−i:ホストコンピュータ(ホスト)
11:スイッチ制御部
12:フロー管理部
13:フロー生成部
14、23:フローテーブル
15:トポロジ情報
16:通信経路情報
20:スイッチ群
21:転送処理部
22:フロー設定部
24、147:優先度
141:フロー識別子
142:対象装置
143:経路情報
144:ルール
145:アクション情報
146:設定情報
151:装置識別子
152:ポート数
153:ポート接続先情報
161:端点情報
162:通過スイッチ情報
163:付随情報

Claims (14)

  1. それぞれが、通信経路を算出し前記通信経路上のスイッチに対して、優先度を付加したフローエントリの設定を指示する複数のコントローラと、
    前記優先度に応じて前記フローエントリの設定許否を判定し、自身に設定されたフローエントリに適合する受信パケットに対し、前記設定されたフローエントリに従った中継動作を行うスイッチと
    を具備し、
    前記優先度は、スイッチに対して優先的にフローエントリを設定するコントローラを決める指標であり、
    前記複数のコントローラのそれぞれは、前記通信経路上において、パケットデータの宛先装置側のスイッチから送信元装置のスイッチに対して順にフローエントリの設定を指示し、
    前記スイッチは、前記複数のコントローラのそれぞれから送信されたフローエントリの優先度が、自身に設定されたフローエントリの優先度より高い場合、前記送信されたフローエントリによって前記設定されたフローエントリを上書き設定する
    コンピュータシステム。
  2. 請求項1に記載のコンピュータシステムにおいて、
    前記スイッチは、自身に設定されたフローエントリに適合しないパケットデータを受信すると、前記パケットデータと前記複数のコントローラのそれぞれに個別に設定する優先度とを、前記複数のコントローラのそれぞれに通知し、
    前記複数のコントローラのそれぞれは、前記パケットデータのヘッダ情報に基づいて作成したフローエントリに前記通知された優先度を付加して、前記通信経路上のスイッチに対して設定を指示する
    コンピュータシステム。
  3. それぞれが、通信経路を算出し前記通信経路上のスイッチに対して、優先度を付加したフローエントリの設定を指示する複数のコントローラと、
    前記優先度に応じて前記フローエントリの設定許否を判定し、自身に設定されたフローエントリに適合する受信パケットに対し、前記設定されたフローエントリに従った中継動作を行うスイッチと
    を具備し、
    前記優先度は、スイッチに対して優先的にフローエントリを設定するコントローラを決める指標であり、
    前記スイッチは、自身に設定されたフローエントリに適合しないパケットデータを受信すると、前記パケットデータと前記複数のコントローラのそれぞれに個別に設定する優先度とを、前記複数のコントローラのそれぞれに通知し、
    前記複数のコントローラのそれぞれは、前記パケットデータのヘッダ情報に基づいて作成したフローエントリに前記通知された優先度を付加して、前記通信経路上のスイッチに対して設定を指示する
    コンピュータシステム。
  4. 請求項1から3のいずれか1項に記載のコンピュータシステムにおいて、
    前記スイッチは、前記複数のコントローラのそれぞれから送信されたフローエントリの優先度が、自身に設定されたフローエントリの優先度より高い場合、前記送信されたフローエントリによって前記設定されたフローエントリを上書き設定する
    コンピュータシステム。
  5. 請求項1からのいずれか1項に記載のコンピュータシステムにおいて、
    前記スイッチは、前記複数のコントローラのそれぞれから送信されたフローエントリの優先度が、自身に設定されたフローエントリの優先度より低い場合、前記送信されたフローエントリの設定を拒否する
    コンピュータシステム。
  6. 請求項1からのいずれか1項に記載のコンピュータシステムにおいて、
    前記複数のコントローラのそれぞれに設定される優先度は、前記複数のコントローラのそれぞれの障害発生率に応じて動的に変更される
    コンピュータシステム。
  7. 請求項1からのいずれか1項に記載のコンピュータシステムで利用されるコントローラ。
  8. 請求項1からのいずれか1項に記載のコンピュータシステムで利用されるスイッチ。
  9. 複数のコントローラのそれぞれが、通信経路を算出し前記通信経路上のスイッチに対して、優先度を付加したフローエントリの設定を指示するステップと、
    前記スイッチが、前記優先度に応じて前記フローエントリの設定許否を判定するステップと、
    前記スイッチが、自身に設定されたフローエントリに適合する受信パケットに対し、前記設定されたフローエントリに従った中継動作を行うステップと、
    前記複数のコントローラのそれぞれから送信されたフローエントリの優先度が、前記スイッチに設定されたフローエントリの優先度より高い場合、前記送信されたフローエントリによって前記スイッチに設定されたフローエントリを上書き設定するステップと
    を具備し、
    前記優先度は、スイッチに対して優先的にフローエントリを設定するコントローラを決める指標であり、
    前記フローエントリの設定指示は、前記通信経路上において、パケットデータの宛先装置側のスイッチから送信元装置のスイッチに対して順に行われる
    通信方法。
  10. 請求項9に記載の通信方法において、
    前記フローエントリの設定を指示するステップは、
    前記スイッチが、自身に設定されたフローエントリに適合しないパケットデータを受信すると、前記パケットデータと前記複数のコントローラのそれぞれに個別に設定する優先度とを、前記複数のコントローラのそれぞれに通知するステップと、
    前記複数のコントローラのそれぞれが、前記パケットデータのヘッダ情報に基づいて作成したフローエントリに前記通知された優先度を付加して、前記通信経路上のスイッチに対して設定を指示するステップと、
    前記スイッチが、前記複数のコントローラのそれぞれから送信されたフローエントリの優先度が、自身に設定されたフローエントリの優先度より高い場合、前記送信されたフローエントリによって前記設定されたフローエントリを上書き設定するステップと
    を備える
    通信方法。
  11. 複数のコントローラのそれぞれが、通信経路を算出し前記通信経路上のスイッチに対して、優先度を付加したフローエントリの設定を指示するステップと、
    前記スイッチが、前記優先度に応じて前記フローエントリの設定許否を判定するステップと、
    前記スイッチが、自身に設定されたフローエントリに適合する受信パケットに対し、前記設定されたフローエントリに従った中継動作を行うステップと
    を具備し、
    前記優先度は、スイッチに対して優先的にフローエントリを設定するコントローラを決める指標であり、
    前記フローエントリの設定を指示するステップは、
    前記スイッチが、自身に設定されたフローエントリに適合しないパケットデータを受信すると、前記パケットデータと前記複数のコントローラのそれぞれに個別に設定する優先度とを、前記複数のコントローラのそれぞれに通知するステップと、
    前記複数のコントローラのそれぞれが、前記パケットデータのヘッダ情報に基づいて作成したフローエントリに前記通知された優先度を付加して、前記通信経路上のスイッチに対して設定を指示するステップと、
    前記スイッチが、前記複数のコントローラのそれぞれから送信されたフローエントリの優先度が、自身に設定されたフローエントリの優先度より高い場合、前記送信されたフローエントリによって前記設定されたフローエントリを上書き設定するステップと
    を備える
    通信方法。
  12. 請求項9から11のいずれか1項に記載の通信方法において、
    前記複数のコントローラのそれぞれから送信されたフローエントリの優先度が、前記スイッチに設定されたフローエントリの優先度より高い場合、前記送信されたフローエントリによって前記スイッチに設定されたフローエントリを上書き設定するステップを更に具備する
    通信方法。
  13. 請求項9から12のいずれか1項に記載の通信方法において、
    前記複数のコントローラのそれぞれから送信されたフローエントリの優先度が、前記スイッチに設定されたフローエントリの優先度より低い場合、前記送信されたフローエントリの設定を拒否するステップを更に具備する
    通信方法。
  14. 請求項9から13のいずれか1項に記載の通信方法において、
    前記複数のコントローラのそれぞれに設定される優先度は、前記複数のコントローラのそれぞれの障害発生率に応じて動的に変更される
    通信方法。
JP2010025884A 2010-02-08 2010-02-08 コンピュータシステム、及び通信方法 Expired - Fee Related JP5488980B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010025884A JP5488980B2 (ja) 2010-02-08 2010-02-08 コンピュータシステム、及び通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010025884A JP5488980B2 (ja) 2010-02-08 2010-02-08 コンピュータシステム、及び通信方法

Publications (2)

Publication Number Publication Date
JP2011166384A JP2011166384A (ja) 2011-08-25
JP5488980B2 true JP5488980B2 (ja) 2014-05-14

Family

ID=44596563

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010025884A Expired - Fee Related JP5488980B2 (ja) 2010-02-08 2010-02-08 コンピュータシステム、及び通信方法

Country Status (1)

Country Link
JP (1) JP5488980B2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5495150B2 (ja) * 2011-03-04 2014-05-21 日本電気株式会社 ネットワークシステム、ネットワーク機器、及び経路制御方法
US9419910B2 (en) 2011-09-13 2016-08-16 Nec Corporation Communication system, control apparatus, and communication method
US9154433B2 (en) 2011-10-25 2015-10-06 Nicira, Inc. Physical controller
WO2013108761A1 (ja) 2012-01-16 2013-07-25 日本電気株式会社 ネットワークシステム、及び経路情報同期方法
WO2013118687A1 (ja) 2012-02-10 2013-08-15 日本電気株式会社 コンピュータシステム、及び仮想ネットワークの可視化方法
CN104137479B (zh) 2012-02-10 2017-06-20 日本电气株式会社 计算机系统和虚拟网络的可视化方法
WO2013133227A1 (ja) * 2012-03-05 2013-09-12 日本電気株式会社 ネットワークシステム、スイッチ、及びネットワーク構築方法
JP5808700B2 (ja) * 2012-03-05 2015-11-10 株式会社Nttドコモ 通信制御装置、通信制御システム、仮想化サーバ管理装置、スイッチ装置および通信制御方法
EP2824876A4 (en) 2012-03-08 2015-11-11 Nec Corp NETWORK SYSTEM, CONTROLLING THEREFOR AND LOAD DISTRIBUTION METHOD
WO2013158918A1 (en) * 2012-04-18 2013-10-24 Nicira, Inc. Using transactions to minimize churn in a distributed network control system
JP2015039097A (ja) * 2012-10-17 2015-02-26 三菱電機インフォメーションシステムズ株式会社 スイッチ及び通信システム
CN104871500A (zh) 2012-12-19 2015-08-26 日本电气株式会社 通信节点、控制装置、通信系统、分组处理方法、通信节点控制方法及程序
US20150372900A1 (en) * 2013-02-07 2015-12-24 Nec Corporation Communication system, control apparatus, communication control method, and program
US10498669B2 (en) * 2013-08-20 2019-12-03 Nec Corporation Communication system, switch, controller, ancillary data management apparatus, data forwarding method, and program
JP6311265B2 (ja) * 2013-10-17 2018-04-18 日本電気株式会社 通信中継装置、通信中継システム、中継定義情報の更新方法及び更新プログラム
WO2015113285A1 (zh) 2014-01-29 2015-08-06 华为技术有限公司 通信网络中的控制方法、集中控制器及无线通信网络系统
JP6287518B2 (ja) 2014-04-14 2018-03-07 富士通株式会社 オープンフロースイッチおよびオープンフローネットワークの障害復旧方法
JP2016082344A (ja) 2014-10-15 2016-05-16 日本電気株式会社 制御装置、情報処理システム、制御方法、及び、プログラム
JP6531420B2 (ja) * 2015-02-16 2019-06-19 日本電気株式会社 制御装置、通信システム、仮想ネットワーク機能の管理方法及びプログラム
JP6531419B2 (ja) * 2015-02-16 2019-06-19 日本電気株式会社 制御装置、通信システム、仮想ネットワークの管理方法及びプログラム
US10204122B2 (en) 2015-09-30 2019-02-12 Nicira, Inc. Implementing an interface between tuple and message-driven control entities
JP6033393B2 (ja) * 2015-12-25 2016-11-30 株式会社Nttドコモ 制御ノード及び通信制御方法
US11019167B2 (en) 2016-04-29 2021-05-25 Nicira, Inc. Management of update queues for network controller
WO2018015984A1 (en) 2016-07-21 2018-01-25 Nec Corporation Communication apparaus, system, rollback method, and program
JP7083275B2 (ja) 2018-05-18 2022-06-10 アライドテレシスホールディングス株式会社 情報処理システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3762403B2 (ja) * 2003-10-31 2006-04-05 日本電信電話株式会社 パケット転送装置、ネットワーク制御サーバ、およびパケット通信ネットワーク
US20120250496A1 (en) * 2009-11-26 2012-10-04 Takeshi Kato Load distribution system, load distribution method, and program
EP2523402A4 (en) * 2010-01-05 2017-10-18 Nec Corporation Communication system, control apparatus, processing rule setting method, packet transmitting method and program

Also Published As

Publication number Publication date
JP2011166384A (ja) 2011-08-25

Similar Documents

Publication Publication Date Title
JP5488980B2 (ja) コンピュータシステム、及び通信方法
JP5488979B2 (ja) コンピュータシステム、コントローラ、スイッチ、及び通信方法
JP5074327B2 (ja) 経路制御システム
JP6358347B2 (ja) 通信システム、制御装置、ノードの制御方法
CN108141376B (zh) 网络节点、通信网络及通信网络中的方法
JP6053003B2 (ja) 伝送システム、伝送装置、及び伝送方法
JP5846221B2 (ja) ネットワークシステム、及びトポロジー管理方法
EP2911348B1 (en) Control device discovery in networks having separate control and forwarding devices
US9215175B2 (en) Computer system including controller and plurality of switches and communication method in computer system
JP5664557B2 (ja) 計算機、ネットワーク接続切替え方法およびプログラム
US20170111231A1 (en) System and method for communication
JP5757552B2 (ja) コンピュータシステム、コントローラ、サービス提供サーバ、及び負荷分散方法
US10645006B2 (en) Information system, control apparatus, communication method, and program
JP5861772B2 (ja) ネットワークアプライアンス冗長化システム、制御装置、ネットワークアプライアンス冗長化方法及びプログラム
US8625407B2 (en) Highly available virtual packet network device
WO2015079616A1 (ja) 通信システム、通信方法、ネットワーク情報結合装置およびネットワーク情報結合プログラム
WO2015079615A1 (ja) 通信システム、通信方法、ネットワーク情報結合装置、処理規則変換方法および処理規則変換プログラム
TWI676378B (zh) 網路自動鏈結備援方法與網路系統
WO2014104277A1 (ja) 制御装置、通信システム、通信ノードの制御方法及びプログラム
JP6042838B2 (ja) 管理システム、管理サーバ、および管理方法
JP6127569B2 (ja) スイッチ、制御装置、通信システム、制御チャネルの管理方法及びプログラム
JP2008131247A (ja) ネットワーク管理装置および方法
JP2019041368A (ja) 転送装置、転送システム、転送方法、およびプログラム
WO2015054826A1 (zh) 一种发送交叉命令的方法和装置
JP6282222B2 (ja) 通信装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130927

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131125

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140213

R150 Certificate of patent or registration of utility model

Ref document number: 5488980

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees