(57)【要約】【課題】スイッチに接続されている端末にアクセスが集中する場合であっても、そのスイッチに設定されるフローエントリの数の増加を防止することができるスイッチ制御装置を提供する。【解決手段】フローエントリ設定手段５２は、中継スイッチに対して、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットをそのゲートウェイスイッチに転送することを規定したフローエントリを設定する。また、フローエントリ設定手段５２は、ゲートウェイスイッチからパケットを受信したときに、そのゲートウェイスイッチに対して、当該ゲートウェイスイッチ以外のゲートウェイスイッチ毎に、その端末を送信元とし、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットを中継スイッチに転送することを規定したフローエントリを設定する。【選択図】図１５
2017183960.tif 000002
【特許請求の範囲】
【請求項１】
サブネットワークに対応付けられたスイッチであるゲートウェイスイッチ、およびゲートウェイスイッチ間でパケットを中継する中継スイッチに対して、パケットに対するアクションを規定したフローエントリを設定するフローエントリ設定手段を備え、
前記フローエントリ設定手段は、
前記中継スイッチに対して、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットを前記ゲートウェイスイッチに転送することを規定したフローエントリを、前記中継スイッチ以外のゲートウェイスイッチ毎に設定し、
ゲートウェイスイッチからパケットを受信したときに、前記ゲートウェイスイッチに対して、前記パケットの送信元の端末を宛先とするパケットを前記端末に転送することを規定したフローエントリを設定するとともに、前記ゲートウェイスイッチに対して、当該ゲートウェイスイッチ以外のゲートウェイスイッチ毎に、前記端末を送信元とし、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットを前記中継スイッチに転送することを規定したフローエントリを設定する
ことを特徴とするスイッチ制御装置。
【請求項２】
フローエントリ設定手段は、
ゲートウェイスイッチからパケットを受信したときに、前記パケットの送信元アドレスが前記ゲートウェイスイッチに対応するサブネットワークのアドレスに該当していない場合、前記パケットの送信元アドレスに該当するサブネットワークに対応するゲートウェイスイッチに対して、前記パケットを送信したゲートウェイスイッチに前記パケットの送信元アドレスを宛先とするパケットを転送することを規定したフローエントリを設定する
請求項１に記載のスイッチ制御装置。
【請求項３】
ゲートウェイスイッチに接続されている端末のアドレスを記憶する端末アドレス記憶手段を備え、
フローエントリ設定手段は、
ゲートウェイスイッチからパケットを受信したときに、前記パケットの宛先アドレスが前記端末アドレス記憶手段に記憶されていない場合、全てのゲートウェイスイッチに前記パケットをブロードキャスト送信させる
請求項１または請求項２に記載のスイッチ制御装置。
【請求項４】
スイッチを制御するスイッチ制御装置が、
サブネットワークに対応付けられたスイッチであるゲートウェイスイッチ間でパケットを中継する中継スイッチに対して、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットを前記ゲートウェイスイッチに転送することを規定したフローエントリを、前記中継スイッチ以外のゲートウェイスイッチ毎に設定し、
ゲートウェイスイッチからパケットを受信したときに、前記ゲートウェイスイッチに対して、前記パケットの送信元の端末を宛先とするパケットを前記端末に転送することを規定したフローエントリを設定するとともに、前記ゲートウェイスイッチに対して、当該ゲートウェイスイッチ以外のゲートウェイスイッチ毎に、前記端末を送信元とし、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットを前記中継スイッチに転送することを規定したフローエントリを設定する
ことを特徴とするスイッチ制御方法。
【請求項５】
スイッチ制御装置が、
ゲートウェイスイッチからパケットを受信したときに、前記パケットの送信元アドレスが前記ゲートウェイスイッチに対応するサブネットワークのアドレスに該当していない場合、前記パケットの送信元アドレスに該当するサブネットワークに対応するゲートウェイスイッチに対して、前記パケットを送信したゲートウェイスイッチに前記パケットの送信元アドレスを宛先とするパケットを転送することを規定したフローエントリを設定する
請求項４に記載のスイッチ制御方法。
【請求項６】
スイッチ制御装置が、
ゲートウェイスイッチに接続されている端末のアドレスを端末アドレス記憶手段に記憶し、
ゲートウェイスイッチからパケットを受信したときに、前記パケットの宛先アドレスが前記端末アドレス記憶手段に記憶されていない場合、全てのゲートウェイスイッチに前記パケットをブロードキャスト送信させる
請求項４または請求項５に記載のスイッチ制御方法。
【請求項７】
スイッチを制御するコンピュータに搭載されるスイッチ制御プログラムであって、
前記コンピュータに、
サブネットワークに対応付けられたスイッチであるゲートウェイスイッチ間でパケットを中継する中継スイッチに対して、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットを前記ゲートウェイスイッチに転送することを規定したフローエントリを、前記中継スイッチ以外のゲートウェイスイッチ毎に設定する処理、および、
ゲートウェイスイッチからパケットを受信したときに、前記ゲートウェイスイッチに対して、前記パケットの送信元の端末を宛先とするパケットを前記端末に転送することを規定したフローエントリを設定するとともに、前記ゲートウェイスイッチに対して、当該ゲートウェイスイッチ以外のゲートウェイスイッチ毎に、前記端末を送信元とし、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットを前記中継スイッチに転送することを規定したフローエントリを設定する処理
を実行させるためのスイッチ制御プログラム。
【請求項８】
コンピュータに、
ゲートウェイスイッチからパケットを受信したときに、前記パケットの送信元アドレスが前記ゲートウェイスイッチに対応するサブネットワークのアドレスに該当していない場合、前記パケットの送信元アドレスに該当するサブネットワークに対応するゲートウェイスイッチに対して、前記パケットを送信したゲートウェイスイッチに前記パケットの送信元アドレスを宛先とするパケットを転送することを規定したフローエントリを設定する処理を実行させる
請求項７に記載のスイッチ制御プログラム。
【請求項９】
コンピュータに、
ゲートウェイスイッチに接続されている端末のアドレスを端末アドレス記憶手段に記憶させる処理、および、
ゲートウェイスイッチからパケットを受信したときに、前記パケットの宛先アドレスが前記端末アドレス記憶手段に記憶されていない場合、全てのゲートウェイスイッチに前記パケットをブロードキャスト送信させる処理を実行させる
請求項７または請求項８に記載のスイッチ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを転送するスイッチを制御するスイッチ制御装置、スイッチ制御方法およびスイッチ制御プログラムに関する。
【背景技術】
【０００２】
パケットを転送するスイッチを制御装置が制御するプロトコルとして、オープンフロー（ＯｐｅｎＦｌｏｗ）が知られている。
【０００３】
オープンフローでは、制御装置がスイッチにフローエントリを設定する。そして、スイッチは、受信したパケットをそのフローエントリに従って処理する。フローエントリとは、パケットをどのように処理するか（例えば、パケットをどこに転送するか等）を規定した情報である。フローエントリは、パケットのフロー毎に設定される。スイッチがパケットを受信したときに、そのパケットのフローに対応するフローエントリが存在する場合、スイッチは、そのフローエントリに従ってそのパケットを処理する。一方、受信したパケットのフローに対応するフローエントリが存在しない場合、スイッチは、そのパケットを制御装置に送信する。そして、制御装置は、そのパケットのフローに対応するフローエントリ決定し、スイッチに設定する。
【０００４】
オープンフローにおいて、制御装置とスイッチとが送受信するメッセージの例として「パケットイン（Packet_in ）」、「パケットアウト（Packet_out）」等がある。
【０００５】
「パケットイン」は、スイッチから制御装置に送られるメッセージである。「パケットイン」は、対応するフローエントリが存在しなかったパケットをスイッチから制御装置に送るために用いられる。
【０００６】
「パケットアウト」は、制御装置からスイッチに送られるメッセージである。「パケットアウト」は、ポートからのパケット出力を指示するメッセージである。
【０００７】
なお、個々のスイッチは、それぞれ、制御装置と、専用の経路で接続される。この専用の経路は、制御チャネルと呼ばれる。制御装置は、個々のスイッチと、制御チャネルを介して通信する。
【０００８】
特許文献１には、ネットワーク上に物理的に分散配備された制御信号処理部とデータ信号処理部が連携してパケット転送処理を行う機能分散型のパケット転送処理装置に関する技術が記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−５４１２９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本明細書では、スイッチに接続され、パケットの送信元や宛先となる装置を端末と記す。
【００１１】
オープンフローで制御されるスイッチを含むネットワークにおいて、いずれかのスイッチに接続される端末に、他の端末からのアクセスが集中する場合がある。
【００１２】
アクセスが集中する端末が接続されているスイッチでは、その端末の通信相手となる端末台数分のフローエントリの設定が必要になる。このとき、通信相手となる端末台数が多いと、そのスイッチに大量のフローエントリを設定する必要が生じる。また、そのフローエントリの数が、スイッチに設定可能なフローエントリの数を超えた場合、スイッチに設定することができないフローエントリが生じる場合もある。
【００１３】
図１６は、１つの端末にアクセスが集中するネットワーク構成の例を示す模式図である。図１６では、アクセスが集中する端末の例として、ＤＮＳ（Domain Name System）サーバを例示している。また、その他の端末がパーソナルコンピュータ（以下、ＰＣと記す。）である場合を例示している。また、以下の説明では、オープンフローにおける制御装置をＯＦＣと記し、オープンフローにおけるスイッチをＯＦＳと記す。
【００１４】
図１６において、パケット通信の経路を実線で示し、制御チャネルを破線で示している。＃とともに記した番号は、ＯＦＳのポート番号である。ＯＦＣ７は、各ＯＦＳ１〜５にフローエントリを設定する。図１６に示す例では、ＤＮＳサーバ２０に、ｎ台のＰＣ１０ａ〜１０ｎからのアクセスが集中する。この場合、ＤＮＳサーバ２０が接続されているＯＦＳ４に、ｎ個のフローエントリを設定する必要がある。また、ＯＦＳ４に、アクセスが集中する端末がｍ台接続されている場合には、ｎ×ｍ個のフローエントリをＯＦＳ４に設定する必要がある。
【００１５】
図１７は、ＤＮＳサーバ２０が接続されているＯＦＳ４に設定される各フローエントリを示す模式図である。図１７では、送信元ＭＡＣ（Media Access Control）アドレスと宛先ＭＡＣアドレスとの組に応じたアクションを、宛先となるＰＣ毎に示している。なお、アクションとして示した“Port#1”は、ポート＃１からパケットを出力することを意味する。ＰＣの台数がｎ台であれば、ｎ個のフローエントリがＯＦＳ４に設定される。ＰＣの台数が多いと、上述のように、ＯＦＳ４に大量のフローエントリを設定する必要が生じたり、ＯＦＳ４に設定することができないフローエントリが生じたりする。
【００１６】
ＯＦＳ４に設定するフローエントリの数を減らすために、ＤＮＳサーバ２０を複数のＯＦＳに分散させることが考えられるが、その場合、ネットワーク設計の難易度が高くなってしまう。
【００１７】
そこで、本発明は、スイッチに接続されている端末にアクセスが集中する場合であっても、そのスイッチに設定されるフローエントリの数の増加を防止することができるスイッチ制御装置、スイッチ制御方法およびスイッチ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明によるスイッチ制御装置は、サブネットワークに対応付けられたスイッチであるゲートウェイスイッチ、およびゲートウェイスイッチ間でパケットを中継する中継スイッチに対して、パケットに対するアクションを規定したフローエントリを設定するフローエントリ設定手段を備え、フローエントリ設定手段が、中継スイッチに対して、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットをそのゲートウェイスイッチに転送することを規定したフローエントリを、中継スイッチ以外のゲートウェイスイッチ毎に設定し、ゲートウェイスイッチからパケットを受信したときに、そのゲートウェイスイッチに対して、パケットの送信元の端末を宛先とするパケットをその端末に転送することを規定したフローエントリを設定するとともに、そのゲートウェイスイッチに対して、当該ゲートウェイスイッチ以外のゲートウェイスイッチ毎に、その端末を送信元とし、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットを中継スイッチに転送することを規定したフローエントリを設定することを特徴とする。
【００１９】
また、本発明によるスイッチ制御方法は、スイッチを制御するスイッチ制御装置が、サブネットワークに対応付けられたスイッチであるゲートウェイスイッチ間でパケットを中継する中継スイッチに対して、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットをそのゲートウェイスイッチに転送することを規定したフローエントリを、中継スイッチ以外のゲートウェイスイッチ毎に設定し、ゲートウェイスイッチからパケットを受信したときに、そのゲートウェイスイッチに対して、パケットの送信元の端末を宛先とするパケットをその端末に転送することを規定したフローエントリを設定するとともに、そのゲートウェイスイッチに対して、当該ゲートウェイスイッチ以外のゲートウェイスイッチ毎に、その端末を送信元とし、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットを中継スイッチに転送することを規定したフローエントリを設定することを特徴とする。
【００２０】
また、本発明によるスイッチ制御プログラムは、スイッチを制御するコンピュータに搭載されるスイッチ制御プログラムであって、コンピュータに、サブネットワークに対応付けられたスイッチであるゲートウェイスイッチ間でパケットを中継する中継スイッチに対して、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットをそのゲートウェイスイッチに転送することを規定したフローエントリを、中継スイッチ以外のゲートウェイスイッチ毎に設定する処理、および、ゲートウェイスイッチからパケットを受信したときに、そのゲートウェイスイッチに対して、パケットの送信元の端末を宛先とするパケットをその端末に転送することを規定したフローエントリを設定するとともに、そのゲートウェイスイッチに対して、当該ゲートウェイスイッチ以外のゲートウェイスイッチ毎に、その端末を送信元とし、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットを中継スイッチに転送することを規定したフローエントリを設定する処理を実行させることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、スイッチに接続されている端末にアクセスが集中する場合であっても、そのスイッチに設定されるフローエントリの数の増加を防止することができる。
【図面の簡単な説明】
【００２２】
【図１】管理対象ネットワークの例を示す模式図である。
【図２】本発明のスイッチ制御装置の構成例を示すブロック図である。
【図３】スイッチ制御装置がＧＷＳ情報として記憶する情報の例を示す説明図である。
【図４】フロー設定処理部が中継スイッチに対して設定するフローエントリの例を示す説明図である。
【図５】通信を行う端末のアドレスが、その端末に接続されているＧＷＳに対応するサブネットワークのアドレスに該当する場合の処理経過の例を示す説明図である。
【図６】通信を行う端末のアドレスが、その端末に接続されているＧＷＳに対応するサブネットワークのアドレスに該当する場合の処理経過の例を示す説明図である。
【図７】ステップＳ３で設定されるフローエントリの例を示す説明図である。
【図８】ステップＳ８で設定されるフローエントリの例を示す説明図である。
【図９】通信を行う端末のアドレスが、その端末に接続されているＧＷＳに対応するサブネットワークのアドレスに該当しない場合の処理経過の例を示す説明図である。
【図１０】通信を行う端末のアドレスが、その端末に接続されているＧＷＳに対応するサブネットワークのアドレスに該当しない場合の処理経過の例を示す説明図である。
【図１１】通信を行う端末のアドレスが、その端末に接続されているＧＷＳに対応するサブネットワークのアドレスに該当しない場合の処理経過の例を示す説明図である。
【図１２】ステップＴ３ａで設定されるフローエントリの例を示す説明図である。
【図１３】ステップＴ３ｂで設定されるフローエントリの例を示す説明図である。
【図１４】ステップＴ８で設定されるフローエントリの例を示す説明図である。
【図１５】本発明のスイッチ制御装置の概要を示すブロック図である。
【図１６】１つの端末にアクセスが集中するネットワーク構成の例を示す模式図である。
【図１７】図１６に示すＤＮＳサーバが接続されているＯＦＳに設定される各フローエントリを示す模式図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態を図面を参照して説明する。
【００２４】
既に述べたように、本明細書では、スイッチに接続され、パケットの送信元や宛先となる装置を端末と記す。
【００２５】
本発明のスイッチ制御装置は、オープンフローにおける制御装置に該当する。以下の説明においても、オープンフローにおける制御装置をＯＦＣと記し、オープンフローにおけるスイッチをＯＦＳと記す。
【００２６】
本発明のスイッチ制御装置は、管理対象ネットワークのＩＰ（Internet Protocol ）アドレス帯域を、複数のサブネットワークに分割する。そして、スイッチ制御装置は、分割されたサブネットワークのＩＰアドレス（ＩＰアドレス帯域）を、ＯＦＳに対応付ける。サブネットワークのＩＰアドレスに対応付けられたＯＦＳを、ゲートウェイスイッチまたはＧＷＳ（Gateway Switch）と記す。
【００２７】
また、ＧＷＳ間でパケットを中継するスイッチを中継スイッチと記す。中継スイッチがＧＷＳであってもよい。
【００２８】
図１は、管理対象ネットワークの例を示す模式図である。図１において、実線で示した経路および一点鎖線で示した経路は、パケットの転送経路である。実線で示した経路は、中継スイッチを経由してパケットを転送する際に用いる経路である。一点鎖線で示した経路は、中継スイッチを経由せずに、ＧＷＳ間で直接、パケットを転送する際に用いる経路である。また、破線で示した経路は制御チャネルである。なお、管理対象ネットワークのトポロジは、図１に示すトポロジに限定されない。また、図１において、＃とともに記した番号は、ＯＦＳのポート番号である。
【００２９】
本発明のスイッチ制御装置（ＯＦＣ）７００は、各ＯＦＳ１００〜５００に対してフローエントリを設定する。
【００３０】
ＯＦＳ１００，２００，３００，４００，５００は、ＧＷＳであるとする。
【００３１】
また、ＯＦＳ５００は、ＧＷＳ間でパケットを中継する中継スイッチである。図１に示す例では、中継スイッチ（ＯＦＳ５００）のポート＃１，＃２，＃３，＃４はそれぞれ、ＯＦＳ１００，２００，３００，４００に接続されている。
【００３２】
また、図１に示す例では、ＯＦＳ１００には、端末としてＰＣ１１ａ，１１ｂが接続されている。ＯＦＳ２００，３００にも、端末としてＰＣが接続されている。ＯＦＳ４００には、端末としてＤＮＳサーバ３０が接続されている。
【００３３】
ＰＣ１１ａは、ＯＦＳ１００のポート＃Ｘに接続されている。ＰＣ１１ｂは、ＯＦＳ１００のポート＃Ｙに接続されている。ＤＮＳサーバ３０は、ＯＦＳ４００のポート＃Ｚに接続されている。
【００３４】
また、ＯＦＳ２００のポート＃Ｗに、ＯＦＳ１００が接続されている。
【００３５】
図１において、ＯＦＳ１００，２００，３００，４００の近傍に記載したアドレスは、それぞれ、ＯＦＳ１００，２００，３００，４００に対応するサブネットワークのアドレスである。
【００３６】
以下の説明においても、図１に示すＯＦＳ１００〜５００等を例にして説明する。
【００３７】
スイッチ制御装置７００は、送信元ＭＡＣアドレスと、ＧＷＳに対応するサブネットワークのＩＰアドレスとの組に、アクションを対応付けたフローエントリを、端末に接続されているＧＷＳに設定する。
【００３８】
図２は、本発明のスイッチ制御装置の構成例を示すブロック図である。本発明のスイッチ制御装置７００は、通信処理部３０５と、コンフィグ設定部３１０と、コンフィグ情報管理部３２０と、フロー設定処理部３４０と、経路計算処理部３５０と、トポロジ情報受付部３６０と、トポロジ情報管理部３７０と、ステーション情報受付部３９０と、ステーション情報管理部４０５と、ＧＷＳ管理部４３０とを備える。
【００３９】
通信処理部３０５は、各ＯＦＳと通信するための通信インタフェースである。例えば、通信処理部３０５は、各ＯＦＳとの間でパケットを送受信する。
【００４０】
コンフィグ設定部３１０は、コンフィグ情報をコンフィグ情報管理部３２０に書き込むためのユーザインタフェースである。コンフィグ情報は、管理対象ネットワークのＩＰアドレス帯域を示す情報である。
【００４１】
コンフィグ情報管理部３２０は、例えば、メモリを備え、コンフィグ設定部３１０を介してユーザから指定されたコンフィグ情報（管理対象ネットワークのＩＰアドレス帯域）を、そのメモリに書き込む。
【００４２】
スイッチ制御装置７００と各ＯＦＳとが接続されると、各ＯＦＳは、ＬＬＤＰ（Link Layer Discovery Protocol ）等の標準的な方法でＯＦＳのネットワークのトポロジを検出し、トポロジ情報をスイッチ制御装置７００に通知する。トポロジ情報受付部３６０は、各ＯＦＳから通知されたトポロジ情報を、通信処理部３０５を介して受け取り、そのトポロジ情報の書き込みをトポロジ情報管理部３７０に指示する。
【００４３】
トポロジ情報管理部３７０は、例えば、メモリを備え、トポロジ情報受付部３６０の指示に従って、トポロジ情報受付部３６０が各ＯＦＳから受け取ったトポロジ情報を、そのメモリに書き込む。
【００４４】
経路計算処理部３５０は、コンフィグ情報管理部３２０からコンフィグ情報３３０を取得し、トポロジ情報管理部３７０からトポロジ情報３８０を取得する。前述のように、コンフィグ情報３３０は、管理対象ネットワークのＩＰアドレス帯域を示す情報である。経路計算処理部３５０は、トポロジ情報３８０およびコンフィグ情報３３０に基づいて、管理対象ネットワーク内のどのＯＦＳをＧＷＳとするかを決定し、また、管理対象ネットワークのＩＰアドレス帯域をどのように分割するかを決定する。さらに、経路計算処理部３５０は、ＧＷＳと決定したＯＦＳに、分割によって得られるどのサブネットワークのＩＰアドレス（ＩＰアドレス帯域）を対応付けるかを決定する。経路計算処理部３５０が決定する上記の内容を示す情報を、ＧＷＳ情報と記す。経路計算処理部３５０は、ＧＷＳ情報４２０の書き込みをＧＷＳ管理部４３０に指示する。
【００４５】
ＧＷＳ管理部４３０は、例えば、メモリを備え、経路計算処理部３５０の指示に従ってＧＷＳ情報４２０をそのメモリに書き込む。
【００４６】
図３は、スイッチ制御装置（ＯＦＣ）７００がＧＷＳ情報４２０として記憶する情報の例を示す説明図である。図３では、例えば、ＯＦＳ１００，２００，３００，４００がＧＷＳとして決定されたことを意味している。また、例えば、ＯＦＳ１００には、ＩＰアドレス帯域が“192.168.0.0/26”であるサブネットワークが対応付けられたことを意味している。なお、経路計算処理部３５０は、ＯＦＳ５００もＧＷＳとして決定してもよい。
【００４７】
また、経路計算処理部３５０は、トポロジ情報３８０に基づいて中継スイッチも決定し、中継スイッチに該当するＯＦＳを示す情報の書き込みもＧＷＳ管理部４３０に指示する。本実施形態では、ＯＦＳ５００が中継スイッチとして決定された場合を例にして説明する。
【００４８】
端末に接続されているＧＷＳは、端末からパケットを受信したときに、そのパケットに対応するフローエントリがそのＧＷＳに設定されていない場合、そのパケットを「パケットイン」メッセージとともに、スイッチ制御装置７００に送信する。このとき、ＧＷＳは、ステーション情報もスイッチ制御装置７００に送信する。ステーション情報は、パケットの送信元の端末のＭＡＣアドレスと、その端末に接続されたＯＦＳのＤＰＩＤ（Datapath ID ）／ポート番号との組を示す情報である。
【００４９】
ステーション情報受付部３９０は、端末が接続されている各ＯＦＳから通知されたステーション情報を、通信処理部３０５を介して受け取り、そのステーション情報の書き込みをステーション情報管理部４０５に指示する。
【００５０】
ステーション情報管理部４０５は、例えば、メモリを備える。そして、ステーション情報管理部４０５は、端末が接続されている各ＯＦＳからステーション情報受付部３９０が受け取ったステーション情報を、ステーション情報受付部３９０の指示に従って、そのメモリに書き込む。ステーション情報は、ＧＷＳに接続されている端末のアドレス（ＭＡＣアドレス）を示していると言うことができる。従って、ステーション情報管理部４０５は、ＧＷＳに接続されている端末のアドレスを記憶する端末アドレス記憶手段と称することもできる。
【００５１】
フロー設定処理部３４０は、端末が接続されているＯＦＳが「パケットイン」メッセージとともに送信したパケットを、通信処理部３０５を介して受け取る。そして、フロー設定処理部３４０は、「パケットイン」メッセージとともに送信されたステーション情報、経路計算処理部３５０が把握しているトポロジ情報３８０およびＧＷＳ情報４２０に基づいて、そのパケットを送信したＯＦＳに設定するフローエントリを生成する。そして、フロー設定処理部３４０は、通信処理部３０５を介して、そのＯＦＳにフローエントリを送信することによって、そのＯＦＳにフローエントリを設定する。
【００５２】
コンフィグ情報管理部３２０、トポロジ情報受付部３６０、トポロジ情報管理部３７０、ステーション情報受付部３９０、ステーション情報管理部４０５、経路計算処理部３５０、ＧＷＳ管理部４３０およびフロー設定処理部３４０は、例えば、スイッチ制御プログラムに従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵは、例えば、コンピュータのプログラム記憶装置（図示略）等のプログラム記録媒体からスイッチ制御プログラムを読み込み、そのスイッチ制御プログラムに従って、コンフィグ情報管理部３２０、トポロジ情報受付部３６０、トポロジ情報管理部３７０、ステーション情報受付部３９０、ステーション情報管理部４０５、経路計算処理部３５０、ＧＷＳ管理部４３０およびフロー設定処理部３４０として動作すればよい。また、コンフィグ情報管理部３２０、トポロジ情報受付部３６０、トポロジ情報管理部３７０、ステーション情報受付部３９０、ステーション情報管理部４０５、経路計算処理部３５０、ＧＷＳ管理部４３０およびフロー設定処理部３４０が別々のハードウェアによって実現されていてもよい。
【００５３】
次に、本発明の処理経過の例について説明する。
【００５４】
まず、事前準備に該当する処理について説明する。コンフィグ情報管理部３２０は、スイッチ制御装置７００のユーザからコンフィグ設定部３１０を介して、コンフィグ情報を指定される。すると、コンフィグ情報管理部３２０は、そのコンフィグ情報をメモリに書き込む。この結果、コンフィグ情報管理部３２０は、例えば、管理対象ネットワークのＩＰアドレス帯域が“192.168.0.0/24（図１参照）”であることを示すコンフィグ情報を記憶する。
【００５５】
また、スイッチ制御装置７００と各ＯＦＳとが接続されると、各ＯＦＳは、ＬＬＤＰ等の標準的な方法でＯＦＳのネットワークのトポロジを検出し、トポロジ情報をスイッチ制御装置７００に通知する。トポロジ情報受付部３６０は、各ＯＦＳから通知されたトポロジ情報の書き込みをトポロジ情報管理部３７０に指示する。トポロジ情報管理部３７０は、この指示に従い、メモリにトポロジ情報を書き込む。この結果、トポロジ情報管理部３７０は、ＯＦＳのネットワークのトポロジ情報を記憶する。
【００５６】
コンフィグ情報、およびＯＦＳのネットワークのトポロジ情報が記憶された後、経路計算処理部３５０は、そのトポロジ情報およびコンフィグ情報に基づいて、管理対象ネットワーク内のどのＯＦＳをＧＷＳとするかを決定し、また、管理対象ネットワークのＩＰアドレス帯域をどのように分割するかを決定する。さらに、経路計算処理部３５０は、ＧＷＳと決定したＯＦＳに、分割によって得られるどのサブネットワークのＩＰアドレス（ＩＰアドレス帯域）を対応付けるかを決定する。経路計算処理部３５０は、この決定結果を示すＧＷＳ情報４２０の書き込みをＧＷＳ管理部４３０に指示する。本例では、ＯＦＳ１００，２００，３００，４００，５００がＧＷＳとして決定されたものして説明する。また、ＯＦＳ１００，２００，３００，４００とサブネットワークのＩＰアドレスとの対応関係が、図３に示すように決定されたものとする。
【００５７】
また、経路計算処理部３５０は、トポロジ情報に基づいて中継スイッチも決定し、中継スイッチに該当するＯＦＳを示す情報の書き込みもＧＷＳ管理部４３０に指示する。本実施形態では、スイッチ５００が中継スイッチとして決定されたものとして説明する。
【００５８】
ＧＷＳとサブネットワークのＩＰアドレスとの対応関係、および中継スイッチが決定されると、フロー設定処理部３４０は、ＧＷＳに対応するサブネットワークのＩＰアドレス（ＩＰアドレス帯域）と、そのＩＰアドレスに対応するアクションを規定したフローエントリを、ＧＷＳ（ただし、中継スイッチであるＯＦＳ５００は除く。）毎に作成し、中継スイッチ（ＯＦＳ５００）にそのフローエントリを設定する。フロー設定処理部３４０は、アクションとして、フローエントリ内に記述したＩＰアドレスに対応するＧＷＳにパケットを転送する旨を記述する。
【００５９】
フロー設定処理部３４０が中継スイッチ（ＯＦＳ５００）に対して設定するフローエントリの例を図４に示す。図４において、例えば、“Port#1”は、ポート＃１からパケットを出力することを意味する。例えば、図４に示す１番目のフローエントリは、宛先アドレスが“192.168.0.0/26”に該当しているパケットを、ポート＃１から出力することを規定している。ＯＦＳ５００のポート＃１は、ＯＦＳ１００に接続されている（図１参照）。従って、ＯＦＳ５００のポート＃１からパケットを出力するということは、ＯＦＳ１００にパケットを転送することを意味する。ここでは、図４に示す１番目のフローエントリを例にして説明したが、図４に示す他の３つのフローエントリは、ＯＦＳ２００，３００，４００に対応する同様のフローエントリである。
【００６０】
フロー設定処理部３４０は、中継スイッチに対して、ＧＷＳに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットをそのＧＷＳに転送することを規定したフローエントリを、中継スイッチ以外のＧＷＳ毎に設定している。フロー設定処理部３４０は、ＯＦＳ５００に向けてパケットを転送する旨を規定したフローエントリをＯＦＳ５００に設定する必要はない。
【００６１】
以上が、事前準備に該当する処理である。
【００６２】
次に、端末間の通信が発生したときの処理経過について説明する。ここでは、まず、通信を行う端末のアドレスが、その端末に接続されているＧＷＳに対応するサブネットワークのアドレスに該当する場合について説明する。
【００６３】
図５および図６は、通信を行う端末のアドレスが、その端末に接続されているＧＷＳに対応するサブネットワークのアドレスに該当する場合の処理経過の例を示す説明図である。なお、図５および図６は、図１の一部を抜き出し、ステップ番号を付加した図である。
【００６４】
ここでは、ＰＣ１１ａのＩＰアドレスが、ＰＣ１１ａが接続されているＧＷＳ（ＯＦＳ１００）に対応するサブネットワークのＩＰアドレスに該当し、ＤＮＳサーバ３０のＩＰアドレスが、ＤＮＳサーバ３０が接続されているＧＷＳ（ＯＦＳ４００）に対応するサブネットワークのＩＰアドレスに該当しているものとして説明する。
【００６５】
まず、ＰＣ１１ａが、ＰＣ１１ａを送信元としＤＮＳサーバ３０を宛先とするパケットをＯＦＳ１００に送信する（図５に示すステップＳ１）。
【００６６】
ＯＦＳ１００には、このパケットに対応するフローエントリはまだ設定されていないものとする。この場合、ＯＦＳ１００は、そのパケットを「パケットイン」メッセージとともに、スイッチ制御装置７００に送信する（図５に示すステップＳ２）。このとき、ＯＦＳ１００は、ＰＣ１１ａおよびＯＦＳ１００に関するステーション情報もスイッチ制御装置７００に送信する。
【００６７】
スイッチ制御装置７００のフロー設定処理部３４０は、そのパケットおよびステーション情報を受け取ると、「パケットイン」メッセージを送信したＯＦＳ１００に設定するフローエントリを作成し、ＯＦＳ１００に対してそのフローエントリを設定する（図５に示すステップＳ３）。図７は、ステップＳ３でＯＦＳ１００に設定されるフローエントリの例を示す説明図である。
【００６８】
フロー設定処理部３４０は、ＯＦＳ１００から受け取ったステーション情報から、パケットの送信元の端末であるＰＣ１１ａが、ＯＦＳ１００のポート＃Ｘに接続されていることを認識する。フロー設定処理部３４０は、そのステーション情報に基づいて、パケットの送信元の端末（本例ではＰＣ１１ａ）を宛先とするパケットをその端末に転送することを規定したフローエントリをＯＦＳ１００に対して設定する。図７に示す１番目のフローエントリは、このフローエントリである。図７に示す１番目のフローエントリは、宛先ＭＡＣアドレスおよび宛先ＩＰアドレスがＰＣ１１ａのＭＡＣアドレスおよびＩＰアドレスに合致するパケットをポート＃Ｘから出力する（すなわち、ＰＣ１１ａに転送する）ことを規定している。
【００６９】
さらに、フロー設定処理部３４０は、ＯＦＳ１００に対して、ＯＦＳ１００以外のＧＷＳ毎に、その端末を送信元とし、ＧＷＳに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットを中継スイッチに転送することを規定したフローエントリを設定する。図７に示す２番目から４番目までの３つのフローエントリが、このフローエントリである。例えば、図７に示す２番目のフローエントリは、送信元ＭＡＣアドレスがＰＣ１１ａのＭＡＣアドレスであり、宛先ＩＰアドレスが、ＯＦＳ２００に対応するサブネットワークのアドレス（“192.168.0.64/26 ”）に該当するパケットを、ポート＃１から出力する（すなわち、中継スイッチに転送する）ことを規定している。図７に示す３番目および４番目のフローエントリは、ＯＦＳ３００，４００に対応する同様のフローエントリである。
【００７０】
また、スイッチ制御装置７００のステーション情報受付部３９０は、ＯＦＳ１００から受け取ったステーション情報をステーション情報管理部４０５に記憶させる。
【００７１】
ステップＳ３の後、フロー設定処理部３４０は、「パケットイン」メッセージとともに受信したパケットの宛先ＭＡＣアドレスを有する端末が、どのＧＷＳのどのポートに接続されているかを、ステーション情報管理部４０５に記憶されているステーション情報４１０に基づいて検査する。ただし、ここでは、パケットの宛先ＭＡＣアドレスを有する端末（ＤＮＳサーバ３０）は、ステーション情報をスイッチ制御装置７００に送信していない。そのため、フロー設定処理部３４０は、「パケットイン」メッセージとともに受信したパケットの宛先ＭＡＣアドレスを有する端末が、どのＧＷＳのどのポートに接続されているかを特定できない。この場合、フロー設定処理部３４０は、ステップＳ２でＯＦＳ１００から受け取ったパケットと、そのパケットをブロードキャスト送信することを示す「パケットアウト」メッセージとを、全てのＧＷＳに送信する（図６に示すステップＳ４）。
【００７２】
このフロー設定処理部３４０の動作は、ＧＷＳからパケットを受信したときに、そのパケットの宛先アドレスがステーション情報管理部４０５に記憶されていない場合、全てのＧＷＳにそのパケットをブロードキャスト送信させる動作であると言うことができる。
【００７３】
ＯＦＳ４００は、その「パケットアウト」メッセージに基づき、ＯＦＳ４００のポート＃Ｚからパケットを出力する（図６に示すステップＳ５）。この結果、ＤＮＳサーバ３０は、ＰＣ１１ａを送信元とするパケットを、ＯＦＳ４００から受信する。
【００７４】
ＤＮＳサーバ３０は、ＰＣ１１ａを送信元とするパケットを受信すると、ＰＣ１１ａへの応答として、ＤＮＳサーバ３０を送信元としＰＣ１１ａを宛先とするパケットを、ＯＦＳ４００に送信する（図６に示すステップＳ６）。
【００７５】
ＯＦＳ４００には、このパケットに対応するフローエントリはまだ設定されていないものとする。この場合、ＯＦＳ４００は、そのパケットを「パケットイン」メッセージとともに、スイッチ制御装置７００に送信する（図６に示すステップＳ７）。このとき、ＯＦＳ４００は、ＤＮＳサーバ３０およびＯＦＳ４００に関するステーション情報もスイッチ制御装置７００に送信する。
【００７６】
スイッチ制御装置７００のフロー設定処理部３４０は、そのパケットおよびステーション情報を受け取ると、「パケットイン」メッセージを送信したＯＦＳ４００に設定するフローエントリを作成し、ＯＦＳ４００に対してそのフローエントリを設定する（図６に示すステップＳ８）。図８は、ステップＳ８でＯＦＳ４００に設定されるフローエントリの例を示す説明図である。
【００７７】
フロー設定処理部３４０は、ＯＦＳ４００から受け取ったステーション情報から、パケットの送信元の端末であるＤＮＳサーバ３０が、ＯＦＳ４００のポート＃Ｚに接続されていることを認識する。フロー設定処理部３４０は、そのステーション情報に基づいて、パケットの送信元の端末（本例ではＤＮＳサーバ３０）を宛先とするパケットをその端末に転送することを規定したフローエントリをＯＦＳ４００に対して設定する。図８に示す１番目のフローエントリは、このフローエントリである。図８に示す１番目のフローエントリは、宛先ＭＡＣアドレスおよび宛先ＩＰアドレスがＤＮＳサーバ３０のＭＡＣアドレスおよびＩＰアドレスに合致するパケットをポート＃Ｚから出力する（すなわち、ＤＮＳサーバ３０に転送する）ことを規定している。
【００７８】
さらに、フロー設定処理部３４０は、ＯＦＳ４００に対して、ＯＦＳ４００以外のＧＷＳ毎に、その端末を送信元とし、ＧＷＳに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットを中継スイッチに転送することを規定したフローエントリを設定する。図８に示す２番目から４番目までの３つのフローエントリが、このフローエントリである。例えば、図８に示す２番目のフローエントリは、送信元ＭＡＣアドレスがＤＮＳサーバ３０のＭＡＣアドレスであり、宛先ＩＰアドレスが、ＯＦＳ１００に対応するサブネットワークのアドレス（“192.168.0.0/26”）に該当するパケットを、ポート＃１から出力する（すなわち、中継スイッチに転送する）ことを規定している。図８に示す３番目および４番目のフローエントリは、ＯＦＳ２００，３００に対応する同様のフローエントリである。
【００７９】
また、スイッチ制御装置７００のステーション情報受付部３９０は、ＯＦＳ４００から受け取ったステーション情報をステーション情報管理部４０５に記憶させる。
【００８０】
ステップＳ８の後、フロー設定処理部３４０は、「パケットイン」メッセージとともに受信したパケットの宛先ＭＡＣアドレスを有する端末（ここでは、ＰＣ１１ａ）が、どのＧＷＳのどのポートに接続されているかを、ステーション情報管理部４０５に記憶されているステーション情報４１０に基づいて検査する。ＰＣ１１ａがＯＦＳ１００のポート＃Ｘに接続されていることを示すステーション情報は、既にステーション情報管理部４０５に記憶されている。従って、フロー設定処理部３４０は、パケットの宛先ＭＡＣアドレスを有する端末（ＰＣ１１ａ）がＯＦＳ１００のポート＃Ｘに接続されていることを認識する。そして、フロー設定処理部３４０は、ステップＳ７でＯＦＳ４００から受け取ったパケットと、そのパケットをポート＃Ｘから出力することを示す「パケットアウト」メッセージとを、ＯＦＳ１００（パケットの宛先ＭＡＣアドレスを有する端末に接続されているＧＷＳ）に送信する（図５に示すステップＳ９）。
【００８１】
ＯＦＳ１００は、その「パケットアウト」メッセージに基づき、ＯＦＳ１００のポート＃Ｘからパケットを出力する（図５に示すステップＳ１０）。この結果、ＰＣ１１ａは、ＤＮＳサーバ３０を送信元とするパケットを、ＯＦＳ１００から受信する。
【００８２】
上記のステップＳ１〜Ｓ１０の処理以後、ステップＳ１〜Ｓ１０の過程でＧＷＳ（ＯＦＳ１００，４００）に設定されたフローエントリと、事前準備の段階で中継スイッチ（ＯＦＳ５００）に設定されたフローエントリとにより、ＧＷＳが、ＰＣ１１ａおよびＤＮＳサーバ３０とが送受信するパケットを転送することができる。
【００８３】
例えば、ＯＦＳ１００が、ＰＣ１１ａからＤＮＳサーバ３０宛てのパケットを受信したとする。このパケットの宛先ＩＰアドレス（ＤＮＳサーバ３０のＩＰアドレス）は、ＯＦＳ４００に対応するサブネットワークのＩＰアドレス（“192.168.0.192/26”）に該当する。従って、ＯＦＳ１００は、図７に示す４番目のフローエントリに従い、ポート＃１からパケットを出力する。中継スイッチ（ＯＦＳ５００）は、このパケットを受信すると、事前準備の段階でＯＦＳ５００に設定されたフローエントリ（具体的には、図４に示す４番目のフローエントリ）に従い、ポート＃４からパケットを出力する。ＯＦＳ４００は、このパケットを受信すると、図８に示す１番目のフローエントリに従い、ポート＃Ｚからパケットを出力する。この結果、ＤＮＳサーバ３０にパケットが到達する。
【００８４】
また、例えば、ＯＦＳ４００が、ＤＮＳサーバ３０からＰＣ１１ａ宛てのパケットを受信したとする。このパケットの宛先ＩＰアドレス（ＰＣ１１ａのＩＰアドレス）は、ＯＦＳ１００に対応するサブネットワークのＩＰアドレス（“192.168.0.0/26”）に該当する。従って、ＯＦＳ４００は、図８に示す２番目のフローエントリに従い、ポート＃１からパケットを出力する。中継スイッチ（ＯＦＳ５００）は、このパケットを受信すると、事前準備の段階でＯＦＳ５００に設定されたフローエントリ（具体的には、図４に示す１番目のフローエントリ）に従い、ポート＃１からパケットを出力する。ＯＦＳ１００は、このパケットを受信すると、図７に示す１番目のフローエントリに従い、ポート＃Ｘからパケットを出力する。この結果、ＰＣ１１ａにパケットが到達する。
【００８５】
次に、通信を行う端末のアドレスが、その端末に接続されているＧＷＳに対応するサブネットワークのアドレスに該当しない場合について説明する。
【００８６】
図９、図１０および図１１は、通信を行う端末のアドレスが、その端末に接続されているＧＷＳに対応するサブネットワークのアドレスに該当しない場合の処理経過の例を示す説明図である。なお、図９、図１０および図１１は、図１の一部を抜き出し、ステップ番号を付加した図である。
【００８７】
ここでは、ＰＣ１１ｂのＩＰアドレスが、ＰＣ１１ｂが接続されているＧＷＳ（ＯＦＳ１００）に対応するサブネットワークのＩＰアドレスに該当していないものとして説明する。また、ＰＣ１１ｂのＩＰアドレスは、ＯＦＳ２００に対応するサブネットワークのＩＰアドレスに該当しているものとする。なお、ＤＮＳサーバ３０のＩＰアドレスは、上記の場合と同様に、ＤＮＳサーバ３０が接続されているＧＷＳ（ＯＦＳ４００）に対応するサブネットワークＩＰアドレスに該当しているものとする。
【００８８】
まず、ＰＣ１１ｂが、ＰＣ１１ｂを送信元としＤＮＳサーバ３０を宛先とするパケットをＯＦＳ１００に送信する（図９に示すステップＴ１）。
【００８９】
ＯＦＳ１００には、このパケットに対応するフローエントリはまだ設定されていないものとする。この場合、ＯＦＳ１００は、そのパケットを「パケットイン」メッセージとともに、スイッチ制御装置７００に送信する（図９に示すステップＴ２）。このとき、ＯＦＳ１００は、ＰＣ１１ｂおよびＯＦＳ１００に関するステーション情報もスイッチ制御装置７００に送信する。
【００９０】
スイッチ制御装置７００のフロー設定処理部３４０は、そのパケットおよびステーション情報を受け取ると、「パケットイン」メッセージを送信したＯＦＳ１００に設定するフローエントリを作成し、ＯＦＳ１００に対してそのフローエントリを設定する（図９に示すステップＴ３ａ）。図１２は、ステップＴ３ａでＯＦＳ１００に設定されるフローエントリの例を示す説明図である。
【００９１】
フロー設定処理部３４０は、ＯＦＳ１００から受け取ったステーション情報から、パケットの送信元の端末であるＰＣ１１ｂが、ＯＦＳ１００のポート＃Ｙに接続されていることを認識する。フロー設定処理部３４０は、そのステーション情報に基づいて、パケットの送信元の端末（本例ではＰＣ１１ｂ）を宛先とするパケットをその端末に転送することを規定したフローエントリをＯＦＳ１００に対して設定する。図１２に示す１番目のフローは、このフローエントリである。図１２に示す１番目のフローエントリは、宛先ＭＡＣアドレスおよび宛先ＩＰアドレスがＰＣ１１ｂのＭＡＣアドレスおよびＩＰアドレスに合致するパケットをポート＃Ｙから出力する（すなわち、ＰＣ１１ｂに転送する）ことを規定している。
【００９２】
さらに、フロー設定処理部３４０は、ＯＦＳ１００に対して、ＯＦＳ１００以外のＧＷＳ毎に、その端末を送信元とし、ＧＷＳに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットを中継スイッチに転送することを規定したフローエントリを設定する。図１２に示す２番目から４番目までの３つのフローエントリが、このフローエントリである。例えば、図１２に示す２番目のフローエントリは、送信元ＭＡＣアドレスがＰＣ１１ｂのＭＡＣアドレスであり、宛先ＩＰアドレスが、ＯＦＳ２００に対応するサブネットワークのアドレス（“192.168.0.64/26 ”）に該当するパケットを、ポート＃１から出力する（すなわち、中継スイッチに転送する）ことを規定している。図１２に示す３番目および４番目のフローエントリは、ＯＦＳ３００，４００に対応する同様のフローエントリである。
【００９３】
また、スイッチ制御装置７００のステーション情報受付部３９０は、ＯＦＳ１００から受け取ったステーション情報をステーション情報管理部４０５に記憶させる。
【００９４】
また、フロー設定処理部３４０は、ステップＴ２でＯＦＳ１００から受け取ったパケットの送信元ＩＰアドレスを参照し、その送信元ＩＰアドレス（ＰＣ１１ｂのＩＰアドレス）が、ステップＴ２でそのパケットを送信したＯＦＳ１００に対応するサブネットワークのアドレス（“192.168.0.0/26”）に該当しないことを認識する。この場合、フロー設定処理部３４０は、そのパケットの送信元ＩＰアドレスが該当するサブネットワークに対応するＧＷＳに対して、ステップＴ２でそのパケットを送信したＧＷＳ（ＯＦＳ１００）にそのパケットの送信元アドレスを宛先とするパケットを転送することを規定したフローエントリを設定する（図１０に示すステップＴ３ｂ）。ステップＴ３ｂにおいて、まず、フロー設定処理部３４０は、そのパケットの送信元ＩＰアドレスが該当するサブネットワークに対応するＧＷＳを、ＧＷＳ情報４２０に基づいて特定する。ここでは、パケットの送信元ＩＰアドレスは、ＰＣ１１ｂのＩＰアドレスである。そして、ＰＣ１１ｂのＩＰアドレスは、ＯＦＳ２００に対応するサブネットワークのＩＰアドレスに該当している。従って、フロー設定処理部３４０は、パケットの送信元ＩＰアドレスが該当するサブネットワークに対応するＧＷＳとして、ＯＦＳ２００を特定する。そして、フロー設定処理部３４０は、ＯＦＳ２００に対して、ステップＴ２でそのパケットを送信したＧＷＳ（ＯＦＳ１００）にそのパケットの送信元アドレスを宛先とするパケットを転送することを規定したフローエントリを設定する。
【００９５】
図１３は、ステップＴ３ｂでＯＦＳ２００に設定されるフローエントリの例を示す説明図である。図１３に示すフローエントリは、宛先ＭＡＣアドレスおよび宛先ＩＰアドレスが、ステップＴ２でＯＦＳ１００から受け取ったパケットの送信元ＭＡＣアドレスおよび送信元ＩＰアドレス（すなわち、ＰＣ１１ｂのＭＡＣアドレスおよびＩＰアドレス）に合致するパケットをポート＃Ｗから出力する（すなわち、ＯＦＳ１００に転送する）ことを規定している。
【００９６】
ステップＴ３ｂの後、フロー設定処理部３４０は、「パケットイン」メッセージとともに受信したパケットの宛先ＭＡＣアドレスを有する端末が、どのＧＷＳのどのポートに接続されているかを、ステーション情報管理部４０５に記憶されているステーション情報４１０に基づいて検査する。ただし、ここでは、パケットの宛先ＭＡＣアドレスを有する端末（ＤＮＳサーバ３０）は、ステーション情報をスイッチ制御装置７００に送信していない。そのため、フロー設定処理部３４０は、「パケットイン」メッセージとともに受信したパケットの宛先ＭＡＣアドレスを有する端末が、どのＧＷＳのどのポートに接続されているかを特定できない。この場合、フロー設定処理部３４０は、ステップＴ２でＯＦＳ１００から受け取ったパケットと、そのパケットをブロードキャスト送信することを示す「パケットアウト」メッセージとを、全てのＧＷＳに送信する（図１１に示すステップＴ４）。
【００９７】
ステップＴ４の動作は、ステップＳ４と同様の動作であり、ＧＷＳからパケットを受信したときに、そのパケットの宛先アドレスがステーション情報管理部４０５に記憶されていない場合、全てのＧＷＳにそのパケットをブロードキャスト送信させる動作であると言うことができる。
【００９８】
ＯＦＳ４００は、その「パケットアウト」メッセージに基づき、ＯＦＳ４００のポート＃Ｚからパケットを出力する（図１１に示すステップＴ５）。この結果、ＤＮＳサーバ３０は、ＰＣ１１ｂを送信元とするパケットを、ＯＦＳ４００から受信する。
【００９９】
ＤＮＳサーバ３０は、ＰＣ１１ｂを送信元とするパケットを受信すると、ＰＣ１１ｂへの応答として、ＤＮＳサーバ３０を送信元としＰＣ１１ｂを宛先とするパケットを、ＯＦＳ４００に送信する（図１１に示すステップＴ６）。
【０１００】
ＯＦＳ４００には、このパケットに対応するフローエントリはまだ設定されていないものとする。この場合、ＯＦＳ４００は、そのパケットを「パケットイン」メッセージとともに、スイッチ制御装置７００に送信する（図１１に示すステップＴ７）。このとき、ＯＦＳ４００は、ＤＮＳサーバ３０およびＯＦＳ４００に関するステーション情報もスイッチ制御装置７００に送信する。
【０１０１】
スイッチ制御装置７００のフロー設定処理部３４０は、そのパケットおよびステーション情報を受け取ると、「パケットイン」メッセージを送信したＯＦＳ４００に設定するフローエントリを作成し、ＯＦＳ４００に対してそのフローエントリを設定する（図１１に示すステップＴ８）。図１４は、ステップＴ８でＯＦＳ４００に設定されるフローエントリの例を示す説明図である。
【０１０２】
フロー設定処理部３４０は、ＯＦＳ４００から受け取ったステーション情報から、パケットの送信元の端末であるＤＮＳサーバ３０が、ＯＦＳ４００のポート＃Ｚに接続されていることを認識する。フロー設定処理部３４０は、そのステーション情報に基づいて、パケットの送信元の端末（本例ではＤＮＳサーバ３０）を宛先とするパケットをその端末に転送することを規定したフローエントリをＯＦＳ４００に対して設定する。図１４に示す１番目のフローエントリは、このフローエントリである。図１４に示す１番目のフローエントリは、宛先ＭＡＣアドレスおよび宛先ＩＰアドレスがＤＮＳサーバ３０のＭＡＣアドレスおよびＩＰアドレスに合致するパケットをポート＃Ｚから出力する（すなわち、ＤＮＳサーバ３０に転送する）ことを規定している。
【０１０３】
さらに、フロー設定処理部３４０は、ＯＦＳ４００に対して、ＯＦＳ４００以外のＧＷＳ毎に、その端末を送信元とし、ＧＷＳに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットを中継スイッチに転送することを規定したフローエントリを設定する。図１４に示す２番目から４番目まえの３つのフローエントリが、このフローエントリである。例えば、図１４に示す２番目のフローエントリは、送信元ＭＡＣアドレスがＤＮＳサーバ３０のＭＡＣアドレスであり、宛先ＩＰアドレスが、ＯＦＳ１００に対応するサブネットワークのアドレス（“192.168.0.0/26”）に該当するパケットを、ポート＃１から出力する（すなわち、中継スイッチに転送する）ことを規定している。図１４に示す３番目および４番目のフローエントリは、ＯＦＳ２００，３００に対応する同様のフローエントリである。
【０１０４】
また、スイッチ制御装置７００のステーション情報受付部３９０は、ＯＦＳ４００から受け取ったステーション情報をステーション情報管理部４０５に記憶させる。
【０１０５】
ステップＴ８の動作は、前述のステップＳ８の動作と同様であり、図１４に示すフローエントリは、図８に示すフローエントリと同様のフローエントリである。
【０１０６】
ステップＴ８の後、フロー設定処理部３４０は、「パケットイン」メッセージとともに受信したパケットの宛先ＭＡＣアドレスを有する端末（ここでは、ＰＣ１１ｂ）が、どのＧＷＳのどのポートに接続されているかを、ステーション情報管理部４０５に記憶されているステーション情報４１０に基づいて検査する。ＰＣ１１ｂがＯＦＳ１００のポート＃Ｙに接続されていることを示すステーション情報は、既にステーション情報管理部４０５に記憶されている。従って、フロー設定処理部３４０は、パケットの宛先ＭＡＣアドレスを有する端末（ＰＣ１１ｂ）がＯＦＳ１００のポート＃Ｙに接続されていることを認識する。そして、フロー設定処理部３４０は、ステップＴ７でＯＦＳ４００から受け取ったパケットと、そのパケットをポート＃Ｙから出力することを示す「パケットアウト」メッセージとを、ＯＦＳ１００（パケットの宛先ＭＡＣアドレスを有する端末に接続されているＧＷＳ）に送信する（図９に示すステップＴ９）。
【０１０７】
ＯＦＳ１００は、その「パケットアウト」メッセージに基づき、ＯＦＳ１００のポート＃Ｙからパケットを出力する（図９に示すステップＴ１０）。この結果、ＰＣ１１ｂは、ＤＮＳサーバ３０を送信元とするパケットを、ＯＦＳ１００から受信する。
【０１０８】
上記のステップＴ１〜Ｔ１０の処理後、ステップＴ１〜Ｔ１０の過程でＧＷＳ（ＯＦＳ１００，２００，４００）に設定されたフローエントリと、事前準備の段階で中継スイッチ（ＯＦＳ５００）に設定されたフローエントリとにより、ＧＷＳが、ＰＣ１１ｂおよびＤＮＳサーバ３０とが送受信するパケットを転送することができる。
【０１０９】
例えば、ＯＦＳ１００が、ＰＣ１１ｂからＤＮＳサーバ３０宛てのパケットを受信したとする。このパケットの宛先ＩＰアドレス（ＤＮＳサーバ３０のＩＰアドレス）は、ＯＦＳ４００に対応するサブネットワークのＩＰアドレス（“192.168.0.192/26”）に該当する。従って、ＯＦＳ１００は、図１２に示す４番目のフローエントリに従い、ポート＃１からパケットを出力する。中継スイッチ（ＯＦＳ５００）は、このパケットを受信すると、事前準備の段階でＯＦＳ５００に設定されたフローエントリ（具体的には、図４に示す４番目のフローエントリ）に従い、ポート＃４からパケットを出力する。ＯＦＳ４００は、このパケットを受信すると、図１４に示す１番目のフローエントリに従い、ポート＃Ｚからパケットを出力する。この結果、ＤＮＳサーバ３０にパケットが到達する。
【０１１０】
また、例えば、ＯＦＳ４００が、ＤＮＳサーバ３０からＰＣ１１ｂ宛てのパケットを受信したとする。このパケットの宛先ＩＰアドレス（ＰＣ１１ｂのＩＰアドレス）は、ＯＦＳ２００に対応するサブネットワークのＩＰアドレス（“192.168.0.64/26 ”）に該当する。従って、ＯＦＳ４００は、図１４に示す３番目のフローエントリに従い、ポート＃１からパケットを出力する。中継スイッチ（ＯＦＳ５００）は、このパケットを受信すると、事前準備の段階でＯＦＳ５００に設定されたフローエントリ（具体的には、図４に示す２番目のフローエントリ）に従い、ポート＃２からパケットを出力する。ＯＦＳ２００は、このパケットを受信すると、図１３に示すフローエントリに従い、ポート＃Ｗからパケットを出力する。この結果、ＯＦＳ１１０は、ＯＦＳ２００から、ＯＦＳ５００を介さずにパケットを受信する。そして、ＯＦＳ１００は、図１２に示す１番目のフローエントリに従い、ポート＃Ｙからパケットを出力する。この結果、ＰＣ１１ｂにパケットが到着する。
【０１１１】
次に、本発明の効果について説明する。
【０１１２】
まず、本発明において、１つのＧＷＳに設定されるフローエントリの数を説明する。１つのＧＷＳに設定されるフローエントリであって、中継スイッチにパケットを転送することを規定したフローエントリの数は、以下に示す式（１）で表される。
【０１１３】
ＧＷＳに接続されている端末の数×（ＧＷＳの数−１）        ・・・（１）
【０１１４】
また、１つのＧＷＳに設定されるフローエントリであって、端末にパケットを転送することを規定したフローエントリの数は、ＧＷＳに接続されている端末の数である。
【０１１５】
従って、１つのＧＷＳに設定されるフローエントリの数は、「ＧＷＳに接続されている端末の数×（ＧＷＳの数−１）」と「ＧＷＳに接続されている端末の数」の合計であり、以下に示す式（２）で表される。
【０１１６】
ＧＷＳに接続されている端末の数×ＧＷＳの数        ・・・（２）
【０１１７】
次に、一般的な技術において、１つのＯＦＳに設定されるフローエントリの数を説明する。一般的な技術において１つのＯＦＳに設定されるフローエントリであって、中継スイッチにパケットを転送することを規定したフローエントリの数は、以下に示す式（３）で表される。
【０１１８】
ＯＦＳに接続されている端末の数×宛先となる端末の数    ・・・（３）
【０１１９】
また、一般的な技術において１つのＯＦＳに設定されるフローエントリであって、端末にパケットを転送することを規定したフローエントリの数は、ＯＦＳに接続されている端末の数である。
【０１２０】
従って、一般的な技術において１つのＯＦＳに設定されるフローエントリの数は、「ＯＦＳに接続されている端末の数×宛先となる端末の数」と「ＯＦＳに接続されている端末の数」の合計であり、以下に示す式（４）で表される。
【０１２１】
ＯＦＳに接続されている端末の数×（宛先となる端末の数＋１）    ・・・（４）
【０１２２】
一般的な技術における１つのＯＦＳに設定されるフローエントリの数に対する、本発明における１つのＯＦＳに設定されるフローエントリの数の割合は、以下に示す式（５）で表される。
【０１２３】
【数１】
2017183960.tif 000003
【０１２４】
「ＧＷＳに接続されている端末の数」＝「ＯＦＳに接続されている端末の数」であるので、式（５）は、以下に示す式（６）で表される。
【０１２５】
ＧＷＳの数／（宛先となる端末の数＋１）      ・・・（６）
【０１２６】
ここで、ＧＷＳの数は、例えば、数台から数十台程度である。また、宛先となる端末の数は、例えば、数十台から数百台である。よって、本発明によれば、１つのＧＷＳに設定されるフローエントリの数を、一般的な技術において１つのＯＦＳに設定されるフローエントリの数の１／１０から１／１００程度に抑えることができる。
【０１２７】
従って、本発明によれば、ＯＦＳに接続されている端末にアクセスが集中する場合であっても、そのＯＦＳに設定されるフローエントリの数の増加を防止することができる。
【０１２８】
次に、本発明の概要について説明する。図１５は、本発明のスイッチ制御装置の概要を示すブロック図である。スイッチ制御装置５１は、サブネットワークに対応付けられたスイッチであるゲートウェイスイッチ、およびゲートウェイスイッチ間でパケットを中継する中継スイッチに対して、パケットに対するアクションを規定したフローエントリを設定するフローエントリ設定手段５２（例えば、フロー設定処理部３４０）を備える。
【０１２９】
フローエントリ設定手段５２は、中継スイッチに対して、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットをそのゲートウェイスイッチに転送することを規定したフローエントリを、中継スイッチ以外のゲートウェイスイッチ毎に設定する。
【０１３０】
また、フローエントリ設定手段５２は、ゲートウェイスイッチからパケットを受信したときに、そのゲートウェイスイッチに対して、パケットの送信元の端末を宛先とするパケットをその端末に転送することを規定したフローエントリを設定する。さらに、フローエントリ設定手段５２は、そのゲートウェイスイッチに対して、当該ゲートウェイスイッチ以外のゲートウェイスイッチ毎に、その端末を送信元とし、ゲートウェイスイッチに対応するサブネットワークのアドレスに宛先アドレスが該当しているパケットを中継スイッチに転送することを規定したフローエントリを設定する。
【０１３１】
そのような構成により、スイッチに接続されている端末にアクセスが集中する場合であっても、そのスイッチに設定されるフローエントリの数の増加を防止できる。
【０１３２】
フローエントリ設定手段５２が、ゲートウェイスイッチからパケットを受信したときに、パケットの送信元アドレスがそのゲートウェイスイッチに対応するサブネットワークのアドレスに該当していない場合、パケットの送信元アドレスに該当するサブネットワークに対応するゲートウェイスイッチに対して、そのパケットを送信したゲートウェイスイッチにそのパケットの送信元アドレスを宛先とするパケットを転送することを規定したフローエントリを設定する構成であってもよい。
【０１３３】
ゲートウェイスイッチに接続されている端末のアドレスを記憶する端末アドレス記憶手段（例えば、ステーション情報管理部４０５）を備え、
フローエントリ設定手段５２が、
ゲートウェイスイッチからパケットを受信したときに、そのパケットの宛先アドレスが端末アドレス記憶手段に記憶されていない場合、全てのゲートウェイスイッチにそのパケットをブロードキャスト送信させる構成であってもよい。
【産業上の利用可能性】
【０１３４】
本発明は、パケットを転送するスイッチを制御するスイッチ制御装置に好適に適用される。
【符号の説明】
【０１３５】
１００，２００，３００，４００，５００  ＯＦＳ
３０５  通信処理部
３１０  コンフィグ設定部
３２０  コンフィグ情報管理部
３４０  フロー設定処理部
３５０  経路計算処理部
３６０  トポロジ情報受付部
３７０  トポロジ情報管理部
３９０  ステーション情報受付部
４０５  ステーション情報管理部
４３０  ＧＷＳ管理部
【図１】
2017183960.tif 000004
【図２】
2017183960.tif 000005
【図３】
2017183960.tif 000006
【図４】
2017183960.tif 000007
【図５】
2017183960.tif 000008
【図６】
2017183960.tif 000009
【図７】
2017183960.tif 000010
【図８】
2017183960.tif 000011
【図９】
2017183960.tif 000012
【図１０】
2017183960.tif 000013
【図１１】
2017183960.tif 000014
【図１２】
2017183960.tif 000015
【図１３】
2017183960.tif 000016
【図１４】
2017183960.tif 000017
【図１５】
2017183960.tif 000018
【図１６】
2017183960.tif 000019
【図１７】
2017183960.tif 000020