JPWO2012049925A1 - スイッチシステム、及びデータ転送方法 - Google Patents
スイッチシステム、及びデータ転送方法 Download PDFInfo
- Publication number
- JPWO2012049925A1 JPWO2012049925A1 JP2012538607A JP2012538607A JPWO2012049925A1 JP WO2012049925 A1 JPWO2012049925 A1 JP WO2012049925A1 JP 2012538607 A JP2012538607 A JP 2012538607A JP 2012538607 A JP2012538607 A JP 2012538607A JP WO2012049925 A1 JPWO2012049925 A1 JP WO2012049925A1
- Authority
- JP
- Japan
- Prior art keywords
- switch
- communication data
- flow
- flow table
- transfer method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
1つの通信データに対して、複数のスイッチがフローエントリの検索を行えるようにして、検索対象のフローエントリ数の上限を増やす。具体的には、制御サーバは、スイッチグループに属する複数のスイッチの各々の内部のフローテーブルに、フローエントリを分散して登録する。スイッチグループに属する各スイッチは、通信データを取得した際に、フローテーブルに登録されたフローエントリのいずれかに通信データが適合するか確認する。いずれかのフローエントリに通信データが適合した場合、そのフローエントリに定義された転送方式に従って、通信データを転送する。いずれのフローエントリにも通信データが適合しない場合、スイッチ間リンクを介して、同じスイッチグループに属する「フローテーブル未検索のスイッチ」に通信データを転送する。フローテーブル未検索のスイッチが存在しない場合、制御サーバに対して、通信データの転送方式の問い合わせを行う。
Description
本発明は、スイッチシステムに関し、特にオープンフロー(OpenFlow)技術を用いたスイッチシステムに関する。
ネットワーク通信の経路制御方式の1つとして、通信機器の制御プロトコルであるオープンフロー(OpenFlow)技術を使用した経路制御方式が研究されている。オープンフロー技術の詳細については、非特許文献1、2に記載されている。オープンフロー技術による経路制御が行われるネットワークを、オープンフローネットワークと呼ぶ。
オープンフローネットワークでは、OFC(OpenFlow Controller)等のコントローラが、OFS(OpenFlow Switch)等のスイッチのフローテーブル(Flow Table)を操作することによりスイッチの挙動を制御する。コントローラとスイッチの間は、コントローラがオープンフロープロトコルに準拠した制御メッセージを用いてスイッチを制御するためのセキュアチャネル(Secure Channel)により接続されている。
オープンフローネットワークにおけるスイッチとは、オープンフローネットワークを形成し、コントローラの制御下にあるエッジスイッチ及びコアスイッチのことである。オープンフローネットワークにおける入力側エッジスイッチでのパケット(通信データ)の受信から出力側エッジスイッチでの送信までのパケットの一連の流れをフロー(Flow)と呼ぶ。
フローテーブルとは、所定のマッチ条件(ルール)に適合するパケット群(パケット系列)に対して行うべき所定の処理(アクション)を定義したフローエントリ(Flow entry)が登録されたテーブルである。
フローエントリのルールは、パケットの各プロトコル階層のヘッダ(header)領域に含まれる宛先アドレス(Destination Address)、送信元アドレス(Source Address)、宛先ポート(Destination Port)、送信元ポート(Source Port)のいずれか又は全てを用いた様々な組合せにより定義され、区別可能である。なお、上記のアドレスには、MACアドレス(Media Access Control Address)やIPアドレス(Internet Protocol Address)を含むものとする。また、上記に加えて、入口ポート(Ingress Port)の情報も、フローエントリのルールとして使用可能である。
フローエントリのアクションは、「特定のポートに出力する」、「廃棄する」、「ヘッダを書き換える」といった動作を示す。例えば、スイッチは、フローエントリのアクションに出力ポートの識別情報(出力ポート番号等)が示されていれば、これに該当するポートにパケットを出力し、出力ポートの識別情報が示されていなければ、パケットを破棄する。或いは、スイッチは、フローエントリのアクションにヘッダ情報が示されていれば、当該ヘッダ情報に基づいてパケットのヘッダを書き換える。
オープンフローネットワークにおけるスイッチは、フローテーブルに登録されたフローエントリのルールに適合するパケット群に対して、当該フローエントリのアクションを実行する。
しかし、スイッチに内蔵されるフローテーブル用のメモリ容量に限りがあることから、スイッチが登録できるフローエントリ数には上限があり、上限に達した場合は新規にフローエントリが登録できず、通信データが制御サーバからの制御に従った方式で転送されなくなるという課題がある。
また、フローエントリの種類を細かく定義すると、登録すべきフローエントリの数が増大するため、フローテーブル用のメモリ容量が足りなくなる可能性がある。従って、フローエントリ数の上限とは別に、システム設計に使用可能なフロー種類の上限を生じさせていた。
"The OpenFlow Switch Consortium" <http://www.openflowswitch.org/>
"OpenFlow Switch Specification Version 1.0.0 (Wire Protocol 0x01) December 31, 2009" <http://www.openflowswitch.org/documents/openflow−spec−v1.0.0.pdf>
本発明の目的は、制御サーバからスイッチにフローエントリをフローテーブルを登録する際に、スイッチからフローテーブルに空きがないことを示すエラーメッセージが戻ってきた場合、制御サーバがスイッチグループ内の別のスイッチに該当フローエントリを登録することができるスイッチシステムを提供することである。
本発明の他の目的は、通信データをスイッチが転送する際、フローテーブル内の全てのフローエントリを検索した後、転送方法が決定しなかった場合は、その通信データをスイッチグループ内の別のスイッチへ転送し、そのスイッチで再びフローテーブル内のフローエントリの検索を続けることができるスイッチシステムを提供することである。
本発明のスイッチシステムは、第1のスイッチと、第2のスイッチと、制御サーバとを含む。第1のスイッチは、入力リンクより通信データを入力した際に、内部のフローテーブルに登録されたフローエントリのいずれかに通信データが適合した場合、当該フローエントリに定義された転送方式に従って、通信データを転送する。また、第1のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも通信データが適合しない場合、スイッチ間リンクを介して接続されたスイッチ(ここでは、第2のスイッチ)に通信データを転送する。第2のスイッチは、第1のスイッチと同じスイッチグループに属し、第1のスイッチからスイッチ間リンクを介して通信データを受信した際に、内部のフローテーブルに登録されたフローエントリのいずれかに通信データが適合した場合、当該フローエントリに定義された転送方式に従って、通信データを転送する。制御サーバは、第1のスイッチのフローテーブルにフローエントリを登録し、第1のスイッチのフローテーブルにフローエントリすることができなくなった場合、第2のスイッチのフローテーブルに、第1のスイッチのフローテーブルに登録すべきフローエントリを登録する。
本発明に係るスイッチは、スイッチグループを形成するスイッチであって、フローテーブルと、転送処理部と、制御メッセージ処理部とを備える。フローテーブルには、所定のマッチ条件に適合する通信データの転送方式を定義したフローエントリが登録される。転送処理部は、通信データを取得した際に、フローテーブルに登録されたフローエントリのいずれかに通信データが適合するか確認し、いずれかのフローエントリに通信データが適合した場合、当該フローエントリに定義された転送方式に従って、通信データを転送し、いずれのフローエントリにも通信データが適合しない場合、スイッチ間リンクを介して、スイッチグループに属するフローテーブル未検索のスイッチに通信データを転送する。制御メッセージ処理部は、スイッチグループに属するフローテーブル未検索のスイッチが存在しない場合、制御サーバに対して、通信データの転送方式の問い合わせを行い、制御サーバからの制御により、フローテーブルに、通信データの転送方式を定義したフローエントリを登録する。
本発明のデータ転送方法では、制御サーバにおいて、第1のスイッチのフローテーブルにフローエントリを登録する。また、制御サーバにおいて、第1のスイッチのフローテーブルにフローエントリすることができなくなった場合、第1のスイッチと同じスイッチグループに属する第2のスイッチのフローテーブルに、第1のスイッチのフローテーブルに登録すべきフローエントリを登録する。また、第1のスイッチにおいて、入力リンクより通信データを入力した際に、内部のフローテーブルに登録されたフローエントリのいずれかに通信データが適合した場合、当該フローエントリに定義された転送方式に従って、通信データを転送する。また、第1のスイッチにおいて、内部のフローテーブルに登録されたフローエントリのいずれにも通信データが適合しない場合、スイッチ間リンクを介して、第2のスイッチに通信データを転送する。また、第2のスイッチにおいて、第1のスイッチからスイッチ間リンクを介して通信データを受信した際に、内部のフローテーブルに登録されたフローエントリのいずれかに通信データが適合した場合、当該フローエントリに定義された転送方式に従って、通信データを転送する。
本発明のプログラムは、スイッチグループを形成するスイッチにより実行されるプログラムであって、制御サーバからの制御により、スイッチの内部のフローテーブルに、所定のマッチ条件に適合する通信データの転送方式を定義したフローエントリを登録するステップと、通信データを取得した際に、フローテーブルに登録されたフローエントリのいずれかに通信データが適合するか確認するステップと、いずれかのフローエントリに通信データが適合した場合、当該フローエントリに定義された転送方式に従って、通信データを転送するステップと、いずれのフローエントリにも通信データが適合しない場合、スイッチ間リンクを介して、スイッチグループに属するフローテーブル未検索のスイッチに通信データを転送するステップと、スイッチグループに属するフローテーブル未検索のスイッチが存在しない場合、制御サーバに対して、通信データの転送方式の問い合わせを行うステップとをスイッチに実行させるためのプログラムである。なお、本発明のプログラムは、記憶装置や記憶媒体に格納することが可能である。
これにより、1つの通信データに対して、複数のスイッチでフローエントリの検索を行うことができるようになり、検索をかけるフローエントリ数の上限を増やすことが可能となる。
<第1実施形態>
以下に、本発明の第1実施形態について添付図面を参照して説明する。
以下に、本発明の第1実施形態について添付図面を参照して説明する。
[スイッチシステムの構成]
図1に示すように、本発明の第1実施形態におけるスイッチシステムでは、スイッチ10(10−i、i=1〜n:nはスイッチの台数)と、制御サーバ20を含む。
図1に示すように、本発明の第1実施形態におけるスイッチシステムでは、スイッチ10(10−i、i=1〜n:nはスイッチの台数)と、制御サーバ20を含む。
スイッチ10(10−i、i=1〜n)の各々は、自身が保持するフローテーブル内のフローエントリの情報に従って、通信データを転送する。
各スイッチ10(10−i、i=1〜n)は、オープンフロー技術に従い、同一(共通)の制御サーバ20による経路制御を受けており、スイッチグループを形成する。
ここでは、各スイッチ10(10−i、i=1〜n)は、同一(共通)の制御サーバ20による経路制御を受け、1つのスイッチグループを形成するものとしている。しかし、実際には、所定の条件を設定して、更にスイッチグループを細分化しても良い。
図1には、本発明の第1実施形態におけるスイッチシステムの最小構成の例として、スイッチ10−1とスイッチ10−2が示されており、この2台によってスイッチグループが形成されている。
また、各スイッチ10(10−i、i=1〜n)は、制御リンク100(100−i、i=1〜n)と、スイッチ間リンク200(200−i、i=1〜m:mは任意)と、入力リンク300(300−i、i=1〜n)と、出力リンク400(400−i、i=1〜n)とに接続されている。すなわち、各スイッチ10(10−i、i=1〜n)は、各リンクに接続するための端子(ポート)を備える。
制御リンク100は、スイッチ10と制御サーバ20とを接続する通信回線である。
スイッチ間リンク200は、同じスイッチグループに属するスイッチ10同士を接続する通信回線である。
入力リンク300は、スイッチ10に通信データを入力するための通信回線である。
出力リンク400は、スイッチ10から通信データを出力するための通信回線である。
制御リンク100、入力リンク300、及び出力リンク400は、スイッチ10毎に存在している。スイッチ間リンク200は、スイッチ10とスイッチ間リンクにより直接接続しているスイッチの数だけ存在している。
制御サーバ20は、各スイッチ10(10−i、i=1〜n)に対して、通信データのマッチ条件(ルール)と所定の処理(アクション)とを定義したフローエントリの登録要求を送信する。フローエントリの登録の内容には、フローエントリの新規登録、変更、削除を含むものとする。制御サーバ20は、オープンフロー技術において、コントローラーとも呼ばれる。
各スイッチ10(10−i、i=1〜n)は、制御メッセージ処理部11(11−i、i=1〜n)と、フローテーブル12(12−i、i=1〜n)と、転送処理部13(13−i、i=1〜n)を備える。
ここでは、スイッチ10−1は、制御メッセージ処理部11−1と、フローテーブル12−1を備える。また、スイッチ10−2は、制御メッセージ処理部11−2と、フローテーブル12−2を備える。
制御メッセージ処理部11は、制御サーバ20からフローエントリの登録要求を受信すると、フローテーブル12に当該フローエントリを登録する。
制御サーバ20と制御メッセージ処理部11とは、制御リンク100を介して接続されている。
ここでは、制御サーバ20とスイッチ10−1の内部の制御メッセージ処理部11−1とは、制御リンク100−1を介して接続されている。また、制御サーバ20とスイッチ10−2の内部の制御メッセージ処理部11−2とは、制御リンク100−2を介して接続されている。
各スイッチ10(10−i、i=1〜n)は、互いにスイッチ間リンク200により接続されている。
ここでは、スイッチ10−1とスイッチ10−2とは、スイッチ間リンク200−1により接続されている。例えば、転送処理部13−1と転送処理部13−2とが、スイッチ間リンク200−1により接続されている。
フローテーブル12は、所定のマッチ条件(ルール)に適合する通信データに対して行うべき所定の処理(アクション)を定義したフローエントリが登録されたテーブルである。ここでは、フローエントリに、所定の処理(アクション)として「通信データの転送方式」が定義されているものとする。転送方式の例として、転送先(次段のノード)に接続された出力リンクの指定等が考えられる。
フローテーブル12用のメモリ容量は、それぞれ最大N個のフローエントリを登録できる容量があるものとする。なお、実際には、各フローテーブル12用のメモリ容量は、少なくともN個のフローエントリを登録できる容量があれば良い。
転送処理部13は、入力リンク300から通信データを入力し、当該通信データについて、フローテーブル12を検索し、いずれかのフローエントリのマッチ条件に適合(Hit)した場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400から出力する。
ここでは、スイッチ10−1の内部の転送処理部13−1は、入力リンク300−1から通信データを入力し、当該通信データについて、フローテーブル12−1を検索し、いずれかのフローエントリのマッチ条件に適合(Hit)した場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−1から出力する。
[ハードウェアの例示]
スイッチ10(10−i、i=1〜n)の例として、オープンフロースイッチを想定している。オープンフロースイッチの例として、ネットワークスイッチ(network switch)、マルチレイヤスイッチ(multi−layer switch)等が考えられる。マルチレイヤスイッチは、サポートするOSI参照モデルの層毎に、更に細かく分類されている。主な種別としては、ネットワーク層(第3層)のデータを読むレイヤ3スイッチ、トランスポート層(第4層)のデータを読むレイヤ4スイッチ、アプリケーション層(第7層)のデータを読むレイヤ7スイッチ(アプリケーションスイッチ)がある。なお、オープンフローネットワークでは、一般的なルータやスイッチングハブ等の中継装置をオープンフロースイッチとして使用することもできる。また、スイッチ10(10−i、i=1〜n)は、物理マシン上に構築された仮想スイッチでも良い。また、スイッチ10(10−i、i=1〜n)の代替例として、ルータ(router)、プロキシ(proxy)、ゲートウェイ(gateway)、ファイアウォール(firewall)、ロードバランサ(load balancer:負荷分散装置)、帯域制御装置(packet shaper)、セキュリティ監視制御装置(SCADA:Supervisory Control And Data Acquisition)、ゲートキーパー(gatekeeper)、基地局(base station)、アクセスポイント(AP:Access Point)、通信衛星(CS:Communication Satellite)、或いは、複数の通信ポートを有する計算機等も考えられる。
スイッチ10(10−i、i=1〜n)の例として、オープンフロースイッチを想定している。オープンフロースイッチの例として、ネットワークスイッチ(network switch)、マルチレイヤスイッチ(multi−layer switch)等が考えられる。マルチレイヤスイッチは、サポートするOSI参照モデルの層毎に、更に細かく分類されている。主な種別としては、ネットワーク層(第3層)のデータを読むレイヤ3スイッチ、トランスポート層(第4層)のデータを読むレイヤ4スイッチ、アプリケーション層(第7層)のデータを読むレイヤ7スイッチ(アプリケーションスイッチ)がある。なお、オープンフローネットワークでは、一般的なルータやスイッチングハブ等の中継装置をオープンフロースイッチとして使用することもできる。また、スイッチ10(10−i、i=1〜n)は、物理マシン上に構築された仮想スイッチでも良い。また、スイッチ10(10−i、i=1〜n)の代替例として、ルータ(router)、プロキシ(proxy)、ゲートウェイ(gateway)、ファイアウォール(firewall)、ロードバランサ(load balancer:負荷分散装置)、帯域制御装置(packet shaper)、セキュリティ監視制御装置(SCADA:Supervisory Control And Data Acquisition)、ゲートキーパー(gatekeeper)、基地局(base station)、アクセスポイント(AP:Access Point)、通信衛星(CS:Communication Satellite)、或いは、複数の通信ポートを有する計算機等も考えられる。
制御サーバ20の例として、PC(パソコン)、アプライアンス(appliance)、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。また、制御サーバ20は、物理マシン上に構築された仮想マシン(VM:Virtual Machine)でも良い。
スイッチ10(10−i、i=1〜n)の各々、及び制御サーバ20を接続するネットワークの例として、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(登録商標)、シリアル通信回線、データバス等も考えられる。
図示しないが、スイッチ10(10−i、i=1〜n)の各々、及び制御サーバ20は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリと、通信用インターフェース(I/F:interface)とによって実現される。
上記のプロセッサの例として、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)等の記憶媒体(メディア)等が考えられる。或いは、DAS(Direct Attached Storage)、FC−SAN(Fibre Channel − Storage Area Network)、NAS(Network Attached Storage)、IP−SAN(IP − Storage Area Network)等を用いたストレージ装置でも良い。
上記の通信用インターフェースの例として、ネットワーク通信に対応した基板(マザーボード、I/Oボード)やチップ等の半導体集積回路、NIC(Network Interface Card)等のネットワークアダプタや同様の拡張カード、アンテナ等の通信装置、接続口(コネクタ)等の通信ポート等が考えられる。
但し、実際には、これらの例に限定されない。
[既存のオープンフロー技術におけるスイッチシステムの動作]
既存のオープンフロー技術におけるスイッチシステムでは、スイッチ10−1とスイッチ10−2とは、スイッチ間リンク200−1により接続されておらず、互いに連携していないことが多い。すなわち、スイッチ10−1とスイッチ10−2とは、完全に独立して稼働している。
既存のオープンフロー技術におけるスイッチシステムでは、スイッチ10−1とスイッチ10−2とは、スイッチ間リンク200−1により接続されておらず、互いに連携していないことが多い。すなわち、スイッチ10−1とスイッチ10−2とは、完全に独立して稼働している。
制御サーバ20は、スイッチ10−1に対して制御リンク100−1及び制御メッセージ処理部11−1を介してフローエントリを登録していく。
登録エントリ数がN個に達した際、スイッチ10−1の内部の制御メッセージ処理部11−1は、これ以上エントリ登録できない旨を示す「エントリ不可」のメッセージを、制御リンク100−1を介して制御サーバ20へ伝える。
制御サーバ20は、スイッチ10−1からの「エントリ不可」のメッセージを受けると、N+1番目以降のフローエントリN+1を、スイッチ10−1へ登録できなくなる。
スイッチ10−1の内部の転送処理部13−1は、入力リンク300−1より入力された通信データについて、フローテーブル12−1内のフローエントリを1番目のフローエントリ1からN番目のフローエントリNまで検索し、いずれにも該当しない場合には、当該通信データを転送できない状態となる。
[既存のオープンフロー技術におけるスイッチシステムの動作の詳細]
図2を参照して、既存のオープンフロー技術におけるスイッチシステムの動作の詳細について説明する。
図2を参照して、既存のオープンフロー技術におけるスイッチシステムの動作の詳細について説明する。
(1)ステップS1
スイッチ10−1の内部の転送処理部13−1は、入力リンク300−1より入力された通信データを取得する。
スイッチ10−1の内部の転送処理部13−1は、入力リンク300−1より入力された通信データを取得する。
(2)ステップS2
転送処理部13−1は、通信データについて、フローテーブル12−1内のフローエントリを1番目のフローエントリ1からN番目のフローエントリNまで検索し、いずれかのフローエントリに一致するか確認する。例えば、転送処理部13−1は、通信データが、いずれかのフローエントリのマッチ条件に適合(Hit)した場合、フローエントリに一致したと判断する。
転送処理部13−1は、通信データについて、フローテーブル12−1内のフローエントリを1番目のフローエントリ1からN番目のフローエントリNまで検索し、いずれかのフローエントリに一致するか確認する。例えば、転送処理部13−1は、通信データが、いずれかのフローエントリのマッチ条件に適合(Hit)した場合、フローエントリに一致したと判断する。
(3)ステップS3
転送処理部13−1は、通信データが、フローテーブル12−1内のいずれかのフローエントリに一致した場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−1から出力する。
転送処理部13−1は、通信データが、フローテーブル12−1内のいずれかのフローエントリに一致した場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−1から出力する。
(4)ステップS4
反対に、転送処理部13−1は、通信データが、フローテーブル12−1内のいずれのフローエントリにも一致しない場合、フローテーブル12−1へのフローエントリ登録が不可であるか確認する。例えば、転送処理部13−1は、フローテーブル12−1用のメモリ容量を確認し、容量に空き(余裕)がなければ、フローエントリ登録が不可であると判断する。
反対に、転送処理部13−1は、通信データが、フローテーブル12−1内のいずれのフローエントリにも一致しない場合、フローテーブル12−1へのフローエントリ登録が不可であるか確認する。例えば、転送処理部13−1は、フローテーブル12−1用のメモリ容量を確認し、容量に空き(余裕)がなければ、フローエントリ登録が不可であると判断する。
(5)ステップS5
転送処理部13−1は、フローテーブル12−1へのフローエントリ登録が不可でなければ、当該通信データに対する転送方式を制御サーバ20に問い合わせる。その理由は、通信データが、フローテーブル12−1内のいずれのフローエントリにも一致しない場合、当該通信データが、初めて受信した種類のパケットであるためにフローエントリが未登録の「最初のパケット(first packet)」である可能性が高いためである。
転送処理部13−1は、フローテーブル12−1へのフローエントリ登録が不可でなければ、当該通信データに対する転送方式を制御サーバ20に問い合わせる。その理由は、通信データが、フローテーブル12−1内のいずれのフローエントリにも一致しない場合、当該通信データが、初めて受信した種類のパケットであるためにフローエントリが未登録の「最初のパケット(first packet)」である可能性が高いためである。
(6)ステップS6
制御サーバ20は、スイッチ10−1からの問い合わせに対して、当該通信データに対する転送方式があるか確認する。
制御サーバ20は、スイッチ10−1からの問い合わせに対して、当該通信データに対する転送方式があるか確認する。
(7)ステップS7
制御サーバ20は、当該通信データに対する転送方式がある場合、当該通信データのマッチ条件と転送方式とを定義したフローエントリの登録要求を送信する。スイッチ10−1の内部の制御メッセージ処理部11−1は、制御サーバ20からフローエントリの登録要求を受信すると、フローテーブル12−1に当該フローエントリを登録する。これにより、転送処理部13−1は、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−1から出力する。
制御サーバ20は、当該通信データに対する転送方式がある場合、当該通信データのマッチ条件と転送方式とを定義したフローエントリの登録要求を送信する。スイッチ10−1の内部の制御メッセージ処理部11−1は、制御サーバ20からフローエントリの登録要求を受信すると、フローテーブル12−1に当該フローエントリを登録する。これにより、転送処理部13−1は、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−1から出力する。
(8)ステップS8
転送処理部13−1は、フローテーブル12−1へのフローエントリ登録が不可の場合や、制御サーバ20に問い合わせた結果、当該通信データに対する転送方式がない場合、当該通信データに対して何もしない、或いはドロップ(廃棄)する。すなわち、転送処理部13−1は、当該通信データを転送できない。
転送処理部13−1は、フローテーブル12−1へのフローエントリ登録が不可の場合や、制御サーバ20に問い合わせた結果、当該通信データに対する転送方式がない場合、当該通信データに対して何もしない、或いはドロップ(廃棄)する。すなわち、転送処理部13−1は、当該通信データを転送できない。
[本発明の第1実施形態スイッチシステムの動作]
本発明の第1実施形態スイッチシステムでは、スイッチ10−1とスイッチ10−2とは、スイッチ間リンク200−1により接続されており、互いに連携している。
本発明の第1実施形態スイッチシステムでは、スイッチ10−1とスイッチ10−2とは、スイッチ間リンク200−1により接続されており、互いに連携している。
制御サーバ20は、スイッチ10−1に対して、制御リンク100−1及び制御メッセージ処理部11−1を介してフローエントリを登録していく。
登録エントリ数がN個に達した際、スイッチ10−1の内部の制御メッセージ処理部11−1は、これ以上エントリ登録できない旨を示す「エントリ不可」のメッセージを、制御リンク100−1を介して制御サーバ20へ伝える。
制御サーバ20は、スイッチ10−1からの「エントリ不可」のメッセージを受けると、N+1番目以降のフローエントリN+1を、スイッチ10−1と同じスイッチグループに属するスイッチ10−2に対して制御リンク100−2を介して登録していく。
その後、スイッチ10−1の内部の転送処理部13−1は、入力リンク300−1より入力された通信データについて、フローテーブル30内のフローエントリを1番目のフローエントリ1からN番目のフローエントリNまで検索し、いずれにも該当しない場合には、当該通信データを、スイッチ間リンク200−1を経由してスイッチ10−2へ転送する。
このとき、転送処理部13−1は、当該通信データについて制御サーバ20に問い合わせ、制御サーバ20からの指示を受けて、当該通信データを、スイッチ間リンク200−1を経由してスイッチ10−2へ転送するようにしても良い。
或いは、転送処理部13−1は、「通信データがいずれにも該当しない場合には、当該通信データを、スイッチ間リンク200−1を経由してスイッチ10−2へ転送する旨の転送方式」を定義したスイッチ間転送用エントリを、事前にフローテーブル12−1に登録しておくようにしても良い。なお、このスイッチ間転送用エントリについては、制御サーバ20が、スイッチ10−1の起動時等に、自動的に制御リンク100−1及び制御メッセージ処理部11−1を介してフローテーブル12−1に登録するようにしても良い。
スイッチ10−2は、通信データについて、フローテーブル12−2に登録されているフローエントリN+1から検索を継続し、いずれかのフローエントリのマッチ条件に適合(Hit)した場合は、そのフローエントリに定義された所定の処理(アクション)の内容に従って、通信データの転送を行う。
[本実施形態におけるスイッチシステムの動作の詳細]
図3A、図3Bを参照して、本発明の第1実施形態におけるスイッチシステムの動作の詳細について説明する。
図3A、図3Bを参照して、本発明の第1実施形態におけるスイッチシステムの動作の詳細について説明する。
(1)ステップS101
スイッチ10−1の内部の転送処理部13−1は、入力リンク300−1より入力された通信データを取得する。
スイッチ10−1の内部の転送処理部13−1は、入力リンク300−1より入力された通信データを取得する。
(2)ステップS102
転送処理部13−1は、通信データについて、フローテーブル12−1内のフローエントリを1番目のフローエントリ1からN番目のフローエントリNまで検索し、いずれかのフローエントリに一致するか確認する。例えば、転送処理部13−1は、通信データが、いずれかのフローエントリのマッチ条件に適合(Hit)した場合、フローエントリに一致したと判断する。
転送処理部13−1は、通信データについて、フローテーブル12−1内のフローエントリを1番目のフローエントリ1からN番目のフローエントリNまで検索し、いずれかのフローエントリに一致するか確認する。例えば、転送処理部13−1は、通信データが、いずれかのフローエントリのマッチ条件に適合(Hit)した場合、フローエントリに一致したと判断する。
(3)ステップS103
転送処理部13−1は、通信データが、フローテーブル12−1内のいずれかのフローエントリに一致した場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−1から出力する。
転送処理部13−1は、通信データが、フローテーブル12−1内のいずれかのフローエントリに一致した場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−1から出力する。
(4)ステップS104
反対に、転送処理部13−1は、通信データが、フローテーブル12−1内のいずれのフローエントリにも一致しない場合、スイッチ間リンク200−1を介して、当該通信データをスイッチ10−2に転送する。すなわち、転送処理部13−1は、制御サーバ20の代わりに、又は制御サーバ20よりも優先的に、当該通信データを、同一スイッチグループに属するスイッチ10−2に転送するようにする。なお、実際には、転送処理部13−1は、当該通信データを保持したまま、スイッチ10−2に対して、当該通信データに一致するフローエントリを問い合わせるようにしても良い。
反対に、転送処理部13−1は、通信データが、フローテーブル12−1内のいずれのフローエントリにも一致しない場合、スイッチ間リンク200−1を介して、当該通信データをスイッチ10−2に転送する。すなわち、転送処理部13−1は、制御サーバ20の代わりに、又は制御サーバ20よりも優先的に、当該通信データを、同一スイッチグループに属するスイッチ10−2に転送するようにする。なお、実際には、転送処理部13−1は、当該通信データを保持したまま、スイッチ10−2に対して、当該通信データに一致するフローエントリを問い合わせるようにしても良い。
(5)ステップS105
スイッチ10−2の内部の転送処理部13−2は、スイッチ10−1から転送された通信データについて、フローテーブル12−2内のフローエントリをN+1番目のフローエントリN+1から2N番目のフローエントリ2Nまで検索し、いずれかのフローエントリに一致するか確認する。例えば、転送処理部13−2は、通信データが、いずれかのフローエントリのマッチ条件に適合(Hit)した場合、フローエントリに一致したと判断する。
スイッチ10−2の内部の転送処理部13−2は、スイッチ10−1から転送された通信データについて、フローテーブル12−2内のフローエントリをN+1番目のフローエントリN+1から2N番目のフローエントリ2Nまで検索し、いずれかのフローエントリに一致するか確認する。例えば、転送処理部13−2は、通信データが、いずれかのフローエントリのマッチ条件に適合(Hit)した場合、フローエントリに一致したと判断する。
(6)ステップS106
転送処理部13−2は、通信データが、フローテーブル12−2内のいずれかのフローエントリに一致した場合、当該フローエントリに定義された転送方式を参照し、当該通信データを転送元のスイッチ10−1から出力する必要があるか確認する。すなわち、転送処理部13−2は、当該フローエントリに定義された転送方式において、転送元のスイッチ10−1から出力する旨が定義されているか確認する。例えば、スイッチ10−1の配下のノードに転送する場合や、送信元アドレスをスイッチ10−1のアドレスにする必要がある場合等が考えられる。
転送処理部13−2は、通信データが、フローテーブル12−2内のいずれかのフローエントリに一致した場合、当該フローエントリに定義された転送方式を参照し、当該通信データを転送元のスイッチ10−1から出力する必要があるか確認する。すなわち、転送処理部13−2は、当該フローエントリに定義された転送方式において、転送元のスイッチ10−1から出力する旨が定義されているか確認する。例えば、スイッチ10−1の配下のノードに転送する場合や、送信元アドレスをスイッチ10−1のアドレスにする必要がある場合等が考えられる。
(7)ステップS107
転送処理部13−2は、通信データを転送元のスイッチ10−1から出力する必要がある場合、当該フローエントリに定義された転送方式に従って、スイッチ間リンク200−1を介して、当該通信データを転送元のスイッチ10−1に転送する。スイッチ10−1の内部の転送処理部13−1は、当該通信データを出力リンク400−1から出力する。なお、実際には、転送処理部13−1は、当該通信データを保持したまま、スイッチ10−2から、当該通信データに一致するフローエントリに関する応答を受信し、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−1から出力するようにしても良い。
転送処理部13−2は、通信データを転送元のスイッチ10−1から出力する必要がある場合、当該フローエントリに定義された転送方式に従って、スイッチ間リンク200−1を介して、当該通信データを転送元のスイッチ10−1に転送する。スイッチ10−1の内部の転送処理部13−1は、当該通信データを出力リンク400−1から出力する。なお、実際には、転送処理部13−1は、当該通信データを保持したまま、スイッチ10−2から、当該通信データに一致するフローエントリに関する応答を受信し、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−1から出力するようにしても良い。
(8)ステップS108
反対に、転送処理部13−2は、通信データを転送元のスイッチ10−1から出力する必要がない場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−2から出力する。
反対に、転送処理部13−2は、通信データを転送元のスイッチ10−1から出力する必要がない場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−2から出力する。
(9)ステップS109
また、転送処理部13−2は、通信データが、フローテーブル12−2内のいずれのフローエントリにも一致しない場合、フローテーブル12−2へのフローエントリ登録が不可であるか確認する。例えば、転送処理部13−2は、フローテーブル12−2用のメモリ容量を確認し、容量に空き(余裕)がなければ、フローエントリ登録が不可であると判断する。或いは、転送処理部13−2は、制御サーバ20への「エントリ不可」のメッセージの送信記録(ログ)の有無により、フローテーブル12−2へのフローエントリ登録が不可であるか確認するようにしても良い。このとき、転送処理部13−2は、スイッチ10−1に対しても、フローテーブル12−1へのフローエントリ登録が不可であるか問い合わせて、フローテーブル12−1へのフローエントリ登録が不可であるか確認するようにしても良い。
また、転送処理部13−2は、通信データが、フローテーブル12−2内のいずれのフローエントリにも一致しない場合、フローテーブル12−2へのフローエントリ登録が不可であるか確認する。例えば、転送処理部13−2は、フローテーブル12−2用のメモリ容量を確認し、容量に空き(余裕)がなければ、フローエントリ登録が不可であると判断する。或いは、転送処理部13−2は、制御サーバ20への「エントリ不可」のメッセージの送信記録(ログ)の有無により、フローテーブル12−2へのフローエントリ登録が不可であるか確認するようにしても良い。このとき、転送処理部13−2は、スイッチ10−1に対しても、フローテーブル12−1へのフローエントリ登録が不可であるか問い合わせて、フローテーブル12−1へのフローエントリ登録が不可であるか確認するようにしても良い。
(10)ステップS110
転送処理部13−2は、フローテーブル12−2へのフローエントリ登録が不可でなければ、当該通信データに対する転送方式を制御サーバ20に問い合わせる。その理由は、通信データが、フローテーブル12−2内のいずれのフローエントリにも一致しない場合、当該通信データが、初めて受信した種類のパケットであるためにフローエントリが未登録の「最初のパケット(first packet)」である可能性が高いためである。
転送処理部13−2は、フローテーブル12−2へのフローエントリ登録が不可でなければ、当該通信データに対する転送方式を制御サーバ20に問い合わせる。その理由は、通信データが、フローテーブル12−2内のいずれのフローエントリにも一致しない場合、当該通信データが、初めて受信した種類のパケットであるためにフローエントリが未登録の「最初のパケット(first packet)」である可能性が高いためである。
(11)ステップS111
制御サーバ20は、スイッチ10−2からの問い合わせに対して、当該通信データに対する転送方式があるか確認する。
制御サーバ20は、スイッチ10−2からの問い合わせに対して、当該通信データに対する転送方式があるか確認する。
(12)ステップS112
制御サーバ20は、当該通信データに対する転送方式がある場合、該当するスイッチ10(ここでは、スイッチ10−1又はスイッチ10−2のいずれか)に対して、当該通信データのマッチ条件と転送方式とを定義したフローエントリの登録要求を送信する。なお、制御サーバ20は、スイッチ10−1から「エントリ不可」のメッセージを受信していれば、当然にスイッチ10−2に対して、当該通信データのマッチ条件と転送方式とを定義したフローエントリの登録要求を送信することになる。該当するスイッチ10の内部の制御メッセージ処理部11は、制御サーバ20からフローエントリの登録要求を受信すると、フローテーブル12に当該フローエントリを登録する。これにより、該当するスイッチ10の内部の転送処理部13は、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400から出力する。
制御サーバ20は、当該通信データに対する転送方式がある場合、該当するスイッチ10(ここでは、スイッチ10−1又はスイッチ10−2のいずれか)に対して、当該通信データのマッチ条件と転送方式とを定義したフローエントリの登録要求を送信する。なお、制御サーバ20は、スイッチ10−1から「エントリ不可」のメッセージを受信していれば、当然にスイッチ10−2に対して、当該通信データのマッチ条件と転送方式とを定義したフローエントリの登録要求を送信することになる。該当するスイッチ10の内部の制御メッセージ処理部11は、制御サーバ20からフローエントリの登録要求を受信すると、フローテーブル12に当該フローエントリを登録する。これにより、該当するスイッチ10の内部の転送処理部13は、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400から出力する。
(13)ステップS113
転送処理部13−2は、フローテーブル12−2へのフローエントリ登録が不可の場合や、制御サーバ20に問い合わせた結果、当該通信データに対する転送方式がない場合、当該通信データに対して何もしない、或いはドロップ(廃棄)する。
転送処理部13−2は、フローテーブル12−2へのフローエントリ登録が不可の場合や、制御サーバ20に問い合わせた結果、当該通信データに対する転送方式がない場合、当該通信データに対して何もしない、或いはドロップ(廃棄)する。
[本実施形態の効果]
既存のオープンフロー技術におけるスイッチシステムと比較して、以下のような効果が得られる。
既存のオープンフロー技術におけるスイッチシステムと比較して、以下のような効果が得られる。
本実施形態では、スイッチに内蔵されるフローテーブル用のメモリ容量を超える分を他のスイッチのフローテーブル用メモリを使用することとなり、1台のスイッチのフローテーブルには収まりきらないエントリ数の登録が必要となった場合でも複数のスイッチを用いてフローエントリの登録が可能となる。
なお、スイッチグループを形成するスイッチは2台でなく、3台以上を組合せて同等の方法でフローテーブルの登録を行うことも可能である。
<第2実施形態>
以下に、本発明の第2実施形態について説明する。
以下に、本発明の第2実施形態について説明する。
本実施形態では、3台以上のスイッチを組み合せてスイッチグループを形成する。
[スイッチシステムの構成]
図4に示すように、本発明の第2実施形態におけるスイッチシステムでは、スイッチ10(10−i、i=1〜n:nはスイッチの数)と、制御サーバ20を含む。
図4に示すように、本発明の第2実施形態におけるスイッチシステムでは、スイッチ10(10−i、i=1〜n:nはスイッチの数)と、制御サーバ20を含む。
スイッチ10(10−i、i=1〜n)及び制御サーバ20については、基本的に第1実施形態と同様である。
スイッチ10(10−i、i=1〜n)の各々は、自身が保持するフローテーブル内のフローエントリの情報に従って、通信データを転送する。
各スイッチ10(10−i、i=1〜n)は、オープンフロー技術に従い、同一(共通)の制御サーバ20による経路制御を受けており、スイッチグループを形成する。
また、各スイッチ10(10−i、i=1〜n)は、制御リンク100(100−i、i=1〜n)と、スイッチ間リンク200(200−i、i=1〜m:mはn−1以上)と、入力リンク300(300−i、i=1〜n)と、出力リンク400(400−i、i=1〜n)とに接続されている。すなわち、各スイッチ10(10−i、i=1〜n)は、各リンクに接続するための端子(ポート)を備える。
制御リンク100は、スイッチ10と制御サーバ20とを接続する通信回線である。
スイッチ間リンク200は、同じスイッチグループに属するスイッチ10同士を接続する通信回線である。
入力リンク300は、スイッチ10に通信データを入力するための通信回線である。
出力リンク400は、スイッチ10から通信データを出力するための通信回線である。
制御リンク100、入力リンク300、及び出力リンク400は、スイッチ10毎に存在している。スイッチ間リンク200は、スイッチ10とスイッチ間リンクにより直接接続しているスイッチの数だけ存在している。
制御サーバ20は、各スイッチ10(10−i、i=1〜n)に対して、通信データのマッチ条件(ルール)と所定の処理(アクション)とを定義したフローエントリの登録要求を送信する。フローエントリの登録の内容には、フローエントリの新規登録、変更、削除を含むものとする。制御サーバ20は、オープンフロー技術において、コントローラーとも呼ばれる。
各スイッチ10(10−i、i=1〜n)は、制御メッセージ処理部11(11−i、i=1〜n)と、フローテーブル12(12−i、i=1〜n)と、転送処理部13(13−i、i=1〜n)を備える。
制御メッセージ処理部11は、制御サーバ20からフローエントリの登録要求を受信すると、フローテーブル12に当該フローエントリを登録する。
制御サーバ20と制御メッセージ処理部11とは、制御リンク100を介して接続されている。
フローテーブル12は、所定のマッチ条件(ルール)に適合する通信データに対して行うべき所定の処理(アクション)を定義したフローエントリが登録されたテーブルである。
転送処理部13は、入力リンク300から通信データを入力し、当該通信データについて、フローテーブル12を検索し、いずれかのフローエントリのマッチ条件に適合(Hit)した場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400から出力する。
各スイッチ10(10−i、i=1〜n)は、互いにスイッチ間リンク200により接続されている。例えば、各スイッチ10(10−i、i=1〜n)の内部の転送処理部13(13−i、i=1〜n)が、互いにスイッチ間リンク200により接続されている。
各スイッチ10(10−i、i=1〜n)は、スイッチ間リンク200を介して、複数のスイッチ10と接続されていても良い。例えば、スイッチ10−1は、スイッチ10−2及びスイッチ10−3の両方と、それぞれ個別のスイッチ間リンク200により接続されていても良い。
ここでは、スイッチ10−1は、実際に通信データを入力した最初のスイッチである。スイッチ10−2以降のスイッチは、スイッチ10−1と同様の機能を有するスイッチである。便宜上、スイッチ10−2以降のスイッチを、代替スイッチと呼ぶ。
[本実施形態におけるスイッチシステムの動作の詳細]
図5A、図5Bを参照して、本発明の第2実施形態におけるスイッチシステムの動作の詳細について説明する。
図5A、図5Bを参照して、本発明の第2実施形態におけるスイッチシステムの動作の詳細について説明する。
(1)ステップS201
スイッチ10−1の内部の転送処理部13−1は、入力リンク300−1より入力された通信データを取得する。
スイッチ10−1の内部の転送処理部13−1は、入力リンク300−1より入力された通信データを取得する。
(2)ステップS202
転送処理部13−1は、通信データについて、フローテーブル12−1内のフローエントリを1番目のフローエントリ1からN番目のフローエントリNまで検索し、いずれかのフローエントリに一致するか確認する。例えば、転送処理部13−1は、通信データが、いずれかのフローエントリのマッチ条件に適合(Hit)した場合、フローエントリに一致したと判断する。
転送処理部13−1は、通信データについて、フローテーブル12−1内のフローエントリを1番目のフローエントリ1からN番目のフローエントリNまで検索し、いずれかのフローエントリに一致するか確認する。例えば、転送処理部13−1は、通信データが、いずれかのフローエントリのマッチ条件に適合(Hit)した場合、フローエントリに一致したと判断する。
(3)ステップS203
転送処理部13−1は、通信データが、フローテーブル12−1内のいずれかのフローエントリに一致した場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−1から出力する。
転送処理部13−1は、通信データが、フローテーブル12−1内のいずれかのフローエントリに一致した場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−1から出力する。
(4)ステップS204
反対に、転送処理部13−1は、通信データが、フローテーブル12−1内のいずれのフローエントリにも一致しない場合、スイッチ間リンク200により接続されている代替のスイッチ10−x(2≦x≦n)が存在するか確認する。
反対に、転送処理部13−1は、通信データが、フローテーブル12−1内のいずれのフローエントリにも一致しない場合、スイッチ間リンク200により接続されている代替のスイッチ10−x(2≦x≦n)が存在するか確認する。
(5)ステップS205
転送処理部13−1は、スイッチ10−xが存在する場合、スイッチ間リンク200を介して、当該通信データをスイッチ10−xに転送する。すなわち、転送処理部13−1は、制御サーバ20の代わりに、又は制御サーバ20よりも優先的に、当該通信データを、同一スイッチグループに属するスイッチ10−xに転送するようにする。このとき、転送処理部13−1は、スイッチ10−1の内部のフローテーブル12−1が検索済みであることを示すために、スイッチ10−1の識別情報を、当該通信データと共に送信するようにしても良い。なお、実際には、転送処理部13−1は、当該通信データを保持したまま、スイッチ10−xに対して、当該通信データに一致するフローエントリを問い合わせるようにしても良い。
転送処理部13−1は、スイッチ10−xが存在する場合、スイッチ間リンク200を介して、当該通信データをスイッチ10−xに転送する。すなわち、転送処理部13−1は、制御サーバ20の代わりに、又は制御サーバ20よりも優先的に、当該通信データを、同一スイッチグループに属するスイッチ10−xに転送するようにする。このとき、転送処理部13−1は、スイッチ10−1の内部のフローテーブル12−1が検索済みであることを示すために、スイッチ10−1の識別情報を、当該通信データと共に送信するようにしても良い。なお、実際には、転送処理部13−1は、当該通信データを保持したまま、スイッチ10−xに対して、当該通信データに一致するフローエントリを問い合わせるようにしても良い。
(6)ステップS206
スイッチ10−xの内部の転送処理部13−xは、スイッチ10−1から転送された通信データについて、フローテーブル12−x内のフローエントリを(x−1)N+1番目のフローエントリ(x−1)N+1からxN番目のフローエントリxNまで検索し、いずれかのフローエントリに一致するか確認する。例えば、転送処理部13−xは、通信データが、いずれかのフローエントリのマッチ条件に適合(Hit)した場合、フローエントリに一致したと判断する。反対に、転送処理部13−xは、通信データが、フローテーブル12−x内のいずれのフローエントリにも一致しない場合、スイッチ間リンク200により接続されている代替スイッチ10−(x+1)が存在するか確認する。すなわち、転送処理部13−xは、通信データが、いずれかのフローエントリのマッチ条件に適合(Hit)するか、同一スイッチグループに属する新規のスイッチ10がなくなるまで(最後のスイッチ10−nに到達するまで)、同様の処理を繰り返す。
スイッチ10−xの内部の転送処理部13−xは、スイッチ10−1から転送された通信データについて、フローテーブル12−x内のフローエントリを(x−1)N+1番目のフローエントリ(x−1)N+1からxN番目のフローエントリxNまで検索し、いずれかのフローエントリに一致するか確認する。例えば、転送処理部13−xは、通信データが、いずれかのフローエントリのマッチ条件に適合(Hit)した場合、フローエントリに一致したと判断する。反対に、転送処理部13−xは、通信データが、フローテーブル12−x内のいずれのフローエントリにも一致しない場合、スイッチ間リンク200により接続されている代替スイッチ10−(x+1)が存在するか確認する。すなわち、転送処理部13−xは、通信データが、いずれかのフローエントリのマッチ条件に適合(Hit)するか、同一スイッチグループに属する新規のスイッチ10がなくなるまで(最後のスイッチ10−nに到達するまで)、同様の処理を繰り返す。
(7)ステップS207
転送処理部13−xは、通信データが、フローテーブル12−x内のいずれかのフローエントリに一致した場合、当該フローエントリに定義された転送方式を参照し、当該通信データを転送元のスイッチ10−y(1≦y<x)から出力する必要があるか確認する。転送元のスイッチ10−yは、スイッチ10−1でも良い。すなわち、転送処理部13−xは、当該フローエントリに定義された転送方式において、転送元のスイッチ10−yから出力する旨が定義されているか確認する。例えば、スイッチ10−yの配下のノードに転送する場合や、送信元アドレスをスイッチ10−yのアドレスにする必要がある場合等が考えられる。
転送処理部13−xは、通信データが、フローテーブル12−x内のいずれかのフローエントリに一致した場合、当該フローエントリに定義された転送方式を参照し、当該通信データを転送元のスイッチ10−y(1≦y<x)から出力する必要があるか確認する。転送元のスイッチ10−yは、スイッチ10−1でも良い。すなわち、転送処理部13−xは、当該フローエントリに定義された転送方式において、転送元のスイッチ10−yから出力する旨が定義されているか確認する。例えば、スイッチ10−yの配下のノードに転送する場合や、送信元アドレスをスイッチ10−yのアドレスにする必要がある場合等が考えられる。
(8)ステップS208
転送処理部13−xは、通信データを転送元のスイッチ10−yから出力する必要がある場合、当該フローエントリに定義された転送方式に従って、スイッチ間リンク200を介して、当該通信データを転送元のスイッチ10−yに転送する。スイッチ10−yの内部の転送処理部13−yは、当該通信データを出力リンク400−yから出力する。なお、実際には、転送処理部13−yは、当該通信データを保持したまま、スイッチ10−xから、当該通信データに一致するフローエントリに関する応答を受信し、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−yから出力するようにしても良い。
転送処理部13−xは、通信データを転送元のスイッチ10−yから出力する必要がある場合、当該フローエントリに定義された転送方式に従って、スイッチ間リンク200を介して、当該通信データを転送元のスイッチ10−yに転送する。スイッチ10−yの内部の転送処理部13−yは、当該通信データを出力リンク400−yから出力する。なお、実際には、転送処理部13−yは、当該通信データを保持したまま、スイッチ10−xから、当該通信データに一致するフローエントリに関する応答を受信し、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−yから出力するようにしても良い。
(9)ステップS209
反対に、転送処理部13−xは、通信データを転送元のスイッチ10−yから出力する必要がない場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−xから出力する。
反対に、転送処理部13−xは、通信データを転送元のスイッチ10−yから出力する必要がない場合、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400−xから出力する。
(10)ステップS210
通信データが、いずれのフローエントリのマッチ条件にも適合(Hit)せず、同一スイッチグループに属する最後のスイッチ10−nに到達した場合、スイッチ10−nの内部の転送処理部13−nは、フローテーブル12−nへのフローエントリ登録が不可であるか確認する。例えば、転送処理部13−nは、フローテーブル12−n用のメモリ容量を確認し、容量に空き(余裕)がなければ、フローエントリ登録が不可であると判断する。或いは、転送処理部13−nは、制御サーバ20への「エントリ不可」のメッセージの送信記録(ログ)の有無により、フローテーブル12−nへのフローエントリ登録が不可であるか確認するようにしても良い。このとき、転送処理部13−nは、スイッチ10−n以外の全てのスイッチ10に対しても、そのスイッチ10の内部のフローテーブル12へのフローエントリ登録が不可であるか問い合わせて、そのフローテーブル12へのフローエントリ登録が不可であるか確認するようにしても良い。
通信データが、いずれのフローエントリのマッチ条件にも適合(Hit)せず、同一スイッチグループに属する最後のスイッチ10−nに到達した場合、スイッチ10−nの内部の転送処理部13−nは、フローテーブル12−nへのフローエントリ登録が不可であるか確認する。例えば、転送処理部13−nは、フローテーブル12−n用のメモリ容量を確認し、容量に空き(余裕)がなければ、フローエントリ登録が不可であると判断する。或いは、転送処理部13−nは、制御サーバ20への「エントリ不可」のメッセージの送信記録(ログ)の有無により、フローテーブル12−nへのフローエントリ登録が不可であるか確認するようにしても良い。このとき、転送処理部13−nは、スイッチ10−n以外の全てのスイッチ10に対しても、そのスイッチ10の内部のフローテーブル12へのフローエントリ登録が不可であるか問い合わせて、そのフローテーブル12へのフローエントリ登録が不可であるか確認するようにしても良い。
(11)ステップS211
転送処理部13−nは、フローテーブル12−nへのフローエントリ登録が不可でなければ、当該通信データに対する転送方式を制御サーバ20に問い合わせる。その理由は、通信データが、フローテーブル12−n内のいずれのフローエントリにも一致しない場合、当該通信データが、初めて受信した種類のパケットであるためにフローエントリが未登録の「最初のパケット(first packet)」である可能性が高いためである。
転送処理部13−nは、フローテーブル12−nへのフローエントリ登録が不可でなければ、当該通信データに対する転送方式を制御サーバ20に問い合わせる。その理由は、通信データが、フローテーブル12−n内のいずれのフローエントリにも一致しない場合、当該通信データが、初めて受信した種類のパケットであるためにフローエントリが未登録の「最初のパケット(first packet)」である可能性が高いためである。
(12)ステップS212
制御サーバ20は、スイッチ10−nからの問い合わせに対して、当該通信データに対する転送方式があるか確認する。
制御サーバ20は、スイッチ10−nからの問い合わせに対して、当該通信データに対する転送方式があるか確認する。
(13)ステップS213
制御サーバ20は、当該通信データに対する転送方式がある場合、該当するスイッチ10(ここでは、スイッチ10−1〜スイッチ10−nのいずれか)に対して、当該通信データのマッチ条件と転送方式とを定義したフローエントリの登録要求を送信する。なお、制御サーバ20は、スイッチ10−n以外の全てのスイッチ10から「エントリ不可」のメッセージを受信していれば、当然にスイッチ10−nに対して、当該通信データのマッチ条件と転送方式とを定義したフローエントリの登録要求を送信することになる。該当するスイッチ10の内部の制御メッセージ処理部11は、制御サーバ20からフローエントリの登録要求を受信すると、フローテーブル12に当該フローエントリを登録する。これにより、該当するスイッチ10の内部の転送処理部13は、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400から出力する。
制御サーバ20は、当該通信データに対する転送方式がある場合、該当するスイッチ10(ここでは、スイッチ10−1〜スイッチ10−nのいずれか)に対して、当該通信データのマッチ条件と転送方式とを定義したフローエントリの登録要求を送信する。なお、制御サーバ20は、スイッチ10−n以外の全てのスイッチ10から「エントリ不可」のメッセージを受信していれば、当然にスイッチ10−nに対して、当該通信データのマッチ条件と転送方式とを定義したフローエントリの登録要求を送信することになる。該当するスイッチ10の内部の制御メッセージ処理部11は、制御サーバ20からフローエントリの登録要求を受信すると、フローテーブル12に当該フローエントリを登録する。これにより、該当するスイッチ10の内部の転送処理部13は、当該フローエントリに定義された転送方式に従って、当該通信データを出力リンク400から出力する。
(14)ステップS214
転送処理部13−nは、フローテーブル12−nへのフローエントリ登録が不可の場合や、制御サーバ20に問い合わせた結果、当該通信データに対する転送方式がない場合、当該通信データに対して何もしない、或いはドロップ(廃棄)する。
転送処理部13−nは、フローテーブル12−nへのフローエントリ登録が不可の場合や、制御サーバ20に問い合わせた結果、当該通信データに対する転送方式がない場合、当該通信データに対して何もしない、或いはドロップ(廃棄)する。
<本発明の特徴>
以上のように、本発明は、スイッチシステムにおける通信データの転送装置、及び転送方式に関する。
以上のように、本発明は、スイッチシステムにおける通信データの転送装置、及び転送方式に関する。
本発明では、制御サーバからスイッチ内のフローテーブルにフローエントリを登録する際に、スイッチからフローテーブルに空きがないことを示すエラーメッセージが戻ってきた場合、制御サーバはスイッチグループ内の別のスイッチに該当フローエントリを登録する。
すなわち、本発明は、制御サーバ及びスイッチによって構成されるスイッチシステムにおいて、制御サーバからスイッチの内部のフローテーブルに通信データの転送方式を定義するフローエントリを登録する際、そのスイッチのフローテーブルにフローエントリを登録するための空き容量がないことが判明した場合、制御サーバが他のスイッチのフローテーブルへフローエントリを登録することを特徴とする。
また、本発明では、複数のスイッチを1つのスイッチグループとして組合せ、1台のスイッチのフローテーブルに登録しきれないフローエントリ数が存在する場合、スイッチグループ内の他のスイッチの内部のフローテーブルにフローエントリを登録しておき、通信データの転送方式があるスイッチでフローエントリを検索した結果で決定できなかった場合はスイッチグループ内の他のスイッチに通信データを転送することで、フローエントリの検索を継続する運用が可能となる。
すなわち、本発明では、通信データをスイッチが転送する際、そのスイッチのフローテーブル内の全てのフローエントリを検索した後、転送方式が決定しなかった場合は、その通信データをスイッチグループ内の別のスイッチへ転送し、そのスイッチで再びフローテーブル内のフローエントリの検索を続ける。
これにより、1つの通信データに対して、複数のスイッチでフローエントリの検索を行えるため、1つの通信データに対して検索をかけるフローエントリ数の上限を増やすことが可能となる。
<付記>
上記の実施形態の一部又は全部は、以下の付記のように記載することも可能である。但し、実際には、以下の記載例に限定されない。
上記の実施形態の一部又は全部は、以下の付記のように記載することも可能である。但し、実際には、以下の記載例に限定されない。
(付記1)
入力リンクより通信データを入力した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認し、いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送し、いずれのフローエントリにも前記通信データが適合しない場合、スイッチ間リンクを介して接続されたスイッチに前記通信データを転送する第1のスイッチと、
前記第1のスイッチと同じスイッチグループに属し、前記第1のスイッチからスイッチ間リンクを介して前記通信データを受信した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認し、いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送する第2のスイッチと、
前記第1のスイッチのフローテーブルにフローエントリを登録し、前記第1のスイッチのフローテーブルにフローエントリすることができなくなった場合、前記第2のスイッチのフローテーブルに、前記第1のスイッチのフローテーブルに登録すべきフローエントリを登録する制御サーバと
を含む
スイッチシステム。
入力リンクより通信データを入力した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認し、いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送し、いずれのフローエントリにも前記通信データが適合しない場合、スイッチ間リンクを介して接続されたスイッチに前記通信データを転送する第1のスイッチと、
前記第1のスイッチと同じスイッチグループに属し、前記第1のスイッチからスイッチ間リンクを介して前記通信データを受信した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認し、いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送する第2のスイッチと、
前記第1のスイッチのフローテーブルにフローエントリを登録し、前記第1のスイッチのフローテーブルにフローエントリすることができなくなった場合、前記第2のスイッチのフローテーブルに、前記第1のスイッチのフローテーブルに登録すべきフローエントリを登録する制御サーバと
を含む
スイッチシステム。
(付記2)
付記1に記載のスイッチシステムであって、
前記第2のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行い、
前記制御サーバは、前記通信データの転送方式の問い合わせに応じて、前記スイッチグループに属するいずれかのスイッチのフローテーブルに、前記通信データの転送方式を定義したフローエントリを登録する
スイッチシステム。
付記1に記載のスイッチシステムであって、
前記第2のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行い、
前記制御サーバは、前記通信データの転送方式の問い合わせに応じて、前記スイッチグループに属するいずれかのスイッチのフローテーブルに、前記通信データの転送方式を定義したフローエントリを登録する
スイッチシステム。
(付記3)
付記1に記載のスイッチシステムであって、
前記第1のスイッチ及び前記第2のスイッチと同じスイッチグループに属し、前記第2のスイッチからスイッチ間リンクを介して前記通信データを受信した際に、内部のフローテーブルに登録されたフローエントリのいずれかに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送する第3のスイッチ
を更に含み、
前記第2のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、スイッチ間リンクを介して前記第3のスイッチに前記通信データを転送し、
前記第3のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行い、
前記制御サーバは、前記通信データの転送方式の問い合わせに応じて、前記スイッチグループに属するいずれかのスイッチのフローテーブルに、前記通信データの転送方式を定義したフローエントリを登録する
スイッチシステム。
付記1に記載のスイッチシステムであって、
前記第1のスイッチ及び前記第2のスイッチと同じスイッチグループに属し、前記第2のスイッチからスイッチ間リンクを介して前記通信データを受信した際に、内部のフローテーブルに登録されたフローエントリのいずれかに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送する第3のスイッチ
を更に含み、
前記第2のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、スイッチ間リンクを介して前記第3のスイッチに前記通信データを転送し、
前記第3のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行い、
前記制御サーバは、前記通信データの転送方式の問い合わせに応じて、前記スイッチグループに属するいずれかのスイッチのフローテーブルに、前記通信データの転送方式を定義したフローエントリを登録する
スイッチシステム。
(付記4)
付記1乃至3のいずれかに記載のスイッチシステムであって、
前記スイッチグループに属するスイッチは、
所定のマッチ条件に適合する通信データの転送方式を定義したフローエントリが登録されるフローテーブルと、
入力リンクより通信データを入力した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認し、いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送し、いずれのフローエントリにも前記通信データが適合しない場合、スイッチ間リンクを介して、前記スイッチグループに属するフローテーブル未検索のスイッチに前記通信データを転送する転送処理部と、
前記スイッチグループに属するフローテーブル未検索のスイッチが存在しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行い、前記制御サーバからの制御により、前記フローテーブルに、前記通信データの転送方式を定義したフローエントリを登録する制御メッセージ処理部と
を具備する
スイッチシステム。
付記1乃至3のいずれかに記載のスイッチシステムであって、
前記スイッチグループに属するスイッチは、
所定のマッチ条件に適合する通信データの転送方式を定義したフローエントリが登録されるフローテーブルと、
入力リンクより通信データを入力した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認し、いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送し、いずれのフローエントリにも前記通信データが適合しない場合、スイッチ間リンクを介して、前記スイッチグループに属するフローテーブル未検索のスイッチに前記通信データを転送する転送処理部と、
前記スイッチグループに属するフローテーブル未検索のスイッチが存在しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行い、前記制御サーバからの制御により、前記フローテーブルに、前記通信データの転送方式を定義したフローエントリを登録する制御メッセージ処理部と
を具備する
スイッチシステム。
なお、上記において、第2のスイッチ及び第3のスイッチは、それぞれ複数でも良い。
(付記5)
スイッチグループを形成し、入力リンクより通信データを入力した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認し、いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送し、いずれのフローエントリにも前記通信データが適合しない場合、スイッチ間リンクを介して接続された代替スイッチがあれば、前記代替スイッチに前記通信データを転送し、スイッチ間リンクを介して接続された代替スイッチがなければ、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行う複数のスイッチと、
前記複数のスイッチのいずれかのフローテーブルにフローエントリを登録し、当該スイッチのフローテーブルにフローエントリすることができなくなった場合、前記スイッチグループを形成する他のスイッチのフローテーブルに、前記スイッチのフローテーブルに登録すべきフローエントリを登録する制御サーバと
を含む
スイッチシステム。
スイッチグループを形成し、入力リンクより通信データを入力した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認し、いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送し、いずれのフローエントリにも前記通信データが適合しない場合、スイッチ間リンクを介して接続された代替スイッチがあれば、前記代替スイッチに前記通信データを転送し、スイッチ間リンクを介して接続された代替スイッチがなければ、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行う複数のスイッチと、
前記複数のスイッチのいずれかのフローテーブルにフローエントリを登録し、当該スイッチのフローテーブルにフローエントリすることができなくなった場合、前記スイッチグループを形成する他のスイッチのフローテーブルに、前記スイッチのフローテーブルに登録すべきフローエントリを登録する制御サーバと
を含む
スイッチシステム。
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
なお、本出願は、日本出願番号2010−232597に基づく優先権を主張するものであり、日本出願番号2010−232597における開示内容は引用により本出願に組み込まれる。
Claims (8)
- 入力リンクより通信データを入力した際に、内部のフローテーブルに登録されたフローエントリのいずれかに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送し、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、スイッチ間リンクを介して接続されたスイッチに前記通信データを転送する第1のスイッチと、
前記第1のスイッチと同じスイッチグループに属し、前記第1のスイッチからスイッチ間リンクを介して前記通信データを受信した際に、内部のフローテーブルに登録されたフローエントリのいずれかに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送する第2のスイッチと、
前記第1のスイッチのフローテーブルにフローエントリを登録し、前記第1のスイッチのフローテーブルにフローエントリすることができなくなった場合、前記第2のスイッチのフローテーブルに、前記第1のスイッチのフローテーブルに登録すべきフローエントリを登録する制御サーバと
を含む
スイッチシステム。 - 請求項1に記載のスイッチシステムであって、
前記第2のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行い、
前記制御サーバは、前記通信データの転送方式の問い合わせに応じて、前記第1のスイッチ及び前記第2のスイッチのいずれかのフローテーブルに、前記通信データの転送方式を定義したフローエントリを登録する
スイッチシステム。 - 請求項1に記載のスイッチシステムであって、
前記第1のスイッチ及び前記第2のスイッチと同じスイッチグループに属し、前記第2のスイッチからスイッチ間リンクを介して前記通信データを受信した際に、内部のフローテーブルに登録されたフローエントリのいずれかに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送する第3のスイッチ
を更に含み、
前記第2のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、スイッチ間リンクを介して前記第3のスイッチに前記通信データを転送し、
前記第3のスイッチは、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行い、
前記制御サーバは、前記通信データの転送方式の問い合わせに応じて、前記第1のスイッチ、前記第2のスイッチ、及び前記第3のスイッチのいずれかのフローテーブルに、前記通信データの転送方式を定義したフローエントリを登録する
スイッチシステム。 - スイッチグループを形成するスイッチであって、
所定のマッチ条件に適合する通信データの転送方式を定義したフローエントリが登録されるフローテーブルと、
通信データを取得した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認し、いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送し、いずれのフローエントリにも前記通信データが適合しない場合、スイッチ間リンクを介して、前記スイッチグループに属するフローテーブル未検索のスイッチに前記通信データを転送する転送処理部と、
前記スイッチグループに属するフローテーブル未検索のスイッチが存在しない場合、制御サーバに対して、前記通信データの転送方式の問い合わせを行い、前記制御サーバからの制御により、前記フローテーブルに、前記通信データの転送方式を定義したフローエントリを登録する制御メッセージ処理部と
を具備する
スイッチ。 - 制御サーバにおいて、第1のスイッチのフローテーブルにフローエントリを登録することと、
前記制御サーバにおいて、前記第1のスイッチのフローテーブルにフローエントリすることができなくなった場合、前記第1のスイッチと同じスイッチグループに属する第2のスイッチのフローテーブルに、前記第1のスイッチのフローテーブルに登録すべきフローエントリを登録することと、
前記第1のスイッチにおいて、入力リンクより通信データを入力した際に、内部のフローテーブルに登録されたフローエントリのいずれかに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送することと、
前記第1のスイッチにおいて、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、スイッチ間リンクを介して、前記第2のスイッチに前記通信データを転送することと、
前記第2のスイッチにおいて、前記第1のスイッチからスイッチ間リンクを介して前記通信データを受信した際に、内部のフローテーブルに登録されたフローエントリのいずれかに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送することと
を含む
データ転送方法。 - 請求項5に記載のデータ転送方法であって、
前記第2のスイッチにおいて、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行うことと、
前記制御サーバにおいて、前記通信データの転送方式の問い合わせに応じて、前記第1のスイッチ及び前記第2のスイッチのいずれかのフローテーブルに、前記通信データの転送方式を定義したフローエントリを登録するうことと
を更に含む
データ転送方法。 - 請求項5に記載のデータ転送方法であって、
前記第2のスイッチにおいて、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、スイッチ間リンクを介して、前記第1のスイッチ及び前記第2のスイッチと同じスイッチグループに属する第3のスイッチに、前記通信データを転送することと、
前記第3のスイッチにおいて、前記第2のスイッチからスイッチ間リンクを介して前記通信データを受信した際に、内部のフローテーブルに登録されたフローエントリのいずれかに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送することと、
前記第3のスイッチにおいて、内部のフローテーブルに登録されたフローエントリのいずれにも前記通信データが適合しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行うことと、
前記制御サーバにおいて、前記通信データの転送方式の問い合わせに応じて、前記第1のスイッチ、前記第2のスイッチ、及び前記第3のスイッチのいずれかのフローテーブルに、前記通信データの転送方式を定義したフローエントリを登録することと
を更に含む
データ転送方法。 - スイッチグループを形成するスイッチにより実行されるプログラムを格納した記憶媒体であって、
制御サーバからの制御により、スイッチの内部のフローテーブルに、所定のマッチ条件に適合する通信データの転送方式を定義したフローエントリを登録するステップと、
通信データを取得した際に、前記フローテーブルに登録されたフローエントリのいずれかに前記通信データが適合するか確認するステップと、
いずれかのフローエントリに前記通信データが適合した場合、当該フローエントリに定義された転送方式に従って、前記通信データを転送するステップと、
いずれのフローエントリにも前記通信データが適合しない場合、スイッチ間リンクを介して、前記スイッチグループに属するフローテーブル未検索のスイッチに前記通信データを転送するステップと、
前記スイッチグループに属するフローテーブル未検索のスイッチが存在しない場合、前記制御サーバに対して、前記通信データの転送方式の問い合わせを行うステップと
をスイッチに実行させるためのプログラムを格納した
記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012538607A JP5532276B2 (ja) | 2010-10-15 | 2011-09-08 | スイッチシステム、及びデータ転送方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010232597 | 2010-10-15 | ||
JP2010232597 | 2010-10-15 | ||
JP2012538607A JP5532276B2 (ja) | 2010-10-15 | 2011-09-08 | スイッチシステム、及びデータ転送方法 |
PCT/JP2011/070432 WO2012049925A1 (ja) | 2010-10-15 | 2011-09-08 | スイッチシステム、及びデータ転送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2012049925A1 true JPWO2012049925A1 (ja) | 2014-02-24 |
JP5532276B2 JP5532276B2 (ja) | 2014-06-25 |
Family
ID=45938159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012538607A Expired - Fee Related JP5532276B2 (ja) | 2010-10-15 | 2011-09-08 | スイッチシステム、及びデータ転送方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9124526B2 (ja) |
EP (1) | EP2629462A4 (ja) |
JP (1) | JP5532276B2 (ja) |
KR (1) | KR101476940B1 (ja) |
CN (1) | CN103168453B (ja) |
CA (1) | CA2814488A1 (ja) |
RU (1) | RU2595963C2 (ja) |
WO (1) | WO2012049925A1 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103096502B (zh) * | 2011-11-03 | 2016-03-09 | 华为技术有限公司 | 建立设备到设备连接的方法、装置和系统 |
WO2013107056A1 (zh) * | 2012-01-21 | 2013-07-25 | 华为技术有限公司 | 报文转发的方法及装置 |
US9306840B2 (en) * | 2012-09-26 | 2016-04-05 | Alcatel Lucent | Securing software defined networks via flow deflection |
US9906438B2 (en) | 2012-12-19 | 2018-02-27 | Nec Corporation | Communication node, control apparatus, communication system, packet processing method, communication node controlling method and program |
KR101595160B1 (ko) * | 2013-07-17 | 2016-02-17 | 주식회사 케이티 | 소프트웨어 정의 네트워킹 네트워크에서 트랜잭션 관리 방법 |
CN104702496A (zh) * | 2013-12-10 | 2015-06-10 | 财团法人资讯工业策进会 | 封包交换系统及方法 |
JP2015159500A (ja) * | 2014-02-25 | 2015-09-03 | 日本電気株式会社 | オープンフロー制御装置、経路管理方法およびプログラム |
JP6395867B2 (ja) | 2014-06-03 | 2018-09-26 | 華為技術有限公司Huawei Technologies Co.,Ltd. | OpenFlow通信方法及びシステム、制御部、並びにサービスゲートウェイ |
WO2016065536A1 (zh) | 2014-10-28 | 2016-05-06 | 华为技术有限公司 | 交换机处理方法、控制器、交换机及交换机处理系统 |
US10193782B1 (en) * | 2015-05-29 | 2019-01-29 | Akamai Technologies, Inc. | Layer 4 switching for persistent connections |
CN106302184B (zh) | 2015-06-12 | 2020-02-14 | 华为技术有限公司 | 一种流表项下发方法、流表项保存方法、相关装置和系统 |
JP7091923B2 (ja) * | 2018-08-07 | 2022-06-28 | 日本電信電話株式会社 | 転送装置、転送方法及びプログラム |
WO2021149160A1 (ja) * | 2020-01-21 | 2021-07-29 | 三菱電機株式会社 | コントローラ、通信装置、通信システム、制御回路、記憶媒体および通信方法 |
KR20230157194A (ko) * | 2022-05-09 | 2023-11-16 | 삼성전자주식회사 | 스위치를 이용하는 트래픽 처리를 위한 장치 및 방법 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE525800C2 (sv) * | 2002-10-30 | 2005-04-26 | Packetfront Sweden Ab | Anordning och router i ett bredbandsnät som arbetar genom överföring av paketflöden, med ett av en central processorenhet omkopplat mjukvaruflöde och ett hårdvaruomkopplat accelerarat flöde |
JP2004221807A (ja) | 2003-01-14 | 2004-08-05 | Hitachi Ltd | 分散ルーティングテーブル管理方式およびルータ |
JP4818249B2 (ja) | 2007-12-14 | 2011-11-16 | アラクサラネットワークス株式会社 | ネットワーク中継システム、ネットワーク中継システムの制御方法、および、ネットワーク中継システムにおける管理装置 |
US8243733B2 (en) | 2008-06-19 | 2012-08-14 | Marvell World Trade Ltd. | Cascaded memory tables for searching |
US20110270979A1 (en) * | 2009-01-12 | 2011-11-03 | Schlansker Michael S | Reducing Propagation Of Message Floods In Computer Networks |
US7826369B2 (en) | 2009-02-20 | 2010-11-02 | Cisco Technology, Inc. | Subsets of the forward information base (FIB) distributed among line cards in a switching device |
EP2408155A4 (en) | 2009-03-09 | 2015-01-28 | Nec Corp | OPENFLOW COMMUNICATION SYSTEM AND OPENFLOW COMMUNICATION METHOD |
JP2010232597A (ja) | 2009-03-30 | 2010-10-14 | Toyoda Gosei Co Ltd | Iii族窒化物系化合物半導体発光素子及びその製造方法 |
US8897134B2 (en) * | 2010-06-25 | 2014-11-25 | Telefonaktiebolaget L M Ericsson (Publ) | Notifying a controller of a change to a packet forwarding configuration of a network element over a communication channel |
-
2011
- 2011-09-08 CN CN201180049403.XA patent/CN103168453B/zh not_active Expired - Fee Related
- 2011-09-08 EP EP11832364.1A patent/EP2629462A4/en not_active Withdrawn
- 2011-09-08 CA CA 2814488 patent/CA2814488A1/en not_active Abandoned
- 2011-09-08 RU RU2013122120/08A patent/RU2595963C2/ru not_active IP Right Cessation
- 2011-09-08 KR KR1020137009563A patent/KR101476940B1/ko not_active IP Right Cessation
- 2011-09-08 WO PCT/JP2011/070432 patent/WO2012049925A1/ja active Application Filing
- 2011-09-08 US US13/824,275 patent/US9124526B2/en not_active Expired - Fee Related
- 2011-09-08 JP JP2012538607A patent/JP5532276B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR101476940B1 (ko) | 2014-12-24 |
EP2629462A1 (en) | 2013-08-21 |
CN103168453B (zh) | 2016-08-03 |
WO2012049925A1 (ja) | 2012-04-19 |
US20130170503A1 (en) | 2013-07-04 |
EP2629462A4 (en) | 2014-06-11 |
RU2013122120A (ru) | 2014-11-20 |
CN103168453A (zh) | 2013-06-19 |
US9124526B2 (en) | 2015-09-01 |
KR20130052031A (ko) | 2013-05-21 |
CA2814488A1 (en) | 2012-04-19 |
RU2595963C2 (ru) | 2016-08-27 |
JP5532276B2 (ja) | 2014-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5532276B2 (ja) | スイッチシステム、及びデータ転送方法 | |
JP5557066B2 (ja) | スイッチシステム、モニタリング集中管理方法 | |
JP5962808B2 (ja) | スイッチシステム、スイッチ制御方法、及び記憶媒体 | |
KR101501397B1 (ko) | 네트워크 시스템, 스위치 및 접속 단말기 검지 방법 | |
CN105262683B (zh) | 网络系统和路由控制方法 | |
JP5811253B2 (ja) | ネットワークシステム、及びネットワーク管理方法 | |
JP5610247B2 (ja) | ネットワークシステム、及びポリシー経路設定方法 | |
JP5747993B2 (ja) | 負荷低減システム、及び負荷低減方法 | |
JPWO2012121098A1 (ja) | ネットワークシステム、パケット処理方法、及び記憶媒体 | |
JP2013115733A (ja) | ネットワークシステム、及びネットワーク制御方法 | |
JP2015511097A (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: 20140326 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140408 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5532276 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |