JP6146419B2 - 通信装置、通信方法、通信システムおよびプログラム - Google Patents

通信装置、通信方法、通信システムおよびプログラム Download PDF

Info

Publication number
JP6146419B2
JP6146419B2 JP2014542423A JP2014542423A JP6146419B2 JP 6146419 B2 JP6146419 B2 JP 6146419B2 JP 2014542423 A JP2014542423 A JP 2014542423A JP 2014542423 A JP2014542423 A JP 2014542423A JP 6146419 B2 JP6146419 B2 JP 6146419B2
Authority
JP
Japan
Prior art keywords
received packet
controller
entry
packet
control devices
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.)
Active
Application number
JP2014542423A
Other languages
English (en)
Other versions
JP2015508944A (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 JP2014542423A priority Critical patent/JP6146419B2/ja
Publication of JP2015508944A publication Critical patent/JP2015508944A/ja
Application granted granted Critical
Publication of JP6146419B2 publication Critical patent/JP6146419B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing

Landscapes

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

Description

(関連出願についての記載)
本発明は、日本国特許出願:特願2012−042741号(2012年2月29日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、ネットワークに接続する通信装置、通信方法、通信システムおよびプログラムに関する。
近年、オープンフロー(OpenFlow)という技術が提案されている。このオープンフローについては、非特許文献1、非特許文献2、また特許文献1、特許文献2に記載されている。オープンフローでは、オープンフロースイッチ(OpenFlow Switch、以下OFS)の機能と、それに対する制御装置であるオープンフローコントローラ(OpenFlow Controller、以下OFC)との通信方法が規定されている。OFSとOFCは、セキュアチャネルと呼ばれる制御パスによって接続される。また、OFSは、単一のOFCによって制御される。
OFSは、内部にフローテーブルを持つ。フローテーブルには、少なくともパケットのフローを識別するためのヘッダフィールドと、パケットに対する処理の組が、エントリとして登録される。パケットを識別するためのヘッダフィールドは、マッチングルールとも呼ばれる。ヘッダフィールドは複数のタプルから構成され、それぞれにワイルドカードを指定できる。ワイルドカードを指定することにより、集合としてフローの範囲を表すことができる。例えば、あるエントリのヘッダフィールドの送信元IP(Internet Protocol)アドレスだけを指定しておき、残りのタプルをワイルドカードに設定したとする。このとき、設定したエントリは、指定したIPアドレスから送信されるすべてのフローの集合を表すことになる。すなわち、指定したIPアドレスから送信されるパケットは、その宛先によらずすべてが設定したエントリに対応する。
また、パケットに対する処理は、アクションとも呼ばれる。アクションには少なくとも、指定ポートへの転送、OFCへの転送、入力ポートへの折り返し転送、廃棄等がある。
指定ポートへの転送はパケットの次段のスイッチへの転送に用いられる。OFCへの転送は、主にパケットの処理方法の問い合わせに用いられる。
OFSは、パケットを受信すると、まずフローテーブルを検索する。受信パケットにマッチするエントリが存在する場合には、マッチしたエントリのアクションに従ってパケットを処理する。エントリには優先度を設定することができ、パケットが複数のエントリにマッチする場合には、優先度が最も高いエントリのアクションが適用される。
フローテーブルに受信パケットにマッチするエントリが存在しない場合、OFSは、OFCに対して、受信パケットにどのような処理をするかを問い合わせる。その際、OFSは、セキュアチャネルを介して、パケットの一部または全部をOFCに転送する。処理の問い合わせを受けたOFCは、必要に応じてフローテーブルにエントリを追加し、OFSに処理方法を通知する。
また、特許文献3および特許文献4には、制御機能を有する制御装置と、転送機能を有し、制御装置によって制御されるスイッチとが設けられるネットワークアーキテクチャが開示されている。
特開2011−082834号公報 特開2011−101245号公報 特開2006―135971号公報 特開2006−135975号公報
Nick McKeown ほか7名、OpenFlow: Enabling Innovation in Campus Networks、[2011年6月28日検索]、インターネット<URL: http://www.openflowswitch.org/documents/openflow-wp-latest.pdf> OpenFlow Switch Specification Version 1.1.0 (Wire Protocol 0x01)、2009年12月31日、[2012年2月16日検索]、インターネット<URL: http://www.openflowswitch.org/documents/openflow-spec-v1.1.0.pdf>
上記の特許文献および非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
非特許文献1、非特許文献2、特許文献1、特許文献2に開示されたオープンフローや、特許文献3や特許文献4に開示されたアーキテクチャは、単一のコントローラによってスイッチの動作が細かく制御されることを前提としたネットワークシステムである。
よって、上記の先行技術文献は、複数のコントローラがある場合に、複数のコントローラによってスイッチや通信端末などの通信装置を制御する手法を開示していない。
本発明の第1の視点に係る通信装置は、受信パケットの所定の領域を参照し、該受信パケットに対応する処理をパケットを識別するための規則と該規則に対応するパケットの処理とを含むエントリから検索する第一の手段と、前記受信パケットのヘッダ情報と複数の制御装置のいずれかとの対応関係を参照して、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定する第二の手段と、前記第一の手段が前記受信パケットに対応する処理を検索した場合に、前記ヘッダ情報の一部を書き換えて、前記第一の手段に再検索を実行させる第三の手段と、を備える。
本発明の第2の視点に係る通信方法は、受信パケットの所定の領域を参照し、該受信パケットに対応する処理をパケットを識別するための規則と該規則に対応するパケットの処理とを含むエントリから検索し、前記受信パケットのヘッダ情報と複数の制御装置のいずれかとの対応関係を参照して、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定し、前記受信パケットに対応する処理を検索した場合に、前記ヘッダ情報の一部を書き換えて、再検索を実行する。
本発明によると、パケットを識別するための規則と、該規則に対応するパケットの処理とを記憶する記憶手段と、受信パケットの所定の領域を参照し、該受信パケットに対応する処理を前記記憶手段から検索する第一の手段と、前記所定の領域に基づいて、複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定する第二の手段とを備える、パケット転送装置が提供される。
本発明の第3の視点に係る通信システムは、複数の制御装置と、通信装置とを備え、受信パケットの所定の領域を参照し、該受信パケットに対応する処理をパケットを識別するための規則と該規則に対応するパケットの処理とを含むエントリから検索する第一の手段と、前記受信パケットのヘッダ情報と複数の制御装置のいずれかとの対応関係を参照して、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定する第二の手段と、前記第一の手段が前記受信パケットに対応する処理を検索した場合に、前記ヘッダ情報の一部を書き換えて、前記第一の手段に再検索を実行させる第三の手段と、を有する。
本発明の第4の視点に係るプログラムは、通信装置に設けられたコンピュータに、受信パケットの所定の領域を参照し、該受信パケットに対応する処理をパケットを識別するための規則と該規則に対応するパケットの処理とを含むエントリから検索する処理と、前記受信パケットのヘッダ情報と複数の制御装置のいずれかとの対応関係を参照して、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定する処理と、前記受信パケットに対応する処理を検索した場合に、前記ヘッダ情報の一部を書き換えて、再検索を実行する処理と、を実行させる。
なお、プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することができる。
本発明の少なくとも1つの視点によれば、スイッチや通信端末などの通信装置を制御するコントローラまたは制御装置が複数存在する場合であっても、複数のコントローラまたは制御装置によって、スイッチや通信端末などの通信装置を制御することが可能となる。
第1の実施形態による通信装置の構成例を示す図である。 第1の実施形態による動作例を示すフローチャートである。 第2の実施形態による通信システムの構成例を示す図である。 第2の実施形態によるスイッチの構成例を示す図である。 第2の実施形態によるスイッチの構成例を示す図である。 第2の実施形態によるフローテーブルの構成例を示す図である。 第2の実施形態によるエントリ編集コマンドの例を示す図である。 第2の実施形態によるスイッチの構成例を示す図である。 第2の実施形態によるエントリ付加情報の例を示す図である。 第2の実施形態による動作例を示すフローチャートである。 第2の実施形態による動作例を示すフローチャートである。 第2の実施形態による動作例を示すフローチャートである。 第2の実施形態による動作例を示すフローチャートである。 第3の実施形態によるスイッチの構成例を示す図である。 第3の実施形態によるフローテーブルの構成例を示す図である。 第3の実施形態による動作例を示すフローチャートである。 第4の実施形態によるスイッチの構成例を示す図である。 第4の実施形態によるコントローラフローテーブルの構成例である。 第4の実施形態による動作例を示すフローチャートである。 第4の実施形態による動作例を示すフローチャートである。 第5の実施形態の構成例を示す図である。 第5の実施形態の構成例を示す図である。 第5の実施形態の構成例を示す図である。 第5の実施形態の構成例を示す図である。 第5の実施形態の動作例を示すフローチャートである。 第6の実施形態の構成例を示す図である。 第6の実施形態の構成例を示す図である。 第6の実施形態の構成例を示す図である。 第6の実施形態の構成例を示す図である。 第6の実施形態の動作例を示すフローチャートである。 第7の実施形態の動作例を説明する図である。
次に、実施形態について図面を参照して詳細に説明する。
[第1の実施形態]
[構成]
図1は、第1の実施形態による通信装置1000の構成例を示している。図1によれば、通信装置1000は、記憶手段1001と、検索手段1002と、問い合わせ手段1003と、を含む。また、通信装置1000は、図示されていない制御装置と接続しているものとする。さらに、通信装置1000は、制御装置によって制御されている。
記憶手段1001は、パケットを識別する情報と、パケットに対する処理とを対応付けて記憶する。
検索手段1002は、パケットを受信した場合に、受信パケットに対応する処理を記憶手段1001から検索する。
問い合わせ手段1003は、検索手段1002が検索した処理が、制御装置に対する問い合わせであった場合に、以下の動作を行う。問い合わせ手段1003は、まず、受信パケットに対応する記憶手段1001のエントリに基づいて、問い合わせを行う制御装置を決定する。続いて、問い合わせ手段1003は、決定した制御装置を宛先として、問い合わせを行う。
[動作]
以下、図2のフローチャートを用いて第1の実施形態の動作について説明する。
まず、検索手段1002は、受信パケットに対応する処理を記憶手段1001から検索する(S1001)。
次に、問い合わせ手段1003は、検索手段1002が検索した処理が、制御装置に対する問い合わせであった場合に、受信パケットに対応する記憶手段1001のエントリに基づいて、問い合わせを行う制御装置を決定する(S1002)。
続いて、問い合わせ手段1003は、S1002で決定した制御装置を宛先として、問い合わせを行う(S1003)。
以上の通り、第1の実施形態では、通信装置1000が記憶手段1001、検索手段1002、問い合わせ手段1003を有するとして説明した。しかしながら、上記の各手段は、通信装置に限らず、通信端末など、その他の通信機器が備えていても良い。
[効果]
以上説明した通り、第1の実施形態によれば、通信装置は、受信パケットの処理問い合わせ先の制御装置を決定して、問い合わせを行っている。その結果、問い合わせを受けた制御装置は、受信パケットに対する処理を決定することができる。従って、第1の実施形態によれば、通信装置を制御する制御装置が複数存在する場合であっても、受信パケットを制御する制御装置を1つに決定することができるため、複数の制御装置による通信装置の制御が可能となる。
[第2の実施形態]
[構成]
図3は、第2の実施形態における通信システム1の構成例を示す図である。通信システム1は、図示されていないネットワークに接続された複数のコントローラ11と、複数のスイッチ12を備えている。図3の例では、コントローラ11は、コントローラ11−A、コントローラ11−B、コントローラ11−C、コントローラ11−Dの4個存在する。以降、特に区別する必要のない限りは、この4個のコントローラをコントローラ11と呼称する。
スイッチ12は、制御パスによって複数のコントローラ11と接続される。コントローラ11は、コントローラ11が制御するスイッチ12と接続され、制御メッセージのやり取りを行う。
図3の例では、スイッチ12は2個存在し、それぞれがコントローラ11−Aとコントローラ11−Bに接続している。また、図3のコントローラ11−Cからコントローラ11−Aと、コントローラ11−Dからコントローラ11−Bの2区間は、破線矢印で接続関係が示されている。これは、あるコントローラが、他のコントローラが制御する通信範囲を制限できても良いことを示している。
図4は、スイッチ12の構成例を示している。図4によれば、スイッチ12は、制御通信手段121と、フローテーブル管理手段122と、フロー識別手段123と、データ処理手段124と、フローテーブル125を備える。
制御通信手段121は、コントローラ11と、フローテーブル管理手段122と、フロー識別手段123と接続される。制御通信手段121は、コントローラ11から制御メッセージを受け取ると、フローテーブル管理手段122に制御指示を送る。フローテーブル管理手段122が制御結果を返すと、制御通信手段121は、必要に応じてコントローラ11に制御メッセージを送る。
図5は、制御通信手段121の構成例を示した図である。図5によれば、制御通信手段121は、処理問い合わせ手段1211を備える。
処理問い合わせ手段1211は、パケットの処理内容の問い合わせとコントローラの指定を受け、コントローラへ処理の問い合わせを行う。
フローテーブル管理手段122は、フローテーブル125に記載された情報を管理する。このフローテーブル管理手段122については、後に詳しく説明する。
フロー識別手段123は、データ処理手段124に到着したパケットの属するフローを識別する。フロー識別手段123は、フローテーブル125と接続されている。また、フロー識別手段123は、識別したフローに対する処理をフローテーブル125から検索する。
フローテーブル125は、フローの処理内容を記憶する。フローテーブル125の構成は、例えば図6のようなものである。フローテーブル125のエントリには、少なくとも優先度、マッチングルール、アクションが含まれる。優先度のa、k、n、mは自然数であり、大小関係は、k<n<m<aであるとする。従って、図6の例では、優先度の降順にエントリが並べられている。マッチングルールには、背景技術の項で述べた通り、IPアドレスやMAC(Media Access Control)アドレス等のタプルが記憶されている。アクションには、マッチングルールに適合したパケットをどのように処理するかが記載されている。
第2の実施形態では、マッチングルールに適合したパケットに対して、コントローラを指定して処理を問い合わせるというアクションを登録することができる。例えば、フローAに属するパケットに対しては、コントローラAに処理の問い合わせを行い、フローCに属するパケットに対しては、コントローラBに処理の問い合わせを行う。これにより、例えば、スイッチ12がフローAに属するパケットを受信した場合には、コントローラAに処理を問い合わせるので、コントローラAはフローAに対する操作権限を得ることになる。なお、アクションとしては、背景技術で述べた処理を登録することも可能である。例えば、フローBに属するパケットに対しては、指定のポートへ転送するという処理が行われる。
データ処理手段124は、スイッチ12が接続する他のスイッチ等から、パケットを受信する。データ処理手段124は、パケットを受信すると、パケットの一部分、全部、またはコピーをフロー識別手段123に送信する。フロー識別手段123は、フローテーブル125のエントリとのマッチングを行うことでフローの識別を行い、アクションを出力する。データ処理手段124は、マッチしたエントリのアクションを受信し、パケットの処理を行う。
コントローラ11が、スイッチ12のフローテーブル125のエントリに操作権限を設定する方法について以下に説明する。コントローラ11は、フローテーブル125のエントリの操作をスイッチ12に指示する制御メッセージの付加情報として、操作権限情報を記述する。もしくは、コントローラ11は、制御メッセージとは別に、操作権限を指定する特別なメッセージをスイッチ12に送信しても良い。
図7は、コントローラ11からスイッチ12に送信されるエントリ編集コマンドの一例を示したものである。図7のエントリは、優先度はa、マッチングルールがフローAのパケットに対して、アクションとしてコントローラAに処理を問い合わせることを規定している。コントローラ11は、スイッチ12に図7のエントリを送信して、スイッチ12のフローテーブル125に図7のエントリを設定させる。また、「Others:ReadOnly」の項は、図7のエントリの操作権限を示している。操作権限のターゲットは、コントローラA、B等、個別で指定できても良いし、コントローラのグループで指定できても良い。また、権限を指定するコントローラと他のコントローラの関係を利用したマクロで指定できても良い。図7の例では、権限を指定するコントローラ以外のコントローラからは、読み込みのみ許可することを指定している。図7のエントリ編集コマンドは、その操作権限をコントローラAに与えるものであるので、「Others:ReadOnly」は、コントローラA以外のコントローラは読み込みのみ許可されることを示している。
次に、フローテーブル管理手段122について説明する。図8に示すように、フローテーブル管理手段122は、権限管理・判定手段1221と、エントリ付加情報記憶手段1222と、フローテーブル操作手段1223を備える。
まず、権限管理・判定手段1221は、エントリ操作権限管理・判定手段12211とフロー範囲判定手段12212を備える。エントリ操作権限管理・判定手段12211は、制御通信手段121、フロー範囲判定手段12212、エントリ付加情報記憶手段1222、フローテーブル操作手段1223と接続される。また、フロー範囲判定手段12212は、フローテーブル操作手段1223と接続される。さらに、エントリ付加情報記憶手段1222はフローテーブル操作手段1223と接続される。フローテーブル操作手段1223は、フローテーブル125と接続される。
権限管理・判定手段1221は、図7に示したようなコントローラ11からのエントリの操作要求に対して権限の判定を行い、判定結果に従って処理を行う。
エントリ付加情報記憶手段1222には、フローテーブル125のエントリに対応する権限情報が記憶されている。権限情報としては、例えば、コントローラごとに一意に定まるパーミッションと、所有者情報(即ち、エントリを設定したコントローラを示す情報)などが含まれる。
エントリ操作権限管理・判定手段12211は、エントリの操作権限を管理するとともに、コントローラ11からのエントリに対する操作要求に対して操作の可否を判定する。
エントリ操作権限管理・判定手段12211は、フローテーブル125のエントリに、制御通信手段121を通して操作権限が設定されるとき、エントリ付加情報記憶手段1222に操作権限の情報を記憶する。制御通信手段121を通してコントローラ11がエントリを参照・編集するときは、エントリ操作権限管理・判定手段12211は、エントリ付加情報記憶手段1222の操作権限情報を参照する。さらに、エントリ操作権限管理・判定手段12211は、エントリの編集がマッチングルールの変更を含むときはフロー範囲判定手段12212に問い合わせ、返された判定結果を含めて、操作の可否を判定する。
フロー範囲判定手段12212は、コントローラ11がエントリを登録する際に、コントローラ11による制御の可否を判定する。具体的には、制御を許可されているフロー範囲内に、コントローラ11が制御を要求する範囲が収まっているかを判定する。例えば、フロー範囲判定手段12212は、マッチングルール(即ちフローの識別条件)の包含関係を参酌して、コントローラ11による制御可否を判定する。フロー範囲判定手段12212は、例えば、所定の送信元IPアドレスに合致するか否かのみをマッチングルール(送信元IPアドレス以外は任意(ワイルドカード))とするフローは、所定の送信元IPアドレス、所定のVLAN(Virtual Local Area Network)タグに合致するか否かをマッチングルールとするフローを包含すると判定する。
許可するフロー範囲は、例えば、そのコントローラに問い合わせるアクションを持つエントリのマッチングルールの和集合とすることが考えられる。また、無効化するフロー範囲は、その他のコントローラに問い合わせるアクションを持つ、許可範囲の根拠になったエントリよりも高い優先度のマッチングルールとすることが考えられる。
図9は、フローテーブル125のエントリと、エントリ付加情報記憶手段1223に対応して記憶されているエントリ付加情報の一例を示したものである。図9を用いて、フロー範囲判定手段12212で行う判断の一例を示す。まず、フローテーブルの一列目は優先度、二列目はマッチングルール、三列目はアクションを示している。また、エントリ付加情報の一列目はフローテーブル125の対応するエントリの操作権限、二列目は対応するエントリの所有者を示している。図9の例でも、図6と同様に、優先度の降順にエントリが並べられている。図9の例では、コントローラAは、コントローラBが通信を制御するフローの範囲を制限するものとする。アクションの列の「コントローラ:A」は、スイッチ12が、フローAにマッチするパケットを受信した場合に、コントローラAに対して処理を問い合わせることを意味する。このとき、コントローラBが、フローBというマッチングルールを持つエントリを登録できる条件は、2つある。まず1つは、フローBが示すフローの範囲が、コントローラBに問い合わせるアクションを持つコントローラAのエントリのマッチングルールであるフローCが示すフロー範囲に包含されることである。2つ目は、エントリの優先度の大小関係が、a−n<a−k<aとなることである。
[動作]
図10、図11、図12、図13は、第2の実施形態における、通信システム1の動作を示すフローチャートである。以下、これらのフローチャートを用いて、第2の実施形態の動作について説明する。
図10は、第2の実施形態において、スイッチ12がパケットを受信した際の動作を示すフローチャートである。
まず、データ処理手段124は、ネットワーク上の図示しない他の通信装置からのパケットを受信する(S11)。次に、フロー識別手段123は、受信パケットがフローテーブル125のエントリのマッチングルールにマッチするか否かを判断する(S12)。
受信パケットにマッチするフローテーブル125のエントリが存在する場合、フロー識別手段123は、マッチしたエントリのアクションが、コントローラ指定の処理問い合わせであるか否かを判断する(S13)。
マッチしたエントリのアクションが、コントローラ指定の処理問い合わせであると判断された場合、処理問い合わせ手段1211は、指定されたコントローラに対する処理問い合わせを行う(S14)。
コントローラ指定の処理問い合わせではないと判断された場合、データ処理手段124は、マッチしたエントリのアクションに従って、パケットを処理する(ステップS16)。データ処理手段124は、例えば、受信パケットを他の通信装置に転送したり、受信パケットを破棄したりする。
S12でパケットがフローテーブルのエントリのマッチングルールにマッチしないと判断された場合、制御通信手段121は、デフォルトとして設定されているコントローラに処理の問い合わせを行う(S15)。
図11および図12は、スイッチ12がコントローラ11からエントリ編集コマンドを受信した際の動作を示すフローチャートである。
まず、制御通信手段121は、コントローラ11からエントリ編集コマンドを受信する(S21)。
続いて、フローテーブル管理手段122は、受信したコマンドが、フローテーブル125にエントリを追加するコマンドであるか否かを判断する(S22)。
S22において、受信したコマンドが、フローテーブルにエントリを追加するコマンドではないと判断された場合、S23の動作が行われる。エントリ操作権限管理・判定手段12211は、エントリ付加情報記憶手段1222に記憶されている権限情報を参照する(S23)。その後、エントリ操作権限管理・判定手段12211は、コマンドを送信したコントローラに編集対象のエントリへの要求操作が許可されているかを判断する(S24)。
S22において、エントリ編集コマンドが、フローテーブルにエントリを追加するコマンドであると判断された場合、S26の処理を行う。S26の処理については後述する。
S24で、編集対象のエントリへの要求操作が許可されていると判断された場合、権限管理・判定手段1221は、S25の処理を行う。権限管理・判定手段1221は、エントリ編集コマンドが、エントリの優先度またはマッチングルールを変更するコマンドであるか否かを判断する(S25)。
また、S24において、エントリ編集コマンドを送信したコントローラに編集対象のエントリへの要求操作が許可されていないと判断された場合、操作コマンドを拒否する(ステップS30)。
S25で、エントリの優先度またはマッチングルールを変更するコマンドであると判断された場合、フロー範囲判定手段12212は、S26の処理を行う。フロー範囲判定手段12212は、エントリ編集コマンドで要求されている変更後のエントリの優先度やマッチングルールが、要求元のコントローラに許可されている範囲内であるか否かを判断する(S26)。
S26で、エントリ編集コマンドで要求されている変更後のエントリの優先度やマッチングルールが、コントローラに許可されている範囲内であると判断された場合、エントリ操作権限管理・判定手段12211は、S27の処理を行う。エントリ操作権限管理・判定手段12211は、エントリ操作権限指定に新規追加があるか、もしくは変更があるか、または新規追加も変更もないかを判断する(S27)。
S27で、エントリ操作権限指定に新規追加または変更があると判断された場合、エントリ操作権限管理・判定手段12211は、S28の処理を行う。エントリ操作権限管理・判定手段12211において、エントリ付加情報記憶手段1222のエントリ操作権限を編集する(ステップS28)。その後、フローテーブル操作手段1223が、操作コマンドを実行する(ステップS29)。また、S27で、エントリ操作権限指定に新規追加または変更がないと判断された場合には、S28の処理を飛ばして、S29の処理が行われる。
コントローラ11は、スイッチ12の管理等のため、スイッチ12に対してフローテーブルを参照するコマンドを送信することができる。以下、このコマンドをフローテーブル参照コマンドと呼ぶ。図13は、スイッチ12がコントローラ11からフローテーブル参照コマンドを受信したときの動作を示すフローチャートである。
まず、スイッチ12は、コントローラ11から、制御通信手段121を介して、フローテーブル参照コマンドを受信する(S31)。
次に、エントリ操作権限管理・判定手段12211は、エントリ付加情報記憶手段1222に記憶されている権限情報を参照する(S32)。
S32の後、エントリ操作権限管理・判定手段12211は、コマンド送信元のコントローラに参照権限があるエントリを抽出する(S33)。
フローテーブル操作手段1223は、S33で抽出したエントリをフローテーブル125から取得する(S34)。
エントリ操作権限管理・判定手段12211において、ステップS32で抽出したエントリに対応するエントリ付加情報を、エントリ付加情報記憶部1222から取得する(S35)。
次に、エントリ操作権限管理・判定手段12211は、S35で取得したエントリ付加情報を複製する(S36)。
さらに、エントリ操作権限管理・判定手段12211は、S36で複製したエントリ付加情報の中の権限情報を、参照を要求するコントローラが持つ権限に変換する(S37)。
最後に、制御通信手段121は、S34で取得したエントリと、S37で変換したエントリ付加情報を、参照を要求するコントローラ11に送信する(S38)。
[効果]
以上説明した通り、第2の実施形態における通信システム1は、フローテーブル125のエントリのアクションとして、コントローラ11のうちいずれかを指定するアクションを用いている。これにより、フロー範囲ごとに、パケットの処理を問い合わせるコントローラを分けることが可能となる。その結果、例えば、ある特定のフローに対して制御するコントローラを1つに定めるような制御が可能になる。
また、スイッチ12は、エントリごとにコントローラ11の権限情報を保持して、フローテーブル125のエントリに対する操作を制限している。これにより、コントローラ11が制御可能なフロー範囲を制限している。従って、異なるコントローラによる制御ポリシの意図しない上書きを防ぐことが可能になる。
以上の動作によって、スイッチ12を、制御範囲と権限範囲を定め、複数のコントローラ11から直接制御することが可能になる。従って、第2の実施形態によれば、スイッチ12を制御するコントローラ11が複数存在する場合であっても、受信パケットを制御するコントローラ11を1つに決定することができるため、複数のコントローラ11によるスイッチ12の制御が可能となる。
[第3の実施形態]
[構成]
以下、第3の実施形態について説明する。第3の実施形態は、第2の実施形態と比較して、スイッチ12のフローテーブル管理手段122と、フローテーブル125が変更されている。従って、以下では、フローテーブル管理手段122からの変更点に焦点を当てて説明し、第2の実施形態と同様の構成および動作については説明を省略する。
図14は、第3の実施形態によるフローテーブル管理手段222を示すブロック図である。図14によれば、フローテーブル管理手段222は、権限管理・判定手段2221と、フローテーブル操作手段1222を備える。権限管理・判定手段2221は、エントリ操作権限管理・判定手段22211と、フロー範囲判定手段22212を含む。エントリ操作権限管理・判定手段22211は、制御通信手段121と、フロー範囲判定手段22212と、フローテーブル操作手段1222と接続されている。
また、第2の実施形態のフローテーブル管理手段122と比較すると、エントリ付加情報記憶手段1222が削除されている。第3の実施形態では、フローテーブル225が、第2の実施形態のエントリ付加情報記憶手段1222が記憶していた情報を記憶している。図15は、第3の実施形態によるフローテーブル225の一例を示している。図15によれば、フローテーブル225には、第2の実施形態のフローテーブル125が記憶する情報に追加して、権限情報が記憶されている。
[動作]
第3の実施形態によるスイッチ12では、コントローラ11からエントリ編集コマンドを受信時の動作において、エントリ付加情報を参照または編集する必要がある場合には、フローテーブル225を参照または編集すれば良い。
図16は、第3の実施形態によるスイッチ12がフローテーブル参照コマンドを受信した場合の動作を示すフローチャートである。図16に示す動作は、図13の第2の実施形態の動作と比べて、S34以降の動作に違いがある。なお、その他の第2の実施形態と同様の動作については、それぞれ図13と同一の符号を付し、詳細な説明を省略する。
エントリ操作権限管理・判定手段22211は、S33とS34によって取得されたエントリを複製する(S236)。
続いて、エントリ操作権限管理・判定手段22211は、S236において複製したエントリが持つ権限情報を、参照を要求するコントローラが持つ権限に変換する(S237)。
最後に、制御通信手段121は、S237で変換したエントリを、参照を要求するコントローラ11に通知する(S238)。
[効果]
第3の実施形態における通信システム1は、第2の実施形態の通信システム1と同様の効果を奏する。すなわち、第3の実施形態によるフローテーブル225のエントリのアクションとして、コントローラ11のうちいずれかを指定するアクションを用いている。これにより、フロー範囲ごとに、パケットの処理を問い合わせるコントローラを分けることが可能となる。その結果、例えば、ある特定のフローに対して制御するコントローラを1つに定めるような制御が可能になる。
また、スイッチ12は、エントリごとにコントローラ11の権限情報を保持して、フローテーブル225のエントリに対する操作を制限している。これにより、コントローラ11が制御可能なフロー範囲を制限している。従って、異なるコントローラによる制御ポリシの意図しない上書きを防ぐことが可能になる。
以上の動作によって、スイッチ12を、制御範囲と権限範囲を定め、複数のコントローラ11から直接制御することが可能になる。従って、第3の実施形態によれば、スイッチ12を制御するコントローラ11が複数存在する場合であっても、受信パケットを制御するコントローラ11を1つに決定することができるため、複数のコントローラ11によるスイッチ12の制御が可能となる。
[第4の実施形態]
[構成]
図17は、第4の実施形態によるスイッチ32を示している。図17に示されるように、第4の実施形態によるスイッチ32は、制御通信手段321とフローテーブル管理手段322とフローテーブル325が、第2の実施形態と異なっている。なお、その他の構成要素は第2の実施形態および第3の実施形態と同様である。また、第2の実施形態と同様の構成要素については、図4、図5、図8と同一の符号を付し、詳細な説明を省略する。
第4の実施形態では、フローテーブル325には、コントローラを指定した処理問い合わせをアクションとして登録しなくてもよい。フローテーブル325のアクションに、コントローラを指定した処理問い合わせを登録しない場合について、以下に説明する。
第4の実施形態では、制御通信手段321は、処理問い合わせ手段1211と、処理問い合わせ先振り分け手段3212と、コントローラフローテーブル3213を備える。また、第4の実施形態では、第2の実施形態と比べて、フローテーブル管理手段322には、処理問い合わせ先管理手段3224が追加されている。
以下、第4の実施形態で新たに追加された要素について説明する。まず、処理問い合わせ先振り分け手段3212は、コントローラ11へのパケットの処理内容の問い合わせに対して、どのコントローラに問い合わせるのかを選択する。また、処理問い合わせ先振り分け手段3212は、コントローラを指定していない処理問い合わせ指示を、コントローラを指定した処理問い合わせ指示に変換する。
図18は、コントローラフローテーブル3213の一例を示している。図18によれば、コントローラフローテーブル3213は、少なくとも優先度と、マッチングルールと、宛先となるコントローラの識別子をエントリとして持つ。コントローラの識別子は、コントローラに対して一意に定まるものであればどのようなものでも良い。
また、処理問い合わせ先管理手段3224は、処理問い合わせ先の振り分け基準を管理し、エントリのアクション部分を変換する。
[動作]
図19、図20は、第4の実施形態におけるスイッチ32の動作を示すフローチャートである。第2の実施形態と同様の動作については、それぞれ図10と同一の符号を付し、詳細な説明を省略する。
図19は、スイッチ32がパケットを受信した際の動作を示すフローチャートである。
まず、スイッチ32は、パケットを受信し、フローテーブルのエントリのマッチングルールにマッチするか否かを判断する(S11、S12)。
S12で、受信パケットがフローテーブルのエントリのマッチングルールにマッチすると判断された場合、フロー識別手段123は、マッチしたマッチングルールのエントリのアクションが、コントローラへの処理問い合わせであるか否かを判断する(S13)。
S13で、マッチしたエントリのアクションが、コントローラへの処理問い合わせであると判断された場合、S317の処理が行われる。処理問い合わせ先振り分け手段3212は、受信パケットの処理を問い合わせるべきコントローラを、コントローラフローテーブル3213を参照して検索する(S317)。具体的には、処理問い合わせ先振り分け手段3212は、受信パケットがマッチしたマッチングルールに対応するコントローラフローテーブル3213のマッチングルールを有するエントリを検索する。処理問い合わせ先振り分け手段3212は、検索したエントリの宛先コントローラを、問い合わせ先として取得する。
次に、処理問い合わせ先振り分け手段3212が、宛先を指定しないコントローラへの処理問い合わせを、検索したコントローラを宛先として指定した処理問い合わせに変換する(S318)。
その後、処理問い合わせ手段1211は、指定されたコントローラに対する処理問い合わせを行う(S14)。
図20は、スイッチ32がコントローラ11から処理問い合わせ先を指定するエントリの登録を指示されたときの動作を示すフローチャートである。第2の実施形態および第3の実施形態では、エントリの登録指示を受けた場合には、そのままフローテーブルに登録していたが、第4の実施形態では、コントローラフローテーブル3213への登録も必要となる。
まず、制御通信手段321は、コントローラ11から、処理の問い合わせ先を指定するエントリの登録指示を受信する(S341)。
次に、権限管理・判定手段1221は、第2の実施形態と同様に、エントリの権限判定を行う(S342)。
続いて、処理問い合わせ先管理手段3224は、コントローラフローテーブル3213に、マッチングルールをキー、コントローラの識別子をバリューとするエントリを登録し、エントリに優先度を付ける(S343)。
さらに、処理問い合わせ先管理手段3224は、エントリ登録指示中のアクションを、コントローラを指定しない処理問い合わせに置換する(S344)。
最後に、フローテーブル操作手段1223は、フローテーブル325にエントリを登録する(S345)。
[効果]
第4の実施形態における通信システム1は、第2の実施形態および第3の実施形態の通信システム1と同様の効果を奏する。すなわち、第4の実施形態によるフローテーブル325のエントリ中の、コントローラに対する処理問い合わせのアクションに対して、スイッチ32は、問い合わせの宛先となるコントローラがどれであるかをコントローラフローテーブル3213に記憶している。これにより、フロー範囲ごとに、パケットの処理を問い合わせるコントローラを分けることが可能となる。その結果、例えば、ある特定のフローに対して制御するコントローラを1つに定めるような制御が可能になる。
また、スイッチ32は、エントリごとにコントローラ11の権限情報を保持して、フローテーブル325のエントリに対する操作を制限している。これにより、コントローラ11が制御可能なフロー範囲を制限している。従って、異なるコントローラによる制御ポリシの意図しない上書きを防ぐことが可能になる。
以上の動作によって、スイッチ32を、制御範囲と権限範囲を定め、複数のコントローラ11から直接制御することが可能になる。従って、第4の実施形態によれば、スイッチ32を制御するコントローラ11が複数存在する場合であっても、受信パケットを制御するコントローラ11を1つに決定することができるため、複数のコントローラ11によるスイッチ32の制御が可能となる。
[第5の実施形態]
[構成]
図21は、第5の実施形態の通信装置5の構成例を示す。
通信装置5は、検索手段50、問合せ手段51及び記憶手段52を有する。
通信装置5は、複数のコントローラ11と通信し、コントローラ11からの制御に従ってパケットを処理する。
なお、通信装置5は、モバイル端末、モバイルルータ、サーバ等の通信機能を有する装置、若しくは、ネットワーク上でパケットを転送する装置(スイッチやルータ等)である。なお、モバイルルータは、例えば、携帯電話の3G回線や無線LANのネットワークを中継する端末である。また、通信装置5は、モバイル端末、モバイルルータ、サーバ等にソフトウェアとして実装されてもよい。
図22は、記憶手段52が記憶しているテーブル520の構成例を示す。テーブル520の各エントリは、例えば、パケットを識別するための規則(即ち、パケットが属するフローを識別するための規則)と、通信装置5がパケットの処理方法を問い合わせする制御装置(コントローラ)を識別するためのコントローラ識別条件と、規則に対応するパケットの処理方法とを含む。なお、図22において、“Action”の領域に“コントローラ”と記載されているエントリは、コントローラへの問い合わせ処理を規定するエントリである。
他の実施形態(第1から第4の実施形態)では、受信パケットに対応する処理(“Action”)がコントローラへの問い合わせ処理である場合、通信装置は、エントリの“Action”領域で指定されたコントローラに対して問い合わせを行う。
第5の実施形態では、通信装置5は、エントリ含まれるコントローラ識別条件に従って、問い合わせを行うコントローラ11を決定する。
図22のマッチングルール(“Matching Rule”)に“Flow A”と記載されている場合、そのマッチングルールは、フローAに属するパケットを識別するための条件を規定している。例えば、マッチングルールは、送信元IPアドレスが“x”、送信先IPアドレスが“y”であるという条件を規定する。
検索手段50は、記憶手段52のテーブル520から受信パケットに対応する処理を検索する。検索手段50は、例えば、受信パケットのヘッダと、エントリの規則(マッチングルール)とを照合し、受信パケットに対応するエントリを検索する。検索手段50は、受信パケットに対応するエントリが検索された場合、検索されたエントリに規定されている処理方法に従って、受信パケットを処理する。検索手段50は、エントリに従って、例えば、受信パケットを通信装置5の通信ポートに転送する処理、受信パケットのヘッダの書き換え処理、受信パケットの廃棄、他のテーブルにおける検索等の処理を実行する。
問い合わせ手段51は、複数のコントローラ11の少なくとも1つと通信する。問い合わせ手段51は、コントローラ11と通信することで、テーブル520に設定するためのエントリの問い合わせ等を行う。コントローラ11は、問い合わせに対して、通信装置5に設定するエントリを決定し、通信装置5に通知する。通信装置5は、通知されたエントリを、テーブル520に記憶する。
検索手段50が検索した処理が、コントローラへの問い合わせ処理である場合、問い合わせ手段51は、受信パケットの所定の領域に基づいて、複数のコントローラのうち、問い合わせを行うコントローラ11を決定する。
受信パケットの所定の領域は、受信パケットのヘッダフィールドである。検索手段50は、所定の領域と、エントリのマッチングルールとを照合し、受信パケットに対応するエントリを検索する。検索された処理がコントローラへの問い合わせ処理である場合、問い合わせ手段51は、受信パケットの所定の領域(例えばヘッダフィールド)のうち、エントリに規定されたコントローラ識別条件に対応する情報に基づいて、コントローラ11を決定する。例えば、コントローラ識別条件としてVLAN ID(Virtual Local Area Network ID)が規定されている場合、問い合わせ手段51は、受信パケットのVLAN IDを参照して、コントローラ11を決定する。なお、コントローラ識別条件は、VLAN IDに限らず、任意の条件を設定することができる。
図23は、コントローラ識別条件がパケットの入力ポート(“Ingress Port”)である場合のテーブル520の例を示す。
図23の一番目のエントリは、フローAに属するパケットに対応するコントローラ識別条件として、入力ポート番号が“1”であることを規定する。また、図23の一番目のエントリは、フローAに対応する処理として、コントローラへの問い合わせ処理を規定する。
問い合わせ手段51は、受信パケットの所定の領域のうち、コントローラ識別条件に対応する情報に従って、コントローラ11を決定する。問い合わせ手段51は、コントローラ識別条件に従って、受信パケットの入力ポート番号が“1”である場合に対応するコントローラ11に対して問い合わせを行う。
なお、問い合わせ手段51は、コントローラ識別条件と、問い合わせ対象のコントローラの識別子との対応を管理するコントローラ識別テーブル510を有してもよい。問い合わせ手段51は、コントローラ識別条件が入力ポート番号である場合に、各ポート番号毎に、対応するコントローラの識別子を管理するコントローラ識別テーブル510を有する。図24は、コントローラ識別テーブル510の例を示す。
問い合わせ手段51は、テーブル510からコントローラの識別子を抽出し、識別子に対応するコントローラ11に対して問い合わせを行う。
[動作]
図25は、第5の実施形態の動作例を示すフローチャートである。
通信装置5は、受信パケットに対応する処理を記憶手段52から検索する(S50)。
通信装置5は、検索された処理がコントローラへの問い合わせ処理である場合、受信パケットの所定の領域のうち、コントローラ識別条件に対応する情報に基づいて、複数の制御装置のうち、問い合わせを行う制御装置を決定する(S51)。
通信装置5は、決定した制御装置に対して、受信パケットの処理を問合せる(S52)。
[効果]
第5の実施形態の通信装置5は、受信パケットの所定の領域(ヘッダフィールド)に基づいて、問い合わせを行うコントローラ11を決定する。よって、コントローラ11は、コントローラへの問い合わせ処理を含むエントリを通信装置5に通知する場合、コントローラ識別条件を指定するだけでよく、コントローラの識別子を指定しなくてもよい。従って、通信装置5が、コントローラ識別条件に対応するコントローラを柔軟に変更できる。
[第6の実施形態]
[構成]
図26は、第6の実施形態の通信装置6の構成例を示す。
通信装置6は、検索手段60、問合せ手段61及び記憶手段62を有する。
通信装置6は、複数のコントローラ11と通信し、コントローラ11からの制御に従ってパケットを処理する。
なお、通信装置6は、モバイル端末、モバイルルータ、サーバ等の通信機能を有する装置、若しくは、ネットワーク上でパケットを転送する装置(スイッチやルータ等)である。なお、モバイルルータは、例えば、携帯電話の3G回線や無線LANのネットワークを中継する端末である。また、通信装置6は、モバイル端末、モバイルルータ、サーバ等にソフトウェアとして実装されてもよい。
図27は、記憶手段62が記憶しているテーブル620の構成例を示す。テーブル620の各エントリは、例えば、パケットを識別するための規則(即ち、パケットが属するフローを識別するための規則)と、その規則に対応するパケットの処理方法とを含む。なお、図27において、“Action”の領域に“コントローラ”と記載されているエントリは、コントローラへの問い合わせ処理を規定するエントリである。
他の実施形態(第1から第4の実施形態)では、受信パケットに対応する処理(“Action”)がコントローラへの問い合わせ処理である場合、通信装置は、エントリの“Action”領域で指定されたコントローラに対して問い合わせを行う。
第6の実施形態では、通信装置6は、パケットを識別するためのマッチングルール(“Matching Rule”)に含まれる条件(コントローラ識別条件)を用いて、問い合わせを行うコントローラ11を決定する。つまり、第6の実施形態の通信装置6は、マッチングルールの一部を利用して、問い合わせを行うコントローラ11を決定する。
図27のマッチングルールに“Flow A”と記載されている場合、そのマッチングルールは、フローAに属するパケットを識別するための条件を規定している。例えば、マッチングルールは、送信元IPアドレスが“x”、送信先IPアドレスが“y”、VLAN IDが“z”であるという条件を規定する。第6の実施形態では、通信装置6は、マッチングルールの一部(例えば、VLAN ID)を、コントローラ識別条件として利用する。
検索手段60は、記憶手段62のテーブル620から受信パケットに対応する処理を検索する。検索手段60は、例えば、受信パケットのヘッダと、エントリの規則(マッチングルール)とを照合し、受信パケットに対応するエントリを検索する。検索手段60は、受信パケットに対応するエントリが検索された場合、検索されたエントリに規定されている処理方法に従って、受信パケットを処理する。検索手段60は、エントリに従って、例えば、受信パケットを通信装置6の通信ポートに転送する処理、受信パケットのヘッダの書き換え処理、受信パケットの廃棄、他のテーブルにおける検索等の処理を実行する。
問い合わせ手段61は、複数のコントローラ11の少なくとも1つと通信する。問い合わせ手段61は、コントローラ11と通信することで、テーブル620に設定するためのエントリの問い合わせ等を行う。
検索手段60が検索した処理が、コントローラへの問い合わせ処理である場合、問い合わせ手段61は、マッチングルールに基づいて、複数のコントローラのうち、問い合わせを行うコントローラ11を決定する。
テーブル620のマッチングルールは、コントローラを識別するためのコントローラ識別条件を含む。問い合わせ手段61は、コントローラ識別条件に基づき、問い合わせ対象のコントローラ11を決定する。コントローラ識別条件は、例えば、受信パケットの入力ポート(“Ingress Port”)や、VLAN ID等である。但し、コントローラ識別条件は、Ingress portやVLAN IDに限らず、任意の条件を設定することができる。
例えば、受信パケットを識別するためのマッチングルールが、受信パケットのヘッダの領域Aの値が“a”かつ領域Bの値が“b”、という条件であり、領域Bがコントローラ識別条件として用いられると仮定する。この場合、問い合わせ手段61は、領域Bの値が“b”である場合に対応するコントローラ11に対して受信パケットの処理を問合せる。
図28は、コントローラ識別条件がパケットの入力ポート(“Ingress Port”)である場合のテーブル620の例を示す。
図28の一番目のエントリは、フローAに属するパケットを識別するための条件として、入力ポート番号が“1”であることを含む。また、図28の一番目のエントリは、フローAに対応する処理として、コントローラへの問い合わせ処理を規定する。
問い合わせ手段61は、マッチングルールに規定された条件のうち、入力ポート番号をコントローラ識別条件として利用する。問い合わせ手段61は、フローAに属するパケットについて、入力ポート番号が“1”である場合に対応するコントローラ11に対して問い合わせを行う。
なお、問い合わせ手段61は、コントローラ識別条件と、問い合わせ対象のコントローラの識別子との対応を管理するコントローラ識別テーブル610を有してもよい。問い合わせ手段61は、例えば、コントローラ識別条件が入力ポート番号である場合に、ポート番号毎に、対応するコントローラの識別子を管理するコントローラ識別テーブル610を有する。図29は、コントローラ識別テーブル610の例を示す。
問い合わせ手段61は、テーブル610から、マッチングルールの一部であるコントローラ識別条件の内容に応じて、対応するコントローラの識別子を抽出し、識別子に対応するコントローラ11に対して問い合わせを行う。
[動作]
図30は、第6の実施形態の動作例を示すフローチャートである。
通信装置6は、受信パケットに対応する処理を記憶手段62から検索する(S60)。
通信装置6は、検索された処理がコントローラへの問い合わせ処理である場合、検索された処理に対応するマッチングルールに基づいて、複数の制御装置のうち、問い合わせを行う制御装置を決定する(S61)。
通信装置6は、決定した制御装置に対して、受信パケットの処理を問合せる(S62)。
[効果]
第6の実施形態の通信装置6は、マッチングルールの一部を利用して、問い合わせを行うコントローラ11を決定する。よって、第6の実施形態の通信装置6は、コントローラを識別するための情報をエントリに追加することを回避できる。従って、第6の実施形態の通信装置6は、テーブルのエントリの情報量を削減できるという効果が得られる。
[第7の実施形態]
[構成]
第7の実施形態の通信装置の構成は、第6の実施形態の通信装置6と同様なので、詳細な説明は省略する。
[動作]
図31を参照し、第7の実施形態の動作例を説明する。なお、図31では、コントローラ識別条件として、入力ポート番号を用いるが、これは例示である。よって、コントローラ識別条件は、入力ポート番号に限定されない。
検索手段60は、受信パケットに対応するエントリを、記憶手段62から検索する。
受信パケットは、通信装置6のポート番号が“1”のポートから入力したものとする。
また、受信パケットの所定の領域(ヘッダフィールド)は、条件βに合致するものとする。条件βは、例えば、送信元IPアドレスが“a”で、宛先IPアドレスが“b”であるとする。受信パケットはポート番号“1”から入力したので、ヘッダフィールドの“Ingress Port”には“1”が格納される。
検索手段60は、受信パケットの所定の領域の条件β及び入力ポート番号“1”に基づき、マッチングルールが“Flow C”のエントリを検索する。検索されたエントリの“Action”には、“Re−input”というアクションが規定されている。“Re−input”というアクションは、エントリにマッチしたパケットのヘッダフィールドを書き換えて、再度、テーブルの検索を実行する処理である。図31の例では、アクション“Re−input”は、受信パケットのヘッダフィールドの入力ポート番号を“5”に書き換えて、再度テーブルを検索することを規定しているものとする。
検索手段60は、アクション“Re−input”に従い、受信パケットの入力ポート番号を“5”に書き換えて、再検索を実行する。
検索手段60は、再検索の結果、マッチングルールが“Flow D”のエントリを検索する。“Flow D”は、マッチングルールが、条件βかつポート番号“5”なので、ヘッダフィールドを書き換えられた受信パケットがマッチする。
マッチングルールが“Flow D”のエントリに規定されている“Action”は、コントローラへの問い合わせ処理である。よって、問い合わせ手段61は、受信パケットの処理を、入力ポート番号“5”に対応するコントローラ11に問合せる。
本実施形態においては再検索を行うアクションを用いて説明したが,例えば,入力されたパケットを再び検索するようなポートを用い,該ポートに出力することでも実施できる。
図31の例のように、Flow AとFlow Cは、マッチングルールの一部が共通する。つまり、Flow AとCは、マッチングルールの一部である入力ポート番号が“1”である。一方、Flow AとCは、入力ポート番号以外のマッチングルールが異なる(Flow Aは条件α、Flow Cは条件β)。
この場合、入力ポート番号以外のマッチングルールが異なるにも関わらず、問い合わせ手段61は、Flow Aに属するパケットと、Flow Cに属するパケットの両方を、同じコントローラ11に問い合わせをする。Flow Aに属するパケットと、Flow Cに属するパケットは、入力ポート番号が同じだからである。
入力ポート番号以外が異なるので、問い合わせ手段61は、Flow Aに属するパケットとFlow Cに属するパケットの処理を、それぞれ別のコントローラ11に問い合わせをした方がよい場合もありうる。この場合、図31で例示したアクション“Re−input”を利用することで、問い合わせ手段61は、コントローラ識別条件のみが同一の異なるフローに属するパケットのそれぞれについて、異なるコントローラ11に問い合わせをすることができる。
[効果]
第7の実施形態では、通信装置6は、コントローラ識別条件のみが同一の異なるフローに属するパケットのそれぞれについて、異なるコントローラ11に問い合わせをすることができる。よって、第7の実施形態は、パケットの処理を問合せるコントローラ11を柔軟に選択できる。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、本願発明の構成は、各実施形態を組み合わせた実施形態も含む。
上記の各実施形態のスイッチは、通信端末や、その他の通信機器類等に適宜適用することが可能であり、スイッチに限られるものではない。
また、上記の実施形態では、オープンフローを適用したネットワークについて説明したが、これに限られるものではない。オープンフロー以外であっても、制御サーバ等がスイッチの集中管理を行うようなネットワークであれば、適用可能である。
また、上記の実施形態によるスイッチ、またはスイッチと同等の機能を有する通信端末、もしくはその他の通信機器は、その有する機能をハードウェアで実現することも可能である。また、上記の実施形態によるスイッチ、またはスイッチと同等の機能を有する通信端末、もしくはその他の通信機器は、コンピュータと、コンピュータ上で実行されるプログラムとで実現することも可能である。プログラムは、磁気ディスクや半導体メモリ等の記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。このようにコンピュータの動作を制御し、コンピュータを上述の各実施形態におけるスイッチ、またはスイッチと同等の機能を有する通信端末や通信機器として機能させ、前述した処理を行わせる。
なお、本発明によると、以下に付記する発明がもたらされる。
[付記1]
上記第1の視点に係る通信装置のとおりである。
[付記2]
前記通信装置において、前記第二の手段は、前記第一の手段が制御装置への問い合わせを行う処理を検索したことに応じて、前記所定の領域に基づいて、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定するようにしてもよい。
[付記3]
前記通信装置において、前記第二の手段は、前記所定の領域に含まれる情報のうち、前記複数の制御装置の識別のために用いる情報に基づいて、前記受信パケットに対応する処理を問合せる制御装置を決定するようにしてもよい。
[付記4]
前記通信装置において、前記第二の手段は、前記所定の領域に含まれる少なくとも1の情報に基づいて、前記受信パケットに対応する処理を問合せる制御装置を決定するようにしてもよい。
[付記5]
前記通信装置において、前記第一の手段は、前記受信パケットに含まれる所定の領域と、前記規則とを比較することで、前記記憶手段から前記受信パケットに対応する処理を検索し、
前記第二の手段は、前記所定の領域に含まれる少なくとも1つの情報に対応する制御装置に、前記受信パケットに対応する処理を問合せるようにしてもよい。
[付記6]
前記通信装置において、前記第一の手段が前記受信パケットに対応する処理を検索した場合に、前記所定の領域の一部を書き換えて、前記第一の手段に再検索を実行させる第三の手段を備えていてもよい。
[付記7]
前記通信装置において、前記第二の手段は、前記所定の領域のうち、前記規則に一致した情報に基づいて、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定するようにしてもよい。
[付記8]
上記第2の視点に係る通信方法のとおりである。
[付記9]
前記通信方法において、制御装置への問い合わせを行う処理を検索したことに応じて、前記所定の領域に基づいて、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定するようにしてもよい。
[付記10]
前記通信方法において、前記所定の領域に含まれる情報のうち、前記複数の制御装置の識別のために用いる情報に基づいて、前記受信パケットに対応する処理を問合せる制御装置を決定するようにしてもよい。
[付記11]
前記通信方法において、前記所定の領域に含まれる少なくとも1の情報に基づいて、前記受信パケットに対応する処理を問合せる制御装置を決定するようにしてもよい。
[付記12]
前記通信方法において、前記受信パケットに含まれる所定の領域と、前記規則とを比較することで、前記記憶手段から前記受信パケットに対応する処理を検索し、
前記所定の領域に含まれる少なくとも1つの情報に対応する制御装置に、前記受信パケットに対応する処理を問合せるようにしてもよい。
[付記13]
前記通信方法において、前記受信パケットに対応する処理を検索した場合に、前記所定の領域の一部を書き換えて、再検索を実行するようにしてもよい。
[付記14]
前記通信方法において、前記所定の領域のうち、前記規則に一致した情報に基づいて、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定するようにしてもよい。
[付記15]
上記第3の視点に係る通信システムのとおりである。
[付記16]
上記第4の視点に係るプログラムのとおりである。
[付記17]
前記プログラムにおいて、制御装置への問い合わせを行う処理を検索したことに応じて、前記所定の領域に基づいて、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定するようにしてもよい。
[付記18]
前記プログラムにおいて、前記所定の領域に含まれる情報のうち、前記複数の制御装置の識別のために用いる情報に基づいて、前記受信パケットに対応する処理を問合せる制御装置を決定するようにしてもよい。
[付記19]
前記プログラムにおいて、前記所定の領域に含まれる少なくとも1の情報に基づいて、前記受信パケットに対応する処理を問合せる制御装置を決定するようにしてもよい。
[付記20]
前記プログラムにおいて、前記受信パケットに含まれる所定の領域と、前記規則とを比較することで、前記記憶手段から前記受信パケットに対応する処理を検索し、
前記所定の領域に含まれる少なくとも1つの情報に対応する制御装置に、前記受信パケットに対応する処理を問合せるようにしてもよい。
なお、上記の特許文献等の先行技術文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
本書における用語「手段」は、各手段の機能を実現する機能ユニットないし動作ユニットであってハードウェア、ソフトウェアまたはこれらの組合せによって実装し得るユニットを指す。したがって、用語「手段」は、本明細書の全開示に亘って用語「ユニット」と表現してもよい。
1 通信システム
11 コントローラ
12、32 スイッチ
121、321 制御通信手段(ユニット)
122、222、322 フローテーブル管理手段(ユニット)
123 フロー識別手段(ユニット)
124 データ処理手段(ユニット)
125、225、325 フローテーブル
1211 処理問い合わせ手段(ユニット)
1221、2221 権限管理・判定手段(ユニット)
1222 エントリ付加情報記憶手段(ユニット)
1223 フローテーブル操作手段(ユニット)
3212 処理問い合わせ先振り分け手段(ユニット)
3213 コントローラフローテーブル
3224 処理問い合わせ先管理手段(ユニット)
12211、22211 エントリ操作権限管理・判定手段(ユニット)
12212、22212 フロー範囲判定手段(ユニット)
5 通信装置
50 検索手段(ユニット)
51 問い合わせ手段(ユニット)
52 記憶手段(ユニット)
510 コントローラ識別テーブル
520 テーブル
6 通信装置
60 検索手段(ユニット)
61 問い合わせ手段(ユニット)
62 記憶手段(ユニット)
610 コントローラ識別テーブル
620 テーブル

Claims (18)

  1. 受信パケットの所定の領域を参照し、該受信パケットに対応する処理をパケットを識別するための規則と該規則に対応するパケットの処理とを含むエントリから検索する第一の手段と、
    前記受信パケットのヘッダ情報と複数の制御装置のいずれかとの対応関係を参照して、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定する第二の手段と、
    前記第一の手段が前記受信パケットに対応する処理を検索した場合に、前記ヘッダ情報の一部を書き換えて、前記第一の手段に再検索を実行させる第三の手段と、
    を備える、通信装置。
  2. 前記第二の手段は、前記第一の手段が制御装置への問合せを行う処理を検索したことに応じて、前記ヘッダ情報と前記複数の制御装置のいずれかとの対応関係を参照して、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定する、
    請求項1の通信装置。
  3. 前記第二の手段は、前記ヘッダ情報のうち、前記複数の制御装置の識別のために用いる情報と、前記複数の制御装置のいずれかとの対応関係を参照して、前記受信パケットに対応する処理を問合せる制御装置を決定する、
    請求項1又は2に記載の通信装置。
  4. 前記第二の手段は、前記所定の領域に含まれる前記ヘッダ情報と、前記複数の制御装置のいずれかとの対応関係を参照して、前記受信パケットに対応する処理を問合せる制御装置を決定する、
    請求項1乃至3のいずれか1項に記載の通信装置。
  5. 前記第一の手段は、前記受信パケットに含まれる所定の領域と、前記規則とを比較することで、前記受信パケットに対応する処理を検索し、
    前記第二の手段は、前記ヘッダ情報に含まれる少なくとも1つの情報に対応する制御装置に、前記受信パケットに対応する処理を問合せる、
    請求項1乃至4のいずれか1項に記載の通信装置。
  6. 前記第二の手段は、前記ヘッダ情報のうち、前記規則に一致した情報に基づいて、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定する、
    請求項1乃至のいずれか1項に記載の通信装置。
  7. 受信パケットの所定の領域を参照し、該受信パケットに対応する処理をパケットを識別するための規則と該規則に対応するパケットの処理とを含むエントリから検索し、
    前記受信パケットのヘッダ情報と複数の制御装置のいずれかとの対応関係を参照して、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定し、
    前記受信パケットに対応する処理を検索した場合に、前記ヘッダ情報の一部を書き換えて、再検索を実行する、
    ことを特徴とする通信方法。
  8. 制御装置への問合せを行う処理を検索したことに応じて、前記ヘッダ情報と前記複数の制御装置のいずれかとの対応関係を参照して、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定する、
    請求項に記載の通信方法。
  9. 前記ヘッダ情報のうち、前記複数の制御装置の識別のために用いる情報と、前記複数の制御装置のいずれかとの対応関係を参照して、前記受信パケットに対応する処理を問合せる制御装置を決定する、
    請求項7又は8に記載の通信方法。
  10. 前記所定の領域に含まれる前記ヘッダ情報と、前記複数の制御装置のいずれかとの対応関係を参照して、前記受信パケットに対応する処理を問合せる制御装置を決定する、
    請求項7乃至9のいずれか1項に記載の通信方法。
  11. 前記受信パケットに含まれる所定の領域と、前記規則とを比較することで、前記受信パケットに対応する処理を検索し、
    前記受信パケットのヘッダ情報に含まれる少なくとも1つの情報に対応する制御装置に、前記受信パケットに対応する処理を問合せる、
    請求項7乃至10のいずれか1項に記載の通信方法。
  12. 前記ヘッダ情報のうち、前記規則に一致した情報に基づいて、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定する、
    請求項7乃至11のいずれか1項に記載の通信方法。
  13. 複数の制御装置と、
    通信装置と、を備え、
    受信パケットの所定の領域を参照し、該受信パケットに対応する処理をパケットを識別するための規則と該規則に対応するパケットの処理とを含むエントリから検索する第一の手段と、
    前記受信パケットのヘッダ情報と複数の制御装置のいずれかとの対応関係を参照して、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定する第二の手段と、
    前記第一の手段が前記受信パケットに対応する処理を検索した場合に、前記ヘッダ情報の一部を書き換えて、前記第一の手段に再検索を実行させる第三の手段と、
    を有する、通信システム。
  14. 通信装置に設けられたコンピュータに対して、
    受信パケットの所定の領域を参照し、該受信パケットに対応する処理をパケットを識別するための規則と該規則に対応するパケットの処理とを含むエントリから検索する処理と、
    前記受信パケットのヘッダ情報と複数の制御装置のいずれかとの対応関係を参照して、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定する処理と、
    前記受信パケットに対応する処理を検索した場合に、前記ヘッダ情報の一部を書き換えて、再検索を実行する処理と、
    を実行させる、プログラム。
  15. 制御装置への問合せを行う処理を検索したことに応じて、前記ヘッダ情報と前記複数の制御装置のいずれかとの対応関係を参照して、前記複数の制御装置のうち、前記受信パケットに対応する処理を問合せる制御装置を決定する、
    請求項14に記載のプログラム。
  16. 前記ヘッダ情報のうち、前記複数の制御装置の識別のために用いる情報と、前記複数の制御装置のいずれかとの対応関係を参照して、前記受信パケットに対応する処理を問合せる制御装置を決定する、
    請求項14又は15に記載のプログラム。
  17. 前記所定の領域に含まれる前記ヘッダ情報と、前記複数の制御装置のいずれかとの対応関係を参照して、前記受信パケットに対応する処理を問合せる制御装置を決定する、
    請求項14乃至16のいずれか1項に記載のプログラム。
  18. 前記受信パケットに含まれる所定の領域と、前記規則とを比較することで、前記受信パケットに対応する処理を検索し、
    前記ヘッダ情報に含まれる少なくとも1つの情報に対応する制御装置に、前記受信パケットに対応する処理を問合せる、
    請求項14乃至17のいずれか1項に記載のプログラム。
JP2014542423A 2012-02-29 2013-02-27 通信装置、通信方法、通信システムおよびプログラム Active JP6146419B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014542423A JP6146419B2 (ja) 2012-02-29 2013-02-27 通信装置、通信方法、通信システムおよびプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2012042741 2012-02-29
JP2012042741 2012-02-29
PCT/JP2013/001173 WO2013128916A1 (en) 2012-02-29 2013-02-27 Communication apparatus, communication method, communication system and program
JP2014542423A JP6146419B2 (ja) 2012-02-29 2013-02-27 通信装置、通信方法、通信システムおよびプログラム

Publications (2)

Publication Number Publication Date
JP2015508944A JP2015508944A (ja) 2015-03-23
JP6146419B2 true JP6146419B2 (ja) 2017-06-14

Family

ID=49082128

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014542423A Active JP6146419B2 (ja) 2012-02-29 2013-02-27 通信装置、通信方法、通信システムおよびプログラム

Country Status (3)

Country Link
US (1) US20150043585A1 (ja)
JP (1) JP6146419B2 (ja)
WO (1) WO2013128916A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9548933B2 (en) * 2012-03-05 2017-01-17 Nec Corporation Network system, switch, and methods of network configuration
US9755963B2 (en) 2013-07-09 2017-09-05 Nicira, Inc. Using headerspace analysis to identify flow entry reachability
US10044676B2 (en) 2015-04-03 2018-08-07 Nicira, Inc. Using headerspace analysis to identify unneeded distributed firewall rules
CN106911697B (zh) * 2017-02-28 2018-06-01 北京百度网讯科技有限公司 访问权限设置方法、装置、服务器及存储介质
US10587479B2 (en) 2017-04-02 2020-03-10 Nicira, Inc. GUI for analysis of logical network modifications
US12081395B2 (en) 2021-08-24 2024-09-03 VMware LLC Formal verification of network changes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8346884B2 (en) * 2003-01-21 2013-01-01 Nextio Inc. Method and apparatus for a shared I/O network interface controller
US7937395B2 (en) * 2008-02-22 2011-05-03 Tigerlogic Corporation Systems and methods of displaying and re-using document chunks in a document development application
JP5648639B2 (ja) * 2009-09-10 2015-01-07 日本電気株式会社 中継制御装置、中継制御システム、中継制御方法及び中継制御プログラム
JP5488979B2 (ja) * 2010-02-03 2014-05-14 日本電気株式会社 コンピュータシステム、コントローラ、スイッチ、及び通信方法

Also Published As

Publication number Publication date
US20150043585A1 (en) 2015-02-12
WO2013128916A1 (en) 2013-09-06
JP2015508944A (ja) 2015-03-23

Similar Documents

Publication Publication Date Title
JP6146419B2 (ja) 通信装置、通信方法、通信システムおよびプログラム
US9338090B2 (en) Terminal, control device, communication method, communication system, communication module, program, and information processing device
US8837286B2 (en) Communication system, flow control device, flow table updating method, and program
JP5811171B2 (ja) 通信システム、データベース、制御装置、通信方法およびプログラム
JP6327371B2 (ja) 通信システム、制御装置、通信制御方法およびプログラム
US20130148500A1 (en) Terminal, control device, communication method, communication system, communication module, program, and information processing device
JP6011632B2 (ja) 通信装置、通信方法、通信システムおよびプログラム
KR20150053620A (ko) 패킷 전송 장치 및 방법
JP6036816B2 (ja) 通信端末、通信方法、およびプログラム
JPWO2011162215A1 (ja) 通信システム、制御装置、ノードの制御方法およびプログラム
US10069648B2 (en) Communication system, control apparatus, communication control method and program
WO2014112616A1 (ja) 制御装置、通信装置、通信システム、スイッチの制御方法及びプログラム
JP6007972B2 (ja) 通信ノード、パケット処理方法及びプログラム
WO2013062070A1 (ja) 制御装置、通信システム、仮想ネットワークの管理方法およびプログラム
JP5742268B2 (ja) 通信システム、制御装置、通信方法
JPWO2014061583A1 (ja) 通信ノード、制御装置、通信システム、パケット処理方法及びプログラム
WO2014034119A1 (en) Access control system, access control method, and program
JPWO2015145976A1 (ja) 通信システム、制御指示装置、制御実施装置、通信制御方法およびプログラムを記憶する記憶媒体
JP6724427B2 (ja) コントローラ、通信スイッチ、通信システム、通信制御方法、及びプログラム
JP2018011210A (ja) 中継装置及び中継方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161019

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170222

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170302

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170501

R150 Certificate of patent or registration of utility model

Ref document number: 6146419

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150