以下、本発明の実施形態について図面を参照して説明する。
(概要)
まず本発明のパケット転送システムの概要について説明する。
本発明におけるパケット転送システムでは、転送制御装置に対して1又は複数の転送装置が接続される。1又は複数の転送装置は、複数のポートを有し、複数のポートには転送制御装置を根とするスパニング木状の論理パスが事前に設定される。スパニング木状の論理パスは、転送制御装置が各転送装置に設定してもよいし、転送制御装置からの指示に応じて各転送装置で設定してもよい。
いずれかの転送装置に新たに通信装置が接続されると、通信装置は論理パスを通じて転送制御装置に対して制御パケットを送信する。通信装置は、電源が投入されて起動した時点から一定の間隔で制御パケットを送信、又は、外部(例えば、転送制御装置)からの指示に応じて制御パケットを送信する。なお、論理パスは、スパニング木状に構成されているため、制御パケットのループ等は発生しない。制御パケットは、必ず根に相当する転送装置のポートを介して転送制御装置に到達する。
通信装置が接続された転送装置は、論理パスを通じて制御パケットを受信する。通信装置が接続された転送装置は、制御パケットを受信した物理ポートの識別情報及び転送装置(自装置)の識別情報を制御パケットに付与して、制御パケットを転送制御装置に転送する。
転送制御装置は、転送装置から転送された制御パケットに付与されている情報に基づいて、新たに接続した通信装置を特定するとともに、通信装置が新たに接続した転送装置及びその物理ポートを特定する。このように、1又は複数の転送装置に対してスパニング木状の論理パスが設定されることにより、通信装置が新たに接続された転送装置及びその物理ポートを特定することができる。これにより、新たに接続した通信装置が転送制御装置と接続することができる。そのため、OpenFlowエージェントやDHCPクライアント等を動作させることができない通信装置であっても、簡易な方法でコントローラに接続することができる。
以下、上記のパケット転送システムを構成する実施形態について説明する。
(第1の実施形態)
図1は、第1の実施形態におけるパケット転送システム1の構成を示すブロック図である。パケット転送システム1は、転送制御装置2、OpenFlowスイッチ3、自律型転送装置4及び通信装置5を備える。
転送制御装置2は、パケットの経路制御を行う。転送制御装置2は、転送制御装置2において定義する転送規則を示す情報(以下「転送規則情報」という。)をOpenFlowスイッチ3に対して送信する。転送制御装置2は、例えば、SDN(Software Designed Network)におけるコントローラである。以下の説明では、転送制御装置2が、OpenFlowコントローラであるとする。
転送規則情報とは、例えば、OpenFlowのフローエントリーである。転送規則情報には、転送対象のパケットを特定するための情報と、特定したパケットに対する処理を示す情報とが含まれる。特定したパケットに対する処理とは、例えば、パケットを特定の経路に転送させる処理、パケットのデータの一部を書き替えたり削除したりする処理、パケットを破棄する処理等である。
転送制御装置2は、OpenFlowスイッチ3が送信するOpenFlowプロトコルのPacket-Inメッセージを受信する。転送制御装置2は、OpenFlowプロトコルのPacket-OutメッセージをOpenFlowスイッチ3に送信する。転送制御装置2は、OpenFlowスイッチ3及び自律型転送装置4に対して論理パスの設定を指示する。なお、転送制御装置2は、OpenFlowスイッチ3及び自律型転送装置4に対して論理パスを設定してもよい。
OpenFlowスイッチ3は、自律型転送装置送受信部31、探索用論理パス生成部32、転送規則記憶部34、転送処理部35、転送制御装置送受信部36及び外部送受信部37を備える。
転送制御装置送受信部36は、転送制御装置2と接続する物理ポートである。転送制御装置送受信部36は、物理回線7を介して転送制御装置2に接続する。転送制御装置送受信部36は、転送制御装置2との間で、セキュアチャネルのコネクションを確立し、OpenFlowプロトコルにしたがってデータの送受信を行う。
外部送受信部37は、OpenFlowスイッチ3に他のOpenFlowスイッチ、インターネット等の通信ネットワーク等が接続するポートである。外部送受信部37に、通信装置5が直接接続してもよい。外部送受信部37は、単一または複数の物理ポートであってもよい。
自律型転送装置送受信部31は、自律型転送装置4と接続する物理ポートである。図1では、自律型転送装置送受信部31は、物理回線6-nを介して自律型転送装置4と接続する例を示している。OpenFlowスイッチ3が、複数の自律型転送装置4と接続する場合、複数の自律型転送装置4の各々に対応する自律型転送装置送受信部31を備えることになる。
自律型転送装置送受信部31、転送制御装置送受信部36及び外部送受信部37は、説明の便宜上、異なる名称にしているが、いずれもOpenFlowスイッチ3が備える物理ポートである。転送制御装置2が接続する物理ポートが転送制御装置送受信部36になり、自律型転送装置4が接続する物理ポートが自律型転送装置送受信部31になり、それ以外の物理ポートが外部送受信部37になる。
転送規則記憶部34は、転送制御装置2がOpenFlowスイッチ3に対して送信する転送規則情報を記憶する。なお、転送規則情報は、以下のようにして転送規則記憶部34に書き込まれる。転送制御装置送受信部36は、転送制御装置2から転送規則情報を受信する。転送制御装置送受信部36は、受信した転送規則情報を転送処理部35に出力する。転送処理部35は、転送制御装置送受信部36が出力する転送規則情報を転送規則記憶部34に書き込む。
探索用論理パス生成部32は、転送制御装置2の指示に応じて、転送処理部35を節とするスパニング木で構成される論理パスを生成する。なお、スパニング木は転送装置間(例えば、OpenFlowスイッチ3と自律型転送装置4との間)の物理的なリンクを枝とし、転送制御装置に直接接続した転送装置の転送処理部を根として、ただし、ループが発生しないように構成される。ここでは、論理パスの生成に、例えば、タグVLAN(Virtual Local Area Network)を適用する。探索用論理パス生成部32は、生成した論理パスを示すVLAN-ID(Identifier)と、自律型転送装置送受信部31を特定する識別情報(以下「物理ポート識別情報」という。)とを関連付けて転送規則記憶部34が記憶する転送規則情報に書き加える。転送規則情報には、制御パケットをPacket-Inするための規則が予め設定されていてもよい。例えば、制御パケットが受信されると、Packet-Inメッセージを転送制御装置2に転送する規則が転送規則情報に予め設定されていてもよい。
転送処理部35は、転送規則記憶部34が記憶する転送規則情報に基づいて、受信したパケットに対する処理を選択し、選択した処理を当該パケットに対して行う。
自律型転送装置4は、例えばLayer2スイッチに相当する装置である。自律型転送装置4は、物理ポート41-1~41-N、自律型探索用論理パス生成部42、自律型転送処理部44及び自律型転送規則記憶部45を備える。物理ポート41-1~41-Nの各々には、物理回線6-1~6-Nが接続される。なお、Nは2以上の整数であり、nは1~Nの任意の整数である。図1において、物理回線6-nは、物理回線6-1~6-Nの中の任意の1つの回線を示すものとする。
自律型転送規則記憶部45は、予め定められる自律型転送規則情報を記憶する。自律型転送規則情報は、一般的なLayer2スイッチが行う転送処理の規則を示した情報である。例えば、自律型転送規則情報には、転送対象のパケットを特定するための情報と、特定したパケットに対する処理を示す情報とが含まれる。特定したパケットに対する処理とは、例えば、宛先のMAC(Media Access Control)アドレスを有する装置が接続する物理ポート41-1~41-Nにパケットを転送する処理である。例えば、自律型転送規則情報には、以下の情報も登録されているものとする。スパニング木の論理パスでは、スパニング木の根から遠い節(すなわち木構造における子)と接続された物理ポートで受信したパケットおよびスパニング木の葉に相当する物理ポートで受信したパケットは、根に近い節(すなわち木構造における親)と接続された物理ポートへ送信される。
自律型探索用論理パス生成部42は、転送制御装置2の指示に応じて、物理ポート41-1~41-Nに対して、OpenFlowスイッチ3を根とし、通信装置5に接続を許可する。すなわち、自律型探索用論理パス生成部42は、通信装置5が接続する可能性がある物理ポート41-1~41-Nを葉とするスパニング木を構成する論理パスを生成する。
自律型探索用論理パス生成部42は、生成した論理パスに対して、OpenFlowスイッチ3の探索用論理パス生成部32が論理パスに対して付与したVLAN-IDと同一のVLAN-IDを付与する。自律型探索用論理パス生成部42は、VLAN-IDを付与した物理ポート41-1~41-Nを特定する識別情報(以下「物理ポート識別情報」という。)と、付与したVLAN-IDとを関連付けて自律型転送規則記憶部45が記憶する自律型転送規則情報に書き込む。
自律型転送処理部44は、自律型転送規則記憶部45が記憶する自律型転送規則情報に基づいて、受信したパケットに対する処理を選択し、選択した処理を当該パケットに対して行う。自律型転送処理部44は、通信装置5が送信する制御パケットを取り込んだ場合、以下の処理を行う。具体的には、自律型転送処理部44は、取り込んだ制御パケットに他の自律型転送装置4に関する付与情報が付与されていない場合、予め内部の記憶領域に記憶させている自装置の識別情報と、制御パケットを受信した物理ポート識別情報とを含む付与情報を制御パケットに付与した上で制御パケットの転送を行う。
通信装置5は、例えば、IPによる通信機能を備えたモジュール型の通信装置である。ここで、モジュール型の通信装置とは、例えば、マネジメント専用のポートを備えず、OpenFlowエージェントやDHCPクライアントが動作するCPUを備えていないような、機能が限られている通信装置である。なお、図1では、説明の便宜上、通信装置5は、物理回線6-1を介して自律型転送装置4の物理ポート41-1に接続されているが、このようなモジュール型の通信装置は、物理ポート41-1に、物理回線6-1を用いずにそのまま接続されるような形態もある。
通信装置5は、電源が投入されて起動すると、自装置の識別情報を含む制御パケットを一定の間隔で送出する。自装置の識別情報は、例えば、MACアドレス、IPアドレス等の情報である。
図2は、第1の実施形態の具体例であるパケット転送システム1aの構成を示すブロック図である。なお、図2において、図1と同一の構成については同一の符号を付している。パケット転送システム1aは、転送制御装置2、OpenFlowスイッチ3、自律型転送装置4a,4b及び通信装置5a,5bを備える。以下の説明において、自律型転送装置4a,4bの内部の機能部の各々を示す場合、それぞれの機能部の符号に「a」、「b」を付して示すものとする。
自律型転送装置4aは、4つの物理ポート41a-1,41a-2,41a-3を備える。自律型転送装置4bは、4つの物理ポート41b-1,41b-2,41b-3を備える。
自律型転送装置4aの物理ポート41a-1と、OpenFlowスイッチ3の自律型転送装置送受信部31とは、物理回線6a-1により接続されている。自律型転送装置4aの物理ポート41a-3と、自律型転送装置4bの物理ポート41b-1とは、物理回線6a-3により接続されている。自律型転送装置4bの物理ポート41b-2には物理回線6b-2を介して通信装置5aが接続し、自律型転送装置4aの物理ポート41a-2には物理回線6a-2を介して通信装置5bが接続する。
OpenFlowスイッチ3の探索用論理パス生成部32と、自律型転送装置4aの自律型探索用論理パス生成部42aと、自律型転送装置4bの自律型探索用論理パス生成部42aは、転送制御装置2の指示に応じて図2に示す論理パス60を生成する。
探索用論理パス生成部32は、自律型転送装置送受信部31に対して空き状態の任意の1つのVLAN-IDを付与する。ここでは、例えば、VLAN-IDとして「1001」を付与したとする。探索用論理パス生成部32は、付与したVLAN-ID「1001」を自律型探索用論理パス生成部42a,42bに送信する。探索用論理パス生成部32は、転送規則記憶部34が記憶する転送規則情報に対して、自律型転送装置送受信部31の物理ポート識別情報と、VLAN-ID「1001」とを関連付けて書き込む。
自律型探索用論理パス生成部42a,42bは、探索用論理パス生成部32が送信するVLAN-ID「1001」の情報を受信する。自律型探索用論理パス生成部42aは、物理ポート41a-1,41a-2,41a-3の各々に対応する物理ポート識別情報と、探索用論理パス生成部32から受信したVLAN-ID「1001」とを関連付けて自律型転送規則記憶部45aが記憶する自律型転送規則情報に書き込む。自律型探索用論理パス生成部42bも同様に、物理ポート41b-1,41b-2,41b-3の各々に対応する物理ポート識別情報と、探索用論理パス生成部32から受信したVLAN-ID「1001」とを関連付けて自律型転送規則記憶部45bが記憶する自律型転送規則情報に書き込む。これにより、VLAN-ID「1001」に対応する論理パス60が生成されることになる。
(第1の実施形態におけるパケット転送システムによる接続構成収集処理)
図3は、図2に示したパケット転送システム1aによる通信装置5aの接続構成を収集する処理の流れを示すシーケンス図である。通信装置5aが自律型転送装置4bの物理ポート41b-2に接続した状態で起動したとする。通信装置5aは、一定の間隔で、自装置の識別情報を含む制御パケットを物理回線6b-2に送出する(ステップSa1)。
自律型転送装置4bの物理ポート41b-2は、通信装置5aが送出した制御パケットを受信する。物理ポート41b-2は、受信した制御パケットを自律型転送処理部44bに出力する(ステップSa2)。自律型転送処理部44bは、物理ポート41b-2が出力する制御パケットを取り込む。取り込んだ制御パケットには付与情報が付与されていない。そのため、自律型転送処理部44bは、内部の記憶領域から自律型転送装置4bの識別情報を読み出す。自律型転送処理部44bは、読み出した自律型転送装置4bの識別情報と、制御パケットを取り込んだ物理ポート41b-2の物理ポート識別情報とを含む付与情報を生成する。自律型転送処理部44bは、生成した付与情報を制御パケットに付与する(ステップSa3)。
自律型転送処理部44bは、自律型転送規則記憶部45bが記憶する自律型転送規則情報を参照し、制御パケットを取り込んだ物理ポート41b-2に関連付けられている論理パス60を介して制御パケットを転送する(ステップSa4)。具体的には、以下のようにして転送が行われる。自律型転送規則記憶部45bが記憶する自律型転送規則情報において、制御パケットを取り込んだ物理ポート41b-2には、VLAN-ID「1001」が関連付けられている。自律型転送処理部44bは、自律型転送規則記憶部45bが記憶する自律型転送規則情報を参照して、VLAN-ID「1001」に関連付けられている物理ポート41b-1,41b-2,4b-3を検出する。
また、制御パケットを取り込んだ物理ポート41b-2は、スパニング木の葉に相当するポートである。そこで、自律型転送処理部44bは、自律型転送規則情報を参照し、制御パケットにVLAN-ID「1001」を付与して、スパニング木の根に近いポートである物理ポート41b-1に制御パケットを転送する。
物理ポート41b-1は、物理回線6a-3を介して制御パケットを送出する。自律型転送装置4aの物理ポート41a-3は、物理回線6a-3を介して制御パケットを受信する(ステップSa5)。物理ポート41a-3は、受信した制御パケットを自律型転送処理部44aに出力する。自律型転送処理部44aは、物理ポート41a-3が出力する制御パケットを取り込む。取り込んだ制御パケットには、既に自律型転送装置4bに関する付与情報が付与されている。そのため、自律型転送処理部44aは、付与情報が付与されている制御パケットについては付与情報の付与を行わない。
自律型転送処理部44aは、自律型転送規則記憶部45aが記憶する自律型転送規則情報を参照し、制御パケットを取り込んだ物理ポート41a-3に関連付けられている論理パス60を介して制御パケットを転送する(ステップSa6)。具体的には、以下のようにして転送が行われる。自律型転送処理部44aが取り込んだ制御パケットにVLAN-ID「1001」が付与されている。そのため、自律型転送処理部44aは、自律型転送規則記憶部45aが記憶する自律型転送規則情報を参照して、VLAN-ID「1001」に関連付けられている物理ポート41a-1,41a-2,41a-3を検出する。
また、制御パケットを取り込んだ物理ポート41a-3は、スパニング木の葉に相当するポートである。そこで、自律型転送処理部44aは、自律型転送規則情報を参照し、スパニング木の根に相当する物理ポート41a-1に対して制御パケットを転送する。
物理ポート41a-1は、物理回線6a-1を介して制御パケットを送出する。OpenFlowスイッチ3の自律型転送装置送受信部31は、物理回線6a-1を介して制御パケットを受信する(ステップSa7)。
OpenFlowスイッチ3の自律型転送装置送受信部31は、受信した制御パケットを転送処理部35に出力する。転送処理部35は、転送規則記憶部34が記憶する転送規則情報を参照し、制御パケットからVLAN-ID「1001」を取り除いた制御パケットと、受信した自律型転送装置送受信部31の物理ポート識別情報とを含むPacket-Inメッセージを生成する。転送処理部35は、生成したPacket-Inメッセージを、転送制御装置送受信部36を介して転送制御装置2に送信する(ステップSa8)。なお、転送処理部35は、制御パケットを転送する際にVLAN-IDを取り除かなくてもよい。
転送制御装置2は、転送制御装置送受信部36が送信するPacket-Inメッセージを受信する(ステップSa9)。転送制御装置2は、Packet-Inメッセージに含まれている制御パケットに付与されている付与情報に含まれる自律型転送装置4bの識別情報と、制御パケットを取り込んだ物理ポート41b-2の物理ポート識別情報と、制御パケットに含まれている通信装置5aの識別情報とを読み出し、読み出した情報を内部の記憶領域に記録する(ステップSa10)。
例えば、転送制御装置2は、図4に示す「通信装置」、「接続先装置」、「接続先ポート」の3つの項目を有するテーブルを生成する。転送制御装置2は、生成したテーブルに対して、図4に示す1行目に示す情報、すなわち、通信装置5aの識別情報と、自律型転送装置4bの識別情報と、物理ポート41b-2の物理ポート識別情報とを書き込む。
通信装置5bにおいても通信装置5aの場合と同様の処理が行われることにより、図4に示すテーブルの2行目に示す情報が記録されることになる。これにより、転送制御装置2は、図4に示すテーブルを参照することで、通信装置5aが自律型転送装置4bの物理ポート41b-2に接続しており、通信装置5bが自律型転送装置4aの物理ポート41a-2に接続していることを認識することができる。
上記の第1の実施形態の構成では、OpenFlowスイッチ3を起点とし、自律型転送装置4a,4bが備える物理ポートであって通信装置5a,5bに接続を許可する物理ポート41a-2,41b-2,41b-3を葉とするスパニング木の論理パス60が生成されている。通信装置5a,5bは、自律型転送装置4a,4bの物理ポート41a-2,41b-2に接続し、接続した自律型転送装置4a,4bに自装置の識別情報を含む制御パケットを送出する。自律型転送装置4a,4bは、自装置の物理ポート41a-2,41b-2に通信装置5a,5bが接続し、当該通信装置5a,5bから制御パケットを受信した場合、当該制御パケットを受信した物理ポート41a-2,41b-2を特定する物理ポート識別情報と、自装置の識別情報とを制御パケットに付与し、論理パス60を介して制御パケットを送出する。OpenFlowスイッチ3は、論理パス60を介して受信した制御パケットを転送制御装置2に転送する。転送制御装置2は、制御パケットを受信し、受信した制御パケットに付与されている自律型転送装置4a,4bの識別情報及び物理ポート識別情報と、制御パケットに含まれている通信装置5a,5bの識別情報とを読み出す。
これにより、転送制御装置2は、通信装置が新たに接続された転送装置(例えば、自律型転送装置4a,4b又はOpenFlowスイッチ3)及びその物理ポートを特定することができる。その結果、新たに接続した通信装置が転送制御装置2と接続することができる。そのため、OpenFlowエージェントやDHCPクライアント等を動作させることができない通信装置であっても、簡易な方法で転送制御装置2に接続することが可能になる。
(第2の実施形態)
図5は、第2の実施形態におけるパケット転送システム1bの構成を示すブロック図である。図5において、図1及び図2に示したパケット転送システム1,1aと同一の構成については同一の符号を付し、以下、異なる構成について説明する。パケット転送システム1bは、転送制御装置2b、OpenFlowスイッチ3、自律型転送装置4a,4b、通信装置5abを備える。
転送制御装置2bは、転送制御装置2が有する構成に加えて、以下の構成を備える。転送制御装置2bは、制御パケット送出指示パケットを生成する。制御パケット送出指示パケットは、OpenFlowスイッチ3又は自律型転送装置4a,4b等の転送装置に新たに接続した通信装置に対して制御パケットを送出させるための指示を含むパケットである。転送制御装置2bは、OpenFlowスイッチ3の自律型転送装置送受信部31から制御パケット送出指示パケットを送出させる指示と、生成した制御パケット送出指示パケットとを含むPacket-OutメッセージをOpenFlowスイッチ3に送信する。
通信装置5abは、第1の実施形態の通信装置5,5a,5bと同様に、例えば、モジュール型の通信装置である。通信装置5abは、通信装置5,5a,5bとは以下の点で異なる構成を備える。通信装置5abは、制御パケット送出指示パケットを受信した場合に、自装置の識別情報を含む制御パケットを送出する。
(第2の実施形態のパケット転送システムによる接続構成収集処理)
図6は、図5に示したパケット転送システム1bによる通信装置5abの接続構成を収集する処理の一部の流れを示すシーケンス図である。
転送制御装置2bは、制御パケット送出指示パケットを生成する。転送制御装置2bは、OpenFlowスイッチ3の自律型転送装置送受信部31から制御パケット送出指示パケットを送出させる指示と、生成した制御パケット送出指示パケットとを含むPacket-OutメッセージをOpenFlowスイッチ3に送信する(ステップSb1)。
OpenFlowスイッチ3の転送制御装置送受信部36は、転送制御装置2bが送信したPacket-Outメッセージを受信する(ステップSb2)、転送制御装置送受信部36は、受信したPacket-Outメッセージを転送処理部35に出力する。転送処理部35は、転送制御装置送受信部36が出力するPacket-Outメッセージを取り込む。
転送処理部35は、Packet-Outメッセージに含まれている自律型転送装置送受信部31から制御パケット送出指示パケットを送出させる指示にしたがって、制御パケット送出指示パケットを物理ポート31から送出する(ステップSb2)。
自律型転送装置送受信部31は、物理回線6a-1を介して制御パケット送出指示パケットを送出する。自律型転送装置4aの物理ポート41a-1は、物理回線6a-1を介して制御パケット送出指示パケットを受信する(ステップSb4)。物理ポート41a-1は、受信した制御パケット送出指示パケットを自律型転送処理部44aに出力する。
自律型転送処理部44aは、制御パケット送出指示パケットを受信した物理ポート(ここでは、物理ポート41a-1)以外の物理ポートから制御パケット送出指示パケットを送出する(ステップSb5)。これにより、制御パケット送出指示パケットは、物理ポート41a-2,41a-3に送出される。物理ポート41a-2にはいずれの装置も接続されていない。そのため、物理ポート41a-2からは制御パケット送出指示パケットが送出されない。
物理ポート41a-3は、物理回線6a-3を介して制御パケット送出指示パケットを送出する。自律型転送装置4bの物理ポート41b-1は、物理回線6a-3を介して制御パケット送出指示パケットを受信する(ステップSb6)。物理ポート41b-1は、受信した制御パケット送出指示パケットを自律型転送処理部44bに出力する。
自律型転送処理部44bは、制御パケット送出指示パケットを受信した物理ポート(ここでは、物理ポート41b-1)以外の物理ポートから制御パケット送出指示パケットを送出する(ステップSb6)。これにより、制御パケット送出指示パケットは、物理ポート41b-2,41b-3に送出される。物理ポート41b-3にはいずれの装置も接続されていない。そのため、物理ポート41b-3からは制御パケット送出指示パケットが送出されない。
物理ポート41b-2は、物理回線6b-2を介して制御パケット送出指示パケットを送出する。通信装置5abは、物理回線6b-2を介して制御パケット送出指示パケットを受信する(ステップSb8)。通信装置5abは、自装置の識別情報を含む制御パケットを物理回線6b-2に送出する。その後、図3に示したステップSa2~Sa10の処理が行われる。これにより、転送制御装置2bは、第1の実施形態の転送制御装置2と同様に、図4に示したテーブルの1行目に示す情報を取得することになる。
上記の第2の実施形態では、通信装置5abが一定の間隔で制御パケットを送出せずに、パケット送出指示パケットを受信した場合に、制御パケットを送出する。そのため、通信装置5abが一定の間隔で制御パケットを送出するためのクロックなどを搭載する必要がなくなる。第1の実施形態の通信装置5,5a,5bの場合、誤作動により大量の制御パケットを送出してしまう可能性があるが、第2の実施形態の通信装置5abでは、制御パケット送出指示パケットを受信したタイミングで制御パケットを送出するために、第1の実施形態よりも不要な制御パケットの送信を抑制することができる。
また、制御パケット送出指示パケットのフォーマットを制御パケットと同一としてもよい。この場合、通信装置5abは新たに制御パケットを生成しなくとも、受け取った制御パケット送出指示パケットを送り返すだけでよいため、通信装置5abの機能をより軽量化できる。
なお、第2の実施形態では、転送制御装置2bが、制御パケット送出指示パケットを生成する際に、論理パス60の形式を示す情報を含めて制御パケット送出指示パケットを生成してもよい。これにより、通信装置5abは、制御パケット送出指示パケットを受信した際に、制御パケット送出指示パケットに含まれる論理パス60の形式を示す情報に基づいて制御パケットを生成することができる。
例えば、OpenFlowスイッチ3及び自律型転送装置4a,4bが論理パス60の形式を変更したとする。OpenFlowスイッチ3は、変更した論理パス60の形式の情報を転送制御装置2bに送信しておく。これにより、転送制御装置2bは、通信装置5abに対して、変更後の論理パス60の形式を制御パケット送出指示パケットにより通知することができるので、通信装置5abは、論理パス60の形式の変更に柔軟に追従することができる。
ここで、論理パス60の形式としては、例えば、VLAN-IDがある。上記の第1及び第2の実施形態では、通信装置5,5a,5b,5abにVLAN-IDを予め付与する構成として示していないが、通信装置5,5a,5b,5abに論理パス60のVLAN-ID「1001」を予め登録しておくこともできる。この場合、自律型転送装置4bの自律型転送処理部44aは、物理ポート41b-2を介して取り込んだ制御パケットに対してVLAN-IDを付与する必要がなくなる。このような構成にしている場合、例えば、VLAN-IDを「1001」から「1002」に変更した場合、制御パケット送出指示パケットによりVLAN-IDの変更を通信装置5abに通知することが可能になる。
(第3の実施形態)
図7は、第3の実施形態におけるパケット転送システム1cの構成を示すブロック図である。図7において、図1、図2及び図5に示したパケット転送システム1,1a,1bと同一の構成については同一の符号を付し、以下、異なる構成について説明する。パケット転送システム1cは、転送制御装置2c、OpenFlowスイッチ3,3c、自律型転送装置4a及び通信装置5abを備える。
OpenFlowスイッチ3cは、図1に示したOpenFlowスイッチ3と同一の内部構成を備えている。以下、OpenFlowスイッチ3cにおいて、OpenFlowスイッチ3が備える機能部に対応する機能部の各々を示す場合、各機能部の符号に対して、符号「c」を付して示すものとする。
OpenFlowスイッチ3cは、転送制御装置送受信部36c、転送処理部35c、転送規則記憶部34c、探索用論理パス生成部32c、外部送受信部37c-1,37c-2及び自律型転送装置送受信部31c-1,31c-2を備える。
転送制御装置送受信部36cは、物理回線7cを介して転送制御装置2cに接続する。転送制御装置送受信部36cは、転送制御装置2cとの間で、セキュアチャネルのコネクションを確立し、OpenFlowプロトコルにしたがってデータの送受信を行う。自律型転送装置送受信部31c-1は、物理回線6a-3により自律型転送装置4aの物理ポート41a-3に接続されている。外部送受信部37c-2には、物理回線6b-2を介して通信装置5abが接続する。
OpenFlowスイッチ3cの探索用論理パス生成部32cは、転送制御装置2cの指示に応じてスパニング木で構成される論理パスを生成する。なお、探索用論理パス生成部32cは、OpenFlowスイッチ3cがスパニング木の起点とはならないように予め設定されている。
図7に示す通り、第3の実施形態のパケット転送システム1cにおいて、第1及び第2の実施形態と同様の論理パス60が生成されているものとする。論理パス60の生成には、VLAN-ID「1001」が使用されているとする。この場合、OpenFlowスイッチ3cの探索用論理パス生成部32cは、転送規則記憶部34cが記憶する転送規則情報に対して、自律型転送装置送受信部31c-1、外部送受信部37c-1,37c-2の識別情報と、VLAN-ID「1001」を関連付けて書き込む。
転送制御装置2cは、転送制御装置2bが有する構成に加えて、以下の構成を備える。転送制御装置2cは、OpenFlowスイッチ3cが制御パケットを受信した場合にPacket-Inメッセージにより転送制御装置2bに受信した制御パケットを転送する指示を含む転送規則情報をOpenFlowスイッチ3cに送信する。転送制御装置送受信部36cは、転送制御装置2cが送信した転送規則情報を受信し、受信した転送規則情報を転送処理部35cに出力する。転送処理部35cは、転送制御装置送受信部36cが出力する転送規則情報を転送規則記憶部34cに書き込む。
(第3の実施形態のパケット転送システムによる接続構成収集処理)
第3の実施形態において、第2の実施形態と同様に、図6に示す制御パケット送出指示パケットが転送制御装置2cより送信される処理が開始される。ステップSb1~Sb5までは、転送制御装置2c、OpenFlowスイッチ3、自律型転送装置4aにより第2の実施形態と同様の処理が行われる。ステップSb6,Sb7の処理については、自律型転送装置4bに代わって、OpenFlowスイッチ3cが同一の処理を行う。ステップSb8において、通信装置5abは、OpenFlowスイッチ3cの外部送受信部37c-1が物理回線6b-2に送出する制御パケット送出指示パケットを受信する。
図8は、第3の実施形態において、通信装置5abが制御パケット送出指示パケットを受信した後に行われる処理の流れを示すシーケンス図である。通信装置5abは、自装置の識別情報を含む制御パケットを物理回線6b-2に送出する(ステップSd1)。
OpenFlowスイッチ3cの外部送受信部37c-1は、通信装置5abが送出した制御パケットを受信する。外部送受信部37c-1は、受信した制御パケットを転送処理部35cに出力する(ステップSd2)。
転送処理部35cは、転送規則記憶部34cが記憶する転送規則情報を参照する。転送規則記憶部34cが記憶する転送規則情報には、制御パケットについてはPacket-Inメッセージにより転送制御装置2cに転送する指示が定義されている。転送規則情報には、VLAN-ID「1001」に関する情報が含まれている。しかしながら、制御パケットをPacket-Inメッセージにより転送制御装置2cに転送する指示の方が優先するように定義されているものとする。この場合、転送処理部35cは、制御パケットを、論理パス60を介して転送しない。転送処理部35cは、制御パケットと、受信した外部送受信部37c-1を特定する物理ポート識別情報とを含むPacket-Inメッセージを、転送制御装置送受信部36cを介して転送制御装置2cに送信する(ステップSd3)。
転送制御装置2cは、転送制御装置送受信部36cが送信するPacket-Inメッセージを受信する(ステップSd4)。転送制御装置2cは、Packet-Inメッセージの送信元の情報を参照することにより、制御パケットを受信した装置がOpenFlowスイッチ3cであることを検出する。転送制御装置2cは、Packet-Inメッセージに含まれる外部送受信部37c-1の物理ポート識別情報から通信装置5abが接続した物理ポートの情報を取得することができる。転送制御装置2cは、Packet-Inメッセージに含まれる制御パケットを参照することにより、通信装置5abの識別情報を取得することができる。
したがって、転送制御装置2cは、図4に示す「通信装置」、「接続先装置」、「接続先ポート」の項目を有するテーブルに記録される3つの情報の組み合わせをPacket-Inメッセージから取得することができる。転送制御装置2cは、内部の記憶領域のテーブルに取得した3つの情報を記録する(ステップSd5)。
上記の第3の実施形態の構成では、自律型転送装置4aにOpenFlowスイッチ3cが接続して、論理パス60が、OpenFlowスイッチ3cが備える物理ポート、すなわち外部送受信部であって通信装置5abに接続を許可する外部送受信部37c-1,37c-2に生成されており、更に、OpenFlowスイッチ3cは、論理パス60以外の経路である物理回線7cにより転送制御装置2cに接続している。通信装置5abは、OpenFlowスイッチ3cに接続する。OpenFlowスイッチ3cは、通信装置5abが送出する制御パケットを受信した場合、制御パケットを受信した外部送受信部37c-1を特定する物理ポート識別情報と共に、転送規則記憶部34cが記憶する転送規則情報に基づいて、物理回線7cを介して転送制御装置2cに制御パケットを送出する。
これにより、マネジメント専用のポートを備えず、OpenFlowエージェントやDHCPクライアントも動作していない通信装置5abが、OpenFlowエージェントが動作しているOpenFlowスイッチ3cに接続したとしても、通信装置5abと、OpenFlowスイッチ3cとの接続構成を検出することができる。通信装置5abが接続したOpenFlowスイッチ3cは、制御パケットを論理パス60の上位の装置に転送するのではなく、Pakcet-Inメッセージによって直接、転送制御装置2cに送信する。そのため、論理パス60の上位に存在する自律型転送装置4a、OpenFlowスイッチ3に制御パケットを転送しないことになるため、第2の実施形態の構成に比べて、帯域利用率を向上させることができる。
なお、上記の第1から第3の実施形態では、論理パス60,61,62の起点を、OpenFlowスイッチ3にしているが、論理パス60,61,62の起点を、転送制御装置2,2b,2cにしてもよい。この場合、OpenFlowスイッチ3から転送制御装置2,2b,2cへの制御パケットの転送は、論理パス60,61を介して、すなわち、VLAN-IDに基づいて行われることになる。転送制御装置2b,2cからOpenFlowスイッチ3への制御パケット送出指示パケットの転送も、VLAN-IDに基づいて行われることになる。
上記の第1から第3の実施形態では、論理パス60,61,62の生成を、転送制御装置2,2b,2cの指示に応じて、探索用論理パス生成部32,32c、自律型探索用論理パス生成部42a,42bが行うようにしているが、論理パスの生成はこれに限定される必要はない。例えば、構成が複雑でない場合などには、パケット転送システム1a,1b,1cの管理者によってスパニング木を構成するように論理パス60,61,62を生成するようにしてもよい。この場合、管理者が、転送規則記憶部34,34cが記憶する転送規則情報及び自律型転送規則記憶部45a,45bが記憶する自律型転送規則情報に、VLAN-IDに関する情報を追加することになる。
転送制御装置2,2b,2cがスパニング木を構成するように論理パスを各転送装置に設定してもよい。このように構成される場合、OpenFlowスイッチ3,3cは探索用論理パス生成部32を備えなくてよく、自律型転送装置4,4a,4bは自律型探索用論理パス生成部42を備えなくてよい。その代わり、転送制御装置2,2b,2cがスパニング木を構成するための論理パス生成部を備える。
上記の第1から第3の実施形態では、制御パケットに通信装置5,5a,5b,5abの識別子が含まれる構成を示したが、制御パケットには通信装置5,5a,5b,5abの識別子が含まれなくてもよい。このように構成される場合、通信装置5,5a,5b,5abは、電源が投入されて起動した時点から一定の間隔、又は、外部(例えば、転送制御装置)からの指示に応じて、通信装置5,5a,5b,5abの識別子を含めない制御パケットを送信する。
上記の第1から第3の実施形態では、SDNのうち、OpenFlowプロトコルが、転送制御装置2,2b,2c及びOpenFlowスイッチ3,3cにおいて動作していることを前提として示しているが、OpenFlowプロトコル以外のSDNの通信プロトコルが動作していてもよい。
上記の第1から第3の実施形態では、パケット転送システム1,1a,1b,1cがOpenFlowスイッチ(例えば、OpenFlowスイッチ3,3c)と、自律型転送装置(例えば、4,4a,4b)とを両方を備える構成を示したが、パケット転送システム1,1a,1b,1cはいずれか一方の転送装置を備えるように構成されてもよい。このような構成の一例として図2を例に挙げると、パケット転送システム1aは、OpenFlowスイッチ3又は自律型転送装置4a,4bのいずれか一方の転送装置を備える。そして、パケット転送システム1aは、転送制御装置2を根とするスパニング木状の論理パスを、備えている転送装置に設定する。
上述した第1から第3の実施形態における転送制御装置2,2b,2c、OpenFlowスイッチ3,3c、自律型転送装置4,4a,4bをコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。