特許第5994846号(P5994846)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許5994846通信システム、制御装置、ノード、ノードの制御方法およびプログラム
<>
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000002
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000003
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000004
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000005
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000006
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000007
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000008
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000009
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000010
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000011
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000012
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000013
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000014
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000015
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000016
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000017
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000018
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000019
  • 特許5994846-通信システム、制御装置、ノード、ノードの制御方法およびプログラム 図000020
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5994846
(24)【登録日】2016年9月2日
(45)【発行日】2016年9月21日
(54)【発明の名称】通信システム、制御装置、ノード、ノードの制御方法およびプログラム
(51)【国際特許分類】
   H04L 12/717 20130101AFI20160908BHJP
【FI】
   H04L12/717
【請求項の数】15
【全頁数】23
(21)【出願番号】特願2014-510576(P2014-510576)
(86)(22)【出願日】2012年8月27日
(65)【公表番号】特表2014-527728(P2014-527728A)
(43)【公表日】2014年10月16日
(86)【国際出願番号】JP2012005366
(87)【国際公開番号】WO2013031175
(87)【国際公開日】20130307
【審査請求日】2015年7月3日
(31)【優先権主張番号】特願2011-186096(P2011-186096)
(32)【優先日】2011年8月29日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100080816
【弁理士】
【氏名又は名称】加藤 朝道
(72)【発明者】
【氏名】千葉 靖伸
(72)【発明者】
【氏名】下西 英之
【審査官】 安藤 一道
(56)【参考文献】
【文献】 国際公開第2010/110235(WO,A1)
【文献】 OpenFlow Switch Specification Version 1.0.0,2009年12月31日,pp.1-42
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/717
(57)【特許請求の範囲】
【請求項1】
受信パケットと照合する照合規則と、前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードと、
前記ノードからの要求に応じて前記ノードに前記処理規則を設定する制御装置と、を含み
記制御装置は、
前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力し、
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、
前記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を作成する処理規則作成部を備える通信システム。
【請求項2】
前記制御装置は、
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を記憶する第1の記憶部を備える請求項1の通信システム。
【請求項3】
前記パケット処理部は、経路表を保持し、前記経路表を参照して転送先の決定を含むパケット処理を行う請求項1または2の通信システム。
【請求項4】
さらに、所定の間隔で、前記パケット処理部に対し、前記ノードに保持されている処理規則に対応する監視パケットを入力する監視パケット送信部と、
前記ノードに設定した処理規則を記憶する第2の記憶部と、を含み、
前記制御装置は、
前記監視パケットの入力により得られた前記パケット処理部のパケット処理結果の変化を検知して、前記ノードに保持されている処理規則を更新する請求項1から3いずれか一の通信システム。
【請求項5】
前記制御装置は、
前記特定したノードに設定した処理規則に対応する処理規則を複数のノードに設定する請求項1から4いずれか一の通信システム。
【請求項6】
前記制御装置は、さらに、
前記ノードから受信したパケットの情報を記憶する第3の記憶部と、
前記複数のノード間の接続関係を記憶する内部トポロジ管理部と、
前記複数のノードの任意の2つのノード間の経路を計算する内部経路計算部とを備え、
前記複数のノードの一のノードから処理規則の作成を要求されたパケットを前記パケット処理部に入力し、前記入力により得られた前記パケット処理部のパケット処理結果に基づいて、前記一のノードから前記特定したノードまでの経路を計算し、該経路上のノードに設定する処理規則を作成する請求項5の通信システム。
【請求項7】
受信パケットと照合する照合規則と前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードからの要求に応じて、前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力し、
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、
前記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を作成する処理規則作成部と、
前記ノードに前記作成した処理規則を設定する処理規則設定部と、
を備える制御装置。
【請求項8】
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を記憶する第1の記憶部を備える請求項7の制御装置。
【請求項9】
前記パケット処理部として、経路表を保持し、前記経路表を参照して転送先の決定を含むパケット処理を行うパケット処理部を備える請求項7または8の制御装置。
【請求項10】
さらに、前記ノードに設定した処理規則を記憶する第2の記憶部を備え、
所定の間隔で前記パケット処理部に入力される監視パケットに対する前記パケット処理部のパケット処理結果の変化を検知して、前記ノードに保持されている処理規則を更新する請求項7から9いずれか一の制御装置。
【請求項11】
さらに、前記ノードに設定した処理規則を記憶する第2の記憶部と、
所定の間隔で、前記パケット処理部に対し、前記ノードに保持されている処理規則に対応する監視パケットを入力する監視パケット送信部と、を備え、
前記監視パケットの入力により得られた前記パケット処理部のパケット処理結果の変化を検知して、前記ノードに保持されている処理規則を更新する請求項7から9いずれか一の制御装置。
【請求項12】
前記特定したノードに設定した処理規則に対応する処理規則を、複数のノードに設定する請求項7から11いずれか一の制御装置。
【請求項13】
さらに、
前記ノードから受信したパケットの情報を記憶する第3の記憶部と、
前記複数のノード間の接続関係を記憶する内部トポロジ管理部と、
前記複数のノードの任意の2つのノード間の経路を計算する内部経路計算部とを備え、
前記複数のノードの一のノードから処理規則の作成を要求されたパケットを前記パケット処理部に入力し、前記入力により得られた前記パケット処理部のパケット処理結果に基づいて、前記一のノードから前記特定したノードまでの経路を計算し、該経路上のノードに設定する処理規則を作成する請求項12の制御装置。
【請求項14】
受信パケットと照合する照合規則と前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードからの要求に応じて、前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力するステップと、
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、
前記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を作成するステップと、
前記ノードに前記作成した処理規則を設定するステップと、を含む、
ノードの制御方法。
【請求項15】
受信パケットと照合する照合規則と前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードからの要求に応じて、前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力する処理と、
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、
前記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を作成する処理と、
前記ノードに前記作成した処理規則を設定する処理と、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願についての記載)
本発明は、日本国特許出願:特願2011−186096号(2011年8月29日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信システム、制御装置、ノード、ノードの制御方法およびプログラムに関し、特に、ノードを集中制御する制御装置が設けられている通信システム、その制御装置、ノード、ノードの制御方法およびプログラムに関する。
【背景技術】
【0002】
近年、オープンフロー(OpenFlow)という技術が提案されている(特許文献1、非特許文献1、2参照)。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献2に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチングルール(ヘッダフィールド)と、フロー統計情報(Counters)と、処理内容を定義したインストラクション(Instructions)と、の組が定義される(図17参照)。
【0003】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチングルール(図17のヘッダフィールド参照)を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報(カウンタ)を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容(指定ポートからのパケット送信、フラッディング、廃棄等)を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットの処理内容の決定の要求を送信する。オープンフロースイッチは、要求に対応するフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを処理規則として用いてパケット転送を行う。
【0004】
また、非特許文献3には、上記オープンフローを用いて仮想ネットワーク環境を構築するルートフロー(RouteFlow)という技術が提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】国際公開第2008/095010号
【非特許文献】
【0006】
【非特許文献1】Nick McKeownほか7名、“OpenFlow: Enabling Innovation in Campus Networks”、[online]、[平成23(2011)年5月26日検索]、インターネット〈URL: http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献2】“OpenFlow Switch Specification” Version 1.1.0 Implemented (Wire Protocol 0x02) [平成23(2011)年5月26検索]、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【非特許文献3】“Virtual Routers as a Service:The RouteFlow Approach Leveraging Software−Defined Network” [平成23(2011)年7月11日検索]、インターネット〈URL: http://sites.google.com/site/routeflow/documents/routeflow-virtual-ip-sdn-CFI-2011.pdf?attredirects=0〉
【発明の概要】
【発明が解決しようとする課題】
【0007】
以下の分析は、本発明によって与えられたものである。上記のようなオープンフローを用いたネットワークにおいて、外部ネットワークとの境界やその内部の仮想ノードとして、ルータやゲートウェイ等の通信機器を配置したいという要請がある。また敢えて、レイヤ2スイッチ等のレガシーな通信機器を配置したいケースも考えられる。
【0008】
例えば、特定の(オープンフロー)スイッチをルータとして動作させる場合、図18に示すように、(オープンフロー)コントローラに、RIP(Routing Information Protocol)、OSPF(Open Shortest Path First)、BGP(Border Gateway Protocol)等により動的に更新される経路表を用いてルーティングを行うルータパケット処理機構を搭載し、(オープンフロー)コントローラ内部で、経路表の更新を行いつつ、ルータ相当の動作を実現するフローエントリを作成することが考えられる。しかしながら、この方法では、コントローラにルータパケット処理機構を実装する必要があり、その開発コストが高くなってしまうという問題点がある。
【0009】
非特許文献3では、仮想化されたIPルーティングエンジンを相互に接続した仮想ネットワーク環境を管理するルートフローサーバを導入することが提案されている。しかしながら、非特許文献3の方法も、図19に示すように、仮想ネットワーク環境の各仮想マシン上に配置されるルートフロースレーブと呼ばれるデーモンにより、経路表やARP(Address Resolution Protocol)テーブルの変化を監視し、その変化を逐次フローエントリに反映する必要があり、その実装コストが高くなってしまうという問題点がある。
【0010】
本発明の目的は、オープンフローネットワークのノードに、低コストで、所定の仕様に準じた通信機器に相当する動作を行わせることのできる構成を提供することにある。
【課題を解決するための手段】
【0011】
本発明の第1の視点によれば、受信パケットと照合する照合規則と、前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードと、前記ノードからの要求に応じて前記ノードに前記処理規則を設定する制御装置と、を含む通信システムが提供される。前記制御装置は、前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力し、前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、前記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を作成する処理規則作成部を備える。
【0012】
本発明の第2の視点によれば、受信パケットと照合する照合規則と前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードからの要求に応じて、前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力し、前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、前記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を設定する処理規則設定部と、を備える制御装置が提供される
【0013】
本発明の第3の視点によれば、予め定められた仕様に従ってパケット処理を行うパケット処理部と接続されるノードが提供される。前記ノードは、受信パケットと照合する照合規則と前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従ってパケットを処理するノード側パケット処理部と、前記照合規則に適合しないパケットを前記パケット処理部に入力し、前記パケット処理部への入力によって得られたパケット処理結果に相当する処理規則を作成する処理規則作成部と、を備える。
【0014】
本発明の第4の視点によれば、受信パケットと照合する照合規則と前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードからの要求に応じて、前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力するステップと、前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、
前記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を作成するステップと、前記ノードに前記作成した処理規則を設定するステップと、を含む、ノードの制御方法が提供される。本方法は、前記ノードを制御する制御装置という、特定の機械に結びつけられている。
【0015】
本発明の第5の視点によれば、受信パケットと照合する照合規則と前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードからの要求に応じて、前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力する処理と、前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を作成する処理と、前記ノードに前記作成した処理規則を設定する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な非トランジエントな記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【0016】
本発明によれば、コストを掛けずに、オープンフローネットワークのノードを任意の通信機器のように振舞わせることが可能となる。
【図面の簡単な説明】
【0017】
図1】本発明の一実施形態の概要を説明するための図である。
図2】本発明の一実施形態の動作概要を説明するためのシーケンス図である。
図3】本発明の第1の実施形態の構成を表したブロック図である。
図4】本発明の第1の実施形態のコントローラのインタフェースDBに保持される情報の例である。
図5】本発明の第1の実施形態のコントローラの動作を表した流れ図である。
図6】本発明の第1の実施形態の動作を説明するための図である。
図7図6の続図である。
図8図7の続図である。
図9】本発明の第2の実施形態の概略構成を表したブロック図である。
図10】本発明の第2の実施形態の構成を表したブロック図である。
図11】本発明の第2の実施形態のコントローラの動作を表した流れ図である。
図12】本発明の第3の実施形態の概略構成を表したブロック図である。
図13】本発明の第3の実施形態の構成を表したブロック図である。
図14】本発明の第3の実施形態のコントローラのインタフェースDBに保持される情報の例である。
図15】本発明の第3の実施形態のコントローラの入力パケットDBに保持される情報の例である。
図16】本発明の第3の実施形態のコントローラの動作を表した流れ図である。
図17】非特許文献2のフローエントリの構成を表した図である。
図18】背景技術を説明するための図である。
図19】非特許文献3の概略構成を説明するための図である。
【発明を実施するための形態】
【0018】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【0019】
本発明は、その一実施形態において、図1に示すように、フローテーブル21と、(ノード側)パケット処理部22とを備え、受信パケットと照合する照合規則と、前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノード20と、前記ノード20からの要求に応じて前記ノード20に前記処理規則(以下、「フローエントリ」)を設定するコントローラ10(上記「制御装置」に相当。)と、予め定められた仕様に従ってパケット処理を行うパケット処理部11とを含む構成にて実現できる。具体的には、コントローラ10は、前記ノード20からフローエントリの作成を要求されたパケットを前記パケット処理部11に入力し、前記入力により得られた前記パケット処理部11のパケット処理結果に相当するフローエントリを作成するフローエントリ作成部12(上記、「処理規則作成部」に相当。)を備える。なお以下の説明では、パケット処理部11は、IPv4のルータと同等のパケット処理を行うものとする。
【0020】
なお、ノード20は、非特許文献1、2のオープンフロースイッチまたはその互換製品により実現することが可能である。
【0021】
図2は、上記本発明の一実施形態の動作概要を説明するためのシーケンス図である。図2に示すように、パケット処理部11は、コントローラ10を介して、ノード20とRIP、OSPF、BGP等の制御パケットの送受信(図2のS401)、または、管理者による静的設定に基づき、経路表を更新する(図2のS402)。
【0022】
その後、ホストから新規にユーザパケットを受信すると(図2のS403)、ノード20は、フローテーブル21から、受信したユーザパケットに適合する照合規則(マッチングルール)を持つフローエントリを検索する(図2のS404)。
【0023】
ここでは、ホストから受信したパケットは、新規のユーザパケットであるため、ノード20のフローテーブル21には、受信パケットに適合するフローエントリは存在しない。そこで、ノード20は、コントローラ10に対して、受信パケットに適合するフローエントリの設定を要求する(図2のPacket−In;S405)。
【0024】
前記Packet−Inを受信したコントローラ10は、Packet−Inとともに受信したパケットをパケット処理部11に入力する際のインタフェース(出力先インタフェース)を決定し(図2のS406)、パケット処理部11に、前記Packet−Inとともに受信したパケットを入力する(図2のS407)。
【0025】
パケット処理部11は、上記のように、ステップS401、S402で更新した経路表を検索して、入力されたパケットの転送先を決定し(図2のS408)、コントローラ10側に出力する(図2のS409)。
【0026】
コントローラ10は、前記パケット処理部11からのパケットが出力されたインタフェースに基づいてノード20からパケットを出力させるポートを決定し(図2のS410)、当該パケットの後続パケットを前記決定したポートから出力させるフローエントリを生成する(図2のS411)。
【0027】
次に、コントローラ10は、前記生成したフローエントリをノード20に設定する(図2のFlowMod(Add);S412、S413)。さらに、コントローラ10は、ノード20に対し、前記決定したポートから、ステップS405でフローエントリの設定要求を受けたパケットを送信するよう指示する(図2のPacket−Out;S414)。ノード20は、前記指示に従って、指定されたポートから、パケットを次ホップに送信する(図2のS415)。
【0028】
その後、ホストから後続パケットを受信すると(図2のS416)、ノード20は、フローテーブル21から、受信したユーザパケットに適合する照合規則(マッチングルール)を持つフローエントリを検索する(図2のS417)。ここでは、上述のように、前記後続パケットを処理するためのフローエントリが登録されているため、該当するフローエントリに従って次ホップに転送するインストラクションが実行される(図2のS418、S419)。
【0029】
以上のように、本実施形態では、IPv4のルータのパケット処理を行うパケット処理部11の内部の経路表等を観測するのではなく、そのパケット転送動作を観測し、その結果に基づいて、フローエントリを作成するようにしたため、背景技術に述べた構成よりも低コストで、ノード20にルータ相当の動作を行わせることができる。
【0030】
[第1の実施形態]
続いて、本発明をより具体的に説明すべく、本発明の第1の実施形態について図面を参照して詳細に説明する。図3は、本発明の第1の実施形態の構成を表したブロック図である。図3を参照すると、フローテーブル21と、(ノード側)パケット処理部22とを備えるノード20を制御するコントローラ100の詳細構成が示されている。(ノード側)パケット処理部22は、コントローラ100のネットワークインタフェース通信部101と接続されたパケット処理部とは異なり、フローテーブル21に格納されたエントリを処理規則として用いてパケット処理を行う。
【0031】
なお、本実施形態で用いるパケット処理部は、図1に示したIPv4のルータのパケット処理を行うパケット処理部11と同等であるものとする。即ち、パケット処理部11内部のRIP、BGP、OSPFといったルーティングプロトコルのデーモンがノード20と通信し内部の経路表を更新しているものとする。また、コントローラ100は、ノード20とルーティングプロトコルデーモン間の制御パケットを必要に応じ中継するのみで、経路表の変化には関知しないものとする。
【0032】
コントローラ100は、パケット処理部側の複数のネットワークインタフェース接続されてパケットの送受信を行うネットワークインタフェース通信部101と、ノード20に備えられたポートと、前記ネットワークインタフェースとの対応関係を記憶する記憶部に相当するインタフェースデータベース(インタフェースDB)102と、ノード20に設定した処理規則(フローエントリ)を格納したフローエントリデータベース(フローエントリDB)103と、ノード通信部108および制御メッセージ処理部107を介してノードから受信したパケットをパケット処理部に入力し、その結果を出力パケット解析・フローエントリ生成部105に出力するユーザパケット処理部104と、ユーザパケット処理部104から入力された内容に基づいて、フローエントリを生成する出力パケット解析・フローエントリ生成部105と、前記生成されたフローエントリのフローエントリDB103への登録や、ノード20への設定を行うフローエントリ管理部106と、制御メッセージ処理部107と、ノード20との通信を行うノード通信部108と、を備えて構成される。
【0033】
なお、図3の構成中、ノード20に設定したフローエントリを保持する必要が無い場合、フローエントリDB103は省略することが可能である。また、インタフェースDB102は、コントローラ100からアクセス可能であればよく、別の外部装置に設けることも可能である。
【0034】
さらに、制御メッセージ処理部107は、ノード20から受信した制御メッセージを解析して、必要な処理を行うメッセージ解析・処理部1071と、ノード20に送信するメッセージを生成するメッセージ生成部1072とを備えて構成される。
【0035】
図4は、インタフェースDB102に保持される情報を模式的に表した図である。図4の例では、ノード(物理ノード)のポート#1、#33、#48、#50が、それぞれ対応するネットワークインタフェースtap0〜3と対応付けられている。例えば、ノード(物理ノード)のポート#1から入力されたパケットは、ネットワークインタフェースtap0からパケット処理部11に入力される。そして、前記パケットの入力の結果、パケット処理部11から前記パケットの出力先となるネットワークインタフェースを観測することにより、パケット処理部のふるまいを把握することができる。例えば、ポート#1から入力されたパケットをネットワークインタフェースtap0からパケット処理部11に入力した結果、パケット処理部11のネットワークインタフェースtap3から前記パケットが出力された場合、パケット処理部11に保持されている経路表は、ポート#1から入力された前記パケットをポート#50から出力するエントリを持っていると推測できる。出力パケット解析・フローエントリ生成部105は、このようなパケット処理の結果を用いて、ノード20のポート#1から入力されたパケットをポート#50から出力されるフローエントリを生成する。なお、出力パケット解析・フローエントリ生成部105が生成するフローエントリのインストラクション(処理内容)は転送に限らず、例えば、パケット処理部11において各種優先制御がなされている場合には、これを実現するフローエントリが生成される。
【0036】
上記のようなコントローラ100は、非特許文献1、2のオープンフローコントローラをパケット処理部に接続し、少なくとも上記ネットワークインタフェース通信部101、インタフェースDB102、ユーザパケット処理部104、出力パケット解析・フローエントリ生成部105を追加することにより実現することが可能である。
【0037】
なお、上記コントローラ100の各部(処理手段)は、コントローラ100を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【0038】
続いて、上記したコントローラ100の動作について説明する。図5は、コントローラ100の動作を表した流れ図である。図5の左側の流れ図(A)を参照すると、ノード20からフローエントリの作成要求(Packet−In)を受けると、コントローラ100は、インタフェースDB102を参照して、フローエントリの作成要求(Packet−In)に添付されたパケットのノード20の受信ポートに対応するネットワークインタフェースを検索する(ステップS001;Packet−In)。前記検索の結果、インタフェースDB102に該当するエントリが無い場合、処理を終了する(ステップS002のNo)。なおここで、前記パケットが、ノード20以外のパケット処理部と対応付けられていないノードからのパケットである場合には、背景技術に記載したように、これらのノードのために経路作成や他のコントローラへの経路作成依頼等を行うようにしても良い。
【0039】
一方、前記検索の結果、該当するエントリが見つかった場合(ステップS002のYes)、コントローラ100は、当該エントリに記述されたネットワークインタフェース宛に、ノード20から受信したユーザパケットを転送する(ステップS003)。例えば、図6に示すように、ノード20のポート#1で受信したパケットについてフローエントリの作成要求を受けた場合、コントローラ100は、インタフェースDB102を参照し、ノード20のポート#1に対応付けられているネットワークインタフェースtap0宛てにパケットを転送する。
【0040】
その後、パケット処理部の任意のネットワークインタフェースからパケットを受信すると、コントローラ100は、図5の右側の流れ図(B)に従って動作する。まず、コントローラ100は、インタフェースDB102を参照して、パケットを受信したネットワークインタフェースに対応する出力先ポートを検索する(ステップS101)。前記検索の結果、インタフェースDB102に該当するエントリが無い場合、処理を終了する(ステップS102のNo)。
【0041】
一方、前記検索の結果、該当するエントリが見つかった場合(ステップS102のYes)、コントローラ100は、前記受信パケットを、当該エントリに記述された出力先ポートから転送させるフローエントリを生成する(ステップS103)。なお、ここで、パケット処理部にて、パケットヘッダの書き換え等が行われている場合、コントローラ100が、これらに対応するインストラクションをフローエントリに追加するようにしてもよい。
【0042】
次にコントローラ100は、ノード20に、前記生成したフローエントリを設定し(ステップS104;FlowMod(Add)送信)、さらにノード20に対し、前記受信したパケットの転送を指示する(ステップS105;Packet−Out)。
【0043】
例えば、図7に示すように、パケット処理部のネットワークインタフェースtap0宛てにパケットを転送した結果として、ネットワークインタフェースtap3からパケットを受信している場合、コントローラ100は、インタフェースDB102を参照し、ネットワークインタフェースtap3に対応付けられている出力先ポートとして、ノード20のポート#50を特定する。最終的にコントローラ100は、前記受信パケットをポート#50から転送させるインストラクションを定めたフローエントリを生成、設定する。
【0044】
以上により、その後は、図8に示すように、ノード20に設定されたフローエントリに従って、パケット処理部の経路表に従った転送処理と同様の転送処理が行われる。
【0045】
以上説明したように、本実施形態によれば、コントローラが自ら経路表を管理したり、経路表の変化を監視することなく、ノード20を、IPv4ルータと同等に振舞わせることができる。また、構成としても、仕様の通信装置と同等に動作するパケット処理部(このようなパケット処理部は、既存のルーティングプロトコルスタックを用いて容易に構成できる。)を用意するとともに、コントローラ側に、ノードとパケット処理部のインタフェース間の対応関係を記憶する記憶部と、その結果に基づいたフローエントリの生成機能とを持たせるだけであるので、低コストで実現することが可能である。
【0046】
[第2の実施形態]
続いて、上記した第1の実施形態に変更を加えた第2の実施形態について図面を参照して詳細に説明する。上記した第1の実施形態では、ノード20からパケットを受信した場合にのみ、その出力の観測が行われる。その一方で、パケット処理部では所定のタイミングで経路表の更新が行われるため、パケット処理部内部の経路表の変化が、ノード20に保持されているフローエントリに反映されていないということが起こりうる。
【0047】
そこで、本発明の第2の実施形態では、図9に示すように、所定のタイミングで、パケット処理部11のネットワークインタフェース宛に、監視用のパケットを送信する監視パケット送信部110を追加している。以下、基本的な構成は、第1の実施形態と共通するので、その相違点を中心に説明する。
【0048】
図10は、本発明の第2の実施形態の詳細構成を表したブロック図である。図3に示した第1の実施形態との相違点は、フローエントリDB103のエントリが監視パケット送信部に参照されるようになっている点と、出力パケット解析・フローエントリ生成部105Aに前記監視パケットによるフローエントリの更新機能が追加されている点である。
【0049】
監視パケット送信部110は、フローエントリDB103からフローエントリを読み出し、当該フローエントリのマッチングルール(照合規則)に適合するヘッダと、監視パケットであることを示す情報を含んだ監視パケットを生成し、パケット処理部に入力する動作を行う。監視パケットとしては、pingで用いられるICMP echo requestパケット等のダミーのパケットを用いることができる。
【0050】
図11は、本発明の第2の実施形態のコントローラの動作を表した流れ図である。第1の実施形態のコントローラの動作を表した図5の右側の流れ図(B)に対し、ステップS111〜S116が追加されている。
【0051】
図11を参照すると、まず、ネットワークインタフェースからパケットを受信したコントローラ100Aは、インタフェースDB102を参照して、当該パケットを受信したネットワークインタフェースに対応する出力先ポートを検索する(ステップS101)。前記検索の結果、インタフェースDB102に該当するエントリが無い場合、処理を終了する(ステップS102のNo)。
【0052】
一方、前記検索の結果、該当するエントリが見つかった場合(ステップS102のYes)、コントローラ100Aは、パケットの解析を行う(ステップS111)。前記パケットの解析の結果、受信パケットがユーザパケットであるなど、監視パケットで無い場合(ステップS112のNo)、第1の実施形態と同様に(図5のステップS103〜S105参照)、前記特定された出力先ポートに基づいて、フローエントリの生成、設定、パケットの送信指示が行われる(図11のS103〜S105)。
【0053】
一方、前記パケットの解析の結果、受信パケットが監視パケットであると判断した場合(ステップS112のYes)、コントローラ100Aは、フローエントリDB103から、前記受信パケット(監視パケット)に適合するマッチングルール(照合規則)を持つフローエントリを検索する(ステップS113)。
【0054】
次に、コントローラ100Aは、インタフェースDB102を参照して、前記受信パケット(監視パケット)が出力されたネットワークインタフェースに対応するポートを特定する。さらに、コントローラ100Aは、前記特定されたポートが、前記ステップS113で検索されたフローエントリのインストラクションフィールドに定められた出力先ポートと一致するか否かを確認する(ステップS114)。ここで、前記特定されたポートが、検索されたフローエントリのインストラクションフィールドに定められた出力先ポートと一致する場合(ステップS114のNo)、コントローラは処理を終了する。
【0055】
一方、前記特定されたポートが、検索されたフローエントリのインストラクションフィールドに定められた出力先ポートと一致しない場合(ステップS114のYes)、コントローラ100Aは、前記検索されたフローエントリのインストラクションフィールドの内容を前記特定されたポートへの転送処理に書き換え(ステップS115)、ノードに設定する(ステップS116)。
【0056】
以上のように、本実施形態によれば、パケット処理部内部の経路表の変化を、なるべく速やかに、ノード20に保持されているフローエントリに反映させることが可能になる。
【0057】
なお、上記した実施形態では、監視パケット送信部110は、フローエントリDB103からフローエントリを読み出して、監視パケットを生成するものとして説明したが、任意の監視パケット生成規則を用いて、監視パケットを自動生成するようにしてもよい。また、監視パケットは、更新要否確認対象のフローエントリと対応付けて生成され、監視パケットであることを識別可能なものであればよい。
【0058】
[第3の実施形態]
続いて、上記した第1の実施形態に変更を加えた第3の実施形態について図面を参照して詳細に説明する。上記した第1、第2の実施形態では、ノード20と、パケット処理部11が1対1の対応関係にあるものとして説明したが、複数のノードを単一の通信機器として振舞わせることも可能である。
【0059】
そこで、本発明の第3の実施形態では、図12に示すように、コントローラ100Bが複数のノード20A、20Bを制御する構成となっている。以下、基本的な構成は、第1の実施形態と共通するので、その相違点を中心に説明する。
【0060】
図13は、本発明の第3の実施形態の詳細構成を表したブロック図である。図3に示した第1の実施形態との相違点は、コントローラ100Bに、入力パケットデータベース(入力パケットDB)109、内部トポロジ管理部111および内部経路計算部112が追加されている点と、インタフェースDB102B、ユーザパケット処理部104B、出力パケット解析・フローエントリ生成部105Bに変更が加えられている点である。
【0061】
図14は、インタフェースDB102Bに保持される情報を模式的に表した図である。図4に示した第1の実施形態のインタフェースDB102との相違点は、各エントリにノードID(Datapath ID)が追加されている点である。例えば、ノード20Aのポート#1から入力されたパケットは、ネットワークインタフェースtap0からパケット処理部11に入力される。また例えば、ポート#1から入力されたパケットをネットワークインタフェースtap0からパケット処理部11に入力した結果、パケット処理部11のネットワークインタフェースtap3から前記パケットが出力された場合、パケット処理部11に保持されている経路表は、ポート#1から入力された前記パケットをポート#50から出力するエントリを持っていると推測できる。出力パケット解析・フローエントリ生成部105Bは、このようなパケット処理の結果を用いて、ノード20Aのポート#1から入力されたパケットをノード20Bのポート#50から出力されるフローエントリを生成する。このとき、ノード20A、ノード20B間のパケット転送が必要となるので、後記する入力パケットDB109、内部トポロジ管理部111および内部経路計算部112が利用される。
【0062】
図15は、入力パケットDB109に保持される情報を模式的に表した図である。図15の例では、入力パケットDBのエントリは、入力パケットのヘッダ情報等の入力パケット情報と、ノードID(Datapath ID)と、(物理)ノードのポート#とを対応付けた内容となっている。例えば、ユーザパケット処理部104Bが、ユーザパケットをノード側から受信すると、その入力パケット情報W、ノードID、ポート#を入力パケットDB109に登録する。ポート#1から入力されたパケットをネットワークインタフェースtap0からパケット処理部11に入力した結果、パケット処理部11のネットワークインタフェースtap3から、入力パケット情報としてWを持つパケットが出力された場合、前記登録した情報を逆引きして、当該パケットが、ノードIDが0x01であるノード20Aのポート#1から入力されたパケットであることを割り出すことができる。
【0063】
内部トポロジ管理部111は、ノード20Aおよびノード20B間の接続関係を管理する。内部経路計算部112は、出力パケット解析・フローエントリ生成部105Bからの要求に応じて、ユーザパケットを受信したノードと、当該ユーザパケットを出力すべきノード間の経路を計算する。例えば、出力パケット解析・フローエントリ生成部105Bから、ノード20Aとノード20B間の経路を計算する要求を受けた場合、内部経路計算部112は、内部トポロジ管理部111に保持されている情報を参照して経路を計算し、出力パケット解析・フローエントリ生成部105Bに計算結果を返す。
【0064】
続いて、上記したコントローラ100Bの動作について説明する。図16は、コントローラ100Bの動作を表した流れ図である。図16の左側の流れ図(A)を参照すると、ノード20A(またはノード20B)からフローエントリの作成要求(Packet−In)を受けると、コントローラ100Bは、インタフェースDB102Bを参照して、フローエントリの作成要求(Packet−In)に添付されたパケットのノード20A(またはノード20B)の受信ポートに対応するネットワークインタフェースを検索する(ステップS001;Packet−In)。前記検索の結果、インタフェースDB102Bに該当するエントリが無い場合、処理を終了する(ステップS002のNo)。
【0065】
一方、前記検索の結果、該当するエントリが見つかった場合(ステップS002のYes)、コントローラ100Bは、フローエントリの作成要求(Packet−In)に添付されたパケットから、前述した入力パケット情報、ノードID、ポート#などを抽出し(ステップS011)、入力パケットDB109に登録する(ステップS012)。
【0066】
その後、コントローラ100Bは、ステップS001で検索したエントリに記述されたネットワークインタフェース宛に、ノード20から受信したユーザパケットを転送する(ステップS003)。例えば、ノード20Aのポート#1で受信したパケットについてフローエントリの作成要求を受けた場合、コントローラ100Bは、インタフェースDB102Bを参照し、ノード20のポート#1に対応付けられているネットワークインタフェースtap0宛てにパケットを転送する。
【0067】
その後、パケット処理部の任意のネットワークインタフェースからパケットを受信すると、コントローラ100Bは、図16の右側の流れ図(B)に従って動作する。まず、コントローラ100Bは、インタフェースDB102Bを参照して、パケットが送られてきたネットワークインタフェースに対応するノードIDと出力先ポートを検索する(ステップS121)。前記検索の結果、インタフェースDB102Bに該当するエントリが無い場合、処理を終了する(ステップS122のNo)。
【0068】
一方、前記検索の結果、該当するエントリが見つかった場合(ステップS122のYes)、コントローラ100Bは、前記受信パケットから入力パケット情報を抽出し、入力パケットDB109から該当入力パケット情報を持つエントリを検索する(ステップS123)。
【0069】
この時点で、ネットワークインタフェースから受信したパケットの受信ノードとその受信ポート、当該パケットを出力すべき出力ノードとそのポートが判明している。コントローラ100Bは、これらに基づいて、内部経路計算部112に、前記受信ノードと出力ノード間の経路の計算させる(ステップS124)。なお、前記計算の過程で転送不可能と判断された場合、コントローラ100Bは、処理を終了する(ステップS125のNo)。
【0070】
一方、転送可能と判断された場合、コントローラ100Bは、前記パケットを入力ノードから出力ノードに転送し、出力ノードの指定ポートから転送させるフローエントリを生成する(ステップS126)。
【0071】
次にコントローラ100Bは、ノード20A、20Bに、前記生成したフローエントリを設定し(ステップS127;FlowMod(Add)送信)、前記受信したパケットの転送を指示する(ステップS128;Packet−Out)。
【0072】
図12のノード20Aのポート#1から受信したパケットの情報を入力パケットDB109に登録するとともに、図14のインタフェースDB102Bに従って、同パケットをネットワークインタフェースtap0に入力した場合を考える。例えば、ネットワークインタフェースtap0にパケットを入力した結果として、ネットワークインタフェースtap3からパケットを受信している場合、コントローラ100Bは、インタフェースDB102を参照し、ネットワークインタフェースtap3に対応付けられている出力先ポートとして、ノード20Bのポート#50を特定する。さらに、コントローラ100Bは、入力パケットDB109を参照して、当該パケットがノード20Aのポート#1から受信したものであることを特定する。コントローラ100Bは、これらの情報に基づいて、ノード20Aに、前記パケットに後続するパケットをノード20Bに転送させるフローエントリを設定し、ノード20Bに、前記パケット後続するパケットをそのポート#50から転送させるフローエントリを設定する。
【0073】
その後、図12のノード20Aのポート#1から受信される後続パケットは、コントローラ100Bを介することなく、ノード20Bに転送され、ノード20Bのポート#50から出力される。
【0074】
以上説明したように、本実施形態によれば、低コストで、複数のノードを、あたかも一つの通信機器であるかのように振舞わせることが可能となる。また、この場合の構成も、仕様の通信装置と同等に動作するパケット処理部(このようなパケット処理部は、既存のルーティングプロトコルスタックを用いて容易に構成できる。)を用意するとともに、コントローラ側に、インタフェースDB102、入力パケットDB109、ユーザパケット処理部104B、出力パケット解析・フローエントリ生成部105B、内部トポロジ管理部111、内部経路計算部112に相当する機能とを持たせるだけあるので、低コストで実現することが可能である。
【0075】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態に示したノード、ポート、ネットワークインタフェースの数は、あくまで、本発明の理解を助けるために示した例であり、これらの数に限定されない。
【0076】
また例えば、上記した実施形態では、パケット処理部では、IPv4ルータ相当の動作を行うものとして説明したが、経路表等のパケット処理部内部の情報の監視を要しないので、ノード20、20A、20Bを、IPv6ルータはもちろんとして、各種のゲートウェイやパケット処理装置等と同様の動作を行わせることができる。
【0077】
また例えば、上記した実施形態では、コントローラ100、100A、100Bの外部に、パケット処理部や監視パケット送信部が接続されているものとして説明したが、図1に示したように、コントローラ10の内部にパケット処理部や監視パケット送信部が配置されている構成も採用可能である。
【0078】
また例えば、上記した実施形態では、コントローラ100、100A、100Bが一連の動作を行うものとして説明したが、ノード20、20A、20B側に上記コントローラ100、100A、100Bと同等の機能を追加し、ノード20、20A、20Bが直接エミュレータ部にパケットを入力し、その結果に基づいて、フローエントリを生成するようにすることも可能である。
【0079】
最後に、本発明の好ましい形態を要約する。
[第1の形態]
(上記第1の視点による通信システム参照)
[第2の形態]
第1の形態において、
前記制御装置は、
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を記憶する記憶部を備え、
前記ノードから処理規則の作成を要求されたパケットに後続するパケットを、前記パケット処理部から出力されたインタフェースに対応する前記ノードのインタフェースから出力させる処理規則を作成する通信システム。
[第3の形態]
第1または第2の形態において、
前記パケット処理部は、経路表を保持し、前記経路表を参照して転送先の決定を含むパケット処理を行う通信システム。
[第4の形態]
第1から第3いずれか一の形態において、
さらに、所定の間隔で、前記パケット処理部に対し、前記ノードに保持されている処理規則に対応する監視パケットを入力する監視パケット送信部と、
前記ノードに設定した処理規則を記憶する第2の記憶部と、を含み、
前記制御装置は、
前記監視パケットの入力により得られた前記パケット処理部のパケット処理結果の変化を検知して、前記ノードに保持されている処理規則を更新する通信システム。
[第5の形態]
第1から第4いずれか一の形態において、
前記制御装置は、
複数のノードにそれぞれ処理規則を設定することにより、前記複数のノードに、前記パケット処理部と同等のパケット処理を行わせる通信システム。
[第6の形態]
第5の形態において、
前記制御装置は、さらに、
前記ノードから受信したパケットの情報を記憶する第3の記憶部と、
前記複数のノード間の接続関係を記憶する内部トポロジ管理部と、
前記複数のノードの任意の2つのノード間の経路を計算する内部経路計算部とを備え、
前記複数のノードの一のノードから処理規則の作成を要求されたパケットを前記パケット処理部に入力し、前記入力により得られた前記パケット処理部のパケット処理結果に基づいて、前記一のノードから出力ノードまでの経路を計算し、該経路上のノードに設定する処理規則を作成する通信システム。
[第7の形態]
(上記第2の視点による制御装置参照)
[第8の形態]
第7の形態において、さらに、
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を記憶する記憶部を備え、
前記ノードから処理規則の作成を要求されたパケットに後続するパケットを、前記パケット処理部から出力されたインタフェースに対応する前記ノードのインタフェースから出力させる処理規則を作成する制御装置。
[第9の形態]
第7または第8の形態において、さらに、
前記パケット処理部として、経路表を保持し、前記経路表を参照して転送先の決定を含むパケット処理を行うパケット処理部を備える制御装置。
[第10の形態]
第7から第9いずれか一の形態において、
さらに、前記ノードに設定した処理規則を記憶する第2の記憶部を備え、
所定の間隔で前記パケット処理部に入力される監視パケットに対する前記パケット処理部のパケット処理結果の変化を検知して、前記ノードに保持されている処理規則を更新する制御装置。
[第11の形態]
第7から第9いずれか一の形態において、
さらに、前記ノードに設定した処理規則を記憶する第2の記憶部と、
所定の間隔で前記パケット処理部に対し、前記ノードに保持されている処理規則に対応する監視パケットを入力する監視パケット送信部を備え、
前記監視パケットの入力により得られた前記パケット処理部のパケット処理結果の変化を検知して、前記ノードに保持されている処理規則を更新する制御装置。
[第12の形態]
第7から第11いずれか一の形態において、
複数のノードにそれぞれ処理規則を設定することにより、前記複数のノードに、前記パケット処理部と同等のパケット処理を行わせる制御装置。
[第13の形態]
第12の形態において、
さらに、
前記ノードから受信したパケットの情報を記憶する第3の記憶部と、
前記複数のノード間の接続関係を記憶する内部トポロジ管理部と、
前記複数のノードの任意の2つのノード間の経路を計算する内部経路計算部とを備え、
前記複数のノードの一のノードから処理規則の作成を要求されたパケットを前記パケット処理部に入力し、前記入力により得られた前記パケット処理部のパケット処理結果に基づいて、前記一のノードから出力ノードまでの経路を計算し、該経路上のノードに設定する処理規則を作成する制御装置。
[第14の形態]
(上記第3の視点によるノード参照)
[第15の形態]
(上記第4の視点によるノードの制御方法参照)
[第16の形態]
(上記第5の視点によるプログラム参照)
【0080】
なお、上記第14〜第16の形態は、上記第1、第7の形態と同様に、派生する形態に展開することが可能である。
【0081】
お、引用した上記の特許文献、非特許文献の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲(クレーム)の枠内において、種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合せないし選択が可能である。
【符号の説明】
【0082】
10、100、100A、100B コントローラ
11 パケット処理部
12 フローエントリ作成部
13a〜13c ルーティング プロトコル スタック
14 経路表
15 転送処理部
20、20A、20B ノード
21 フローテーブル
22 (ノード側)パケット処理部
101 ネットワークインタフェース通信部
102、102B インタフェースDB
103 フローエントリDB
104、104B ユーザパケット処理部
105、105A、105B 出力パケット解析・フローエントリ生成部
106 フローエントリ管理部
107 制御メッセージ処理部
108 ノード通信部
109 入力パケットDB
110 監視パケット送信部
111 内部トポロジ管理部
112 内部経路計算部
1071 メッセージ解析・処理部
1072 メッセージ生成部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19