(57)【要約】  コネクションパス管理システム（１００）において、集約部（１５２）は、１つのコネクションＣ１を識別する情報を含む第１パケットが入力された第１入力インタフェースと、第１パケットが出力された第１出力インタフェースとの間のコネクションパスがコネクションＣ１に対応付けて設定部（１５１）により設定された後、コネクションＣ１を識別する情報を含み第１パケットと逆方向に送信された第２パケットが第１出力インタフェースと異なる第２入力インタフェースに入力された場合、第１入力インタフェースと第２入力インタフェースとの間のコネクションパスをコネクションＣ１に対応付けて設定する。集約部（１５２）は、コネクションＣ１に対応する他のコネクションパスを削除する。
2016098261.tif 000002
【特許請求の範囲】
【請求項１】
端末間のコネクションを識別する情報を含むパケット群が入出力されるネットワークのインタフェース間に、当該パケット群を転送するための双方向のコネクションパスを、当該コネクションに対応付けて設定する設定部と、
１つのコネクションを識別する情報を含む第１パケットが入力されたインタフェースである第１入力インタフェースと、前記第１パケットが出力されたインタフェースである第１出力インタフェースとの間のコネクションパスが前記１つのコネクションに対応付けて前記設定部により設定された後、前記１つのコネクションを識別する情報を含み前記第１パケットと逆方向に送信された第２パケットが前記第１出力インタフェースと異なるインタフェースである第２入力インタフェースに入力された場合、前記第１入力インタフェースと前記第２入力インタフェースとの間のコネクションパスを前記１つのコネクションに対応付けて設定し、前記１つのコネクションに対応する他のコネクションパスを削除する集約部と
を備えるコネクションパス管理システム。
【請求項２】
前記１つのコネクションの確立を要求するパケットが前記第１パケットに該当し、
前記第１パケットに応答するパケットが前記第２パケットに該当する、請求項１に記載のコネクションパス管理システム。
【請求項３】
前記集約部は、前記１つのコネクションを識別する情報を含むパケットが前記１つのコネクションに対応付けて既に前記設定部により設定されたコネクションパスの両端のインタフェースと異なるインタフェースに入力される度に、前記異なるインタフェースと前記両端のインタフェースのうち一方のインタフェースとの間のコネクションパスを前記１つのコネクションに対応付けて設定し、前記１つのコネクションに対応する他のコネクションパスを削除する、請求項１又は２に記載のコネクションパス管理システム。
【請求項４】
前記集約部は、前記１つのコネクションを識別する情報を含み設定条件を満たすパケットが前記１つのコネクションに対応付けて既に前記設定部により設定されたコネクションパスの両端のインタフェースと異なるインタフェースに入力される度に、前記異なるインタフェースと前記両端のインタフェースのうち一方のインタフェースとの間のコネクションパスを前記１つのコネクションに対応付けて設定し、前記１つのコネクションに対応する他のコネクションパスを削除する、請求項１又は２に記載のコネクションパス管理システム。
【請求項５】
前記ネットワークに接続された他のネットワークの状態変化が検知されてから一定期間内に前記異なるインタフェースに入力されたパケットが前記設定条件を満たすパケットに該当する、請求項４に記載のコネクションパス管理システム。
【請求項６】
前記他のネットワークにおけるルーティングテーブルの変更が前記状態変化に該当する、請求項５に記載のコネクションパス管理システム。
【請求項７】
前記他のネットワークにおけるリンクの障害又は回復が前記状態変化に該当する、請求項５に記載のコネクションパス管理システム。
【請求項８】
前記設定部は、前記１つのコネクションを識別する情報を含むパケットが前記１つのコネクションに対応付けて既に設定したコネクションパスの両端のインタフェースと異なるインタフェースに入力される度に、当該異なるインタフェースと前記ネットワークの他のインタフェースとの間のコネクションパスを前記１つのコネクションに対応付けて追加設定し、
前記集約部は、複数のコネクションパスが前記１つのコネクションに対応付けて前記設定部により設定されたかどうか判定し、前記複数のコネクションパスが設定されたと判定した場合、前記第１入力インタフェースと前記第２入力インタフェースとの間のコネクションパスを前記１つのコネクションに対応付けて設定し、前記１つのコネクションに対応する他のコネクションパスを削除し、
前記複数のコネクションパスのうち、最新のコネクションパスが前記設定部により設定される要因となったパケットが前記第２パケットに該当し、
前記第２パケットと逆方向に送信され前記複数のコネクションパスのいずれかが前記設定部により設定される要因となったパケットのうち、最後に入力されたパケットが前記第１パケットに該当する、請求項１に記載のコネクションパス管理システム。
【請求項９】
前記ネットワークをさらに備える、請求項１から８のいずれか１項に記載のコネクションパス管理システム。
【請求項１０】
設定部が、端末間のコネクションを識別する情報を含むパケット群が入出力されるネットワークのインタフェース間に、当該パケット群を転送するための双方向のコネクションパスを、当該コネクションに対応付けて設定し、
集約部が、１つのコネクションを識別する情報を含む第１パケットが入力されたインタフェースである第１入力インタフェースと、前記第１パケットが出力されたインタフェースである第１出力インタフェースとの間のコネクションパスが前記１つのコネクションに対応付けて前記設定部により設定された後、前記１つのコネクションを識別する情報を含み前記第１パケットと逆方向に送信された第２パケットが前記第１出力インタフェースと異なるインタフェースである第２入力インタフェースに入力された場合、前記第１入力インタフェースと前記第２入力インタフェースとの間のコネクションパスを前記１つのコネクションに対応付けて設定し、前記１つのコネクションに対応する他のコネクションパスを削除するコネクションパス管理方法。
【請求項１１】
コンピュータに、
端末間のコネクションを識別する情報を含むパケット群が入出力されるネットワークのインタフェース間に、当該パケット群を転送するための双方向のコネクションパスを、当該コネクションに対応付けて設定する処理と、
１つのコネクションを識別する情報を含む第１パケットが入力されたインタフェースである第１入力インタフェースと、前記第１パケットが出力されたインタフェースである第１出力インタフェースとの間のコネクションパスが前記１つのコネクションに対応付けて設定された後、前記１つのコネクションを識別する情報を含み前記第１パケットと逆方向に送信された第２パケットが前記第１出力インタフェースと異なるインタフェースである第２入力インタフェースに入力された場合、前記第１入力インタフェースと前記第２入力インタフェースとの間のコネクションパスを前記１つのコネクションに対応付けて設定し、前記１つのコネクションに対応する他のコネクションパスを削除する処理と
を実行させるコネクションパス管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コネクションパス管理システム及びコネクションパス管理方法及びコネクションパス管理プログラムに関するものである。
【背景技術】
【０００２】
従来、Ｏｐｅｎｆｌｏｗ（登録商標）を始めとする、通信を行うにはフローを確立する必要があり、フロー制御はネットワークシステムを担当するコントローラが行うシステムがある（例えば、非特許文献１参照）。このシステムは、近年ではＳＤＮ（Ｓｏｆｔｗａｒｅ・Ｄｅｆｉｎｅｄ・Ｎｅｔｗｏｒｋ）と呼ばれるアーキテクチャにおいて利用されている。【０００３】
インタフェースを介して受信したデータフレーム内のフロー識別子に基づきフローを識別し、該フローと、該インタフェースで本来受信するはずのフローが一致しない場合、既定外のインタフェースでデータフレームを受信したと判断するシステムがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１１５６９５号公報
【非特許文献】
【０００５】
【非特許文献１】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  １．０．０”，  ＯＰＥＮ  ＮＥＴＷＯＲＫＩＮＧ  ＦＯＵＮＤＡＴＩＯＮ，  Ｄｅｃｅｍｂｅｒ  ３１，  ２００９
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のシステムでは、端末間の１つのコネクションに対して、往路及び復路で別々のフローが設定されることを防止できない。１つのコネクションに対しては、双方向の１つのフローが設定されれば足りる。双方向の２つのフローが設定された場合、ネットワークのリソースが２倍消費されることになり、無駄が生じる。片方向の２つのフローが設定された場合、管理負荷が増すことになる。【０００７】
本発明は、ネットワークのリソースの消費量を削減することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一の態様に係るコネクションパス管理システムは、
端末間のコネクションを識別する情報を含むパケット群が入出力されるネットワークのインタフェース間に、当該パケット群を転送するための双方向のコネクションパスを、当該コネクションに対応付けて設定する設定部と、
１つのコネクションを識別する情報を含む第１パケットが入力されたインタフェースである第１入力インタフェースと、前記第１パケットが出力されたインタフェースである第１出力インタフェースとの間のコネクションパスが前記１つのコネクションに対応付けて前記設定部により設定された後、前記１つのコネクションを識別する情報を含み前記第１パケットと逆方向に送信された第２パケットが前記第１出力インタフェースと異なるインタフェースである第２入力インタフェースに入力された場合、前記第１入力インタフェースと前記第２入力インタフェースとの間のコネクションパスを前記１つのコネクションに対応付けて設定し、前記１つのコネクションに対応する他のコネクションパスを削除する集約部とを備える。
【発明の効果】
【０００９】
本発明では、端末間の１つのコネクションに対して複数のコネクションパスが設定されるような状況が発生したときに、それら複数のコネクションパスが１つに集約される。このため、本発明によれば、ネットワークのリソースの消費量を削減することが可能となる。なお、「コネクションパス」は、前述したフローと同じものである。
【図面の簡単な説明】
【００１０】
【図１】一般的なネットワーク構成例を示す図。
【図２】実施の形態１との比較のためのネットワーク構成例を示す図。
【図３】実施の形態１との比較のためのネットワーク構成例を示す図。
【図４】実施の形態１との比較のためのネットワーク構成例を示す図。
【図５】実施の形態１に係るコネクションパス管理システムの構成を示すブロック図。
【図６】実施の形態１に係るコネクションパス管理システムの動作を示すフローチャート。
【図７】実施の形態１に係るネットワーク構成例を示す図。
【図８】実施の形態１の変形例に係るネットワーク構成例を示す図。
【図９】実施の形態１に係るネットワーク構成例を示す図。
【図１０】実施の形態１に係るネットワーク構成例を示す図。
【図１１】実施の形態１に係るネットワーク構成例を示す図。
【図１２】実施の形態１に係るネットワーク構成例を示す図。
【図１３】実施の形態１に係るネットワーク構成例を示す図。
【図１４】実施の形態１に係るネットワーク構成例を示す図。
【図１５】本発明の実施の形態に係るネットワーク制御装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一又は相当する部分には、同一符号を付している。実施の形態の説明において、同一又は相当する部分については、その説明を適宜省略又は簡略化する。
【００１２】
実施の形態１．
本実施の形態は、詳細なコネクションのパケット識別情報に基づくコネクションパスを確立可能なネットワークシステムと、冗長関係にある複数の機器が稼働していてコネクションの通信経路が往路と復路とで異なる可能性のあるネットワークシステムとが、複数の冗長なインタフェースや機器で接続されたときのコネクションパス制御に関するものである。「経路が同じ」又は「同経路」とは、通信方向に関係なく、パケットが同じノード又は機器を通って送受信されることである。「経路が異なる」又は「異経路」とは、「経路が同じ」又は「同経路」の反対である。
【００１３】
まず、冗長構成をとるネットワークにおいて、往路と復路とが異なる経路を通る現象について示す。図１を参照して、その現象が生じるネットワーク構成を説明する。図１の例は、一般的な例である。
【００１４】
Ｒｏｕｔｅｒ−Ａ、Ｒｏｕｔｅｒ−Ｂ、Ｒｏｕｔｅｒ−Ｅ、Ｒｏｕｔｅｒ−Ｆは、ルータである。Ｓｗｉｔｃｈ−Ｃ、Ｓｗｉｔｃｈ−Ｄ、Ｓｗｉｔｃｈ−Ｇ、Ｓｗｉｔｃｈ−Ｈは、レイヤ２スイッチである。Ｓｕｂｎｅｔ−Ｚは、ＩＰ（Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ）サブネットである。
【００１５】
ＩＰ−１は、Ｓｗｉｔｃｈ−Ｃに接続された、Ｒｏｕｔｅｒ−Ｅのインタフェースである。ＩＰ−２は、Ｓｗｉｔｃｈ−Ｄに接続された、Ｒｏｕｔｅｒ−Ｆのインタフェースである。ＩＰ−３は、Ｓｗｉｔｃｈ−Ｄに接続された、Ｒｏｕｔｅｒ−Ｅのインタフェースである。ＩＰ−４は、Ｓｗｉｔｃｈ−Ｃに接続された、Ｒｏｕｔｅｒ−Ｆのインタフェースである。「インタフェース」とは、パケットが入出力されるポートのことである。
【００１６】
Ｐａｔｈ−１は、パケットがＲｏｕｔｅｒ−Ｂ、Ｓｗｉｔｃｈ−Ｃ、Ｒｏｕｔｅｒ−Ｅ、Ｓｗｉｔｃｈ−Ｇを順番に通ってＳｕｂｎｅｔ−Ｚに到達する経路である。Ｐａｔｈ−２は、パケットがＳｕｂｎｅｔ−Ｚから送出され、Ｓｗｉｔｃｈ−Ｈ、Ｒｏｕｔｅｒ−Ｆ、Ｓｗｉｔｃｈ−Ｃ、Ｒｏｕｔｅｒ−Ｂを順番に通る経路である。
【００１７】
ここではＲｏｕｔｅｒ−Ａ及びＲｏｕｔｅｒ−Ｂが、それぞれ正常に稼働していながら互いに冗長の関係にある。つまり、共に正常稼働している期間はパケット転送負荷を分け合い、一方が故障した場合はここを通過するパケットの転送を稼働している方が全て請け負う。Ｓｗｉｔｃｈ−Ｃ及びＳｗｉｔｃｈ−Ｄ、Ｒｏｕｔｅｒ−Ｅ及びＲｏｕｔｅｒ−Ｆ、Ｓｗｉｔｃｈ−Ｇ及びＳｗｉｔｃｈ−Ｈも互いに同様の関係である。
【００１８】
ＩＰでは、次の宛先を自動で探索する動的ルーティングを適用すると、経路の障害を自動で認識して障害のある宛先を選択しないようにすることが可能である。その場合、正常な状態では複数の宛先が並立することが可能となる。敢えて「コスト値」というものを設定することで、複数の宛先に差をつけ、最優先のものが常に選択されるようにすることもできる。ただし、図１に示すような対等な冗長構成の場合には、コスト値に差をつけずに、正常時は負荷分散されるように構成する。その場合、例としてＲｏｕｔｅｒ−Ａ及びＲｏｕｔｅｒ−Ｂでは、Ｓｕｂｎｅｔ−ＺへのＩＰルートエントリとして、以下のように、４つの対等な宛先が登録される。
（宛先１）Ｓｕｂｎｅｔ−Ｚ  ＮｅｘｔＨｏｐ：  ＩＰ−１
（宛先２）Ｓｕｂｎｅｔ−Ｚ  ＮｅｘｔＨｏｐ：  ＩＰ−２
（宛先３）Ｓｕｂｎｅｔ−Ｚ  ＮｅｘｔＨｏｐ：  ＩＰ−３
（宛先４）Ｓｕｂｎｅｔ−Ｚ  ＮｅｘｔＨｏｐ：  ＩＰ−４
【００１９】
Ｒｏｕｔｅｒ−Ａ及びＲｏｕｔｅｒ−Ｂは、通常はベンダが独自に実装するアルゴリズムに従って、上記４つの宛先に均等にパケットが振り分けられるようにパケットを転送する。通常は、送受ＩＰアドレス、プロトコル、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ・Ｃｏｎｔｒｏｌ・Ｐｒｏｔｏｃｏｌ）ポート番号といった、ＩＰコネクションを特定するコネクション識別情報を基に宛先が計算される。こうすることで、パケット単位で宛先が分かれるのではなく、コネクション単位となり、同一のコネクションのパケットの順番がここで入れ替わることはない。ただし、ＩＰルータは転送の際にコネクションを意識するわけではない。ＩＰルータは、どのインタフェースから入力したパケットも、ルーティングテーブルに従って転送するだけである。よって、ＩＰルータは、１つのコネクションの双方向のパケットを認識し、互いに同一のインタフェースを通過するようにパケットを転送するといったことはしない。複数の転送先がある場合にそのような状況があったとしても、それは偶然に過ぎない。したがって、例えば往路としてＰａｔｈ−２を通ったパケットの応答が、ＲｏｕｔｅｒーＢに転送されてきたとき、Ｒｏｕｔｅｒ−Ｂは宛先としてＩＰ−４を選択し、Ｒｏｕｔｅｒ−Ｆを通すことが逆方向であることなど意識しない。Ｒｏｕｔｅｒ−Ｂは、上記（宛先１）〜（宛先４）という４つの宛先に均等にパケットが振り分けられるように計算して宛先を決定するだけである。図１ではＩＰ−１が選択されている。応答は、Ｐａｔｈ−１に沿って結果的にＲｏｕｔｅｒ−Ｅを通る。つまり、往路及び復路で経路が異なる結果となっている。さらに言えば、ここに示した例では復路のパケットがＲｏｕｔｅｒ−Ｂに到着しているが、これ自体偶然である。
【００２０】
次に、上記のような冗長構成をとるネットワークと、パケット転送のためのコネクションパスを設定するネットワーク機器とそれらのコネクションパスの制御を行う制御装置によって構成されるネットワークシステムとが、冗長の複数のインタフェースで接続された構成について示す。図２を参照して、その構成例を説明する。図２の例は、本実施の形態との比較のための例である。
【００２１】
Ｒｏｕｔｅｒ−１、Ｒｏｕｔｅｒ−２は、ルータである。ＳＤＮ−ＳＷ１、ＳＤＮ−ＳＷ２、ＳＤＮ−ＳＷ３、ＳＤＮ−ＳＷ４は、ＳＤＮスイッチである。Ｔｅｒｍ−０、Ｔｅｒｍ−１、Ｔｅｒｍ−２、Ｔｅｒｍ−３は、端末である。端末は、クライアントコンピュータに限らず、サーバ機であってもよい。Ｔｅｒｍ−０は、ネットワーク１２１に接続された、端末であるＴｅｒｍ−０のインタフェースも示す。Ｔｅｒｍ−２−１は、ＳＤＮ−ＳＷ３に接続された、Ｔｅｒｍ−２のインタフェースである。Ｔｅｒｍ−２−２は、ＳＤＮ−ＳＷ４に接続された、Ｔｅｒｍ−２のインタフェースである。Ｔｅｒｍ−３は、ＳＤＮ−ＳＷ４に接続された、端末であるＴｅｒｍ−３のインタフェースの束も示す。
【００２２】
ここでは、コネクションパスが設定される機器であるＳＤＮスイッチから構成されるネットワーク１１０をＳＤＮと称することとする。ＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）やＷＡＮ（Ｗｉｄｅ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）といったネットワーク１２１、及び、ネットワーク１２１に接続されるか又はネットワーク１２１に含まれる、図１に示したルータやレイヤ２スイッチ等から構成される他のネットワーク１２０を既存ネットワークと称することとする。ＳＤＮには、ＳＤＮコントローラであるネットワーク制御装置１５０が接続される。
【００２３】
既存ネットワークとＳＤＮとを接続する複数のインタフェースは冗長関係にある。パケットがルータに入力される際、及び、パケットがルータからＳＤＮへ転送される際は、パケットが均等に振り分けられる。したがって、往路及び復路が異経路となり、既存ネットワークからＳＤＮへ入力されるパケットと、ＳＤＮから既存ネットワークに出力されるパケットの通るインタフェースが異なる事象が発生し得る。ＳＤＮの既存ネットワークと反対側は端末に接続される。既存ネットワークのＳＤＮと反対側の先にも端末が存在する。図２では、端末として、１つのインタフェースを有するＴｅｒｍ−０及びＴｅｒｍ−１、対等冗長の２つのインタフェースを有するＴｅｒｍ−２、複数のリンクを１つのリンクであるかのように見せるリンクアグリゲーションが適用されたＴｅｒｍ−３を示している。ここで、対等冗長及びリンクアグリゲーションのどちらも、１つのコネクションの往復パケットが同じインタフェースを通過するとは限らない。
【００２４】
上記のように、ＳＤＮと２つ以上のインタフェースで接続された既存ネットワーク或いは端末が存在する場合、往復が異経路となる状況が生じ得る。Ｔｅｒｍ−１のコネクションも、既存ネットワーク側で異なるインタフェースを通過する異経路になることがある。
【００２５】
以下の４つの種別の通信リクエストについて考える。
（種別１）Ｔｅｒｍ−０からＴｅｒｍ−１への通信リクエスト
（種別２）Ｔｅｒｍ−１からＴｅｒｍ−０への通信リクエスト
（種別３）Ｔｅｒｍ−０からＴｅｒｍ−２への通信リクエスト
（種別４）Ｔｅｒｍ−２からＴｅｒｍ−０への通信リクエスト
【００２６】
Ｔｅｒｍ−２とＴｅｒｍ−３は、対等な複数のインタフェースでＳＤＮと接続されているという意味で同じ位置づけであるため、分類は同じである。既存ネットワークの代わりにＴｅｒｍ−２或いはＴｅｒｍ−３と同様の接続があったとしても、結果的に対等の位置づけのインタフェースで接続されたネットワーク或いは端末ということで、位置づけは同じである。上記４つの種別のそれぞれについて、往復が異経路となる状況を見ていく。
【００２７】
なお、ここでは、Ｒｏｕｔｅｒ−１、Ｒｏｕｔｅｒ−２といったルータ、及び、Ｔｅｒｍ−２、Ｔｅｒｍ−３といった端末が、送信先が同じパケットを同じインタフェースから出力する動作を行うことを前提としている。この動作は、一般的に、パケットの順序を維持するために行われる。
【００２８】
（種別１）では、Ｔｅｒｍ−０からＴｅｒｍ−１にリクエストパケットが送信される。ＳＤＮが双方向のコネクションパスを構築するのであれば、Ｔｅｒｍ−１からの応答パケットは、逆方向のコネクションパスにヒットして問題なく既存ネットワーク側へ転送される。よって、異経路の問題は、通信リクエストが来たときに双方向のコネクションを確立するという基本的な動作によって解決される。
【００２９】
（種別２）では、Ｔｅｒｍ−１からＴｅｒｍ−０にリクエストパケットが送信される。Ｔｅｒｍ−０からの応答パケットは、ＳＤＮに対して直前にあるルータが転送するため、異経路を通り得る。図３に示すように、ＣＰ−１が確立された後、ＣＰ−２が確立されるといった場合がある。この場合、リクエストパケットは、Ｐａｔｈ−１を通る。応答パケットは、Ｐａｔｈ−２を通る。
【００３０】
図３の例において、ＣＰ−１は、ＳＤＮ−ＳＷ３とＳＤＮ−ＳＷ２との間のコネクションパスである。ＣＰ−２は、ＳＤＮ−ＳＷ１とＳＤＮ−ＳＷ３との間のコネクションパスである。Ｐａｔｈ−１は、パケットがＴｅｒｍ−１から送出され、ＣＰ−１、Ｒｏｕｔｅｒ−２、ネットワーク１２１を順番に通ってＴｅｒｍ−０に到達する経路である。Ｐａｔｈ−２は、パケットがＴｅｒｍ−０から送出され、ネットワーク１２１、Ｒｏｕｔｅｒ−２、ＣＰ−２を通ってＴｅｒｍ−１に到達する経路である。
【００３１】
（種別３）では、Ｔｅｒｍ−０からＴｅｒｍ−２にリクエストパケットが送信される際、Ｔｅｒｍ−２−１を通ったとしても、Ｔｅｒｍ−２からの応答パケットがＴｅｒｍ−２−２を通ってしまうこと、或いは、その逆があり得る。既存ネットワーク側では、Ｔｅｒｍ−２側でインタフェースが同じであれば（種別１）と同じ理由で問題は発生しない。しかし、Ｔｅｒｍ−２でインタフェースが異なると、既存ネットワーク側でも異なるインタフェースをパケットが通る場合がある。図４に示すように、ＣＰ−１とＣＰ−２という２つのコネクションパスが構築され、これら２つのコネクションパスの両端のどちらも同じにならない場合がある。この場合、リクエストパケットは、Ｐａｔｈ−２を通る。応答パケットは、Ｐａｔｈ−１を通る。
【００３２】
図４の例において、ＣＰ−１は、ＳＤＮ−ＳＷ４とＳＤＮ−ＳＷ２との間のコネクションパスである。ＣＰ−２は、ＳＤＮ−ＳＷ１とＳＤＮ−ＳＷ３との間のコネクションパスである。Ｐａｔｈ−１は、パケットがＴｅｒｍ−２−２から送出され、ＣＰ−１、Ｒｏｕｔｅｒ−２、ネットワーク１２１を順番に通ってＴｅｒｍ−０に到達する経路である。Ｐａｔｈ−２は、パケットがＴｅｒｍ−０から送出され、ネットワーク１２１、Ｒｏｕｔｅｒ−２、ＣＰ−２を通ってＴｅｒｍ−２−１に到達する経路である。
【００３３】
（種別４）では、Ｔｅｒｍ−２からＴｅｒｍ−０にリクエストパケットが送信される。Ｔｅｒｍ−０からの応答パケットは、（種別２）と同様の理由で、異経路を通り得る。応答パケットが既存ネットワークから異なるインタフェースに入力されると、Ｔｅｒｍ−２との接続においても、応答パケットがＴｅｒｍ−２−１を通るかＴｅｒｍ−２−２を通るかは、ネットワーク制御装置１５０のコネクションパス制御次第である。
【００３４】
往路と復路が異経路になることによって、ＳＤＮの基本的な実装では、ＳＤＮにおいて往路と復路で別々のコネクションパスが構築される。ネットワーク制御装置１５０の管理上も２つのコネクションパスを取り扱うことになってしまう。
【００３５】
ＳＤＮスイッチは、インタフェースにパケットが入力されると、そのパケットが同じインタフェースに設定されたコネクションパスに対応するパケットかどうかを判定する。そのパケットが、設定されたコネクションパスに対応しない新規のものであれば、ＳＤＮスイッチは、ネットワーク制御装置１５０へ新規コネクションリクエストを送る。ネットワーク制御装置１５０は、新規コネクションリクエストに応じて、新規コネクションパスを設定する。異経路の問題への対応として、ネットワーク制御装置１５０が、異経路が明確になった時点で新規に構築されるコネクションパスを残し、古いコネクションパスを削除するという動作が考えられる。
【００３６】
（種別２）では、コネクションパスの両端のうち一方のインタフェースが共通である。そのため、共通になっていない方でのみ新規コネクションリクエストが発生する。したがって、ネットワーク制御装置１５０が一度新規コネクションパスを残して他を削除する対応をとれば、他の条件の変化等がない限りその後さらに新規コネクションリクエストが発生することはない。
【００３７】
しかし、（種別３）においては以下に示す問題がある。
【００３８】
図４に示したように、コネクションパスの両端共にインタフェースが異なる場合がある。即ち、まず往路のＰａｔｈ−２のためのコネクションパスとしてＣＰ−２が構築される。その後復路のＰａｔｈ−１のためのコネクションパスとしてＣＰ−１が構築される。上記の動作ではＣＰ−２が削除されることになる。しかし、既存ネットワークは、Ｐａｔｈ−２を維持しようとする。そのため、Ｔｅｒｍ−０からパケットが送信されればＳＤＮへの入力はＳＤＮ−ＳＷ１となる。再びＣＰ−２が構築されれば、上記の動作ではＣＰ−１が削除されることになる。その後ＳＤＮの状態が変化して、Ｔｅｒｍ−２−１に接続されるＣＰ−２の代わりに、Ｔｅｒｍ−２−２に接続されるコネクションパスが構築されるまで、ＣＰ−２とＣＰ−１の構築及び削除の処理が繰り返される。これにより、ネットワーク制御装置１５０の負荷状態によっては通信が困難となる。
【００３９】
（種別４）においても、（種別３）と同じ問題がある。
【００４０】
そこで本実施の形態では、（ａ）同一のテナント内で、（ｂ）識別可能な最も高位のレイヤで判定される同一のコネクションであるという条件が成立する複数のコネクションパスが検出された場合、コネクションパスを確立する要因となったパケットが入力されたインタフェース間で新たにコネクションパスを構築し、古いコネクションパスを削除する手順をとる。
【００４１】
「同一のテナント」とは、同一のサービス単位のネットワークのことである。ＳＤＮでは、ネットワーク仮想化によって、物理構成とは関係なく、論理的に独立したネットワークを構成可能である。独立したネットワーク間ではＩＰアドレスの重複が許される。各独立したネットワーク内で複数のＶＬＡＮ（Ｖｉｒｔｕａｌ・Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）を構築することも可能である。したがって、（ａ）の条件は、論理的に独立した１つのネットワークの中で、（ｂ）の条件が成立する必要があることを示すものである。
【００４２】
「識別可能な最も高位のレイヤで判定される同一のコネクション」とは、ＴＣＰ／ＩＰであれば、送受ＩＰアドレス及び送受ポート番号のペアが一致するコネクションのことである。ＳＤＮコントローラであるネットワーク制御装置１５０のコネクションパスエントリテーブルには、各コネクションパスを構築するきっかけとなったパケットの方向を示す情報と入力インタフェースとが所定のフィールドに記載がされるものとする。パケットの方向を示す情報としては、送受ＩＰアドレスを用いることができる。
【００４３】
以下、本実施の形態に係るシステムの構成、本実施の形態に係るシステムの動作、本実施の形態の効果を順番に説明する。
【００４４】
＊＊＊構成の説明＊＊＊
図５を参照して、本実施の形態に係るシステムであるコネクションパス管理システム１００の構成を説明する。
【００４５】
コネクションパス管理システム１００は、ネットワーク１１０と、設定部１５１と、集約部１５２とを備える。本実施の形態では、設定部１５１及び集約部１５２がネットワーク制御装置１５０に含まれるが、後述する変形例のように、設定部１５１と集約部１５２が別々の装置に分けられてもよい。
【００４６】
ネットワーク１１０は、端末間のコネクションを識別する情報を含むパケット群がネットワーク１１０の外部から入力されたり、ネットワーク１１０の外部に出力されたりするインタフェース群を有する。「コネクションを識別する情報」とは、具体的には、前述したＩＰコネクションを特定するコネクション識別情報のことである。ネットワーク１１０には、他のネットワーク１２０，１３０が接続されている。各端末は、他のネットワーク１２０，１３０のいずれかに接続されている。本実施の形態では、ネットワーク１１０の方式として、ＳＤＮが用いられるが、コネクションパス或いはフローを設定するものであれば、どのような方式が用いられてもよい。
【００４７】
設定部１５１は、端末間のコネクションを識別する情報を含むパケット群が入出力されるネットワーク１１０のインタフェース間に、当該パケット群を転送するための双方向のコネクションパスを、当該コネクションに対応付けて設定する。ここで、１つのコネクションＣ１を識別する情報を含む第１パケットがネットワーク１１０の１つのインタフェースに入力されたとする。この場合、設定部１５１は、第１パケットが入力されたインタフェースである第１入力インタフェースと、第１パケットが出力されたインタフェースである第１出力インタフェースとの間のコネクションパスをコネクションＣ１に対応付けて設定する。
【００４８】
集約部１５２は、第１入力インタフェースと第１出力インタフェースとの間のコネクションパスがコネクションＣ１に対応付けて設定部１５１により設定された後、コネクションＣ１を識別する情報を含み第１パケットと逆方向に送信された第２パケットが第１出力インタフェースと異なるインタフェースである第２入力インタフェースに入力された場合、第１入力インタフェースと第２入力インタフェースとの間のコネクションパスをコネクションＣ１に対応付けて設定する。集約部１５２は、コネクションＣ１に対応する他のコネクションパスを削除する。これにより、集約部１５２は、コネクションＣ１で第１パケットが送信される往路と第２パケットが送信される復路とが異経路になるか、或いは、異経路になったという問題が発生した場合に、問題に対処することができる。本実施の形態では、集約部１５２は、第２パケットが第２入力インタフェースに入力されたタイミングで問題の発生を検知する。そのため、集約部１５２は、事前に問題に対処することができる。「事前」とは、異経路を生じさせるコネクションパスの設定前ということである。「問題に対処する」とは、コネクションパスを１つに集約してリソースの無駄を生じさせないということである。後述するように、集約部１５２は、第２パケットが第２入力インタフェースに入力されたタイミングで動作する代わりに、任意のタイミングで動作して事後的に問題に対処してもよい。「事後」とは、異経路を生じさせるコネクションパスの設定後ということである。
【００４９】
本実施の形態では、集約部１５２は、設定部１５１にコネクションパスの設定及び削除を行わせるが、集約部１５２は、自らコネクションパスの設定及び削除を行ってもよい。いずれの場合も、集約部１５２が実質的にコネクションパスの設定及び削除を行っていることになる。
【００５０】
本実施の形態では、コネクションＣ１の確立を要求するパケットが第１パケットに該当し、第１パケットに応答するパケットが第２パケットに該当する。具体的には、ＴＣＰ−ＳＹＮパケットが第１パケットに該当し、ＴＣＰ−ＳＹＮ−ＡＣＫパケットが第２パケットに該当する。「ＴＣＰ−ＳＹＮパケット」は、ＴＣＰヘッダのＳＹＮフラグが「１」、ＡＣＫフラグが「０」のパケットである。「ＴＣＰ−ＳＹＮ−ＡＣＫパケット」は、ＴＣＰヘッダのＳＹＮフラグ及びＡＣＫフラグの両方が「１」のパケットである。
【００５１】
集約部１５２は、コネクションＣ１を識別する情報を含み設定条件Ｄ１を満たすパケットがコネクションＣ１に対応付けて既に設定部１５１により設定されたコネクションパスの両端のインタフェースＩＦ−Ａ，ＩＦ−Ｂと異なるインタフェースＩＦ−Ｘに入力される度に、インタフェースＩＦ−ＸとインタフェースＩＦ−Ａ，ＩＦ−Ｂのうち一方のインタフェースとの間のコネクションパスをコネクションＣ１に対応付けて設定し、コネクションＣ１に対応する他のコネクションパスを削除してもよい。これにより、集約部１５２は、コネクションＣ１で往路及び復路が異経路になるという問題が発生する度に、問題に対処することができる。具体的には、集約部１５２は、コネクションＣ１でＴＣＰ−ＳＹＮパケットの送信経路とＴＣＰ−ＳＹＮ−ＡＣＫパケットの送信経路とが異経路になるという問題だけでなく、ＴＣＰコネクションであるコネクションＣ１の確立後に往路及び復路が異経路になるという問題にも対処することができる。
【００５２】
設定条件Ｄ１は、常に真という条件であってもよい。即ち、コネクションＣ１を識別する情報を含むパケットの全てが設定条件Ｄ１を満たすパケットに該当するようにしてもよい。
【００５３】
処理の効率化、及び、セキュリティの強化の観点からは、ネットワーク１１０に接続された他のネットワーク１２０，１３０の状態変化が検知されてから一定期間内にインタフェースＩＦ−Ｘに入力されたパケットが設定条件Ｄ１を満たすパケットに該当することが望ましい。
【００５４】
他のネットワーク１２０，１３０におけるルーティングテーブルの変更が上記状態変化に該当する。他のネットワーク１２０，１３０におけるリンクの障害又は回復も上記状態変化に該当する。
【００５５】
本実施の形態の変形例として、集約部１５２が任意のタイミングで動作する場合、設定部１５１は、コネクションＣ１を識別する情報を含むパケットがコネクションＣ１に対応付けて既に設定したコネクションパスの両端のインタフェースＩＦ−Ａ，ＩＦ−Ｂと異なるインタフェースＩＦ−Ｘに入力される度に、インタフェースＩＦ−Ｘとネットワーク１１０の他のインタフェースとの間のコネクションパスをコネクションＣ１に対応付けて追加設定する。集約部１５２は、複数のコネクションパスがコネクションＣ１に対応付けて設定部１５１により設定されたかどうか判定する。集約部１５２は、複数のコネクションパスがコネクションＣ１に対応付けて設定部１５１により設定されたと判定した場合、第１入力インタフェースと第２入力インタフェースとの間のコネクションパスをコネクションＣ１に対応付けて設定する。集約部１５２は、コネクションＣ１に対応する他のコネクションパスを削除する。前述したように、第１入力インタフェースは、第１パケットが入力されたインタフェースである。第２入力インタフェースは、第２パケットが入力されたインタフェースである。この変形例では、上記複数のコネクションパスのうち、最新のコネクションパスが設定部１５１により設定される要因となったパケットが第２パケットに該当する。第２パケットと逆方向に送信され上記複数のコネクションパスのいずれかが設定部１５１により設定される要因となったパケットのうち、最後に入力されたパケットが第１パケットに該当する。よって、コネクションＣ１の確立を要求するパケットが第１パケットに該当するとは限らず、第１パケットに応答するパケットが第２パケットに該当するとも限らない。
【００５６】
＊＊＊動作の説明＊＊＊
図６を参照して、コネクションパス管理システム１００の動作を説明する。コネクションパス管理システム１００の動作は、本実施の形態に係るコネクションパス管理方法に相当する。コネクションパス管理システム１００の動作は、本実施の形態に係るコネクションパス管理プログラムの処理手順に相当する。
【００５７】
Ｓ１１において、１つのコネクションＣ１を識別する情報を含むパケットがネットワーク１１０の１つのインタフェースにネットワーク１１０の外部から入力される。
【００５８】
Ｓ１２において、Ｓ１１で入力されたパケットに含まれる情報によって識別されるコネクションＣ１に対応するコネクションパスが既に設定部１５１により設定されているかどうかが判定される。設定されていなければ、フローはＳ１３に進む。既に設定されていれば、フローはＳ１７に進む。本実施の形態では、Ｓ１１でパケットが入力されたインタフェースを有する、ネットワーク１１０の機器がＳ１２の処理を行うが、設定部１５１又は集約部１５２がＳ１２の処理を行ってもよい。
【００５９】
Ｓ１３において、集約部１５２は、Ｓ１１で入力されたパケットがコネクションＣ１の確立を要求するパケットであるかどうかを判定する。コネクションＣ１の確立を要求するパケットでなければ、フローはＳ１４に進む。コネクションＣ１の確立を要求するパケットであれば、フローはＳ１５に進む。なお、設定部１５１又はＳ１１でパケットが入力されたインタフェースを有する、ネットワーク１１０の機器がＳ１３の処理を行ってもよい。
【００６０】
Ｓ１４において、集約部１５２は、Ｓ１１で入力されたパケットに含まれる情報によって識別されるコネクションＣ１に対応するコネクションパスが既に設定部１５１により設定されているかどうかを判定する。設定されていなければ、フローはＳ１５に進む。設定されていれば、フローはＳ１６に進む。
【００６１】
Ｓ１５において、設定部１５１は、Ｓ１１でパケットが入力されたインタフェースとネットワーク１１０の他の１つのインタフェースとの間の双方向のコネクションパスを、Ｓ１１で入力されたパケットに含まれる情報によって識別されるコネクションＣ１に対応するコネクションパスとして設定する。ネットワーク１１０のインタフェース群のうち、どのインタフェースを上記他の１つのインタフェースとするかは、主に、Ｓ１１で入力されたパケットの送信先から判断される。
【００６２】
Ｓ１６において、集約部１５２は、ネットワーク１１０のインタフェース群のうち、コネクションＣ１に対応する設定済のコネクションパスが設定部１５１により設定される要因となったパケットがネットワーク１１０の外部から入力されたインタフェースと、Ｓ１１でパケットがネットワーク１１０の外部から入力されたインタフェースとの間の双方向のコネクションパスを、Ｓ１１で入力されたパケットに含まれる情報によって識別されるコネクションＣ１に対応するコネクションパスとして設定する。そして、集約部１５２は、コネクションＣ１に対応する他のコネクションパスを削除する。これにより、コネクションパスが１つに集約される。なお、他のネットワーク１２０，１３０の状態変化が発生したことにより、コネクションＣ１に対応する設定済のコネクションパスが設定部１５１により設定される要因となったパケットと同じ方向に送信されるパケットがＳ１１で入力される場合がある。その場合、集約部１５２は、設定済のコネクションパスを単純に削除し、設定部１５１にＳ１５の処理を行わせる。よって、設定部１５１が、Ｓ１１でパケットが入力されたインタフェースとネットワーク１１０の他の１つのインタフェースとの間の双方向のコネクションパスを、コネクションＣ１に対応するコネクションパスとして設定する。
【００６３】
Ｓ１７において、Ｓ１１で入力されたパケットは、そのパケットに含まれる情報によって識別されるコネクションＣ１に対応するコネクションパスに沿ってネットワーク１１０の内部で転送される。そのパケットは、そのコネクションパスの両端のインタフェースのうち、Ｓ１１でパケットが入力されたパケットと反対側のインタフェースからネットワーク１１０の外部に出力される。そして、フローは終了する。
【００６４】
図７を参照して、図２の例に対応する、本実施の形態に係るネットワーク構成例を説明する。
【００６５】
Ｒｏｕｔｅｒ−１、Ｒｏｕｔｅｒ−２は、図２の例と同じルータである。Ｒｏｕｔｅｒ−３、Ｒｏｕｔｅｒ−４も、ルータである。ＳＤＮ−ＳＷ１、ＳＤＮ−ＳＷ２、ＳＤＮ−ＳＷ３、ＳＤＮ−ＳＷ４は、図２の例と同じＳＤＮスイッチである。Ｔｅｒｍ−０、Ｔｅｒｍ−１は、端末である。Ｔｅｒｍ−０は、ネットワーク１２１に接続された、端末であるＴｅｒｍ−０のインタフェースも示す。Ｔｅｒｍ−１は、ネットワーク１３１に接続された、端末であるＴｅｒｍ−１のインタフェースも示す。
【００６６】
ここでも、ＳＤＮスイッチから構成されるネットワーク１１０をＳＤＮと称することとする。ネットワーク１２１、及び、ネットワーク１２１に接続されるか又はネットワーク１２１に含まれるルータやレイヤ２スイッチ等から構成される他のネットワーク１２０を既存ネットワークと称することとする。ネットワーク１２１と同様のネットワーク１３１、及び、ネットワーク１３１に接続されるか又はネットワーク１３１に含まれるルータやレイヤ２スイッチ等から構成される他のネットワーク１３０も既存ネットワークと称することとする。ＳＤＮには、図６に示した動作を行うネットワーク制御装置１５０が接続される。
【００６７】
ネットワーク制御装置１５０は、設定部１５１と、集約部１５２とを備える。設定部１５１は、ＳＤＮコントローラ又はその一部として機能する。集約部１５２は、１つ或いは複数のソフトウエアプロセスとしてコネクションパス再構築及びコネクションパス集約機能を実装するものである。一般に基本機能を提供するベンダ又はオープンソースのＳＤＮコントローラについては、機能追加のためのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ・Ｐｒｏｇｒａｍｍｉｎｇ・Ｉｎｔｅｒｆａｃｅ）が公開されている。そのようなＡＰＩを利用して集約部１５２の機能を追加することが考えられる。
【００６８】
ここで、本実施の形態の変形例を図８に示す。
【００６９】
ネットワーク制御装置１５０がベンダ製品で、アプライアンスとして提供される場合等は、別途、集約部１５２を備える管理装置１６０が、ネットワーク制御装置１５０のＡＰＩへのアクセスが可能な環境に設置される。この変形例において、管理装置１６０は、ＰＣ（Ｐｅｒｓｏｎａｌ・Ｃｏｍｐｕｔｅｒ）である。ＡＰＩがＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ・Ｔｒａｎｓｆｅｒ・Ｐｒｏｔｏｃｏｌ）等のＴＣＰ／ＩＰ通信を前提とした形式で提供される場合、ソフトウエア作成上は物理的な位置関係を意識する必要はない。よって、図７及び図８のどちらの構成でも実現機能は同じである。
【００７０】
図９から図１３を参照して、図７に示した構成で、Ｔｅｒｍ−１からＴｅｒｍ−０へ通信リクエストが送信される際のコネクションパス管理システム１００の動作例を説明する。
【００７１】
図７に示した構成において、ＳＤＮに接続された、Ｒｏｕｔｅｒ−３及びＲｏｕｔｅｒ−４のインタフェースは、図２の例のＴｅｒｍ−２−１、Ｔｅｒｍ−２−２のような端末の複数のインタフェースに相当すると捉えることができる。
【００７２】
まず、図９に示すように、以下の処理が行われる。
（処理１−１）Ｔｅｒｍ−１が送信したコネクションの最初のパケットであるリクエストパケットがＳＤＮに到達したとき、リクエストパケットは、ＳＤＮ−ＳＷ４のインタフェースであるＩＦ−４−２へ入力される。なお、ＳＤＮ−ＳＷ４及びＩＦ−４−２が選択されたのは既存ネットワークのルータの振り分けによるものである。ＳＤＮは選択に関わっていない。リクエストパケットは、ＳＤＮ−ＳＷ３に入力される場合もある。
（処理１−２）ＳＤＮ−ＳＷ４は、リクエストパケットのコネクション識別情報が、既にＳＤＮ−ＳＷ４に設定されているコネクションパスに対応しているかどうかを判定する。対応するコネクションパスがあれば、ＳＤＮ−ＳＷ４は、そのコネクションパスに従ってリクエストパケットを転送する。対応するコネクションパスがなければ、ＳＤＮ−ＳＷ４は、リクエストパケットを含むコネクションリクエスト２０１をネットワーク制御装置１５０に送信する。
（処理１−３）ネットワーク制御装置１５０において、設定部１５１はコネクションリクエスト２０１を受信すると、集約部１５２に問い合わせを行う。集約部１５２では、受信したコネクションリクエスト２０１に含まれるリクエストパケットのコネクション識別情報に対応するコネクションパスを前述した条件（ａ）及び（ｂ）に従って既存のコネクションパスから検索する。ここでは一致するものがない。そのため、集約部１５２はその後の処理を通常通り進めるよう設定部１５１に通知する。なお、ここでの検索は、実装によってはＡＰＩを介して設定部１５１の基本機能で実施され、結果を集約部１５２が受け取ってもよい。
【００７３】
続いて、図１０に示すように、以下の処理が行われる。
（処理１−４）ネットワーク制御装置１５０において、設定部１５１はＳＤＮコントローラとしての基本的な処理を実施する。まず、設定部１５１は、コネクションパスを計算する。その結果、出力先がＳＤＮ−ＳＷ１のインタフェースであるＩＦ−１−２に決定される。コネクションリクエスト２０１に含まれていたリクエストパケットは、転送パケット２０２として、ＳＤＮからの出口となったＳＤＮ−ＳＷ１へ転送される。一方、経路上の各ＳＤＮスイッチには、コネクションパス設定指示２０３によって、コネクションパスの設定が指示される。ＳＤＮ−ＳＷ１は、ネットワーク制御装置１５０より受信したリクエストパケットを出力先のＩＦ−１−２から出力する。
（処理１−５）リクエストパケットは、Ｐａｔｈ−１を通ってＴｅｒｍ−０により受信される。Ｐａｔｈ−１は、ＳＤＮ−ＳＷ１、Ｒｏｕｔｅｒ−２を通る経路になっている。
【００７４】
（処理１−４）の結果、図１１に示すように、ＣＰ−１が構築される。これにより、ＳＤＮを通過するＴｅｒｍ−０からＴｅｒｍ−１への通信が可能となる。逆方向の通信も同じ経路では可能となる。コネクションパスは、双方向であり、ＳＤＮの出入り口となるインタフェース間で構築される。ＣＰ−１は、ＩＦ−４−２とＩＦ−１−２との間で設定されている。
【００７５】
次に、図１２に示すように、以下の処理が行われる。
（処理２−１）Ｔｅｒｍ−０が返信したコネクションの最初のパケットである応答パケットは、Ｔｅｒｍ−０から送信される。応答パケットは、Ｐａｔｈ−２を通ってＳＤＮに入力される。Ｐａｔｈ−２は、Ｒｏｕｔｅｒ−２、ＳＤＮ−ＳＷ２を通る経路になっている。応答パケットは、ＳＤＮ−ＳＷ２のインタフェースであるＩＦ−２−１へ入力される。なお、ＳＤＮ−ＳＷ２及びＩＦ−２−１が選択されたのは既存ネットワークのルータの振り分けによるものである。ＳＤＮは選択に関わっていない。応答パケットは、ＳＤＮ−ＳＷ１に入力される場合もある。その場合、ＣＰ−１を利用することができる。
（処理２−２）ＳＤＮ−ＳＷ２は、応答パケットのコネクション識別情報が、既にＳＤＮ−ＳＷ２に設定されているコネクションパスに対応しているかどうかを判定する。対応するコネクションパスがあれば、ＳＤＮ−ＳＷ２は、そのコネクションパスに従って応答パケットを転送する。対応するコネクションパスがなければ、ＳＤＮ−ＳＷ２は、応答パケットを含むコネクションリクエスト２０４をネットワーク制御装置１５０に送信する。ここでの判定には入力インタフェースも条件に含まれるため、仮にＩＦ−１−１にＴｅｒｍ−０からの応答パケットが入力された場合も、対応するコネクションパスがないという結果になる。
（処理２−３）ネットワーク制御装置１５０において、設定部１５１はコネクションリクエスト２０４を受信すると、集約部１５２に問い合わせを行う。集約部１５２では、受信したコネクションリクエスト２０４に含まれる応答パケットのコネクション識別情報に対応するコネクションパスを前述した条件（ａ）及び（ｂ）に従って既存のコネクションパスから検索する。ここでは一致するものとしてＣＰ−１が発見される。
【００７６】
続いて、図１３に示すように、以下の処理が行われる。
（処理２−４）ネットワーク制御装置１５０において、集約部１５２はＣＰ−１の情報を参照して、ＣＰ−１を構築するきっかけとなったパケットの入力インタフェースがＩＦ−４−２であり、ＩＦ−４−２がコネクションリクエスト２０４に含まれる応答パケットの宛先になり得ることを確認する。そして、集約部１５２は、（ｉ）応答パケットの入力インタフェースであるＩＦ−２−１とＳＤＮ−ＳＷ４のインタフェースであるＩＦ−４−２との間で新規コネクションパスを構築するとともに、（ｉｉ）検索して一致したコネクションパスを削除するように設定部１５１に通知する。
（処理２−５）ネットワーク制御装置１５０において、設定部１５１は、ＩＦ−２−１及びＩＦ−４−２間のコネクションパスを計算する。ＳＤＮ内の経路は、予め設定された各種条件に従って決定される。コネクションリクエスト２０４に含まれていた応答パケットは、転送パケット２０５として、ＳＤＮからの出口となったＳＤＮ−ＳＷ４へ転送される。一方、経路上の各ＳＤＮスイッチには、コネクションパス設定及び削除指示２０６によって、コネクションパスの設定及び削除が指示される。ＳＤＮ−ＳＷ４は、ネットワーク制御装置１５０より受信した応答パケットを出力先のＩＦ−４−２から出力する。
【００７７】
（処理２−５）の結果、ＣＰ−２が構築され、ＣＰ−１が削除される。これにより、ＳＤＮを通過するＴｅｒｍ−０及びＴｅｒｍ−１間の双方向の通信が可能となる。ＣＰ−２は、ＩＦ−４−２とＩＦ−２−１との間で設定されている。
【００７８】
上記のような処理によって、往路及び復路をそれぞれ通る最初のパケットで、往復が異経路になる場合のコネクションパスを最適な状態に再構築することが可能となる。
【００７９】
図９から図１３の動作において、リクエストパケットは第１パケットに該当し、応答パケットは第２パケットに該当する。ＩＦ−４−２は第１入力インタフェース、ＩＦ−１−２は第１出力インタフェース、ＩＦ−２−１は第２入力インタフェースに該当する。
【００８０】
ここで説明したネットワーク構成とコネクション確立のパタンは、前述した（種別１）〜（種別４）のうち（種別３）及び（種別４）に相当する。
【００８１】
（種別３）及び（種別４）に関して示した例では、Ｔｅｒｍ−２が２つのインタフェースでＳＤＮと接続されている。当該２つのインタフェースは同等の扱いであり、Ｔｅｒｍ−２の中に論理的にスイッチ、或いは、振り分けを行うルータがいるのと同様である。図２の例と同様の構成を本実施の形態に適用した場合、図１４に示すように、Ｔｅｒｍ−２が、論理的なネットワーク３０１と、ネットワーク３０１に接続された仮想ＰＣ又はブレードＰＣ３０２とで構成されていると捉えることができる。即ち、ＳＤＮから見れば、冗長構成をとる既存ネットワークが接続されているのと同じであり、図１４の構成は図７の構成と同等であると考えることができる。なお、ここでの接続インタフェース数は２つに限定されるわけではない。
【００８２】
また、Ｔｅｒｍ−３は、ＳＤＮ−ＳＷ４とリンクアグリゲーションによって接続されている。ＳＤＮからＴｅｒｍ−３へパケットが転送されるとき、及び、Ｔｅｒｍ−３からＳＤＮへパケットが転送されるときは、送信先が同じパケットを同じインタフェースで転送することが保証される。これは、前述したように、パケット順を保持するための一般的な動作である。しかし、あるインタフェースで受信されたパケットに対応した逆方向のパケットを当該インタフェースで転送することまでは保証されない。リンクアグリゲーションは複数のインタフェースを利用して仮想的に広帯域の回線に見せる技術であり、対向の装置それぞれが振り分けを行えばよい。そのため、コネクションの双方向のパケットが同一インタフェースを通過する必要はなく、そのような実装は多くの処理やリソースを必要とするため行われていない。イーサネット（登録商標）は元々半二重の回線である。半二重であれば、より効率的なリンクアグリゲーションを行うには対向からの送信状況を意識する必要があるかもしれない。しかし、近年一般に広く利用されるようになった、ＵＴＰ（Ｕｎｓｈｉｅｌｄｅｄ・Ｔｗｉｓｔｅｄ・Ｐａｉｒ）、ＳＴＰ（Ｓｈｉｅｌｄｅｄ・Ｔｗｉｓｔｅｄ・Ｐａｉｒ）といったツイストペアケーブルを利用するイーサネットでは全二重通信が可能である。特に、ギガビットイーサネットは全二重通信が前提である。よって、１つのコネクションの往復パケットの通過インタフェースが異なり、Ｔｅｒｍ−２や既存ネットワークを接続した状況と同じになり得る。よってリンクアグリゲーションにおいても異経路が生じ、その構成は図７の構成と同等であると考えることができる。
【００８３】
以上のことから、（種別３）及び（種別４）は、図９から図１３の動作で対応可能である。
【００８４】
（種別２）については、Ｔｅｒｍ−１からコネクションリクエストが送信され、Ｔｅｒｍ−０からの応答が異経路となってＴｅｒｍ−１の唯一のインタフェースに到着する動作となる。したがって、図９から図１３の動作におけるＴｅｒｍ−１側のＳＤＮへの入力インタフェースであるＩＦ−４−２が常に固定になっているということに他ならない。固定かどうかに関係なく、最初に入力したインタフェースを保存する動作を行っているので、（種別２）のパタンも、図９から図１３の動作で対応可能である。
【００８５】
以上に示した通り、各種ネットワーク構成に対しても上記の動作によって本実施の形態の目的を果たすことが可能である。以下に、付加的な機能について示す。
【００８６】
前述した通り、ＴＣＰのコネクションが通信の大半を占め、ＴＣＰは明確なコネクション確立手順がある。よって、当該確立手順を認識し、処理実施の要不要を判断することで、ネットワーク制御装置１５０の負荷を抑制することが期待できる。
【００８７】
ＴＣＰ−ＳＹＮパケットの場合は、基本的に新規コネクションであるため、集約部１５２に情報が送られてきても検索は行わず、通常通り処理するように即時応答する。ＴＣＰのコネクションが何らかの理由で切断され、すぐに張り直す場合等も、同じポート番号が適用されて全く同じコネクションとして認識できることはまれであり、コネクションパスの再利用は反って処理を重くしかねない。
【００８８】
ＴＣＰ−ＳＹＮ−ＡＣＫパケットの場合は、異経路となっている可能性が非常に高いため、集約部１５２の処理を適用する。なお、ＴＣＰ−ＳＹＮ−ＡＣＫパケットの場合に限らず、ＴＣＰ−ＳＹＮパケット及びＴＣＰ−ＳＹＮ−ＡＣＫパケットのいずれでもないパケット、即ち、ＴＣＰのＳＹＮフラグの立っていないパケットについても、集約部１５２の処理を適用してよい。具体的には以下の２つの状況等が考えられ、結果的にＴＣＰのＳＹＮフラグの立っていないパケットでも新規コネクションリクエストが発生し得るためである。
（状況１）ＳＤＮに接続された既存ネットワークのルータの対等なインタフェースへの振り分けルールは、ルータに直結していない箇所で障害があり、ルートテーブルの変更があった場合等、エントリとして変化がなくても、内部テーブル上の順番が変わる等して振り分けが変わる可能性がある。
（状況２）リンクアグリゲーションの振り分けルールはリンク障害が発生すれば変化する。
【００８９】
ただし、全てのＴＣＰパケットに対応すると、コネクションパス管理システム１００が攻撃の対象になりやすくなったり、コネクションパス管理システム１００に障害が発生しやすくなったりする可能性がある。そこで、ＴＣＰのＳＹＮフラグの立っていないパケットへの対応は、通常は不許可の状態で、いくつかのトリガを認識して許可状態に入る対応が考えられる。そのトリガとしては、動的ルーティングテーブルの変化の通知を利用することができる。リンクアグリゲーション等を含めた、端末や外部ネットワークとの接続リンク障害或いはリンク回復を利用することもできる。どれだけの時間許可するかはＴＣＰのキープアライブのタイマとの関係等、ネットワーク設計とも関係する。ＳＤＮのコネクションパスの保持時間の設定とも関係する。よって、各設計者に委ねられる。
【００９０】
ここで、本実施の形態と片方向コネクションパスとの関係について説明する。
【００９１】
近年のＩＰネットワークにおける通信の大半がＴＣＰであり、双方向の通信が必然であるため、最初のパケットの入力があり、そのパスを決定した時点で双方向のパスを構築する方が、片方向ずつコネクションパスの受付処理をするよりも制御装置としては効率が良い。それは、片方向の場合は各要求に対して経路計算を行い、経路上のＳＤＮスイッチの入出力インタフェースを算出する必要があるが、逆方向のコネクションパスを同時に設定する場合には、各スイッチの入出力インタフェースを逆に辿るだけでよいため、経路計算は実質的に不要だからである。また双方向の１つのコネクションパスを扱うことで、（ｉ）削除する際に双方向を一回の処理で実施可能、（ｉｉ）ＴＣＰ−ＲＳＴによる削除でも双方向の削除が即時可能、（ｉｉｉ）ＴＣＰ−ＦＩＮの双方向の通過を各スイッチで認識可能で、削除処理を効率化しやすい、（ｉｖ）障害時におけるフローの振り替え処理も、１つのコネクションパスとして処理可能である等、各種管理上も都合が良い。これにより、（種別１）〜（種別４）のうち、（種別１）は追加の処理はなくても対応が可能である。また双方向に設定することで、本実施の形態の効果も大きく発揮される。
【００９２】
コネクションパスを片方向ずつ扱うことで、異経路の場合でも各スイッチのパス設定リソースを余計に消費することはなくなるが、別のパスとして扱うことになる。そのため、ＳＤＮコントローラの検索等の計算リソース及びエントリテーブルリソース、並びに、ＳＤＮスイッチのハードウェア処理用エントリリソースが最大で２倍近く消費され、ＳＤＮとしてのパフォーマンスに大きく影響する。大量に新規コネクションが発生したり、障害が発生してコネクションを振り変える際等に、時間がかかったり、場合によっては処理できなくなったりする可能性がある。また管理上の不便さを解決するため、双方向の対応を取って管理画面に表示する等、計算処理を増加させる。
【００９３】
片方向のコネクションパスエントリテーブルとは別に、双方向のコネクションパスエントリテーブルを用意し、片方向のエントリと対応付けを行っておき、ＳＤＮコントローラにおける検索等は双方向のテーブルを利用することで計算リソースの使用を抑えることができると考えられる。しかし一方で、コネクションパスの受付処理負荷は双方向の場合の２倍であることは変わらず、対応付けのための計算が付加され、コネクションパスの変更や削除、障害による振り替え等においても、追加のテーブルのための処理が発生するため、計算リソースは多く消費される。
【００９４】
したがって、ネットワーク構成において、ＳＤＮの各種リソースの使用を最小限にし、運用管理上も複雑化することを防いて負担がかからない状態を実現するには、コネクションパスを１つに集約し、当該コネクションパスに対してスイッチには双方向のパス設定を行う状態であり、既存の冗長化されたネットワークや端末とＳＤＮを接続するとき、本実施の形態を適用することで、リソースの消費を効果的に抑えることが可能となる。
【００９５】
現在では、ＳＤＮを適用するのはデータセンタで、端末からコネクションリクエストが発行されるのが一般的である。それでも近年のデータセンタにある端末、即ちサーバはブレードや仮想化対応のために物理的或いは論理的なスイッチ等を経由して冗長のインタフェースを用意していることが多く、その場合、（種別３）又は（種別４）に該当し、異経路が発生する。しかしサーバが１つのインタフェースで接続されていると、端末からのアクセスは（種別１）に該当し、双方向の設定をすれば大半が解決となる。ただし、近年では端末のシンクライアント化が進んでいるため、（種別１）に該当するのはシンクライアントとシンクライアントサーバとの間のコネクションが中心となりつつある。シンクライアント化以前のコネクションは、ほぼそのままシンクライアントサーバから他のサーバに対して行われるという形で残るため、同じデータセンタ内にあっても、大規模であったり、フロアが分かれていることで既存ネットワークを通過したり、ＷＡＮに出て行く等して既存ネットワークに対するアクセスの方が多くなり、（種別２）に該当するコネクションの方が多くなる傾向にあるため、本実施の形態が有効である。
【００９６】
４つの対等な冗長インタフェースでＳＤＮと既存ネットワークが接続されていて、異経路の原因となっている場合、往路及び復路が同じインタフェースを通過する確率は４分の１である。したがって、（種別２）、（種別３）、（種別４）の状況にあるコネクションは、７５％が異経路となる。インタフェースが２つであれば２分の１となり、５０％が異経路となる。こうした環境には本実施の形態が有効である。
【００９７】
本実施の形態では、コネクションパスの集約の際に、最新のコネクションパスを優先して残すことが望ましい。そのため、確立済のコネクションパスの情報として、各コネクションパスを確立した順番を示すのに十分な精度の時刻或いは順番を示す番号を合わせて保存しておくことが望ましい。
【００９８】
コネクションパス管理システム１００の運用中に管理者が手作業で或いは自動で定期的にコネクションパス情報の整理を行ってもよい。同一のコネクション識別情報を持つ複数のコネクションパスがあった場合には、当該複数のコネクションパスの、ＳＤＮの両端のインタフェースと、それらの両端のインタフェースとそれぞれ冗長関係にあるインタフェース群を特定し、一方のインタフェース群から入力したパケットによって確立されたコネクションパスのうち最新のもの、及び、もう一方のインタフェース群から入力したパケットによって確立されたコネクションパスのうち最新のものを特定して最終的に２つのコネクションパスを選択し、選択したコネクションパスの入力したパケットのインタフェースを両端とするコネクションパスを設定して、他のコネクションパスを削除する。
【００９９】
＊＊＊効果の説明＊＊＊
本実施の形態では、端末間の１つのコネクションに対して複数のコネクションパスが設定されるような状況が発生したときに、それら複数のコネクションパスが１つに集約される。このため、本実施の形態によれば、ネットワークのリソースの消費量を削減することが可能となる。
【０１００】
本実施の形態によれば、冗長構成をとる既存ネットワークと複数インタフェースで接続することによって往路及び復路の経路が異経路になり、ＳＤＮの各種リソースが余計に消費されるのを防ぐことが可能となる。
【０１０１】
本実施の形態によれば、コネクションパス情報をＳＤＮコントローラで２つ登録するところを１つに集約することが可能となる。ＳＤＮコントローラのテーブルリソースの消費抑制と、新たなリクエストに対する検索等の処理における計算負荷の軽減が可能となる。
【０１０２】
本実施の形態によれば、ＴＣＰ−ＲＳＴパケットが通過した場合、コネクションパスを削除することができるが、片方向のみの対応となり、さらに検索してもう一方を処理する負荷が省かれる。
【０１０３】
本実施の形態によれば、ＴＣＰ−ＦＩＮパケットを検出してコネクションパスを削除する場合は、ＴＣＰ−ＦＩＮ自体が異なるコネクションパスを通過し、さらにそれらのＡＣＫがそれぞれ異なるコネクションパスを通過するため、それぞれのコネクションパスで検出した情報を集約しないと、効率的な削除ができないことを防ぐことができる。
【０１０４】
本実施の形態によれば、障害等によってコネクションパスを振り替える場合も、コネクションパスエントリが集約されていることで計算負荷を軽減することが可能となる。
【０１０５】
本実施の形態によれば、ＳＤＮを適用する際、ＳＤＮ関連機器のリソースを少なめに設計でき、コスト削減になるとともにスロースタートでＳＤＮを導入しやすくなる。
【０１０６】
以下では、図１５を参照して、本発明の実施の形態に係るネットワーク制御装置１５０のハードウェア構成例を説明する。
【０１０７】
ネットワーク制御装置１５０は、コンピュータである。ネットワーク制御装置１５０は、プロセッサ９０１、補助記憶装置９０２、メモリ９０３、通信装置９０４、入力インタフェース９０５、ディスプレイインタフェース９０６といったハードウェアを備える。プロセッサ９０１は、信号線９１０を介して他のハードウェアと接続され、これら他のハードウェアを制御する。入力インタフェース９０５は、入力装置９０７に接続されている。ディスプレイインタフェース９０６は、ディスプレイ９０８に接続されている。
【０１０８】
プロセッサ９０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ・Ｃｉｒｃｕｉｔ）である。プロセッサ９０１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ・Ｓｉｇｎａｌ・Ｐｒｏｃｅｓｓｏｒ）、又は、ＧＰＵ（Ｇｒａｐｈｉｃｓ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）である。
【０１０９】
補助記憶装置９０２は、例えば、ＲＯＭ（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、フラッシュメモリ、又は、ＨＤＤ（Ｈａｒｄ・Ｄｉｓｋ・Ｄｒｉｖｅ）である。
【０１１０】
メモリ９０３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）である。
【０１１１】
通信装置９０４は、データを受信するレシーバ９２１及びデータを送信するトランスミッタ９２２を含む。通信装置９０４は、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ・Ｉｎｔｅｒｆａｃｅ・Ｃａｒｄ）である。
【０１１２】
入力インタフェース９０５は、入力装置９０７のケーブル９１１が接続されるポートである。入力インタフェース９０５は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ・Ｓｅｒｉａｌ・Ｂｕｓ）端子である。
【０１１３】
ディスプレイインタフェース９０６は、ディスプレイ９０８のケーブル９１２が接続されるポートである。ディスプレイインタフェース９０６は、例えば、ＵＳＢ端子又はＨＤＭＩ（登録商標）（Ｈｉｇｈ・Ｄｅｆｉｎｉｔｉｏｎ・Ｍｕｌｔｉｍｅｄｉａ・Ｉｎｔｅｒｆａｃｅ）端子である。
【０１１４】
入力装置９０７は、例えば、マウス、スタイラスペン、キーボード、又は、タッチパネルである。
【０１１５】
ディスプレイ９０８は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）である。
【０１１６】
補助記憶装置９０２には、設定部１５１、集約部１５２といった「部」の機能を実現するプログラムが記憶されている。このプログラムは、メモリ９０３にロードされ、プロセッサ９０１に読み込まれ、プロセッサ９０１によって実行される。補助記憶装置９０２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ・Ｓｙｓｔｅｍ）も記憶されている。ＯＳの少なくとも一部がメモリ９０３にロードされ、プロセッサ９０１はＯＳを実行しながら、「部」の機能を実現するプログラムを実行する。
【０１１７】
図１５では、１つのプロセッサ９０１が示されているが、ネットワーク制御装置１５０が複数のプロセッサ９０１を備えていてもよい。そして、複数のプロセッサ９０１が「部」の機能を実現するプログラムを連携して実行してもよい。
【０１１８】
「部」の処理の結果を示す情報やデータや信号値や変数値は、補助記憶装置９０２、メモリ９０３、又は、プロセッサ９０１内のレジスタ又はキャッシュメモリに記憶される。
【０１１９】
「部」を「サーキットリ」で提供してもよい。また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。「回路」及び「サーキットリ」は、プロセッサ９０１だけでなく、ロジックＩＣ、ＧＡ（Ｇａｔｅ・Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ・Ｓｐｅｃｉｆｉｃ・Ｉｎｔｅｇｒａｔｅｄ・Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ・Ｇａｔｅ・Ａｒｒａｙ）といった他の種類の処理回路をも包含する概念である。
【０１２０】
管理装置１６０にも、図１５の例と同じハードウェア構成を適用することができる。
【０１２１】
以上、本発明の実施の形態について説明したが、この実施の形態を部分的に実施しても構わない。例えば、この実施の形態の説明において「部」として説明するもののうち、いずれか１つのみを採用してもよいし、いくつかの任意の組み合わせを採用してもよい。なお、本発明は、この実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【０１２２】
１００  コネクションパス管理システム、１１０  ネットワーク、１２０  他のネットワーク、１２１  ネットワーク、１３０  他のネットワーク、１３１  ネットワーク、１５０  ネットワーク制御装置、１５１  設定部、１５２  集約部、１６０  管理装置、２０１  コネクションリクエスト、２０２  転送パケット、２０３  コネクションパス設定指示、２０４  コネクションリクエスト、２０５  転送パケット、２０６  コネクションパス設定及び削除指示、３０１  ネットワーク、３０２  仮想ＰＣ又はブレードＰＣ、９０１  プロセッサ、９０２  補助記憶装置、９０３  メモリ、９０４  通信装置、９０５  入力インタフェース、９０６  ディスプレイインタフェース、９０７  入力装置、９０８  ディスプレイ、９１０  信号線、９１１  ケーブル、９１２  ケーブル、９２１  レシーバ、９２２  トランスミッタ。
【図１】
2016098261.tif 000003
【図２】
2016098261.tif 000004
【図３】
2016098261.tif 000005
【図４】
2016098261.tif 000006
【図５】
2016098261.tif 000007
【図６】
2016098261.tif 000008
【図７】
2016098261.tif 000009
【図８】
2016098261.tif 000010
【図９】
2016098261.tif 000011
【図１０】
2016098261.tif 000012
【図１１】
2016098261.tif 000013
【図１２】
2016098261.tif 000014
【図１３】
2016098261.tif 000015
【図１４】
2016098261.tif 000016
【図１５】
2016098261.tif 000017
【国際調査報告】
2016098261.tif 000018
2016098261.tif 000019
2016098261.tif 000020
2016098261.tif 000021