JP2018113506A - 転送装置および制御方法 - Google Patents
転送装置および制御方法 Download PDFInfo
- Publication number
- JP2018113506A JP2018113506A JP2017001316A JP2017001316A JP2018113506A JP 2018113506 A JP2018113506 A JP 2018113506A JP 2017001316 A JP2017001316 A JP 2017001316A JP 2017001316 A JP2017001316 A JP 2017001316A JP 2018113506 A JP2018113506 A JP 2018113506A
- Authority
- JP
- Japan
- Prior art keywords
- processing rule
- processing
- transfer device
- frame
- rule
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】コントローラの負荷を軽減する。【解決手段】転送装置は、制御装置から取得した処理ルールに従ってフレームを処理し、記憶部、検出部、取得部、同期制御部を備える。記憶部は、制御装置から取得した処理ルールを記憶する。検出部は、記憶部に記憶されている第1の処理ルールを適用するフレームを受信しない期間が所定期間を超えると、第1の処理ルールを削除可能な情報として検出する。取得部は、第1の処理ルールを削除するタイミングを第2の処理ルールの削除と同期させる設定が第1の処理ルールに含まれている場合、第2の処理ルールの使用状況を取得する。同期制御部は、第2の処理ルールの使用状況を用いて、第1の処理ルールを削除するかを決定する。【選択図】図1
Description
本発明は、転送装置と転送装置で行われる制御に関する。
近年、SDN(Software Defined Networking)に対応したシステムの研究や開発が進められており、様々なSDNコントローラ、SDNスイッチなどが提供されている。また、コントローラとスイッチとの間の通信にOpenFlowプロトコルが使用されることがある。SDNに対応したシステムでは、SDNスイッチでのフレームの処理に使用される処理ルールが、SDNコントローラから通知される。SDNスイッチは、SDNコントローラから通知された処理ルールに従って受信フレームを処理するが、受信フレームに適用する処理ルールを保持していない場合は、SDNコントローラに受信フレームに適用可能な処理ルールを問合わせる。
SDNスイッチには、idle timeout機能に対応したものも提案されている。idle timeoutに対応したSDNスイッチは、取得した処理ルールのうち、所定時間以上、受信フレームに適用しなかった処理ルールを自律的に削除する。レイヤ2(L2)のMAC(Media Access Control)アドレスを、事前にSDNコントローラに登録しておくことは煩雑であるため、L2の条件を用いた処理ルールでidle timeout機能が使用されることが多い。SDNコントローラは、SDNスイッチから処理ルールの問い合わせを受信すると、問い合わせの対象となっているフレームに含まれているMACアドレスを取得する。SDNコントローラは、取得したMACアドレスが割り当てられた端末から送信されたフローに対する制御を決定すると、問い合わせ元のSDNスイッチに対して、idle timeout付きの処理ルールを通知する。SDNスイッチでは、idle timeoutが設定された処理ルールを適用可能なフレームを所定期間中に受信している間は、処理ルールを保持する。しかし、idle timeoutで設定された期間以上にわたって通信がない端末についての処理ルールは、SDNスイッチで削除される。
関連する技術として、コントローラが、複数のスイッチ間で相互に送受信される巡回パケットが到着しなくなった場合に削除される巡回用エントリを複数のスイッチに設定する管理方法が提案されている。この管理方法では、コントローラは、巡回用エントリの削除がスイッチから通知されると、システム中の障害を検出する(例えば、特許文献1)。また、新たに設定されたスイッチが、コントローラのIPアドレスを含む設定情報の問い合わせをブロードキャストし、コントローラや他のスイッチから、コントローラのIPアドレスを含む設定情報を取得するシステムも提案されている(例えば、特許文献2)。このシステム中のスイッチは、一定間隔で、他のスイッチに対して、コントローラのIPアドレスを含む設定情報の問い合わせを繰り返す。
ある処理ルールにidle timeoutが設定されている場合、設定されている期間中にその処理ルールが使用されたかによって、その処理ルールを削除するかが決定される。しかし、ある処理ルールが設定された期間にわたって使用されていなくても、後で処理ルールが使用される可能性が高い場合もある。このような場合、処理ルールを削除した後で、スイッチが削除済みの処理ルールを適用可能なフレームを受信すると、再度、コントローラへの問い合わせが行われる。このように、スイッチから複数回にわたって同じ処理ルールが問い合わせられることがあるため、コントローラに負荷がかかっている。なお、以上の説明では、OpenFlowプロトコルが使用される場合を例としたが、他のプロトコルが使用される場合であっても、スイッチがコントローラから指定された処理ルールに従って処理を行う場合には、同様の問題が発生する。
本発明は、1つの側面では、コントローラの負荷を軽減することを目的とする。
ある1つの態様にかかる転送装置は、制御装置から取得した処理ルールに従ってフレームを処理し、記憶部、検出部、取得部、同期制御部を備える。記憶部は、前記制御装置から取得した処理ルールを記憶する。検出部は、前記記憶部に記憶されている第1の処理ルールを適用するフレームを受信しない期間が所定期間を超えると、前記第1の処理ルールを削除可能な情報として検出する。取得部は、前記第1の処理ルールを削除するタイミングを第2の処理ルールの削除と同期させる設定が前記第1の処理ルールに含まれている場合、前記第2の処理ルールの使用状況を取得する。同期制御部は、前記第2の処理ルールの使用状況を用いて、前記第1の処理ルールを削除するかを決定する。
コントローラの負荷を軽減できる。
コントローラは、転送装置で使用される処理ルールを、転送装置に通知する。ここで、処理ルールは、転送装置が受信フレームに対して行う処理を指定する情報と、その処理を適用するフレームの条件の組み合わせを含む。
実施形態にかかる制御方法では、コントローラは、ある処理ルールを、その処理ルールが使用されている場合に後で使用される可能性がある他の処理ルールと同じグループに分類する。例えば、ある端末間での通信経路の設定に使用される処理ルールと、その通信経路の冗長経路の設定に使用される処理ルールは、1つのグループに分類され得る。さらに、送信元と宛先のアドレスが同じでポート番号が異なる条件を有する処理ルールも、1つのグループに分類されても良い。例えば、端末Aと端末Bの間で宛先ポート番号がXの通信が行われているが、端末Aと端末Bの間で宛先ポート番号がYのフローは所定期間以上、転送装置で受信されていないとする。この場合、端末Aと端末Bの間の通信が継続しているので、ユーザの処理によっては、今後、宛先ポート番号がYのフローが発生する場合もあり得る。換言すると、あるグループに属する処理ルールの各々では、その処理ルールの削除のタイミングを、同じグループ中の他の処理ルールの削除と同期させることが望ましいことになる。
このように、コントローラは、削除のタイミングを同期させることが望ましい処理ルールを1つのグループに分類し、各処理ルール中に、その処理ルールが属するグループを識別する情報が含めた状態で、転送装置に通知する。以下、図1を参照しながら、転送装置での処理の例を説明する。
図1は、実施形態にかかる制御方法の例を説明するフローチャートである。転送装置は、処理ルールをフローテーブルに格納している。転送装置は、使用されていない期間が所定期間を超えた処理ルールを検出したかを判定する(ステップS1)。ここで、フローテーブル中のあるエントリ中の処理ルールで使用されていない期間が所定期間を超えたとする(ステップS1でYes)。すると、転送装置は、使用されていない期間が所定期間を超えた処理ルールとして検出した処理ルールは、削除のタイミングの同期処理の対象であるかを判定する(ステップS2)。ここで、削除のタイミングの同期処理の対象となる処理ルールは、その処理ルールの削除のタイミングを他の処理ルールの削除と同期させることが要求されている処理ルールであり、グループの識別情報を含んでいる。
転送装置は、使用されていない期間が所定期間を超えた処理ルールが同期処理の対象の処理ルールであると判定したとする(ステップS2でYes)。この場合、転送装置は、使用されていない期間が所定期間を超えた処理ルールと削除時期を同期する処理ルールであって、かつ、使用中の処理ルールがあるかを判定する(ステップS3)。使用されていない期間が所定期間を超えた処理ルールと削除時期を同期する処理ルールであって、使用中のエントリがある場合、転送装置は、使用されていない期間が所定期間を超えた処理ルールを削除保留中に設定する(ステップS3でYes、ステップS4)。
一方、使用されていない期間が所定期間を超えた処理ルールと削除時期を同期する処理ルールのうちで使用中の処理ルールがない場合、転送装置は、使用されていない期間が所定期間を超えた処理ルールを削除する(ステップS3でNo、ステップS5)。さらに、転送装置は、削除した処理ルールと削除時期を同期するために削除が保留されている処理ルールを削除するための処理を行う(ステップS6)。すなわち、転送装置は、削除した処理ルールと削除時期を同期するために削除を保留していた処理ルールのうち、自装置が保持している処理ルールを削除する。削除した処理ルールと削除時期を同期するために削除が保留されていた処理ルールが他の転送装置に保持されている可能性がある場合、転送装置は、他の転送装置に対して、削除した処理ルールと削除時期を同期させる処理ルールの削除を要求する。
次に、使用されていない期間が所定期間を超えたエントリ中の処理ルールが同期処理の対象の処理ルールではないと判定された場合について説明する(ステップS2でNo)。この場合、転送装置は、使用されていない期間が所定期間を超えた処理ルールを削除する(ステップS7)。
このように、転送装置は、処理ルールにグループを特定する情報が含まれている場合、同じグループ中の他の処理ルールの使用状況に応じて、所定期間以上使用されていない処理ルールを削除するかを決定する。このため、転送装置は、設定された期間にわたって使用されていなくても、後で使用される可能性のある処理ルールを削除しないで保持することができる。従って、所定期間使用されていない処理ルールを適用可能なフレームを受信した場合にも、転送装置は、コントローラに処理ルールを問合わせることなく、受信フレームを処理することができる。
実施形態にかかる転送装置は、他の処理ルールと削除のタイミングを同期させる設定がされていない処理ルールについては、使用されていない期間が所定期間を経過すると削除する。このため、OpenFlowプロトコルのidle timeoutが使用される場合と同様に、システムにアクセスしなくなった端末への経路情報が所定の期間で削除されるので、個々の転送装置の記憶領域を有効活用することもできる。
<装置構成>
以下、OpenFlowプロトコルが使用されるシステムを例として説明する。OpenFlowプロトコルが使用される場合、使用されていない期間が所定期間を経過しているかは、idle timeout機能を用いて判定される。
以下、OpenFlowプロトコルが使用されるシステムを例として説明する。OpenFlowプロトコルが使用される場合、使用されていない期間が所定期間を経過しているかは、idle timeout機能を用いて判定される。
図2は、転送装置10の構成の例を説明する図である。転送装置10は、D−Plane回線インタフェース11、C−Plane回線インタフェース12、送信部13、受信部14、制御部20、同期処理部30、Openflowプロトコル処理部41を備える。ここで、D−Planeはユーザデータを含むフレームの送受信に使用され、C−Planeは制御用のフレームの送受信に使用される。D−Plane回線インタフェース11は、データフレームの送受信に使用され、C−Plane回線インタフェース12は、制御フレームの送受信に使用される。転送装置10は、さらに、オプションとして、スイッチ間通信処理部42、組み合わせ管理テーブル43を有しても良い。
制御部20は、フローテーブル21、フレーム処理部22、検出部23を有する。同期処理部30は、取得部31と同期制御部32を有する。
送信部13は、データフレームの送信処理を行う。受信部14は、データフレームの受信処理を行う。フローテーブル21は、コントローラ60(図4)から転送装置10が受信した処理ルールを格納している。フレーム処理部22は、受信部14で受信されたフレームに対して、フローテーブル21に指定された処理を特定する。さらに、フレーム処理部22は、受信フレームに対して指定された処理を行う。受信フレームに対する転送先がフローテーブル21に指定されている場合、フレーム処理部22は、受信フレームを、転送先の情報と共に送信部13に出力する。検出部23は、フローテーブル21に格納されている各処理ルールに対して、未使用の期間が所定の期間を経過したかを判定する。なお、その処理ルールを削除するまでの期間は、処理ルールごとに異なる値が指定されても良い。この場合、検出部23は、処理ルールごとに、その処理ルールに対して指定された期間にわたって、その処理ルールが未使用であるかを判定する。
同期制御部32は、未使用の期間が所定の期間を経過したことを検出部23が検出した処理ルールが、削除のタイミングを他の処理ルールと同期させることが指定されている処理ルールであるかを判定する。取得部31は、未使用の期間が所定の期間を経過したことが検出された処理ルールと、削除のタイミングを同期させることが指定されている他の処理ルールの使用状況を取得する。なお、削除のタイミングを同期させることが指定されている他の処理ルールは、後述するように、未使用の期間が所定の期間を経過したことが検出された処理ルールと同じ転送装置10に記憶されていても良く、異なる転送装置10に記憶されていても良い。
Openflowプロトコル処理部41は、Openflowプロトコルの処理を行う。例えば、Openflowプロトコル処理部41は、コントローラ60に対する処理ルールの問い合わせやフローテーブル21の更新等を行う。スイッチ間通信処理部42は、適宜、取得部31からの要求に基づいて、システム中の他の転送装置10との間の通信を行う。組み合わせ管理テーブル43は、同期させることが指定されている他の処理ルールを保持する可能性のある転送装置10の情報を格納する。
図3は、転送装置10のハードウェア構成の例を説明する図である。転送装置10は、プロセッサ101、メモリ102、バス103、回線インタフェース104(104a、104b)を備える。プロセッサ101は、任意の処理回路であり、例えば、CPU(Central Processing Unit)とすることができる。プロセッサ101は、メモリ102をワーキングメモリとして使用して、プログラムを実行することにより、様々な処理を実行する。メモリ102には、RAM(Random Access Memory)が含まれ、さらに、ROM(Read Only Memory)等の不揮発性のメモリも含まれる。メモリ102は、プログラムやプロセッサ101での処理に使用されるデータの格納に使用される。回線インタフェース104は、ネットワークを介した他の装置との通信に使用される。バス103は、プロセッサ101、メモリ102、回線インタフェース104を、互いにデータの入出力が可能になるように接続する。
さらに、オプションとして、転送装置10は、可搬記憶媒体にアクセス可能であっても良い。この場合、転送装置10は、メモリ102中のデータを可搬記憶媒体に出力することができ、また、可搬記憶媒体からプログラムやデータ等を読み出すことができる。ここで、可搬記憶媒体は、持ち運びが可能な任意の記憶媒体である。
転送装置10において、プロセッサ101は、送信部13、受信部14、フレーム処理部22、検出部23、同期処理部30、Openflowプロトコル処理部41、スイッチ間通信処理部42として動作する。メモリ102は、フローテーブル21と組み合わせ管理テーブル43を保持する。D−Plane回線インタフェース11とC−Plane回線インタフェース12は、回線インタフェース104によって実現される。
<第1の実施形態>
第1の実施形態では、削除のタイミングが同期される複数の処理ルールが1台の転送装置10に設定されている場合を例として説明する。なお、第1の実施形態では、組み合わせ管理テーブル43とスイッチ間通信処理部42を備えていない転送装置10を用いることもできる。
第1の実施形態では、削除のタイミングが同期される複数の処理ルールが1台の転送装置10に設定されている場合を例として説明する。なお、第1の実施形態では、組み合わせ管理テーブル43とスイッチ間通信処理部42を備えていない転送装置10を用いることもできる。
図4は、ネットワークとフローテーブルの例を説明する図である。ネットワークN1では、転送装置10は、端末5a、コントローラ60、サーバ70x、サーバ70yに接続されているとする。転送装置10は、SDNスイッチとして動作し、コントローラ60はSDNコントローラとして動作する。ネットワークN1では、端末5aのMACアドレスはA、サーバ70xのMACアドレスはX、サーバ70yのMACアドレスはYである。さらに、転送装置10にはSW1という識別子が割り当てられているとする。ネットワークN1では、サーバ70xは、転送装置10のポート1に接続されており、サーバ70yは、転送装置10のポート2に接続されている。
ここで、ネットワークN1では、転送装置10にサーバ70xとサーバ70yが接続されているので、転送装置10に接続する端末5は、サーバ70xとサーバ70yの両方にアクセス可能である。そこで、予め、コントローラ60は、転送装置10において、受信フレームをサーバ70xに転送する際に使用する処理ルールと、受信フレームをサーバ70yに転送する際に使用する処理ルールの削除のタイミングを同期させるように設定されているとする。
例えば、端末5aが転送装置10に接続して通信を開始しようとする場合、端末5aは、宛先のMACアドレスを問合わせるためのARP(Address Resolution Protocol)パケットを含むフレームを送信する。転送装置10の受信部14は、D−Plane回線インタフェース11を介して端末5aから送信されたフレームをフレーム処理部22に出力する。フレーム処理部22は、入力されたフレームに適用する処理ルールをフローテーブル21中で検索するが、この時点では、端末5aから送信されたフレームに関する処理ルールはフローテーブル21に記録されていないとする。すると、Openflowプロトコル処理部41は、受信フレームに適用する処理ルールをコントローラ60に要求するための要求メッセージを生成する。例えば、要求メッセージとして、Packet−Inメッセージが使用され得る。
コントローラ60は、要求メッセージを取得すると、端末5aがネットワークに含まれていることを認識する。コントローラ60は、トポロジ情報を更新すると共に、以後は、更新後のトポロジ情報を用いて、処理ルールの生成を行うことができる。例えば、コントローラ60は、端末5aから送信されたARPパケットを含むフレームを転送装置10のPort1やPort2から送信することを指定する処理ルールや、端末5a宛のフレームの出力ポートを指定する処理ルールを生成したとする。生成されたルールは、コントローラ60からC−プレーンを介して転送装置10に通知される。
転送装置10のOpenflowプロトコル処理部41は、C−Plane回線インタフェース12経由でコントローラ60から処理ルールを取得すると、得られた処理ルールをフローテーブル21に格納する。また、フレーム処理部22は、端末5aから送信されたフレームを通知された処理ルールに従って転送するので、端末5aから送信されたARPは、サーバ70xに到達する。サーバ70xは、ARP replyを端末5a宛に送信する。転送装置10のフレーム処理部22は、サーバ70xから送信されたARPreplyを含むフレームを、受信部14などを介して取得すると、フローテーブル21に従って処理する。このため、ARP replyを含むフレームが端末5aに到達し、端末5aは、通信先のMACアドレスを取得できる。
例えば、コントローラ60は端末5aにサーバ70xの特定のサービスの使用を許可し、ARP用のフローテーブルと同時に、サーバ70xの特定のサービスへの処理ルールをフローテーブル21に設定する。
ここで、コントローラ60には、予め、オペレータによって、サーバ70x宛のフレームの処理ルールと、サーバ70y宛のフレームの処理ルールとの間で、削除のタイミングを同期させることが設定されている。そこで、コントローラ60は、端末5aからサーバ70x宛てに送信されたフレームに適用する処理ルールには、削除のタイミングの同期処理に使用する設定情報を含める。設定情報の例については後述する。生成されたルールは、コントローラ60からC−プレーンを介して転送装置10に通知されるので、他の処理ルールと同様の手順により、フローテーブル21に記録される。
端末5aがサーバ70yと通信を開始する際にも、端末5aからのARPパケットを含むフレームの送信やサーバ70yからのARPreplyの送信が行われるので、端末5aは、サーバ70yのMACアドレス(Y)を取得できる。
例えば、コントローラ60は端末5aにサーバ70yの特定のサービスの使用を許可し、ARP用のフローテーブルと同時に、サーバ70yの特定のサービスへの処理ルールをフローテーブル21に設定する。
このとき、コントローラ60は、端末5aからサーバ70y宛てに送信されたフレームに適用する処理ルールにも、削除のタイミングの同期処理に使用する設定情報を含める。生成されたルールは、コントローラ60からC−プレーンを介して転送装置10に通知される。
図4のフローテーブル21は、転送装置10が保持するフローテーブル21の例である。図4の例では、フローテーブル21に、処理ルールの通知先の転送装置10の識別子と処理ルールが含まれているが、フローテーブル21には、転送装置10の識別子は含まれていなくても良い。また、フローテーブル21には、説明の関係上、一部の処理ルールを図示しているが、フローテーブル21には他の処理ルールも含まれ得る。
処理ルールには、マッチパターン、アクション、Cookie、idle timeoutの設定値、状態情報が含まれる。マッチパターンは、その処理ルールが適用されるフレームの条件を表わす情報である。アクションは、マッチパターンに該当するフレームに対して転送装置10で行う処理である。idle timeoutの設定値は、その処理ルールが使用されなくなってから削除可能であると判定されるまでの期間である。すなわち、使用されなくなってから経過した期間がidle timeoutの設定値に達した処理ルールは、検出部23によって、削除可能な処理ルールとして検出される。状態情報は、処理ルールの使用状況を表わす情報である。処理ルールが最後に使用されてから経過した期間がidle timeoutの設定値に達していない場合、状態情報=Activeに設定される。すなわち、状態情報=Activeは、使用中の処理ルールを表わしている。処理ルールが最後に使用されてから経過した期間がidle timeoutの設定値以上になっているが、削除時期を同期する他の処理ルールが削除可能な状態ではないため、削除を保留している場合、状態情報=保留中に設定される。
Cookieは、転送装置10での削除のタイミングを同期させるための設定情報として用いられている。Cookieは、処理ルールの削除のタイミングを同期させるための指示と、処理ルールの削除のタイミングを同期させる処理ルールのグループの識別情報を含む。Cookieに含まれる情報要素の例をF1に示す。図4の例では、Cookieが64ビットのビット列であり、上位16ビットが同期指示フィールドに使用される。例えば、削除時期を他の処理ルールと同期させる処理ルールの場合、同期指示フィールドの値は0xffffに設定される。Cookieの下位24ビットは、グループ識別子フィールドとして使用される。グループ識別子フィールドには、処理ルールの削除のタイミングを同期させる処理ルールのグループを識別する情報(グループ識別子)が記録される。なお、グループ識別子は、コントローラ60において、削除のタイミングを同期させる処理ルールのグループごとに設定される。例えば、コントローラ60は、端末5aとサーバ70xの間の通信に関する処理ルールと、端末5aとサーバ70yの間の通信に関する処理ルールを同じグループに分類すると共に、そのグループのグループ識別子を0x123432などの値に設定できる。
例えば、図4中のフローテーブル21では、1番目のエントリの上位16ビットが0xffffであり、グループ識別子が0x123432に設定されている。このため、フローテーブル21中の1番目のエントリに登録されている処理ルールの削除のタイミングは、グループ識別子=123432に設定されている他の処理ルールの削除と同期される。フローテーブル21の1番目のエントリには、送信元MACアドレス=A、かつ、宛先MACアドレス=Xであるフレームをポート1から出力することが設定されており、idle timeoutの設定値は300秒である。このため、端末5aからサーバ70x宛に送信されたフレームは、1番目のエントリに従って、転送装置10のポート1から出力される。
フローテーブル21中の2番目のエントリには、送信元MACアドレス=A、かつ、宛先MACアドレス=Yであるフレームをポート2から出力することが設定されており、idle timeoutの設定値は300秒である。端末5aからサーバ70y宛に送信されたフレームは、2番目のエントリに従って、転送装置10のポート2から出力される。さらに、フローテーブル21中の2番目のエントリでも、Cookieの上位16ビットが0xffffであり、グループ識別子が123432に設定されている。このため、フローテーブル21の2番目のエントリと1番目のエントリは、フローテーブル21からの削除のタイミングを同期させるエントリ同士である。
なお、図4のF1に示したフォーマットは一例であり、Cookie中に含まれている情報要素や各情報の格納に用いられるビットなどは、実装に応じて任意に変更され得る。さらに、グループ識別子やidle timeoutの同期設定などに使用されるビット数も、実装に応じて任意に変更され得る。
図5は、削除対象のエントリを検出したときの処理の例を説明するフローチャートである。なお、図5では、削除のタイミングを他の処理ルールと同期させることが指定されている処理ルールのことを、「idle timeout同期型」の処理ルールと記載している。
検出部23は、idle timeoutの発生を検出する(ステップS11)。このとき、検出部23は、フローテーブル21中のいずれかのエントリ中の処理ルールにおいて、使用されていない期間がidle timeoutの設定値以上になっている場合に、idle timeoutを検出したと判定する。検出部23は、idle timeoutが発生した処理ルールを特定する情報と共に、idle timeoutの発生を同期制御部32に通知する。例えば、図4のフローテーブル21中の2番目のエントリに格納されている処理ルールが使用されていない期間が300秒を超えたとする。すると、検出部23は、フローテーブル21中の2番目のエントリ中の処理ルールに対して、idle timeoutが発生したと判定し、検出した結果を同期制御部32に通知する。
同期制御部32は、idle timeoutが発生したと判定された処理ルールが、idle timeout同期型の処理ルールであるかを判定する(ステップS12)。このとき、同期制御部32は、フローテーブル21中のCookieを用いて判定を行う。idle timeoutが発生したと判定された処理ルールが、idle timeout同期型の処理ルールではない場合、同期制御部32は、idle timeoutが発生した処理ルールを削除する(ステップS12でNo、ステップS13)。
一方、idle timeoutが発生したと判定された処理ルールが、idle timeout同期型の処理ルールであるとする(ステップS12でYes)。この場合、取得部31は、フローテーブル21中で、idle timeoutが発生した処理ルールと同じグループの処理ルールを特定する(ステップS14)。取得部31は、特定した処理ルールのうち、Activeに設定されている処理ルールがあるかを判定する(ステップS15)。特定された処理ルールのうち、Activeに設定されている処理ルールがある場合、同期制御部32は、Idle timeoutの発生が検出された処理ルールの状態情報を保留中に設定する(ステップS15でYes、ステップS16)。
次に、特定された処理ルール中にActiveに設定されている処理ルールがないとする(ステップS15でNo)。この場合、同期制御部32は、Idle timeoutの発生が検出された処理ルールと同じグループ識別子に対応付けられた全ての処理ルールを削除する(ステップS17)。
例えば、図4のフローテーブル21中の2番目のエントリ中の処理ルールのidle timeoutが発生した場合を例として、図5のステップS14〜S16での処理を説明する。フローテーブル21の2番目のエントリ中のCookieの上位16ビットが0xffffであることから、同期制御部32は、2番目のエントリはidle timeout同期型の処理ルールであると判定する。そこで、取得部31は、フローテーブル21中のCookie値を用いて、フローテーブル21中の2番目のエントリと同じグループに属する処理ルールを特定する。その結果、取得部31は、フローテーブル21の1番目のエントリは、フローテーブル21中の2番目のエントリと同じグループに属すると判定する。すると、取得部31は、フローテーブル21を参照し、1番目のエントリ中の処理ルールでは状態情報がActiveに設定されていることを特定する。同期制御部32は、取得部31が特定した結果に応じて、Idle timeoutの発生が検出された処理ルールを処理する。図4の例では、Idle timeoutの発生が検出された処理ルールと同じグループでActiveに設定されている処理ルールがあるので、同期制御部32は、2番目のエントリ中の処理ルールを削除せず、状態情報を保留中に設定する。
図6に、同期制御部32によって、更新されたフローテーブルの例を示す。図4、図5を参照しながら説明したように、同じグループに属するエントリのうちの1つ以上において、状態情報がActiveに設定されている場合、同期制御部32は、Idle timeoutが発生した処理ルールが今後の通信で使用される可能性があると判定できる。このため、同期制御部32は、Idle timeoutが発生した処理ルールと同じグループに属する処理ルールの状態情報がActiveの場合、Idle timeoutが発生した処理ルールを削除しない。換言すると、同期制御部32は、Idle timeoutが発生した処理ルールが、後で使用される可能性があるかを、Idle timeoutが発生した処理ルールと同じグループに属する処理ルールの使用状況を指標として用いて判定していることになる。
一方、図6のフローテーブル21が使用されているときに、1番目のエントリに格納されている処理ルールについて、Idle timeoutが発生したとする。この場合、2番目のエントリ中の処理ルールは、Idle timeoutが発生した処理ルールと同じグループに属するが、状況情報が保留中に設定されている。このため、取得部31は、図5のステップS15のNoと判定される場合で説明したように、Idle timeoutが発生した処理ルールと同じグループに属し、かつ、状態情報がActiveである処理ルールは無いと判定する。すると、同期制御部32は、図6中の1番目のエントリと2番目のエントリの両方を削除する。
ところで、状態情報が保留中に設定された処理ルールであっても、その処理ルールを適用するデータフレームを転送装置10が受信すると、その処理ルールが使用されるため、状態情報が保留中からActiveに設定変更される。以下、このケースについて、図7を参照しながら説明する。
図7は、フレームを受信したときの処理の例を説明するフローチャートである。なお、図7は一例であり、実装に応じて処理の順序は変更され得る。例えば、ステップS26の処理は、ステップS23〜S25の処理と並行して行われても良く、また、ステップS26の処理がステップS23〜S25の前に行われても良い。
D−Plane回線インタフェース11は、Dプレーンのフレームを受信する(ステップS21)。受信部14は、D−Plane回線インタフェース11で受信された受信フレームを、フレーム処理部22に出力する。フレーム処理部22は、受信フレームの処理に使用する処理ルールをフローテーブル21中で検索する(ステップS22)。フレーム処理部22は、受信フレームに適用する処理ルールを同期制御部32に通知する。同期制御部32は、適用する処理ルールがidle timeout同期型であるかを判定する(ステップS23)。適用する処理ルールがidle timeout同期型である場合、同期制御部32は、適用する処理ルールの状態情報がActiveであるかを判定する(ステップS23でYes、ステップS24)。適用する処理ルールの状態情報がActiveではない場合、同期制御部32は、適用する処理ルールの状態情報をActiveに変更する(ステップS24でNo、ステップS25)。その後、フレーム処理部22は、ステップS22で検索した処理ルールを用いて、受信フレームを処理する(ステップS26)。
なお、適用する処理ルールの状態情報がActiveである場合も、フレーム処理部22は、ステップS22で検索した処理ルールを用いて、受信フレームを処理する(ステップS24でYes、ステップS26)。さらに、適用する処理ルールがidle timeout同期型ではない場合も、フレーム処理部22は、ステップS22で検索した処理ルールを用いて、受信フレームを処理する(ステップS23でNo、ステップS26)。
例えば、転送装置10が図6に示すフローテーブル21を保持しているとする。図6の状態では、端末5aからサーバ70y宛に送信されるフレームに適用される処理ルールは、削除されていないが削除の保留中である。この状態で、転送装置10は、Dプレーンのフレームを端末5aから受信したとする。転送装置10の受信部14は、D−Plane回線インタフェース11を介して、Dプレーンの受信フレームを取得し、取得したフレームをフレーム処理部22に出力する。フレーム処理部22は、図6の2つ目のエントリを受信フレームに適用する処理ルールとして選択する。すると、同期制御部32は、フレーム処理部22によって選択された処理ルールがidle timeout同期型であり、かつ、状態情報=保留中に設定されているので、選択された処理ルールの状態情報をActiveに更新する。このため、図6に示すフローテーブル21は、図4に示すように更新される。
また、フレーム処理部22は、受信フレームを、選択した処理ルールに従って、受信フレームの出力先をポート2に指定して、送信部13に出力する。送信部13は、受信フレームを、D−Plane回線インタフェース11が備えるポート2から出力させるので、受信フレームはサーバ70yに向けて転送される。
このように、転送装置10は、処理ルールにグループを特定する情報が含まれている場合、同じグループ中の他の処理ルールの使用状況に応じて、所定期間以上使用されていない処理ルールを削除するかを決定する。従って、設定された期間にわたって使用されていない処理ルールであっても、後で使用される可能性が高いことが特定された場合、転送装置10は削除せずに保持する。その結果、コントローラ60は、過去に通知済みの処理ルールを複数回にわたって転送装置10から問い合わせられる可能性が低くなる。
例えば、図4に示すネットワークN1において、サーバ70xはファイルサーバであり、サーバ70yはインターネット接続の際に端末Aが使用するプロキシサーバであるとする。この場合、端末5aのユーザがインターネットにアクセスしていないが、サーバ70xとの間でデータの送受信を行っている場合、端末5aは、転送装置10を介してサーバ70yともアクセス可能な状態である。実施形態にかかる方法では、端末5aから所定期間以上にわたってサーバ70yに対するアクセスがなくても、端末5aからサーバ70yに宛てたフレームの処理ルールが使用中の他の処理ルールに対応付けられていると削除されない。このため、端末5aのユーザの処理になどにより、端末5aが所定の設定期間以上の期間を経てから、サーバ70y宛のフレームを送信しても、転送装置10はコントローラ60に処理ルールを要求せずに、受信フレームを処理できる。その結果、コントローラ60での処理負荷が軽減される。
<第2の実施形態>
第2の実施形態では、削除のタイミングが同期される複数の処理ルールが異なる転送装置10に設定されている場合を例として説明する。
第2の実施形態では、削除のタイミングが同期される複数の処理ルールが異なる転送装置10に設定されている場合を例として説明する。
図8は、ネットワークの例を説明する図である。図8に示すネットワークでは、複数の転送装置10(10a〜10f)とコントローラ60が含まれている。各転送装置10は、コントローラ60や他の転送装置10と、C−プレーンの通信回線を介して接続している。さらに、転送装置10間には、受信したデータフレームの送受信に使用されるD−プレーンの回線が接続されている。図8では、図を見やすくするために、転送装置10間での通信に使用されるD−プレーンの回線を破線で示している。さらに、各転送装置10には、1つ以上の端末5がD−プレーンの通信回線を介して接続されている。なお、図8の例では、端末5a〜5kを図示しているが、ネットワーク中の端末5の数は任意である。さらに、ネットワーク中の転送装置10の数も任意である。
以下の説明では、動作を行っている転送装置10を明確にするために、符号の最後に動作を行っている転送装置10に割り当てられているアルファベットを記載することがある。例えば、フレーム処理部22eは転送装置10eのフレーム処理部22であり、同期制御部32fは転送装置10fの同期制御部32である。
第2の実施形態では、削除のタイミングを同期させる処理ルールが設定される転送装置10は、削除のタイミングを同期させる処理ルールのグループごとに、オペレータによって、予め決められている。例えば、ある端末5とサーバ70の間の通信に使用される経路中の転送装置10と冗長経路に含まれる転送装置10は、その端末5とサーバ70の間の通信について、削除のタイミングを同期させる処理ルールが設定される転送装置10の組み合わせに含まれる。
図9は、転送装置10の組み合わせの例を説明する図である。図9では、図8のネットワークに含まれる装置のうち、端末5a、転送装置10a、転送装置10e、転送装置10f、コントローラ60を抜き出して記載している。図9では、コントローラ60と転送装置10eの間の制御用の通信経路を矢印A1で示し、コントローラ60と転送装置10fの間の制御用の通信経路を矢印A2で示している。以下の説明では、C−プレーンの通信の際に転送装置10が使用するIP(Internet Protocol)アドレスは、転送装置10aではSW1、転送装置10eではSW11、転送装置10fではSW12であるとする。
例えば、矢印Dに示すように、端末5aが転送装置10aと転送装置10eを介して、サーバ70(図示せず)や他の端末5(図示せず)と通信しているとする。また、端末5aから、転送装置10aと転送装置10fを介する通信経路は、矢印Dで示す通信経路の冗長経路であるとする。この場合、転送装置10fが転送装置10eの予備装置として動作可能となるように、通信に使用される経路の切り替えに備えて、転送装置10eと転送装置10fのいずれにも、端末5aから送信されるフレームの処理に使用する処理ルールが設定される。従って、図9の場合、端末5aから送信されるフレームの削除時期を同期させる場合、転送装置10eと転送装置10fは、削除時期を同期させる処理ルールが設定される転送装置10の組み合わせとなる。オペレータは、削除時期を同期させる処理ルールを設定する転送装置10には、予め、組み合わせ管理テーブル43を設定しておくものとする。
図10は、組み合わせ管理テーブル43の例を説明する図である。組み合わせ管理テーブル43には、組み合わせとなる転送装置10ごとに、その転送装置10との通信の際に使用する情報が記録されている。図10は、転送装置10eが保持する組み合わせ管理テーブル43eを示す。例えば、図9を参照しながら説明したように、転送装置10eと転送装置10fが1つの組み合わせに含まれており、組み合わせ管理テーブル43eには、転送装置10fの情報が記録されているとする。図10の例では、組み合わせ管理テーブル43には、項1にIPアドレスが記録され、項2に通信状態が記録される。図10では、項1には転送装置10fがC−プレーンの通信で使用しているIPアドレスがSW12であることが記録されている。通信状態の欄には、転送装置10fの通信状態として、ConnectedとDisconnectedのいずれかが設定される。Connectedは、転送装置10eと転送装置10fの間の通信が正常であることを示し、Disconnectedは、転送装置10eと転送装置10fの間の通信に異常が発生していることを示す。
なお、図10の例では、組み合わせ管理テーブル43eのうち、1台の転送装置10fの情報を示したが、組み合わせ管理テーブル43には任意の数の転送装置10の情報が含まれ得る。3台以上の転送装置10が1つの組み合わせに含まれている場合、組み合わせに含まれる転送装置10の各々は、同じ組み合わせに含まれる自装置以外の全ての転送装置10の情報を組み合わせ管理テーブル43に保持している。この場合、通信状態として、項1のIPアドレスが割り当てられた転送装置との間の通信状態が記録される。
各転送装置10の取得部31や同期制御部32は、その転送装置10が保持する処理ルールと同期して削除する処理ルールを保持している転送装置10の情報を、組み合わせ管理テーブル43を用いて特定する。また、スイッチ間通信処理部42は、取得部31や同期制御部32などの要求に応じて、他の転送装置10との間での通信処理を行う。
図11は、転送装置10間での通信に使用されるフレームのフォーマットの例を説明する図である。F1に示すように、転送装置10間で送受信されるフレームには、L2ヘッダ、IPヘッダ、TCP(Transmission Control Protocol)ヘッダ、同期ヘッダ、プロトコルデータが含まれる。同期ヘッダには、フレーム中のデータ種別とプロトコルデータ長が含まれる。プロトコルデータは、データ種別によって異なる。
P1は、ある処理ルールと同じグループに含まれている処理ルールに対して設定されている状態情報の問い合わせのフレームに含まれる同期ヘッダとプロトコルデータの例である。データ種別=1は、状態情報の問い合わせのフレームであることを表わすとする。状態情報の問い合わせのフレームのプロトコルデータには、問い合わせの対象となる処理ルールが属するグループのグループ識別子が含められる。
P2は、状態情報の問い合わせに対する応答フレームに含まれる同期ヘッダとプロトコルデータの例である。データ種別=2は、状態情報の問い合わせに対する応答(状態応答)のフレームであることを表わす。状態応答の問い合わせのフレームのプロトコルデータには、問い合わせの対象となったグループのグループ識別子と、グループ識別子に対応付けられた処理ルールの状態情報が含められる。
P3は、削除時期を同期させる処理ルールの削除が可能な状態になっていることを通知するフレーム(完了通知)に含まれる同期ヘッダとプロトコルデータの例である。データ種別=3は、完了通知のフレームであることを表わすとする。完了通知のフレームのプロトコルデータには、削除が可能な状態になっている処理ルールが属するグループのグループ識別子が含められる。
図12は、ネットワークとフローテーブルの例を説明する図である。以下、図12を参照しながら、図8に示すネットワーク中の端末5aと端末5fが通信する場合を例として、転送装置10で行われる処理の例を説明する。
ネットワークN11は、図8のネットワークに含まれる装置のうち、端末5a、転送装置10a、転送装置10e、転送装置10f、転送装置10b、端末5fを抜き出して記載している。図12の例では、転送装置10a、転送装置10e、転送装置10f、転送装置10bが、同じグループに含まれている処理ルールを保持する転送装置10の組み合わせに設定されているとする。さらに、転送装置10aでは、fast feiloverによる経路切り替えを行うために、転送装置10eに接続されているポートと転送装置10fに接続されているポートとが1つのグループ(Group 1)に設定されているとする。以下、端末5aのMACアドレスはAであり、端末5fのMACアドレスはFであるとする。さらに、転送装置10aではSW1、転送装置10bではSW2、転送装置10eではSW11、転送装置10fではSW12というIPアドレスがCプレーンでの通信に使用されているとする。
端末5aが端末5fと通信を開始するために、ARPパケットを含むフレームを送信したとする。この時点では、転送装置10aが保持するフローテーブル21aには、端末5aから送信されたフレームに適用可能な処理ルールが記録されていないとする。この場合、図4などを参照しながら説明した処理と同様の処理により、転送装置10aは、コントローラ60に対して要求メッセージを送信する。
コントローラ60は、端末5aから転送装置10a、転送装置10e、転送装置10bを介して端末5fに至る経路を通信経路として計算したとする。さらに、コントローラ60は、端末5aから転送装置10a、転送装置10f、転送装置10bを介して端末5fに至る経路を冗長経路として求めたとする。さらに、コントローラ60は、転送装置10a、転送装置10b、転送装置10e、転送装置10fが1つの同じグループに含まれている処理ルールを保持する転送装置10の組み合わせに設定されていることも認識している。このため、端末5aから端末5fに至る通信経路と冗長経路の設定のために転送装置10a、転送装置10b、転送装置10e、転送装置10fの各々に設定される処理ルールには、削除のタイミングを調整するための設定情報として同じ値が含められる。図12の例では、図4での説明と同様に、削除のタイミングを調整するための設定情報としてCookie値が使用され、Cookie値のフォーマットも図4のF1と同様であるとする。以下、端末5aから端末5fに至る通信経路と冗長経路の設定に使用される処理ルールに適用されるグループ識別子は0x123456であるとする。
図12のテーブルT1は、コントローラ60が端末5aから端末5fに至る通信経路と冗長経路の設定のために生成した処理ルールと、各処理ルールの設定先の転送装置の例である。転送装置10a(SW1)に設定される処理ルールには、送信先MAC=Fのフレームを、ポートグループのGroup1に出力することが含まれる。転送装置10e(SW11)に設定される処理ルールには、宛先MACアドレス=Fのフレームを、転送装置10bに出力することが含まれる。転送装置10fは、転送装置10eを介する経路に障害が発生した場合に転送装置10eの代替として動作する装置であるので、転送装置10f(SW12)には、転送装置10eと同じ処理ルールが適用される。転送装置10b(SW2)に設定される処理ルールには、宛先MACアドレス=Fのフレームを、MACアドレス=Fが割り当てられた端末5fに接続されているポートから出力することが含まれる。テーブルT1のいずれの処理ルールでも、Cookie値の上位16ビットは0xffffであり、下位24ビットは0x123456である。このため、テーブルT1に含まれている全ての処理ルールの間で、削除のタイミングの同期が取られる。
なお、Idle timeoutの設定値は、削除のタイミングを同期させる処理ルールの間で同じであっても異なっていても良い。テーブルT1の例では、テーブルT1のいずれの処理ルールについても、Idle timeoutが300秒に設定されている。
コントローラ60は、テーブルT1に示す情報を生成すると、各処理ルールを、設定先の転送装置10に通知する。また、各転送装置10中のOpenflowプロトコル処理部41は、コントローラ60から受信した処理ルールを、第1の実施形態で説明した手順と同様の処理により、フローテーブル21に格納する。さらに、各転送装置10において、同期制御部32は、新たに格納された処理ルールに対応付ける状態情報を、Activeに設定する。このため、転送装置10aが保持するフローテーブル21は、フローテーブル21aに示す通りになる。同様に、転送装置10eは図12に示すフローテーブル21eを保持し、転送装置10fは図12に示すフローテーブル21fを保持する。さらに、転送装置10bは図12に示すフローテーブル21bを保持する。
図13は、転送装置10が行う処理の例を説明するシーケンス図である。図13は、図12に示すネットワークN11において、転送装置10a、転送装置10b、転送装置10e、転送装置10fの各々が図12に示すフローテーブル21を保持している場合の処理の例を示している。図13の最初の段階では、転送装置10eを介する転送経路に障害が発生していないので、転送装置10aにおいて、Group1が転送先に指定されると、転送装置10eにフレームが転送されるとする。
端末5aが端末5fに宛てて送信したデータフレームは、転送装置10aに到達する。転送装置10aの受信部14aは、データフレームをフレーム処理部22aに出力する。フレーム処理部22aは、フローテーブル21a(図12)に従って、データフレームを転送するので、データフレームは転送装置10eに到達する(ステップS31)。転送装置10eでも、受信部14e等を介してデータフレームを取得したフレーム処理部22eは、フローテーブル21e(図12)を参照することにより、データフレームを転送装置10bに転送する(ステップS32)。すると、転送装置10bのフレーム処理部22bは、データフレームを、フローテーブル21bに従って端末5fに転送する。ステップS31とS32の処理によって、転送装置10a、転送装置10e、転送装置10bの各々では、グループ識別子=0x123456に対応付けられている処理ルールが使用されている。このため、転送装置10a、転送装置10e、転送装置10bの各々では、グループ識別子=0x123456に対応付けられている処理ルールは削除可能な処理ルールとして検出されない。
一方、転送装置10fでは、検出部23fがフローテーブル21f中の1番目のエントリに示す処理ルールについて、その処理ルールが使用されていない期間がidle timeoutの設定値である300秒を超えたことを検出したとする。すると、検出部23fは、フローテーブル21f中の宛先MACアドレス(Dstmac)=Fのエントリに示す処理ルールを削除可能な処理ルールとして、同期制御部32fに通知する。同期制御部32fは、Cookieを用いて、idle timeoutが発生した処理ルールの削除時期が他の処理ルールの削除時期と同期されるかを判定する。フローテーブル21f中の1番目のエントリの処理ルールでは、Cookieの上位16ビットが0xffffである。このため、同期制御部32fは、idle timeoutが発生した処理ルールはidle timeout同期型の処理ルールであると判定する。同期制御部32fは、取得部31fにidle timeoutが発生した処理ルールが削除のタイミングを同期させる処理ルールの状況の取得を要求する。取得部31fは、idle timeoutが発生した処理ルールと削除時期を同期させる他の処理ルールが、ネットワーク中のいずれかの転送装置10で使用中であるかを判定するために、状態問合せフレーム(図11)に含めるデータを生成する。ここでは、状態問合せフレームに含めるデータとして、以下の情報が生成される。
同期ヘッダ :1(状態問合せ)
プロトコルデータ:グループ識別子=0x123456
取得部31fは、生成したデータを、組み合わせ管理テーブル43fに含まれている転送装置10の各々に送信することをスイッチ間通信処理部42fに要求する。スイッチ間通信処理部42fは、組み合わせ管理テーブル43fを参照する。図13の例では、組み合わせ管理テーブル43fには、転送装置10a、転送装置10b、転送装置10eのIPアドレスなどの情報が含まれている。そこで、スイッチ間通信処理部42は、転送装置10a、転送装置10b、転送装置10eに宛てて、状態問合せフレームを送信する(ステップS33)。このとき、状態問合せフレームの送信は、C−プレーンを介して行われる。
同期ヘッダ :1(状態問合せ)
プロトコルデータ:グループ識別子=0x123456
取得部31fは、生成したデータを、組み合わせ管理テーブル43fに含まれている転送装置10の各々に送信することをスイッチ間通信処理部42fに要求する。スイッチ間通信処理部42fは、組み合わせ管理テーブル43fを参照する。図13の例では、組み合わせ管理テーブル43fには、転送装置10a、転送装置10b、転送装置10eのIPアドレスなどの情報が含まれている。そこで、スイッチ間通信処理部42は、転送装置10a、転送装置10b、転送装置10eに宛てて、状態問合せフレームを送信する(ステップS33)。このとき、状態問合せフレームの送信は、C−プレーンを介して行われる。
転送装置10eのスイッチ間通信処理部42eは、状態問合せフレームを受信すると、同期制御部32eに出力する。同期制御部32eは、フローテーブル21eを参照して、状態問合せフレームで通知されたグループ識別子をCookieに含む処理ルールの状態を取得する。ステップS33の時点では、問合せの対象となっている処理ルールはステップS32の処理で使用されているため、Activeに設定されている。そこで、同期制御部32eは、以下の情報を含む応答フレームのデータを生成する。
同期ヘッダ :2(状態応答)
プロトコルデータ:グループ識別子=0x123456
状態 :Active
スイッチ間通信処理部42eは、同期制御部32eで生成されたデータを含む応答フレームを、転送装置10fに送信する。
同期ヘッダ :2(状態応答)
プロトコルデータ:グループ識別子=0x123456
状態 :Active
スイッチ間通信処理部42eは、同期制御部32eで生成されたデータを含む応答フレームを、転送装置10fに送信する。
転送装置10a、転送装置10bにおいても、状態問合せフレームを受信すると、転送装置10eと同様の処理を行う。このため、転送装置10fには、転送装置10a、転送装置10b、転送装置10eから問合せ対象の処理ルールが使用されていることを表す応答フレームが到達する。
転送装置10fのスイッチ間通信処理部42fは、C-Plane回線インタフェース12fを介して受信した応答フレームを取得部31fに出力する。取得部31fは、問い合わせた処理ルールと削除時期を同期する処理ルールがネットワーク中の他の転送装置10においてActiveに設定されていることを、同期制御部32fに通知する。すると、同期制御部32fは、フローテーブル21f中でidle timeoutが発生している処理ルールを削除せずに、状態情報を保留中に設定する。このため、フローテーブル21fでは、宛先MACアドレス(Dstmac)=Fの処理ルールの状態情報が保留中に設定される(ステップS34)。
その後、転送装置10aと転送装置10eの間のDプレーンのリンクで障害が発生したとする。すると、fast failover機能により、転送装置10aではGroup1のポートに出力するフレームが転送装置10fに向けて出力されるようになる。障害発生による経路の切り替えの後で、端末5aから端末5f宛てのデータフレームが送信されたとする。すると、転送装置10aでは、受信部14a等を介してデータフレームを取得したフレーム処理部22aは、フローテーブル21a(図12)を参照することにより、データフレームをポートのGroup1に出力する。このため、データフレームは転送装置10fに到達する(ステップS35)。
転送装置10fでは、受信部14f等を介してデータフレームを取得したフレーム処理部22fが、フローテーブル21fを参照することにより、データフレームの転送先を転送装置10bに転送する(ステップS36)。同期制御部32fは、宛先MACアドレス(Dstmac)=Fの処理ルールがデータフレームの転送に使用されたことから、Dstmac=Fの処理ルールの状態情報をActiveに設定する(ステップS37)。
転送装置10e中の検出部23eは、フローテーブル21e中のDstmac=Fの処理ルールが使用されていない期間が、idle timeoutの設定値(300秒)を超えたことを検出したとする。すると、転送装置10eは、ステップS33で説明した転送装置10fでの処理と同様の処理により、以下の情報を含む状態問合せフレームを、転送装置10a、転送装置10b、転送装置10fに宛てて送信する(ステップS38)。
同期ヘッダ :1(状態問合せ)
プロトコルデータ:グループ識別子=0x123456
同期ヘッダ :1(状態問合せ)
プロトコルデータ:グループ識別子=0x123456
転送装置10a、転送装置10b、転送装置10fでは、状態問合せフレームを受信すると、同期制御部32は、状態問合せフレームで通知されたグループ識別子をCookieに含む処理ルールの状態がActiveであることを特定する。このため、ステップS33で説明した応答フレームの送信処理と同様の処理が、転送装置10a、転送装置10b、転送装置10fで行われる。従って、転送装置10eには、転送装置10a、転送装置10b、転送装置10fから問合せ対象の処理ルールが使用されていることを表す応答フレームが到達する。
転送装置10e中の同期制御部32eは、ステップS34での転送装置10fの処理と同様の処理により、フローテーブル21eを更新する。このため、フローテーブル21eにおいて、宛先MACアドレス(Dstmac)=Fの処理ルールの状態情報が保留中に設定される(ステップS39)。
その後、端末5aと端末5fとの間の通信も終了したとする。さらに、端末5aが通信システムから離脱したとする。
転送装置10aにおいて、フローテーブル21a中の送信先MACアドレス(Dstmac)=Fの処理ルールが使用されていない期間がidle timeoutの設定値(300秒)を超えたことを、検出部23aが検出したとする。すると、転送装置10aは、ステップS33で説明した転送装置10fでの処理と同様の処理により、グループ識別子=0x123456を含む状態問合せフレームを、転送装置10b、転送装置10e、転送装置10fに送信する(ステップS40)。この時点では、転送装置10eでは、グループ識別子=0x123456を含む処理ルールは保留中であるが、転送装置10bと転送装置10fのいずれでもグループ識別子=0x123456を含む処理ルールがActiveであると通知される。すると、転送装置10a中の同期制御部32aは、DstMac=Fの処理ルールの状態を保留中に設定する。
次に、転送装置10fでも、検出部23fが、フローテーブル21f中のDstmac=Fの処理ルールが使用されていない期間がidle timeoutの設定値(300秒)を超えたと判定したとする。すると、転送装置10fも、転送装置10aと同様にグループ識別子=0x123456を含む状態問合せフレームを送信する(ステップS41)。この時点では、転送装置10eと転送装置10aでは、グループ識別子=0x123456を含む処理ルールは保留中であるが、転送装置10bではグループ識別子=0x123456を含む処理ルールがActiveであると通知される。すると、転送装置10f中の同期制御部32fは、Dstmac=Fの処理ルールの状態を保留中に設定する。
さらに、転送装置10b中の検出部23bが、フローテーブル21b中のDstmac=Fの処理ルールが使用されていない期間がidle timeoutの設定値(300秒)を超えたと判定したとする。転送装置10bも、転送装置10fと同様にグループ識別子=0x123456を含む状態問合せフレームを送信する(ステップS42)。この時点では、転送装置10e、転送装置10a、転送装置10fのいずれでも、グループ識別子=0x123456を含む処理ルールは保留中である。すると、転送装置10b中の同期制御部32bは、グループ識別子=0x123456に属する処理ルールが削除可能な状態になっていると判定する。そこで、同期制御部32bは、Dstmac=Fの処理ルールの状態をフローテーブル21bから削除する(ステップS43)。さらに、取得部31bは、グループ識別子=0x123456に属する処理ルールが削除可能な状態になっていることを他の転送装置10に通知するために、取得部31bは、完了通知フレーム(図11)に含めるデータを生成する。ここでは、完了通知フレームに含めるデータとして、以下の情報が生成される。
同期ヘッダ :3(完了通知)
プロトコルデータ:グループ識別子=0x123456
取得部31bは、生成したデータを組み合わせ管理テーブル43bに含まれている転送装置10の各々に送信することを、スイッチ間通信処理部42bに要求する。すると、スイッチ間通信処理部42bは、転送装置10a、転送装置10e、転送装置10eに宛てて、完了通知フレームを送信する(ステップS44)。
同期ヘッダ :3(完了通知)
プロトコルデータ:グループ識別子=0x123456
取得部31bは、生成したデータを組み合わせ管理テーブル43bに含まれている転送装置10の各々に送信することを、スイッチ間通信処理部42bに要求する。すると、スイッチ間通信処理部42bは、転送装置10a、転送装置10e、転送装置10eに宛てて、完了通知フレームを送信する(ステップS44)。
完了通知フレームを受信した各転送装置10では、完了通知フレームがスイッチ間通信処理部42を介して同期制御部32に出力される。すると、同期制御部32は、グループ識別子=0x123456に属する処理ルールが削除可能な状態になっていることを認識し、グループ識別子=0x123456に属する処理ルールをフローテーブル21から削除する。このため、転送装置10a、転送装置10b、転送装置10e、転送装置10fのいずれでも、フローテーブル21から、グループ識別子=0x123456に対応付けられた処理ルールが削除される。
図14は、削除対象のエントリを検出したときの転送装置10の処理の例を説明するフローチャートである。なお、図14は一例である。例えば、ステップS63とS64の順序は互いに変更されてもよい。図14のステップS51〜S55は、図5を参照しながら説明したステップS11〜S15の処理と同様である。
次に、idle timeoutが発生した処理ルールと同じグループの処理ルールのうち、Activeに設定されている処理ルールがない場合(ステップS55でNo)について説明する。スイッチ間通信処理部42は、組み合わせ管理テーブル43に記録された転送装置10の各々に、状態問合せフレームを送信する(ステップS56)。スイッチ間通信処理部42は、状態問合せフレームに対する応答の待ち時間(T1)が経過するまで、応答フレームを待ち合わせる(ステップS57でNo)。待ち時間(T1)が経過すると、同期制御部32は、いずれの転送装置10でも、idle timeoutが発生した処理ルールと同じグループの処理ルールがActiveに設定されていないかを判定する(ステップS57でYes、ステップS58)。ステップS58の判定は、同期制御部32が応答フレーム中の状態情報を参照することにより行われる。いずれの転送装置10でも、idle timeoutが発生した処理ルールと同じグループの処理ルールがActiveに設定されていない場合、同期制御部32は、未受信の応答フレームがあるかを判定する(ステップS58でYes、ステップS59)。ステップS59において、同期制御部32は、状態問合せフレームの宛先の全てから応答フレームを受信していない場合、未受信の応答フレームがあると判定する。
未受信の応答フレームがある場合、そのグループの処理ルールがActiveである転送装置10で障害が発生した可能性がある(ステップS59でYes)。このため、同期制御部32は、障害の発生している転送装置10の代替えとして自装置が動作する可能性があると判定できる。従って、idle timeoutが発生した処理ルールを使用する可能性があるので、同期制御部32は、idle timeoutが発生した処理ルールを削除しない。同期制御部32は、idle timeoutが発生した処理ルールの状態がActiveに変化しているかを判定する(ステップS60)。ここで、idle timeoutが発生した処理ルールの状態がActiveに変化していない場合、モニタ期間(T2)を経過したかを判定する(ステップS61)。なお、ステップS61でのモニタ期間T2は、未受信の応答があると判定してから、idle timeoutが発生した処理ルールの状態がActiveに変化しているかのモニタを行う期間として、同期制御部32が設定した期間である。モニタ期間が経過していない場合、ステップS60以降の処理が繰り返される(ステップS61でNo)。
一方、idle timeoutが発生した処理ルールの状態がActiveに変化したと判定された場合(ステップS60でYes)、障害の発生した転送装置10等の代替えとして自装置が動作していることになる。そこで、同期制御部32は、idle timeoutが発生した処理ルールと同じグループの処理ルールのうち、自装置が保持するフローテーブル21に含まれている処理に使用していない処理ルールの状態を保留中に設定する(ステップS62)。
未受信の応答フレームがなく、idle timeoutが発生した処理ルールと同じグループの処理ルールがいずれの転送装置10でもActiveではないとする(ステップS59でNo)。この場合、同期制御部32は、そのグループの処理ルールは削除可能であると判定する。そこで、スイッチ間通信処理部42は、組み合わせ管理テーブル43に含まれている全ての転送装置10に、削除可能になったグループの識別番号を含む完了通知を送信する(ステップS63)。さらに、同期制御部32は、idle timeoutが発生した処理ルールと同じグループに対応付けられた全ての処理ルールを削除する(ステップS64)。
ステップS61において、モニタ期間(T2)を経過したと判定された場合は、自装置は他の転送装置10の代替えとして、Idle timeoutの発生が検出された処理ルールを使用していない(ステップS61でYes)。そこで、この場合も、ステップS63とステップS64の処理が行われる。
次に、idle timeoutが発生した処理ルールと同じグループの処理ルールのうち、Activeに設定されている処理ルールがあるとする(ステップS55でNo)。この場合、同期制御部32は、Idle timeoutの発生が検出された処理ルールと同じグループ識別子に対応付けられた全ての処理ルールを保留中に設定する(ステップS65)。さらに、応答フレームによって、いずれかの転送装置10において、idle timeoutが発生した処理ルールと同じグループの処理ルールがActiveであることが通知された場合(ステップS58でNo)も、ステップS65の処理が行われる。
図15は、他の転送装置10からのフレームを受信したときの転送装置10の処理の例を説明するフローチャートである。なお、図15は処理の一例である。例えば、実装に応じて、ステップS71、S73、S75の判定の順序は変更され得る。
同期制御部32は、完了通知を受信したかを判定する(ステップS71)。完了通知を受信した場合、同期制御部32は、完了通知に含まれるグループ識別子に対応付けられた全ての処理ルールを削除する(ステップS71でYes、ステップS72)。
完了通知を受信していない場合、同期制御部32は、受信フレームが状態問合せであるかを判定する(ステップS71でNo、ステップS73)。受信フレームが状態問合せである場合、同期制御部32は、状態フレームで問い合わせが行われている処理ルールについての状態の応答を返信する(ステップS73でYes、ステップS74)。
受信フレームが状態問合せでもない場合、同期制御部32は、受信フレームが状態問合せの応答であるかを判定する(ステップS73でNo、ステップS74)。受信フレームが状態問合せの応答である場合、同期制御部32は、受信した応答を用いて、処理ルールを削除するかの判定処理を行う(ステップS75でYes、ステップS76)。受信フレームが状態問合せの応答でもない場合、処理が終了される(ステップS75でNo)。
図16は、周期的に行われる処理の例を説明するフローチャートである。あるグループ識別子に対応付けられた処理ルールが1台の転送装置10以外の全てで保留中に設定された後に、そのグループの処理ルールがActiveである転送装置10で障害が発生するケースもある。このような場合には、図13〜図15を参照しながら説明した処理だけでは、削除可能な処理ルールが削除保留中のまま残ってしまうおそれがある。そこで、各転送装置10は、周期的に図16のフローチャートに示す処理を行う。
スイッチ間通信処理部42は、組み合わせ管理テーブル43に記録された転送装置10の各々に死活監視用のフレームを送信する(ステップS81)。ここで、死活監視用のフレームとして、状態問合せフレームのうち、死活監視用に割り当てられたグループ識別子が使用される。例えば、グループ識別子=0が死活監視用に割り当てられていても良い。この場合、各転送装置10は、グループ識別子=0が含まれた状態問合せフレームを死活監視フレームとして扱う。
スイッチ間通信処理部42は、死活監視用フレームの宛先の全てから応答フレームを受信したかを判定する(ステップS82)。死活監視用フレームの宛先の全てから応答フレームを受信した場合、自装置が保持している処理ルールと同じグループの処理ルールを保持する全ての転送装置10が動作している(ステップS82でYes)。そこで、スイッチ間通信処理部42は処理を終了する。
一方、死活監視用フレームの宛先の全てから応答フレームを受信していないとする(ステップS82でNo)。この場合、同期制御部32は、通信可能な転送装置10との間で処理ルールの各々について、状態、グループ識別子、idle timeout設定値を交換する(ステップS83)。同期制御部32は、通信可能な転送装置10のいずれでもActiveではない処理ルールXがあるかを判定する(ステップS84)。通信可能な転送装置10のいずれでもActiveではない処理ルールXがない場合、同期制御部32は処理を終了する(ステップS84でNo)。一方、通信可能な転送装置10のいずれでもActiveではない処理ルールXがある場合、同期制御部32は、処理ルールXのidle timeout設定値は自装置が最小であるかを判定する(ステップS84でYes、ステップS85)。処理ルールXのidle timeout設定値は自装置が最小である場合、同期制御部32は、処理ルールXをActiveに戻す(ステップS86)。この場合、再度、処理ルールXのidle timeoutが発生すると、図14で説明した処理が行われる。一方、処理ルールXのidle timeout設定値は自装置が最小ではない場合、同期制御部32は処理を終了する。
このように、第2の実施形態にかかる方法では、同じグループ識別子に対応付けられた処理ルールが異なる転送装置10に記録されている場合であっても、同じグループ識別子に対応付けられた処理ルールの削除のタイミングを同期させることができる。このため、例えば、図13の転送装置10fのように、冗長経路に含まれている転送装置10にidle timeoutを含む処理ルールを設定することができる。従って、通信システムから離脱する端末5がある場合、その端末5の通信が終了すると、通信に使用された経路と冗長経路のいずれに含まれている転送装置10でも、離脱する端末の通信に使用された処理ルールが自律的に削除される。このため、通信システムの管理が容易である。
同じグループ識別子に対応付けられた処理ルールの削除のタイミングを同期させることによって、経路の切り替えの際のコントローラ60の負荷を低くできるという効果もある。例えば、同じグループ識別子に対応付けられた処理ルールの削除のタイミングを同期させずに、idle timeoutを処理ルールに含めた場合では、所定時間で冗長経路での設定が削除されてしまう。このため、冗長経路中の装置にidle timeoutを含む処理ルールを設定すると、冗長経路への経路切り替えの際に、コントローラ60は、冗長経路用の処理ルールを再設定することがあった。コントローラ60での経路の再設定が行われない場合、経路の切り替えに伴い、冗長経路中のSDNスイッチから大量のPacket−Inメッセージがコントローラ60に送られるため、コントローラ60の処理負荷は高くなることがあった。また、経路の切り替えに時間がかかるとフレームロスが発生する恐れもある。
一方、実施形態にかかる方法では、同じグループ識別子に対応付けられた処理ルールの削除のタイミングを同期させているので、冗長経路中の転送装置10は、切り替えが発生したときに使用する処理ルールの削除を保留している。このため、冗長経路への経路切り替えの際に、コントローラ60は、冗長経路用の処理ルールを再設定しなくても、自律的に経路が切り替えられる。従って、実施形態にかかる方法では、コントローラ60には、処理ルールの再設定による処理負荷がかからない。また、冗長経路中の転送装置10は、切り替えが発生したときに使用する処理ルールを保持したままであるので、経路が切り替わっても、フレームに適用する処理ルールをコントローラ60に問い合わせなくてもよい。このため、経路の切り替えに伴って大量のPacket−Inメッセージがコントローラ60に送信されることはない。さらに、経路の切り替えに時間がかかるおそれがないので、フレームロスも防止できる。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
第2の実施形態において、死活監視フレームとして、状態問合せフレームのうち、死活監視用に割り当てられたグループ識別子が使用される場合を例としたが、死活監視フレームとして別のフレームが用いられてもよい。この場合、各転送装置10は、図15を参照しながら説明したフローチャートは、死活監視用のフレームであるかも判定するように変更される。
以上の説明では、C−プレーンを用いて転送装置10間の通信が行われる場合を例として説明したが、これは一例である。例えば、転送装置10間の通信はM−プレーンを用いて行われてもよい。また、転送装置10間の通信がTCPを用いて行われる場合を例として説明したが、転送装置10間の通信に使用されるトランスポートプロトコルは任意である。例えば、転送装置10間の通信にUDP(User Datagram Protocol)が使用されてもよい。
以上の説明で使用したフレーム例、テーブル例等に含まれている情報要素やフォーマットは一例であり、実装に応じて変更され得る。例えば、グループ識別子は、Cookieではなく、メタデータのフィールドを用いてグループ識別子が各転送装置10に通知されてもよい。
上述の第1および第2の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
制御装置から取得した処理ルールに従ってフレームを処理する転送装置であって、
前記制御装置から取得した処理ルールを記憶する記憶部と、
前記記憶部に記憶されている第1の処理ルールを適用するフレームを受信しない期間が所定期間を超えると、前記第1の処理ルールを削除可能な情報として検出する検出部と、
前記第1の処理ルールを削除するタイミングを第2の処理ルールの削除と同期させる設定が前記第1の処理ルールに含まれている場合、前記第2の処理ルールの使用状況を取得する取得部と、
前記第2の処理ルールの使用状況を用いて、前記第1の処理ルールを削除するかを決定する同期制御部
を備えることを特徴とする転送装置。
(付記2)
前記記憶部は、前記記憶部が保持する処理ルールと削除のタイミングを同期させる処理ルールの通知先の情報をさらに記憶し、
前記取得部は、前記通知先から前記第2の処理ルールの使用状況を取得し
前記同期制御部は、前記第2の処理ルールが前記通知先で使用されていない場合、前記第1の処理ルールを前記記憶部から削除する
ことを特徴とする付記1に記載の転送装置。
(付記3)
前記制御装置から取得する処理ルールの各々には、当該処理ルールの削除のタイミングが他の処理ルールの削除と同期される場合、削除のタイミングを同期させるグループを識別する識別情報が含められ、
前記取得部は、前記第1の処理ルールに含まれる識別情報を用いて、前記通知先に、前記第1の処理ルールと同じグループに属する処理ルールの使用状況を問い合わせ、
前記同期処理部は、前記第1の処理ルールと同じグループに属する処理ルールが前記通知先のいずれでも使用されていない場合、前記第1の処理ルールを前記記憶部から削除すると共に、前記通知先に、前記第1の処理ルールが含む識別情報を含む処理ルールの削除を要求する
ことを特徴とする付記2に記載の転送装置。
(付記4)
前記記憶部は、前記制御装置から取得した処理ルールの各々に対応付けて、当該処理ルールの使用状況をさらに記憶し、
前記取得部は、前記第2の処理ルールが前記記憶部に記憶されている場合、前記第2の処理ルールに対応付けられている使用状況を取得し、
前記同期制御部は、前記第2の処理ルールが使用中である場合、前記第1の処理ルールに対応付けて前記記憶部に記録される使用状況を、削除保留中に設定する
ことを特徴とする付記1〜3のいずれか1項に記載の転送装置。
(付記5)
制御装置から取得した処理ルールに従ってフレームを処理する転送装置が、
前記制御装置から取得した処理ルールを記憶し、
記憶している第1の処理ルールを適用するフレームを受信しない期間が所定期間を超えると、前記第1の処理ルールを削除可能な情報として検出し、
前記第1の処理ルールを削除するタイミングを第2の処理ルールの削除と同期させる設定が前記第1の処理ルールに含まれている場合、前記第2の処理ルールの使用状況を取得し、
前記第2の処理ルールの使用状況を用いて、前記第1の処理ルールを削除するかを決定する
ことを特徴とする制御方法。
(付記6)
前記転送装置は、
記憶している処理ルールと削除のタイミングを同期させる処理ルールの通知先の情報をさらに記憶し、
前記通知先から前記第2の処理ルールの使用状況を取得し
前記第2の処理ルールが前記通知先で使用されていない場合、前記第1の処理ルールを削除する
ことを特徴とする付記5に記載の制御方法。
(付記7)
前記制御装置から取得する処理ルールの各々には、当該処理ルールの削除のタイミングが他の処理ルールの削除と同期される場合、削除のタイミングを同期させるグループを識別する識別情報が含められ、
前記転送装置は、
前記第1の処理ルールに含まれる識別情報を用いて、前記通知先に、前記第1の処理ルールと同じグループに属する処理ルールの使用状況を問い合わせ、
前記第1の処理ルールと同じグループに属する処理ルールが前記通知先のいずれでも使用されていない場合、前記第1の処理ルールを削除すると共に、前記通知先に、前記第1の処理ルールが含む識別情報を含む処理ルールの削除を要求する
ことを特徴とする付記6に記載の制御方法。
(付記8)
前記転送装置は、
前記制御装置から取得した処理ルールの各々に対応付けて、当該処理ルールの使用状況をさらに記憶し、
前記第2の処理ルールを記憶している場合、前記第2の処理ルールに対応付けられている使用状況を特定し、
前記第2の処理ルールが使用中である場合、前記第1の処理ルールに対応付けて前記記憶部に記録される使用状況を、削除保留中に設定する
ことを特徴とする付記5〜7のいずれか1項に記載の制御方法。
(付記1)
制御装置から取得した処理ルールに従ってフレームを処理する転送装置であって、
前記制御装置から取得した処理ルールを記憶する記憶部と、
前記記憶部に記憶されている第1の処理ルールを適用するフレームを受信しない期間が所定期間を超えると、前記第1の処理ルールを削除可能な情報として検出する検出部と、
前記第1の処理ルールを削除するタイミングを第2の処理ルールの削除と同期させる設定が前記第1の処理ルールに含まれている場合、前記第2の処理ルールの使用状況を取得する取得部と、
前記第2の処理ルールの使用状況を用いて、前記第1の処理ルールを削除するかを決定する同期制御部
を備えることを特徴とする転送装置。
(付記2)
前記記憶部は、前記記憶部が保持する処理ルールと削除のタイミングを同期させる処理ルールの通知先の情報をさらに記憶し、
前記取得部は、前記通知先から前記第2の処理ルールの使用状況を取得し
前記同期制御部は、前記第2の処理ルールが前記通知先で使用されていない場合、前記第1の処理ルールを前記記憶部から削除する
ことを特徴とする付記1に記載の転送装置。
(付記3)
前記制御装置から取得する処理ルールの各々には、当該処理ルールの削除のタイミングが他の処理ルールの削除と同期される場合、削除のタイミングを同期させるグループを識別する識別情報が含められ、
前記取得部は、前記第1の処理ルールに含まれる識別情報を用いて、前記通知先に、前記第1の処理ルールと同じグループに属する処理ルールの使用状況を問い合わせ、
前記同期処理部は、前記第1の処理ルールと同じグループに属する処理ルールが前記通知先のいずれでも使用されていない場合、前記第1の処理ルールを前記記憶部から削除すると共に、前記通知先に、前記第1の処理ルールが含む識別情報を含む処理ルールの削除を要求する
ことを特徴とする付記2に記載の転送装置。
(付記4)
前記記憶部は、前記制御装置から取得した処理ルールの各々に対応付けて、当該処理ルールの使用状況をさらに記憶し、
前記取得部は、前記第2の処理ルールが前記記憶部に記憶されている場合、前記第2の処理ルールに対応付けられている使用状況を取得し、
前記同期制御部は、前記第2の処理ルールが使用中である場合、前記第1の処理ルールに対応付けて前記記憶部に記録される使用状況を、削除保留中に設定する
ことを特徴とする付記1〜3のいずれか1項に記載の転送装置。
(付記5)
制御装置から取得した処理ルールに従ってフレームを処理する転送装置が、
前記制御装置から取得した処理ルールを記憶し、
記憶している第1の処理ルールを適用するフレームを受信しない期間が所定期間を超えると、前記第1の処理ルールを削除可能な情報として検出し、
前記第1の処理ルールを削除するタイミングを第2の処理ルールの削除と同期させる設定が前記第1の処理ルールに含まれている場合、前記第2の処理ルールの使用状況を取得し、
前記第2の処理ルールの使用状況を用いて、前記第1の処理ルールを削除するかを決定する
ことを特徴とする制御方法。
(付記6)
前記転送装置は、
記憶している処理ルールと削除のタイミングを同期させる処理ルールの通知先の情報をさらに記憶し、
前記通知先から前記第2の処理ルールの使用状況を取得し
前記第2の処理ルールが前記通知先で使用されていない場合、前記第1の処理ルールを削除する
ことを特徴とする付記5に記載の制御方法。
(付記7)
前記制御装置から取得する処理ルールの各々には、当該処理ルールの削除のタイミングが他の処理ルールの削除と同期される場合、削除のタイミングを同期させるグループを識別する識別情報が含められ、
前記転送装置は、
前記第1の処理ルールに含まれる識別情報を用いて、前記通知先に、前記第1の処理ルールと同じグループに属する処理ルールの使用状況を問い合わせ、
前記第1の処理ルールと同じグループに属する処理ルールが前記通知先のいずれでも使用されていない場合、前記第1の処理ルールを削除すると共に、前記通知先に、前記第1の処理ルールが含む識別情報を含む処理ルールの削除を要求する
ことを特徴とする付記6に記載の制御方法。
(付記8)
前記転送装置は、
前記制御装置から取得した処理ルールの各々に対応付けて、当該処理ルールの使用状況をさらに記憶し、
前記第2の処理ルールを記憶している場合、前記第2の処理ルールに対応付けられている使用状況を特定し、
前記第2の処理ルールが使用中である場合、前記第1の処理ルールに対応付けて前記記憶部に記録される使用状況を、削除保留中に設定する
ことを特徴とする付記5〜7のいずれか1項に記載の制御方法。
5 端末
10 転送装置
11 D-Plane回線インタフェース
12 C-Plane回線インタフェース
13 送信部
14 受信部
20 制御部
21 フローテーブル
22 フレーム処理部
23 検出部
30 同期処理部
31 取得部
32 同期制御部
41 Openflowプロトコル処理部
42 スイッチ間通信処理部
43 組み合わせ管理テーブル
60 コントローラ
70 サーバ
101 プロセッサ
102 メモリ
103 バス
104 回線インタフェース
10 転送装置
11 D-Plane回線インタフェース
12 C-Plane回線インタフェース
13 送信部
14 受信部
20 制御部
21 フローテーブル
22 フレーム処理部
23 検出部
30 同期処理部
31 取得部
32 同期制御部
41 Openflowプロトコル処理部
42 スイッチ間通信処理部
43 組み合わせ管理テーブル
60 コントローラ
70 サーバ
101 プロセッサ
102 メモリ
103 バス
104 回線インタフェース
Claims (5)
- 制御装置から取得した処理ルールに従ってフレームを処理する転送装置であって、
前記制御装置から取得した処理ルールを記憶する記憶部と、
前記記憶部に記憶されている第1の処理ルールを適用するフレームを受信しない期間が所定期間を超えると、前記第1の処理ルールを削除可能な情報として検出する検出部と、
前記第1の処理ルールを削除するタイミングを第2の処理ルールの削除と同期させる設定が前記第1の処理ルールに含まれている場合、前記第2の処理ルールの使用状況を取得する取得部と、
前記第2の処理ルールの使用状況を用いて、前記第1の処理ルールを削除するかを決定する同期制御部
を備えることを特徴とする転送装置。 - 前記記憶部は、前記記憶部が保持する処理ルールと削除のタイミングを同期させる処理ルールの通知先の情報をさらに記憶し、
前記取得部は、前記通知先から前記第2の処理ルールの使用状況を取得し
前記同期制御部は、前記第2の処理ルールが前記通知先で使用されていない場合、前記第1の処理ルールを前記記憶部から削除する
ことを特徴とする請求項1に記載の転送装置。 - 前記制御装置から取得する処理ルールの各々には、当該処理ルールの削除のタイミングが他の処理ルールの削除と同期される場合、削除のタイミングを同期させるグループを識別する識別情報が含められ、
前記取得部は、前記第1の処理ルールに含まれる識別情報を用いて、前記通知先に、前記第1の処理ルールと同じグループに属する処理ルールの使用状況を問い合わせ、
前記同期処理部は、前記第1の処理ルールと同じグループに属する処理ルールが前記通知先のいずれでも使用されていない場合、前記第1の処理ルールを前記記憶部から削除すると共に、前記通知先に、前記第1の処理ルールが含む識別情報を含む処理ルールの削除を要求する
ことを特徴とする請求項2に記載の転送装置。 - 前記記憶部は、前記制御装置から取得した処理ルールの各々に対応付けて、当該処理ルールの使用状況をさらに記憶し、
前記取得部は、前記第2の処理ルールが前記記憶部に記憶されている場合、前記第2の処理ルールに対応付けられている使用状況を取得し、
前記同期制御部は、前記第2の処理ルールが使用中である場合、前記第1の処理ルールに対応付けて前記記憶部に記録される使用状況を、削除保留中に設定する
ことを特徴とする請求項1〜3のいずれか1項に記載の転送装置。 - 制御装置から取得した処理ルールに従ってフレームを処理する転送装置が、
前記制御装置から取得した処理ルールを記憶し、
記憶している第1の処理ルールを適用するフレームを受信しない期間が所定期間を超えると、前記第1の処理ルールを削除可能な情報として検出し、
前記第1の処理ルールを削除するタイミングを第2の処理ルールの削除と同期させる設定が前記第1の処理ルールに含まれている場合、前記第2の処理ルールの使用状況を取得し、
前記第2の処理ルールの使用状況を用いて、前記第1の処理ルールを削除するかを決定する
ことを特徴とする制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017001316A JP2018113506A (ja) | 2017-01-06 | 2017-01-06 | 転送装置および制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017001316A JP2018113506A (ja) | 2017-01-06 | 2017-01-06 | 転送装置および制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018113506A true JP2018113506A (ja) | 2018-07-19 |
Family
ID=62911396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017001316A Pending JP2018113506A (ja) | 2017-01-06 | 2017-01-06 | 転送装置および制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018113506A (ja) |
-
2017
- 2017-01-06 JP JP2017001316A patent/JP2018113506A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10200307B2 (en) | Communication system, control device, processing rule setting method, packet transmission method, and program | |
US9692650B2 (en) | Control apparatus, communication system, communication method, and program | |
JP5794320B2 (ja) | コントローラ、負荷分散方法、プログラム、コンピュータシステム、制御装置 | |
US20130282867A1 (en) | Information system, control apparatus, method of providing virtual network, and program | |
US9479323B2 (en) | Communication system, forwarding node, control device, communication control method, and program | |
JP5488979B2 (ja) | コンピュータシステム、コントローラ、スイッチ、及び通信方法 | |
JPWO2013105551A1 (ja) | コンピュータシステム、コントローラ、スイッチ、通信方法、及びネットワーク管理プログラムが格納された記録媒体 | |
US20170214609A1 (en) | Forwarding method and forwarding device | |
JP5884892B2 (ja) | ネットワークシステム、コントローラ、及び負荷分散方法 | |
JP5725236B2 (ja) | 通信システム、ノード、パケット転送方法およびプログラム | |
WO2017012471A1 (zh) | 负载均衡处理方法及装置 | |
US20160112248A1 (en) | Communication node, communication system, packet processing method, and program | |
US20150381775A1 (en) | Communication system, communication method, control apparatus, control apparatus control method, and program | |
US20150334032A1 (en) | Control apparatus, communication system, communication node control method, and program | |
JP2018113506A (ja) | 転送装置および制御方法 | |
JP5915755B2 (ja) | 情報処理装置 | |
JP6347177B2 (ja) | 転送装置、制御装置、および、通信方法 | |
JP6111974B2 (ja) | 転送装置、制御装置、および、転送方法 | |
JP2013013032A (ja) | 通信制御方法および通信制御プログラム | |
JP6044218B2 (ja) | ネットワークスイッチ、ネットワークスイッチ制御方法、及びネットワークスイッチ制御プログラム | |
US20150372900A1 (en) | Communication system, control apparatus, communication control method, and program | |
JP2017046211A (ja) | 通信装置、制御方法およびプログラム | |
JP2015046936A (ja) | 通信システム、制御装置、処理規則の設定方法およびプログラム | |
WO2019027043A1 (ja) | 通信ノード、通信用エントリの管理方法及びプログラム | |
JP2014168157A (ja) | 通信システム、制御装置、制御装置の制御方法及びプログラム |