JP5645139B2 - ネットワークシステム、コントローラ、ネットワーク制御方法 - Google Patents
ネットワークシステム、コントローラ、ネットワーク制御方法 Download PDFInfo
- Publication number
- JP5645139B2 JP5645139B2 JP2011548940A JP2011548940A JP5645139B2 JP 5645139 B2 JP5645139 B2 JP 5645139B2 JP 2011548940 A JP2011548940 A JP 2011548940A JP 2011548940 A JP2011548940 A JP 2011548940A JP 5645139 B2 JP5645139 B2 JP 5645139B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- switch
- entry
- appliance
- predetermined
- 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
Links
- 238000000034 method Methods 0.000 title claims description 79
- 238000006243 chemical reaction Methods 0.000 claims description 86
- 238000012545 processing Methods 0.000 claims description 61
- 238000012546 transfer Methods 0.000 claims description 27
- 230000009471 action Effects 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 9
- 238000013519 translation Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 15
- 235000000421 Lepidium meyenii Nutrition 0.000 description 8
- 235000012902 lepidium meyenii Nutrition 0.000 description 8
- 101100059544 Arabidopsis thaliana CDC5 gene Proteins 0.000 description 6
- 101150115300 MAC1 gene Proteins 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 101000641224 Homo sapiens Vimentin-type intermediate filament-associated coiled-coil protein Proteins 0.000 description 5
- 102100034331 Vimentin-type intermediate filament-associated coiled-coil protein Human genes 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- HMUNWXXNJPVALC-UHFFFAOYSA-N 1-[4-[2-(2,3-dihydro-1H-inden-2-ylamino)pyrimidin-5-yl]piperazin-1-yl]-2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethanone Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)N1CCN(CC1)C(CN1CC2=C(CC1)NN=N2)=O HMUNWXXNJPVALC-UHFFFAOYSA-N 0.000 description 1
- 101100244969 Arabidopsis thaliana PRL1 gene Proteins 0.000 description 1
- 102100039558 Galectin-3 Human genes 0.000 description 1
- 101000953488 Homo sapiens Inositol hexakisphosphate and diphosphoinositol-pentakisphosphate kinase 2 Proteins 0.000 description 1
- 101100454448 Homo sapiens LGALS3 gene Proteins 0.000 description 1
- 102100037736 Inositol hexakisphosphate and diphosphoinositol-pentakisphosphate kinase 2 Human genes 0.000 description 1
- 101150051246 MAC2 gene Proteins 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、ネットワークシステムとその制御方法に関する。特に、本発明は、パケットヘッダ変換機能を有するアプライアンスを備えるネットワークシステムと、その制御方法に関する。
非特許文献1(Nick McKeown et al., “OpenFlow: Enabling Innovation in Campus Networks”, ACM SIGCOMM Computer Communication Review, Vol. 38, No. 2, 2008. (http://www.openflowswitch.org//documents/openflow−wp−latest.pdf))に、「オープンフロー(OpenFlow)」という技術が記載されている。オープンフローでは、フロー単位で経路制御、障害回復、負荷分散、最適化が行われる。オープンフローでは、転送ノードとして機能するオープンフロースイッチと、そのオープンフロースイッチを制御するオープンフローコントローラが用いられる。
オープンフロースイッチは、「マッチ条件」と「アクション」との対応関係を示すフローテーブルを備え、このフローテーブルに従って動作する。具体的には、オープンフロースイッチは、パケットを受け取ると、フローテーブルを参照し、受信パケットにマッチするエントリをフローテーブルから検索する。受信パケットにマッチするエントリがフローテーブルに登録されている場合、オープンフロースイッチは、当該マッチエントリで指定されるアクションを受信パケットに対して実行する。典型的には、オープンフロースイッチは、アクションで指定されている出力ポートに受信パケットを転送する。
オープンフロースイッチのフローテーブルの内容を設定するのが、オープンフローコントローラである。すなわち、オープンフローコントローラは、新規エントリの追加、エントリ変更、エントリ削除などをオープンフロースイッチに指示し、それにより、オープンフロースイッチの動作を制御することができる。オープンフロースイッチの動作を制御することにより、ネットワークトラフィックを制御することが可能である。
また、ネットワークトラフィックに対して特定の処理を実行する「アプライアンス(ネットワークアプライアンス)」が一般に知られている。アプライアンスとしては、ロードバランサやファイアウォールが例示される。例えば、レイヤ4のロードバランサは、あるフローの最初のパケットを受信した場合、複数のサーバの中から1つを選択する。そして、ロードバランサは、当該パケットのヘッダ情報の変換を適宜行い、変換後のパケットを選択したサーバに転送する。このようなパケットのヘッダ情報の変換は、以下「パケットヘッダ変換」と参照される。その後、同一フローに属するパケットを受信した場合、ロードバランサは、当該受信パケットに対して同様のパケットヘッダ変換を行い、変換後のパケットを選択したサーバに転送する。このようにして、サーバ間の負荷分散が可能となる。
Nick McKeown et al., "OpenFlow: Enabling Innovation in Campus Networks", ACM SIGCOMM Computer Communication Review, Vol. 38, No. 2, 2008. (http://www.openflowswitch.org//documents/openflow−wp−latest.pdf)
本願発明者は次の点に着目した。すなわち、アプライアンスが行うパケットヘッダ変換をフローテーブル中のエントリとして設定することができれば、アプライアンスの処理をスイッチに肩代わりさせることができるはずである。言い換えれば、あるアプライアンスを経由しているトラフィックを、あるタイミングから、当該アプライアンスを経由しないように制御することができるはずである。このようなトラフィック制御は、以下「ショートカット」と参照される。
あるアプライアンスを経由しているトラフィックに関してショートカットを実現するためには、当該アプライアンス内でパケットに対して行われている処理の詳細を、スイッチが知る必要がある。しかしながら、一般に、アプライアンスはブラックボックス型の製品であり、スイッチがアプライアンス内部の処理に関する情報を取得することは困難である。
例えば、ロードバランサは、あるフローの最初のパケットを受信した場合、複数のサーバの中から1つを選択する。そして、ロードバランサは、同一フローに属するパケットを受信した場合、当該受信パケットに対してパケットヘッダ変換を行い、変換後のパケットを選択したサーバに転送する。このロードバランサを経由しているトラフィックに関してショートカットを実現するためには、スイッチは、当該ロードバランサによって選択されたサーバを少なくとも知る必要がある。しかしながら、選択サーバは、当該ロードバランサだけが知り得る情報である。一般に、ロードバランサはブラックボックス型の製品であり、スイッチが、当該ロードバランサによって選択されたサーバを知ることは困難である。無理にそのような情報を取得しようとすれば、ロードバランサを改造する必要があり、そのことは、ライセンス違反や開発コストの増大といった問題を招く。
本発明の1つの目的は、アプライアンスを改造することなく、当該アプライアンスを経由するトラフィックに関するショートカットを実現することにある。
本発明の1つの観点において、ネットワークシステムが提供される。そのネットワークシステムは、アプライアンスと、コントローラと、アプライアンス及びコントローラに接続されたスイッチとを備える。アプライアンスは、パケットのヘッダ情報を所定の変換方式に従って変換するパケットヘッダ変換を行う。コントローラは、上記所定の変換方式及び所定の条件を示すショートカット管理情報が格納された記憶装置を備える。スイッチは、フローテーブルを有する。フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定する。スイッチは、パケットを受け取るとフローテーブルを参照し、受け取ったパケットにマッチするエントリで指定されるアクションを、受け取ったパケットに対して行う。
ショートカット設定処理において、スイッチは、所定のパケットをアプライアンスに転送する。アプライアンスは、所定のパケットに対してパケットヘッダ変換を行うことにより変換後パケットを作成し、変換後パケットをスイッチに返信する。スイッチは、アプライアンスから受け取った変換後パケットをコントローラに転送する。コントローラは、変換後パケットに応答してショートカット管理情報を参照する。変換後パケットが所定の条件を満たす場合、コントローラは、変換後パケットの宛先及び所定の変換方式に基いて、新規エントリの設定を指示するエントリ設定データを作成し、エントリ設定データをスイッチに送信する。ここで、新規エントリは、上記所定のパケットと同じフローに属するパケットを、アプライアンスを経由することなく上記宛先に向けて転送することを指定する。スイッチは、コントローラから受け取ったエントリ設定データに従って、フローテーブルに新規エントリを追加する。
本発明の他の観点において、スイッチ及びアプライアンスが配置されたネットワークを制御するコントローラが提供される。スイッチは、フローテーブルを有する。フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定する。スイッチは、パケットを受け取るとフローテーブルを参照し、受け取ったパケットにマッチするエントリで指定されるアクションを、受け取ったパケットに対して行う。スイッチは、コントローラから受け取るエントリ設定データに従って、フローテーブルのエントリを設定する。アプライアンスは、パケットのヘッダ情報を所定の変換方式に従って変換するパケットヘッダ変換を行う。ショートカット設定処理において、スイッチは、所定のパケットをアプライアンスに転送する。アプライアンスは、所定のパケットに対してパケットヘッダ変換を行うことにより変換後パケットを作成し、変換後パケットをスイッチに返信する。スイッチは、アプライアンスから受け取った変換後パケットをコントローラに転送する。
本発明に係るコントローラは、上記所定の変換方式及び所定の条件を示すショートカット管理情報が格納された記憶装置と、ショートカット設定処理においてスイッチ設定処理を行う処理装置と、を備える。そのスイッチ設定処理において、処理装置は、上記変換後パケットに応答してショートカット管理情報を参照する。変換後パケットが所定の条件を満たす場合、処理装置は、変換後パケットの宛先及び所定の変換方式に基いて、新規エントリの設定を指示するエントリ設定データを作成し、エントリ設定データをスイッチに送信する。その新規エントリは、上記所定のパケットと同じフローに属するパケットを、アプライアンスを経由することなく上記宛先に向けて転送することを指定する。
本発明の更に他の観点において、スイッチ及びアプライアンスが配置されたネットワークの「制御方法」が提供される。スイッチは、フローテーブルを有する。フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定する。スイッチは、パケットを受け取るとフローテーブルを参照し、受け取ったパケットにマッチするエントリで指定されるアクションを、受け取ったパケットに対して行う。アプライアンスは、パケットのヘッダ情報を所定の変換方式に従って変換するパケットヘッダ変換を行う。
本発明に係る上記「制御方法」は、(A)スイッチからアプライアンスに所定のパケットを転送することと、(B)アプライアンスにおいて、所定のパケットに対してパケットヘッダ変換を行うことにより変換後パケットを作成し、変換後パケットをスイッチに返信することと、(C)スイッチから変換後パケットを取得することと、(D)変換後パケットに応答して、所定の変換方式及び所定の条件を示すショートカット管理情報を記憶装置から読み出すことと、(E)変換後パケットが所定の条件を満たす場合、変換後パケットの宛先及び所定の変換方式に基いて、新規エントリの設定を指示するエントリ設定データを作成することと、ここで、新規エントリは、上記所定のパケットと同じフローに属するパケットを、アプライアンスを経由することなく上記宛先に向けて転送することを指定し、(F)エントリ設定データをスイッチに送信することと、(G)スイッチにおいて、エントリ設定データに従って、フローテーブルに新規エントリを追加することと、を含む。
本発明の更に他の観点において、スイッチ及びアプライアンスが配置されたネットワークの「制御処理」をコンピュータに実行させる制御プログラムが提供される。スイッチは、フローテーブルを有する。フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定する。スイッチは、パケットを受け取るとフローテーブルを参照し、受け取ったパケットにマッチするエントリで指定されるアクションを、受け取ったパケットに対して行う。スイッチは、コントローラから受け取るエントリ設定データに従って、フローテーブルのエントリを設定する。アプライアンスは、パケットのヘッダ情報を所定の変換方式に従って変換するパケットヘッダ変換を行う。ショートカット設定処理において、スイッチは、所定のパケットをアプライアンスに転送する。アプライアンスは、所定のパケットに対してパケットヘッダ変換を行うことにより変換後パケットを作成し、変換後パケットをスイッチに返信する。スイッチは、アプライアンスから受け取った変換後パケットをコンピュータに転送する。
本発明に係る上記「制御処理」は、(a)変換後パケットに応答して、所定の変換方式及び所定の条件を示すショートカット管理情報を記憶装置から読み出すことと、(b)変換後パケットが所定の条件を満たす場合、変換後パケットの宛先及び所定の変換方式に基いて、新規エントリの設定を指示するエントリ設定データを作成することと、ここで、新規エントリは、上記所定のパケットと同じフローに属するパケットを、アプライアンスを経由することなく上記宛先に向けて転送することを指定し、(c)エントリ設定データをスイッチに送信することと、を含む。
本発明によれば、アプライアンスを改造することなく、当該アプライアンスを経由するトラフィックに関するショートカットを実現することが可能となる。
上記及び他の目的、長所、特徴は、次の図面と共に説明される本発明の実施の形態により明らかになるであろう。
添付図面を参照して、本発明の実施の形態を説明する。
1.構成
図1は、本実施の形態に係るネットワークシステム1の構成を概略的に示している。本実施の形態に係るネットワークシステム1は、例えば、データセンターに適用される。
図1は、本実施の形態に係るネットワークシステム1の構成を概略的に示している。本実施の形態に係るネットワークシステム1は、例えば、データセンターに適用される。
ネットワークシステム1は、サーバ10、スイッチ100、アプライアンス200、及びコントローラ300を備えている。スイッチ100及びアプライアンス200は、スイッチ−アプライアンスネットワークを構成している。サーバ10は、そのスイッチ−アプライアンスに接続されている。スイッチ−アプライアンスネットワークは更に、ネットワークシステム1の外部の外部ネットワークに接続されている。
1−1.スイッチ100
スイッチ100は、パケット転送等のスイッチ処理を行う。より詳細には、図2に示されるように、スイッチ100は、スイッチ処理部110、コントローラ通信部120、記憶部130、及び複数のポート150を備えている。外部からパケットが入力されるポート150は入力ポートであり、パケットが外部に出力されるポート150は出力ポートである。スイッチ処理部110は、入力ポートから出力ポートへのパケット転送等、主要なパケット処理を行う。コントローラ通信部120は、制御回線を介してコントローラ300に接続されており、コントローラ300との間で通信を行う際のインタフェースとなる。
スイッチ100は、パケット転送等のスイッチ処理を行う。より詳細には、図2に示されるように、スイッチ100は、スイッチ処理部110、コントローラ通信部120、記憶部130、及び複数のポート150を備えている。外部からパケットが入力されるポート150は入力ポートであり、パケットが外部に出力されるポート150は出力ポートである。スイッチ処理部110は、入力ポートから出力ポートへのパケット転送等、主要なパケット処理を行う。コントローラ通信部120は、制御回線を介してコントローラ300に接続されており、コントローラ300との間で通信を行う際のインタフェースとなる。
記憶ブロック130には、図3に示されるようなフローテーブルTBLが格納されている。フローテーブルTBLの各エントリENTは、「マッチ条件(フロー識別情報)」と「アクション」を示している。「マッチ条件」は、パケットの入力ポート、送信元MACアドレス、宛先MACアドレス、VLAN ID、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号などのパラメータの組み合わせで構成される。尚、フローもそれらパラメータの組み合わせで定義される。つまり、「マッチ条件」は、フローを規定するフロー識別情報でもある。「アクション」は、マッチ条件にマッチするパケットに対して行われる処理を指定する。「アクション」としては、指定ポートへのパケット出力、パケット廃棄等が挙げられる。
スイッチ処理部110は、入力ポートを通してパケットを受信すると、記憶ブロック130に格納されているフローテーブルTBLを参照する。そして、スイッチ処理部110は、フローテーブルTBLの中から、当該受信パケットにマッチするエントリENTを検索する。具体的には、スイッチ処理部110は、受信パケットのヘッダ情報を抽出し、受信パケットの入力ポート及びヘッダ情報を検索キーとして用いることにより、フローテーブルTBLの検索を行う。その検索キーと一致するマッチ条件を示すエントリENTが、受信パケットにマッチするマッチエントリである。受信パケットがいずれかのエントリENTのマッチ条件にマッチした場合、すなわち、マッチエントリが見つかった場合、スイッチ処理部110は、そのマッチエントリで指定される「アクション」を受信パケットに対して行う。
1−2.アプライアンス200
アプライアンス(ネットワークアプライアンス)200は、ネットワークトラヒックに対して特定の処理を実行するネットワーク装置である。アプライアンス200としては、ロードバランサやファイアウォールが例示される。本実施の形態において、アプライアンス200は、パケットのヘッダ情報を所定の変換方式に従って変換する「パケットヘッダ変換」を行う。
アプライアンス(ネットワークアプライアンス)200は、ネットワークトラヒックに対して特定の処理を実行するネットワーク装置である。アプライアンス200としては、ロードバランサやファイアウォールが例示される。本実施の形態において、アプライアンス200は、パケットのヘッダ情報を所定の変換方式に従って変換する「パケットヘッダ変換」を行う。
アプライアンス200の一例として、DSR(Direct Server Return)構成を有するL4ロードバランサを考える。そのロードバランサは、あるフローの最初のパケットを受信した場合、複数のサーバの中から1つを選択する。そして、ロードバランサは、当該パケットのヘッダ中の送信先MACアドレスを、“選択サーバのMACアドレス”に変換する。このような変換方式は、MAT(MAC Address Translation)型と呼ばれている。その後、同一フローに属するパケットを受信した場合、ロードバランサは、当該受信パケットに対して同様のパケットヘッダ変換を行い、変換後のパケットを選択したサーバに転送する。
所定の変換方式としては、上記MAT型以外に、NAT(Network Address Translation)型やNAPT(Network Address Port Translation)型も考えられる。NAT型の場合、アプライアンス200は、パケットのヘッダ中の送信元IPアドレスあるいは宛先IPアドレスを、選択サーバのIPアドレスに変換する。NAPT型の場合、アプライアンス200は、NAT型の場合に加えてL4ポート番号をも変換する。
1−3.コントローラ300
コントローラ300は、ネットワークにおけるトラフィックを制御する。コントローラ300は、ネットワーク中に配置されている各スイッチ100及び各アプライアンス200に対して、制御回線(図1中、破線で示されている)を介して接続されている。コントローラ300は、制御回線を介してスイッチ100やアプライアンス200から情報を受け取り、また、制御回線を介してスイッチ100やアプライアンス200を制御する。
コントローラ300は、ネットワークにおけるトラフィックを制御する。コントローラ300は、ネットワーク中に配置されている各スイッチ100及び各アプライアンス200に対して、制御回線(図1中、破線で示されている)を介して接続されている。コントローラ300は、制御回線を介してスイッチ100やアプライアンス200から情報を受け取り、また、制御回線を介してスイッチ100やアプライアンス200を制御する。
例えば、コントローラ300は、制御回線を介して、各スイッチ100のフローテーブルTBLの内容を設定する機能を有する。具体的には、コントローラ300は、エントリENTの設定(追加、変更、削除等)を指示する「エントリ設定データ」を作成し、そのエントリ設定データを対象スイッチ100に送る。エントリ設定データを受け取ったスイッチ100は、そのエントリ設定データに従って、自身のフローテーブルTBL内のエントリENTの設定(追加、変更、削除等)を行う。このように、コントローラ300は、フローテーブルTBLの内容の設定を通してスイッチ100の動作を制御し、それにより、ネットワークトラフィックを適宜制御することができる。
このような処理を実現するためのコントローラ300とスイッチ100との間のインタフェース方式としては、例えば、Openflow(http://www.openflowswitch.org/を参照)が挙げられる。この場合、「Openflow Controller」がコントローラ300となり、「Openflow Switch」が各スイッチ100となる。
図4は、本実施の形態に係るコントローラ300の構成を示すブロック図である。コントローラ300は、処理装置301、記憶装置302、及び通信装置303を備えている。処理装置301は、CPU(Central Processing Unit)を含む。記憶装置302は、例えば、RAM(Random Access Memory)やHDD(Hard Disk Drive)を含む。通信装置303は、例えば、外部との通信を行うネットワークカードを含む。
記憶装置302には、接続情報CON、ショートカット管理情報SCM、エントリ設定データSET等が格納される。エントリ設定データSETは、上述の通り、対象スイッチ100に対してエントリENTの設定(追加、変更、削除等)を指示する情報である。
接続情報CONは、ネットワークの接続関係を示す。つまり、接続情報CONは、サーバ10、スイッチ100、アプライアンス200といった構成要素間の接続関係(トポロジ)を示す。より詳細には、接続情報CONは、各構成要素の各ポートがどの構成要素のどのポートに接続されているかを示す。各構成要素の識別情報としては、MACアドレスやIPアドレスなどが挙げられる。
ショートカット管理情報SCMは、後述される「ショートカット設定処理」の際に用いられる。図5は、本実施の形態におけるショートカット管理情報SCMを概念的に示している。図5に示されるように、ショートカット管理情報SCMは、アプライアンス200毎に次のような情報を有している:(1)該当アプライアンス200の識別情報、典型的にはアプライアンス名;(2)該当アプライアンス200が接続されているポート;(3)該当アプライアンス200におけるパケットヘッダの変換方式;及び(4)ショートカット適用タイミング。パケットヘッダの変換方式としては、上述のMAT型、NAT型、NAPT型が例示される。
ショートカット適用タイミングとは、該当アプライアンス200を経由するトラフィックに対して「ショートカット」を適用するタイミング(所定の条件)である。言い換えれば、このショートカット適用タイミングで表される所定の条件が満たされたとき、該当アプライアンス200を経由するトラフィックに関して「ショートカット」が実施される。
例として、上述のロードバランサを考える。ロードバランサは、あるフローの最初のパケットを受信したときに、複数のサーバの中から1つを選択する。そして、ロードバランサは、その選択サーバのアドレスに基づいてパケットヘッダ変換を行う。従って、ショートカット適用タイミングとしては、「あるフローの最初のパケットを受け取ったとき」に設定されると好適である。
他の例として、ステートフル動作を行うファイアウォールを考える。そのファイアウォールは、例えば、TCPの3WAYハンドシェイクが完了したフローのパケットのみを通過させる。この場合、ファイアウォールは、TCPのSYN−ACK(SYNchronize−ACKnowledgement)パケットを受信した時に、当該フローの後続パケットの通過を許可すると判断する。従って、ショートカット適用タイミングとしては、「TCPのSYN−ACKパケットを受け取ったとき」に設定されると好適である。
処理装置301は、本実施の形態に係るネットワーク制御処理を行う。より詳細には、図4に示されるように、処理装置301は、スイッチ通信部310及び制御部320を備えている。これら機能ブロックは、処理装置301が制御プログラムPROGを実行することにより実現される。制御プログラムPROGは、コンピュータ(処理装置301)によって実行されるコンピュータプログラムであり、記憶装置302に格納される。制御プログラムPROGは、コンピュータ読み取り可能な記録媒体に格納されていてもよい。
2.処理
2−1.初期設定処理
図6は、本実施の形態に係る初期設定処理を示すフローチャートである。初期設定処理においては、オペレータによって、アプライアンス200がネットワークに新規に追加される。その新規のアプライアンス200は、以下「対象アプライアンス200」と参照される。
2−1.初期設定処理
図6は、本実施の形態に係る初期設定処理を示すフローチャートである。初期設定処理においては、オペレータによって、アプライアンス200がネットワークに新規に追加される。その新規のアプライアンス200は、以下「対象アプライアンス200」と参照される。
ステップS1:
オペレータは、対象アプライアンス200を、ネットワーク中のいずれかのスイッチ100に物理的に接続する。対象アプライアンス200が接続されたスイッチ100は、以下「対象スイッチ100」と参照される。コントローラ300は、例えば、IEEE802.1ABで規定されているLLDP(Link Layer Discovery Protocol)を利用することによって、接続情報CONを更新する。
オペレータは、対象アプライアンス200を、ネットワーク中のいずれかのスイッチ100に物理的に接続する。対象アプライアンス200が接続されたスイッチ100は、以下「対象スイッチ100」と参照される。コントローラ300は、例えば、IEEE802.1ABで規定されているLLDP(Link Layer Discovery Protocol)を利用することによって、接続情報CONを更新する。
ステップS2:
オペレータは、対象アプライアンス200に関するショートカット管理情報SCMを作成し、そのショートカット管理情報SCMをコントローラ300の記憶装置302に格納する。パケットヘッダ変換方式は、対象アプライアンス200のものであり、上述のMAT型、NAT型、NAPT型のいずれかである。ショートカット適用タイミングも、対象アプライアンス200の種別に応じて設定される。
オペレータは、対象アプライアンス200に関するショートカット管理情報SCMを作成し、そのショートカット管理情報SCMをコントローラ300の記憶装置302に格納する。パケットヘッダ変換方式は、対象アプライアンス200のものであり、上述のMAT型、NAT型、NAPT型のいずれかである。ショートカット適用タイミングも、対象アプライアンス200の種別に応じて設定される。
ステップS3:
オペレータは、対象スイッチ100のフローテーブルTBLに、「デフォルトエントリENT−D」を設定する。本例では、第1デフォルトエントリENT−D1と第2デフォルトエントリENT−D2の2つが設定される。第1デフォルトエントリENT−D1は、対象アプライアンス200宛のパケットを対象アプライアンス200へ転送することを指定する。第2デフォルトエントリENT−D2は、対象アプライアンス200から受け取るパケットをコントローラ300へ転送することを指定する。
オペレータは、対象スイッチ100のフローテーブルTBLに、「デフォルトエントリENT−D」を設定する。本例では、第1デフォルトエントリENT−D1と第2デフォルトエントリENT−D2の2つが設定される。第1デフォルトエントリENT−D1は、対象アプライアンス200宛のパケットを対象アプライアンス200へ転送することを指定する。第2デフォルトエントリENT−D2は、対象アプライアンス200から受け取るパケットをコントローラ300へ転送することを指定する。
2−2.ショートカット設定処理
以下、本実施の形態に係る「ショートカット設定処理」を説明する。図7は、スイッチ100による処理(ステップS100)を示すフローチャートである。図8は、アプライアンス200による処理(ステップS200)を示すフローチャートである。図9は、コントローラ300による処理(ステップS300)を示すフローチャートである。
以下、本実施の形態に係る「ショートカット設定処理」を説明する。図7は、スイッチ100による処理(ステップS100)を示すフローチャートである。図8は、アプライアンス200による処理(ステップS200)を示すフローチャートである。図9は、コントローラ300による処理(ステップS300)を示すフローチャートである。
まず、対象スイッチ100が、あるフローのパケットを受信する(ステップS110)。対象スイッチ100のスイッチ処理部110は、フローテーブルの検索を行う(ステップS120)。
ここで、受信パケットは、対象アプライアンス200宛の所定のパケットであるとする。この場合、受信パケットは、フローテーブルTBL中の第1デフォルトエントリENT−D1にマッチする(ステップS130;Yes)。従って、スイッチ処理部110は、第1デフォルトエントリENT−D1に従って、受信パケットを対象アプライアンス200に転送する(ステップS140)。受信パケットが対象スイッチ100から対象アプライアンス200へ送られると、処理は、対象アプライアンス200によるステップS200に移行する。
対象アプライアンス200は、対象スイッチ100からパケットを受信する(ステップS210)。受信パケットに応答して、対象アプライアンス200は、アプライアンスとしての処理を実行する。このとき、対象アプライアンス200は、受信パケットに対して、所定の変換方式に従ってパケットヘッダ変換を行う(ステップS220)。パケットヘッダ変換の結果作成されるパケットは、以下「変換後パケット」と参照される。つまり、対象アプライアンス200は、受信パケットに対してパケットヘッダ変換を行うことにより、変換後パケットを作成する。対象アプライアンス200は、作成した変換後パケットを対象スイッチ100に返信する(ステップS230)。
対象スイッチ100は、対象アプライアンス200から変換後パケットを受信する(ステップS110)。対象スイッチ100のスイッチ処理部110は、フローテーブルの検索を行う(ステップS120)。この場合、変換後パケットは、フローテーブルTBL中の第2デフォルトエントリENT−D2にマッチする(ステップS130;No、ステップS150;Yes)。従って、スイッチ処理部110は、第2デフォルトエントリENT−D2に従って、変換後パケットをコントローラ通信部120を通してコントローラ300に転送する(ステップS160)。変換後パケットが対象スイッチ100からコントローラ300へ送られると、処理は、コントローラ300によるステップS300に移行する。
ステップS300において、コントローラ300は、「スイッチ設定処理」を行う。まず、処理装置301のスイッチ通信部310は、通信装置303を通して、対象スイッチ100から変換後パケットを受信(取得)する(ステップS310)。スイッチ通信部310は、取得した変換後パケットを制御部320に渡す。制御部320は、変換後パケットのヘッダ情報に基づき、当該変換後パケットの送信元が対象アプライアンス200であることを認識する(ステップS320)。
次に、制御部320は、対象アプライアンス200に関するショートカット管理情報SCMを記憶装置320から読み出す。そして、制御部320は、そのショートカット管理情報SCMを参照することにより、今が「ショートカット適用タイミング」であるか否かを判定する(ステップS330)。言い換えれば、制御部320は、ショートカット管理情報SCMを参照することにより、今回の変換後パケットがショートカット適用タイミングで示される所定の条件を満たすか否かを判定する。例えば、上述のロードバランサの場合、ショートカット適用タイミングは「あるフローの最初のパケットを受け取ったとき」である。よって、今回受け取った変換後パケットが、当該パケットが属するフローの最初のパケットであれば、条件が満たされることになる。
今がショートカット適用タイミングでない場合(ステップS340;No)、制御部320は、パケットヘッダに従って、変換後パケットをその宛先に向けて送信する(ステップS370)。
一方、今がショートカット適用タイミングである場合(ステップS340;Yes)、ショートカットを実現するために必要な新規エントリを、対象スイッチ100のフローテーブルTBLに設定すればよい。そのために、制御部320は、ショートカットに必要な新規エントリの設定を指示するエントリ設定データSETを作成する(ステップS350)。このとき、制御部320は、接続情報CON及びショートカット管理情報SCMを記憶装置302から読み出し、参照する。また、制御部320は、変換後パケットのヘッダ情報を参照し、変換後パケットの宛先アドレスを取得する。そして、制御部320は、対象アプライアンス200の変換方式を示すショートカット管理情報SCM、変換後パケットの宛先アドレスを含むヘッダ情報、接続情報CONといった情報に基いて、必要な新規エントリを設計する。
ショートカットに必要な新規エントリとは、「対象スイッチ100が受け取った所定のパケットと同じフローに属するパケットを、対象アプライアンス200を経由することなく、変換後パケットの宛先に向けて転送すること」を指定するエントリである。そのような新規エントリは、例えば、ヘッダ変換エントリENT−HCと転送エントリENT−TRとを含む。
ヘッダ変換エントリENT−HCは、「対象スイッチ100が受け取った所定のパケットと同じフローに属するパケットのヘッダ情報を、対象アプライアンス200によるパケットヘッダ変換と等価に書き換えること」を指定する。このようなヘッダ変換エントリENT−HCを設計するためには、変換後パケットのヘッダ情報、及びショートカット管理情報SCMで示される対象アプライアンス200の変換方式を参照すればよい。
一方、転送エントリENT−TRは、「対象スイッチ100が受け取った所定のパケットと同じフローに属するパケットを、変換後パケットの宛先につながる出力ポートに出力すること」を指定する。このような転送エントリENT−TRを設計するためには、変換後パケットのヘッダ情報、及び接続情報CONを参照すればよい。
更に、これら新規エントリENT−HC及びENT−TRの各々の優先度は、上述のデフォルトエントリENT−D1、ENT−D2の優先度よりも高く設計される。
制御部320は、作成したエントリ設定データSETを対象スイッチ100に送信するよう、スイッチ通信部310に指示する。スイッチ通信部310は、通信装置303を通して、エントリ設定データSETを対象スイッチ100に送信する(ステップS360)。
ステップS400において、対象スイッチ100は、コントローラ300からエントリ設定データSETを受け取る。そのエントリ設定データSETに従って、対象スイッチ100のスイッチ処理部110は、フローテーブルTBLに新規エントリENT−HC及びENT−TRを追加する。これら新規エントリENT−HC及びENT−TR各々の優先度は、上述のデフォルトエントリENT−D1、ENT−D2の優先度よりも高い。
それ以降、対象スイッチ100が同一フローに属するパケットを受け取った場合(ステップS110、S120)、受信パケットは、フローテーブルTBL中の新規エントリENT−HC及びENT−TRにマッチする(ステップS130;No、ステップS150;No、ステップS170;Yes)。この場合、スイッチ処理部110は、新規エントリENT−HC及びENT−TRに従って、受信パケットのヘッダ情報を書き換え、指定された出力ポートに出力する(ステップS180)。これにより、当該フローのパケットは、対象アプライアンス200を経由することなく、対象スイッチ100から宛先サーバに直接転送されることになる。すなわち、当該フローに関して「ショートカット」が実現される。
尚、図7で示された処理フローでは、受信パケットがフローテーブルTBL中のいずれのエントリENTにもマッチしない場合(ステップS170;No)、スイッチ処理部110は、受信パケットを廃棄する(ステップS190)。但し、これに限られない。
3.具体例
3−1.第1の例
図10は、第1の例におけるネットワーク構成を示している。対象アプライアンス200は、DSR構成で組まれたネットワークにおけるロードバランサ200Aである。このロードバランサ200Aによるパケット変換方式は、MAT型である。初期設定処理において、このロードバランサ200Aが、スイッチ100の“ポート4”に物理的に接続される。ロードバランサ200Aに関するショートカット管理情報SCMは、次の通りである。
3−1.第1の例
図10は、第1の例におけるネットワーク構成を示している。対象アプライアンス200は、DSR構成で組まれたネットワークにおけるロードバランサ200Aである。このロードバランサ200Aによるパケット変換方式は、MAT型である。初期設定処理において、このロードバランサ200Aが、スイッチ100の“ポート4”に物理的に接続される。ロードバランサ200Aに関するショートカット管理情報SCMは、次の通りである。
・アプライアンス名:ロードバランサ200A
・接続ポート:スイッチ100のポート4
・パケットヘッダ変換方式:MAT
・ショートカット適用タイミング:最初のパケット到着時
・接続ポート:スイッチ100のポート4
・パケットヘッダ変換方式:MAT
・ショートカット適用タイミング:最初のパケット到着時
図10に示されるように、スイッチ100のポート0には、コントローラ300が接続されている。スイッチ100のポート1、ポート2、及びポート3には、それぞれ、クライアント20−0(MACアドレス=MAC0,IPアドレス=IP0)、クライアント20−1(MACアドレス=MAC1,IPアドレス=IP1)、及びクライアント20−2(MACアドレス=MAC2,IPアドレス=IP2)が接続されている。スイッチ100のポート4には、ロードバランサ200A(MACアドレス=VMAC,IPアドレス=VIP)が接続されている。スイッチ100のポート5、ポート6、及びポート7には、それぞれ、サーバ10−a(MACアドレス=MACa,IPアドレス=IPa,ループバックアドレス=VIP)、サーバ10−b(MACアドレス=MACb,IPアドレス=IPb,ループバックアドレス=VIP)、及びサーバ10−c(MACアドレス=MACc,IPアドレス=IPc,ループバックアドレス=VIP)が接続されている。尚、サーバ10のループバックアドレス=VIPは、DSR構成で組まれたネットワークにおけるロードバランサ200Aならではの設定であり、VIP宛のパケットを受信するための設定である。
このようなネットワーク構成の場合、スイッチ100のフローテーブルTBLに設定される第1デフォルトエントリENT−D1及び第2デフォルトエントリENT−D2は、図11のようになる。第1デフォルトエントリENT−D1は、ロードバランサ200A(宛先IPアドレス=VIP)宛のパケットを、そのロードバランサ200Aへ転送すること(出力ポート=ポート4)を指定している。第2デフォルトエントリENT−D2は、ロードバランサ200A(入力ポート=ポート4)から受け取るパケットを、コントローラ300へ転送することを指定している。
クライアント20−1が、次のようなヘッダ情報を有するTCPパケットをロードバランサ200Aに向けて送信する場合を考える。
・宛先MACアドレス=VMAC
・送信元MACアドレス=MAC1
・宛先IPアドレス=VIP
・送信元IPアドレス=IP1
・宛先TCPポート番号=80
・送信元TCPポート番号=p0
・送信元MACアドレス=MAC1
・宛先IPアドレス=VIP
・送信元IPアドレス=IP1
・宛先TCPポート番号=80
・送信元TCPポート番号=p0
スイッチ100は、当該フローの最初のパケットを、クライアント20−1につながるポート2から受信する。この受信パケットは、図11で示された第1デフォルトエントリENT−D1にマッチする(ステップS130;Yes)。従って、スイッチ100は、第1デフォルトエントリENT−D1に従って、受信パケットをポート4から出力する(ステップS140)。ポート4はロードバランサ200Aにつながっており、ロードバランサ200Aはこのパケットを受け取る。
ロードバランサ200Aは、アプライアンスとしての処理を実行する(ステップS200)。ここでは、ロードバランサ200Aは、複数のサーバ10の中からサーバ10−a(MACアドレス=MACa)を振り分け先として選択したとする。ロードバランサ200Aは、所定の変換方式(MAT)に従い、受信パケットの宛先MACアドレスを“VMAC”から“MACa”に変換する。これにより得られる変換後パケットのヘッダ情報は、次の通りである。
・宛先MACアドレス=MACa
・送信元MACアドレス=MAC1
・宛先IPアドレス=VIP
・送信元IPアドレス=IP1
・宛先TCPポート番号=80
・送信元TCPポート番号=p0
・送信元MACアドレス=MAC1
・宛先IPアドレス=VIP
・送信元IPアドレス=IP1
・宛先TCPポート番号=80
・送信元TCPポート番号=p0
ロードバランサ200Aは、変換後パケットをスイッチ100に返信する。スイッチ100は、変換後パケットを、ロードバランサ200Aにつながるポート4から受信する。従って、この変換後パケットは、図11で示された第2デフォルトエントリENT−D2にマッチする(ステップS150;Yes)。この場合、スイッチ100は、第2デフォルトエントリENT−D2に従って、変換後パケットをコントローラ300に転送する(ステップS160)。
コントローラ300は、変換後パケットを受け取ると、当該変換後パケットの送信元がロードバランサ200Aであることを認識する(ステップS320)。例えば、コントローラ300は、パケットヘッダから、「この変換後パケットが入力されたスイッチ100の入力ポートがポート4であった」という情報を取得する。この情報とショートカット管理情報SCMとを照らし合わせることにより、コントローラ300は、変換後パケットの送信元としてのロードバランサ200Aを認識する。
続いて、コントローラ300は、ロードバランサ200Aに関するショートカット管理情報SCMを参照して、「今がショートカット適用タイミングである」と判定し、必要なエントリ設定データSETを作成する(ステップS350)。具体的には、コントローラ300は、ロードバランサ200Aに関するショートカット管理情報SCM、変換後パケットのヘッダ情報、及び接続情報CONに基づいて、図12に示されるようなヘッダ変換エントリENT−HC及び転送エントリENT−TRを設計する。
ヘッダ変換エントリENT−HC及び転送エントリENT−TRの「マッチ条件」は、変換後パケットのヘッダ情報やロードバランサ200Aのアドレス(VMAC,IP1)に基いて設計することができる。尚、送信元MACアドレスMAC1は、IPアドレスIP1に対するARP要求から得ることができる。あるいは、送信元MACアドレスMAC1は、「Any(*)」に設定されてもよい。また、「入力ポート(IN PORT):2」は、送信元アドレス(MAC1,IP1)につながるスイッチ100のポートであり、接続情報CONを参照することにより得られる。
ヘッダ変換エントリENT−HCの「アクション」は、「宛先MACアドレスをMACaに変換すること」である。これは、ショートカット管理情報SCMで示されるパケットヘッダ変換方式(=MAT型)、及び変換後パケットの宛先MACアドレス(=MACa)に基いて設計することができる。
転送エントリENT−TRの「アクション」は、「パケットを出力ポート5に出力すること」である。この出力ポート5」は、変換後パケットの宛先MACアドレス(=MACa)につながるスイッチ100のポートであり、接続情報CONを参照することにより得られる。
更に、これら新規エントリENT−HC及びENT−TRの各々の優先度(Priority)は、デフォルトエントリENT−D1、ENT−D2の優先度よりも高く設計されている。
コントローラ300は、設計した新規エントリENT−HC、ENT−TRの設定を指示するエントリ設定データENTを、スイッチ100に送信する(ステップS360)。スイッチ100は、図12に示されるように、フローテーブルTBLに新規エントリENT−HC及びENT−TRを追加する(ステップS400)。
それ以降、クライアント20−1からロードバランサ200Aに向けて送信された当該フローのパケットは、ロードバランサ200Aを経由することなく、スイッチ100から宛先サーバ10−aに直接転送されることになる。すなわち、ロードバランサ200Aを経由するトラフィックに関してショートカットが実現される。
尚、DSR構成の場合、サーバ10−aからクライアント20−1へのトラフィックはロードバランサ200Aを経由しないため、既存のルーティング方式でサーバ10−aからクライアント20−1へパケットが転送される。
3−2.第2の例
図13は、第2の例におけるネットワーク構成を示している。上記第1の例の場合と重複する説明は、適宜省略される。
図13は、第2の例におけるネットワーク構成を示している。上記第1の例の場合と重複する説明は、適宜省略される。
第2の例では、対象アプライアンス200は、パケット変換方式がNAT型であるロードバランサ200Bである。NAT構成の場合、ロードバランサ200Bは2つ以上のネットワークインタフェースを持つことが多い。図13に示される例では、2つのネットワークインタフェースのそれぞれに、(MACアドレス=VMAC,IPアドレス=VIP)及び(MACアドレス=VMAC2,IPアドレス=VIP2)が割り当てられている。それら2つのネットワークインタフェースは、それぞれ、スイッチ100のポート4及びポート8に接続される。このロードバランサ200Bに関するショートカット管理情報SCMは、次の通りである。
アプライアンス名:ロードバランサ200B
接続ポート:スイッチ100のポート4(クライアント側)
接続ポート:スイッチ100のポート8(サーバ側)
パケットヘッダ変換方式:NAT(DNAT)
ショートカット適用タイミング:最初のパケット到着時
接続ポート:スイッチ100のポート4(クライアント側)
接続ポート:スイッチ100のポート8(サーバ側)
パケットヘッダ変換方式:NAT(DNAT)
ショートカット適用タイミング:最初のパケット到着時
図14は、スイッチ100のフローテーブルTBLに設定される第1デフォルトエントリENT−D1及び第2デフォルトエントリENT−D2を示している。第1デフォルトエントリENT−D1は、ロードバランサ200B(宛先IPアドレス=VIP)宛のパケットを、そのロードバランサ200Bへ転送すること(出力ポート=ポート4)を指定している。第2デフォルトエントリENT−D2は、ロードバランサ200B(入力ポート=ポート8)から受け取るパケットを、コントローラ300へ転送することを指定している。
第1の例と同様に、クライアント20−1がロードバランサ200Bに向けてTCPパケットを送信する場合を考える。また、ロードバランサ200Bは、複数のサーバ10の中からサーバ10−a(MACアドレス=MACa、IPアドレス=IPa)を振り分け先として選択したとする。ロードバランサ200Bは、所定の変換方式(NAT)に従い、受信パケットの宛先MACアドレス、送信元MACアドレス、宛先IPアドレス及び宛先ポート番号を変換する。
図15は、本例において追加される新規エントリを示している。ヘッダ変換エントリENT−HC1及び転送エントリENT−TR1は、クライアント20−1から受け取ったパケットを、ロードバランサ200Bを経由することなく宛先サーバ10−aに転送するための新規エントリである。また、NAT構成の場合、サーバ10−aからの帰りのトラフィックもロードバランサ200Bを経由する。その帰りのトラフィックに関しても「ショートカット」が可能である。具体的には、ヘッダ変換エントリENT−HC2及び転送エントリENT−TR2が、サーバ10−aから受け取ったパケットを、ロードバランサ200Bを経由することなくクライアント20−1に転送するための新規エントリである。各新規エントリの設計方法は、第1の例の場合と同様であり、その説明は省略される。
3−3.第3の例
図16は、第3の例におけるネットワーク構成を示している。第3の例では、対象アプライアンス200は、ステートフル動作を行うファイアウォール200Cである。このファイアウォール200Cによるパケット変換方式は、NAT型である。初期設定処理において、このファイアウォール200Cが、スイッチ100の“ポート4”に物理的に接続される。ファイアウォール200Cに関するショートカット管理情報SCMは、次の通りである。
図16は、第3の例におけるネットワーク構成を示している。第3の例では、対象アプライアンス200は、ステートフル動作を行うファイアウォール200Cである。このファイアウォール200Cによるパケット変換方式は、NAT型である。初期設定処理において、このファイアウォール200Cが、スイッチ100の“ポート4”に物理的に接続される。ファイアウォール200Cに関するショートカット管理情報SCMは、次の通りである。
・アプライアンス名:ファイアウォール200C
・接続ポート:スイッチ100のポート4
・パケットヘッダ変換方式:NAT
・ショートカット適用タイミング:SYN−ACKパケット受信後
・接続ポート:スイッチ100のポート4
・パケットヘッダ変換方式:NAT
・ショートカット適用タイミング:SYN−ACKパケット受信後
本例では、ショートカット適用タイミングが、SYN−ACKパケット受信後である。従って、コントローラ300は、SYN−ACKパケットを受け取った後に、必要なエントリ設定データSETを作成し、そのエントリ設定データSETをスイッチ100に送信する。その他は、既出の例と同様である。
尚、コントローラ300は、SYN−ACKパケットを受信するまで全てのパケットを受信してもよい。あるいは、デフォルトエントリENT−Dの登録時に、ファイアウォール200Cからサーバ10への転送をエントリとして登録しておき、SYN−ACKパケットのみをコントローラ300に送信することも可能である。
その他、対象アプライアンス200としては、ステートレス処理を行うファイアウォール、IPS(Intrusion Prevention System)、IDS(Intrusion Detection System)等も可能である。
4.変形例
本実施の形態の変形例では、初期設定時のステップS3において、第2デフォルトエントリENT−D2は、対象スイッチ100のフローテーブルTBLに設定されない。
本実施の形態の変形例では、初期設定時のステップS3において、第2デフォルトエントリENT−D2は、対象スイッチ100のフローテーブルTBLに設定されない。
図17は、本変形例におけるスイッチ100による処理(ステップS100)を示すフローチャートである。既出の図7の場合と比較して、ステップS150が省略されている。その代わり、受け取ったパケットがフローテーブルTBL中のいずれのエントリENTにもマッチしない場合(ステップS170;No)、スイッチ処理部110は、当該パケットをコントローラ300に転送する(ステップS160)。
上記ショートカット設定処理において、対象スイッチ100が、対象アプライアンス200から変換後パケットを受信した時を考える。本変形例では、フローテーブルTBLは、第2デフォルトエントリENT−D2を有していない。従って、対象アプライアンス200から受け取った変換後パケットにマッチするエントリはフローテーブルTBLに無い(ステップS170;No)。従って、スイッチ処理部110は、変換後パケットをコントローラ300に転送する(ステップS160)。その後、ステップS300が同様に実施される。
5.効果
以上に説明されたように、本実施の形態によれば、アプライアンス200が行うパケットヘッダ変換をフローテーブルTBL中のエントリとして設定することができる。それにより、アプライアンス200の処理をスイッチ100に肩代わりさせることができる。言い換えれば、あるアプライアンス200を経由しているトラフィックを、あるタイミングから、当該アプライアンス200を経由しないように制御することができる。このようなショートカットにより、アプライアンス200にかかる処理負荷が軽減される。また、アプライアンス200に要求される性能も抑えることができ、これはコスト削減につながる。
以上に説明されたように、本実施の形態によれば、アプライアンス200が行うパケットヘッダ変換をフローテーブルTBL中のエントリとして設定することができる。それにより、アプライアンス200の処理をスイッチ100に肩代わりさせることができる。言い換えれば、あるアプライアンス200を経由しているトラフィックを、あるタイミングから、当該アプライアンス200を経由しないように制御することができる。このようなショートカットにより、アプライアンス200にかかる処理負荷が軽減される。また、アプライアンス200に要求される性能も抑えることができ、これはコスト削減につながる。
更に、本実施の形態によれば、ショートカットを実現するためにアプライアンス200を改造する必要はない。アプライアンス200を改造することなく、当該アプライアンス200を経由するトラフィックに関するショートカットを実現することが可能である。既存のアプライアンス機器を利用することができるため、開発コストが削減される。
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
本出願は、2010年1月5日に出願された日本国特許出願2010−000459を基礎とする優先権を主張し、その開示の全てをここに取り込む。
Claims (9)
- パケットのヘッダ情報を所定の変換方式に従って変換するパケットヘッダ変換を行うアプライアンスと、
前記所定の変換方式及び所定の条件を示すショートカット管理情報が格納された記憶装置を備えるコントローラと、
前記アプライアンス及び前記コントローラに接続されたスイッチと
を備え、
前記スイッチは、フローテーブルを有し、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
ショートカット設定処理において、
前記スイッチは、所定のパケットを前記アプライアンスに転送し、
前記アプライアンスは、前記所定のパケットに対して前記パケットヘッダ変換を行うことにより変換後パケットを作成し、前記変換後パケットを前記スイッチに返信し、
前記スイッチは、前記アプライアンスから受け取った前記変換後パケットを前記コントローラに転送し、
前記コントローラは、前記変換後パケットに応答して前記ショートカット管理情報を参照し、
前記変換後パケットが前記所定の条件を満たす場合、前記コントローラは、前記変換後パケットの宛先及び前記所定の変換方式に基いて、新規エントリの設定を指示するエントリ設定データを作成し、前記エントリ設定データを前記スイッチに送信し、
前記新規エントリは、前記所定のパケットと同じフローに属するパケットを、前記アプライアンスを経由することなく前記宛先に向けて転送することを指定し、
前記スイッチは、前記コントローラから受け取った前記エントリ設定データに従って、前記フローテーブルに前記新規エントリを追加する
ネットワークシステム。 - 請求項1に記載のネットワークシステムであって、
前記フローテーブルは、前記アプライアンス宛のパケットを前記アプライアンスへ転送することを指定する第1デフォルトエントリを含んでおり、
前記ショートカット設定処理において、
前記所定のパケットは前記第1デフォルトエントリにマッチし、
前記スイッチは、前記第1デフォルトエントリに従って、前記所定のパケットを前記アプライアンスに転送する
ネットワークシステム。 - 請求項2に記載のネットワークシステムであって、
前記フローテーブルは、更に、前記アプライアンスから受け取るパケットを前記コントローラへ転送することを指定する第2デフォルトエントリを含んでおり、
前記ショートカット設定処理において、前記スイッチは、前記アプライアンスから受け取った前記変換後パケットを、前記第2デフォルトエントリに従って前記コントローラに転送する
ネットワークシステム。 - 請求項2に記載のネットワークシステムであって、
前記受け取ったパケットにマッチするエントリが前記フローテーブルに無い場合、前記スイッチは、前記受け取ったパケットを前記コントローラに転送し、
前記ショートカット設定処理において、前記アプライアンスから受け取った前記変換後パケットにマッチするエントリは前記フローテーブルに無い
ネットワークシステム。 - 請求項1乃至4のいずれか一項に記載のネットワークシステムであって、
前記アプライアンスはロードバランサであり、
前記所定の条件は、前記変換後パケットが、前記変換後パケットが属するフローの最初のパケットであることである
ネットワークシステム。 - 請求項1乃至5のいずれか一項に記載のネットワークシステムであって、
前記所定の変換方式は、MAT(MAC Address Translation)、NAT(Network Address Translation)、NAPT(Network Address Port Translation)のいずれかである
ネットワークシステム。 - スイッチ及びアプライアンスが配置されたネットワークを制御するコントローラであって、
前記スイッチは、フローテーブルを有し、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
前記スイッチは、前記コントローラから受け取るエントリ設定データに従って、前記フローテーブルのエントリを設定し、
前記アプライアンスは、パケットのヘッダ情報を所定の変換方式に従って変換するパケットヘッダ変換を行い、
ショートカット設定処理において、
前記スイッチは、所定のパケットを前記アプライアンスに転送し、
前記アプライアンスは、前記所定のパケットに対して前記パケットヘッダ変換を行うことにより変換後パケットを作成し、前記変換後パケットを前記スイッチに返信し、
前記スイッチは、前記アプライアンスから受け取った前記変換後パケットを前記コントローラに転送し、
前記コントローラは、
前記所定の変換方式及び所定の条件を示すショートカット管理情報が格納された記憶装置と、
前記ショートカット設定処理においてスイッチ設定処理を行う処理装置と
を備え、
前記スイッチ設定処理において、
前記処理装置は、前記変換後パケットに応答して前記ショートカット管理情報を参照し、
前記変換後パケットが前記所定の条件を満たす場合、前記処理装置は、前記変換後パケットの宛先及び前記所定の変換方式に基いて、新規エントリの設定を指示するエントリ設定データを作成し、前記エントリ設定データを前記スイッチに送信し、
前記新規エントリは、前記所定のパケットと同じフローに属するパケットを、前記アプライアンスを経由することなく前記宛先に向けて転送することを指定する
コントローラ。 - スイッチ及びアプライアンスが配置されたネットワークの制御方法であって、
前記スイッチは、フローテーブルを有し、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
前記アプライアンスは、パケットのヘッダ情報を所定の変換方式に従って変換するパケットヘッダ変換を行い、
前記制御方法は、
前記スイッチから前記アプライアンスに所定のパケットを転送することと、
前記アプライアンスにおいて、前記所定のパケットに対して前記パケットヘッダ変換を行うことにより変換後パケットを作成し、前記変換後パケットを前記スイッチに返信することと、
前記スイッチから前記変換後パケットを取得することと、
前記変換後パケットに応答して、前記所定の変換方式及び所定の条件を示すショートカット管理情報を記憶装置から読み出すことと、
前記変換後パケットが前記所定の条件を満たす場合、前記変換後パケットの宛先及び前記所定の変換方式に基いて、新規エントリの設定を指示するエントリ設定データを作成することと、
前記エントリ設定データを前記スイッチに送信することと、
前記スイッチにおいて、前記エントリ設定データに従って、前記フローテーブルに前記新規エントリを追加することと
を含み、
前記新規エントリは、前記所定のパケットと同じフローに属するパケットを、前記アプライアンスを経由することなく前記宛先に向けて転送することを指定する
制御方法。 - スイッチ及びアプライアンスが配置されたネットワークの制御処理をコンピュータに実行させる制御プログラムが記録された記録媒体であって、
前記スイッチは、フローテーブルを有し、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
前記スイッチは、前記コントローラから受け取るエントリ設定データに従って、前記フローテーブルのエントリを設定し、
前記アプライアンスは、パケットのヘッダ情報を所定の変換方式に従って変換するパケットヘッダ変換を行い、
ショートカット設定処理において、
前記スイッチは、所定のパケットを前記アプライアンスに転送し、
前記アプライアンスは、前記所定のパケットに対して前記パケットヘッダ変換を行うことにより変換後パケットを作成し、前記変換後パケットを前記スイッチに返信し、
前記スイッチは、前記アプライアンスから受け取った前記変換後パケットを前記コンピュータに転送し、
前記制御処理は、
前記変換後パケットに応答して、前記所定の変換方式及び所定の条件を示すショートカット管理情報を記憶装置から読み出すことと、
前記変換後パケットが前記所定の条件を満たす場合、前記変換後パケットの宛先及び前記所定の変換方式に基いて、新規エントリの設定を指示するエントリ設定データを作成することと、
前記エントリ設定データを前記スイッチに送信することと
を含み、
前記新規エントリは、前記所定のパケットと同じフローに属するパケットを、前記アプライアンスを経由することなく前記宛先に向けて転送することを指定する
記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011548940A JP5645139B2 (ja) | 2010-01-05 | 2010-12-16 | ネットワークシステム、コントローラ、ネットワーク制御方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010000459 | 2010-01-05 | ||
JP2010000459 | 2010-01-05 | ||
JP2011548940A JP5645139B2 (ja) | 2010-01-05 | 2010-12-16 | ネットワークシステム、コントローラ、ネットワーク制御方法 |
PCT/JP2010/072621 WO2011083668A1 (ja) | 2010-01-05 | 2010-12-16 | ネットワークシステム、コントローラ、ネットワーク制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2011083668A1 JPWO2011083668A1 (ja) | 2013-05-13 |
JP5645139B2 true JP5645139B2 (ja) | 2014-12-24 |
Family
ID=44305405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011548940A Expired - Fee Related JP5645139B2 (ja) | 2010-01-05 | 2010-12-16 | ネットワークシステム、コントローラ、ネットワーク制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8780836B2 (ja) |
JP (1) | JP5645139B2 (ja) |
WO (1) | WO2011083668A1 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10623314B2 (en) * | 2010-10-15 | 2020-04-14 | Nec Corporation | Switch system, and monitoring centralized control method |
US8776207B2 (en) | 2011-02-16 | 2014-07-08 | Fortinet, Inc. | Load balancing in a network with session information |
US9264295B1 (en) * | 2012-03-02 | 2016-02-16 | Big Switch Networks, Inc. | Systems and methods for forwarding broadcast network packets with a controller |
WO2013128798A1 (ja) * | 2012-03-02 | 2013-09-06 | 日本電気株式会社 | 経路制御システム、コントロール装置及び経路制御方法 |
IN2014DN07936A (ja) * | 2012-03-28 | 2015-05-01 | Nec Corp | |
WO2013147053A1 (ja) * | 2012-03-30 | 2013-10-03 | 日本電気株式会社 | 制御装置、通信装置、通信方法及びプログラム |
CN104247342A (zh) * | 2012-03-30 | 2014-12-24 | 日本电气株式会社 | 网络设备冗余化系统、控制装置、网络设备冗余化方法及程序 |
US9036638B2 (en) | 2012-08-09 | 2015-05-19 | International Business Machines Corporation | Avoiding unknown unicast floods resulting from MAC address table overflows |
WO2014136853A1 (ja) * | 2013-03-06 | 2014-09-12 | 日本電気株式会社 | 通信システム、スイッチ、制御装置、パケット処理方法及びプログラム |
US9497132B2 (en) | 2013-04-23 | 2016-11-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system of implementing conversation-sensitive collection for a link aggregation group |
US9497074B2 (en) | 2013-04-23 | 2016-11-15 | Telefonaktiebolaget L M Ericsson (Publ) | Packet data unit (PDU) structure for supporting distributed relay control protocol (DRCP) |
US9553798B2 (en) * | 2013-04-23 | 2017-01-24 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system of updating conversation allocation in link aggregation |
US10063458B2 (en) | 2013-10-13 | 2018-08-28 | Nicira, Inc. | Asymmetric connection with external networks |
CN104579968B (zh) * | 2013-10-26 | 2018-03-09 | 华为技术有限公司 | Sdn交换机获取精确流表项方法及sdn交换机、控制器、系统 |
US9654418B2 (en) | 2013-11-05 | 2017-05-16 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system of supporting operator commands in link aggregation group |
JP6053032B2 (ja) * | 2013-12-11 | 2016-12-27 | 日本電信電話株式会社 | 通信制御装置、通信制御方法及び通信制御プログラム |
CN109089014B (zh) | 2014-02-27 | 2021-02-19 | 杜比实验室特许公司 | 用于控制颤抖可见性的方法、装置及计算机可读介质 |
US9813290B2 (en) | 2014-08-29 | 2017-11-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for supporting distributed relay control protocol (DRCP) operations upon misconfiguration |
CN106330649B (zh) | 2015-06-18 | 2019-08-02 | 新华三技术有限公司 | 一种跨软件定义网络的数据报文转发方法和装置 |
WO2017068618A1 (ja) * | 2015-10-19 | 2017-04-27 | 三菱電機株式会社 | 経路制御装置及びネットワーク |
US10212071B2 (en) * | 2016-12-21 | 2019-02-19 | Nicira, Inc. | Bypassing a load balancer in a return path of network traffic |
US10742746B2 (en) | 2016-12-21 | 2020-08-11 | Nicira, Inc. | Bypassing a load balancer in a return path of network traffic |
CN108449282B (zh) * | 2018-05-29 | 2021-12-21 | 华为技术有限公司 | 一种负载均衡方法及其装置 |
US11095480B2 (en) | 2019-08-30 | 2021-08-17 | Vmware, Inc. | Traffic optimization using distributed edge services |
US11606294B2 (en) | 2020-07-16 | 2023-03-14 | Vmware, Inc. | Host computer configured to facilitate distributed SNAT service |
US11616755B2 (en) | 2020-07-16 | 2023-03-28 | Vmware, Inc. | Facilitating distributed SNAT service |
US11611613B2 (en) | 2020-07-24 | 2023-03-21 | Vmware, Inc. | Policy-based forwarding to a load balancer of a load balancing cluster |
US11451413B2 (en) | 2020-07-28 | 2022-09-20 | Vmware, Inc. | Method for advertising availability of distributed gateway service and machines at host computer |
US11902050B2 (en) | 2020-07-28 | 2024-02-13 | VMware LLC | Method for providing distributed gateway service at host computer |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004289806A (ja) * | 2003-03-03 | 2004-10-14 | Hitachi Ltd | フロー検出機能を備えたパケット転送装置及びフロー管理方法 |
-
2010
- 2010-12-16 WO PCT/JP2010/072621 patent/WO2011083668A1/ja active Application Filing
- 2010-12-16 JP JP2011548940A patent/JP5645139B2/ja not_active Expired - Fee Related
-
2011
- 2011-10-20 US US13/277,779 patent/US8780836B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004289806A (ja) * | 2003-03-03 | 2004-10-14 | Hitachi Ltd | フロー検出機能を備えたパケット転送装置及びフロー管理方法 |
Non-Patent Citations (7)
Title |
---|
CSNG200900608001; 上野 洋史 Hiroshi UENO: 'データセンターネットワークにおけるネットワークアプライアンス機能配備の一検討 A Study on Deployment' 電子情報通信学会技術研究報告 Vol.109 No.296 IEICE Technical Report 第109巻, 20091113, 社団法人電子情報通信学会 The Institute of Electro * |
CSNH200900243016; 飯島 明夫: '先端環境技術 クラウドコンピューティング時代のデータセンターとネットワークの省エネ技術' NEC技報 第62巻 第3号 NEC TECHNICAL JOURNAL 第62巻, 200909, 日本電気株式会社 * |
JPN6014042986; 飯島 明夫: '先端環境技術 クラウドコンピューティング時代のデータセンターとネットワークの省エネ技術' NEC技報 第62巻 第3号 NEC TECHNICAL JOURNAL 第62巻, 200909, 日本電気株式会社 * |
JPN6014042988; 上野 洋史 Hiroshi UENO: 'データセンターネットワークにおけるネットワークアプライアンス機能配備の一検討 A Study on Deployment' 電子情報通信学会技術研究報告 Vol.109 No.296 IEICE Technical Report 第109巻, 20091113, 社団法人電子情報通信学会 The Institute of Electro * |
JPN6014042990; Nick McKeown, et.al: 'OpenFlow: Enabling Innovation in Campus Networks' OpenFlow White Paper , 20080314 * |
JPN6014042995; 森本昌弘 他: 'OpenFlowを用いたネットワークアプライアンスのオフロード方式' 2010年電子情報通信学会総合大会 , 20100302, P.S-21 * |
JPN7014002932; OpenFlow Switch Specification version 1.0.0 (Wire Protocol 0x01) , 20091231 * |
Also Published As
Publication number | Publication date |
---|---|
US20120039338A1 (en) | 2012-02-16 |
WO2011083668A1 (ja) | 2011-07-14 |
US8780836B2 (en) | 2014-07-15 |
JPWO2011083668A1 (ja) | 2013-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5645139B2 (ja) | ネットワークシステム、コントローラ、ネットワーク制御方法 | |
JP5673557B2 (ja) | ネットワークシステム、コントローラ、ネットワーク制御方法 | |
JP5648926B2 (ja) | ネットワークシステム、コントローラ、ネットワーク制御方法 | |
JP5477603B2 (ja) | コンピュータシステム、及びコンピュータシステムにおける通信方法 | |
JP4236364B2 (ja) | 通信データ中継装置 | |
JP5962808B2 (ja) | スイッチシステム、スイッチ制御方法、及び記憶媒体 | |
JP5757324B2 (ja) | コンピュータシステム、及び通信方法 | |
JP5713101B2 (ja) | 制御装置、通信システム、通信方法、および通信プログラム | |
JP5861772B2 (ja) | ネットワークアプライアンス冗長化システム、制御装置、ネットワークアプライアンス冗長化方法及びプログラム | |
JP2011160041A (ja) | フロントエンドシステム、フロントエンド処理方法 | |
JP5438624B2 (ja) | 通信システム、制御サーバ、フロー制御方法およびそのプログラム | |
JP5725236B2 (ja) | 通信システム、ノード、パケット転送方法およびプログラム | |
JP5691782B2 (ja) | ネットワークシステム及びフレーム通信方法 | |
JP2011159247A (ja) | ネットワークシステム、コントローラ、ネットワーク制御方法 | |
US10523629B2 (en) | Control apparatus, communication system, communication method, and program | |
JP2013135397A (ja) | ラベルスイッチングネットワーク | |
JP5692367B2 (ja) | ネットワークシステム及びフレーム通信方法 | |
CN106817315A (zh) | 软件定义网络系统及其网络连线路由方法 | |
JP2016171512A (ja) | 中継装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20141010 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141023 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5645139 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |