説明

通信システム、制御装置、処理規則の設定方法およびプログラム

【課題】処理規則の集約と、異常トラヒックを発生させているフローの特定容易化の両立。
【解決手段】制御装置は、集約可能区間を有する2以上のパケット転送経路の前記集約可能区間の始点に位置するノードに、前記2以上のパケット転送経路で転送される個々のフローに属するパケットについて、フローを識別するためのフロー識別子と、前記集約可能区間のパケット転送に用いる経路識別子とを、前記パケットの前記照合規則と照合する領域に書き込む処理を行ってから、パケットを出力させるフロー別の処理規則を設定する。また、前記集約可能区間の中間に位置するノードに、前記経路識別子に適合するパケットを、前記パケット転送経路に従って転送させる共通の処理規則を設定し、前記集約可能区間の終点に位置するノードに、前記フロー識別子に基づく復元・転送を行う処理規則を設定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システム、制御装置、ノード、処理規則の設定方法およびプログラムに関し、特に、ネットワークに配置されたノードによりパケットを転送して通信を実現する通信システム、ノード、制御装置、通信方法およびプログラムに関する。
【背景技術】
【0002】
特許文献1、非特許文献1、2に示すとおり、近年、オープンフロー(OpenFlow)という技術が提案されている。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。転送ノードとして機能するオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合する照合規則(マッチングルール)と、処理内容を定義したアクション(Actions)と、フロー統計情報(Stats)との組が定義される(図13参照)。
【0003】
図13に、非特許文献2に定義されているアクション名とアクションの内容を例示する。OUTPUTは、パケットを指定ポート(インタフェース)に出力するアクションである。SET_VLAN_VIDからSET_TP_DSTは、パケットヘッダのフィールドを修正するアクションである。
【0004】
例えば、オープンフロースイッチは、最初のパケット(first packet)を受信すると、フローテーブルから、受信パケットのヘッダ情報に適合する照合規則(マッチングルール)を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、受信パケットに対して、当該エントリのアクションフィールドに記述された処理内容を実施する。一方、前記検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対して受信パケットを転送し、受信パケットの送信元・送信先に基づいたパケットの経路の決定を依頼し、これを実現するフローエントリを受け取ってフローテーブルを更新する。
【0005】
また、特許文献2には、MAC学習テーブルを有するレイヤ2スイッチであって、フレームに付加されたVWAN−IDを縮退VWAN−IDに変換する変換部と、フレームに付加された縮退VWAN−IDを元のVWAN−IDに復元する復元部とを備えるレイヤ2スイッチと、VWAN−IDの登録時に、このVWAN−IDに対応する縮退VWAN−IDの一つを決定し、変換部及び復元部に対して設定するレイヤ2スイッチの制御装置とが開示されている。同公報によると、縮退VWAN−IDは、VWAN−IDがとり得る値の数よりも少ない数の値からなり、このレイヤ2スイッチは、MAC学習機能により、縮退VWAN−IDを含むエントリをMAC学習テーブルに登録する、とされている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】国際公開第2008/095010号
【特許文献2】国際公開第2006/106588号
【非特許文献】
【0007】
【非特許文献1】Nick McKeownほか7名、"OpenFlow: Enabling Innovation in Campus Networks"、[online]、[平成22年9月21日検索]、インターネット〈URL:http://www.openflowswitch.org//documents/openflow-wp-latest.pdf〉
【非特許文献2】"OpenFlow Switch Specification" Version 1.0.0. (Wire Protocol 0x01) [平成22年9月21日検索]、インターネット〈URL:http://www.openflowswitch.org/documents/openflow-spec-v1.0.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【0008】
上記オープンフローにおいては、処理規則中にワイルドカードを使用することが可能である。例えば、送信元が異なるフローであっても、宛先が同一であるフローは、宛先だけをマッチングする照合規則を持つ処理規則に集約することが可能である(図8と図9参照)。このように処理規則を集約することにより、パケット転送経路上のノード(以下、上記オープンフロースイッチである場合も含めて「ノード」と称する。)の負荷や制御装置(以下、上記オープンフローコントローラである場合も含めて「制御装置」と称する。)の管理負担を低減することができる。
【0009】
しかしながら、上記フローの集約を行った場合、当該パケット転送経路上のノードで係数されるフロー統計情報(Stats)の粒度も当該集約されたフロー単位となり、異常トラヒックが発生したときに当該異常トラヒックを発生させたフローの特定が困難になってしまうという問題点がある。
【0010】
他方、異常トラヒック特定のため、上記集約を行わずにOSI参照モデルにおけるレイヤー3(データリンク層)の送信元/先IPアドレスや、レイヤー4(トランスポート層)のL4ポート番号などのストリクトマッチングによりフロー統計情報(Stats)を取得しようとすると、パケット転送経路上のノードが保持すべき処理規則のエントリ数が増大し、ノードの性能劣化や、障害時の経路変更が複雑になるという問題点がある。
【0011】
本発明は上記した事情に鑑みてなされたものであって、その目的とするところは、処理規則の集約と、異常トラヒックを発生させているフローの特定容易化とを両立することのできる構成を提供することにある。
【課題を解決するための手段】
【0012】
本発明の第1の視点によれば、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するとともに、前記処理規則単位で処理パケットの統計情報を記録する、複数のノードと、前記各ノードに処理規則を設定する制御装置とを含み、前記制御装置は、集約可能区間を有する2以上のパケット転送経路の前記集約可能区間の始点に位置するノードに、前記2以上のパケット転送経路で転送される個々のフローに属するパケットについて、フローを識別するためのフロー識別子と、前記集約可能区間のパケット転送に用いる経路識別子とを、前記パケットの前記照合規則と照合する領域に書き込む処理を行ってから、パケットを出力させるフロー別の処理規則を設定し、前記集約可能区間の中間に位置するノードに、前記経路識別子に適合するパケットを、前記パケット転送経路に従って転送させる前記各フロー共通の処理規則を設定し、前記集約可能区間の終点に位置するノードに、前記フロー識別子に基づいて、前記集約可能区間の始点に位置するノードにおいて書き換えられた内容を復元する処理を行ってから、パケットを出力させる処理規則を設定する通信システムが提供される。
【0013】
本発明の第2の視点によれば、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するとともに、前記処理規則単位で処理パケットの統計情報を記録する、複数のノードと接続され、集約可能区間を有する2以上のパケット転送経路の前記集約可能区間の始点に位置するノードに、前記2以上のパケット転送経路で転送される個々のフローに属するパケットについて、フローを識別するためのフロー識別子と、前記集約可能区間のパケット転送に用いる経路識別子とを、前記パケットの前記照合規則と照合する領域に書き込む処理を行ってから、パケットを出力させるフロー別の処理規則を設定し、前記集約可能区間の中間に位置するノードに、前記経路識別子に適合するパケットを、前記パケット転送経路に従って転送させる前記各フロー共通の処理規則を設定し、前記集約可能区間の終点に位置するノードに、前記フロー識別子に基づいて、前記集約可能区間の始点に位置するノードにおいて書き換えられた内容を復元する処理を行ってから、パケットを出力させる処理規則を設定する制御装置が提供される。
【0014】
本発明の第3の視点によれば、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するとともに、前記処理規則単位で処理パケットの統計情報を記録する、複数のノードと接続された制御装置が、集約可能区間を有する2以上のパケット転送経路の前記集約可能区間の始点に位置するノードに、前記2以上のパケット転送経路で転送される個々のフローに属するパケットについて、フローを識別するためのフロー識別子と、前記集約可能区間のパケット転送に用いる経路識別子とを、前記パケットの前記照合規則と照合する領域に書き込む処理を行ってから、パケットを出力させるフロー別の処理規則を設定するステップと、前記集約可能区間の中間に位置するノードに、前記経路識別子に適合するパケットを、前記パケット転送経路に従って転送させる前記各フロー共通の処理規則を設定するステップと、前記集約可能区間の終点に位置するノードに、前記フロー識別子に基づいて、前記集約可能区間の始点に位置するノードにおいて書き換えられた内容を復元する処理を行ってから、パケットを出力させる処理規則を設定するステップと、を含む処理規則の設定方法が提供される。本方法は、上記コアノードおよびエッジノードに処理規則を設定する制御装置という、特定の機械に結びつけられている。
【0015】
本発明の第4の視点によれば、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するとともに、前記処理規則単位で処理パケットの統計情報を記録する、複数のノードと接続された制御装置を構成するコンピュータに実行させるプログラムであって、集約可能区間を有する2以上のパケット転送経路の前記集約可能区間の始点に位置するノードに、前記2以上のパケット転送経路で転送される個々のフローに属するパケットについて、フローを識別するためのフロー識別子と、前記集約可能区間のパケット転送に用いる経路識別子とを、前記パケットの前記照合規則と照合する領域に書き込む処理を行ってから、パケットを出力させるフロー別の処理規則を設定する処理と、前記集約可能区間の中間に位置するノードに、前記経路識別子に適合するパケットを、前記パケット転送経路に従って転送させる前記各フロー共通の処理規則を設定する処理と、前記集約可能区間の終点に位置するノードに、前記フロー識別子に基づいて、前記集約可能区間の始点に位置するノードにおいて書き換えられた内容を復元する処理を行ってから、パケットを出力させる処理規則を設定する処理と、を前記コンピュータに実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【0016】
本発明によれば、処理規則の集約と、異常トラヒックを発生させているフローの特定容易化とを両立することが可能となる。その理由は、パケット転送経路の集約可能区間の始点に位置するノードにおいては、処理規則単位の処理パケットの統計情報を収集できるようにするとともに、前記集約可能区間に位置するノードにおいては処理規則の集約を行う構成を採用したことにある。
【図面の簡単な説明】
【0017】
【図1】本発明の概要を説明するための図である。
【図2】本発明の第1の実施形態の構成を表した図である。
【図3】本発明の第1の実施形態の制御装置の構成を表したブロック図である。
【図4】本発明の第1の実施形態に保持される経路情報の例である。
【図5】本発明の第1の実施形態の制御装置が行うMACアドレスの変換内容を説明するための図である。
【図6】本発明の第1の実施形態の制御装置の動作を説明するための図である。
【図7】本発明の第1の実施形態の制御装置により各ノードに設定する処理規則をまとめた表である。
【図8】本発明の第1の実施形態の制御装置が非集約モードで各ノードに設定する処理規則をまとめた表である。
【図9】図11の処理規則のうち宛先が同一なフローを集約してしまった場合の例である。
【図10】Ingress OFSにおいて設定されるフローエントリの非集約モードとの相違点を表した図である。
【図11】Core OFSにおいて設定されるフローエントリの非集約モードとの相違点を表した図である。
【図12】Egress OFSにおいて設定されるフローエントリの非集約モードとの相違点を表した図である。
【図13】非特許文献2に記載のフローエントリの構成を表した図である。
【発明を実施するための形態】
【0018】
はじめに、本発明の概要について説明する。本発明は、図1に示すように、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するとともに、前記処理規則単位で処理パケットの統計情報を記録するノード10−1〜10−nと、これらノード10−1〜10−nに処理規則を設定する制御装置20と、により実現できる。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【0019】
例えば、端末A(30a)から端末C(30c)宛てのパケットの転送経路として、ノード10−1、ノード10−2、・・・ノード10−nというパケット転送経路が計算されていたものとする。同様に、端末B(30b)から端末C(30c)宛てのパケットの転送経路として、ノード10−1、ノード10−2、・・・ノード10−nというパケット転送経路が計算されていたものとする。従って、2つのパケット転送経路は、ノード10−1、ノード10−2、・・・ノード10−nという重複する区間(集約可能区間)を有している。
【0020】
このとき、制御装置20は、前記集約可能区間の始点に位置するノード10−1に、前記2以上のパケット転送経路で転送される個々のフロー(端末A−端末C、端末B−端末C、)に属するパケットについて、フローを識別するためのフロー識別子(例:F1、F2)と、前記集約可能区間のパケット転送に用いる経路識別子(例:E1)とを、前記パケットの前記照合規則と照合する領域に書き込む処理を行ってから、パケットを出力させるフロー別の処理規則を設定する。
【0021】
また、制御装置20は、前記集約可能区間の中間に位置するノード10−2、・・・、10(n−1)に、前記経路識別子(例:E1)に適合するパケットを、前記パケット転送経路に従って転送させる前記各フロー共通の処理規則を設定する。
【0022】
また、制御装置20は、前記集約可能区間の終点に位置するノード10−nに、フロー識別子(例:F1、F2)に基づいて、前記集約可能区間の始点に位置するノードにおいて書き換えられた内容を復元する処理を行ってから、パケットを出力させる処理規則を設定する。
【0023】
以上により、端末A(30a)、端末B(30b)から端末C(30c)に宛てて送出されたパケットは、ノード10−1で、フロー識別子(例:F1、F2)と、経路識別子(例:E1)と有するパケットに書き換えられて、前記集約可能区間を転送されていく。そして、集約可能区間の終点のノード10−nで、端末A(30a)、端末B(30b)から端末C(30c)に宛てて送出されたパケットは、オリジナルの内容に復元される。
【0024】
従って、上記集約可能区間の中間に位置するノードにおいては、照合規則として経路識別子(例:E1)を持つ処理規則に集約することが可能となる。他方、上記集約可能区間の始点に位置するノードにおいては、個々のフローに属するパケットに、前記フロー識別子(例:F1、F2)と、経路識別子(例:E1)とを書き込む処理規則が設定され、各処理規則単位で処理パケットの統計情報が記録されるため、異常トラヒックの特定が容易化される。
【0025】
[第1の実施形態]
続いて、本発明の第1の実施形態について図面を参照して詳細に説明する。図2は、本発明の第1の実施形態の構成を表した図である。図2を参照すると、端末A、Bと、端末C、D間でやり取りされるパケットを転送する複数台のOpenFlowSwitch(以下、各OFSを特に区別しない場合「OFS」と称する。)10a〜10eと、OFS10a〜10eとセキュアチャンネルにより接続され、処理規則(フローエントリ)の設定や統計情報の収集を行う制御装置20と、が示されている。
【0026】
OFS10a〜10eは、パケットを受信すると、内部で保持しているフローエントリテーブル(フローテーブル)から、当該パケットに適合するフローエントリを検索し、検索されたフローエントリに定義された処理内容を実行する。
【0027】
なお、図2において、OFS同士、あるいは、OFS10a〜10eと端末A〜D間のリンク端部付近に記した符号(#1〜#24)は、OFSのポート番号を表すものとする。例えば、OFS_B10bに、端末Aから端末Cに宛てられたパケットをOFS_C10c側に出力させたい場合、該当する照合規則(マッチングルール)に適合するパケットを、ポート#12から出力させる処理(OUT_PORT:12)を定義したフローエントリを設定する。
【0028】
また、OFS10a〜10eは、フローエントリテーブル(フローテーブル)に格納されているいずれのフローエントリにもマッチしないパケットを受信した場合、そのパケット情報をPacket−inメッセージを使用して制御装置20に通知する。
【0029】
Packet−inメッセージを受信した制御装置20は、パケットの送信元、送信先情報などから、当該パケットおよび同一フローに属する後続パケットを転送する経路を選択し、パケット転送経路上のOFSに対してフローエントリを設定する。
【0030】
図3は、制御装置20の詳細構成を表したブロック図である。図3を参照すると、OpenFlowプロトコル処理部21と、スイッチ情報管理部22と、フローエントリ作成部23と、経路情報管理部24と、トポロジ管理部25と、経路計算部26と、を備えた構成が示されている。
【0031】
OpenFlowプロトコル処理部21は、非特許文献2に規定されているオープンフロープロトコルを用いて、OFS10a〜10eからフローエントリの設定要求を受け付けるとともに、OFS10a〜10eに対してフローエントリの設定やパケットの送出、記録したフロー統計情報の転送等を指示する処理を行う。
【0032】
スイッチ情報管理部22は、OFS10a〜10eの識別情報や物理ポート情報を収集・管理し、フローエントリ作成部23に提供する。OFS10a〜10eの識別情報や物理ポート情報を収集する方法としては、OFS10a〜10eに、非特許文献2に規定されているSwitch機能問い合わせメッセージ(Features Request)を送信し、OFS10a〜10eから、Switch機能応答メッセージ(Features Replay)を受信する方法を用いることができる(非特許文献2の「5.3 Controller−to−Switch Messages」以下参照。)。
【0033】
トポロジ管理部25は、上記オープンフローネットワークのトポロジ情報を保持する。トポロジ情報としては、予め構築されたものやLLDP(Link Layer Discovery Protocol)など機能による収集する方法を用いて構築することができる。
【0034】
経路計算部26は、トポロジ管理部25にて保持されているトポロジ情報を参照して、任意のOFS間のパケット転送経路を作成する。
【0035】
経路情報管理部24は、経路計算部26にて計算されたパケット転送経路を管理し、フローエントリ作成部23からの要求に応じて、図4に示すように、経路IDを付与した経路情報を提供する。ここでは、図2に示すOFS10a〜10eの接続関係を定めたトポロジ情報から、図2のOFS_A−OFS_E間においては、パケット転送経路E1(OFS_A − OFS_B − OFS_C − OFS_E)とパケット転送経路E2(OFS_A − OFS_B − OFS_D − OFS_E)が作成されているものとする。
【0036】
フローエントリ作成部23は、OpenFlowプロトコル処理部21から渡されたパケットの情報に基づいて、経路情報管理部24に保持されたパケット転送経路を選択し、当該パケット転送経路上の中間に位置するOFSでフローエントリの集約を実現するように、当該経路の始点、終点、中間に位置するOFSに設定すべきフローエントリを作成する。
【0037】
例えば、端末Aから端末Cに向けのフローについて上記パケット転送経路E1を選択した場合、フローエントリ作成部23は、選択したパケット転送経路E1の始点に位置するOFS_A10aに、オリジナルのパケットのヘッダ中の送信元MACアドレスをフローIDに、宛先MACアドレスを経路IDに変換してから、パケットを次ホップ(OFS_B)に出力させる処理規則を設定する。
【0038】
また、制御装置20は、上記パケット転送経路E1の中間に位置するOFS_B10bおよびOFS_C10cに、前記経路ID(例:E1)に適合するパケットを、前記パケット転送経路E1に従って転送させる処理規則を設定する。
【0039】
また、制御装置20は、上記パケット転送経路E1の終点に位置するOFS_E10eに、OFS_A10aにて変換したフローIDおよび経路IDに適合するパケットの送信元MACアドレス、宛先MACアドレスをオリジナルのパケットの送信元MACアドレス、宛先MACアドレスに戻す処理を行ってから、パケットを出力させる処理規則を設定する。
【0040】
図5は、上記のフローエントリ作成部23にて変換されるMACアドレスの対応関係を表した図である。
【0041】
なお、上記した制御装置20は、非特許文献1、2に記載されているオープンフローコントローラに、後記するフローエントリの集約機能を実装することにより実現することもできる。また、図3に示した制御装置20の各部(処理手段)は、制御装置20を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【0042】
続いて、本実施形態の動作について図面を参照して詳細に説明する。以下の説明では、図6の太線で表された、端末A−端末Cを流れるフローID:1、端末A−端末Dを流れるフローID:2、端末B−端末Cを流れるフローID:3、端末B−端末Dを流れるフローID:4の順でフローエントリの設定要求がなされたものとする。
【0043】
まず、制御装置20は、OFS_A10aから、端末Aから端末C向けのフローのフローエントリの作成を依頼された場合、図4に示すパケット転送経路から、パケット転送経路E1を選択し、OFS_A10aに、ポート#1から入ってきた送信元MACアドレスが端末AのMACアドレスであり、宛先MACアドレスが端末CのMACアドレスであるパケットについて、ヘッダ中の送信元MACアドレスをフローID:1に、宛先MACアドレスを経路ID:E1に変換してから、次ホップ(OFS_B)への接続ポート#10からパケットを出力させるフローエントリを作成・設定する。
【0044】
この時点で、図7の「OFS_A」、フローID=1の欄に示すように、フローエントリが作成・設定される。図7中、「MATCH」は、フローエントリのマッチングルール、即ち、照合規則を表し、図7中、「ACTION」は、フローエントリのアクションフィールド、即ち、該当パケットに適用する処理内容を表している。また、「IN_PORT」、「DL_SRC」、「DL_DST」は、図13のフローエントリの「In Port」、「Ether SA」、「Ether DA」にそれぞれ対応する。また、「SET_XX_XXX」は、ヘッダXX_XXXを書き換えるアクションを示すし、「OUT_PORT ##」は、##番ポートからのパケット出力を意味する。
【0045】
また、制御装置20は、パケット転送経路E1の中間に位置するOFS_B10bに、ポート#11から入ってきた宛先MACアドレスが経路ID:E1であるパケットを、OFS_C10cが接続されたポート#12から出力させるフローエントリを作成・設定する(図7の「OFS_B」、フローID=1の欄参照)。同様に、制御装置20は、OFS_C10cに、ポート#13から入ってきた宛先MACアドレスが経路ID:E1であるパケットを、OFS_E10eが接続されたポート#14から出力させるフローエントリを作成・設定する(図7の「OFS_C」、フローID=1の欄参照)。
【0046】
また、制御装置20は、パケット転送経路E1の終点に位置するOFS_E10eに、ポート#15から入ってきた送信元MACアドレスがフローID:1、宛先MACアドレスが経路ID:E1であるパケットについて、ヘッダ中の送信元MACアドレスを端末AのMACアドレスに、宛先MACアドレスを端末CのMACアドレスに復元してから、端末Cが接続されたポート#3から出力させるフローエントリを作成・設定する(図7の「OFS_E」、フローID=1の欄参照)。
【0047】
次に、制御装置20が、OFS_A10aから、端末Aから端末D向けのフローのフローエントリの作成を依頼された場合を考える。端末Dは、OFS_E10eに接続されているため、端末Aから端末D向けのフローのパケット転送経路としては、図4のパケット転送経路E1、E2のいずれも採用することできる。ここでは、制御装置20は、フローエントリの集約を図るべく、先のフローID:1と同様に、パケット転送経路E1を選択したものとする。
【0048】
この場合、制御装置20は、OFS_A10aに、ポート#1から入ってきた送信元MACアドレスが端末AのMACアドレスであり、宛先MACアドレスが端末DのMACアドレスであるパケットについて、ヘッダ中の送信元MACアドレスをフローID:2に、宛先MACアドレスを経路ID:E1に変換してから、次ホップ(OFS_B)への接続ポート#10からパケットを出力させるフローエントリを作成・設定する(図7の「OFS_A」、フローID=2の欄参照)。
【0049】
また、制御装置20は、パケット転送経路E1の終点に位置するOFS_E10eに、ポート#15から入ってきた送信元MACアドレスがフローID:2、宛先MACアドレスが経路ID:E1であるパケットについて、ヘッダ中の送信元MACアドレスを端末AのMACアドレスに、宛先MACアドレスを端末DのMACアドレスに復元してから、端末Dが接続されたポート#4から出力させるフローエントリを作成・設定する(図7の「OFS_E」、フローID=2の欄参照)。
【0050】
他方、パケット転送経路E1の中間に位置するOFS_B10bおよびOFS_C10cには、すでに、宛先MACアドレスが経路ID:E1であるパケットを、次ホップに転送させるフローエントリが設定されているので、フローエントリの作成・設定は要しない。
【0051】
OFS_A10aから、端末Bから端末C向けのフローのフローエントリの作成を依頼された場合も、同様にして、制御装置20は、OFS_A10a、OFS_E10eについてのみ、ヘッダの書換え・復元を伴うフローエントリを作成する(図7のフローID=3の行参照)。
【0052】
また、各OFSの負荷や、各フローのサービス属性などを考慮して、制御装置20に、異なるパケット転送経路を選択させることもできる。例えば、図7の例では、OFS_A10aから、端末Bから端末D向けのフローのフローエントリの作成を依頼された場合に、制御装置20は、パケット転送経路E2を選択し、OFS10a〜10eにそれぞれフローエントリを作成・設定する(図7のフローID=4の行参照)。
【0053】
以上、本実施形態の動作を説明したが、上記した制御装置20に、複数の動作モードを選択できるようにして、上記したフローエントリの集約を行う集約モードと、集約を行わない非集約モードとを選択できるようにしてもよい。
【0054】
図8は、上記した集約を行わなかった場合に各OFS10a〜10eに設定されるフローエントリを示す図である。図7と図8を対比すれば明らかなとおり、本実施形態では、OFS_B10bおよびOFS_C10cにおけるフローエントリの数を、4から2に削減することに成功している。前記削減可能なフローエントリの数は、「集約したフローの数×(パケット転送経路上のノード数−2)」と見積もることができる。また同時に、OFS_A10aでは、フロー毎に入力パケットとのマッチングを行っているので、フローID:1−4のうち、どのフローが異常なトラヒックを発生させていたかも容易に特定することができる。
【0055】
また、経路障害発生による経路変更が生じた場合は、図8のような非集約モードでは、影響を受けるすべてのフローエントリの設定/削除が必要となるが、図7のように集約を行っている場合には、設定/削除が必要なフローエントリの数も少なくなるため、切替処理時間の短縮や、耐障害性能も向上する。
【0056】
なお、本実施形態では、図9に示すように宛先が同一であるフローを集約してしまった場合と比較して、OFS_A10aおよびOFS_E10eのフローエントリの数は増えてしまうが、図9のように、フロー1と3、フロー2と4が混在してしまい、どちらが異常なトラヒックを発生させていたか判別し難いということは生じなくなる。
【0057】
図10から図12は、各OFSにおける本実施形態で説明した集約モードで設定されるフローエントリと、図8のような非集約モードで設定されるフローエントリとの相違をまとめたものである。以下の説明では、パケット転送経路の始点に位置し、外部ノードと接続するOFSをIngress OFS、パケット転送経路の終点に位置し、外部ノードと接続するOFSをEgress OFS、IngressとEgressの間のOFSをCore OFSと呼ぶこととする。
【0058】
図10は、Ingress OFSにおいて設定されるフローエントリの非集約モードとの相違点を表した図である。同図に表されたように、Ingress OFSにおいては、アクションとして、送信元MACアドレスと宛先MACアドレスの変換が追加されている点で相違しており、これにより、Core OFSにおけるフローエントリの集約とEgress OFSにおけるパケットの復元が実現される。
【0059】
図11は、Core OFSにおいて設定されるフローエントリの非集約モードとの相違点を表した図である。同図に表されたCore OFSにおいては、オリジナルの宛先MACアドレスではなく、Ingress OFSにおいて変換された経路IDをマッチングルールとするフローエントリが設定される。
【0060】
図12は、Egress OFSにおいて設定されるフローエントリの非集約モードとの相違点を表した図である。同図に表されたように、Egress OFSにおいては、In_Portフィールドのほか、Ingress OFSにおいて変換されたフローIDおよび経路IDをマッチングキーとして、送信元MACアドレスと宛先MACアドレスを復元するアクションが追加されている点で相違している。
【0061】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。
【0062】
例えば、上記したパケット転送経路の中間に位置するOFSに設定するフローエントリは、経路IDをマッチングルールとするため、OFSからのフローエントリの設定依頼を待つことなく事前に設定することが可能である。この場合、制御装置20は、パケット転送経路の始点と終点に位置するOFSに、前記事前に設定しておいたマッチングルールへのヘッダ書換え・復元を実行させるフローエントリを設定すればよく、制御装置20の負荷が軽減される。
【0063】
また、上記した実施形態では、経路IDをマッチングルールとして用いるものとして説明したが、経路IDとして、Egress OFSのMACアドレスやその他集約区間の転送用の識別子を用いることも可能である。
【0064】
また、上記した実施形態では、送信元/宛先MACアドレスを書き換えるものとして説明したが、図13に示したフィールドのうち、各ノード(OFS)での転送等に使用しないフィールドに、上記したフローIDや経路IDに相当する識別子を書き込んだり、これらをオリジナルのものから書き換え、終点で削除または復元する構成も採用可能である。
【0065】
また、上記した実施形態では、外部ノード(端末A〜D)と接続するOFS(エッジノード)にて、パケットヘッダの変換と、復元を行うものとして説明したが、その内側の任意のCore OFS(コアノード)にて、パケットヘッダの変換と、復元を行うものとしてもよい。例えば、図2のOFS_C10cおよびOFS_D10dにて、復元を行ってしまい、OFS_E10eに、オリジナルのパケットに基づいて、パケット処理を行うフローエントリを設定してしまってもよい。また例えば、図2のOFS_A10aには、オリジナルのパケットに基づいて、パケット処理を行うフローエントリを設定しておき、図2のOFS_B10bにて、パケットヘッダの変換を行い、OFS_C10cおよびOFS_D10dのフローエントリの集約を図るといった変形実施も可能である。
【0066】
また、上記した実施形態では、制御装置20が、トポロジ管理部25や経路計算部26を備えて、自ら経路を計算するものとして説明したが、別途、制御装置20に計算した経路情報を提供する装置を設ける構成も採用可能である。
【0067】
最後に、本発明の好ましい形態を要約する。
[第1の形態]
(上記第1の視点による通信システム参照)
[第2の形態]
第1の形態において、
前記集約可能区間の中間に位置するノードに、前記経路識別子に適合するパケットを、予め計算したパケット転送経路に従って転送させる処理規則を設定しておき、
新規に処理規則の設定要求を受けた場合に、前記予め計算したパケットの転送経路を割り当てる通信システム。
[第3の形態]
第1または第2の形態において、
パケットヘッダの送信元MACアドレスフィールドに前記フロー識別子を書き込む通信システム。
[第4の形態]
第1から第3いずれか一の形態において、
パケットヘッダの宛先MACアドレスフィールドに前記経路識別子を書き込む通信システム。
[第5の形態]
第1から第4いずれか一の形態において、
前記集約可能区間の始点および終点に位置するノードは、外部ノードとの境界に配置されるエッジノードであり、
前記集約可能区間の中間に位置するノードは、前記エッジノード間に配置されたコアノードである通信システム。
[第6の形態]
前記制御装置は、さらに、前記ノードからの要求に応じて、パケット転送経路を計算する経路計算部を備える通信システム。
[第7の形態]
(上記第2の視点による制御装置参照)
[第8の形態]
第7の形態において、
前記集約可能区間の中間に位置するノードに、前記経路識別子に適合するパケットを、予め計算したパケット転送経路に従って転送させる処理規則を設定しておき、
新規に処理規則の設定要求を受けた場合に、前記予め計算したパケットの転送経路を割り当てる制御装置。
[第9の形態]
第7または第8の形態において、
パケットヘッダの送信元MACアドレスフィールドに前記フロー識別子を書き込み、
宛先MACアドレスフィールドに前記経路識別子を書き込む制御装置。
[第10の形態]
第7から第9いずれか一の形態において、
さらに、前記ノードからの要求に応じて、パケット転送経路を計算する経路計算部を備える制御装置。
[第11の形態]
(上記第3の視点による処理規則の設定方法参照)
[第12の形態]
(上記第4の視点によるプログラム参照)
【符号の説明】
【0068】
10−1〜10−n ノード
10a〜10e OFS(オープンフロースイッチ)
20 制御装置
21 OpenFlowプロトコル処理部
22 スイッチ情報管理部
23 フローエントリ作成部
24 経路情報管理部
25 トポロジ管理部
26 経路計算部
30a〜30d 端末

【特許請求の範囲】
【請求項1】
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するとともに、前記処理規則単位で処理パケットの統計情報を記録する、複数のノードと、
前記各ノードに処理規則を設定する制御装置とを含み、
前記制御装置は、集約可能区間を有する2以上のパケット転送経路の前記集約可能区間の始点に位置するノードに、前記2以上のパケット転送経路で転送される個々のフローに属するパケットについて、フローを識別するためのフロー識別子と、前記集約可能区間のパケット転送に用いる経路識別子とを、前記パケットの前記照合規則と照合する領域に書き込む処理を行ってから、パケットを出力させるフロー別の処理規則を設定し、
前記集約可能区間の中間に位置するノードに、前記経路識別子に適合するパケットを、前記パケット転送経路に従って転送させる前記各フロー共通の処理規則を設定し、
前記集約可能区間の終点に位置するノードに、前記フロー識別子に基づいて、前記集約可能区間の始点に位置するノードにおいて書き換えられた内容を復元する処理を行ってから、パケットを出力させる処理規則を設定すること、
を特徴とする通信システム。
【請求項2】
前記集約可能区間の中間に位置するノードに、前記経路識別子に適合するパケットを、予め計算したパケット転送経路に従って転送させる処理規則を設定しておき、
新規に処理規則の設定要求を受けた場合に、前記予め計算したパケットの転送経路を割り当てる請求項1の通信システム。
【請求項3】
パケットヘッダの送信元MACアドレスフィールドに前記フロー識別子を書き込む請求項1または2の通信システム。
【請求項4】
パケットヘッダの宛先MACアドレスフィールドに前記経路識別子を書き込む請求項1から3いずれか一の通信システム。
【請求項5】
前記集約可能区間の始点および終点に位置するノードは、外部ノードとの境界に配置されるエッジノードであり、
前記集約可能区間の中間に位置するノードは、前記エッジノード間に配置されたコアノードである請求項1から4いずれか一の通信システム。
【請求項6】
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するとともに、前記処理規則単位で処理パケットの統計情報を記録する、複数のノードと接続され、
集約可能区間を有する2以上のパケット転送経路の前記集約可能区間の始点に位置するノードに、前記2以上のパケット転送経路で転送される個々のフローに属するパケットについて、フローを識別するためのフロー識別子と、前記集約可能区間のパケット転送に用いる経路識別子とを、前記パケットの前記照合規則と照合する領域に書き込む処理を行ってから、パケットを出力させるフロー別の処理規則を設定し、
前記集約可能区間の中間に位置するノードに、前記経路識別子に適合するパケットを、前記パケット転送経路に従って転送させる前記各フロー共通の処理規則を設定し、
前記集約可能区間の終点に位置するノードに、前記フロー識別子に基づいて、前記集約可能区間の始点に位置するノードにおいて書き換えられた内容を復元する処理を行ってから、パケットを出力させる処理規則を設定する制御装置。
【請求項7】
前記集約可能区間の中間に位置するノードに、前記経路識別子に適合するパケットを、予め計算したパケット転送経路に従って転送させる処理規則を設定しておき、
新規に処理規則の設定要求を受けた場合に、前記予め計算したパケットの転送経路を割り当てる請求項6の制御装置。
【請求項8】
パケットヘッダの送信元MACアドレスフィールドに前記フロー識別子を書き込み、
宛先MACアドレスフィールドに前記経路識別子を書き込む請求項6または7の制御装置。
【請求項9】
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するとともに、前記処理規則単位で処理パケットの統計情報を記録する、複数のノードと接続された制御装置が、
集約可能区間を有する2以上のパケット転送経路の前記集約可能区間の始点に位置するノードに、前記2以上のパケット転送経路で転送される個々のフローに属するパケットについて、フローを識別するためのフロー識別子と、前記集約可能区間のパケット転送に用いる経路識別子とを、前記パケットの前記照合規則と照合する領域に書き込む処理を行ってから、パケットを出力させるフロー別の処理規則を設定するステップと、
前記集約可能区間の中間に位置するノードに、前記経路識別子に適合するパケットを、前記パケット転送経路に従って転送させる前記各フロー共通の処理規則を設定するステップと、
前記集約可能区間の終点に位置するノードに、前記フロー識別子に基づいて、前記集約可能区間の始点に位置するノードにおいて書き換えられた内容を復元する処理を行ってから、パケットを出力させる処理規則を設定するステップと、を含む処理規則の設定方法。
【請求項10】
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するとともに、前記処理規則単位で処理パケットの統計情報を記録する、複数のノードと接続された制御装置を構成するコンピュータに実行させるプログラムであって、
集約可能区間を有する2以上のパケット転送経路の前記集約可能区間の始点に位置するノードに、前記2以上のパケット転送経路で転送される個々のフローに属するパケットについて、フローを識別するためのフロー識別子と、前記集約可能区間のパケット転送に用いる経路識別子とを、前記パケットの前記照合規則と照合する領域に書き込む処理を行ってから、パケットを出力させるフロー別の処理規則を設定する処理と、
前記集約可能区間の中間に位置するノードに、前記経路識別子に適合するパケットを、前記パケット転送経路に従って転送させる前記各フロー共通の処理規則を設定する処理と、
前記集約可能区間の終点に位置するノードに、前記フロー識別子に基づいて、前記集約可能区間の始点に位置するノードにおいて書き換えられた内容を復元する処理を行ってから、パケットを出力させる処理規則を設定する処理と、
を前記コンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate