(57)【特許請求の範囲】
【請求項１】
ネットワーク内に設置され、前記ネットワーク内を流れる一連のパケットであるフローに対し、フローエントリ情報に基づきフロー制御を行うフロースイッチであって、
前記フローの宛先ＩＰアドレスごとに、当該フローへの処理内容として、当該フローのＭＡＣアドレスフィールドの値を、前記フロースイッチのうち、当該宛先ＩＰアドレスの外部装置に接続するエッジスイッチのＩＤであるスイッチインスタンスＩＤに書き換えることと、当該フローを、所定の転送経路へ転送することとを示した第１のフローエントリ情報、
前記フローに付されるスイッチインスタンスＩＤごとに、当該フローへの処理内容として、当該フローを、当該スイッチインスタンスＩＤに対応するエッジスイッチへの転送経路へ転送することを示した第２のフローエントリ情報、
および、
前記フローの宛先ＩＰアドレスごとに、当該フローへの処理内容として、当該フローを、当該宛先ＩＰアドレスの外部装置へ出力することを示した第３のフローエントリ情報、を記憶する記憶部と、
前記フローの送信および受信を行う入出力部と、
（１）前記入出力部経由で受信したフローが、自身のフロースイッチに接続される外部装置から、前記ネットワーク内の他のフロースイッチへのフローであるとき、当該フローの宛先ＩＰアドレスと前記第１のフローエントリ情報とを参照して、当該フローのＭＡＣアドレスフィールドの値を、前記第１のフローエントリ情報に示される当該フローのスイッチインスタンスＩＤに書き換え、当該フローを、前記第１のフローエントリ情報に示される当該フローの転送経路に従い転送し、
（２）前記受信したフローが、前記ネットワーク内の他のフロースイッチから、別の他のフロースイッチへのフローであるとき、当該フローのスイッチインスタンスＩＤと前記第２のフローエントリ情報とを参照して、当該スイッチインスタンスＩＤを持つフローの転送経路に従い、当該フローを転送し、
（３）前記受信したフローが、前記ネットワーク内の他のフロースイッチから、自身のフロースイッチに接続される外部装置へのフローであるとき、当該フローの宛先ＩＰアドレスと前記第３のフローエントリ情報とを参照して、当該フローを、前記入出力部経由で前記第３のフローエントリ情報に示される当該宛先ＩＰアドレスの外部装置へ出力する、フロー制御部とを備えることを特徴とするフロースイッチ。
【請求項２】
前記第１のフローエントリ情報は、
前記フローそれぞれの有効期限を示す情報を含み、
前記フロースイッチは、
前記第１のフローエントリ情報から、前記有効期限の過ぎたフローの情報を削除するフローエントリ更新部を備えることを特徴とする請求項１に記載のフロースイッチ。
【請求項３】
請求項２に記載のフロースイッチと、前記フロースイッチの制御を行うフロー制御装置とを含むフロー制御システムであって、
前記フロースイッチは、
前記外部装置から、前記第１のフローエントリ情報に示されていない宛先ＩＰアドレスのフローを受信したとき、当該宛先ＩＰアドレスのフローのフローエントリの取得要求を前記フロー制御装置へ送信するフローエントリ取得部を備え、
前記フローエントリ更新部は、
前記フロー制御装置から、前記取得要求に対する応答を受信したとき、前記受信した応答に示される当該宛先ＩＰアドレスのフローのフローエントリを、前記第１のフローエントリ情報に追加し、
前記フロー制御装置は、
前記フローの宛先ＩＰアドレスごとに、前記フロースイッチのうち、当該宛先ＩＰアドレスの外部装置に接続するエッジスイッチのＩＤであるスイッチインスタンスＩＤを示した外部装置情報と、当該エッジスイッチへの転送経路とを記憶する記憶部と、
前記フロースイッチから、前記フローエントリの取得要求を受け付けたとき、当該フローの宛先ＩＰアドレスおよび前記外部装置情報を参照して、前記外部装置情報に示される当該フローのスイッチインスタンスＩＤを含むフローエントリと、当該宛先ＩＰアドレスの外部装置に接続するエッジスイッチへの転送経路とを、前記取得要求の応答として、前記取得要求の送信元のフロースイッチへ送信するフローエントリ情報設定部とを備えることを特徴とするフロー制御システム。
【請求項４】
前記フロー制御装置は、
前記外部装置および前記ネットワークのフロースイッチ同士の接続状態を示すトポロジ情報を収集し、前記収集したトポロジ情報を用いて前記外部装置情報を更新し、前記収集したトポロジ情報に基づき、前記エッジスイッチ間の転送経路を再計算する情報更新部を備え、
前記フローエントリ情報設定部は、
前記収集したトポロジ情報に基づき、前記フロースイッチそれぞれの前記第１のフローエントリ情報、第２のフローエントリ情報および第３のフローエントリ情報における各フローのスイッチインスタンスＩＤを更新し、前記再計算した転送経路により、前記第１のフローエントリ情報および第２のフローエントリ情報それぞれの各フローの転送経路を更新することを特徴とする請求項３に記載のフロー制御システム。
【請求項５】
ネットワーク内を流れる一連のパケットであるフローに対するフロー制御方法であって、
前記フローの宛先ＩＰアドレスごとに、当該フローへの処理内容として、当該フローのＭＡＣアドレスフィールドの値を、フロースイッチのうち、当該宛先ＩＰアドレスの外部装置に接続するエッジスイッチのＩＤであるスイッチインスタンスＩＤに書き換えることと、当該フローを、所定の転送経路へ転送することとを示した第１のフローエントリ情報、前記フローに付されるスイッチインスタンスＩＤごとに、当該フローへの処理内容として、当該フローを、当該スイッチインスタンスＩＤに対応するエッジスイッチへの転送経路へ転送することを示した第２のフローエントリ情報、および、前記フローの宛先ＩＰアドレスごとに、当該フローへの処理内容として、当該フローを、当該宛先ＩＰアドレスの外部装置へ出力することを示した第３のフローエントリ情報、を記憶する記憶部を備える前記フロースイッチが、
（１）入出力部経由で受信したフローが、自身のフロースイッチに接続される外部装置から、前記ネットワーク内の他のフロースイッチへのフローであるとき、当該フローの宛先ＩＰアドレスと前記第１のフローエントリ情報とを参照して、当該フローのＭＡＣアドレスフィールドの値を、前記第１のフローエントリ情報に示される当該フローのスイッチインスタンスＩＤに書き換え、当該フローを、前記第１のフローエントリ情報に示される当該フローの転送経路に従い転送し、
（２）前記受信したフローが、前記ネットワーク内の他のフロースイッチから、別の他のフロースイッチへのフローであるとき、当該フローのスイッチインスタンスＩＤと前記第２のフローエントリ情報とを参照して、当該スイッチインスタンスＩＤを持つフローの転送経路に従い、当該フローを転送し、
（３）前記受信したフローが、前記ネットワーク内の他のフロースイッチから、自身のフロースイッチに接続される外部装置へのフローであるとき、当該フローの宛先ＩＰアドレスと前記第３のフローエントリ情報とを参照して、当該フローを、前記第３のフローエントリ情報に示される当該宛先ＩＰアドレスの外部装置へ出力することを特徴とするフロー制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークのフロー制御技術に関する。
【背景技術】
【０００２】
従来から、ネットワークのフローを制御するフロー制御システムがある。フローとは、宛先ＭＡＣアドレス（Media Access Control address）、ＩＰアドレスおよびポート番号の組み合わせにより定義される一連のパケットのことである。フロー制御システムは、パケットを送受信するフロースイッチと、フロースイッチを制御する制御サーバとで構成され、フロースイッチは、制御サーバから与えられたフローエントリを保持する。フローエントリには、受信したパケットを識別するためのレイヤ２（ＯＳＩ（Open Systems Interconnection）参照モデルにおけるレイヤ２）〜レイヤ４（同モデルにおけるレイヤ４）の情報と、この情報に合致するパケットに対する処理とが記述される。処理は、例えば、指定の物理ポートから送信する、ＭＡＣアドレスを書き換える、ＶＬＡＮ（Virtual LAN）タグを書き換える、パケットを廃棄する等がある。フロー制御システムの例としては、OpenFlowネットワークが挙げられる。OpenFlowネットワークにおいて、フロースイッチにはOpenFlowスイッチ、制御サーバにはOpenFlowコントローラを用いる。OpenFlowネットワークにおいてネットワークトポロジを探索する方式として、一般的にＬＬＤＰ（Link Layer Discovery Protocol、IEEE802.1abにより標準化）が用いられる。
【０００３】
また、コンピュータリソースの仮想化技術の進歩により、データセンター間で仮想マシン（Virtual Machine、ＶＭ）をリアルタイムで移動させる、データセンター間ＶＭマイグレーションが可能となった。データセンターが実現するサービス（一般的に、クラウドサービスと呼ばれることが多い）の利用者は、ネットワークを経由してＶＭ上で実行中のプログラムにアクセスする。ＶＭマイグレーション実行後も接続性を継続するためには、ＶＭマイグレーションに連動して、このＶＭへの経路を切り替える必要がある。
【０００４】
このような経路切替を実現するためにフロー制御システムを用いる場合を仮定する。ネットワーク経路の切替とＶＭマイグレーションとの連動を実現するためには、ＶＭマイグレーションを制御するサーバ（一般的にはハイパーバイザ等のＶＭ管理制御用プログラムをインストールした装置）とフロー制御装置との間で通信を行う。そして、フロー制御装置は、ＶＭを識別するＩＤ情報と、このＶＭの移行先のサーバの物理位置情報とを受信すると、これらの情報をもとにフロースイッチに対し、ＶＭの移行先のサーバへフローの経路切替を指示する。これにより、経路切替が可能となる（図１参照）。
【０００５】
ここで、フロースイッチのフローエントリに記述されるフロー識別情報は、マイグレーションを行うＶＭに対し一意なものとする必要がある。従って、各フロースイッチが保持するフローエントリ数は、ＶＭの数が多くなるほど多くなる。また、ＶＭを用いない場合であっても、多数の装置が設置される大規模ネットワーク等、多数のフローが流れるネットワークでは、各フロースイッチが保持するフローエントリ数も多くなる。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】The OpenFlow Consortium、[online]、[平成23年1月21日検索]、インターネット、<URL: http://www.openflowswitch.org/>
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、大規模なネットワークでは、図１に例示するように、ネットワークを構成するフロースイッチ間に階梯を設けることが一般的である。よって、上位階梯のフロースイッチは、下位階梯のフロースイッチより多数のフローを中継することになり、より多くのフローエントリを保持する必要が生じる。つまり、下位階梯のフロースイッチ１０１は、エッジスイッチであり、自身の配下のＶＭへのフロー識別をすればいいので、保持すべきフローエントリ数は比較的少ない。しかし、上位階梯のフロースイッチ１００（コアスイッチ）は、多拠点の全ＶＭのフロー識別をする必要があり、保持すべきフローエントリ数も多くなる。
【０００８】
フロースイッチは、フローエントリを高速検索するために、ＣＡＭ(Content Addressable Memory)等の検索回路を利用することが一般的である。しかし、ＣＡＭは、ＤＲＡＭ（Dynamic Random Access Memory）等の一般的なメモリ素子と比較すると高価であるため大容量化が難しい。このため、例えば、多数のＶＭが存在する大規模ネットワークに対応するフローエントリ数を、フロースイッチが保持することは困難である。そこで、本発明は、前記した課題を解決し、大規模ネットワークにおいて各フロースイッチの保持するフローエントリ数を低減することを目的とする。
【課題を解決するための手段】
【０００９】
前記した課題を解決するため、本発明は、ネットワーク内に設置され、ネットワーク内を流れる一連のパケットであるフローに対し、フローエントリ情報に基づきフロー制御を行うフロースイッチであって、記憶部に、以下の３種のフローエントリ情報を記憶することとした。すなわち、記憶部は、エッジＮＷ→コアＮＷのフローエントリとして、フローの宛先ＩＰアドレスごとに、当該フローへの処理内容として、当該フローのＭＡＣアドレスフィールドの値を、フロースイッチのうち、当該宛先ＩＰアドレスの外部装置に接続するエッジスイッチのＩＤであるスイッチインスタンスＩＤに書き換えることと、当該フローを、所定の転送経路へ転送することとを示した第１のフローエントリ情報を記憶する。また、コアＮＷ内のフローエントリとして、フローに付されるスイッチインスタンスＩＤごとに、当該フローへの処理内容として、当該フローを、当該スイッチインスタンスＩＤに対応するエッジスイッチへの転送経路へ転送することを示した第２のフローエントリ情報を記憶する。さらに、コアＮＷ→エッジＮＷのフローエントリとして、フローの宛先ＩＰアドレスごとに、当該フローへの処理内容として、当該フローを、当該宛先ＩＰアドレスの外部装置へ出力することを示した第３のフローエントリ情報を記憶する。そして、このフロースイッチは、（１）入出力部経由で受信したフローが、自身のフロースイッチに接続される外部装置から、ネットワーク内の他のフロースイッチへのフローであるとき、当該フローの宛先ＩＰアドレスと第１のフローエントリ情報とを参照して、当該フローのＭＡＣアドレスフィールドの値を、第１のフローエントリ情報に示される当該フローのスイッチインスタンスＩＤに書き換え、当該フローを、第１のフローエントリ情報に示される当該フローの転送経路に従い転送する。また、（２）受信したフローが、ネットワーク内の他のフロースイッチから、別の他のフロースイッチへのフローであるとき、当該フローのスイッチインスタンスＩＤと第２のフローエントリ情報とを参照して、当該スイッチインスタンスＩＤを持つフローの転送経路に従い、当該フローを転送する。さらに、（３）受信したフローが、ネットワーク内の他のフロースイッチから、自身のフロースイッチに接続される外部装置へのフローであるとき、当該フローの宛先ＩＰアドレスと第３のフローエントリ情報とを参照して、当該フローを、入出力部経由で第３のフローエントリ情報に示される当該宛先ＩＰアドレスの外部装置へ出力する。
【００１０】
このように、フロースイッチは、ネットワーク内において、フローの宛先ＩＰアドレスの外部装置に接続するエッジスイッチのＩＤであるスイッチインスタンスＩＤをフロー識別情報として用いてフロー制御を行う。つまり、まず、フローを受信したエッジスイッチは、このフローの宛先ＭＡＣアドレスを、フローの宛先ＩＰアドレスの外部装置に接続するエッジスイッチのＩＤ（スイッチインスタンスＩＤ）に書き換える。そして、ネットワーク内の各フロースイッチは、このフローのスイッチインスタンスＩＤとフローエントリ情報とを用いて、フローの宛先ＩＰアドレスの外部装置に接続するエッジスイッチまでフローを到達させる。そして、エッジスイッチは、受信したフローを、自身に接続されるいずれかの外部装置へ転送する。このように、ネットワーク内のフロースイッチは、フローの宛先となる外部装置（またはその外部装置に接続されるネットワーク）ごとのフローエントリを保持すればよくなる。よって、ネットワークの上位階梯のフロースイッチであっても、フローエントリを多数保持する必要がなくなる。
【００１１】
また、本発明のフロースイッチの保持する第１のフローエントリ情報は、フローそれぞれの有効期限を示す情報を含み、フロースイッチは、第１のフローエントリ情報から、有効期限の過ぎたフローの情報を削除するフローエントリ更新部を備える。
【００１２】
このようにすることで、ネットワーク外部からのフローを受信したフロースイッチ（エッジスイッチ）におけるフローエントリ情報（第１のフローエントリ情報）におけるフローエントリ数を低減できる。
【００１３】
また、本発明は、フロースイッチと、フロースイッチの制御を行うフロー制御装置とを含むフロー制御システムであって、フロースイッチは、外部装置から、第１のフローエントリ情報に示されていない宛先ＩＰアドレスのフローを受信したとき、当該宛先ＩＰアドレスのフローのフローエントリの取得要求をフロー制御装置へ送信するフローエントリ取得部を備え、フローエントリ更新部は、フロー制御装置から、取得要求に対する応答を受信したとき、受信した応答に示される当該宛先ＩＰアドレスのフローのフローエントリを、第１のフローエントリ情報に追加する。また、フロー制御装置は、フローの宛先ＩＰアドレスごとに、フロースイッチのうち、当該宛先ＩＰアドレスの外部装置に接続するエッジスイッチのＩＤであるスイッチインスタンスＩＤを示した外部装置情報と、当該エッジスイッチへの転送経路とを記憶する記憶部を備える。また、このフロー制御装置は、フロースイッチから、フローエントリの取得要求を受け付けたとき、当該フローの宛先ＩＰアドレスおよび外部装置情報を参照して、外部装置情報に示される当該フローのスイッチインスタンスＩＤを含むフローエントリと、当該宛先ＩＰアドレスの外部装置に接続するエッジスイッチへの転送経路とを、取得要求の応答として、取得要求の送信元のフロースイッチへ送信するフローエントリ情報設定部とを備える。
【００１４】
このようにすることで、ネットワーク外部からのフローを受信したフロースイッチ（エッジスイッチ）が、第１のフローエントリ情報に登録されていないフローを受信したときも、このフローのフロー制御を行うことができる。
【００１５】
また、本発明のフロー制御システムにおけるフロー制御装置は、外部装置およびネットワークのフロースイッチ同士の接続状態を示すトポロジ情報を収集し、収集したトポロジ情報を用いて外部装置情報を更新し、収集したトポロジ情報に基づき、エッジスイッチ間の転送経路を再計算する情報更新部を備える。また、フロー制御装置のフローエントリ情報設定部は、収集したトポロジ情報に基づき、フロースイッチそれぞれの第１のフローエントリ情報、第２のフローエントリ情報および第３のフローエントリ情報における各フローのスイッチインスタンスＩＤを更新し、再計算した転送経路により、第１のフローエントリ情報および第２のフローエントリ情報それぞれの各フローの転送経路を更新する。
【００１６】
このようにすることで、フロー制御装置は、外部装置やネットワーク内のフロースイッチの追加や削除があった場合でも、各フロースイッチのフローエントリ情報に、その追加や削除を反映させることができる。
【発明の効果】
【００１７】
本発明によれば、大規模ネットワークにおいて各フロースイッチの保持するフローエントリ数を低減することができる。
【図面の簡単な説明】
【００１８】
【図１】比較例となるフロー制御システムを示した図である。
【図２】本実施の形態のフロー制御システムを例示した図である。
【図３】本実施の形態のフロースイッチおよびフロー制御装置の構成を示した図である。
【図４】本実施の形態のフロー制御システムの処理手順例を示した図である。
【発明を実施するための形態】
【００１９】
＜概要＞
以下、本発明を実施するための形態（以下、実施の形態という）について説明する。まず、図２を用いて、本実施の形態のフロー制御システムの概要を説明する。
【００２０】
フロー制御システムは、フロー制御を行う複数のフロースイッチ１０（１０Ａ〜１０Ｈ）と、各フロースイッチ１０を制御するフロー制御装置２０と、フロースイッチ１０経由でデータの送受信を行う外部装置３０（３０Ａ〜３０Ｉ）とを備える。この外部装置３０は、ＶＭ（仮想化マシン）やルータ等である。例えば、サービス利用者端末４０は、ルータである外部装置３０およびフロースイッチ１０経由で、ＶＭである外部装置３０とデータの送受信を行い、ＶＭによるサービス提供を受ける。
【００２１】
なお、以下の説明において、フロースイッチ１０同士が接続するネットワークをコアネットワーク（コアＮＷ）と呼び、フロースイッチ１０と外部装置３０とが接続するネットワークをエッジネットワーク（エッジＮＷ）と呼ぶ。また、フロースイッチ１０のうち、外部装置３０と直接接続するフロースイッチ１０をエッジスイッチと呼び、それ以外のフロースイッチ１０をコアスイッチと呼ぶ。なお、コアＮＷを構成するフロースイッチ１０群は、図２に例示するように階梯を設けるものとする。
【００２２】
フロースイッチ１０はそれぞれ、フローエントリ情報１３０（後記する図３参照）を備え、このフローエントリ情報１３０に基づき、フロー制御を行う。フローエントリ情報１３０は、フローの識別情報（フロー識別情報）ごとに、当該フローへの処理内容を示したフローエントリの集合である。ここで、従来のフロースイッチは、フローを送受信する機器の組み合わせごとのフローエントリを保持していた。しかし、本実施の形態のフロースイッチ１０（コアスイッチ）は、宛先の外部装置３０と直接接続しているエッジスイッチのＩＤ（スイッチインスタンスＩＤと呼ぶ）ごとのフローエントリを保持する（図２の吹き出し２０１参照）。そして、フロースイッチ１０は、このフローエントリ情報１３０を用いて、フローの制御を行う。これにより、フロースイッチ１０が保持すべきフローエントリ数を低減できる。
【００２３】
ここで、フローが外部装置３０Ｉからフロースイッチ１０Ｈ経由でコアＮＷに流入し、宛先の外部装置３０Ｈ（宛先ＩＰアドレス「ＡＡ」）に到達するまでの流れを説明する。
【００２４】
事前準備として、図２のフロースイッチ１０のフローエントリ情報１３０には、以下の情報を設定しておく。この設定は、フロー制御装置２０からの指示に基づき行われる。
【００２５】
例えば、図２のフロースイッチ１０Ｈのフローエントリ情報１３０には、吹き出し２０２に示すように、外部装置３０Ｉ側から宛先ＩＰアドレス「ＡＡ」のフローを受信したとき、宛先ＭＡＣアドレスをスイッチンスタンスＩＤ「Ｄ」（外部装置３０Ｈに接続するフロースイッチ１０ＤのＩＤ）に書き換えるという処理内容を設定しておく。また、フロースイッチ１０Ａ（コアスイッチ）のフローエントリ情報１３０には、吹き出し２０１に示すように、スイッチンスタンスＩＤ「Ｄ」のフローを受信したときには、フロースイッチ１０Ｄへ到達する転送経路へ出力する（例えば、物理ポート番号「ＩＩ」から出力する）という処理内容を設定しておく。さらに、フロースイッチ１０Ｄのフローエントリ情報１３０には、吹き出し２０３に示すように、コアＮＷから宛先ＩＰアドレス「ＡＡ」のフローを受信したとき、宛先ＭＡＣアドレスを「３０Ｈ」（外部装置３０ＨのＭＡＣアドレス）に書き換えるという処理内容を設定しておく。
【００２６】
このようなフローエントリ情報１３０に従い、各フロースイッチ１０は、以下のようなフロー制御を行う。すなわち、フロースイッチ１０Ｈは、宛先ＩＰアドレス「ＡＡ」のフロー（パケット）を受信すると、このフローの宛先ＭＡＣアドレスを、スイッチンスタンスＩＤ「Ｄ」に書き換える。そして、コアＮＷ内のフロースイッチ１０は、このスイッチンスタンスＩＤ「Ｄ」をフロー識別情報として、フロー制御を行い、宛先の外部装置３０Ｈに接続するエッジスイッチ（フロースイッチ１０Ｄ）まで転送する。そして、このフロースイッチ１０Ｄは、受信したフローの宛先ＭＡＣアドレスを、このフローの宛先の外部装置３０ＨのＭＡＣアドレスに書き換えて、外部装置３０Ｈへ出力する。このようにすることで、フローは宛先の外部装置３０Ｈに到達する。
【００２７】
＜フロースイッチ＞
次に、図３を用いて、フロースイッチ１０およびフロー制御装置２０の構成を説明する。フロースイッチ１０は、フローエントリ情報１３０に従いフロー制御を行うスイッチであり、その機能は、入出力部１１、処理部１２および記憶部１３に分けられる。入出力部１１は、他のフロースイッチ１０との間でフローのパケットの送受信を行ったり、フロー制御装置２０から各種設定指示を受信したりするための通信インタフェースである。処理部１２は、記憶部１３のフローエントリ情報１３０を参照して、フロー制御を行う。記憶部１３は、フローエントリ情報１３０を記憶する。
【００２８】
処理部１２は、ＣＰＵ（Central Processing Unit）によるプログラム実行処理や、専用回路等により実現される。記憶部１３は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ等の記憶媒体から構成される。なお、フロースイッチ１０をプログラム実行処理により実現する場合、記憶部１３には、フロースイッチ１０の機能を実現するためのプログラムが格納される。
【００２９】
記憶部１３のフローエントリ情報１３０は、フロー識別情報ごとに、そのフロー識別情報のフローへの処理内容を示した情報である。このフローエントリ情報１３０は、エッジＮＷからコアＮＷへのフローに関する第１のフローエントリ情報１３１、コアＮＷ内のフローに関する第２のフローエントリ情報１３２およびコアＮＷからエッジＮＷへのフローに関する第３のフローエントリ情報１３３からなる。
【００３０】
＜第１のフローエントリ情報＞
第１のフローエントリ情報１３１は、フロー識別情報としてフローの宛先ＩＰアドレスを用いる。そして、この宛先ＩＰアドレスごとに、当該宛先ＩＰアドレスへのフローに対する処理内容として、当該フローの送信元ＭＡＣアドレスおよび宛先ＭＡＣアドレスのフィールドの値を、当該宛先ＩＰアドレスの外部装置３０に接続するエッジスイッチのＩＤ（スイッチンスタンスＩＤ）に書き換えることと、当該フローを、所定の転送経路へ転送することとが設定される。この第１のフローエントリ情報１３１のフローエントリの内容を、表１を用いて説明する。
【００３１】
【表１】
0005458038.tif 000002
【００３２】
表１に示すように、第１のフローエントリ情報１３１のフローエントリは、フロー識別情報と、そのフロー識別情報のフローに対する処理内容およびフローの有効期限に関する情報とを含む。フロー識別情報は、フロー（パケット）の宛先ＩＰアドレスフィールドの値を用いる。なお、この宛先ＩＰアドレスは、入力パケットの宛先ＩＰアドレスが外部装置３０のアドレスの場合、この外部装置３０のＩＰアドレスとなる。また、この宛先ＩＰアドレスが外部装置３０に接続するネットワークのネットワークアドレスの場合、当該ネットワークのネットワークアドレスとなる。なお、フロースイッチ１０が、ＶＬＡＮ（Virtual LAN）タグ番号を用いたフロー制御を行う場合、フロー識別情報として、宛先ＩＰアドレスフィールドの値とＶＬＡＮタグ番号フィールトの値との組み合わせを設定する。フローの処理内容としては、入力パケットの送信元ＭＡＣアドレスおよび宛先ＭＡＣアドレスのフィールドの値の書き換えと、この入力パケットの出力とが記載される。つまり、フロースイッチ１０は、入力パケットの送信元ＭＡＣアドレスおよび宛先ＭＡＣアドレスのフィールドの値を、所定のスイッチンスタンスＩＤ（例えば、宛先の外部装置３０に接続するエッジスイッチへのデータパスＩＤ（ＤＰＩＤ））の値に書き換える。そして、このパケットを、予め計算されたコアＮＷの転送経路（外部装置３０に接続するエッジスイッチへの経路）に従い出力する、という処理内容が記載される。さらに、フロータイムの有効期限については、有限の期間を設定しておく。つまり、フロースイッチ１０は、当該フローのパケットの無通信時間を監視し、無通信時間が所定の期間を超えると、このフローのフローエントリを削除するよう設定しておく。
【００３３】
第１のフローエントリ情報１３１のフローエントリの例を、表２に示す。表２に例示するフローエントリは、宛先ＩＰアドレス「ＡＡ」で、かつ、ＶＬＡＮタグ番号「ＢＢ」のフローのパケットに対し、このパケットの宛先ＭＡＣアドレスを、スイッチンスタンスＩＤ「Ｄ」に書き換えること。また、このパケットを物理ポート番号「ＣＣ」の物理ポート（スイッチインスタンスＩＤ「Ｄ」のエッジスイッチへの転送経路の物理ポート）から出力することを示す。さらに、このフローの有効期限は「ＸＸ」であること、つまり、当該フローのパケットの無通信時間が有効期限「ＸＸ」を超えたとき、このフローエントリを削除することを示す。このようにフローエントリの有効期限を設定するのは、第１のフローエントリ情報１３１のフローエントリ数が、増加し続けるのを防止するためである。フロー制御部１２２は、この第１のフローエントリ情報１３１を参照することで、エッジＮＷから流入したフローのＭＡＣアドレスフィールドの値を、このフローの宛先の外部装置３０に接続するエッジスイッチのスイッチンスタンスＩＤに書き換えることができる。つまり、コアＮＷ内において、スイッチインスタンスＩＤを用いたフロー制御を行うようにできる。なお、ここでは、スイッチインスタンスＩＤのｂｉｔ数が、宛先ＭＡＣアドレスフィールドのｂｉｔ数（４８ｂｉｔ）以下である場合を想定したが、スイッチインスタンスＩＤのｂｉｔ数が、４８ｂｉｔを超えるときには、送信元ＭＡＣアドレスフィールドの値も含めて書き換える。
【００３４】
【表２】
0005458038.tif 000003
【００３５】
＜第２のフローエントリ情報＞
第２のフローエントリ情報１３２は、コアＮＷ内のフローに関するフローエントリを示す情報である。この第２のフローエントリ情報１３２は、フロー識別情報としてフローに付されるスイッチンスタンスＩＤを用いる。そして、当該フローへの処理内容として、当該フローを、当該スイッチンスタンスＩＤに対応するエッジノードへの転送経路へ転送することが設定される。この第２のフローエントリ情報１３２のフローエントリの内容を、表３を用いて説明する。
【００３６】
【表３】
0005458038.tif 000004
【００３７】
表３に示すように、第２のフローエントリ情報のフローエントリは、フロー識別情報として、フロー（パケット）の送信元ＭＡＣアドレスおよび宛先ＭＡＣアドレスのフィールドの値を用いる。なお、この値は、各フローのスイッチンスタンスＩＤとなる。フローの処理内容としては、この入力パケットの出力が記載される。つまり、フロースイッチ１０は、予め計算されたコアＮＷの転送経路（スイッチンスタンスＩＤに対応するエッジスイッチへの経路）に従い出力する、という処理内容が記載される。なお、フロータイムの有効期限については、無期限としておいてよい。
【００３８】
第２のフローエントリ情報１３２のフローエントリの例を表４に示す。表４に例示するフローエントリは、宛先ＭＡＣアドレスが「Ｄ（スイッチンスタンスＩＤ）」のフローのパケットに対し、このパケットを物理ポート番号「ＩＩ」の物理ポート（スイッチインスタンスＩＤ「Ｄ」のエッジスイッチへの転送経路の物理ポート）から出力することを示す。フロー制御部１２２は、この第２のフローエントリ情報１３２を参照することで、コアＮＷ内のフローに対し、スイッチンスタンスＩＤを用いたフロー制御を行うことができる。
【００３９】
【表４】
0005458038.tif 000005
【００４０】
＜第３のフローエントリ情報＞
第３のフローエントリ情報１３３は、コアＮＷからエッジＮＷへ流出するフローに関するフローエントリを示す情報である。この第３のフローエントリ情報１３３は、フロー識別情報としてフローの宛先ＩＰアドレスを用いる。そして、当該フローへの処理内容として、当該フローを、当該宛先ＩＰアドレスの外部装置３０へ出力することが設定される。この第３のフローエントリ情報１３３のフローエントリの内容を、表５を用いて説明する。
【００４１】
【表５】
0005458038.tif 000006
【００４２】
第３のフローエントリ情報１３３は、フロー識別情報として、フロー（パケット）の宛先ＩＰアドレスフィールドの値を用いる。前記したとおり、この宛先ＩＰアドレスは、入力パケットの宛先ＩＰアドレスが外部装置３０のアドレスの場合、この外部装置３０のＩＰアドレスを用いる。また、この宛先ＩＰアドレスが外部装置３０に接続するネットワークのネットワークアドレスの場合、当該ネットワークのネットワークアドレスとなる。フロー識別情報は、宛先ＩＰアドレスフィールドの値とＶＬＡＮタグ番号フィールドの値との組み合わせを用いてもよい。
【００４３】
フローの処理内容としては、入力パケットの送信元ＭＡＣアドレスフィールドの値を、事前に設定された固定値に書き換え、また、宛先ＭＡＣアドレスのフィールドの値を、宛先ＩＰアドレスの外部装置３０のＭＡＣアドレスに書き換える。そして、このパケットを、宛先の外部装置３０の所定の物理ポート番号へ向けて出力する、という処理内容が設定される。なお、フロータイムの有効期限については、無期限としておいてよい。
【００４４】
第３のフローエントリ情報１３３のフローエントリの例を表６に示す。表６に例示するフローエントリは、宛先ＩＰアドレスが「ＡＡ」であり、かつ、ＶＬＡＮタグ番号が「ＢＢ」のパケットに対し、以下の処理を行うことを示す。すなわち、入力パケットの送信元ＭＡＣアドレスを予め事前に設定された「ＥＥ」に書き換え、宛先ＭＡＣアドレスを宛先となり外部装置３０のＭＡＣアドレス「ＹＹ」に書き換え、この外部装置３０の物理ポート「ＧＧ］から出力することを示す。フロー制御部１２２は、この第３のフローエントリ情報１３３を参照することで、コアＮＷから受信したパケットのＭＡＣアドレスの書き換えを行い、自身に接続される宛先の外部装置３０へ出力することができる。
【００４５】
【表６】
0005458038.tif 000007
【００４６】
なお、このフローエントリ情報１３０は、ネットワークのトポロジの変化やＶＭマイグレーション等が発生した場合、フロー制御装置２０からの指示に基づき更新される。
【００４７】
処理部１２は、フローエントリ更新部１２１、フロー制御部１２２およびフローエントリ取得部１２３を備える。
【００４８】
フローエントリ更新部１２１は、フローエントリ情報１３０の更新を行う。例えば、フロー制御装置２０からの指示に従い、第１のフローエントリ情報１３１における、宛先ＩＰアドレスに対するスイッチンスタンスＩＤを変更したり、新たなフローエントリを追加したりする。また、第１のフローエントリ情報１３１から、有効期限の過ぎたフローエントリを削除する。
【００４９】
フロー制御部１２２は、フローエントリ情報１３０を参照して、フロー制御を行う。具体的には、受信したフローが、（１）エッジＮＷからコアＮＷへのフローであるとき、当該フローの宛先ＩＰアドレスと第１のフローエントリ情報１３１とを参照して、フロー制御を行う。つまり、第１のフローエントリ情報１３１に従い、当該フローのＭＡＣアドレスフィールドの値を当該フローのスイッチンスタンスＩＤに書き換え、当該フローの転送経路へ転送する。また、受信したフローが、（２）コアＮＷ内で転送するフローであるとき、フロー制御部１２２は、当該フローのスイッチンスタンスＩＤと第２のフローエントリ情報１３２とを参照して、当該スイッチンスタンスＩＤを持つフローの転送経路に従い、当該フローを転送する。さらに、受信したフローが、（３）コアＮＷからエッジＮＷへのフローであるとき、当該フローの宛先ＩＰアドレスと第３のフローエントリ情報１３３とを参照して、当該フローの宛先ＭＡＣアドレスを書き換えた後、当該宛先ＩＰアドレスの外部装置３０へ出力する。
【００５０】
なお、受信したフローがエッジＮＷからコアＮＷへのフローか、コアＮＷ内で転送するフローか、コアＮＷからエッジＮＷへのフローであるかは、フロー制御部１２２が、受信したフローのパケットのヘッダ情報を参照することで判断する。
【００５１】
フローエントリ取得部１２３は、外部装置３０から、第１のフローエントリ情報１３１に示されていない宛先ＩＰアドレスのフローを受信したとき、当該宛先ＩＰアドレスのフローのフローエントリの取得要求をフロー制御装置２０へ送信する。そして、この要求に対する応答（宛先ＩＰアドレスのフローのスイッチンスタンスＩＤを含む）を受信すると、この応答をフローエントリ更新部１２１へ出力し、フローエントリ更新部１２１に、第１のフローエントリ情報１３１へのフローエントリ追加を依頼する。
【００５２】
このようなフロースイッチ１０によれば、エッジスイッチの保持するフローエントリ情報１３０のフローエントリ数の最大値は、（第１のフローエントリ情報１３１：フローの有効期限内に存在するフロー数）＋（第２のフローエントリ情報１３２：エッジスイッチの台数）＋（第３のフローエントリ情報１３３：自身のフロースイッチに接続する外部装置の台数）となる。また、コアスイッチの保持するフローエントリ情報１３０のフローエントリ数の最大値は、コアＮＷのエッジスイッチの台数となる。よって、コアＮＷ内の上位階梯のフロースイッチ１０であっても、宛先となる外部装置３０ごとのフローエントリを保持する必要がなくなるので、フローエントリ数を低減することができる。
【００５３】
＜フロー制御装置＞
フロー制御装置２０は、フロースイッチ１０を制御する装置であり、その機能は、入出力部２１、処理部２２および記憶部２３に分けられる。入出力部２１は、各フロースイッチ１０へ各種設定指示を送信したり、各フロースイッチ１０からトポロジ情報２３０の元となる情報を受信したりするためのインタフェースである。処理部２２は、主に、各フロースイッチ１０へ各種設定指示を送信する。また、記憶部２３は、外部装置情報２３１を含むトポロジ情報２３０を記憶する。
【００５４】
この処理部２２もＣＰＵによるプログラム実行処理や、専用回路等により実現される。さらに、記憶部２３は、ＲＡＭ、ＲＯＭ、ＨＤＤ、フラッシュメモリ等の記憶媒体から構成される。なお、フロー制御装置２０をプログラム実行処理により実現する場合、記憶部２３には、フロー制御装置２０の機能を実現するためのプログラムが格納される。
【００５５】
記憶部２３のトポロジ情報２３０は、各フロースイッチ１０や外部装置３０がどのようにリンク接続されているかを示した情報である。このトポロジ情報２３０は、例えば、各リンクのリンクコストの情報も含む。また、このトポロジ情報２３０は、外部装置情報２３１を含む。この外部装置情報２３１は、表７に例示するように、外部装置３０の接続物理位置（この外部装置３０に接続されるエッジスイッチのＩＤ（スイッチンスタンスＩＤ）および物理ポート番号）、この外部装置３０のＩＰアドレス、ＭＡＣアドレス等を示したものである。この外部装置情報２３１は、ＶＬＡＮタグ番号を含んでいてもよい。この外部装置情報２３１は、各フロースイッチ１０のフローエントリ情報１３０に用いられる。
【００５６】
【表７】
0005458038.tif 000008
【００５７】
なお、フロー制御装置２０は、外部装置３０の先にＩＰネットワークが存在する場合、そのＩＰネットワークのネットワークアドレスと、外部装置３０のＩＰアドレスとの関係を示す情報（図示省略）を記憶部２３に保持するものとする。そして、フロー制御装置２０のトポロジ情報更新部２２２（後記）は、この情報を参照することで、あるＩＰネットワークへのパケットについては、当該外部装置３０をネクストホップとして解決する。つまり、この外部装置情報２３１において、あるＩＰアドレスが、外部装置３０の先にあるＩＰネットワークのアドレスである場合、スイッチンスタンスＩＤとして、そのＩＰネットワークへの外部装置３０に接続するエッジスイッチのＩＤを設定しておく。
【００５８】
処理部２２は、フローエントリ情報設定部２２１と、トポロジ情報更新部（情報更新部）２２２とを備える。
【００５９】
フローエントリ情報設定部２２１は、フロースイッチ１０から、フローエントリの取得要求を受け付けたとき、当該フローのスイッチインスタンスＩＤを含むフローエントリを、この取得要求の送信元のフロースイッチ１０へ送信する。つまり、フローエントリ情報設定部２２１は、フロースイッチ１０からフローエントリの取得要求を受信すると、この取得要求に含まれる当該フローの宛先ＩＰアドレスと外部装置情報２３１とを参照して、このフローのスイッチンスタンスＩＤおよび物理ポート番号を検索する。そして、検索したスイッチンスタンスＩＤおよび物理ポート番号を含むフローエントリを作成し、フロースイッチ１０へ送信する。また、このフローエントリ情報設定部２２１は、ネットワークのトポロジ変化等によりトポロジ情報２３０が更新されたとき、更新されたトポロジ情報２３０に基づき、各フロースイッチ１０へフローエントリ情報１３０の更新指示を送信するものとする。
【００６０】
トポロジ情報更新部２２２は、外部装置３０およびフロースイッチ１０からトポロジ情報２３０の元となる情報を収集し、トポロジ情報２３０を更新する。トポロジ情報２３０の元となる情報は、例えば、ＬＬＤＰ（Link Layer Discovery Protocol、IEEE802.1abにより標準化）等を利用して収集する。そして、トポロジ情報更新部２２２は、トポロジ情報２３０を用いて、各フロースイッチ１０で用いる経路情報を作成し、記憶部２３の所定領域に記憶しておく。この経路情報は、トポロジ情報２３０に示されるネットワークコストや総リンク数等に基づき計算される最短経路とする。計算した各フローの経路情報は、フローエントリ情報設定部２２１が、各フロースイッチ１０へ送信する。
【００６１】
なお、このトポロジ情報更新部２２２は、所定期間ごとにトポロジ情報２３０の元となる情報を収集し、トポロジ情報２３０を更新するものとする。そして、フローエントリ情報設定部２２１は、更新されたトポロジ情報２３０に基づき、各フロースイッチ１０にフローエントリを送信する。よって、ネットワークトポロジの変化に追従し、各フロースイッチ１０のフローエントリ情報１３０を更新できる。なお、外部装置３０がＶＭである場合、この外部装置３０に関する外部装置情報２３１は、例えば、ハイパーバイザ等のＶＭ管理制御用プログラムにより取得する。これにより、ＶＭマイグレーションが発生した場合も、ＶＭマイグレーションに連動した外部装置情報２３１の更新を行うことができる。
【００６２】
＜処理手順＞
図４を用いて、図３のフロー制御システムの処理手順を説明する。ここでは、OpenFlowネットワークにおけるフロー制御を例として説明する。フロースイッチ１０には、ＯＦＳ（Open Flow Switch）を用い、フロー制御装置２０には、ＯＦＣ（Open Flow Controller）を用いる。なお、スイッチンスタンスＩＤとして、ＤＰＩＤ（データパスＩＤ。６４ｂｉｔ)を用いる。このＤＰＩＤは、OpenFlowにおいてＯＦＳの識別情報としてを用いられるＩＤである。このＤＰＩＤは、例えば、パケットの送信元ＭＡＣアドレスおよび宛先ＭＡＣアドレスのフィールドの９６ｂｉｔ中、先頭の６４ｂｉｔに格納し、残りの３２ｂｉｔには「０」を格納する。さらに、このフロースイッチ１０には、ＡＲＰ（Address Resolution Protocol）の代理機能を設ける。つまり、外部装置３０からのＡＲＰ要求を受信したフロースイッチ１０は、このＡＲＰ要求をフロー制御装置２０に転送し、フロー制御装置２０は、ＡＲＰ要求に対する応答を、送信元の外部装置３０に返す。
【００６３】
エッジスイッチ（ＤＰＩＤ＝Ｈ）に接続しているサービス利用者端末４０が、外部装置３０Ｉ（ルータ）経由で、外部装置３０Ｈ（ＶＭ）への通信を開始する場合の処理手順例を示す。
【００６４】
まず、Ｓ１０１において、フロー制御装置２０は、事前処理として以下の処理を行う。すなわち、フロー制御装置２０のトポロジ情報更新部２２２（図３参照）は、ＬＬＤＰによりopenflowネットワークトポロジの収集を行う。つまり、トポロジ情報更新部２２２は、各フロースイッチ１０および外部装置３０からトポロジ情報２３０の元となる情報を収集する。そして、トポロジ情報更新部２２２は、この収集した情報に基づきトポロジ情報２３０を更新し、更新したトポロジ情報２３０に基づき全ＤＰＩＤフルメッシュの最適経路を計算する。つまり、トポロジ情報更新部２２２は、コアＮＷ内の全エッジスイッチ同士の組み合わせについて、そのエッジスイッチ間の最適経路（最短経路）を計算する。そして、計算した最適経路を、フロー制御装置２０の記憶部２３の所定領域に記憶しておく。さらに、トポロジ情報更新部２２２は、ハイパーバイザと連携し、各ＶＭ（外部装置３０）の物理ポート番号、ＩＰアドレスおよびＭＡＣアドレスを収集する。そして、これらの情報を、外部装置情報２３１に書き込む。
【００６５】
フロー制御装置２０は、フローの事前設定を行う（Ｓ１０２）。つまり、フロー制御装置２０のフローエントリ情報設定部２２１は、制御対象となるフローのフロー識別情報と、そのフローに対しどのような処理を行うかの設定入力を受け付ける。また、フロー制御の有効期限の設定入力を受け付けてもよい。この入力を受け付けたフローエントリ情報設定部２２１は、この制御対象となるフローに関するフローエントリ（フロー識別情報、処理内容、有効期限）の設定指示を、各フロースイッチ１０へ送信する。つまり、フロースイッチ１０それぞれに対し、フローエントリ情報１３０に登録するフローエントリを送信する。
【００６６】
例えば、フロー制御装置２０は、エッジスイッチであるフロースイッチ１０Ｈ，１０Ｄに対し、コアＮＷ→エッジＮＷへのフロー定義のためのフローエントリを送信する（Ｓ１０３，Ｓ１０４）。そして、このフローエントリを受信したフロースイッチ１０Ｈ，１０Ｄのフローエントリ更新部１２１は、第３のフローエントリ情報１３３を設定する。なお、このフロー制御装置２０は、フロースイッチ１０Ｄにおける第３のフローエントリ情報１３３に、外部装置３０Ｈへのフローのパケットを受信したとき、このフローのパケットの宛先ＭＡＣアドレスを、外部装置３０ＨのＭＡＣアドレスに書き換えて、外部装置３０Ｈへ送信する、というフローエントリを設定するものとする。
【００６７】
また、フロー制御装置２０は、エッジスイッチを含む各フロースイッチ１０に対し、コアＮＷ内のフローの転送定義のためのフローエントリを送信する（Ｓ１０５）。そして、このフローエントリを受信した各フロースイッチ１０のフローエントリ更新部１２１は、第２のフローエントリ情報１３２を設定する。
【００６８】
以上のような処理を行った後、サービス利用者端末４０は、ＶＭ（外部装置３０Ｈ）への通信を開始する（Ｓ１）。まず、外部装置３０Ｉは、サービス利用者端末４０から、外部装置３０ＩのＩＰアドレスに対するＡＲＰ要求を受信すると（Ｓ２）、サービス利用者端末４０へ、このＡＲＰ要求に対する応答（ＡＲＰ応答）を返す（Ｓ３）。続いて、外部装置３０Ｉが、サービス利用者端末４０から、外部装置３０ＨのＩＰアドレスを含むＴＣＰ  ＳＹＮ（ＴＣＰ（Transmission Control Protocol）での接続開始時に送信するパケット）を受信すると（Ｓ４）、外部装置３０Ｉは、この外部装置３０ＨのＩＰアドレスに対するＡＲＰ要求を、フロースイッチ１０Ｈへ送信する（Ｓ５）。
【００６９】
フロースイッチ１０Ｈは、受信したＡＲＰ要求に示されるＩＰアドレスを宛先とするフローに関するフローエントリがないと判断すると、このＡＲＰ要求をフロー制御装置２０へ送信する（Ｓ６）。このＡＲＰ要求を受信したフロー制御装置２０は、まず、フロー制御装置２０（ＯＦＣ）のＭＡＣアドレスを代理応答する。つまり、フロー制御装置２０は、フロースイッチ１０Ｈへ、フロー制御装置２０のＭＡＣアドレスを含むＡＲＰ応答を送信する（Ｓ１１）。そして、フロースイッチ１０は、このＡＲＰ応答を外部装置３０Ｉへ転送する（Ｓ１２）。
【００７０】
次に、外部装置３０Ｉは、Ｓ４で受信したＴＣＰ  ＳＹＮを、フロースイッチ１０Ｈへ送信する（Ｓ１３）。このＴＣＰ  ＳＹＮには、送信元ＭＡＣアドレス＝ルータ（外部装置３０Ｉ）、宛先ＭＡＣアドレス＝ＯＦＣ（フロー制御装置２０）を設定する。
【００７１】
フロースイッチ１０Ｈは、受信したＴＣＰ  ＳＹＮをフロー制御装置２０へ送信し（Ｓ１４）。フロー制御装置２０のフローエントリ情報設定部２２１は、このＴＣＰ  ＳＹＮに含まれるＩＰアドレス（宛先ＩＰアドレス）をキーに、外部装置情報２３１を検索し、ＶＭ（外部装置３０Ｈ）の収容ＯＦＳ（フロースイッチ１０）がＤＰＩＤ（Ｄ）のフロースイッチ１０Ｄであることを割り出す（Ｓ１５）。つまり、外部装置３０Ｈに接続するエッジスイッチが、ＤＰＩＤ（Ｄ）のフロースイッチ１０Ｄであることを割り出す。そして、フロー制御装置２０は、フロースイッチ１０Ｈに対し、このＴＣＰ  ＳＹＮにおける送信元ＭＡＣアドレスおよび宛先ＭＡＣアドレスのフィールド（全長９６ｂｉｔ）の値をＤＰＩＤ（Ｄ）に書き換え、このフロースイッチ１０Ｄへの最適経路へのネクストホップであるＤＰＩＤ（Ａ）のフロースイッチ１０Ａへ送信するよう指示する（Ｓ１６：Ｆｌｏｗ＿ｍｏｄ（ＭＡＣアドレスをＤＰＩＤ（Ｄ）に書き換えて、ＤＰＩＤ（Ａ）に送信））。このような指示を受信したフロースイッチ１０Ｈは、外部装置３０Ｈを宛先とするフローについては、送信元ＭＡＣアドレスおよび宛先ＭＡＣアドレスのフィールドの値をＤＰＩＤ（Ｄ）に書き換えて、フロースイッチ１０Ａへ送信（出力）する、というフローエントリを第１のフローエントリ情報１３１に追加する。
【００７２】
Ｓ１６の後、フロースイッチ１０Ｈは、Ｓ１３で受信したＴＣＰ  ＳＹＮの送信元ＭＡＣアドレスおよび宛先ＭＡＣアドレスのフィールド（全長９６ｂｉｔ）の値をＤＰＩＤ（Ａ）に書き換え、フロースイッチ１０Ａへ送信する。そして、フロースイッチ１０Ａ，１０Ｂは、ＴＣＰ  ＳＹＮの宛先ＭＡＣアドレスフィールドに記載されたＤＰＩＤ（Ａ）と、自身の保持する第２のフローエントリ情報１３２とを参照して、ＴＣＰ  ＳＹＮの転送処理を行い、このＴＣＰ  ＳＹＮは、フロースイッチ１０Ｄに到達する（Ｓ１７）。
【００７３】
フロースイッチ１０Ｄは、第３のフローエントリ情報１３３に基づき、Ｓ１７で転送されたＴＣＰ  ＳＹＮの送信元ＭＡＣアドレスに、例えば、ＯＦＣ（フロー制御装置２０）のＭＡＣアドレスを設定し、宛先ＭＡＣアドレスに外部装置３０ＨのＭＡＣアドレスを設定して、外部装置３０Ｈへ送信する（Ｓ１８）。このようにすることで、外部装置３０ＩからのＴＣＰ  ＳＹＮは、外部装置３０Ｈに到達し、サービス利用者端末４０は、外部装置３０Ｉ経由で外部装置３０Ｈとの間でデータ送受信が可能になる。
【００７４】
以上説明したフロー制御システムによれば、フロースイッチ１０の保持するフローエントリ数を低減することができる。特に、各エッジスイッチの配下に多数の外部装置３０が接続される場合、コアＮＷ内のコアスイッチの保持するフローエントリ数は最大でコアＮＷ内のエッジスイッチの台数とすればよいので、フローエントリ数を大幅に低減できる。
【００７５】
なお、前記した実施の形態において、スイッチンスタンスＩＤとして、ＤＰＩＤを用いる場合を例に説明したが、フロースイッチ１０が識別できれば他のＩＤを用いるようにしてもよい。
【符号の説明】
【００７６】
１０    フロースイッチ
１１，２１    入出力部
１２，２２    処理部
１３，２３    記憶部
２０    フロー制御装置
３０    外部装置
４０    サービス利用者端末
１２１  フローエントリ更新部
１２２  フロー制御部
１２３  フローエントリ取得部
１３０  フローエントリ情報
１３１  第１のフローエントリ情報
１３２  第２のフローエントリ情報
１３３  第３のフローエントリ情報
２２１  フローエントリ情報設定部
２２２  トポロジ情報更新部
２３０  トポロジ情報
２３１  外部装置情報
【図１】
0005458038.tif 000009
【図２】
0005458038.tif 000010
【図３】
0005458038.tif 000011
【図４】
0005458038.tif 000012