(57)【特許請求の範囲】
【請求項１】
パケットの宛先ＭＡＣアドレスと宛先ＩＰアドレスとの組み合わせによって経路制御を行うフロースイッチを備えるフロー制御ネットワークと、ＩＰネットワークに接続し、それぞれ同じ論理ＩＰアドレスが設定され、それぞれ別々のＩＰアドレスを物理ＩＦ（インタフェース）に設定された複数のレイヤ３装置と、前記論理ＩＰアドレスのパケットの転送先として、前記論理ＩＰアドレスのパケットを受信したとき、前記論理ＩＰアドレスを宛先ＩＰアドレスとし、前記複数のレイヤ３装置のうち所定のレイヤ３装置のＭＡＣアドレスを宛先ＭＡＣアドレスとしたパケットを、前記フロー制御ネットワーク経由で送信する隣接ルータと、前記複数のレイヤ３装置と前記フロースイッチとの間を接続するレイヤ２スイッチとを備える通信システムであって、
前記フロースイッチは、
前記論理ＩＰアドレスを宛先とするパケットについて、そのパケットのレイヤ２、レイヤ３およびレイヤ４の少なくともいずれかのレイヤの情報により定義されるパケット種別ごとに、当該パケット種別のパケットの宛先ＭＡＣアドレスを変更すべきか否かと、当該宛先ＭＡＣアドレスの変更が必要なとき、前記変更後の宛先ＭＡＣアドレスとを示したフローエントリを記憶するフローテーブルを備える記憶部と、前記パケットの入力を受け付けたとき、前記入力されたパケットの種別と、前記フローテーブルとを参照して、前記入力されたパケットの宛先ＭＡＣアドレスの変更が必要であれば、当該宛先ＭＡＣアドレスを、前記フローテーブルに示される宛先ＭＡＣアドレスに変更し、前記レイヤ２スイッチへ出力するパケット転送部と、前記フローテーブルに、前記入力されたパケットの種別に関するフローエントリがなかったとき、前記入力されたパケットに関するフローエントリを、制御サーバから取得し、前記フローテーブルに追加するフローエントリ追加部とを備え、
前記制御サーバは、
前記フローエントリを記憶する記憶部と、前記フロースイッチから、前記入力されたパケットの宛先ＩＰアドレスを含むフローエントリの取得要求を受信した場合において、前記記憶部のフローエントリを参照して、前記取得要求の対象のフローエントリが、前記パケットの宛先ＭＡＣアドレスの変更指示を含むものであるとき、前記レイヤ３装置の物理ＩＦのＩＰアドレス宛に、当該宛先ＩＰアドレスに対応するＭＡＣアドレスを問い合わせるＡＲＰリクエストを送信するＡＲＰリクエスト処理部と、前記取得要求の対象のフローエントリを、前記フロースイッチへ送信するフローエントリ送信部とを備え、
前記レイヤ２スイッチは、
前記パケットの宛先ＭＡＣアドレスごとに、当該宛先ＭＡＣアドレスのパケットの出力に用いるポートのポート番号を示したＭＡＣアドレスエントリを記憶するＭＡＣアドレステーブルを記憶する記憶部と、前記レイヤ３装置からＡＲＰリクエストの応答パケットを受信したとき、この応答パケットを受信したポートのポート番号と、前記応答パケットの送信元のレイヤ３装置のＭＡＣアドレスとを対応付けた前記ＭＡＣアドレスエントリを作成し、前記ＭＡＣアドレステーブルに追加するＭＡＣアドレスエントリ追加部と、前記パケットの入力を受け付けたとき、前記入力されたパケットの前記宛先ＭＡＣアドレスと、前記ＭＡＣアドレステーブルとを参照して、前記入力されたパケットの出力ポートを選択し、前記選択した出力ポート経由で、前記パケットを前記宛先ＭＡＣアドレスのレイヤ３装置へ送信するパケット転送部とを備えることを特徴とする通信システム。
【請求項２】
前記フロースイッチは、
前記パケット転送部において、前記パケットを受信してから所定のタイムアウト時間が経過しても、前記パケットと同じ種別のパケットを受信しなかったとき、当該種別のパケットに関するフローエントリを、前記フローテーブルから削除するフローエントリ削除部を備え、
前記レイヤ２スイッチは、
前記パケット転送部において、前記パケットを受信してから所定のエージングタイムが経過しても、前記パケットと同じ宛先ＭＡＣアドレスのパケットを受信しなかったとき、前記ＭＡＣアドレステーブルから当該ＭＡＣアドレスのパケットのエントリを削除するＭＡＣアドレスエントリ削除部を備え、
前記タイムアウト時間は、前記エージングタイムよりも短いことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記ＡＲＰリクエスト処理部は、
前記ＡＲＰリクエストを送信する処理に代えて、
当該フロースイッチに対し、前記ＡＲＰリクエストを送信するよう指示し、
前記フロースイッチは、
前記制御サーバからの指示に基づき前記ＡＲＰリクエストを送信するＡＲＰリクエスト処理部を備えることを特徴とする請求項１に記載の通信システム。
【請求項４】
パケットの宛先ＭＡＣアドレスと宛先ＩＰアドレスとの組み合わせによって経路制御を行うフロースイッチを備えるフロー制御ネットワークと、ＩＰネットワークに接続し、それぞれ同じ論理ＩＰアドレスが設定された複数のレイヤ３装置と、前記論理ＩＰアドレスのパケットの転送先として、前記論理ＩＰアドレスのパケットを受信したとき、前記論理ＩＰアドレスを宛先ＩＰアドレスとし、前記複数のレイヤ３装置のうち所定のレイヤ３装置のＭＡＣアドレスを宛先ＭＡＣアドレスとしたパケットを、前記フロー制御ネットワーク経由で送信する隣接ルータと、前記複数のレイヤ３装置と前記フロースイッチとの間を接続するレイヤ２スイッチとを備える通信システムにおいて、前記フロースイッチからの要求に応じてフローエントリを送信する制御サーバであって、
前記パケットのレイヤ２、レイヤ３およびレイヤ４の少なくともいずれかのレイヤの情報により定義されるパケット種別ごとに、当該パケット種別のパケットの宛先ＭＡＣアドレスを変更すべきか否かと、当該宛先ＭＡＣアドレスの変更が必要なとき、前記変更後の宛先ＭＡＣアドレスとを示した前記フローエントリを記憶する記憶部と、
前記フロースイッチから、前記隣接ルータが送信したパケットの宛先ＩＰアドレスを含むフローエントリの取得要求を受信した場合において、前記記憶部のフローエントリを参照して、前記取得要求の対象のフローエントリが、前記パケットの宛先ＭＡＣアドレスの変更指示を含むものであるとき、前記宛先ＩＰアドレスのレイヤ３装置宛に、当該宛先ＩＰアドレスに対応するＭＡＣアドレスを問い合わせるＡＲＰリクエストを送信するＡＲＰリクエスト処理部と、
前記取得要求の対象のフローエントリを、前記フロースイッチへ送信するフローエントリ送信部とを備えることを特徴とする制御サーバ。
【請求項５】
パケットの宛先ＭＡＣアドレスと宛先ＩＰアドレスとの組み合わせによって経路制御を行うフロースイッチを備えるフロー制御ネットワークと、ＩＰネットワークに接続し、それぞれ同じ論理ＩＰアドレスが設定され、それぞれ別々のＩＰアドレスを物理ＩＦに設定された複数のレイヤ３装置と、前記論理ＩＰアドレスのパケットの転送先として、前記論理ＩＰアドレスのパケットを受信したとき、前記論理ＩＰアドレスを宛先ＩＰアドレスとし、前記複数のレイヤ３装置のうち所定のレイヤ３装置のＭＡＣアドレスを宛先ＭＡＣアドレスとしたパケットを、前記フロー制御ネットワーク経由で送信する隣接ルータと、前記複数のレイヤ３装置と前記フロースイッチとの間を接続するレイヤ２スイッチとを備える通信システムにおいて、前記フロースイッチからの要求に応じてフローエントリを送信する制御サーバが、
前記パケットのレイヤ２、レイヤ３およびレイヤ４の少なくともいずれかのレイヤの情報により定義されるパケット種別ごとに、当該パケット種別のパケットの宛先ＭＡＣアドレスを変更すべきか否かと、当該宛先ＭＡＣアドレスの変更が必要なとき、前記変更後の宛先ＭＡＣアドレスとを示した前記フローエントリを記憶する記憶部を備えており、
前記フロースイッチから、前記隣接ルータが送信したパケットの宛先ＩＰアドレスを含む前記フローエントリの取得要求を受信した場合において、前記記憶部のフローエントリを参照して、このフローエントリが、前記パケットの宛先ＭＡＣアドレスの変更指示を含むものであるとき、前記取得要求に示される前記パケットの宛先ＩＰアドレスのレイヤ３装置宛に、当該宛先ＩＰアドレスに対応するＭＡＣアドレスを問い合わせるＡＲＰリクエストを送信するステップと、
前記取得要求の対象のフローエントリを、前記フロースイッチへ送信するステップとを実行することを特徴とするフロー制御方法。
【請求項６】
請求項５に記載のフロー制御方法を、コンピュータである前記制御サーバに実行させるためのフロー制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力物理ポート情報およびパケットのヘッダ情報のうちレイヤ２、レイヤ３およびレイヤ４の情報をもとにパケットの送受信を制御するフロー制御ネットワークと、ＩＰ（Internet Protocol）ネットワークをレイヤ２スイッチで接続する技術に関する。
【背景技術】
【０００２】
従来のネットワーク制御は、主にＩＰアドレスのルーティングによって行われてきたが、品質の確保やネットワークの利用率向上のため、フロー制御ネットワークが提案されている。このフロー制御ネットワークは、ＭＡＣ（Media Access Control）アドレスやＩＰアドレス、ポート番号等の組み合わせによって定義されるフロー単位での経路制御を実現するネットワークである。
【０００３】
このフロー制御ネットワークを含む通信システムを、図１に例示する。図１に示すように、フロー制御ネットワークは、パケットを送受信するフロースイッチ２００（２００Ａ，２００Ｂ）と、フロースイッチ２００を制御する制御サーバ１０とを備える。フロースイッチ２００は、制御サーバ１０により与えられたフローエントリを保持するフローテーブルを備える。フローエントリには受信したパケットの種別を識別するための入力物理ポート、Ｌ２（レイヤ２：データリンク層）、Ｌ３（レイヤ３：ネットワーク層）およびＬ４（レイヤ４：トランスポート層）の情報と、当該種別のパケットに対する処理（アクション）が記述される。ここでの処理は、例えば、当該種別のパケットを指定の物理ポートから送信することや、当該種別のパケットにＶＬＡＮ（Virtual Local Area Network)タグを付与することや、宛先ＭＡＣアドレスを変更すること等である。なお、フロースイッチ２００は、自身のフローテーブルにフローエントリの登録のないパケットを受信すると、制御サーバ１０にフローエントリの問い合わせを行う。これに対して制御サーバ１０は、当該パケットに関するフローエントリを返す。このようなフロー制御ネットワークの例として、OpenFlowネットワークが挙げられる（非特許文献１参照）。このOpenFlowネットワークにおいて、フロースイッチ２００にはOpenFlowスイッチ、制御サーバ１０にはコントローラが用いられる。
【０００４】
このような通信システムにおける、障害対策や負荷分散を目的として、ユーザネットワークに接続されるサーバやゲートウェイ装置(ＧＷ装置)等のＬ３装置を複数台設置して冗長化することが行われる。フロー制御ネットワークでは、パケットの宛先ＭＡＣアドレスの書き換えや、パケットの出力ポートの指定が可能であり、この技術を用いることで、同じＩＰアドレスを持つＬ３装置４００の冗長化が実現可能である。以下に実現方法を示す。
【０００５】
例えば、フロースイッチ２００に複数台のＬ３装置４００（４００Ａ，４００Ｂ，４００Ｃ）を接続する。このとき、Ｌ３装置４００すべての論理インタフェースに同じＩＰアドレスを設定する。また、各Ｌ３装置４００の物理インタフェースにはそれぞれ異なるＩＰアドレスを設定する。ここで、フロー制御ネットワークの隣接ルータであるＬ３装置４００Ｄには、論理インタフェースのＩＰアドレス宛のパケットを、Ｌ３装置４００Ａ（代表Ｌ３装置）の物理インタフェースのＩＰアドレスへ送信する経路情報が広告される。
【０００６】
例えば、端末５００は、論理インタフェースのＩＰアドレス宛のパケットを送信する。このパケットを受信したＬ３装置４００Ｄは、自身のルーティングテーブル（図示省略）により、Ｌ３装置４００Ａの論理インタフェースのＩＰアドレス宛のパケットを、Ｌ３装置４００Ａの物理インタフェースのＩＰアドレス宛に送信する。このとき、Ｌ３装置４００Ｄは、Ｌ３装置４００Ａの物理インタフェースのＩＰアドレスに対してＡＲＰ解決（ＡＲＰ（Address Resolution Protocol）によるＭＡＣアドレスの解決）を行い、Ｌ３装置４００Ａにパケットを送信する。なお、このパケットの宛先ＩＰアドレスには、Ｌ３装置４００Ａの論理インタフェースのＩＰアドレスが設定され、宛先ＭＡＣアドレスには、Ｌ３装置４００ＡのＭＡＣアドレスが設定される。
【０００７】
ここで、Ｌ３装置４００Ｄから転送されたパケットを受信したフロースイッチ２００は、障害対策や負荷分散の内容に応じて、パケットの宛先ＭＡＣアドレスをＬ３装置４００Ａ（代表Ｌ３装置）のＭＡＣアドレス以外のアドレスに書き換えることができる。これにより、障害対策や負荷分散の内容に応じて、代表Ｌ３装置以外のＬ３装置４００（例えば、Ｌ３装置４００Ｂ，４００Ｃ）経由で、ユーザネットワーク（ＩＰネットワーク）へパケットを到達させることができる。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】OpenFlow、[online]、[平成22年7月1日検索]、インターネット、<URL:http://www.openflowswitch.org/documents/openflow-spec-v1.0.0.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ここで、図２に例示するように、Ｌ３装置４００に接続するポート数の集約を目的として、フロースイッチ２００とＬ３装置４００との間に、Ｌ２スイッチ３００（フロー制御を行わない一般的なＬ２スイッチ）を接続する構成が考えられる。この構成において、Ｌ３装置４００Ｂ，４００ＣからＬ２スイッチ３００へ、パケットが所定時間転送されなかった場合、Ｌ２スイッチ３００のＭＡＣアドレステーブルには代表Ｌ３装置以外のＭＡＣアドレスのエントリが存在しないことになる。従って、フロースイッチ２００で、パケットのＭＡＣアドレスを書き換えを行った場合、Ｌ２スイッチ３００においてどのポートから送信すればよいか解決できず、フラッディング（受信したポート以外のすべてのポートにパケットを転送すること）が発生するおそれがある。例えば、図２に示すシステムにおいてＬ２スイッチ３００のＭＡＣアドレステーブルには、宛先ＭＡＣアドレス「Ｂ」のパケットについて、ポート「２」から出力するというエントリが登録されてない。よって、Ｌ２スイッチ３００は、宛先ＭＡＣアドレス「Ｂ」のパケットを受信すると、フラッディングが発生するおそれがある。そこで、本発明は、このような問題を解決し、フロー制御ネットワークのフロースイッチのポート数集約のため、Ｌ２スイッチ経由でＩＰネットワークと接続する場合において、フロースイッチがパケットの宛先ＭＡＣアドレスを変更したときでも、Ｌ２スイッチにおいてフラッディングが発生しないようにすることを目的とする。
【課題を解決するための手段】
【００１０】
前記した課題を解決するため、本発明は、パケットの宛先ＭＡＣアドレスと宛先ＩＰアドレスとの組み合わせによって経路制御を行うフロースイッチを備えるフロー制御ネットワークと、ＩＰネットワークに接続し、それぞれ同じ論理ＩＰアドレスが設定され、それぞれ別々のＩＰアドレスを物理ＩＦ（インタフェース）に設定された複数のレイヤ３装置と、論理ＩＰアドレスのパケットの転送先として、論理ＩＰアドレスのパケットを受信したとき、論理ＩＰアドレスを宛先ＩＰアドレスとし、複数のレイヤ３装置のうち所定のレイヤ３装置のＭＡＣアドレスを宛先ＭＡＣアドレスとしたパケットを、フロー制御ネットワーク経由で送信する隣接ルータと、複数のレイヤ３装置とフロースイッチとの間を接続するレイヤ２スイッチとを備える通信システムである。この通信システムのフロースイッチは記憶部に、論理ＩＰアドレスを宛先とするパケットについて、そのパケットのレイヤ２、レイヤ３およびレイヤ４の少なくともいずれかのレイヤの情報により定義されるパケット種別ごとに、当該パケット種別のパケットの宛先ＭＡＣアドレスを変更すべきか否かと、当該宛先ＭＡＣアドレスの変更が必要なとき、変更後の宛先ＭＡＣアドレスとを示したフローエントリを記憶するフローテーブルを備える。また、フロースイッチは、パケットの入力を受け付けたとき、入力されたパケットの種別と、フローテーブルとを参照して、入力されたパケットの宛先ＭＡＣアドレスの変更が必要であれば、当該宛先ＭＡＣアドレスを、フローテーブルに示される宛先ＭＡＣアドレスに変更し、レイヤ２スイッチへ出力するパケット転送部を備える。また、フロースイッチは、フローテーブルに、入力されたパケットの種別に関するフローエントリがなかったとき、入力されたパケットに関するフローエントリを、制御サーバから取得し、フローテーブルに追加するフローエントリ追加部とを備える。さらに、この通信システムの制御サーバは、記憶部にフローエントリを記憶する。そして、制御サーバのフロースイッチから、入力されたパケットの宛先ＩＰアドレスを含むフローエントリの取得要求を受信した場合において、記憶部のフローエントリを参照して、取得要求の対象のフローエントリが、パケットの宛先ＭＡＣアドレスの変更指示を含むものであるとき、レイヤ３装置の物理ＩＦのＩＰアドレス宛に、当該宛先ＩＰアドレスに対応するＭＡＣアドレスを問い合わせるＡＲＰリクエストを送信するＡＲＰリクエスト処理部と、取得要求の対象のフローエントリを、フロースイッチへ送信するフローエントリ送信部を備える。また、この通信システムのレイヤ２スイッチは記憶部に、パケットの宛先ＭＡＣアドレスごとに、当該宛先ＭＡＣアドレスのパケットの出力に用いるポートのポート番号を示したＭＡＣアドレスエントリを記憶するＭＡＣアドレステーブルを備える。このレイヤ２スイッチは、レイヤ３装置からＡＲＰリクエストの応答パケットを受信したとき、この応答パケットを受信したポートのポート番号と、応答パケットの送信元のレイヤ３装置のＭＡＣアドレスとを対応付けたＭＡＣアドレスエントリを作成し、ＭＡＣアドレステーブルに追加するＭＡＣアドレスエントリ追加部を備える。そして、このレイヤ２スイッチは、パケットの入力を受け付けたとき、入力されたパケットの宛先ＭＡＣアドレスと、ＭＡＣアドレステーブルとを参照して、入力されたパケットの出力ポートを選択し、選択した出力ポート経由で、パケットを宛先ＭＡＣアドレスのレイヤ３装置へ送信するパケット転送部を備える構成とした。
【００１１】
また、本発明は、前記した通信システムにおける制御サーバが、フロースイッチから、隣接ルータが送信したパケットの宛先ＩＰアドレスを含むフローエントリの取得要求を受信した場合において、記憶部のフローエントリを参照して、このフローエントリが、パケットの宛先ＭＡＣアドレスの変更指示を含むものであるとき、取得要求に示されるパケットの宛先ＩＰアドレスのレイヤ３装置宛に、当該宛先ＩＰアドレスに対応するＭＡＣアドレスを問い合わせるＡＲＰリクエストを送信するステップと、取得要求の対象のフローエントリを、フロースイッチへ送信するステップとを実行するフロー制御方法とした。
【００１２】
このように、フロー制御ネットワークの制御サーバは、フロースイッチからフローエントリの取得要求を受け付けたときにおいて、取得要求の対象のフローエントリが、パケットの宛先ＭＡＣアドレスの変更指示を含むものであるとき、このフローエントリの宛先ＩＰアドレスのレイヤ３（Ｌ３）装置に対し、ＡＲＰリクエストを送信する。そして、制御サーバは、このＬ３装置から、ＡＲＰリクエストの応答パケットを受信する。ここで、ＡＲＰリクエストの応答パケットは、Ｌ３装置に接続されるレイヤ２（Ｌ２）スイッチを経由する。よって、Ｌ２スイッチは、フロースイッチに新たなフローエントリを追加する際、このＬ３装置のＭＡＣアドレスと、このＬ３装置へのパケットの出力に用いるポートとを自身のＭＡＣアドレステーブルに追加することになる。これにより、フロースイッチに登録されるフローエントリが、Ｌ２スイッチにも登録されることになる。このようにすることで、フロー制御ネットワークのフロースイッチのポート数集約のため、Ｌ２スイッチ経由でＩＰネットワークと接続する場合において、フロースイッチがパケットの宛先ＭＡＣアドレスを変更したときでも、Ｌ２スイッチにおいてフラッディングが発生することを防止できる。なお、Ｌ３装置とは、パケットのヘッダ情報のうち、Ｌ３に関する情報に基づく経路制御を行う装置であり、例えば、ルータ等である。
【００１３】
また、本発明の通信システムのフロースイッチは、パケット転送部において、パケットを受信してから所定のタイムアウト時間が経過しても、パケットと同じ種別のパケットを受信しなかったとき、当該種別のパケットに関するフローエントリを、フローテーブルから削除するフローエントリ削除部を備え、レイヤ２スイッチは、パケット転送部において、パケットを受信してから所定のエージングタイムが経過しても、パケットと同じ宛先ＭＡＣアドレスのパケットを受信しなかったとき、ＭＡＣアドレステーブルから当該ＭＡＣアドレスのパケットのエントリを削除するＭＡＣアドレスエントリ削除部を備え、タイムアウト時間は、エージングタイムよりも短いことを特徴とする。
【００１４】
このようにすることで、通信システムのＬ２スイッチとフロースイッチとがそれぞれ、所定時間ごとに同じ宛先ＭＡＣアドレスのエントリを削除する場合において、同じフローエントリが、フロースイッチには存在するが、Ｌ２スイッチには存在しないという事態を避けることができる。これにより、フロースイッチで、パケット（フロー）のＭＡＣアドレスの書き換えを行った場合、Ｌ２スイッチにおいてどのポートから出力すればよいか解決できずないために、フラッディングが発生することを防止できる。
【００１５】
また、本発明の通信システムのＡＲＰリクエスト処理部は、ＡＲＰリクエストを送信する処理に代えて、当該フロースイッチに対し、ＡＲＰリクエストを送信するよう指示し、フロースイッチは、制御サーバからの指示に基づき、ＡＲＰリクエストを送信するＡＲＰリクエスト処理部を備えることを特徴とする。
【００１６】
このようにすることでも、Ｌ２スイッチは、Ｌ３装置のＭＡＣアドレスと、このＬ３装置へのパケットの出力に用いるポートとを自身のＭＡＣアドレステーブルに追加できる。
【００１７】
また、本発明のフロー制御プログラムは、フロー制御方法を、コンピュータである制御サーバに実行させるためのプログラムである。このようなプログラムによれば、一般的なコンピュータに本発明のフロー制御方法を実行させることができる。
【発明の効果】
【００１８】
本発明によれば、フロー制御ネットワークのフロースイッチのポート数集約のため、Ｌ２スイッチ経由でＩＰネットワークと接続する場合において、フロースイッチがパケットの宛先ＭＡＣアドレスを変更したときでも、Ｌ２スイッチにおいてフラッディングが発生することを防止できる。
【図面の簡単な説明】
【００１９】
【図１】比較例となる通信システムを示した図である。
【図２】図１の通信システムにＬ２スイッチを用いた構成例を示した図である。
【図３】本実施の形態の通信システムの構成例を示した図である。
【図４】図３のフロースイッチ、制御サーバおよびＬ２スイッチの構成例を示した図である。
【図５】図３の通信システムの処理手順を示した図である。
【図６】図３の通信システムを、ＩＰｓｅｃ通信に用いた場合の例を示した図である。
【発明を実施するための形態】
【００２０】
以下、本発明を実施するための形態（以下、実施の形態とする）について説明する。まず、図３を用いて、通信システム（システム）の構成例と動作概要を説明する。
【００２１】
システムは、例えば、図３に示すように、フロー制御ネットワーク経由で通信を行う端末５００とユーザネットワーク（ＩＰ網）とを備える。この端末５００（５００Ａ，５００Ｂ，５００Ｃ）は、隣接ルータであるレイヤ３（Ｌ３）装置４００Ｄ経由でフロー制御ネットワークに接続され、フロー制御ネットワークは、Ｌ２スイッチ３００およびＬ３装置４００Ａ，４００Ｂ，４００Ｃ経由でユーザネットワークに接続される。Ｌ３装置４００は、パケットのヘッダ情報のＬ３の情報に基づく経路制御を行う装置であり、例えば、ゲートウェイ装置である。Ｌ３装置４００（４００Ａ，４００Ｂ，４００Ｃ）それぞれの物理インタフェースのＩＰアドレスは異なるが、それぞれの論理インタフェースは同じＩＰアドレスを設定する。また、Ｌ３装置４００Ｄは、自身のルーティングテーブル（図示省略）により、例えば、Ｌ３装置４００Ａ〜４００Ｃの論理インタフェースのＩＰアドレス宛のパケットを、代表Ｌ３装置であるＬ３装置４００Ａの物理インタフェースのＩＰアドレス宛に送信する。具体的には、Ｌ３装置４００Ｄに対し、所定の論理インタフェースのＩＰアドレス宛のパケットを１台のＬ３装置４００（例えば、代表Ｌ３装置であるＬ３装置４００Ａ）の物理インタフェースに付与されているＩＰアドレスへ送信する経路情報を広告しておく。そして、この論理ＩＰアドレス宛のパケットを受信したＬ３装置４００Ｄは、Ｌ３装置４００Ａの物理インタフェースのＩＰアドレスに対してＡＲＰ解決（ＡＲＰ（Address Resolution Protocol）によるＭＡＣアドレスの解決）を行い、Ｌ３装置４００Ａへパケットを送信する。なお、このパケットの宛先ＩＰアドレスには、Ｌ３装置４００Ａ〜４００Ｃの論理インタフェースのＩＰアドレスが設定され、宛先ＭＡＣアドレスには、Ｌ３装置４００ＡのＭＡＣアドレスが設定される。
【００２２】
また、フロー制御ネットワークは、フロースイッチ２００を備え、パケットの宛先ＭＡＣアドレスと宛先ＩＰアドレスとの組み合わせによって経路制御を行う。そして、このフロースイッチ２００は、同じ宛先ＩＰアドレスのパケットであっても、所定のＬ３装置４００宛のパケットの宛先ＭＡＣアドレスは変更しないが、それ以外のＬ３装置４００宛のパケットについては宛先ＭＡＣアドレスを変更する。このような宛先ＭＡＣアドレスの変更をすることで、同じ宛先ＩＰアドレスのパケットであっても、ある種別のパケットについてはＬ３装置４００Ａを経由するが、別の種別のパケットについては、Ｌ３装置４００Ｂや、Ｌ３装置４００Ｃを経由するように制御できる。これにより、障害や過負荷が発生したとき、ユーザネットワークへのパケットが経由するＬ３装置４００の振り分けができるので、システムの障害対策や負荷分散を行いやすくなる。
【００２３】
次に、システムの動作概要を説明する。例えば、フロースイッチ２００Ａは、端末５００Ｂから送信されたパケットを受信すると、フローテーブル２３１（後記）を用いたフロー制御を行う。このフローテーブル２３１は、パケットの種別（Ｌ２，Ｌ３，Ｌ４の情報により定義されるパケットの種別）ごとに、その種別のパケットに対する処理（アクション）を示したテーブルである。フロースイッチ２００Ａは、受信パケットに関するフローエントリ（例えば、Ｌ３装置４００Ｂへのフローエントリ）がフローテーブル２３１にあるか否かを判断する。フローエントリがあれば、フロースイッチ２００Ａは、このフローエントリに基づき、必要に応じてパケットの宛先ＭＡＣアドレスの変更等の処理を行い、Ｌ２スイッチ３００へ転送する。パケットを受信したＬ２スイッチ３００は、受信したパケットの宛先ＭＡＣアドレスと、自身のＭＡＣアドレステーブルとを参照して、このパケットをどの出力ポートから出力すればよいかを判断する。そして、その判断した出力ポートからパケットを出力する。一方、フロースイッチ２００Ａは、フローテーブル２３１（後記）に受信パケットに関するフローエントリがないと判断したとき、制御サーバ１００へこのフローエントリの問い合わせ（取得要求）を行う。
【００２４】
この問い合わせを受けた制御サーバ１００は、問い合わせ対象のフローエントリが宛先ＭＡＣアドレスの変更を伴うものであるか否かを確認し、宛先ＭＡＣアドレスの変更を伴うものであれば宛先ＩＰアドレス（Ｌ３装置４００Ｂの物理ＩＦのＩＰアドレス）宛に、ＡＲＰリクエストを送信する。このＡＲＰリクエストは、フロースイッチ２００ＡからＬ２スイッチ３００を経由して、Ｌ３装置４００Ｂに到達する。そして、このＬ３装置４００Ｂは、制御サーバ１００へ、ＡＲＰリクエストの応答（ＡＲＰ応答）を送信する。つまり、Ｌ３装置４００Ｂは、自身に設定されたＭＡＣアドレスを送信する。このとき、このＡＲＰ応答は、Ｌ２スイッチ３００を経由するので、Ｌ２スイッチ３００は、このＡＲＰ応答を受信したときに用いたポートと、このＡＲＰ応答に示されるＬ３装置４００ＢのＭＡＣアドレスとを対応付けてＭＡＣアドレステーブル３３１（後記）に追加する。つまり、Ｌ２スイッチ３００は、Ｌ３装置４００ＢのＭＡＣアドレスを学習し、ＭＡＣアドレステーブル３３１に追加する。
【００２５】
その後、フロースイッチ２００Ａは、制御サーバ１００から問い合わせの対象のフローエントリを取得し、自身のフローテーブル２３１に追加する。これにより、フロースイッチ２００Ａと、Ｌ２スイッチ３００との双方に、Ｌ３装置４００Ｂへパケットを転送するためのエントリが登録されたので、Ｌ３装置４００Ｂ経由でユーザネットワークへパケットを転送できる。なお、問い合わせ対象のフローエントリが宛先ＭＡＣアドレスの変更を伴うものでなければ、制御サーバ１００はＡＲＰリクエストの送信は行わず、問い合わせ対象のフローエントリをフロースイッチ２００Ａへ送信する。そして、フロースイッチ２００Ａは、このフローエントリを自身のフローテーブル２３１に追加し、以降このフローテーブル２３１を用いてパケットを転送する。
【００２６】
このようにすることで、フロースイッチ２００Ａがフローテーブル２３１に基づき、パケットの宛先ＭＡＣアドレスを変更する場合でも、Ｌ２スイッチ３００においてフラッディングが発生することを防止できる。
【００２７】
次に、図４を用いて、図３のフロースイッチ２００、制御サーバ１００およびＬ２スイッチ３００の構成を説明する。
【００２８】
＜フロースイッチ＞
フロースイッチ２００は、フロー制御ネットワーク内に設置されるＬ２スイッチであり、フローテーブル２３１に登録されるフローエントリを用いてパケットを転送する。このフロースイッチ２００は、入出力部２１０、処理部２２０および記憶部２３０を備える。
【００２９】
入出力部２１０は、Ｌ２スイッチ３００とのデータ送受信のためのインタフェースと、制御サーバ１００とのデータ送受信のためのインタフェースとを備える。
【００３０】
処理部２２０は、このフロースイッチ２００全体の制御を司り、パケット転送部２２１と、フローエントリ追加部２２２と、フローエントリ削除部２２３とを備える。
【００３１】
パケット転送部２２１は、入出力部２１０経由で入力されたパケットに対し、フローテーブル２３１に従った処理を行った上で、転送を行う。例えば、フローテーブル２３１に、パケット種別が制御系（ＩＫＥ（Internet Key Exchange）、ＩＣＭＰ（Internet Control Message Protocol）、ＡＲＰ等）のパケットについては、宛先ＭＡＣアドレスを変更しないというフローエントリと、それ以外のパケットについては、宛先ＭＡＣアドレスを「Ｂ」に変更するというフローエントリとが登録されていた場合を考える。この場合、受信したパケットが制御系であれば、パケット転送部２２１は、宛先ＭＡＣアドレスを変更せずに、Ｌ２スイッチ３００へ出力する。一方、受信したパケットが制御系以外のパケットであったとき、パケット転送部２２１は、受信パケットの宛先ＭＡＣアドレスを「Ｂ」に変更して、Ｌ２スイッチ３００へ出力する。
【００３２】
フローエントリ追加部２２２は、パケット転送部２２１で受信したパケットに関するフローエントリが、フローテーブル２３１になかったとき、このフローエントリの取得要求（問い合わせ）を制御サーバ１００に送信する。そして、制御サーバ１００からフローエントリを取得すると、このフローエントリを、フローテーブル２３１に追加する。その後、パケット転送部２２１は、この追加されたフローエントリを参照して、パケットの転送処理を行う。
【００３３】
フローエントリ削除部２２３は、パケット転送部２２１において、最後に当該種別のパケットを転送してから、所定時間（所定のタイムアウト時間）経過しても、同じ種別のパケットを受信しなかったとき、フローテーブル２３１から、この種別のパケットに関するエントリを削除する。このようにすることで、記憶部２３０の限られた記憶容量を有効活用できる。なお、フローエントリ削除部２２３において、当該種別のパケットを受信後、フローテーブル２３１から当該パケットに関するフローエントリを削除するまでのタイムアウト時間は、Ｌ２スイッチ３００のＭＡＣアドレスエントリ削除部３２３（後記）において、当該宛先ＭＡＣアドレスのパケットを受信後、ＭＡＣアドレステーブル３３１から当該パケットのエントリを削除するまでの時間（エージングタイム）よりも短くする。このようにすることで、同じパケットに関するエントリが、フロースイッチ２００にはあるけれども、Ｌ２スイッチ３００には存在しないという事態を避けることができる。これにより、Ｌ２スイッチ３００におけるフラッディング発生を防止できる。
【００３４】
記憶部２３０は、フローテーブル２３１を記憶する。このフローテーブル２３１は、図３に例示するように、パケットの種別ごとに、その種別のパケットに対し行うべき処理（アクション）を示したテーブルである。このパケットの種別は、パケットのレイヤ２、レイヤ３およびレイヤ４の情報である。例えば、図３のフローテーブル２３１には、受信したパケットが制御系のパケットであれば、宛先ＭＡＣアドレスの変更は行わないというフローエントリと、データ系のパケット（非制御系のパケット）であれば、宛先ＭＡＣアドレスを「Ｂ」に変更するというフローエントリとが登録される。このフローテーブル２３１のフローエントリは、図４のパケット転送部２２１がパケットを転送する際に参照される。
【００３５】
＜制御サーバ＞
制御サーバ１００は、入出力部１１０、処理部１２０および記憶部１３０を備える。入出力部１１０は、フロースイッチ２００との間でのデータ送受信のためのインタフェースである。処理部１２０は、この制御サーバ１００全体の制御を司り、ここでは主に、フロースイッチ２００からの要求に応じてフローエントリを送信したり、ＡＲＰリクエストを送信したりする。このような処理部１２０は、フローエントリ送信部１２１と、ＡＲＰリクエスト処理部１２２とを備える。
【００３６】
フローエントリ送信部１２１は、フロースイッチ２００から要求されたフローエントリを、記憶部１３０のフローテーブル１３１から読み出し、フロースイッチ２００へ送信する。なお、このフローエントリの取得要求は、対象フロー（対象パケット）の宛先ＩＰアドレスを含む。
【００３７】
ＡＲＰリクエスト処理部１２２は、フロースイッチ２００から、フローエントリの取得要求を受信したとき、フローテーブル１３１における該当フローエントリを参照して、このフローエントリが、フロー（パケット）の宛先ＭＡＣアドレスの変更指示を含むか否かを判断する。ここで該当フローエントリが宛先ＭＡＣアドレスの変更指示を含むものであるとき、このパケットの宛先であるＬ３装置４００の物理ＩＦのＩＰアドレス宛に、ＡＲＰリクエストを送信する。このＡＲＰリクエストは、フロースイッチ２００およびＬ２スイッチ３００経由で、宛先のＬ３装置４００（例えば、Ｌ３装置４００Ｂ）へ到達する。なお、このＡＲＰリクエストに対する応答は、宛先のＬ３装置４００から、Ｌ２スイッチ３００およびフロースイッチ２００経由で、制御サーバ１００へ到達する。これにより、Ｌ２スイッチ３００のＭＡＣアドレステーブル３３１に、フロースイッチ２００において追加されるフローエントリの宛先ＭＡＣアドレスと、その出力ポートとを追加できる。
【００３８】
記憶部１３０は、１以上のフローエントリからなるフローテーブル１３１を記憶する。このフローテーブル１３１は、入出力部１１０経由で更新可能である。
【００３９】
なお、通信システムの構成は、図３に示す構成に限定されない。例えば、この制御サーバ１００は、フロー制御ネットワーク内の複数のフロースイッチ２００に対し、フローエントリを送信してよい。また、フロー制御ネットワークには、複数の制御サーバ１００が設置されていてもよい。
【００４０】
＜Ｌ２スイッチ＞
Ｌ２スイッチ３００は、フロースイッチ２００と、Ｌ３装置４００（４００Ａ，４００Ｂ，４００Ｃ）とを接続するスイッチである。つまり、フロースイッチ２００から送信されたパケットをＬ３装置４００（４００Ａ，４００Ｂ，４００Ｃ）へ送信し、Ｌ３装置４００から受信したパケットをフロースイッチ２００経由でフロー制御ネットワークに送信する。このＬ２スイッチ３００は、入出力部３１０、処理部３２０および記憶部３３０を備える。
【００４１】
入出力部３１０は、フロースイッチ２００との間のデータ送受信のためのインタフェースと、Ｌ３装置４００との間のデータ送受信のためのインタフェースとを備える。
【００４２】
処理部３２０は、このＬ２スイッチ３００全体の制御を司り、パケット転送部３２１と、ＭＡＣアドレスエントリ追加部３２２と、ＭＡＣアドレスエントリ削除部３２３とを備える。
【００４３】
パケット転送部３２１は、ＭＡＣアドレステーブル３３１を参照してパケットを転送する。すなわち、パケット転送部３２１は、フロースイッチ２００からのパケットを受信すると、このパケットの宛先ＭＡＣアドレスと、ＭＡＣアドレステーブル３３１とを参照して、このパケットの出力ポート（インタフェース）を選択する。そして、この選択した出力ポート経由で、パケットを宛先ＭＡＣアドレスのＬ３装置４００へ送信する。また、Ｌ３装置４００側からパケットを受信したときには、このパケットを所定の出力ポート経由でフロースイッチ２００へ送信する。受信したパケットに該当するＭＡＣアドレステーブルエントリが存在しない場合は、パケットを受信したポート以外の全てのポートから送信する。
【００４４】
ＭＡＣアドレスエントリ追加部３２２は、Ｌ３装置４００側からパケットを受信したとき、パケットの送信元のＬ３装置４００のＭＡＣアドレスと、パケットを受信したポートのポート番号とを対応付けてＭＡＣアドレステーブル３３１に追加する。例えば、ＭＡＣアドレスエントリ追加部３２２は、Ｌ３装置４００からＡＲＰリクエストの応答パケット（ＡＲＰ応答）を受信したとき、ＡＲＰ応答の送信元のＬ３装置４００のＭＡＣアドレスと、このＡＲＰ応答を受信したポートのポート番号とを対応付けたＭＡＣアドレスエントリを作成し、ＭＡＣアドレステーブル３３１に追加する。
【００４５】
ＭＡＣアドレスエントリ削除部３２３は、パケット転送部３２１において、当該宛先ＭＡＣアドレスのパケットを受信してから所定時間（所定のエージングタイム）経過しても、当該宛先ＭＡＣアドレスのパケットを受信しなかったとき、ＭＡＣアドレステーブル３３１から、当該宛先ＭＡＣアドレスのパケットのエントリを削除する。このようにすることで、記憶部３３０の限られた記憶容量を有効活用できる。
【００４６】
記憶部３３０は、前記したＭＡＣアドレステーブル３３１を記憶する。このＭＡＣアドレステーブル３３１は、図３に例示するように、パケットの宛先ＭＡＣアドレスごとに、当該宛先ＭＡＣアドレスのパケットの出力に用いるポートのポート番号を示したＭＡＣアドレスエントリを示したテーブルである。このＭＡＣアドレステーブル３３１は、パケット転送部３２１がパケットを転送する際に参照される。
【００４７】
なお、制御サーバ１００、フロースイッチ２００、Ｌ２スイッチ３００およびＬ３装置４００それぞれの処理部は、ＣＰＵ（Central Processing Unit）によるプログラム実行処理や、専用回路等により実現される。さらに、制御サーバ１００、フロースイッチ２００、Ｌ２スイッチ３００およびＬ３装置４００それぞれの記憶部は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ等の記憶媒体から構成される。なお、各処理部の機能をプログラム実行処理により実現する場合、制御サーバ１００、フロースイッチ２００、Ｌ２スイッチ３００およびＬ３装置４００それぞれの記憶部には、各処理部の機能を実現するためのプログラムが格納される。
【００４８】
次に、図５を用いてシステム全体の処理手順例を説明する。ここでは、制御サーバ１００においてフロースイッチ２００から問い合わせを受けたフローエントリが、宛先ＭＡＣアドレスを変更しないものである場合と、宛先ＭＡＣアドレスを変更するものである場合との２つの場合の処理を説明する。
【００４９】
＜フローエントリが、宛先ＭＡＣアドレスを変更しないものである場合＞
フロースイッチ２００のパケット転送部２２１は、端末５００Ａからのパケットを受信し（Ｓ１）、このパケットに関するフローエントリがフローテーブル２３１に無いことを確認すると、フローエントリ追加部２２２（図４参照）により、このパケットに関するフローエントリを、制御サーバ１００に問い合わせる（Ｓ２）。つまり、フローエントリの取得要求を行う。制御サーバ１００のＡＲＰリクエスト処理部１２２は、フロースイッチ２００から、フローエントリの問い合わせを受け付けると、フローテーブル１３１から、このフローエントリを検索する。そして、検索したフローエントリに示されるパケットの宛先ＭＡＣアドレスを変更するフローのフローエントリであるか否かを判断する。ここで、当該フローエントリがＭＡＣアドレスを変更しないフローのフローエントリであることを判断すると、フロースイッチ２００へ、検索したフローエントリを送信する。つまり、フローエントリの追加指示を送信する（Ｓ３）。
【００５０】
そして、制御サーバ１００からフローエントリを受信したフロースイッチ２００のフローエントリ追加部２２２は、このフローエントリを、自身のフローテーブル２３１に追加する（Ｓ４）。そして、パケット転送部２２１は、この追加したフローエントリに基づき、Ｌ２スイッチ３００経由でＬ３装置４００Ａへパケットを転送する（Ｓ５）。
【００５１】
＜フローエントリが、宛先ＭＡＣアドレスを変更するものである場合＞
また、フロースイッチ２００のパケット転送部２２１は、端末５００Ｂからのパケットを受信し（Ｓ１１）、このパケットに関するフローエントリがフローテーブル２３１に無いことを確認すると、フローエントリ追加部２２２（図４参照）は、Ｓ２と同様に、このパケットに関するフローエントリを、制御サーバ１００に問い合わせる（Ｓ１２）。制御サーバ１００のＡＲＰリクエスト処理部１２２は、フロースイッチ２００から、フローエントリの問い合わせを受け付けると、フローテーブル１３１から、このフローエントリを検索する。そして、検索したフローエントリに示されるパケットの宛先ＭＡＣアドレスを変更するフローのフローエントリであるか否かを判断する。ここで、当該フローエントリがＭＡＣアドレスを変更するフローのフローエントリであることを判断すると、ＡＲＰリクエスト処理部１２２は、Ｌ３装置４００ＢへＡＲＰリクエストを送信する（Ｓ１３）。このときのＡＲＰリクエストの宛先は、フローエントリに示されるパケットの宛先であるＬ３装置４００Ｂの物理ＩＦ（インタフェース）のＩＰアドレスである。
【００５２】
このようなＡＲＰリクエストを受信したＬ３装置４００Ｂは、自身に設定されるＭＡＣアドレスを含むＡＲＰ応答を制御サーバ１００宛に送信する（Ｓ１４）。このとき、このＡＲＰ応答は、Ｌ２スイッチ３００を経由することになる。よって、このＡＲＰ応答を受信したＬ２スイッチ３００は、ＭＡＣアドレスエントリ追加部３２２により、ＭＡＣアドレステーブル３３１に、このＡＲＰ応答に含まれるＭＡＣアドレスと、そのＡＲＰ応答を受信したポートのポート番号とを対応付けたエントリを追加する（Ｓ１５）。なお、このＡＲＰ応答は、フロースイッチ２００経由で制御サーバ１００へ到達する。
【００５３】
また、制御サーバ１００のフローエントリ送信部１２１は、Ｓ３と同様に、フロースイッチ２００へ、検索したフローエントリを送信する。つまり、フローエントリの追加指示を送信する（Ｓ１６）。
【００５４】
このフローエントリを受信したフロースイッチ２００のフローエントリ追加部２２２は、Ｓ４と同様に、フローエントリを、自身のフローテーブル２３１に追加する（Ｓ１７）。そして、パケット転送部２２１は、この追加したフローエントリに基づき、Ｌ２スイッチ３００経由でＬ３装置４００Ｂへパケットを転送する（Ｓ１８）。
【００５５】
このようにすることで、フロースイッチ２００においてパケットの宛先ＭＡＣアドレスを変更する処理を行うフローエントリが追加された場合でも、Ｌ２スイッチ３００にも同じパケットのエントリが追加されるので、Ｌ２スイッチ３００においてフラッディングが発生することを防止できる。
【００５６】
＜適用例＞
このような通信システムを、ＩＰｓｅｃにより複数の小規模なユーザネットワークと、比較的大規模なユーザネットワークとを接続するシステムに適用してもよい。図６に、この場合の適用例を示す。比較的小規模なユーザネットワークをユーザネットワークＡ，Ｂ，Ｃとし、比較的大規模なユーザネットワークをユーザネットワークＤとする。ユーザネットワークＡには、端末５００Ａが接続され、ユーザネットワークＢには、端末５００Ｂが接続され、ユーザネットワークＣには、端末５００Ｃが接続される。また、ユーザネットワークＤには、Ｌ３装置４００Ａ〜４００Ｃが接続される。ここで、Ｌ３装置４００は、ＩＰｓｅｃ−ＧＷ（ＩＰｓｅｃゲートウェイ）であり、端末５００（５００Ａ〜５００Ｃ）は、ＩＰｓｅｃ終端端末であるものとする。端末５００とＬ３装置４００との間の通信は、ＩＰｓｅｃにより暗号化される。
【００５７】
Ｌ３装置４００（４００Ａ，４００Ｂ，４００Ｃ）にはそれぞれ、ＩＫＥｖ２（Internet Key Exchange version 2）を用いたＩＰｓｅｃの接続を待ち受ける論理インタフェースを設定しておく。この論理インタフェースは、端末５００Ａ〜５００Ｃごとに設定する。例えば、Ｌ３装置４００（４００Ａ，４００Ｂ，４００Ｃ）は、論理インタフェース（論理ＩＦ）のＩＰアドレスとして「Ｘ１，Ｘ２およびＸ３」を設定している。また、Ｌ３装置４００（４００Ａ，４００Ｂ，４００Ｃ）はＬ２スイッチ３００と接続する物理インタフェース（物理ＩＦ）に、それぞれＩＰアドレス「１〜３」を設定している。また、端末５００ＡのＩＰアドレスは「１Ａ」であり、端末５００ＢのＩＰアドレスは「１Ｂ」であり、端末５００ＣのＩＰアドレスは「１Ｃ」であるものとする。ここで、制御サーバ１００は、フローテーブル１３１に、表１に示すフローエントリを保持しているものとする。
【００５８】
【表１】
0005438624.tif 000002
【００５９】
端末５００ＡによるＩＰｓｅｃトンネル確立要求は、ＩＰアドレス「Ｘ１」宛に送信される。そして、これを受信したＬ３装置４００Ｄ（隣接ルータ）は、自身のルーティングテーブル（図示省略）を参照して、ＩＰアドレス「Ｘ１」宛のパケットを、Ｌ３装置４００Ａの物理インタフェースのＩＰアドレス「１」宛に送信することを決定する。
【００６０】
さらに、このＬ３装置４００Ｄは、このＩＰアドレス「１」に対してＡＲＰ解決を行う。Ｌ３装置４００Ｄは、ＡＲＰ解決により、Ｌ３装置４００ＡのＭＡＣアドレスを得ると、このＭＡＣアドレス「Ａ」宛のパケットを送信する。このパケットを受信したフロースイッチ２００Ａは、制御サーバ１００に問い合わせを行う。これを受けた制御サーバ１００は、表１に例示するフローテーブル１３１を参照して、該当パケットのアクションとしてＭＡＣアドレスを変更しないことを確認する。そして、問い合わせ対象のフローエントリをフロースイッチ２００Ａへ送信する。フロースイッチ２００Ａは、自身のフローテーブル２３１を表２の通り更新し、更新されたフローテーブル２３１のフローエントリに従いパケットの転送処理を行う。つまり、パケットの宛先ＭＡＣアドレスを変更せず、Ｌ２スイッチ３００へ送信する。
【００６１】
【表２】
0005438624.tif 000003
【００６２】
Ｌ２スイッチ３００は、フロースイッチ２００Ａからパケットを受信すると、このパケットの宛先ＭＡＣアドレスはＬ３装置４００Ａであることから、このＬ３装置４００Ａに接続するポートからこのパケットを送信する。以降、フロースイッチ２００Ａは、該当フローエントリがフローテーブル２３１にある限り、このフローエントリに従いパケットを転送する。
【００６３】
端末５００ＢによるＩＰｓｅｃトンネル確立要求は、ＩＰアドレス「Ｘ２」宛に送信される。そして、これを受信したＬ３装置４００Ｄは、自身のルーティングテーブルで、ＩＰアドレス「Ｘ２」宛のパケットを、Ｌ３装置４００Ａの物理インタフェースのＩＰアドレス「１」宛に送信することを決定する。
【００６４】
さらに、Ｌ３装置４００Ｄは、前記した端末５００ＡによるＩＰｓｅｃトンネル確立要求の場合と同様に、Ｌ３装置４００Ａの物理インタフェースのＩＰアドレス「１」に対してＡＲＰ解決を行う。そして、Ｌ３装置４００Ｄは、ＡＲＰ解決により、Ｌ３装置４００ＡのＭＡＣアドレス「Ａ」を得ると、このＭＡＣアドレス「Ａ」宛のパケットを送信する。これを受信したフロースイッチ２００Ａは、送信元ＩＰアドレス「１Ｂ」のフローエントリがフローテーブル２３１に無いので、制御サーバ１００に問い合わせを行う。これを受けて制御サーバ１００は、表１に例示するフローテーブル１３１を参照して、該当パケット（送信元ＩＰアドレス「１Ｂ」）のアクションとして宛先ＭＡＣアドレスを変更することを確認する。そして、制御サーバ１００は、Ｌ３装置４００ＢへＡＲＰリクエストを送信する。このようなＡＲＰリクエストの応答（ＡＲＰ応答）は、Ｌ２スイッチ３００経由で、制御サーバ１００へ到達する。このとき、Ｌ２スイッチ３００は、Ｌ３装置４００Ｂに接続するポートをＡＲＰにより学習する。その後、制御サーバ１００は、フロースイッチ２００Ａへ、問い合わせ対象のフローエントリを送信する。フロースイッチ２００Ａは、このフローエントリを受信すると、フローテーブル２３１を表３の通り更新する。
【００６５】
【表３】
0005438624.tif 000004
【００６６】
そして、フロースイッチ２００Ａは、更新されたフローテーブル２３１のフローエントリに従いパケットの宛先ＭＡＣアドレスを「Ｂ」に変更し、Ｌ２スイッチ３００へ送信する。なお、Ｌ２スイッチ３００は既にＬ３装置４００Ｂに接続するポートをＡＲＰにより学習しているため、Ｌ３装置４００Ｂに接続するポートから、このパケットを送信する。以降、フロースイッチ２００Ａは、該当フローエントリがフローテーブル２３１にある限り、このフローエントリに従いパケットを転送する。
【００６７】
また、端末５００ＣによるＩＰｓｅｃトンネル確立要求は、ＩＰアドレス「Ｘ３」宛に送信される。そして、これを受信したＬ３装置４００Ｄは、前記した端末５００Ａ，ＢによるＩＰｓｅｃトンネル確立要求の場合と同様の処理を行う。すなわち、Ｌ３装置４００Ｄは、自身のルーティングテーブルで、ＩＰアドレス「Ｘ３」宛のパケットを、Ｌ３装置４００Ａの物理インタフェースのＩＰアドレス「１」宛に送信することを決定する。Ｌ３装置４００Ｄは、ＡＲＰ解決により、宛先ＭＡＣアドレス「Ａ」を得ると、このＭＡＣアドレス「Ａ」宛のパケットを送信する。これを受信したフロースイッチ２００Ａは、送信元ＩＰアドレス「１Ｃ」のフローエントリがフローテーブル２３１に無いので、制御サーバ１００に問い合わせを行う。これを受けた制御サーバ１００は、該当パケット（送信元ＩＰアドレス「１Ｃ」）のアクションとして宛先ＭＡＣアドレスを変更することを確認する。そして、制御サーバ１００は、Ｌ３装置４００ＣへＡＲＰリクエストを送信する。このようなＡＲＰリクエストの応答（ＡＲＰ応答）は、Ｌ２スイッチ３００経由で、制御サーバ１００へ到達する。このとき、Ｌ２スイッチ３００は、Ｌ３装置４００Ｃに接続するポートをＡＲＰにより学習する。その後、制御サーバ１００は、フロースイッチ２００Ａへ、問い合わせ対象のフローエントリを送信する。フロースイッチ２００Ａは、このフローエントリを受信すると、フローテーブル２３１を表４の通り更新する。
【００６８】
【表４】
0005438624.tif 000005
【００６９】
そして、フロースイッチ２００Ａは、更新されたフローテーブル２３１のフローエントリに従いパケットの宛先ＭＡＣアドレスを「Ｃ」に変更し、Ｌ２スイッチ３００へ送信する。なお、この場合も、Ｌ２スイッチ３００は既にＬ３装置４００Ｃに接続するポートをＡＲＰにより学習している。よって、Ｌ２スイッチ３００は、Ｌ３装置４００Ｃに接続するポートから、このパケットを送信する。以降、フロースイッチ２００Ａは、該当フローエントリがフローテーブル２３１にある限り、このフローエントリに従いパケットを転送する。
【００７０】
このようにすることで、ユーザネットワークＡ，Ｂ，Ｃと、ユーザネットワークＤとの間をＩＰｓｅｃにより接続するシステムに、本システムを用いた場合でも、Ｌ２スイッチ３００におけるフラッディングの発生を防止することができる。
【００７１】
なお、前記した実施の形態において、ＡＲＰリクエストは制御サーバ１００が送信することとしたが、これに限定されない。例えば、制御サーバ１００は、フロースイッチ２００に対し、パケットの宛先ＩＰアドレスを含むＡＲＰリクエストの送信指示を行い、フロースイッチ２００は、この送信指示に従いＡＲＰリクエストを送信するようにしてもよい。この場合、フロースイッチ２００は、制御サーバ１００からの指示に基づき、このＡＲＰリクエストを送信するＡＲＰリクエスト処理部を備えるものとする。また、制御サーバ１００（または、フロースイッチ２００）はＡＲＰリクエストに代えて、ICMP Echo Request を送信するようにしてもよい。
【符号の説明】
【００７２】
１０，１００    制御サーバ
１１０，２１０，３１０  入出力部
１２０，２２０，３２０  処理部
１２１  フローエントリ送信部
１２２  ＡＲＰリクエスト処理部
１３０，２３０，３３０  記憶部
１３１，２３１  フローテーブル
２００（２００Ａ，２００Ｂ）  フロースイッチ
２２１  パケット転送部
２２２  フローエントリ追加部
２２３  フローエントリ削除部
３００  Ｌ２スイッチ
３２１  パケット転送部
３２２  ＭＡＣアドレスエントリ追加部
３２３  ＭＡＣアドレスエントリ削除部
３３１  ＭＡＣアドレステーブル
４００（４００Ａ，４００Ｂ，４００Ｃ，４００Ｄ）  Ｌ３装置
５００（５００Ａ，５００Ｂ，５００Ｃ）  端末
【図１】
0005438624.tif 000006
【図２】
0005438624.tif 000007
【図３】
0005438624.tif 000008
【図４】
0005438624.tif 000009
【図５】
0005438624.tif 000010
【図６】
0005438624.tif 000011