JP5648926B2 - ネットワークシステム、コントローラ、ネットワーク制御方法 - Google Patents

ネットワークシステム、コントローラ、ネットワーク制御方法 Download PDF

Info

Publication number
JP5648926B2
JP5648926B2 JP2011551858A JP2011551858A JP5648926B2 JP 5648926 B2 JP5648926 B2 JP 5648926B2 JP 2011551858 A JP2011551858 A JP 2011551858A JP 2011551858 A JP2011551858 A JP 2011551858A JP 5648926 B2 JP5648926 B2 JP 5648926B2
Authority
JP
Japan
Prior art keywords
packet
appliance
switch
entry
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
JP2011551858A
Other languages
English (en)
Other versions
JPWO2011093288A1 (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 JP2011551858A priority Critical patent/JP5648926B2/ja
Publication of JPWO2011093288A1 publication Critical patent/JPWO2011093288A1/ja
Application granted granted Critical
Publication of JP5648926B2 publication Critical patent/JP5648926B2/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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing

Landscapes

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

Description

本発明は、アプライアンスを備えるネットワークシステムを制御する技術に関する。特に、本発明は、使用するアプライアンスを切り替える技術に関する。
アプライアンス(ネットワークアプライアンス)は、ネットワークに導入される、特定の機能に特化したネットワーク装置である。アプライアンスとしては、ロードバランサやファイヤーウォールが挙げられる。
ロードバランサは、負荷分散の機能を提供する。より詳細には、ロードバランサは、外部ネットワークから仮想的なサーバ(仮想サーバ)として見え、クライアントは、この仮想サーバに対応する仮想IPアドレス(VIP)およびポート番号を指定して要求を行う。ロードバランサは、仮想サーバに対応してあらかじめ設定された複数のサーバ(実サーバ)の中から、実際にクライアントにサービスを提供する実サーバを一つ選択する。そして、ロードバランサは、要求パケット中の宛先アドレス(例えばMACアドレス、あるいはMACアドレスとIPアドレスの両方)を選択した実サーバのものに書き換えて、当該要求を実サーバに転送する。
ファイヤーウォールは、通信制御を通してセキュリティを確保する機能を提供する。より詳細には、ファイヤーウォールは、IPアドレスやポート番号等の条件に応じて、パケットを通過させたり破棄したりする。また、一度通過させたパケットに対する応答パケットのみを通過させるといった制御も考えられる。このように、ファイヤーウォールは、コネクションやセッションの状態を管理して、強固なセキュリティを確保する。
ここで、使用するアプライアンスを切り替えることを考える。例えば、使用していたアプライアンスを保守などのために停止させ、別のアプライアンスにその機能を移行することを考える。このとき、単にアプライアンスを切り替えただけでは、切り替え前のアプライアンスを利用していたセッションの一部または全部が切断されてしまう。これは、アプライアンス内に保持されているセッション情報が引き継がれないためである。例えばロードバランサの場合、セッション情報は、どのクライアントをどの実サーバで処理しているかを示す。そのセッション情報が引き継がれないと、既存セッションは、新規セッションと同様に扱われ、その結果として、元と異なる実サーバに転送されてしまう可能性がある。別の例として、通過させたパケットに対する応答パケットだけを通過させるように設定されたファイヤーウォールを考える。この場合も、移行先のファイヤーウォールにセッション情報が引き継がれなければ、応答パケットも新規セッションとみなされて破棄されてしまう。
セッションの切断を起こさずにアプライアンスの切り替えを実現する方法として、特許文献1(特開2004−229130号公報)に開示された方法を用いることができる。この方法によれば、振り分け制御装置は、セッションがアプライアンスを利用中の既存セッションかどうかを判定する。そして、振り分け制御装置は、既存セッションを維持したまま、新規セッションだけを別のアプライアンスに振り分ける。よって、移行先のアプライアンスにセッション情報を引き継がなくても、セッションの切断を防止することができる。
また、特許文献2(特開2004−274552号公報)には、必要に応じてセッション情報を別の装置に移送する方式が開示されている。この方法によれば、移行先のアプライアンスにセッション情報を移送することにより、アプライアンスが切り替わってもセッションを維持することができる。
その他の技術として以下のものが知られている。
特許文献3(特開2006−287605号公報)は、障害発生時にサーバへのアクセスを維持できるロードバランサを開示している。そのロードバランサは、第1の通信手段、第2の通信手段、負荷分散手段、及び短絡手段を備える。第1の通信手段は、複数のサーバが接続される第1のネットワークとの通信をする。第2の通信手段は、クライアントが接続され第1のネットワークと同一のプロトコルに従って動作する第2のネットワークとの通信をする。負荷分散手段は、複数のサーバの負荷量に応じて、第2の通信手段から第1の通信手段へと伝送させるデータを複数のサーバのうちのいずれに供給するかを選択し、選択されたサーバにデータを転送する。短絡手段は、第1の通信手段と第2の通信手段とを短絡し、負荷分散手段を介さずに第1のネットワークと第2のネットワークとを接続する。
特許文献4(特開2007−156569号公報)は、複数のロードバランサを介するデータ通信を行うクラスタシステムを開示している。ノードサーバが正常に動作しなくなった場合にも、複数のロードバランサは、同一のセッションまたは関連する複数のセッションに属するメッセージを、同一のクラスタノードに分配する。これにより、効率よく複数のロードバランサからのメッセージを処理することができる。
特許文献5(特開2007−272472号公報)には、サーバの交替時にクライアント端末から再ログインすることを不要とする技術が記載されている。
特開2004−229130号公報 特開2004−274552号公報 特開2006−287605号公報 特開2007−156569号公報 特開2007−272472号公報
本願発明者は、次の点に着目した。すなわち、使用するアプライアンスを切り替えるために、元のアプライアンスを停止させ、別のアプライアンスにその機能を移行する際、次のような問題点が発生する。
特許文献1に開示された方法の場合、移行元のアプライアンスを停止させてもそれを利用しているセッションが切断されないようにするためには、当該セッションのすべてが終了するまで待つ必要がある。従って、持続的な接続を利用するクライアントが多数存在していると、いつまでも移行元のアプライアンスを停止させることができないという状況が起こる。
また、明示的に切断処理を行わないクライアントに関しては、アプライアンスは当該セッションの終了を判断することができない。この場合、一定時間の無通信状態をもって当該セッションは終了したとみなし、切断する方法が考えられる。しかしながら、無通信状態の期間はアプリケーションによって異なるため、一律のタイムアウトによる判定では、必ずしもセッションを切断から保護することができない。
一方、特許文献2に開示された方法によれば、移行先のアプライアンスにセッション情報を移送することができる。しかしながら、そのためには移行先のアプライアンスに、移行元のアプライアンスからセッション情報を受け取り、自身のセッション情報と併合する機構を設ける必要がある。複数ベンダーのアプライアンス機種を混在させて利用する状況においては、このような機構は多くの場合利用することができない。
本発明の1つの目的は、既存セッションの切断を防止しながら、アプライアンスの切り替えを効率的に行うことができる技術を提供することにある。
本発明の1つの観点において、ネットワークシステムが提供される。そのネットワークシステムは、ネットワーク中に配置されたアプライアンス及びスイッチと、それらアプライアンス及びスイッチに接続されたコントローラと、を備える。スイッチは、フローテーブルを備え、そのフローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定する。スイッチは、パケットを受け取るとフローテーブルを参照し、受け取ったパケットにマッチするエントリで指定されるアクションを、受け取ったパケットに対して行う。
第1アプライアンスが、既存フローに属するパケットに対して第1パケット処理を実施しているとする。アプライアンスをその第1アプライアンスから第2アプライアンスに切り替える場合、コントローラは、ショートカット処理を行った後、切り替え処理を行う。ショートカット処理において、コントローラは、スイッチに対して、第1エントリをフローテーブルに設定するように指示する。その第1エントリは、既存フローに属するパケットに対して第1パケット処理を実施することを指定する。切り替え処理において、コントローラは、スイッチに対して、第2エントリをフローテーブルに設定するように指示する。その第2エントリは、アプライアンス宛てのパケットであって既存フロー以外の新規フローに属するパケットを、第2アプライアンスに転送することを指定する。
本発明の他の観点において、ネットワーク中に配置されたアプライアンス及びスイッチに接続されるコントローラが提供される。スイッチは、フローテーブルを備え、そのフローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定する。スイッチは、パケットを受け取るとフローテーブルを参照し、受け取ったパケットにマッチするエントリで指定されるアクションを、受け取ったパケットに対して行う。
第1アプライアンスが、既存フローに属するパケットに対して第1パケット処理を実施しているとする。アプライアンスをその第1アプライアンスから第2アプライアンスに切り替える場合、コントローラの処理装置は、ショートカット処理を行った後、切り替え処理を行う。ショートカット処理において、処理装置は、スイッチに対して、第1エントリをフローテーブルに設定するように指示する。その第1エントリは、既存フローに属するパケットに対して第1パケット処理を実施することを指定する。切り替え処理において、処理装置は、スイッチに対して、第2エントリをフローテーブルに設定するように指示する。その第2エントリは、アプライアンス宛てのパケットであって既存フロー以外の新規フローに属するパケットを、第2アプライアンスに転送することを指定する。
本発明の更に他の観点において、アプライアンス及びスイッチが配置されたネットワークの制御方法が提供される。スイッチは、フローテーブルを備え、そのフローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定する。スイッチは、パケットを受け取るとフローテーブルを参照し、受け取ったパケットにマッチするエントリで指定されるアクションを、受け取ったパケットに対して行う。
第1アプライアンスが、既存フローに属するパケットに対して第1パケット処理を実施しているとする。本発明に係る制御方法は、アプライアンスをその第1アプライアンスから第2アプライアンスに切り替えることを含む。切りえることは、ショートカット処理を行うことと、ショートカット処理の後に切り替え処理を行うことと、を含む。ショートカット処理は、スイッチにおいて、第1エントリをフローテーブルに設定することを含む。その第1エントリは、既存フローに属するパケットに対して第1パケット処理を実施することを指定する。切り替え処理は、スイッチにおいて、第2エントリをフローテーブルに設定することを含む。その第2エントリは、アプライアンス宛てのパケットであって既存フロー以外の新規フローに属するパケットを、第2アプライアンスに転送することを指定する。
本発明の更に他の観点において、アプライアンス及びスイッチが配置されたネットワークの制御処理をコンピュータに実行させる制御プログラムが提供される。スイッチは、フローテーブルを備え、そのフローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定する。スイッチは、パケットを受け取るとフローテーブルを参照し、受け取ったパケットにマッチするエントリで指定されるアクションを、受け取ったパケットに対して行う。
第1アプライアンスが、既存フローに属するパケットに対して第1パケット処理を実施しているとする。本発明に係る制御処理は、アプライアンスをその第1アプライアンスから第2アプライアンスに切り替えることを含む。切りえることは、ショートカット処理を行うことと、ショートカット処理の後に切り替え処理を行うことと、を含む。ショートカット処理は、スイッチに対して、第1エントリをフローテーブルに設定するように指示することを含む。その第1エントリは、既存フローに属するパケットに対して第1パケット処理を実施することを指定する。切り替え処理は、スイッチに対して、第2エントリをフローテーブルに設定するように指示することを含む。その第2エントリは、アプライアンス宛てのパケットであって既存フロー以外の新規フローに属するパケットを、第2アプライアンスに転送することを指定する。
本発明によれば、既存セッションの切断を防止しながら、アプライアンスの切り替えを効率的に実現することが可能となる。
上記及び他の目的、長所、特徴は、次の図面と共に説明される本発明の実施の形態により明らかになるであろう。
図1は、本発明の実施の形態に係るネットワークシステムの構成を概略的に示すブロック図である。 図2は、本実施の形態に係る機能構成を示すブロック図である。 図3は、本実施の形態に係るスイッチが有するフローテーブルを示す概念図である。 図4は、本実施の形態に係るコントローラの構成を示すブロック図である。 図5は、本実施の形態に係る処理を説明するためのブロック図である。 図6は、本実施の形態に係る処理を示すフローチャートである。 図7は、本実施の形態に係る収集処理を説明するためのブロック図である。 図8は、本実施の形態に係るショートカット処理を説明するためのブロック図である。 図9は、本実施の形態に係る切り替え処理を説明するためのブロック図である。 図10は、本実施の形態に係る一時パケット処理を示すフローチャートである。 図11は、本実施の形態に係る処理の具体例を説明するためのネットワークシステムの構成例を示すブロック図である。 図12は、具体例におけるフローテーブルの初期状態を示している。 図13は、本具体例における収集処理の結果としてのフローテーブルを示している。 図14は、本具体例におけるショートカット処理の結果としてのフローテーブルを示している。 図15は、本具体例におけるショートカット処理の結果としてのフローテーブルを示している。 図16は、本具体例における切り替え処理の結果としてのフローテーブルを示している。
添付図面を参照して、本発明の実施の形態を説明する。
1.構成
図1は、本実施の形態に係るネットワークシステム1の構成を概略的に示すブロック図である。本実施の形態に係るネットワークシステム1は、例えば、データセンター(Data Center)に適用される。
ネットワークシステム1は、スイッチ10、アプライアンス20、コントローラ100、及びサーバ200を備えている。スイッチ10及びアプライアンス20は、スイッチ−アプライアンスネットワークを構成している。サーバ200は、そのスイッチ−アプライアンスネットワークに接続されている。スイッチ−アプライアンスネットワークは更に、ネットワークシステム1の外部の外部ネットワークに接続されている。コントローラ100は、制御回線(図中、破線で表されている)を介して、各スイッチ10及び各アプライアンス20に接続されている。
図2は、本実施の形態に係るスイッチ10、アプライアンス20、及びコントローラ100の各機能構成を示している。以下、スイッチ10、アプライアンス20、及びコントローラ100の各構成を詳細に説明する。
1−1.スイッチ10
スイッチ10は、パケット転送等のスイッチ処理を行う。より詳細には、図2に示されるように、スイッチ10は、スイッチ処理部11、フローテーブル12、及びコントローラ用インターフェース13を備えている。
図3は、フローテーブル12を概念的に示している。フローテーブル12の各エントリは、「マッチ条件(フロー識別情報)」と「アクション」を示している。「マッチ条件」は、パケットの入力ポート、送信元MACアドレス、宛先MACアドレス、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号などのパラメータの組み合わせで構成される。尚、フローもそれらパラメータの組み合わせで定義される。つまり、「マッチ条件」は、フローを規定するフロー識別情報でもある。「アクション」は、マッチ条件にマッチするパケットに対して行われる処理を指定する。「アクション」としては、指定ポートへのパケット出力、パケットヘッダの特定フィールドの書き換え、パケット廃棄等が挙げられる。尚、フローテーブル12は、記憶装置に格納されている。
スイッチ処理部11は、フローテーブル12に従って、スイッチ処理を行う。より詳細には、スイッチ処理部11は、入力ポートを通してパケットを受信する。パケットを受信すると、スイッチ処理部11は、フローテーブル12を参照し、当該受信パケットにマッチするエントリを検索する。具体的には、スイッチ処理部11は、受信パケットのヘッダ情報を抽出し、受信パケットの入力ポート及びヘッダ情報を検索キーとして用いることにより、フローテーブル12の検索を行う。その検索キーと一致するマッチ条件を示すエントリが、受信パケットにマッチするマッチエントリである。受信パケットがいずれかのエントリのマッチ条件にマッチした場合、すなわち、マッチエントリが見つかった場合、スイッチ処理部11は、そのマッチエントリで指定される「アクション」を受信パケットに対して実施する。
コントローラ用インターフェース13は、制御回線を介してコントローラ100に接続されており、コントローラ100との間で通信を行う際のインターフェースとなる。また、コントローラ用インターフェース13は、コントローラ100からの指示に従って、フローテーブル12のエントリを設定(追加、変更、削除等)する機能を有する。更に、コントローラ用インターフェース13は、コントローラ100からの指示に従って、フローテーブル12の内容によらずともパケットを特定のポートに直接出力する機能も備える。
1−2.アプライアンス20
アプライアンス(ネットワークアプライアンス)20は、ネットワークトラヒックに対して特定の処理を実行するネットワーク装置である。アプライアンス20としては、ロードバランサやファイヤーウォールが例示される。
ロードバランサは、負荷分散の機能を提供する。より詳細には、ロードバランサは、外部ネットワークから仮想的なサーバ(仮想サーバ)として見え、クライアントは、この仮想サーバに対応する仮想IPアドレス(VIP)およびポート番号を指定して要求を行う。ロードバランサは、仮想サーバに対応してあらかじめ設定された複数のサーバ(実サーバ)の中から、実際にクライアントにサービスを提供する実サーバを一つ選択する。そして、ロードバランサは、要求パケット中の宛先アドレス(例えばMACアドレス、あるいはMACアドレスとIPアドレスの両方)を選択した実サーバのものに書き換えて、当該要求を実サーバに転送する。
ファイヤーウォールは、通信制御を通してセキュリティを確保する機能を提供する。より詳細には、ファイヤーウォールは、IPアドレスやポート番号等の条件に応じて、パケットを通過させたり破棄したりする。また、一度通過させたパケットに対する応答パケットのみを通過させるといった制御も考えられる。このように、ファイヤーウォールは、コネクションやセッションの状態を管理して、強固なセキュリティを確保する。
図2に示されるように、アプライアンス20は、アプライアンス処理部21、セッションテーブル22、セッション情報送信部23を備えている。
セッションテーブル22は、自アプライアンス20が扱っているフロー(セッション)に関する情報を示す。フローに関する情報とは、送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号等であり、上述のフロー識別情報と同様である。また例えば、アプライアンス20がロードバランサの場合、セッションテーブル22は、各フローに属するパケットを実際に処理する実サーバも示す。
アプライアンス処理部21は、アプライアンス20としての特定の処理を実行する。例えば、アプライアンス20がロードバランサの場合、アプライアンス処理部21は、入力されたパケットのヘッダから宛先の仮想サーバの情報(仮想IPアドレス、ポート番号)を抽出し、当該仮想サーバに対応付けられた複数の実サーバの中から1つを選択する。そして、アプライアンス処理部21は、パケットのヘッダに含まれる宛先アドレスの情報を、選択した実サーバのものに書き換えて、送出する。また、アプライアンス処理部21は、選択した実サーバを当該フローと関連付けてセッションテーブル22に登録する。それ以降、アプライアンス処理部21は、セッションテーブル22を参照することによって、同一フローに属するパケットに対してパケット処理を実施することができる。
セッション情報送信部23は、制御回線を介してコントローラ100に接続されている。このセッション情報送信部23は、コントローラ100からの要求に応じて、セッションテーブル22の内容を示すセッション情報SESをコントローラ100に送信する機能を有する。
1−3.コントローラ100
コントローラ100は、制御回線を介して、各スイッチ10のフローテーブル12の内容を設定する機能を有する。具体的には、コントローラ100は、エントリの設定(追加、変更、削除等)を指示する「エントリ設定データENT」を作成し、そのエントリ設定データENTを対象スイッチ10に送る。エントリ設定データENTを受け取った対象スイッチ10のコントローラ用インターフェース13は、そのエントリ設定データENTに従って、自身のフローテーブル12内のエントリの設定(追加、変更、削除等)を行う。このように、コントローラ100は、フローテーブル12の内容の設定を通してスイッチ10の動作を制御し、それにより、ネットワークトラフィックを適宜制御することができる。
このような処理を実現するためのコントローラ100とスイッチ10との間のインタフェース方式としては、例えば、Openflow(http://www.openflowswitch.org/を参照)が挙げられる。この場合、「Openflow Controller」がコントローラ100となり、「Openflow Switch」が各スイッチ10となる。
図4は、本実施の形態に係るコントローラ100の構成を示すブロック図である。コントローラ100は、処理装置101、記憶装置102、及び通信装置103を備えている。処理装置101は、CPU(Central Processing Unit)を含む。記憶装置102は、例えば、RAM(Random Access Memory)やHDD(Hard Disk Drive)を含む。通信装置103は、例えば、外部との通信を行うネットワークカードを含む。
記憶装置102には、接続情報CON、セッション情報SES、エントリ設定データENT等が格納される。
接続情報CONは、ネットワークの接続関係を示す。つまり、接続情報CONは、スイッチ10、アプライアンス20、サーバ200といった構成要素間の接続関係(トポロジ)を示す。より詳細には、接続情報CONは、各構成要素の各ポートがどの構成要素のどのポートに接続されているかを示す。各構成要素の識別情報としては、MACアドレスやIPアドレスなどが挙げられる。
セッション情報SESは、アプライアンス20が有するセッションテーブル22の内容を示す。このセッション情報SESは、アプライアンス20から取得することができる。詳細は後述される。
エントリ設定データENTは、上述の通り、対象スイッチ10に対してエントリの設定(追加、変更、削除等)を指示する情報である。
処理装置101は、本実施の形態に係る「ネットワーク制御処理」を行う。より詳細には、図4に示されるように、処理装置101は、スイッチ制御部110、アプライアンス制御部120、及び変換部130を備えている。これら機能ブロックは、処理装置101が制御プログラムPROGを実行することにより実現される。制御プログラムPROGは、コンピュータ(処理装置101)によって実行されるコンピュータプログラムであり、記憶装置102に格納される。制御プログラムPROGは、コンピュータ読み取り可能な記録媒体に格納されていてもよい。
スイッチ制御部110は、制御回線を介してスイッチ10と接続され、通信を行う。このスイッチ制御部110は、スイッチ10に対して、所望のエントリをフローテーブル12に設定するよう指示する機能を有している。具体的には、スイッチ制御部110は、所望のエントリの設定を指示するエントリ設定データENTを作成し、そのエントリ設定データENTを記憶装置102に格納する。エントリ設定データENTは、後述される変換部130によって作成される場合もある。スイッチ制御部110は、エントリ設定データENTを記憶装置102から読み出し、そのエントリ設定データENTをスイッチ10に送信する。これにより、所望のエントリを当該スイッチ10のフローテーブル12に設定することができる。
アプライアンス制御部120は、制御回線を介してアプライアンス20と接続され、通信を行う。このアプライアンス制御部120は、所望のアプライアンス20からセッション情報SESを取得する機能を有している。より詳細には、アプライアンス制御部120は、所望のアプライアンス20に対して、セッション情報SESの送付を要求する。その要求に応答して、当該アプライアンス20のセッション情報送信部23は、自身のセッションテーブル22の内容を示すセッション情報SESを、コントローラ100に送信する。アプライアンス制御部120は、当該アプライアンス20からセッション情報SESを受け取り、そのセッション情報SESを記憶装置102に格納する。
変換部130は、セッション情報SESをエントリ設定データENTに変換する機能を有している。上述の通り、アプライアンス20は、セッションテーブル22を参照することによって、あるフローに属するパケットに対して所定のパケット処理を実施する。そのセッションテーブル22の内容をスイッチ10のフローテーブル12に反映させることができれば、スイッチ10は、同一フローに属するパケットに対して同じパケット処理を行うことができるはずである。すなわち、アプライアンス20が受信パケットに対して行っていた所定のパケット処理を、スイッチ10に肩代わりさせることができる。そのために、変換部130は、セッション情報SESを記憶装置102から読み出し、そのセッション情報SESに応じたエントリ設定データENTを作成する。作成されるエントリ設定データENTは、アプライアンス20と同じパケット処理を実現するエントリの設定を、スイッチ10に対して指示する。変換部130は、作成したエントリ設定データENTを記憶装置102に格納する。
2.処理フロー
以下、本実施の形態に係るネットワーク制御処理をより詳細に説明する。
例として、図5で示される状態を考える。図5において、第1アプライアンス20−1はアクティブなアプライアンス20であり、一方、第2アプライアンス20−2はスタンバイ状態にある。スイッチ10のフローテーブル12は、「アプライアンス20宛てのパケットを第1アプライアンス20−1に転送すること」を指定するエントリを含んでいる。フローFLOW0は、現在アプライアンス20によって処理されている既存フローであり、当該既存フローFLOW0に属するパケットの宛先はアプライアンス20である。スイッチ10は、既存フローFLOW0に属するパケットを受け取ると、フローテーブル12中のマッチエントリに従って、受信パケットを第1アプライアンス20−1に転送する。第1アプライアンス20−1は、既存フローFLOW0に属するパケットを受け取り、セッションテーブル22に従って、当該受信パケットに対して所定のパケット処理(ロードバランサとしての処理、ファイヤーウォールとしての処理、等)を実施する。
ここで、使用するアプライアンス20を、第1アプライアンス20−1から第2アプライアンス20−2に切り替えることを考える。つまり、第1アプライアンス20−1を保守などのために停止させ、別の第2アプライアンス20−2にその機能を移行することを考える。図6は、その場合の処理を示すフローチャートである。
2−1.収集処理(ステップS10)
まず、コントローラ100は、「収集処理」を行う(ステップS10)。図7及び図2を参照して、収集処理を説明する。
ステップS11:
コントローラ100は、アプライアンス20宛のパケットを第1アプライアンス20−1ではなくコントローラ100に集めるための処理を行う。そのために、コントローラ100のスイッチ制御部110は、“転送エントリ”の設定を指示するエントリ設定データENT0を作成する。その転送エントリは、「アプライアンス20宛てのパケットをコントローラ100に転送すること」を指定する。スイッチ制御部110は、そのエントリ設定データENT0をスイッチ10に送信する。すなわち、スイッチ制御部110は、スイッチ10に対して、転送エントリをフローテーブル12に設定するよう指示する。
スイッチ10のコントローラ用インターフェース13は、コントローラ100からエントリ設定データENT0を受け取る。コントローラ用インターフェース13は、そのエントリ設定データENT0に従って、上記転送エントリをフローテーブル12に設定する。その後、スイッチ処理部11は、アプライアンス20宛てのパケットを受け取ると、当該転送エントリに従って、受信パケットをコントローラ100に転送する。少なくとも既存フローFLOW0に属するパケットは、第1アプライアンス20−1ではなくコントローラ100に転送されることになる。このパケットに対するコントローラ100の処理については、後述する(第2−4節参照)。
ステップS12:
また、コントローラ100は、移行元の第1アプライアンス20−1からセッション情報SESを取得する。より詳細には、コントローラ100のアプライアンス制御部120は、第1アプライアンス20−1に対して、セッション情報SESの送付を要求する。その要求に応答して、第1アプライアンス20−1のセッション情報送信部23は、自身のセッションテーブル22の内容を示すセッション情報SESを、コントローラ100に送信する。アプライアンス制御部120は、第1アプライアンス20−1からセッション情報SESを受け取る。そのセッション情報SESは、移行元の第1アプライアンス20−1が既存フローFLOW0に属するパケットに対して実施していたパケット処理に関する情報を含んでいる。
2−2.ショートカット処理(ステップS20)
次に、コントローラ100は、「ショートカット処理」を行う(ステップS20)。ショートカット処理とは、アプライアンス20がパケットに対して行っていた所定のパケット処理を、スイッチ10に肩代わりさせることである。つまり、ショートカット処理とは、アプライアンス20を介することなく、アプライアンス20と同等のパケット処理をスイッチ10に行わせることである。図8及び図2を参照して、ショートカット処理を説明する。
ステップS21:
移行元の第1アプライアンス20−1が扱っていた既存フロー(既存セッション)の各々に関して、ショートカット処理が行われる。ここでは、代表として、上述の既存フローFLOW0に関するショートカット処理を説明する。コントローラ100は、既存フローFLOW0に関して、次のような処理を行う(ステップS22、S23)。
ステップS22:
コントローラ100の変換部130は、既出のステップS12で取得したセッション情報SESに基いて、“第1エントリ”の設定を指示する第1エントリ設定データENT1を作成する。その第1エントリは、「既存フローFLOW0に属するパケットに対して、第1アプライアンス20−1と同じパケット処理を実施すること」を指定する。既存フローFLOW0のフロー識別情報は、セッション情報SESから分かる。また、第1アプライアンス20−1が既存フローFLOW0に属するパケットに対して行っていたパケット処理も、セッション情報SESから分かる。そのパケット処理(エントリのアクション)としてパケット転送が必要な場合、接続情報CONを参照することによって出力ポートを把握することができる。すなわち、変換部130は、セッション情報SES及び接続情報CONを参照することによって、セッション情報SESに応じた第1エントリ設定データENT1を作成することができる。
ステップS23:
コントローラ100のスイッチ制御部110は、作成された第1エントリ設定データENT1をスイッチ10に送信する。すなわち、スイッチ制御部110は、スイッチ10に対して、上記第1エントリをフローテーブル12に設定するよう指示する。
スイッチ10のコントローラ用インターフェース13は、コントローラ100から第1エントリ設定データENT1を受け取る。コントローラ用インターフェース13は、その第1エントリ設定データENT1に従って、上記第1エントリをフローテーブル12に設定する。その後、スイッチ処理部11は、既存フローFLOW0に属するパケットを受け取ると、当該第1エントリに従って、第1アプライアンス20−1と同じパケット処理を当該受信パケットに対して行う。すなわち、既存フローFLOW0に属するパケットは、もはや第1アプライアンス20−1を経由することなく処理される。
2−3.切り替え処理(ステップS30)
次に、コントローラ100は、「切り替え処理」を行う(ステップS30)。図9及び図2を参照して、切り替え処理を説明する。この時点で、アクティブなアプライアンス20は、第2アプライアンス20−2に変更される。
ステップS31:
コントローラ100は、アプライアンス20宛の新規フローを移行先の第2アプライアンス20−2に転送するための処理を行う。そのために、コントローラ100のスイッチ制御部110は、“第2エントリ”の設定を指示する第2エントリ設定データENT2を作成する。その第2エントリは、「アプライアンス20宛てのパケット(但し、既存フローFLOW0以外の新規フローに属するパケット)を、第2アプライアンス20−2に転送すること」を指定する。スイッチ制御部110は、その第2エントリ設定データENT2をスイッチ10に送信する。すなわち、スイッチ制御部110は、スイッチ10に対して、第2エントリをフローテーブル12に設定するよう指示する。
スイッチ10のコントローラ用インターフェース13は、コントローラ100から第2エントリ設定データENT2を受け取る。コントローラ用インターフェース13は、その第2エントリ設定データENT2に従って、上記第2エントリをフローテーブル12に設定する。その後、スイッチ処理部11は、新規フローFLOW1に属するアプライアンス20宛てのパケットを受け取ると、当該第2エントリに従って、当該受信パケットを第2アプライアンス20−2に転送する。つまり、既存フローFLOW0と異なる新規フローFLOW1に属するパケットは、移行先の第2アプライアンス20−2に転送される。
2−4.一時パケット処理
上述のステップS11の結果、アプライアンス20宛てのパケットは、しばらくの間、コントローラ100に転送されることになる。コントローラ100は、その転送パケットに対して「一時パケット処理」を行う。この一時パケット処理は、上述のステップS10〜S30と並行して行われる。図10を参照して、一時パケット処理を説明する。
コントローラ100のスイッチ制御部110は、スイッチ10から転送パケットを受け取る(ステップS41)。スイッチ制御部110は、転送パケットのヘッダ情報と上述のセッション情報SESとに基いて、転送パケットが既存フローに属するか否かを判定する(ステップS42)。
転送パケットが既存フローに属する場合(ステップS43;Yes)、第1アプライアンス20−1と同等のパケット処理が実行される(ステップS44)。具体的には、スイッチ制御部110は、転送パケットをスイッチ10に返送し、更に、スイッチ10に対して「転送パケットに第1アプライアンス20−1と同じパケット処理を実施すること」を指示する。スイッチ10のコントローラ用インターフェース13は、コントローラ100からの指示に従って、転送パケットに対して第1アプライアンス20−1と同じパケット処理を実施する。あるいは、スイッチ制御部110は、上記ステップS23の完了後に、転送パケットをスイッチ10に返送してもよい。
一方、転送パケットが新規フローに属する場合(ステップS43;No)、当該パケットは第2アプライアンス20−2に転送される(ステップS45)。具体的には、スイッチ制御部110は、転送パケットをスイッチ10に返送し、更に、スイッチ10に対して「転送パケットを第2アプライアンス20−2に転送すること」を指示する。スイッチ10のコントローラ用インターフェース13は、コントローラ100からの指示に従って、転送パケットを第2アプライアンス20−2に出力する。
尚、ステップS42において、スイッチ制御部110はまず、転送パケットのSYNフラグをチェックしてもよい。SYNフラグが立っていれば、それは新規セッションを意味する。従って、その場合、スイッチ制御部110は直ちにステップS45を実行することができる。このことは、処理時間の短縮に寄与する。また、ステップS45により転送された新規フローのパケットについて、第2アプライアンスに転送することを指示するエントリを追加で設定してもよい。これにより、一度新規フローとして処理されたフローに属する後続パケットが再度コントローラ100に転送されないようにすることができる。このことは、コントローラ100の処理時間の短縮や負荷の軽減に寄与する。
2−5.効果
以上に説明されたように、本実施の形態によれば、ショートカット処理(ステップS20)が行われる。これにより、移行元の第1アプライアンス20−1が行っていた所定のパケット処理をスイッチ10に肩代わりさせ、既存フロー(既存セッション)を維持することが可能となる。そして、ショートカット処理(ステップS20)の完了時点で、第1アプライアンス20−1を経由する既存フローは無くなる。従って、その時点で、第1アプライアンス20−1をネットワークから切り離すことが可能となる。すなわち、第1アプライアンス20−1を利用する全てのセッションが終了するのを待つ必要はなく、また、不定期間のタイムアウトを設定する必要もない。予測可能な時間で、且つ、既存フローを切断することなく、第1アプライアンス20−1の動作を停止させることが可能である。
また、移行先の第2アプライアンス20−2は、移行元の第1アプライアンス20−1からセッション情報SESを受け取る機構を有していなくてもよい。従って、第1アプライアンス20−1と第2アプライアンス20−2のベンダーが互いに異なっていても、本発明を容易に実装することができる。
更に、アプライアンス20がネットワーク上に一つしか存在しない場合、新規セッションは利用できないが、ショートカット処理によって既存セッションをそのまま維持することも可能である。
3.具体例
以下、本実施の形態に係るアプライアンス切り替え処理の具体例を説明する。ここでは、図11に示されるようなネットワーク構成を考える。
図11において、アプライアンス20としてのロードバランサ20−1、20−2、及び実サーバとしてのサーバ200−1〜200−3が、スイッチ10に接続されている。ロードバランサ20−1はアクティブ状態であり、ロードバランサ20−2はスタンバイ状態である。ロードバランサ20では、仮想サーバに対応した仮想IPアドレスVIP1がTCPポート80でサービスされる。その仮想IPアドレスVIP1に対応する実サーバ群が、サーバ200−1〜200−3である。サーバ200−1、200−2、200−3のそれぞれのIPアドレスは、IP1、IP2、IP3であり、それぞれのMACアドレスはMAC1、MAC2、MAC3である。また、各サーバ200のサービスポートは、仮想サーバと同じTCPポート80となっている。クライアント300は、外部ネットワークからロードバランサ20が提供する仮想サーバを通じて、実サーバ200にアクセスする。
外部ネットワークと接続しているルータには、MACアドレスEXTによってロードバランサ20から到達可能である。また、実サーバ群200は、戻りパケットを処理させるためデフォルトゲートウェイとしてロードバランサ20を指定しており、そのIPアドレスはLBである。ロードバランサ20−1、20−2はそれぞれMACアドレスLB1、LB2をもつ。
図12は、スイッチ10のフローテーブル12の状態を示している。フローテーブル12中のアスタリスク(*)は任意であることを表す。エントリF1は、「ロードバランサ20(VIP1)宛てのパケットをロードバランサ20−1に転送すること」を指定している。エントリF2は、「サーバ200−1(IP1、MAC1)宛てのパケットをサーバ200−1に転送すること」を指定している。エントリF3は、「サーバ200−2(IP2、MAC2)宛てのパケットをサーバ200−2に転送すること」を指定している。エントリF4は、「サーバ200−3(IP3、MAC3)宛てのパケットをサーバ200−3に転送すること」を指定している。
クライアント300は、ロードバランサ20に対してTCP接続要求を行う。クライアント300から送出されるパケットの宛先IPアドレスはVIP1となっている。スイッチ10は、そのパケットを受信すると、図12で示されるフローテーブル12を参照する。このとき、エントリF1がヒットエントリとなるため、スイッチ10は、受信パケットをロードバランサ20−1に転送する。
ロードバランサ20−1は、そのパケットを受信し、当該フローを処理する実サーバとして例えばサーバ200−1を選択する。ロードバランサ20−1は、受信パケットに対してパケット処理を行う。具体的には、ロードバランサ20−1は、宛先IPアドレスをIP1に書き換え、宛先MACアドレスをMAC1に書き換えた後、当該パケットをサーバ200−1に向けて送信する。スイッチ10は、そのパケットを受信すると、図12で示されるフローテーブル12を参照する。このとき、エントリF2がヒットエントリとなるため、スイッチ10は、受信パケットをサーバ200−1に転送する。
サーバ200−1からクライアント300に対する応答パケットは、宛先IPアドレスと宛先ポート番号がクライアント300で、宛先MACアドレスはLB1となっている。ロードバランサ20−1は、送信元IPアドレスをVIP1に、宛先MACアドレスをEXTに書き換え、応答パケットを外部ネットワークに転送する。クライアント300はこれを受信する。
この状態において、アクティブなロードバランサ20を、ロードバランサ20−1からロードバランサ20−2に切り替えることを考える。
ステップS11:
コントローラ100は、“転送エントリ”の設定を指示するエントリ設定データENT0をスイッチ10に送信する。その結果、図13に示されるように、エントリF1は、「ロードバランサ20(VIP1)宛てのパケットをコントローラ100に転送すること」を指定するように書き換えられる。コントローラ100は、ロードバランサ20宛てのパケットを一時的に受け取り、上述の一時パケット処理を行う。
ステップS12:
また、コントローラ100は、移行元のロードバランサ20−1からセッション情報SESを取得する。そのセッション情報SESは、ロードバランサ20−1が受信パケットに対して行っていた上記パケット処理に関する情報を含んでいる。
ステップS20:
コントローラ100は、セッション情報SESに基いて、“第1エントリ”の設定を指示する第1エントリ設定データENT1を作成する。その第1エントリは、「既存フローに属するパケットに対して、ロードバランサ20−1と同じパケット処理を実施すること」を指定する。コントローラ100は、その第1エントリ設定データENT1をスイッチ10に送信する。スイッチ10は、その第1エントリ設定データENT1に従って、第1エントリをフローテーブル12に設定する。
図14は、ある1つの既存フロー(クライアントIPアドレス=CIP1、ポート番号=12345、宛先IPアドレス=VIP1、宛先ポート番号=80)に関する“第1エントリF5”が設定されたフローテーブル12を示している。第1エントリF5は、「当該既存フローに属するパケットに対して、宛先IPアドレスをIP1に書き換え、宛先MACアドレスをMAC1に書き換えた後、実サーバ200−1に転送すること」を指定している。この第1エントリF5は、エントリF1よりも高い優先度でフローテーブル12に設定される。その結果、当該既存フローに属するパケットは、ロードバランサ20−1を経由することなく、実サーバ200−1に直接送り届けられるようになる。尚、エントリF5’は、実サーバ200−1からクライアント300への戻りトラフィックのショートカットを実現するためのものである。このエントリF5’も、上記第1エントリF5と同様に設定される。
図15は、複数の異なる既存フローに対して、それぞれ第1エントリF5〜Fn及びF5’〜Fn’が設定された場合を示している。第1エントリF5〜Fn及びF5’〜Fn’の各々は、図14の場合と同様に設定される。
ステップS30:
コントローラ100は、“第2エントリ”の設定を指示する第2エントリ設定データENT2を作成する。その第2エントリは、「ロードバランサ20宛てのパケット(但し、既存フロー以外の新規フローに属するパケット)を、ロードバランサ20−2に転送すること」を指定する。コントローラ100は、その第2エントリ設定データENT2をスイッチ10に送信する。スイッチ10は、その第2エントリ設定データENT2に従って、第2エントリをフローテーブル12に設定する。
本例では、図16に示されるように、エントリF1が、「ロードバランサ20(VIP1)宛てのパケットをロードバランサ20−2に転送すること」を指定するように書き換えられる。その結果、既存フローに属するパケットは、上記第1エントリF5〜Fn、F5’〜Fn’に従って、ロードバランサ20−1を経由することなく処理され、一方、既存フロー以外の新規フローに属するパケットは、エントリF1に従って、ロードバランサ20−2に転送される。
このようにして、既存フローを切断することなく、アクティブなロードバランサ20を短時間で切り替えることが可能となる。ファイヤーウォールの場合も同様である。
尚、アクティブなロードバランサがロードバランサ20−2に切り替わると、ロードバランサ20−1のIPアドレス(VIP1およびLB)はロードバランサ20−2に引き継がれることになる。このIPアドレスに対応するMACアドレスがLB1からLB2に変化したことは、ARP(Address Resolution Protocol)の仕組みによってサーバ200にも伝えられる。
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
上記の実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
ネットワーク中に配置されたアプライアンス及びスイッチと、
前記アプライアンス及び前記スイッチに接続されたコントローラと
を備え、
前記スイッチは、フローテーブルを備え、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
前記アプライアンスとしての第1アプライアンスは、既存フローに属するパケットに対して第1パケット処理を実施し、
前記アプライアンスを前記第1アプライアンスから第2アプライアンスに切り替える場合、前記コントローラは、ショートカット処理を行った後、切り替え処理を行い、
前記ショートカット処理において、
前記コントローラは、前記スイッチに対して、第1エントリを前記フローテーブルに設定するように指示し、
前記第1エントリは、前記既存フローに属するパケットに対して前記第1パケット処理を実施することを指定し、
前記切り替え処理において、
前記コントローラは、前記スイッチに対して、第2エントリを前記フローテーブルに設定するように指示し、
前記第2エントリは、前記アプライアンス宛てのパケットであって前記既存フロー以外の新規フローに属するパケットを、前記第2アプライアンスに転送することを指定する
ネットワークシステム。
(付記2)
付記1に記載のネットワークシステムであって、
前記第1アプライアンスは、自身が処理するフローに関する情報を示すセッションテーブルを参照することによって、前記既存フローに属するパケットに対して前記第1パケット処理を実施し、
前記コントローラは、前記第1アプライアンスの前記セッションテーブルの内容を示すセッション情報を取得し、
前記コントローラは、前記セッション情報に基いて、前記スイッチに対して、前記第1エントリを前記フローテーブルに設定するように指示する
ネットワークシステム。
(付記3)
付記2に記載のネットワークシステムであって、
前記ショートカット処理の前に、前記コントローラは、前記スイッチに対して、転送エントリを前記フローテーブルに設定するように指示し、
前記転送エントリは、前記アプライアンス宛てのパケットを前記コントローラに転送することを指定する
ネットワークシステム。
(付記4)
付記3に記載のネットワークシステムであって、
前記スイッチから転送パケットを受け取った場合、前記コントローラは、前記転送パケットのヘッダ情報と前記セッション情報とに基いて、前記転送パケットが前記既存フローに属するか否かを判定し、その後、前記転送パケットを前記スイッチに返送し、
前記転送パケットが前記既存フローに属する場合、前記コントローラは、前記スイッチに対して、前記転送パケットに前記第1パケット処理を実施することを指示し、
前記転送パケットが前記既存フローに属さない場合、前記コントローラは、前記スイッチに対して、前記転送パケットを前記第2アプライアンスに転送することを指示する
ネットワークシステム。
(付記5)
ネットワーク中に配置されたアプライアンス及びスイッチに接続されるコントローラであって、
前記スイッチは、フローテーブルを備え、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
前記アプライアンスとしての第1アプライアンスは、既存フローに属するパケットに対して第1パケット処理を実施し、
前記コントローラは、処理装置を備え、
前記アプライアンスを前記第1アプライアンスから第2アプライアンスに切り替える場合、前記処理装置は、ショートカット処理を行った後、切り替え処理を行い、
前記ショートカット処理において、
前記処理装置は、前記スイッチに対して、第1エントリを前記フローテーブルに設定するように指示し、
前記第1エントリは、前記既存フローに属するパケットに対して前記第1パケット処理を実施することを指定し、
前記切り替え処理において、
前記処理装置は、前記スイッチに対して、第2エントリを前記フローテーブルに設定するように指示し、
前記第2エントリは、前記アプライアンス宛てのパケットであって前記既存フロー以外の新規フローに属するパケットを、前記第2アプライアンスに転送することを指定する
コントローラ。
(付記6)
アプライアンス及びスイッチが配置されたネットワークの制御方法であって、
前記スイッチは、フローテーブルを備え、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
前記アプライアンスとしての第1アプライアンスは、既存フローに属するパケットに対して第1パケット処理を実施し、
前記制御方法は、前記アプライアンスを前記第1アプライアンスから第2アプライアンスに切り替えることを含み、
前記切りえることは、
ショートカット処理を行うことと、
前記ショートカット処理の後に切り替え処理を行うことと
を含み、
前記ショートカット処理は、前記スイッチにおいて、第1エントリを前記フローテーブルに設定することを含み、
前記第1エントリは、前記既存フローに属するパケットに対して前記第1パケット処理を実施することを指定し、
前記切り替え処理は、前記スイッチにおいて、第2エントリを前記フローテーブルに設定することを含み、
前記第2エントリは、前記アプライアンス宛てのパケットであって前記既存フロー以外の新規フローに属するパケットを、前記第2アプライアンスに転送することを指定する
制御方法。
(付記7)
アプライアンス及びスイッチが配置されたネットワークの制御処理をコンピュータに実行させる制御プログラムであって、
前記スイッチは、フローテーブルを備え、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
前記アプライアンスとしての第1アプライアンスは、既存フローに属するパケットに対して第1パケット処理を実施し、
前記制御処理は、前記アプライアンスを前記第1アプライアンスから第2アプライアンスに切り替えることを含み、
前記切りえることは、
ショートカット処理を行うことと、
前記ショートカット処理の後に切り替え処理を行うことと
を含み、
前記ショートカット処理は、前記スイッチに対して、第1エントリを前記フローテーブルに設定するように指示することを含み、
前記第1エントリは、前記既存フローに属するパケットに対して前記第1パケット処理を実施することを指定し、
前記切り替え処理は、前記スイッチに対して、第2エントリを前記フローテーブルに設定するように指示することを含み、
前記第2エントリは、前記アプライアンス宛てのパケットであって前記既存フロー以外の新規フローに属するパケットを、前記第2アプライアンスに転送することを指定する
制御プログラム。
本出願は、2010年2月1日に出願された日本国特許出願2010−020391を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (7)

  1. ネットワーク中に配置されたアプライアンス及びスイッチと、
    前記アプライアンス及び前記スイッチに接続されたコントローラと
    を備え、
    前記スイッチは、フローテーブルを備え、
    前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
    前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
    前記アプライアンスとしての第1アプライアンスは、既存フローに属するパケットに対して第1パケット処理を実施し、
    前記アプライアンスを前記第1アプライアンスから第2アプライアンスに切り替える場合、前記コントローラは、ショートカット処理を行った後、切り替え処理を行い、
    前記ショートカット処理において、
    前記コントローラは、前記スイッチに対して、第1エントリを前記フローテーブルに設定するように指示し、
    前記第1エントリは、前記既存フローに属するパケットに対して前記第1パケット処理を実施することを指定し、
    前記切り替え処理において、
    前記コントローラは、前記スイッチに対して、第2エントリを前記フローテーブルに設定するように指示し、
    前記第2エントリは、前記アプライアンス宛てのパケットであって前記既存フロー以外の新規フローに属するパケットを、前記第2アプライアンスに転送することを指定する
    ネットワークシステム。
  2. 請求項1に記載のネットワークシステムであって、
    前記第1アプライアンスは、自身が処理するフローに関する情報を示すセッションテーブルを参照することによって、前記既存フローに属するパケットに対して前記第1パケット処理を実施し、
    前記コントローラは、前記第1アプライアンスの前記セッションテーブルの内容を示すセッション情報を取得し、
    前記コントローラは、前記セッション情報に基いて、前記スイッチに対して、前記第1エントリを前記フローテーブルに設定するように指示する
    ネットワークシステム。
  3. 請求項2に記載のネットワークシステムであって、
    前記ショートカット処理の前に、前記コントローラは、前記スイッチに対して、転送エントリを前記フローテーブルに設定するように指示し、
    前記転送エントリは、前記アプライアンス宛てのパケットを前記コントローラに転送することを指定する
    ネットワークシステム。
  4. 請求項3に記載のネットワークシステムであって、
    前記スイッチから転送パケットを受け取った場合、前記コントローラは、前記転送パケットのヘッダ情報と前記セッション情報とに基いて、前記転送パケットが前記既存フローに属するか否かを判定し、その後、前記転送パケットを前記スイッチに返送し、
    前記転送パケットが前記既存フローに属する場合、前記コントローラは、前記スイッチに対して、前記転送パケットに前記第1パケット処理を実施することを指示し、
    前記転送パケットが前記既存フローに属さない場合、前記コントローラは、前記スイッチに対して、前記転送パケットを前記第2アプライアンスに転送することを指示する
    ネットワークシステム。
  5. ネットワーク中に配置されたアプライアンス及びスイッチに接続されるコントローラであって、
    前記スイッチは、フローテーブルを備え、
    前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
    前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
    前記アプライアンスとしての第1アプライアンスは、既存フローに属するパケットに対して第1パケット処理を実施し、
    前記コントローラは、処理装置を備え、
    前記アプライアンスを前記第1アプライアンスから第2アプライアンスに切り替える場合、前記処理装置は、ショートカット処理を行った後、切り替え処理を行い、
    前記ショートカット処理において、
    前記処理装置は、前記スイッチに対して、第1エントリを前記フローテーブルに設定するように指示し、
    前記第1エントリは、前記既存フローに属するパケットに対して前記第1パケット処理を実施することを指定し、
    前記切り替え処理において、
    前記処理装置は、前記スイッチに対して、第2エントリを前記フローテーブルに設定するように指示し、
    前記第2エントリは、前記アプライアンス宛てのパケットであって前記既存フロー以外の新規フローに属するパケットを、前記第2アプライアンスに転送することを指定する
    コントローラ。
  6. アプライアンス及びスイッチが配置されたネットワークの制御方法であって、
    前記スイッチは、フローテーブルを備え、
    前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
    前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
    前記アプライアンスとしての第1アプライアンスは、既存フローに属するパケットに対して第1パケット処理を実施し、
    前記制御方法は、前記アプライアンスを前記第1アプライアンスから第2アプライアンスに切り替えることを含み、
    前記切りえることは、
    ショートカット処理を行うことと、
    前記ショートカット処理の後に切り替え処理を行うことと
    を含み、
    前記ショートカット処理は、前記スイッチにおいて、第1エントリを前記フローテーブルに設定することを含み、
    前記第1エントリは、前記既存フローに属するパケットに対して前記第1パケット処理を実施することを指定し、
    前記切り替え処理は、前記スイッチにおいて、第2エントリを前記フローテーブルに設定することを含み、
    前記第2エントリは、前記アプライアンス宛てのパケットであって前記既存フロー以外の新規フローに属するパケットを、前記第2アプライアンスに転送することを指定する
    制御方法。
  7. アプライアンス及びスイッチが配置されたネットワークの制御処理をコンピュータに実行させる制御プログラムが記録された記録媒体であって、
    前記スイッチは、フローテーブルを備え、
    前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
    前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
    前記アプライアンスとしての第1アプライアンスは、既存フローに属するパケットに対して第1パケット処理を実施し、
    前記制御処理は、前記アプライアンスを前記第1アプライアンスから第2アプライアンスに切り替えることを含み、
    前記切りえることは、
    ショートカット処理を行うことと、
    前記ショートカット処理の後に切り替え処理を行うことと
    を含み、
    前記ショートカット処理は、前記スイッチに対して、第1エントリを前記フローテーブルに設定するように指示することを含み、
    前記第1エントリは、前記既存フローに属するパケットに対して前記第1パケット処理を実施することを指定し、
    前記切り替え処理は、前記スイッチに対して、第2エントリを前記フローテーブルに設定するように指示することを含み、
    前記第2エントリは、前記アプライアンス宛てのパケットであって前記既存フロー以外の新規フローに属するパケットを、前記第2アプライアンスに転送することを指定する
    記録媒体。
JP2011551858A 2010-02-01 2011-01-25 ネットワークシステム、コントローラ、ネットワーク制御方法 Expired - Fee Related JP5648926B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011551858A JP5648926B2 (ja) 2010-02-01 2011-01-25 ネットワークシステム、コントローラ、ネットワーク制御方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010020391 2010-02-01
JP2010020391 2010-02-01
PCT/JP2011/051360 WO2011093288A1 (ja) 2010-02-01 2011-01-25 ネットワークシステム、コントローラ、ネットワーク制御方法
JP2011551858A JP5648926B2 (ja) 2010-02-01 2011-01-25 ネットワークシステム、コントローラ、ネットワーク制御方法

Publications (2)

Publication Number Publication Date
JPWO2011093288A1 JPWO2011093288A1 (ja) 2013-06-06
JP5648926B2 true JP5648926B2 (ja) 2015-01-07

Family

ID=44319275

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011551858A Expired - Fee Related JP5648926B2 (ja) 2010-02-01 2011-01-25 ネットワークシステム、コントローラ、ネットワーク制御方法

Country Status (3)

Country Link
US (1) US20110295991A1 (ja)
JP (1) JP5648926B2 (ja)
WO (1) WO2011093288A1 (ja)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8413155B2 (en) 2004-03-13 2013-04-02 Adaptive Computing Enterprises, Inc. System and method for a self-optimizing reservation in time of compute resources
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
WO2006053093A2 (en) 2004-11-08 2006-05-18 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
WO2006107531A2 (en) 2005-03-16 2006-10-12 Cluster Resources, Inc. Simple integration of an on-demand compute environment
CA2603577A1 (en) 2005-04-07 2006-10-12 Cluster Resources, Inc. On-demand access to compute resources
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US9054990B2 (en) 2009-10-30 2015-06-09 Iii Holdings 2, Llc System and method for data center security enhancements leveraging server SOCs or server fabrics
US9876735B2 (en) * 2009-10-30 2018-01-23 Iii Holdings 2, Llc Performance and power optimized computer system architectures and methods leveraging power optimized tree fabric interconnect
US9077654B2 (en) 2009-10-30 2015-07-07 Iii Holdings 2, Llc System and method for data center security enhancements leveraging managed server SOCs
US9069929B2 (en) 2011-10-31 2015-06-30 Iii Holdings 2, Llc Arbitrating usage of serial port in node card of scalable and modular servers
US9465771B2 (en) 2009-09-24 2016-10-11 Iii Holdings 2, Llc Server on a chip and node cards comprising one or more of same
US8599863B2 (en) 2009-10-30 2013-12-03 Calxeda, Inc. System and method for using a multi-protocol fabric module across a distributed server interconnect fabric
US20130107444A1 (en) 2011-10-28 2013-05-02 Calxeda, Inc. System and method for flexible storage and networking provisioning in large scalable processor installations
US20110103391A1 (en) 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
US9311269B2 (en) 2009-10-30 2016-04-12 Iii Holdings 2, Llc Network proxy for high-performance, low-power data center interconnect fabric
US9648102B1 (en) 2012-12-27 2017-05-09 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9680770B2 (en) 2009-10-30 2017-06-13 Iii Holdings 2, Llc System and method for using a multi-protocol fabric module across a distributed server interconnect fabric
EP2642700A4 (en) * 2010-11-18 2017-09-27 Nec Corporation Closed-path formation forestalling system and closed-path formation forestalling method
CN103314557B (zh) * 2011-01-17 2017-01-18 日本电气株式会社 网络系统、控制器、交换机和业务监控方法
WO2013147193A1 (ja) * 2012-03-30 2013-10-03 日本電気株式会社 ネットワークアプライアンス冗長化システム、制御装置、ネットワークアプライアンス冗長化方法及びプログラム
WO2013183231A1 (ja) * 2012-06-06 2013-12-12 日本電気株式会社 通信システム、通信制御方法、通信中継システム、及び、通信中継制御方法
CN107483574B (zh) * 2012-10-17 2021-05-28 阿里巴巴集团控股有限公司 一种负载均衡下的数据交互系统、方法及装置
JP5860423B2 (ja) * 2013-02-18 2016-02-16 日本電信電話株式会社 キャリア網仮想化システム及び方法
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US9426060B2 (en) * 2013-08-07 2016-08-23 International Business Machines Corporation Software defined network (SDN) switch clusters having layer-3 distributed router functionality
JP6053032B2 (ja) * 2013-12-11 2016-12-27 日本電信電話株式会社 通信制御装置、通信制御方法及び通信制御プログラム
CN104734988B (zh) * 2013-12-23 2018-10-30 杭州华为数字技术有限公司 软件定义网络中路由控制的方法和开放流控制器
US9560124B2 (en) * 2014-05-13 2017-01-31 Google Inc. Method and system for load balancing anycast data traffic
US9774537B2 (en) 2014-09-30 2017-09-26 Nicira, Inc. Dynamically adjusting load balancing
US11722367B2 (en) * 2014-09-30 2023-08-08 Nicira, Inc. Method and apparatus for providing a service with a plurality of service nodes
US10516568B2 (en) 2014-09-30 2019-12-24 Nicira, Inc. Controller driven reconfiguration of a multi-layered application or service model
US9497123B2 (en) * 2014-12-18 2016-11-15 Telefonaktiebolaget L M Ericsson (Publ) Method and system for load balancing in a software-defined networking (SDN) system upon server reconfiguration
US10594743B2 (en) 2015-04-03 2020-03-17 Nicira, Inc. Method, apparatus, and system for implementing a content switch
WO2017068618A1 (ja) * 2015-10-19 2017-04-27 三菱電機株式会社 経路制御装置及びネットワーク
CN108234422B (zh) * 2016-12-21 2020-03-06 新华三技术有限公司 资源调度方法及装置
US10805181B2 (en) 2017-10-29 2020-10-13 Nicira, Inc. Service operation chaining
US11012420B2 (en) 2017-11-15 2021-05-18 Nicira, Inc. Third-party service chaining using packet encapsulation in a flow-based forwarding element
US10797910B2 (en) 2018-01-26 2020-10-06 Nicira, Inc. Specifying and utilizing paths through a network
US10659252B2 (en) 2018-01-26 2020-05-19 Nicira, Inc Specifying and utilizing paths through a network
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US10728174B2 (en) 2018-03-27 2020-07-28 Nicira, Inc. Incorporating layer 2 service between two interfaces of gateway device
US10944673B2 (en) 2018-09-02 2021-03-09 Vmware, Inc. Redirection of data messages at logical network gateway
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US11042397B2 (en) 2019-02-22 2021-06-22 Vmware, Inc. Providing services with guest VM mobility
US11283717B2 (en) 2019-10-30 2022-03-22 Vmware, Inc. Distributed fault tolerant service chain
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11223494B2 (en) 2020-01-13 2022-01-11 Vmware, Inc. Service insertion for multicast traffic at boundary
US11153406B2 (en) 2020-01-20 2021-10-19 Vmware, Inc. Method of network performance visualization of service function chains
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11368387B2 (en) 2020-04-06 2022-06-21 Vmware, Inc. Using router as service node through logical service plane
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005057461A (ja) * 2003-08-04 2005-03-03 Nippon Telegr & Teleph Corp <Ntt> 冗長化システムの切り替え方法
JP2008199081A (ja) * 2007-02-08 2008-08-28 Hitachi Ltd ファイアウォール装置およびファイアウォールシステム
JP2009049640A (ja) * 2007-08-17 2009-03-05 Oki Electric Ind Co Ltd 冗長化ゲートウェイシステムのためのネットワークスイッチ装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751191B1 (en) * 1999-06-29 2004-06-15 Cisco Technology, Inc. Load sharing and redundancy scheme
US6826613B1 (en) * 2000-03-15 2004-11-30 3Com Corporation Virtually addressing storage devices through a switch
US7743166B2 (en) * 2003-04-04 2010-06-22 Ellacoya Networks, Inc. Scaleable flow-based application and subscriber traffic control
JP2010141617A (ja) * 2008-12-11 2010-06-24 Fujitsu Ltd 現用予備系切替時のセッションの救済方法及び切替制御サーバ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005057461A (ja) * 2003-08-04 2005-03-03 Nippon Telegr & Teleph Corp <Ntt> 冗長化システムの切り替え方法
JP2008199081A (ja) * 2007-02-08 2008-08-28 Hitachi Ltd ファイアウォール装置およびファイアウォールシステム
JP2009049640A (ja) * 2007-08-17 2009-03-05 Oki Electric Ind Co Ltd 冗長化ゲートウェイシステムのためのネットワークスイッチ装置

Also Published As

Publication number Publication date
US20110295991A1 (en) 2011-12-01
JPWO2011093288A1 (ja) 2013-06-06
WO2011093288A1 (ja) 2011-08-04

Similar Documents

Publication Publication Date Title
JP5648926B2 (ja) ネットワークシステム、コントローラ、ネットワーク制御方法
JP5477603B2 (ja) コンピュータシステム、及びコンピュータシステムにおける通信方法
JP6004405B2 (ja) コントローラでネットワークパケット転送を管理するシステム及び方法
JP5645139B2 (ja) ネットワークシステム、コントローラ、ネットワーク制御方法
US8676980B2 (en) Distributed load balancer in a virtual machine environment
JP5673557B2 (ja) ネットワークシステム、コントローラ、ネットワーク制御方法
JP5382451B2 (ja) フロントエンドシステム、フロントエンド処理方法
US9807016B1 (en) Reducing service disruption using multiple virtual IP addresses for a service load balancer
JP5757552B2 (ja) コンピュータシステム、コントローラ、サービス提供サーバ、及び負荷分散方法
JP5861772B2 (ja) ネットワークアプライアンス冗長化システム、制御装置、ネットワークアプライアンス冗長化方法及びプログラム
WO2011087085A1 (ja) 計算機、ネットワーク接続切替え方法およびプログラム
KR20210038686A (ko) 패킷 처리 방법 및 장치, 및 관련 디바이스들
WO2019000434A1 (zh) 一种数据处理方法、网络接口卡及服务器
JP2017506025A (ja) ネットワークサービス挿入を実行するシステム及び方法
JP6752141B2 (ja) パケットを処理するための方法およびフォワーダ
JP2018515050A (ja) パケット転送
JP5438624B2 (ja) 通信システム、制御サーバ、フロー制御方法およびそのプログラム
JP2011159247A (ja) ネットワークシステム、コントローラ、ネットワーク制御方法
US9509600B1 (en) Methods for providing per-connection routing in a virtual environment and devices thereof
Shao et al. Accessing Cloud with Disaggregated {Software-Defined} Router
US20080069106A1 (en) Communication apparatus
CN117397232B (zh) 用于无代理协议的方法、系统
JP6718739B2 (ja) 通信装置および通信方法
KR101538667B1 (ko) 네트워크 시스템 및 네트워크 제어 방법
JP7107153B2 (ja) マルウェア検査支援プログラム、マルウェア検査支援方法および通信装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140925

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141030

R150 Certificate of patent or registration of utility model

Ref document number: 5648926

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees