JP5382451B2 - フロントエンドシステム、フロントエンド処理方法 - Google Patents

フロントエンドシステム、フロントエンド処理方法 Download PDF

Info

Publication number
JP5382451B2
JP5382451B2 JP2010017960A JP2010017960A JP5382451B2 JP 5382451 B2 JP5382451 B2 JP 5382451B2 JP 2010017960 A JP2010017960 A JP 2010017960A JP 2010017960 A JP2010017960 A JP 2010017960A JP 5382451 B2 JP5382451 B2 JP 5382451B2
Authority
JP
Japan
Prior art keywords
packet
switch
query
controller
flow table
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
JP2010017960A
Other languages
English (en)
Other versions
JP2011160041A (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 JP2010017960A priority Critical patent/JP5382451B2/ja
Priority to EP11736941A priority patent/EP2530886A1/en
Priority to US13/575,919 priority patent/US8863269B2/en
Priority to CN201180007734.7A priority patent/CN102763382B/zh
Priority to PCT/JP2011/051135 priority patent/WO2011093228A1/ja
Publication of JP2011160041A publication Critical patent/JP2011160041A/ja
Application granted granted Critical
Publication of JP5382451B2 publication Critical patent/JP5382451B2/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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/355Application aware switches, e.g. for HTTP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、フロントエンドシステムに関し、特に複数の中継機器が混在するフロントエンドシステムに関する。
企業等の組織内におけるネットワークシステムでは、OSI参照モデルのネットワーク層(第3層)以上のデータを認識し、そのデータを基にパケットの行き先を制御するルーティングが行われている。このようなネットワークシステム上に存在するスイッチは、サポートするOSI参照モデルの層(レイヤ)ごとに、細かく分類されている。主な種別としては、ネットワーク層(第3層)のデータを読むL3スイッチ(レイヤ3スイッチ)、トランスポート層(第4層)のデータを読むL4スイッチ(レイヤ4スイッチ)、アプリケーション層(第7層)のデータを読むL7スイッチ(レイヤ7スイッチ)がある。L7スイッチは、アプリケーションスイッチと呼ばれることもある。
L3スイッチは、LAN(Local Area Network)の中核機器として、ルータの持つパケットの転送機能をハードウエア化し、大幅に高速化したネットワーク機器である。L3スイッチは、従来のスイッチであるL2スイッチ(レイヤ2スイッチ)が進化して生まれた。L2スイッチは、MACアドレス(Media Access Control address)を基にLANフレームを中継する機器である。これに対して、L3スイッチは、IPアドレス(Internet Protocol Address)を基に中継先を決めるルータ機能も兼ね備える。つまり、L3スイッチは、L2スイッチとルータが1台になった装置である。
L4スイッチは、TCP(Transmission Control Protocol)やUDP(User Datagram Protocol)等のトランスポート層(第4層)レベルのプロトコルを認識し、ネットワーク層(第3層)を通して送られてきたデータの整序や誤り訂正、及び再送要求を行い、データ転送の信頼性を確保する。
L7スイッチは、HTTP(HyperText Transfer Protocol)やFTP(File Transfer Protocol)等のアプリケーション層レベルのプロトコルを認識し、パケットの具体的な通信内容を基に行き先を制御することができる。
また、L7スイッチと同じアプリケーション層(第7層)では、帯域制御装置によりパケットの帯域制御を行うことができる。更に、アプリケーション層レベルで、ファイアウォール(FW:FireWall)によりパケットの通過を制限することや、ロードバランサ(LB:Load Balancer(負荷分散装置))によりロードバランシングや冗長化を行うこともできる。
しかし、企業等の組織内における今までのネットワーク構成では、帯域制御装置や、ファイアウォール(FW)や、ロードバランサ(LB)として、専用のアプライアンス(appliance)が必要であった。また、インターネットからルータがパケットを受信してから端末に当該パケットが到着するまでの間に、これらの専用のアプライアンスにより、段階的に、QoS(Quality of Service)確保を目的とした帯域制御(bandwidth control)や、ファイアウォール(FW)による侵入防止や、ロードバランシングが行われていた。
例えば、図1に示すように、今までのネットワーク構成では、ルータがインターネットからパケットを受信し(L3)、当該パケットを帯域制御装置に転送し(L7)、帯域制御装置が行った帯域制御に従って当該パケットを第1のL3スイッチに転送し(L3)、第1のL3スイッチが当該パケットをファイアウォール(FW)に転送し(L7)、ファイアウォール(FW)が侵入を許可すれば当該パケットを第2のL3スイッチに転送し(L3)、第2のL3スイッチが当該パケットをロードバランサ(LB)に転送し(L7)、ロードバランサ(LB)が行ったロードバランシングに従って当該パケットをL2スイッチに転送し(L2)、L2スイッチが配下の端末に当該パケットを転送していた。
そのため、L3スイッチで受信したパケットであっても、帯域制御や、侵入防止や、ロードバランシングを行うため、その都度、L7データを参照したり、L7スイッチにアクセスしたりする必要があり、データコピー等によるプロトコルオーバーヘッドが多発していた。
なお、ファイアウォール(FW)に関する先行技術が非特許文献1に開示されている。また、ロードバランサ(LB)に関する先行技術が非特許文献2に開示されている。
"Delegating Network Security With More Information" Jad Naous, Ryan Stutsman, David Mazieres, Nick McKeown, Nickolai Zeldovich. <http://www.scs.stanford.edu/〜stutsman/papers/wren27−naous.pdf> "Plug−n−Serve: Load−Balancing Web Traffic using OpenFlow" Nikhil Handigol, Srinivasan Seetharaman†, Mario Flajslik, Nick McKeown, Ramesh Johari. <http://conferences.sigcomm.org/sigcomm/2009/demos/sigcomm−pd−2009−final26.pdf>
本発明の目的は、図2に示すように、外部ネットワークの出入口となるスイッチの近傍に、L7(レイヤ7)レベルのプロトコルを認識するファイアウォール(FW)やロードバランサ(LB)を併せ持つフロントエンドプロセッサ(FEP:Front End Processor)を設け、L7(レイヤ7)処理を一元化したフロントエンドシステムを提供することである。
本発明のフロントエンドシステムは、パケットを中継するスイッチと、スイッチを制御して通信新経路を決定するコントローラと、スイッチを介してコントローラと接続するフロントエンドプロセッサとを具備する。フロントエンドプロセッサは、ディスパッチャと、ファイアウォールと、ロードバランサとを具備する。当該ディスパッチャは、パケットを収集し、収集されたパケット群から必要な情報のみを抽出してレイヤ7レベルのプロトコルに対応したクエリパケットを生成し、クエリパケットに対して適用ポリシーに基づくポリシーチェックを行い、クエリパケットを宛先に送信する。当該ファイアウォールは、レイヤ7レベルのプロトコルを認識し、クエリパケットの通過の許否を決定する。当該ロードバランサは、レイヤ7レベルのプロトコルを認識し、ネットワークの負荷状況に応じてクエリパケットのロードバランシングを行い、クエリパケットが最初のクエリパケットである場合、スイッチを介してクエリパケットをコントローラに送信し、クエリパケットの経路を確認する。
本発明のフロントエンド処理方法では、フロントエンドプロセッサを、パケットを中継するスイッチを介して、スイッチを制御して通信新経路を決定するコントローラと接続する。また、フロントエンドプロセッサ上で、ディスパッチャにより、パケットを収集し、収集されたパケット群から必要な情報のみを抽出してレイヤ7レベルのプロトコルに対応したクエリパケットを生成する。また、フロントエンドプロセッサ上で、レイヤ7レベルのプロトコルを認識するファイアウォールにより、クエリパケットの通過の許否を決定する。また、フロントエンドプロセッサ上で、レイヤ7レベルのプロトコルを認識するロードバランサにより、ネットワークの負荷状況に応じてクエリパケットのロードバランシングを行い、クエリパケットが最初のクエリパケットである場合、スイッチを介してクエリパケットをコントローラに送信し、クエリパケットの経路を確認する。また、フロントエンドプロセッサ上で、ディスパッチャにより、クエリパケットに対して適用ポリシーに基づくポリシーチェックを行い、クエリパケットを宛先に送信する。
L7(レイヤ7)処理の一元化を実現することで、エンド・ツー・エンド(End to End)での性能向上を図ることができ、ポリシー毎に柔軟にネットワークを構築することができる。
従来のネットワークシステム(専用のアプライアンスを配置)の構成を示す図である。 本発明に係るネットワークシステムの構成を示す図である。 本発明のフロントエンドシステムの基本構成を示す図である。 ファイアウォール:FW(L4)、ロードバランサ:LB(L4)の場合(実施例1)のネットワークシステムの構成を示す図である。 FW(L4)、LB(L4)の場合(実施例1)のネットワークシステムにおけるパケットの流れ及び各機器の動作を示すデータフロー図である。 FW(L4)、LB(L4)の場合(実施例1)のフロントエンドシステムの基本構成を示す図である。 FW(L7)、LB(L7)の場合(実施例2)のネットワークシステムの構成を示す図である。 FW(L7)、LB(L7)の場合(実施例2)のネットワークシステムにおけるパケットの流れ及び各機器の動作を示すデータフロー図である。 FW(L7)、LB(L7)の場合(実施例2)のフロントエンドシステムの基本構成を示す図である。 FW(L7)、LB(L4)の場合(実施例3)のネットワークシステムの構成を示す図である。 FW(L7)、LB(L4)の場合(実施例3)のネットワークシステムにおけるパケットの流れ及び各機器の動作を示すデータフロー図である。 FW(L7)、LB(L4)の場合(実施例3)のフロントエンドシステムの基本構成を示す図である。 FW(L4)、LB(L7)の場合(実施例4)のネットワークシステムの構成を示す図である。 FW(L4)、LB(L7)の場合(実施例4)のネットワークシステムにおけるパケットの流れ及び各機器の動作を示すデータフロー図である。 FW(L4)、LB(L7)の場合(実施例4)のフロントエンドシステムの基本構成を示す図である。 FW機能とLB機能の組み合わせのイメージを示す図である。 ポリシーDBのイメージを示す図である。 フローテーブルのイメージを示す図である。 クエリ(Query)パケットのイメージを示す図である。 FEPによるバランシング処理のイメージを示す図である。
<実施形態>
以下に、本発明の実施形態について添付図面を参照して説明する。
[基本構成]
図3に示すように、本発明のフロントエンドシステムは、スイッチ10と、コントローラ20と、フロントエンドプロセッサ(FEP:Front End Processor)30を備える。
スイッチ10は、ポート11と、ファイアウォール(FW)12と、ロードバランサ(LB)13を備える。
ポート11は、フローテーブル(Flow Table)111を有する。
コントローラ20は、オペレーティングシステム(OS:Operating System)21と、ファイアウォール(FW)22と、ロードバランサ(LB)23を備える。
オペレーティングシステム(OS)21は、ポリシーDB(DataBase)211を有する。
フロントエンドプロセッサ(FEP)30は、ディスパッチャ(dispatcher)31と、ファイアウォール(FW)32と、ロードバランサ(LB)33を備える。
ディスパッチャ31は、適用ポリシー311を有する。
ファイアウォール(FW)32は、フローテーブル321を有する。
ロードバランサ(LB)33は、フローテーブル331と、サーバ情報332と、セッション維持情報333を有する。
なお、ファイアウォール(FW)12及びファイアウォール(FW)22は、ファイアウォール(FW)32と同様の構成にしても良い。すなわち、ファイアウォール(FW)12やファイアウォール(FW)22も、フローテーブル331に相当する情報を有していても良い。
また、ロードバランサ(LB)13及びロードバランサ(LB)23は、ロードバランサ(LB)33と同様の構成にしても良い。すなわち、ロードバランサ(LB)13やロードバランサ(LB)23も、フローテーブル331、サーバ情報332、及びセッション維持情報333に相当する情報を有していても良い。
[構成の詳細な説明]
スイッチ10、コントローラ20、及びフロントエンドプロセッサ(FEP)30は、それぞれ複数でも良い。また、スイッチ10、コントローラ20、及びフロントエンドプロセッサ(FEP)30の各々は、計算機上に構築された仮想マシン(Virtual Machine(VM))環境でも良い。
ここでは、スイッチ10を介して、コントローラ20とフロントエンドプロセッサ(FEP)30が接続されている。なお、コントローラ20とフロントエンドプロセッサ(FEP)30は、一体化していても良い。コントローラ20とフロントエンドプロセッサ(FEP)30が一体化している場合、コントローラ20とフロントエンドプロセッサ(FEP)30は、スイッチ10を介さずに、直接的に通信可能である。
ポート11は、コントローラ20とフロントエンドプロセッサ(FEP)30に接続されている。また、ポート11は、インターネット等の外部ネットワークを介して、外部の通信装置に接続されている。ここでは、ポート11は、外部の通信装置、コントローラ20、及びフロントエンドプロセッサ(FEP)30の相互間でデータを転送する。
ファイアウォール(FW)12、ファイアウォール(FW)22、及びファイアウォール(FW)32は、外部ネットワークを通じて第三者が侵入し、データやプログラムの盗み見・改ざん・破壊等が行なわれることのないように、外部との境界を流れるデータを監視し、不正なアクセスを検出・遮断する機能を有する。
ロードバランサ(LB)13、ロードバランサ(LB)23、及びロードバランサ(LB)33は、外部ネットワークからの要求を一元的に管理し、同等の機能を持つ複数のサーバに要求を分散して転送する機能を有する。なお、ロードバランサ(LB)によるロードバランシングとの並列処理として、侵入防止システム(IPS:Intrusion Prevention System)によりサーバやネットワークへの不正侵入を阻止することもできる。
オペレーティングシステム(OS)21は、コントローラ20がパケットを受信した際、ネットワーク全体のトポロジー情報に従って、ファイアウォール(FW)やロードバランサ(LB)等の機能モジュールに通知する。
ディスパッチャ31は、実行可能なプロセスやタスク等に対してFEPの計算能力を割り当てる。ここでは、ディスパッチャ31は、受信したパケットに基づいてクエリ(Query)パケットを生成する。また、ディスパッチャ31は、自FEPや他のFEPの負荷状況を見て、比較的負荷の低いFEPに対して、ファイアウォール(FW)やロードバランサ(LB)等の機能モジュールの立ち上げを行い、生成されたクエリ(Query)パケットを振り分ける。また、ディスパッチャ31は、ファイアウォール(FW)やロードバランサ(LB)等の機能モジュールからクエリ(Query)パケットを受け取り、当該クエリ(Query)パケットのポリシーチェックを行った後、問題がなければ当該クエリ(Query)パケットを宛先に送信する。
フローテーブル111、フローテーブル321、及びフローテーブル331は、スイッチやノード毎のパス(フローエントリ)を格納したものである。フローとは、所定の規則(ルール)に適合するパケットに対して行うべき所定の処理(アクション)を定義したものである。フローのルールは、TCP/IP(Transmission Control Protocol/Internet Protocol)パケットのヘッダ領域に含まれる入出力ポート情報(Input/Output Port)、宛先アドレス(Destination Address)、送信元アドレス(Source Address)、宛先ポート番号(Destination Port)、送信元ポート番号(Source Port)のいずれか又は全てを用いた様々な組み合わせにより定義され、区別可能である。上記のアドレスには、MACアドレスやIPアドレスを含むものとする。なお、フローテーブル321とフローテーブル331は、同じフロントエンドプロセッサ(FEP)30内に存在する場合、同一物でも良い。
ポリシーDB211は、ネットワーク全体のトポロジー情報を格納する。
適用ポリシー311は、スイッチやノード毎のトポロジー情報を格納する。適用ポリシー311は、ポリシーDB211のトポロジー情報に従って設定される。
サーバ情報332は、パケット又はクエリ(Query)パケットの宛先となり、接続(コネクション)を確立する対象となる他の通信装置に関する情報を保持する。ここでは、サーバ情報332は、ネットワークを介して所定のサービスを提供するサーバのIPアドレス等を保持する。
セッション維持情報333は、フロントエンドプロセッサ(FEP)30を経由する経路の両端となる2つの通信装置の間、あるいはフロントエンドプロセッサ(FEP)30と他の通信装置の間で確立された接続(コネクション)におけるセッションに関する情報を保持する。セッションとは、コンピュータシステムやネットワーク通信において、接続/ログインしてから、切断/ログオフするまでの、一連の操作や通信のことを示す。
[基本処理]
ロントエンドプロセッサ(FEP)30のディスパッチャ31は、スイッチ10からパケットを受信する。その後、ディスパッチャ31は、受信したパケットに基づいてクエリ(Query)パケットを生成し、生成されたクエリ(Query)パケットを、ファイアウォール(FW)32及びロードバランサ(LB)33のうち少なくとも一方に対して送信する。
ファイアウォール(FW)32は、ディスパッチャ31あるいはロードバランサ(LB)33からクエリ(Query)パケットを受信した場合、フローテーブル321を参照し、フローテーブル321内に該当するフローが登録されているか確認する。フローテーブル321内に該当するフローが登録されている場合、ファイアウォール(FW)32は、そのフローに従い、当該クエリ(Query)パケットを通過させるか否か判断する。当該クエリ(Query)パケットを通過させる場合、ファイアウォール(FW)32は、当該クエリ(Query)パケットをディスパッチャ31あるいはロードバランサ(LB)33に送信する。当該クエリ(Query)パケットを通過させない場合、ファイアウォール(FW)32は、当該クエリ(Query)パケットを廃棄する。また、フローテーブル321内に該当するフローが登録されていない場合、ファイアウォール(FW)32は、当該クエリ(Query)パケットを最初のクエリ(1st(First) Query)パケットであるものと判断して、当該クエリ(Query)パケットを通過させてディスパッチャ31あるいはロードバランサ(LB)33に送信する。
ロードバランサ(LB)33は、ディスパッチャ31あるいはファイアウォール(FW)32からクエリ(Query)パケットを受信した場合、フローテーブル331を参照し、フローテーブル331内に該当するフローが登録されているか確認する。フローテーブル331内に該当するフローが登録されている場合、ロードバランサ(LB)33は、そのフローに従い、当該クエリ(Query)パケットをロードバランシングしてディスパッチャ31に送信する。また、フローテーブル331内に該当するフローが登録されていない場合、ロードバランサ(LB)33は、当該クエリ(Query)パケットを最初のクエリ(1st Query)パケットであるものと判断して、スイッチ10を介して、当該クエリ(Query)パケットをコントローラ20に送信する。なお、最初のクエリ(1st Query)パケットとは、以前に処理されたことのない未知のクエリ(Query)パケットという意味である。
スイッチ10のポート11は、通常のパケットやクエリ(Query)パケットを受信した場合、フローテーブル111を参照し、フローテーブル111内に該当するフローが登録されているか確認する。フローテーブル111内に該当するフローが登録されている場合、ポート11は、当該パケットに対するフローテーブル111内のフロー(ルール+アクション)の情報に従い、当該パケットを処理する。また、フローテーブル111内に一致するパケットが登録されてない場合、ポート11は、当該パケットを、一旦コントローラ20に送信する。ポート11が未知のパケットを一旦コントローラ20に送信する旨は、フローテーブル111内にフローとして予め登録しておいても良い。ここでは、ポート11は、フロントエンドプロセッサ(FEP)30からクエリ(Query)パケットを受信した場合、フローテーブル111を参照し、フローテーブル111内に該当するフローが登録されているか確認する。当該クエリ(Query)パケットは最初のクエリ(1st Query)パケットであり、フローテーブル111内に該当するフローが登録されていないため、ポート11は、当該クエリ(Query)パケットをコントローラ20に送信する。
コントローラ20のロードバランサ(LB)23は、スイッチ10を介して、フロントエンドプロセッサ(FEP)30からクエリ(Query)パケットを受信した場合、
当該クエリ(Query)パケットをファイアウォール(FW)22やロードバランサ(LB)23に送信して処理する。また、ロードバランサ(LB)23は、ファイアウォール(FW)22又はロードバランサ(LB)23での処理結果に応じて、ポート11のフローテーブル111と、ロードバランサ(LB)33のフローテーブル331と、ファイアウォール(FW)32のフローテーブル321に対して、当該クエリ(Query)パケットに関するフローを新たに登録する。例えば、ロードバランサ(LB)23は、各フローテーブルに当該クエリ(Query)パケットに関するフローを新たに登録する旨の制御命令を、スイッチ10やフロントエンドプロセッサ(FEP)30に送信する。なお、ロードバランサ(LB)23は、ファイアウォール(FW)32のフローテーブル321に対しては、直接的にフローを登録するのではなく、ロードバランサ(LB)33を介して間接的にフローを登録するようにしても良い。フローテーブル321とフローテーブル331が同一物であれば問題ない。更に、フロー登録の直後に(或いは同時に)、ロードバランサ(LB)23は、スイッチ10を介して、ロードバランサ(LB)23に当該クエリ(Query)パケットを返信する。
フロントエンドプロセッサ(FEP)30のロードバランサ(LB)33は、スイッチ10を介して、コントローラ20からクエリ(Query)パケットを受信した場合、フローテーブル331を参照し、フローテーブル331内に該当するフローが登録されているか確認する。ここでは、コントローラ20のロードバランサ(LB)23により、当該クエリ(Query)パケットに関するフローが既にフローテーブル331に登録されているため、ロードバランサ(LB)33は、当該クエリ(Query)パケットをディスパッチャ31に送信する。このとき、当該クエリ(Query)パケットがファイアウォール(FW)32を経由するようにしても良い。
ディスパッチャ31は、当該クエリ(Query)パケットに対して、適用ポリシー311に基づくポリシーチェックを行い、問題がなければ当該クエリ(Query)パケットを宛先に送信する。
[クエリ(Query)パケットの経路1:FW機能とLB機能の個別処理]
ファイアウォール機能(FW機能)とロードバランシング機能(LB機能)を個別に(並列処理で)使用する場合について説明する。この場合、ディスパッチャ31が、ファイアウォール(FW)32やロードバランサ(LB)23に対して、個別にクエリ(Query)パケットを送信し、それぞれから個別に結果を受け取る。そのため、クエリ(Query)パケットの経路は、「ディスパッチャ31→ファイアウォール(FW)32→ディスパッチャ31」と「ディスパッチャ31→ロードバランサ(LB)23(→コントローラ20→ロードバランサ(LB)33:不一致の場合)→ディスパッチャ31」の2系統となる。これら2系統の経路を通過する順番は、どちらが先でも良いし、同時でも良い。なお、ファイアウォール(FW)32がクエリ(Query)パケットを廃棄した場合は、「ファイアウォール(FW)32からの廃棄通知」、「ファイアウォール(FW)32から応答なし」等により、その旨をディスパッチャ31が把握し、それ以降の処理を行わない。
[クエリ(Query)パケットの経路2:FW機能とLB機能の連続処理]
ファイアウォール機能(FW機能)とロードバランシング機能(LB機能)を連続して(直列処理で)使用する場合について説明する。この場合、ディスパッチャ31が、ファイアウォール(FW)32及びロードバランサ(LB)23のいずれか一方に対してクエリ(Query)パケットを送信し、受信した側が処理後にクエリ(Query)パケットを他方(残りの一方)に対して送信し、その他方(残りの一方)が処理後にクエリ(Query)パケットをディスパッチャ31に送信する。そのため、クエリ(Query)パケットの経路は、「ディスパッチャ31→ファイアウォール(FW)32→ロードバランサ(LB)23(→コントローラ20→ロードバランサ(LB)23:不一致の場合)→ディスパッチャ31」、又は「ディスパッチャ31→ロードバランサ(LB)23(→コントローラ20→ロードバランサ(LB)23:不一致の場合)→ファイアウォール(FW)32→ディスパッチャ31」となる。
[他の処理例:基本処理の変更]
なお、上記では、ディスパッチャ31は、クエリ(Query)パケットを生成した後、クエリ(Query)パケットを、ファイアウォール(FW)32及びロードバランサ(LB)23に送信し、応答を受信してからポリシーチェックを行い、宛先に送信する例について説明している。しかし、実際には、ディスパッチャ31は、クエリ(Query)パケットを生成した後、直ちにポリシーチェックを行い、その後にクエリ(Query)パケットをファイアウォール(FW)32及びロードバランサ(LB)23に送信するようにしても良い。この場合、ファイアウォール(FW)32及びロードバランサ(LB)23のいずれかが、クエリ(Query)パケットを宛先に送信する。
[ハードウェア構成の例示]
なお、スイッチ10の例として、ルータ(router)、スイッチングハブ(switching hub)、ゲートウェイ(gateway)、プロキシ(proxy)等の中継機器が考えられる。スイッチ10は、マルチレイヤスイッチ(multi−layer switch)でも良い。但し、実際には、これらの例に限定されない。
また、コントローラ20及びフロントエンドプロセッサ(FEP)30の例として、PC(パソコン)、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機が考えられる。但し、実際には、これらの例に限定されない。
スイッチ10、コントローラ20、及びフロントエンドプロセッサ(FEP)30の各々は、通信機能を有する。通信機能を実現するためのハードウェアの例として、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(登録商標)、シリアル通信回線、データバス等が考えられる。但し、実際には、これらの例に限定されない。
ポート11、ファイアウォール(FW)12、ロードバランサ(LB)13、オペレーティングシステム(OS)21、ファイアウォール(FW)22、ロードバランサ(LB)23、ディスパッチャ31、ファイアウォール(FW)32、及びロードバランサ(LB)33の各々は、プログラムで駆動される処理装置等のハードウェアと、そのハードウェアを駆動して所望の処理を実行するソフトウェアと、そのソフトウェアや各種データを格納する記憶装置によって実現される。
上記の処理装置の例として、CPU(Central Processing Unit)、マイクロプロセッサ(microprocessor)、マイクロコントローラ、或いは、同様の機能を有する半導体集積回路(Integrated Circuit(IC))等が考えられる。但し、実際には、これらの例に限定されない。
上記の記憶装置の例として、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)等のリムーバブルディスクや記憶媒体(メディア)等が考えられる。但し、実際には、これらの例に限定されない。
<実施例>
図4A〜図7Cを参照して、様々な環境における本発明の実施例について説明する。
ここでは、本発明のフロントエンドシステムは、スイッチ(コアSW)10−1と、スイッチ(内蔵SW)10−2と、スイッチ(エッジSW)10−3と、コントローラ20と、フロントエンドプロセッサ(FEP)30と、クライアント100と、サーバ200を備える。
スイッチ(コアSW)10−1、スイッチ(内蔵SW)10−2、及びスイッチ(エッジSW)10−3の各々は、スイッチ10の一種である。スイッチ(コアSW)10−1、スイッチ(内蔵SW)10−2、並びにスイッチ(エッジSW)10−3の各々は、相互に接続されている。スイッチ(コアSW)10−1は、インターネット等の外部ネットワークを介してクライアント100と接続されている。スイッチ(内蔵SW)10−2は、コントローラ20及びフロントエンドプロセッサ(FEP)30に接続されている。スイッチ(エッジSW)10−3は、サーバ200と接続されている。このとき、スイッチ(コアSW)10−1、スイッチ(内蔵SW)10−2、及びスイッチ(エッジSW)10−3は、一体化していても良い。
なお、フロントエンドプロセッサ(FEP)30を配置する位置は、外部ネットワークの出入口かつコントローラ20の近傍(できれば直近)が望ましい。但し、必須ではない。すなわち、フロントエンドプロセッサ(FEP)30は、可能な限りスイッチ(コアSW)10−1とコントローラ20の双方の近傍に配置するのが好適である。従って、コントローラ20とフロントエンドプロセッサ(FEP)30が一体化していると更に好適である。
以下の説明において、FW(L4)は、ファイアウォール(FW)がL4(レイヤ4)レベルで稼動する環境を示す。LB(L4)は、ロードバランサ(LB)がL4(レイヤ4)レベルで稼動する環境を示す。FW(L7)は、ファイアウォール(FW)がL7(レイヤ7)レベルで稼動する環境を示す。LB(L7)は、ロードバランサ(LB)がL7(レイヤ7)レベルで稼動する環境を示す。
ファイアウォール(FW)及びロードバランサ(LB)は、L4(レイヤ4)レベルでは通常のパケットに対する処理を行い、L7(レイヤ7)レベルではクエリ(Query)パケットに対する処理を行う。
[実施例1:FW(L4)、LB(L4)の場合]
図4A〜図4Cを参照して、FW(L4)、LB(L4)の場合について説明する。
ファイアウォール(FW)及びロードバランサ(LB)がいずれもL4(レイヤ4)レベルで稼動する場合、当該ファイアウォール(FW)及びロードバランサ(LB)は、スイッチ(コアSW)10−1上で稼動する。この場合、フロントエンドプロセッサ(FEP)へのパケット送信は不要である。
(1)1stパケット
スイッチ(コアSW)10−1は、ネットワークを介して、クライアント100からパケットを受信した際、当該パケットが1stパケットであれば、スイッチ(内蔵SW)10−2を介して、パケットをコントローラ20に転送する。当該パケットは、宛先アドレス(dst:Destination Address)が仮想IPアドレス(VIP)であり、送信元アドレス(src:Source Address)がクライアント100のIPアドレス(cl IP)である。
(2)ルール作成
コントローラ20は、スイッチ(コアSW)10−1からパケットを受信すると、ポリシーDB211を参照し、仮想IPアドレス(VIP)を基に、必要な処理(L7レベルの処理の必要性等)を決定し、フローテーブル111に書き込むフロー(ルール及びアクション)を作成する。そして、コントローラ20は、フローテーブル111に対して、当該パケットに関して作成されたフローを新たに登録する旨の制御命令を送信する。その後、又は同時に、コントローラ20は、スイッチ(内蔵SW)10−2を介してスイッチ(コアSW)10−1にパケットを返信する。
(3)FW(L4)、LB(L4)
スイッチ(コアSW)10−1は、コントローラ20からの制御命令に応じて、フローテーブル111を更新する。また、スイッチ(コアSW)10−1は、フローテーブル111の更新後に、コントローラ20から返信されたパケット、又は当該パケットと同一ルールのパケットを受信すると、ファイアウォール(FW)12及びロードバランサ(LB)13にパケットを送る。ファイアウォール(FW)12は、L4レベルのプロトコルを認識し、当該パケットのIPヘッダ、TCPヘッダを参照して、通過可否を判断する。ロードバランサ(LB)13は、L4レベルのプロトコルを認識し、仮想IPアドレス(VIP)に基づいて、実IPアドレス(サーバ200のIPアドレス)を決定する。このとき、ロードバランサ(LB)13は、負荷状況を見て、仮想IPアドレス(VIP)に対応する実IPアドレス(サーバ200のIPアドレス)を決定しても良い。
(4)3WHS(対サーバ)
スイッチ(コアSW)10−1は、パケットがファイアウォール(FW)12で破棄されず、ロードバランサ(LB)13でサーバ200宛に振り分けられた場合、スイッチ(エッジSW)10−3を介して、パケットをサーバ200へ送信する。このとき、スイッチ(コアSW)10−1とサーバ200は、3WHS(3−Way Hand Shake)の手順に従って、当該パケットを含めて、パケットの送受信を3回行い、接続(コネクション)を確立する。
(5)データ通信
その後、スイッチ(コアSW)10−1は、同一ルールのパケットを受信すると、スイッチ(内蔵SW)10−2とスイッチ(エッジSW)10−3を介して、パケットをサーバ200へ転送する。
[実施例2:FW(L7)、LB(L7)の場合]
図5A〜図5Cを参照して、FW(L7)、LB(L7)の場合について説明する。
ファイアウォール(FW)及びロードバランサ(LB)がいずれもL7(レイヤ7)レベルで稼動する場合、当該ファイアウォール(FW)及びロードバランサ(LB)は、コントローラ上で稼動する。この場合、フロントエンドプロセッサ(FEP)がTCPのセッションを終端する。また、フロントエンドプロセッサ(FEP)は、クライアント100側とサーバ200側の双方に接続(コネクション)を確立する。
(1)1stパケット
スイッチ(コアSW)10−1は、ネットワークを介して、クライアント100からパケットを受信した際、当該パケットが1stパケットであれば、スイッチ(内蔵SW)10−2を介して、当該パケットをコントローラ20に転送する。当該パケットは、宛先アドレス(dst)が仮想IPアドレス(VIP)であり、送信元アドレス(src)がクライアント100のIPアドレス(cl IP)である。
(2)ルール作成
コントローラ20は、スイッチ(コアSW)10−1からパケットを受信すると、ポリシーDB211を参照し、仮想IPアドレス(VIP)を基に、必要な処理(L7レベルの処理の必要性等)を決定し、フローテーブル111に書き込むフロー(ルール及びアクション)を作成する。そして、コントローラ20は、フローテーブル111に対して、当該パケットに関して作成されたフローを新たに登録する旨の制御命令を送信する。その後、又は同時に、コントローラ20は、スイッチ(内蔵SW)10−2を介してスイッチ(コアSW)10−1にパケットを返信する。
(3)3WHS(対FEP)
スイッチ(コアSW)10−1は、コントローラ20からの制御命令に応じて、フローテーブル111を更新する。また、スイッチ(コアSW)10−1は、スイッチ(内蔵SW)10−2を介して、返信されたパケットをフロントエンドプロセッサ(FEP)30へ転送する。以降、スイッチ(コアSW)10−1は、返信されたパケットと同一ルールのパケットを受信すると、返信されたパケットと同様に、スイッチ(内蔵SW)10−2を介して、パケットをフロントエンドプロセッサ(FEP)30へ転送する。このとき、スイッチ(コアSW)10−1とフロントエンドプロセッサ(FEP)30は、3WHS(3−Way Hand Shake)の手順に従って、パケットの送受信を3回行い、接続(コネクション)を確立する。
(4)データ転送
フロントエンドプロセッサ(FEP)30は、クライアント100とフロントエンドプロセッサ(FEP)30間の接続(コネクション)が確立した後に、TCPのセッションを終端し、パケットを受信する。
(5)クエリ(Query)パケット生成
フロントエンドプロセッサ(FEP)30は、受信したパケットからクエリ(Query)パケットを生成する。このとき、フロントエンドプロセッサ(FEP)30は、生成されたクエリ(Query)パケットが最初のクエリ(1st Query)パケットである場合、当該クエリ(Query)パケットをコントローラ20に送信する。
(6)FW(L7)、LB(L7)
コントローラ20は、クエリ(Query)パケットを受信すると、当該クエリ(Query)パケットをファイアウォール(FW)22及びロードバランサ(LB)23に送る。ファイアウォール(FW)22は、L7レベルのプロトコルを認識し、当該クエリ(Query)パケットのIPヘッダ、TCPヘッダを参照して、通過可否を判断する。ロードバランサ(LB)23は、L7レベルのプロトコルを認識し、仮想IPアドレス(VIP)に基づいて、実IPアドレス(サーバ200のIPアドレス)を決定する。このとき、ロードバランサ(LB)23は、負荷状況を見て、仮想IPアドレス(VIP)に対応する実IPアドレス(サーバ200のIPアドレス)を決定しても良い。
(7)最初のクエリ(1st Query)パケット設定登録
コントローラ20は、クエリ(Query)パケットがファイアウォール(FW)22で破棄されず、ロードバランサ(LB)23で仮想IPアドレス(VIP)に対応する宛先であるサーバ200宛に振り分けられた場合、クエリ(Query)パケットをフロントエンドプロセッサ(FEP)30へ返信する。このとき、コントローラ20は、フローテーブル321及びフローテーブル321に書き込むフロー(ルール及びアクション)を作成する。そして、コントローラ20は、フローテーブル321及びフローテーブル331に対して、当該クエリ(Query)パケットに関して作成されたフローを新たに登録する旨の制御命令を送信する。フロントエンドプロセッサ(FEP)30は、コントローラ20からの制御命令に応じて、フローテーブル321及びフローテーブル331を更新する。
(8)3WHS(対サーバ)
また、フロントエンドプロセッサ(FEP)30は、返信されたクエリ(Query)パケットをスイッチ(内蔵SW)10−2とスイッチ(エッジSW)10−3を介して、クエリ(Query)パケットをサーバ200へ送信する。このとき、フロントエンドプロセッサ(FEP)30とサーバ200は、3WHS(3−Way Hand Shake)の手順に従って、クエリ(Query)パケットの送受信を3回行い、接続(コネクション)を確立する。
(9)データ転送
その後、フロントエンドプロセッサ(FEP)30は、同一ルールのクエリ(Query)パケットを生成すると、スイッチ(内蔵SW)10−2とスイッチ(エッジSW)10−3を介して、当該クエリ(Query)パケットをサーバ200へ転送する。
[実施例3:FW(L7)、LB(L4)の場合]
図6A〜図6Cを参照して、FW(L7)、LB(L4)の場合について説明する。
ファイアウォール(FW)がL7(レイヤ7)レベルで稼動し、ロードバランサ(LB)がL4(レイヤ4)レベルで稼動する場合、当該ファイアウォール(FW)は、コントローラ上で稼動し、このロードバランサ(LB)は、スイッチ(コアSW)10−1上で稼動する。この場合、フロントエンドプロセッサ(FEP)ではTCPのセッションを終端しない。また、クライアント100とサーバ200間で接続(コネクション)が確立されるが、パケットはフロントエンドプロセッサ(FEP)を経由する。
(1)1stパケット
スイッチ(コアSW)10−1は、ネットワークを介して、クライアント100からパケットを受信した際、当該パケットが1stパケットであれば、スイッチ(内蔵SW)10−2を介して、当該パケットをコントローラ20に転送する。当該パケットは、宛先アドレス(dst)が仮想IPアドレス(VIP)であり、送信元アドレス(src)がクライアント100のIPアドレス(cl IP)である。
(2)ルール作成
コントローラ20は、スイッチ(コアSW)10−1からパケットを受信すると、ポリシーDB211を参照し、仮想IPアドレス(VIP)を基に、必要な処理(L7レベルの処理の必要性等)を決定し、フローテーブル111に書き込むフロー(ルール及びアクション)を作成する。そして、コントローラ20は、フローテーブル111に対して、当該パケットに関して作成されたフローを新たに登録する旨の制御命令を送信する。その後、又は同時に、コントローラ20は、スイッチ(内蔵SW)10−2を介してスイッチ(コアSW)10−1にパケットを返信する。
(3)LB(L4)
スイッチ(コアSW)10−1は、コントローラ20からの制御命令に応じて、フローテーブル111を更新する。また、スイッチ(コアSW)10−1は、フローテーブル111の更新後に、コントローラ20から返信されたパケット、又は当該パケットと同一ルールのパケットを受信すると、ロードバランサ(LB)13にパケットを送る。ロードバランサ(LB)13は、L4レベルのプロトコルを認識し、仮想IPアドレス(VIP)に基づいて、実IPアドレス(サーバ200のIPアドレス)を決定し、パケットの経路をフロントエンドプロセッサ(FEP)30経由に切り替える。例えば、LB(L4)の場合、ユーザ設定により指定されたアルゴリズム(ラウンドロビン、最小応答時間、等)に基づき、分散対象のサーバ(複数あるうちの1つ)を決定し、クライアント−FEP間、及びFEP−サーバ間のパス(フローエントリ)を設定する。このとき、ロードバランサ(LB)13は、負荷状況を見て、仮想IPアドレス(VIP)に対応する実IPアドレス(サーバ200のIPアドレス)を決定しても良い。
(4)3WHS(対サーバ)
スイッチ(コアSW)10−1は、スイッチ(内蔵SW)10−2、フロントエンドプロセッサ(FEP)30、及びスイッチ(エッジSW)10−3を介して、当該パケットをサーバ200へ送信し、サーバ200からの応答をクライアント100へ送信する。また、スイッチ(コアSW)10−1は、スイッチ(内蔵SW)10−2、フロントエンドプロセッサ(FEP)30、及びスイッチ(エッジSW)10−3を介して、同一ルールのパケットをサーバ200へ転送する。このとき、スイッチ(コアSW)10−1は、3WHS(3−Way Hand Shake)の手順に従ってパケットを中継し、1stパケットを含めて、クライアント100とサーバ200間のパケットの送受信が3回行い、クライアント100とサーバ200間の接続(コネクション)を確立する。
(5)データ転送
フロントエンドプロセッサ(FEP)30は、クライアント100とサーバ200間の接続(コネクション)を確立した場合、フロントエンドプロセッサ(FEP)30を経由するパケットを受信する。
(6)クエリ(Query)パケット生成
フロントエンドプロセッサ(FEP)30は、受信したパケットからクエリ(Query)パケットを生成する。このとき、フロントエンドプロセッサ(FEP)30は、生成されたクエリ(Query)パケットが最初のクエリ(1st Query)パケットである場合、当該クエリ(Query)パケットをコントローラ20に送信する。
(7)FW(L7)
コントローラ20は、クエリ(Query)パケットを受信すると、当該クエリ(Query)パケットをファイアウォール(FW)22に送る。ファイアウォール(FW)22は、L7レベルのプロトコルを認識し、当該クエリ(Query)パケットのIPヘッダ、TCPヘッダを参照して、通過可否を判断する。
(8)最初のクエリ(1st Query)パケット設定登録
コントローラ20は、当該クエリ(Query)パケットがファイアウォール(FW)22で破棄されなかった場合、当該クエリ(Query)当該クエリ(Query)パケットをフロントエンドプロセッサ(FEP)30へ返信する。このとき、コントローラ20は、フローテーブル321及びフローテーブル321に書き込むフロー(ルール及びアクション)を作成する。そして、コントローラ20は、フローテーブル321及びフローテーブル331に対して、当該クエリ(Query)パケットに関して作成されたフローを新たに登録する旨の制御命令を送信する。フロントエンドプロセッサ(FEP)30は、コントローラ20からの制御命令に応じて、フローテーブル321及びフローテーブル331を更新する。
(9)データ通信
また、フロントエンドプロセッサ(FEP)30は、コントローラ20から返信されたクエリ(Query)パケット及び同一ルールのクエリ(Query)パケットを、スイッチ(内蔵SW)10−2とスイッチ(エッジSW)10−3を介して、サーバ200へ送信する。なお、サーバ200からの応答は、フロントエンドプロセッサ(FEP)30を経由しなくても良い。
[実施例4:FW(L4)、LB(L7)の場合]
図7A〜図7Cを参照して、FW(L4)、LB(L7)の場合について説明する。
ファイアウォール(FW)がL4(レイヤ4)レベルで稼動し、ロードバランサ(LB)がL7(レイヤ7)レベルで稼動する場合、当該ファイアウォール(FW)及びロードバランサ(LB)は、コントローラ上で稼動する。この場合、フロントエンドプロセッサ(FEP)がTCPのセッションを終端する。また、フロントエンドプロセッサ(FEP)は、クライアント100側とサーバ200側の双方に接続(コネクション)を確立する。なお、実際には、ファイアウォール(FW)は、スイッチ(コアSW)10−1上で稼動しても良い。この場合の動作は、実施例1におけるファイアウォール(FW)の動作と同じである。
(1)1stパケット
スイッチ(コアSW)10−1は、ネットワークを介して、クライアント100からパケットを受信した際、当該パケットが1stパケットであれば、スイッチ(内蔵SW)10−2を介して、当該パケットをコントローラ20に転送する。当該パケットは、宛先アドレス(dst)が仮想IPアドレス(VIP)であり、送信元アドレス(src)がクライアント100のIPアドレス(cl IP)である。
(2)FW(L4)
コントローラ20は、スイッチ(コアSW)10−1からパケットを受信すると、当該パケットをファイアウォール(FW)22に送る。ファイアウォール(FW)22は、L4レベルのプロトコルを認識し、当該パケットのIPヘッダ、TCPヘッダを参照して、通過可否を判断する。
(3)ルール作成
コントローラ20は、当該パケットがファイアウォール(FW)22で破棄されなかった場合、ポリシーDB211を参照し、仮想IPアドレス(VIP)を基に、必要な処理(L7レベルの処理の必要性等)を決定し、フローテーブル111に書き込むフロー(ルール及びアクション)を作成する。コントローラ20は、フローテーブル111に対して、当該パケットに関して作成されたフローを新たに登録する旨の制御命令を送信する。その後、又は同時に、コントローラ20は、スイッチ(内蔵SW)10−2を介してスイッチ(コアSW)10−1にパケットを返信する。また、コントローラ20は、当該パケットがファイアウォール(FW)22で破棄された場合、フローテーブル111に対して、当該パケットと同一ルールのパケットを破棄するフローを新たに登録する旨の制御命令を送信する。なお、フローテーブル111に対して、1stパケットと同一ルールのパケットを破棄するフローを登録した場合、スイッチ(コアSW)10−1は、以降の同一ルールのパケットを転送せずに全て廃棄する。すなわち、これ以降の処理を行わない。
(4)3WHS(対FEP)
スイッチ(コアSW)10−1は、コントローラ20からの制御命令に応じて、フローテーブル111を更新する。その後、スイッチ(コアSW)10−1は、スイッチ(内蔵SW)10−2及びコントローラ20を介して、返信されたパケットをフロントエンドプロセッサ(FEP)30へ転送し、フロントエンドプロセッサ(FEP)30からの応答をクライアント100に送信する。また、スイッチ(コアSW)10−1は、同一ルールのパケットを受信すると、同様に、スイッチ(内蔵SW)10−2を介して、フロントエンドプロセッサ(FEP)30へ転送する。このとき、スイッチ(コアSW)10−1とフロントエンドプロセッサ(FEP)30は、3WHS(3−Way Hand Shake)の手順に従って、パケットの送受信を3回行い、接続(コネクション)を確立する。
(5)データ転送
フロントエンドプロセッサ(FEP)30は、クライアント100とフロントエンドプロセッサ(FEP)30間の接続(コネクション)が確立した後に、TCPのセッションを終端し、パケットを受信する。
(6)クエリ(Query)パケット生成
フロントエンドプロセッサ(FEP)30は、受信したパケットからクエリ(Query)パケットを生成し、クエリ(Query)パケットをコントローラ20に送信する。
(7)LB(L7)
コントローラ20は、クエリ(Query)パケットを受信すると、当該クエリ(Query)パケットをロードバランサ(LB)23に送る。ロードバランサ(LB)23は、L7レベルのプロトコルを認識し、仮想IPアドレス(VIP)に基づいて、実IPアドレス(サーバ200のIPアドレス)を決定する。このとき、ロードバランサ(LB)23は、負荷状況を見て、仮想IPアドレス(VIP)に対応する実IPアドレス(サーバ200のIPアドレス)を決定しても良い。コントローラ20は、クエリ(Query)パケットがロードバランサ(LB)で仮想IPアドレス(VIP)に対応する宛先であるサーバ200宛に振り分けられた場合、クエリ(Query)クエリ(Query)パケットをフロントエンドプロセッサ(FEP)30へ返信する。
(8)最初のクエリ(1st Query)パケット設定登録
このとき、コントローラ20は、フローテーブル321及びフローテーブル321に書き込むフロー(ルール及びアクション)を作成する。そして、コントローラ20は、フローテーブル321及びフローテーブル331に対して、当該クエリ(Query)パケットに関して作成されたフローを新たに登録する旨の制御命令を送信する。フロントエンドプロセッサ(FEP)30は、コントローラ20からの制御命令に応じて、フローテーブル321及びフローテーブル331を更新する。
(9)3WHS(対サーバ)
また、フロントエンドプロセッサ(FEP)30は、返信されたクエリ(Query)パケットをフローテーブルに登録した後、返信されたクエリ(Query)パケットを、スイッチ(内蔵SW)10−2とスイッチ(エッジSW)10−3を介して、サーバ200へ送信する。このとき、フロントエンドプロセッサ(FEP)30とサーバ200は、3WHS(3−Way Hand Shake)の手順に従って、クエリ(Query)パケットの送受信を3回行い、接続(コネクション)を確立する。
(10)データ転送
その後、フロントエンドプロセッサ(FEP)30は、同一ルールのクエリ(Query)パケットを生成すると、スイッチ(内蔵SW)10−2とスイッチ(エッジSW)10−3を介して、当該クエリ(Query)パケットをサーバ200へ転送する。
[FW機能とLB機能の組み合わせ]
図8を参照して、ファイアウォール(FW)機能とロードバランサ(LB)機能の組み合わせについて説明する。
適用ポリシーにおいて、ファイアウォール(FW)、又はロードバランサ(LB)、あるいはその両方をL4(レイヤ4)レベルで稼動させる場合、スイッチ10上で処理可能である。
ロードバランサ(LB)をL7(レイヤ7)レベルで稼動させる場合、フロントエンドプロセッサ(FEP)でTCPのセッションを終端するようにする。クエリ(Query)パケットを生成し、クエリ(Query)パケットに対するロードバランシングを行うためである。
上記以外で、ファイアウォール(FW)をL7(レイヤ7)レベルで稼動させる場合、パケットがフロントエンドプロセッサ(FEP)を経由するようにする。クエリ(Query)パケットを生成する必要があるためである。このとき、ロードバランサ(LB)をL4(レイヤ4)レベルで稼動させる場合、ロードバランサ(LB)機能はスイッチ10上で処理可能である。
なお、コントローラ20は、スイッチ10上での処理を肩代わりすることができる。
<データのイメージ>
以下に、本発明で使用されるデータのイメージについて説明する。
[ポリシーDB:トポロジー情報のイメージ]
図9は、ポリシーDB211に格納されるトポロジー情報のイメージである。
トポロジー情報は、宛先アドレスと、プロトコルと、ポート番号と、各種アプリケーション情報を有する。
宛先アドレスは、送信先(宛先)のIPアドレスである。プロトコルは、「http」、「https」、「FTP」等のプロトコルの分類を示す情報である。ポート番号は、「80」、「443」等のIPアドレスの下に設けられたサブ(補助)アドレスである。各種アプリケーション情報は、ファイアウォール(FW)機能やロードバランサ(LB)機能、及びこれらが稼動する階層(レイヤ)がL4(レイヤ4)レベルかL7(レイヤ7)レベルを示す情報である。
コントローラ20のオペレーティングシステム(OS)21は、パケットを受信した際、ポリシーDB211を参照して、適切な階層の、適切なファイアウォール(FW)機能やロードバランサ(LB)機能に通知する。
[フローテーブルのイメージ]
図10は、フローテーブル111、フローテーブル321、及びフローテーブル331等のフローテーブルのイメージである。
フローテーブルは、処理フラグと、(1)送信元IPと、(2)送信元Portと、(3)宛先IPと、(4)宛先Portと、(5)ペイロードと、(6)アクションを有する。
(1)送信元IP〜(5)ペイロードは、フローのルールとして使用される項目である。
処理フラグは、フローのルールとして、(1)送信元IP〜(5)ペイロードのいずれを参照するかを示すフラグである。すなわち、処理フラグに設定された項目が、フローのルールとして採用される。
1)送信元IP、(2)送信元Port、(3)宛先IP、及び(4)宛先Portについては、説明を省略する。
(5)ペイロードは、受信したデータのユーサーデータ部に該当する。例えば、(5)ペイロードには、「URL(Uniform Resource Locator)」、「Cookie情報」、「スクリプト」等の各情報の一部又は全部が格納される。
(6)アクションは、処理フラグに設定された項目(処理フラグの条件)を全て満足した場合に、受信したパケットに対して行う処理を示す。例えば、(6)アクションには、「通過」、「廃棄」等の処理が設定される。
スイッチ10、コントローラ20、及びフロントエンドプロセッサ(FEP)30は、処理フラグに設定された項目(処理フラグの条件)について、受信したパケットのヘッダ情報の該当フィールドを参照し、フローテーブルに登録された情報とマッチ(一致)すれば、当該処理フラグに対応する(6)アクションに設定された処理を実行する。
最上位の処理として、スイッチ10、コントローラ20、及びフロントエンドプロセッサ(FEP)30は、(1)送信元IP〜(5)ペイロードの全てにマッチした場合、パケットの通過を許可する。
最下位の処理として、スイッチ10、コントローラ20、及びフロントエンドプロセッサ(FEP)30は、(1)送信元IP〜(5)ペイロードのいずれにもマッチしなかった場合、無条件にパケットを破棄する。
[クエリ(Query)パケットのイメージ]
図11は、クエリ(Query)パケットのイメージである。
実際の伝送イメージとして、通常のパケットは、IPヘッダと、TCPヘッダと、ペイロードを有する。現在のネットワークシステムでは、長大なデータは、所定のデータ長で複数のパケットに分割されて送信される。ペイロードには、所定のデータ長に分割されたデータが格納されている。すなわち、分割されたデータの数だけパケットが存在する。これらのパケット群のペイロードに格納されたデータ全体で1メッセージとなる。また、これらのパケット群に属するパケットは、送信元や宛先が同じため、IPヘッダやTCPヘッダに格納されている情報は、全て同じとなる。
クエリ(Query)パケットは、IP情報と、TCP情報と、ペイロードを有する。IP情報及びTCP情報には、通常のパケットのIPヘッダやTCPヘッダから、IPアドレスやポート番号等の必要な情報のみを抽出したものが格納される。また、ペイロードには、分割されたデータから復元される1メッセージのうち、必要な情報のみを抽出したものが格納される。例えば、Webアクセスにおいて、URLは、情報の種類やサーバ名、ポート番号、フォルダ名、ファイル名、Cookie情報等で構成されており、通常のパケットには、URLが、所定のデータ長に分割されて格納される。URLのうちCookie情報のみが必要である場合、クエリ(Query)パケットのペイロードには、パケット群から一旦復元されたURLのうち、Cookie情報のみが抽出されて格納される。
<ロードバランシングのイメージ>
以下に、本発明で実施されるロードバランシングのイメージについて説明する。
[FEP−FEP間のロードバランシング]
図12は、FEP−FEP間のロードバランシングのイメージである。
ここでは、3つのフロントエンドプロセッサ(FEP)を示す。個々のフロントエンドプロセッサ(FEP)は、ディスパッチャロードバランサ(ディスパッチャLB)と、ディスパッチャと、ファイアウォール(FW)と、ロードバランサ(LB)を備える。但し、実際には、これらの例に限定されない。
ディスパッチャロードバランサ(ディスパッチャLB)は、各FEPのディスパッチャの負荷状況を見て、ロードバランシングを行い、適切なFEPのディスパッチャに処理を割り当てる。ディスパッチャロードバランサ(ディスパッチャLB)は、自FEP又は他のFEPのロードバランサ(LB)でも良い。なお、図12では、フロントエンドプロセッサ(FEP)がディスパッチャロードバランサ(ディスパッチャLB)を備えているが、実際には、ディスパッチャロードバランサ(ディスパッチャLB)は、図3に示すスイッチ10のロードバランサ(LB)13や、コントローラ20のロードバランサ(LB)23でも良い。
ディスパッチャ、ファイアウォール(FW)、及びロードバランサ(LB)は、それぞれ図3に示すディスパッチャ31、ファイアウォール(FW)32、及びロードバランサ(LB)33と同じである。
ディスパッチャは、各FEPのファイアウォール(FW)やロードバランサ(LB)の負荷状況を見て、ロードバランシングを行い、適切なFEPのファイアウォール(FW)やロードバランサ(LB)に処理を割り当てる。
なお、ディスパッチャは、ファイアウォール(FW)やロードバランサ(LB)単位ではなく、各FEPのハードウェア単位で負荷状況を見て、比較的負荷の低いFEPに、ファイアウォール(FW)やロードバランサ(LB)等の必要な機能モジュールを立ち上げる。
[コントローラ−FEP間のロードバランシング]
なお、上記の実施形態や各実施例において、コントローラ20に最初のクエリ(1st Query)パケットを送信したフロントエンドプロセッサ(FEP)30と、コントローラ20から応答を受信するフロントエンドプロセッサ(FEP)30は、必ずしも同一物とは限らない。コントローラ20のロードバランサ(LB)23により、以降使用されるFEPとして、送信元のFEPとは異なるFEPが選ばれる可能性もあるからである。
<追記>
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
10、10−1、10−2、10−3… スイッチ
20… コントローラ
30… フロントエンドプロセッサ(FEP:Front End Processor)
11… ポート
12、22、32… ファイアウォール(FW:FireWall)
13、23、33… ロードバランサ(LB:Load Balancer(負荷分散装置))
21… オペレーティングシステム(OS:Operating System)
31… ディスパッチャ(dispatcher)
111、321、331… フローテーブル(Flow Table)
211… ポリシーDB(DataBase)
311… 適用ポリシー
332… サーバ情報
333… セッション維持情報
100… クライアント
200… サーバ

Claims (15)

  1. パケットを中継するスイッチであって、第1フローテーブルを備え、前記第1フローテーブルに従って動作するように構成された前記スイッチと、
    前記スイッチを制御して通信新経路を決定するコントローラと、
    前記スイッチを介して前記コントローラと接続するフロントエンドプロセッサであって、第2フローテーブルを備え、前記第2フローテーブルに従って動作するように構成された前記フロントエンドプロセッサと
    を具備し、
    前記コントローラは、前記通信新経路を決定するにあたって、前記パケットに対して行うべき処理の内容をフローエントリとして前記第1および前記第2フローテーブルにそれぞれ書き込み、
    前記フロントエンドプロセッサは、
    前記パケットを収集し、収集されたパケット群から必要な情報のみを抽出してレイヤ7レベルのプロトコルに対応したクエリパケットを生成し、前記クエリパケットに対して適用ポリシーに基づくポリシーチェックを行い、前記クエリパケットを宛先に送信するディスパッチャと、
    レイヤ7レベルのプロトコルを認識するファイアウォールであって、前記クエリパケットの通過の許否を決定するという処理のフローエントリが書き込まれた前記第2フローテーブルに従って動作する前記ファイアウォールと、
    レイヤ7レベルのプロトコルを認識するロードバランサであって、ネットワークの負荷状況に応じて前記クエリパケットのロードバランシングを行い、前記クエリパケットが最初のクエリパケットである場合、前記スイッチを介して前記クエリパケットを前記コントローラに送信し、前記クエリパケットの経路を確認するという処理のフローエントリが書き込まれた前記第2フローテーブルに従って動作する前記ロードバランサと
    を具備する
    フロントエンドシステム。
  2. 請求項1に記載のフロントエンドシステムであって、
    前記ディスパッチャは、前記フロントエンドプロセッサを含む複数のフロントエンドプロセッサの各々のハードウェア単位の負荷状況を見て、最適なフロントエンドプロセッサ上で前記ファイアウォール及び前記ロードバランサを立ち上げる処理を行い、前記ファイアウォール及び前記ロードバランサに対して前記クエリパケットを送信する
    フロントエンドシステム。
  3. 請求項1又は2に記載のフロントエンドシステムであって、
    前記ロードバランサは、前記フロントエンドプロセッサから前記クエリパケットを受信し、前記フロントエンドプロセッサを含む複数のフロントエンドプロセッサの各々のハードウェア単位の負荷状況を見て、最適なフロントエンドプロセッサに対して前記クエリパケットを返信するという処理のフローエントリが書き込まれた前記第2フローテーブルに従って動作する
    フロントエンドシステム。
  4. 請求項1乃至3のいずれか一項に記載のフロントエンドシステムであって、
    前記第1フローテーブルは、前記パケットに対するルール及びアクションで定義されたフローを含んでおり、
    前記スイッチは、
    前記パケットが最初のパケットである場合、前記パケットを前記コントローラに送信し、前記パケットに対するルール及びアクションを前記第1フローテーブルで確認し、前記パケットに対するルール及びアクションに応じて前記パケットを転送するポートと、
    レイヤ4レベルのプロトコルを認識するL4ファイアウォールであって、前記パケットの通過の許否を決定するという処理のフローエントリが書き込まれた前記第1フローテーブルに従って動作する前記L4ファイアウォールと、
    レイヤ4レベルのプロトコルを認識するL4ロードバランサであって、ネットワークの負荷状況に応じて前記パケットのロードバランシングを行うという処理のフローエントリが書き込まれた前記第1フローテーブルに従って動作する前記L4ロードバランサと
    を具備し
    前記スイッチは、前記L4ファイアウォール及び前記L4ロードバランサを共に稼動させて、前記パケットの通過の許否を決定し、前記パケットのロードバランシングを行い、前記フロントエンドプロセッサへの前記パケットの転送を行わないという処理のフローエントリが書き込まれた前記第1フローテーブルに従って動作することで、前記フロントエンドプロセッサでの処理を不要とする
    フロントエンドシステム。
  5. 請求項1乃至3のいずれか一項に記載のフロントエンドシステムであって、
    前記フロントエンドプロセッサは、前記スイッチを経由するTCP(Transmission Control Protocol)のセッションを終端し、前記パケットを収集し、収集されたパケット群から必要な情報のみを抽出して前記クエリパケットを生成し、前記クエリパケットを前記コントローラに送信するという処理のフローエントリが書き込まれた前記第2フローテーブルに従って動作し
    前記コントローラは、
    前記スイッチから前記パケットを受信し、ネットワーク全体のトポロジー情報を参照して前記パケットに対するルール及びアクションを決定し、前記スイッチに通知するOSと、
    レイヤ7レベルのプロトコルを認識し、前記クエリパケットの通過の許否を決定するL7ファイアウォールと、
    レイヤ7レベルのプロトコルを認識し、ネットワークの負荷状況に応じて前記クエリパケットのロードバランシングを行うL7ロードバランサと
    を具備する
    フロントエンドシステム。
  6. 請求項1乃至3のいずれか一項に記載のフロントエンドシステムであって、
    前記第1フローテーブルは、前記パケットに対するルール及びアクションで定義されたフローを含んでおり、
    前記スイッチは、
    前記パケットが最初のパケットである場合、前記パケットを前記コントローラに送信し、前記パケットに対するルール及びアクションを前記第1フローテーブルで確認し、前記パケットに対するルール及びアクションに応じて前記パケットを転送するポートと、
    レイヤ4レベルのプロトコルを認識するL4ロードバランサであって、ネットワークの負荷状況に応じて前記パケットのロードバランシングを行うという処理のフローエントリが書き込まれた前記第1フローテーブルに従って動作するL4ロードバランサと
    を具備し、
    前記コントローラは、
    前記スイッチから前記パケットを受信し、ネットワーク全体のトポロジー情報を参照して前記パケットに対するルール及びアクションを決定し、前記スイッチに通知するOSと、
    レイヤ7レベルのプロトコルを認識し、前記クエリパケットの通過の許否を決定するL7ファイアウォールと
    を具備し、
    前記スイッチは、前記L4ロードバランサ稼動している場合、前記パケットの経路を前記フロントエンドプロセッサ経由に変更し、前記パケットを前記フロントエンドプロセッサに送信するという処理のフローエントリが書き込まれた前記第1フローテーブルに従って動作し
    前記コントローラは、前記フロントエンドプロセッサから前記クエリパケットを受信し、前記L7ファイアウォールを稼動させて、前記クエリパケットの通過の許否を決定する
    フロントエンドシステム。
  7. 請求項1乃至3のいずれか一項に記載のフロントエンドシステムであって、
    前記コントローラは、
    レイヤ4レベルのプロトコルを認識し、前記スイッチから前記パケットを受信し、前記パケットの通過の許否を決定し、前記パケットの通過を制限する場合、前記パケットを廃棄し、前記スイッチに対し、前記パケットと同一ルールのパケットを廃棄する旨を通知するL4ファイアウォールと、
    ネットワーク全体のトポロジー情報を参照し、前記L4ファイアウォールから前記パケットを受信し、前記スイッチから前記パケットを受信し、前記パケットに対するルール及びアクションを決定し、前記スイッチに通知するOSと、
    レイヤ7レベルのプロトコルを認識し、前記フロントエンドプロセッサから前記クエリパケットを受信し、前記クエリパケットのロードバランシングを行うL7ロードバランサと
    を具備し、
    前記フロントエンドプロセッサは、前記スイッチを経由するTCP(Transmission Control Protocol)のセッションを終端し、前記パケットを収集し、収集されたパケット群から必要な情報のみを抽出して前記クエリパケットを生成し、前記クエリパケットを前記コントローラに送信するという処理のフローエントリが書き込まれた前記第2フローテーブルに従って動作する
    フロントエンドシステム。
  8. 請求項1乃至7のいずれか一項に記載のフロントエンドシステムであって、
    前記第2フローテーブルは、前記パケットに対するルール及びアクションで定義されたフローを含む
    フロントエンドシステム。
  9. フロントエンドシステムにおけるフロントエンド処理方法であって、
    前記フロントエンドシステムは、
    パケットを中継するスイッチであって、第1フローテーブルを備え、前記第1フローテーブルに従って動作するように構成された前記スイッチと、
    前記スイッチを制御して通信新経路を決定するコントローラと、
    前記スイッチを介して前記コントローラと接続されるフロントエンドプロセッサであって、第2フローテーブルを備え、前記第2フローテーブルに従って動作するように構成された前記フロントエンドプロセッサと
    を具備し、
    前記コントローラは、前記通信新経路を決定するにあたって、前記パケットに対して行うべき処理の内容をフローエントリとして前記第1および前記第2フローテーブルにそれぞれ書き込み、
    前記フロントエンドプロセッサは、
    ディスパッチャと、
    レイヤ7レベルのプロトコルを認識するファイアウォールと、
    レイヤ7レベルのプロトコルを認識するロードバランサと
    を具備し、
    前記フロントエンド処理方法は、
    前記フロントエンドプロセッサ前記スイッチを介して、前記コントローラと接続されることと、
    前記フロントエンドプロセッサ上で、前記ディスパッチャ、前記パケットを収集し、収集されたパケット群から必要な情報のみを抽出してレイヤ7レベルのプロトコルに対応したクエリパケットを生成することと、
    前記フロントエンドプロセッサ上で、前記クエリパケットの通過の許否を決定するという処理のフローエントリが書き込まれた前記第2フローテーブルに従って前記ファイアウォールが動作することと、
    前記フロントエンドプロセッサ上で、ネットワークの負荷状況に応じて前記クエリパケットのロードバランシングを行い、前記クエリパケットが最初のクエリパケットである場合、前記スイッチを介して前記クエリパケットを前記コントローラに送信し、前記クエリパケットの経路を確認するという処理のフローエントリが書き込まれた前記第2フローテーブルに従って前記ロードバランサが動作することと、
    前記フロントエンドプロセッサ上で、前記ディスパッチャ、前記クエリパケットに対して適用ポリシーに基づくポリシーチェックを行い、前記クエリパケットを宛先に送信することと、
    を含む
    フロントエンド処理方法。
  10. 請求項9に記載のフロントエンド処理方法であって、
    前記フロントエンドプロセッサ上で、前記ディスパッチャ、前記フロントエンドプロセッサを含む複数のフロントエンドプロセッサの各々のハードウェア単位の負荷状況を見て、最適なフロントエンドプロセッサ上で前記ファイアウォール及び前記ロードバランサを立ち上げる処理を行い、前記ファイアウォール及び前記ロードバランサに対して前記クエリパケットを送信すること
    を更に含む
    フロントエンド処理方法。
  11. 請求項9又は10に記載のフロントエンド処理方法であって、
    前記ロードバランサが、前記フロントエンドプロセッサから前記クエリパケットを受信し、前記フロントエンドプロセッサを含む複数のフロントエンドプロセッサの各々のハードウェア単位の負荷状況を見て、最適なフロントエンドプロセッサに対して前記クエリパケットを返信するという処理のフローエントリが書き込まれた前記第2フローテーブルに従って動作すること
    を更に含む
    フロントエンド処理方法。
  12. 請求項9乃至11のいずれか一項に記載のフロントエンド処理方法であって、
    前記第1フローテーブルは、前記パケットに対するルール及びアクションで定義されたフローを含んでおり、
    前記スイッチは、
    レイヤ4レベルのプロトコルを認識するL4ファイアウォールと、
    レイヤ4レベルのプロトコルを認識するL4ロードバランサと
    を具備し、
    前記フロントエンド処理方法は、
    記パケットが最初のパケットである場合、前記スイッチが、前記パケットを前記コントローラに送信し、前記パケットに対するルール及びアクションを前記第1フローテーブルで確認し、前記パケットに対するルール及びアクションに応じて前記パケットを転送することと、
    前記スイッチ上で、前記パケットの通過の許否を決定するという処理のフローエントリが書き込まれた前記第1フローテーブルに従って前記L4ファイアウォールが動作することと
    ットワークの負荷状況に応じて前記パケットのロードバランシングを行うという処理のフローエントリが書き込まれた前記第1フローテーブルに従って前記L4ロードバランサが動作することと
    前記スイッチ記L4ファイアウォール及び前記L4ロードバランサを共に稼動させて、前記パケットの通過の許否を決定し、前記パケットのロードバランシングを行い、前記フロントエンドプロセッサへの前記パケットの転送を行わないという処理のフローエントリが書き込まれた前記第1フローテーブルに従って前記スイッチが動作することで、前記フロントエンドプロセッサでの処理を不要とすることと
    を更に含む
    フロントエンド処理方法。
  13. 請求項9乃至11のいずれか一項に記載のフロントエンド処理方法であって、
    前記コントローラは、
    OSと、
    レイヤ7レベルのプロトコルを認識するL7ファイアウォールと、
    レイヤ7レベルのプロトコルを認識するL7ロードバランサと、
    を具備し、
    前記フロントエンド処理方法は、
    前記コントローラ上で、前記OS、前記スイッチから前記パケットを受信し、ネットワーク全体のトポロジー情報を参照して前記パケットに対するルール及びアクションを決定し、前記スイッチに通知することと、
    前記フロントエンドプロセッサ、前記スイッチを経由するTCP(Transmission Control Protocol)のセッションを終端し、前記パケットを収集し、収集されたパケット群から必要な情報のみを抽出して前記クエリパケットを生成し、前記クエリパケットを前記コントローラに送信するという処理のフローエントリが書き込まれた前記第2フローテーブルに従って動作することと、
    前記コントローラ上で、前記L7ファイアウォール、前記クエリパケットの通過の許否を決定することと、
    前記コントローラ上で、前記L7ロードバランサ、ネットワークの負荷状況に応じて前記クエリパケットのロードバランシングを行うことと
    を具備する
    フロントエンド処理方法。
  14. 請求項9乃至11のいずれか一項に記載のフロントエンド処理方法であって、
    前記第1フローテーブルは、前記パケットに対するルール及びアクションで定義されたフローを含んでおり、
    前記スイッチは、
    レイヤ4レベルのプロトコルを認識するL4ロードバランサ
    を具備し、
    前記コントローラは、
    OSと、
    レイヤ7レベルのプロトコルを認識するL7ファイアウォールと
    を具備し、
    前記フロントエンド処理方法は、
    記パケットが最初のパケットである場合、前記パケットを前記コントローラに送信し、前記パケットに対するルール及びアクションを前記第1フローテーブルで確認し、前記パケットに対するルール及びアクションに応じて前記パケットを転送することと、
    前記コントローラ上で、前記OS、前記スイッチから前記パケットを受信し、ネットワーク全体のトポロジー情報を参照して前記パケットに対するルール及びアクションを決定し、前記スイッチに通知することと、
    前記スイッチ上で、ネットワークの負荷状況に応じて前記パケットのロードバランシングを行うという処理のフローエントリが書き込まれた前記第1フローテーブルに従って前記L4ロードバランサが動作することと
    記L4ロードバランサ稼動している場合、前記パケットの経路を前記フロントエンドプロセッサ経由に変更し、前記パケットを前記フロントエンドプロセッサに送信するという処理のフローエントリが書き込まれた前記第1フローテーブルに従って前記スイッチが動作することと、
    前記コントローラ、前記フロントエンドプロセッサから前記クエリパケットを受信することと、
    前記コントローラ上で、前記L7ファイアウォール、前記クエリパケットの通過の許否を決定することと
    を更に含む
    フロントエンド処理方法。
  15. 請求項9乃至11のいずれか一項に記載のフロントエンド処理方法であって、
    前記コントローラは、
    レイヤ4レベルのプロトコルを認識するL4ファイアウォールと、
    OSと、
    レイヤ7レベルのプロトコルを認識するL7ロードバランサと
    を具備し、
    前記フロントエンド処理方法は、
    前記コントローラ上で、前記L4ファイアウォール、前記スイッチから前記パケットを受信し、前記パケットの通過の許否を決定し、前記パケットの通過を制限する場合、前記パケットを廃棄し、前記スイッチに対し、前記パケットと同一ルールのパケットを廃棄する旨を通知することと、
    前記コントローラ上で、前記OS、ネットワーク全体のトポロジー情報を参照し、前記L4ファイアウォールから前記パケットを受信し、前記スイッチから前記パケットを受信し、前記パケットに対するルール及びアクションを決定し、前記スイッチに通知することと、
    前記フロントエンドプロセッサ、前記スイッチを経由するTCP(Transmission Control Protocol)のセッションを終端し、前記パケットを収集し、収集されたパケット群から必要な情報のみを抽出して前記クエリパケットを生成し、前記クエリパケットを前記コントローラに送信するという処理のフローエントリが書き込まれた前記第2フローテーブルに従って動作することと、
    前記コントローラ上で、前記L7ロードバランサ、前記フロントエンドプロセッサから前記クエリパケットを受信し、前記クエリパケットのロードバランシングを行うことと
    を更に含む
    フロントエンド処理方法。
JP2010017960A 2010-01-29 2010-01-29 フロントエンドシステム、フロントエンド処理方法 Expired - Fee Related JP5382451B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2010017960A JP5382451B2 (ja) 2010-01-29 2010-01-29 フロントエンドシステム、フロントエンド処理方法
EP11736941A EP2530886A1 (en) 2010-01-29 2011-01-21 Front end system and front end processing method
US13/575,919 US8863269B2 (en) 2010-01-29 2011-01-21 Frontend system and frontend processing method
CN201180007734.7A CN102763382B (zh) 2010-01-29 2011-01-21 前端系统和前端处理方法
PCT/JP2011/051135 WO2011093228A1 (ja) 2010-01-29 2011-01-21 フロントエンドシステム、フロントエンド処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010017960A JP5382451B2 (ja) 2010-01-29 2010-01-29 フロントエンドシステム、フロントエンド処理方法

Publications (2)

Publication Number Publication Date
JP2011160041A JP2011160041A (ja) 2011-08-18
JP5382451B2 true JP5382451B2 (ja) 2014-01-08

Family

ID=44319216

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010017960A Expired - Fee Related JP5382451B2 (ja) 2010-01-29 2010-01-29 フロントエンドシステム、フロントエンド処理方法

Country Status (5)

Country Link
US (1) US8863269B2 (ja)
EP (1) EP2530886A1 (ja)
JP (1) JP5382451B2 (ja)
CN (1) CN102763382B (ja)
WO (1) WO2011093228A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996614B2 (en) * 2011-02-09 2015-03-31 Citrix Systems, Inc. Systems and methods for nTier cache redirection
EP3605969B1 (en) * 2011-08-17 2021-05-26 Nicira Inc. Distributed logical l3 routing
WO2013047705A1 (ja) 2011-09-27 2013-04-04 日本電気株式会社 ネットワークシステム、フロントエンド装置、制御メッセージ送信レート低減方法
US10454805B2 (en) 2012-03-28 2019-10-22 Nec Corporation Communication system, communication apparatus, control apparatus, communication apparatus control method and program
US9515926B2 (en) 2012-03-28 2016-12-06 Nec Corporation Communication system, upper layer switch, control apparatus, switch control method, and program
US9178715B2 (en) 2012-10-01 2015-11-03 International Business Machines Corporation Providing services to virtual overlay network traffic
CN103051557B (zh) * 2012-12-27 2016-07-06 华为技术有限公司 数据流处理方法及系统、控制器、交换设备
WO2014107860A1 (zh) * 2013-01-10 2014-07-17 北京华为数字技术有限公司 报文处理方法、装置及系统
CN104348819A (zh) * 2013-08-07 2015-02-11 上海宽带技术及应用工程研究中心 一种软件定义网络中的防火墙系统及其实现方法
CN104639504B (zh) * 2013-11-12 2018-09-21 华为技术有限公司 网络协同防御方法、装置和系统
CN104734988B (zh) * 2013-12-23 2018-10-30 杭州华为数字技术有限公司 软件定义网络中路由控制的方法和开放流控制器
WO2016082167A1 (zh) * 2014-11-28 2016-06-02 华为技术有限公司 业务处理装置及方法
WO2016086955A1 (en) * 2014-12-01 2016-06-09 Nokia Solutions And Networks Oy Methods and computing devices to regulate packets in a software defined network
US10880198B2 (en) * 2015-05-08 2020-12-29 Qualcomm Incorporated Aggregating targeted and exploration queries
WO2017000097A1 (zh) * 2015-06-27 2017-01-05 华为技术有限公司 一种数据转发的方法、装置和系统
JP6503988B2 (ja) * 2015-09-02 2019-04-24 富士通株式会社 セッション制御方法およびセッション制御プログラム
NO20160593A1 (en) 2016-04-12 2017-10-13 Pexip AS Improvements in multimedia conferencing
US10038671B2 (en) * 2016-12-31 2018-07-31 Fortinet, Inc. Facilitating enforcement of security policies by and on behalf of a perimeter network security device by providing enhanced visibility into interior traffic flows
US10581962B2 (en) * 2017-11-01 2020-03-03 Alibaba Group Holding Limited Direct communication between physical server and storage service
JP6977621B2 (ja) 2018-03-02 2021-12-08 日本電信電話株式会社 制御装置、及び制御方法
CN108989352B (zh) * 2018-09-03 2022-11-11 平安科技(深圳)有限公司 防火墙实现方法、装置、计算机设备及存储介质
CN110661904B (zh) * 2019-10-25 2022-06-14 浪潮云信息技术股份公司 一种实现源网络地址转换网关水平扩展的方法
CN110868278B (zh) * 2019-11-15 2022-07-08 上海电科智能系统股份有限公司 一种轨道交通综合监控系统通信前置机双机冗余的方法
CN111901192B (zh) * 2020-07-15 2023-09-12 腾讯科技(深圳)有限公司 一种页面访问数据的统计方法及装置
US11831605B2 (en) * 2021-03-29 2023-11-28 Nokia Solutions And Networks Oy Router firewall

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3963690B2 (ja) * 2001-03-27 2007-08-22 富士通株式会社 パケット中継処理装置
JP4365397B2 (ja) * 2001-03-27 2009-11-18 富士通株式会社 パケット中継処理装置
US7689710B2 (en) * 2001-06-12 2010-03-30 Hewlett-Packard Development Company, L.P. Method and system for a front-end modular transmission control protocol (TCP) handoff design in a streams based transmission control protocol/internet protocol (TCP/IP) implementation
US7302700B2 (en) 2001-09-28 2007-11-27 Juniper Networks, Inc. Method and apparatus for implementing a layer 3/layer 7 firewall in an L2 device
US7958199B2 (en) * 2001-11-02 2011-06-07 Oracle America, Inc. Switching systems and methods for storage management in digital networks
JP2007150641A (ja) * 2005-11-28 2007-06-14 Hitachi Ltd パケット通信装置及びネットワークシステム
JP5315823B2 (ja) 2008-07-11 2013-10-16 岩崎電気株式会社 紫外線照射器

Also Published As

Publication number Publication date
WO2011093228A1 (ja) 2011-08-04
US8863269B2 (en) 2014-10-14
JP2011160041A (ja) 2011-08-18
CN102763382B (zh) 2015-09-02
US20130042317A1 (en) 2013-02-14
EP2530886A1 (en) 2012-12-05
CN102763382A (zh) 2012-10-31

Similar Documents

Publication Publication Date Title
JP5382451B2 (ja) フロントエンドシステム、フロントエンド処理方法
US10084751B2 (en) Load balancing among a cluster of firewall security devices
US10200264B2 (en) Link status monitoring based on packet loss detection
US12040968B2 (en) Flow modification including shared context
US9288183B2 (en) Load balancing among a cluster of firewall security devices
EP1624644B1 (en) Privileged network routing
JP5880560B2 (ja) 通信システム、転送ノード、受信パケット処理方法およびプログラム
KR20160134790A (ko) 강화된 흐름 라우팅, 확장성 및 보안성을 가진 자율 시스템들 내에서 그리고 이 자율 시스템들 사이에서 트래픽의 소프트웨어 정의 라우팅을 위한 시스템 및 방법
JP6248929B2 (ja) 通信システム、アクセス制御装置、スイッチ、ネットワーク制御方法及びプログラム
JP5858141B2 (ja) 制御装置、通信装置、通信システム、通信方法及びプログラム
CN104205749B (zh) 一种通信系统、上层交换机、控制装置及交换机控制方法
WO2016108140A1 (en) Ccn fragmentation gateway
WO2013039083A1 (ja) 通信システム、制御装置および通信方法
US20180343196A1 (en) Packet Redirecting Router
EP2916497A1 (en) Communication system, path information exchange device, communication node, transfer method for path information and program
WO2012081721A1 (ja) 通信システム、ノード、パケット転送方法およびプログラム
JP5966488B2 (ja) ネットワークシステム、スイッチ、及び通信遅延短縮方法
EP3373556A1 (en) Method to be implemented at a network element for managing instances of network functions, and corresponding network element
JP2017182138A (ja) 負荷分散システム
KR101538667B1 (ko) 네트워크 시스템 및 네트워크 제어 방법
US9531716B1 (en) Service enabled network
WO2017138851A1 (en) Methods and devices for providing a secure end-to-end communication
KR20030018018A (ko) 패킷 컨트롤 시스템과 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130719

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130918

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees