(57)【要約】【課題】パケット送信時に設定された送信先情報を変更せずに当該パケットの送信先を変える。【解決手段】制御サーバの経路制御計算部は、ＯＦＳ４を制御して、送信先ＩＰアドレスが送信先ＩＰフィールドに記述されているパケットをＯＦＳ４が受信した場合に、ＯＦＳ４に当該パケットのＣｏｓフィールドにアプライアンスの識別番号を書き込ませ、かつ、ＯＦＳ４にＴｏｓフィールドの値を、送信先ＩＰフィールドを指定する値からＣｏｓフィールドを指定する値に変更させることで、当該パケットの送信先を、送信先ＩＰアドレスに指定される送信先から上記のアプライアンスに変更させる。【選択図】図４
2019024272.tif 000002
【特許請求の範囲】
【請求項１】
複数の装置の間でパケットを中継する複数の中継装置を制御する制御装置であって、
前記複数の中継装置のうちの少なくとも一の中継装置が、第１送信先を識別する第１送信先情報が記述される第１フィールドと、第２送信先を識別する第２送信先情報が記述される第２フィールドと、前記第１フィールドと前記第２フィールドのうち送信先を特定するために参照すべきフィールドを決定する値が記述される第３フィールドとを有するパケットを受信し、前記第３フィールドの値を変更することで、当該パケットの送信先を変更させるように当該一の中継装置を制御する経路制御部を
備えることを特徴とする制御装置。
【請求項２】
所定の判断基準に基づいて、前記パケットが中継される経路を決定する経路決定部をさらに備え、
前記経路制御部は、前記決定された経路上を前記パケットが中継されるように前記制御を行うことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記経路決定部は、前記経路上で前記パケットが転送される機器を決定することを特徴とする請求項２に記載の制御装置。
【請求項４】
前記所定の判断基準は、前記複数の中継装置の間のトラフィックであり、
前記経路決定部は、前記パケットが転送されるべき同種の機器が複数存在する場合には、当該複数の機器の中からトラフィックに基づいて一の機器を決定する
ことを特徴とする請求項３に記載の制御装置。
【請求項５】
複数の装置の間でパケットを中継する複数の中継装置を制御する制御装置によって実行される制御方法であって、
前記複数の中継装置のうちの少なくとも一の中継装置が、第１送信先を識別する第１送信先情報が記述される第１フィールドと、第２送信先を識別する第２送信先情報が記述される第２フィールドと、前記第１フィールドと前記第２フィールドのうち送信先を特定するために参照すべきフィールドを決定する値が記述される第３フィールドとを有するパケットを受信し、前記第３フィールドの値を変更することで、当該パケットの送信先を変更させるように当該一の中継装置を制御するステップを
備えることを特徴とする制御方法。
【請求項６】
複数の装置の間でパケットを中継する複数の中継装置を制御するコンピュータを、
前記複数の中継装置のうちの少なくとも一の中継装置が、第１送信先を識別する第１送信先情報が記述される第１フィールドと、第２送信先を識別する第２送信先情報が記述される第２フィールドと、前記第１フィールドと前記第２フィールドのうち送信先を特定するために参照すべきフィールドを決定する値が記述される第３フィールドとを有するパケットを受信し、前記第３フィールドの値を変更することで、当該パケットの送信先を変更させるように当該一の中継装置を制御する経路制御部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークの経路を制御する技術に関する。
【背景技術】
【０００２】
近年、プログラムによるネットワーク制御を実現するネットワークアーキテクチャであるＳＤＮ（Software-Defined Networking）の普及と実用化が進みつつある。このＳＤＮを実現するプロトコルの１つにOpenFlowがある。OpenFlowでは、OpenFlowスイッチがOpenFlowコントローラによって集中的に制御される。例えば、特許文献１に記載の技術では、OpenFlowを利用して、各スイッチがルーティングを行うためのフローエントリが制御サーバにより配信されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２３６３８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、通信パケットの特定のフィールドに付されているビット列を参照して、その結果に応じて検査用装置にパケットが転送されることが記載されている。しかし、特許文献１に記載の検査用のパケットは、その送信先が検査用装置に固定的に設定されており、その送信先をスイッチのフローエントリに応じて変更させることについては記載されていない。
【０００５】
本発明は、このような事情に鑑みてなされたものであり、パケット送信時に設定された送信先情報を変更せずに当該パケットの送信先を変えることを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、本発明は、複数の装置の間でパケットを中継する複数の中継装置を制御する制御装置であって、前記複数の中継装置のうちの少なくとも一の中継装置が、第１送信先を識別する第１送信先情報が記述される第１フィールドと、第２送信先を識別する第２送信先情報が記述される第２フィールドと、前記第１フィールドと前記第２フィールドのうち送信先を特定するために参照すべきフィールドを決定する値が記述される第３フィールドとを有するパケットを受信し、前記第３フィールドの値を変更することで、当該パケットの送信先を変更させるように当該一の中継装置を制御する経路制御部を備えることを特徴とする制御装置を提供する。
【０００７】
好ましい態様において、所定の判断基準に基づいて、前記パケットが中継される経路を決定する経路決定部をさらに備え、前記経路制御部は、前記決定された経路上を前記パケットが中継されるように前記制御を行ってもよい。
【０００８】
さらに好ましい態様において、前記経路決定部は、前記経路上で前記パケットが転送される機器を決定してもよい。
【０００９】
さらに好ましい態様において、前記所定の判断基準は、前記複数の中継装置の間のトラフィックであり、前記経路決定部は、前記パケットが転送されるべき同種の機器が複数存在する場合には、当該複数の機器の中からトラフィックに基づいて一の機器を決定してもよい。
【００１０】
また、本発明は、複数の装置の間でパケットを中継する複数の中継装置を制御する制御装置によって実行される制御方法であって、前記複数の中継装置のうちの少なくとも一の中継装置が、第１送信先を識別する第１送信先情報が記述される第１フィールドと、第２送信先を識別する第２送信先情報が記述される第２フィールドと、前記第１フィールドと前記第２フィールドのうち送信先を特定するために参照すべきフィールドを決定する値が記述される第３フィールドとを有するパケットを受信し、前記第３フィールドの値を変更することで、当該パケットの送信先を変更させるように当該一の中継装置を制御するステップを備えることを特徴とする制御方法を提供する。
【００１１】
また、本発明は、複数の装置の間でパケットを中継する複数の中継装置を制御するコンピュータを、前記複数の中継装置のうちの少なくとも一の中継装置が、第１送信先を識別する第１送信先情報が記述される第１フィールドと、第２送信先を識別する第２送信先情報が記述される第２フィールドと、前記第１フィールドと前記第２フィールドのうち送信先を特定するために参照すべきフィールドを決定する値が記述される第３フィールドとを有するパケットを受信し、前記第３フィールドの値を変更することで、当該パケットの送信先を変更させるように当該一の中継装置を制御する経路制御部として機能させるためのプログラムを提供する。
【発明の効果】
【００１２】
本発明によれば、パケット送信時に設定された送信先情報を変更せずに当該パケットの送信先を変えることができる。
【図面の簡単な説明】
【００１３】
【図１】通信システム１００の構成の一例を示す図である。
【図２】ＯＦＳ４の機能構成の一例を示す図である。
【図３】管理サーバ２の機能構成の一例を示す図である。
【図４】制御サーバ３の機能構成の一例を示す図である。
【図５】アプライアンス情報テーブルＤＢ３の一例を示す図である。
【図６】経路制御テーブルＤＢ４の一例を示す図である。
【図７】処理実施テーブルＤＢ５の一例を示す図である。
【図８】フローエントリ更新の第１の例について説明する図である。
【図９】フローエントリ更新の第１の例について説明する図である。
【図１０】フローエントリ更新の第２の例について説明する図である。
【図１１】フローエントリ更新の第３の例について説明する図である。
【図１２】フローエントリ更新の第３の例について説明する図である。
【図１３】トラフィックに基づくフローエントリ更新の例について説明する図である。
【図１４】トラフィックに基づくフローエントリ更新の例について説明する図である。
【図１５】管理用パケットの利用例について説明する図である。
【発明を実施するための形態】
【００１４】
１．実施形態
１−１．通信システム１００の構成
図１は、本発明の一実施形態に係る通信システム１００の構成の一例を示す図である。通信システム１００は、同図に示されるように、ＳＤＮ（Software-Defined Networking）ネットワーク１０と、Ｐｒｏｘｙ（プロキシ）サーバ１と、管理サーバ２と、制御サーバ３とにより構成される。ＳＤＮネットワーク１０は、OpenFlow仕様に準拠したネットワークであり、複数のOpenFlowスイッチ（以下、「ＯＦＳ」という。）４Ａ〜４Ｄ（以下、特に区別する必要がない場合には「ＯＦＳ４」と総称する。）と、複数の端末５Ａ〜５Ｃ（以下、特に区別する必要がない場合には「端末５」と総称する。）と、複数のＩＰＳ（Intrusion Prevention System、侵入防止システム）６Ａ及び６Ｂ（以下、特に区別する必要がない場合には「ＩＰＳ６」と総称する。）と、ＷＡＦ（Web Application Firewall）７と、Ｃａｐｔｕｒｅ（キャプチャ）ツール８とにより構成される。
【００１５】
１−２．ＯＦＳ４の構成
ＯＦＳ４は、OpenFlow仕様に準拠した伝送装置（又は中継装置、転送装置）であって、ハードウェアで行われるパケット伝送処理を行う伝送装置である。ここで、OpenFlowとは、通信ネットワークを構成するネットワーク機器を１つの制御装置で集中管理し、複雑な転送制御を行ったり柔軟にネットワーク構成を変更したりすることができる技術である。OpenFlowは、ＳＤＮを実現するプロトコルの１つである。なおここで、ＳＤＮとは、コンピュータネットワークを構成する通信機器を単一のソフトウェアによって集中的に制御し、ネットワークの構造や構成、設定などを柔軟かつ動的に変更することを可能とする技術の総称、または、そのような技術によって構築されたネットワークのことである。
【００１６】
ＯＦＳ４は、複数の端末５の間で経路制御情報（又は中継制御情報、転送制御情報）に基づいて通信パケットを中継する。具体的には、記憶するフローテーブルを参照して、通信パケットの転送制御を行う。ここで、フローテーブルとは、制御サーバ３により計算された経路情報を保存するテーブルであって、ＯＦＳ４がパケット転送を処理する際に参照されるテーブルである。このフローテーブルは１以上のフローエントリにより構成され、各フローエントリは、データ転送の条件（Match）と、条件合致時の動作指示（Instructions）とにより構成される。
【００１７】
条件部分には、例えば、送信元又は宛先ＩＰ（Internet Protocol）アドレスや、送信元又は宛先ＭＡＣ（Media Access Control）アドレスや、ネットワークＩＤや、入力ポート番号等の、パケットのヘッダ情報が指定される。または、１以上のヘッダフィールド（Type of Service（Ｔｏｓ）フィールドや、Class of Service（Ｃｏｓ）フィールドも含む。）に設定される任意のビット値や複数の異なるビットが指定される。一方、動作指示部分には、例えば、データの転送（Output命令）、データの破棄（Drop命令）、データのヘッダ情報の書き換え（Set-Field命令）が指定される。なお、フローエントリには、優先度（Priority）や、カウンタ（Counters）や、有効期間（Timeouts）や、クッキー（Cookie）が指定されてもよい。
【００１８】
図２は、ＯＦＳ４の機能構成の一例を示す図である。ＯＦＳ４は、同図に示されるように、受信部４１と、フィールド特定部４２と、動作指示特定部４３と、処理実行部４４という機能を備える。これらの機能は、例えば、ＣＰＵ等の演算装置によりプログラムが実行されることにより実現される。なお、これらの機能は、特にパケットの転送処理に係るものである。
【００１９】
受信部４１は、入力ポートを介してパケットを受信する。ここで、パケットは、例えば、第１送信先を識別する第１送信先情報が記述される第１フィールドと、第２送信先を識別する第２送信先情報が記述される第２フィールドと、前記第１フィールドと前記第２フィールドのうち送信先を特定するために参照すべきフィールドを決定する値が記述される第３フィールドとを有する。ここで、第１送信先情報は、例えば、送信先ＩＰアドレスや送信先ＭＡＣアドレスであり、第１フィールドは、例えば、送信先ＩＰアドレスや送信先ＭＡＣアドレスのヘッダフィールドである。第２送信先情報は、例えばＣｏｓフィールドの値（Ｃｏｓ値）であり、第２フィールドは、例えばＣｏｓフィールドである。第３フィールドは、例えば、Ｔｏｓフィールドである。
【００２０】
フィールド特定部４２は、受信部４１により受信されたパケットの第３フィールドに記述されている値に基づいて、第１及び第２フィールドのうち、当該パケットの送信先を特定するために参照すべきフィールドを特定する。具体的には、受信部４１により受信されたパケットのＴｏｓフィールドを参照して、転送先を決定するために参照すべきフィールドを特定する。
【００２１】
動作指示特定部４３は、フィールド特定部４２により特定されたフィールドに記述されている送信先情報に対応する動作指示を経路制御テーブルにおいて特定する。具体的には、フィールド特定部４２により特定されたフィールドの値と合致する条件がフローテーブルＦＴ内に存在するか否かを調べ、存在する場合には当該条件に対応する動作指示を特定する。
【００２２】
処理実行部４４は、動作指示特定部４３により特定された動作指示に従って処理を実行する。
以上が、パケットの転送処理に係る機能構成についての説明である。
【００２３】
ＯＦＳ４は、図示せぬOpenFlowチャネル（セキュアチャネル）を介して、OpenFlowプロトコルに従って制御サーバ３との間で通信を行う。ＯＦＳ４は、制御サーバ３からフローエントリ変更メッセージ（Flow Modifyメッセージ）を受信すると、当該メッセージに従って、フローエントリの追加、更新、削除等の処理を行う。また、ＯＦＳ４は、パケット受信時に、当該パケットのヘッダ情報と合致する条件がフローテーブルに存在しない場合には、制御サーバ３に対してPacketInメッセージを送信する。このPacketInメッセージは、受信したパケットに合致するフローエントリが存在しない場合に、制御サーバ３にパケットの処理方法を問い合わせるために送信されるメッセージである。このメッセージに対する応答として制御サーバ３からフローエントリ変更メッセージが送られてくると、ＯＦＳ４は当該メッセージに従ってフローエントリの追加処理を行う。
【００２４】
１−３．端末５の構成
端末５は、ＯＦＳ４を介して互いに通信を行うコンピュータ装置である。端末５は、例えば、ＣＰＵ（Central Processing Unit）等の演算装置と、ＨＤＤ（Hard Disk Drive）等の記憶装置と、キーボードやマウス等の入力装置と、液晶ディスプレイ等の表示装置と、ネットワークカード等の通信インタフェースを備える。
【００２５】
１−４．ＩＰＳ６の構成
ＩＰＳ６は、ＳＤＮネットワーク１０への不正侵入を防止するセキュリティ機器である。ＩＰＳ６は、侵入検知時には通信の遮断などの防御をリアルタイムに行い、管理者への通知やログの記録を行う。
【００２６】
１−５．ＷＡＦ７の構成
ＷＡＦ７は、ＳＤＮネットワーク１０への不正アクセスを防止するためのファイアウォールである。ＷＡＦ７は特に、Ｗｅｂアプリケーションのやり取りを把握、管理することによって不正侵入を防止する。
【００２７】
１−６．Ｃａｐｔｕｒｅツール８の構成
Ｃａｐｔｕｒｅツール８は、パケットキャプチャツールである。Ｃａｐｔｕｒｅツール８は、ＳＤＮネットワーク１０を流れるパケットを捕獲して中身を表示したり解析、集計などを行う。
【００２８】
１−７．Ｐｒｏｘｙサーバ１の構成
Ｐｒｏｘｙサーバ１は、ＳＤＮネットワーク１０内の端末５による外部ネットワークへのアクセスを中継する装置であって、そのアクセスログを記録する。
【００２９】
１−８．管理サーバ２の構成
図３は、管理サーバ２の機能構成の一例を示す図である。管理サーバ２は、同図に示されるように、収集部２１と、判断部２２と、実行部２３という機能を備える。これらの機能は、例えば、ＣＰＵ等の演算装置によりプログラムが実行されることにより実現される。
【００３０】
収集部２１は、Ｐｒｏｘｙサーバ１とＣａｐｔｕｒｅツール８からはsyslogを収集し、ＩＰＳ６とＷＡＦ７からはsyslogとＲＥＳＴ（Representational State Transfer）ベースのログを収集し、収集したログ情報をログデータベースＤＢ１に記録する。
【００３１】
判断部２２は、ログデータベースＤＢ１に記録されたログ情報を基に、ＳＤＮネットワーク１０内で発生する各通信の脅威を判断する。具体的には、以下に例示する判断基準を参照して各通信の脅威を判断する。各判断基準は、ノード、攻撃名、日時、ユーザ定義状態等の各パラメータにより定義される。なお、以下の判断基準に記載の「装置」は、アプライアンス（具体的には、ＩＰＳ６、ＷＡＦ７又はＣａｐｔｕｒｅツール８）とＰｒｏｘｙサーバ１のうちのいずれかを指す。
【００３２】
（１）カウントを用いた条件
［「何れかの端末」から「検出対象の何れかのログ」が「６０分以内」に「５回以上」検出されたら］、［「端末状態をグレー」とする］
（２）複数ログ組合せを用いた条件
［「何れかの端末」から「６０分以内」で「装置Ａのログ１」と「装置Ｂのログ２」と「装置Ｃのログ３」が検出されたら］、［「端末状態をブラック」とする］
（３）端末状態を用いた条件
［「端末状態＝グレーの端末」から「検出対象の何れかのログ」が検出されたら］、［「端末状態をブラック」とする］
（４）日付を用いた条件
［「何れかの端末」から「営業時間外１９：００〜翌８：００」に「装置Ａのログ４」が検出されたら］、［「端末状態をグレー」とする］
（５）特定端末を用いた条件
［「端末１」から「装置Ａのログ３」が検出されたら］、［「端末状態をグレー」とする］
【００３３】
判断部２２は、各通信の脅威を判断すると、判断された脅威に基づいて、その通信のパケットを転送すべきアプライアンスを決定する。例えば、ブラックと判断された通信については、ＩＰＳ６とＣａｐｔｕｒｅツール８を選択し、グレーと判断された通信については、ＩＰＳ６を選択し、いずれにも該当しない通信については、アプライアンスを選択しない。
【００３４】
実行部２３は、判断部２２により脅威を認められた通信を特定するための情報（送信元ＭＡＣアドレスと送信元ＩＰアドレス）と、当該通信のパケットを転送すべきアプライアンスの名称とを制御サーバ３に通知する。なお、実行部２３は、判断部２２により脅威を認められた通信を特定するための情報として、送信先ＭＡＣアドレスと送信先ＩＰアドレスとをさらに制御サーバ３に通知してもよい。
【００３５】
なお、本実施形態では、判断部２２により各通信の脅威と、パケットが転送されるべきアプライアンスとが判断されているが、これらの判断は管理サーバ２の管理者によりなされてもよい。例えば、判断部２２は、上記の判断基準に基づいて各通信のスコア値を算出し、実行部２３は、判断部２２により算出されたスコア値を管理者に提示して、管理者による判断を仰いでもよい。
【００３６】
１−９．制御サーバ３の構成
制御サーバ３は、OpenFlowコントローラである。より具体的には、OpenFlow仕様に準拠した制御装置であって、複数のＯＦＳ４の振る舞いを一括して管理する制御装置である。制御サーバ３は、ＳＤＮネットワーク１０におけるデータ転送の経路計算を行って、計算した経路に沿ってデータ転送が行われるように各ＯＦＳ４を制御する。
【００３７】
図４は、制御サーバ３の機能構成の一例を示す図である。制御サーバ３は、同図に示されるように、トポロジ情報テーブルＤＢ２と、アプライアンス情報テーブルＤＢ３と、経路制御テーブルＤＢ４と、処理実施テーブルＤＢ５とを備える。また、制御サーバ３は、情報取得部３１と、機器特定部３２と、経路制御情報取得部３３と、処理取得部３４と、トポロジ情報取得部３５と、経路制御計算部３６と、フローエントリ更新部３７という機能を備える。これらの機能は、例えば、ＣＰＵ等の演算装置によりプログラムが実行されることにより実現される。
【００３８】
トポロジ情報テーブルＤＢ２は、ＳＤＮネットワーク１０の構成図を示す情報を保存するテーブルである。言い換えると、ＳＤＮネットワーク１０を構成するＯＦＳ４間の物理リンクを示す物理リンク情報を保存するテーブルである。このトポロジ情報テーブルＤＢ２を構成する各レコードは、例えば、送信元ＯＦＳ４のＤＰＩＤと、送信元ＯＦＳ４の送信ポート番号と、宛先ＯＦＳ４のＤＰＩＤと、宛先ＯＦＳ４の受信ポート番号の各フィールドにより構成される。ここで、ＤＰＩＤ（Datapath ID）は、ＯＦＳ４を一意に識別するための識別情報である。トポロジ情報テーブルＤＢ２は、ＯＦＳ４がＳＤＮネットワーク１０に追加されると新たなレコードが追加され、ＯＦＳ４が故障したりＳＤＮネットワーク１０から除去されるとレコードが削除される。また、ＯＦＳ４間の物理リンクが追加されると新たなレコードが追加され、物理リンクが切断されるとレコードが削除される。
【００３９】
制御サーバ３は、死活監視パケットによりＯＦＳ４の故障等を検知する。具体的な手順としては、まず制御サーバ３は、全てのＯＦＳ４に対して一定の間隔で死活監視メッセージを送信する。ＯＦＳ４は、当該メッセージを受信すると即座に制御サーバ３に対して応答する。しかし、故障しているＯＦＳ４については、制御サーバ３は応答メッセージを受信できないため、当該ＯＦＳ４が故障していることを認識することができる。制御サーバ３は、逆に、死活監視パケットによりＯＦＳ４の追加を検知することもできる。
【００４０】
また、制御サーバ３は、トポロジ検出用パケットを利用してＯＦＳ４間のリンクが切断されたことを認識する。具体的な手順としては、まず制御サーバ３は、全てのＯＦＳ４に対して一定の間隔でトポロジ検出用パケットを送信する。ＯＦＳ４は、トポロジ検出用パケットを受信すると隣接するＯＦＳ４に転送しようとする。しかし、リンクが切断されている場合には、隣接するＯＦＳ４にパケットを転送することができない。その結果、パケットの転送はそこで止まってしまい、制御サーバ３はトポロジ検出用パケットを受信できないため、リンクが切断されたことを認識することができる。制御サーバ３は、逆に、トポロジ検出用パケットを利用してＯＦＳ４間のリンクが追加されたことも認識することができる。
【００４１】
図５は、アプライアンス情報テーブルＤＢ３の一例を示す図である。このアプライアンス情報テーブルＤＢ３は、アプライアンスとＯＦＳ４の接続先情報とを対応付けて格納するテーブルである。このアプライアンス情報テーブルＤＢ３を構成する各レコードは、対象機器と、接続先と、経路制御タイプと、機器ＩＤの各フィールドにより構成される。ここで、アプライアンス（言い換えると、機器）とは、本実施形態では、セキュリティ機器（具体的には、ＩＰＳ６、ＷＡＦ７及びＣａｐｔｕｒｅツール８）を指す。経路制御タイプは、パケットのＴｏｓフィールドに記述される値（Ｔｏｓ値）である。機器ＩＤは、各機器を一意に識別する識別情報である。アプライアンス情報テーブルＤＢ３は、アプライアンスがＳＤＮネットワーク１０に追加されると新たなレコードが追加され、アプライアンスが故障したりＳＤＮネットワーク１０から除去されるとレコードが削除される。
【００４２】
図６は、経路制御テーブルＤＢ４の一例を示す図である。この経路制御テーブルＤＢ４は、アプライアンスと、経路制御に使うパラメータとを対応付けて格納するテーブルである。この経路制御テーブルＤＢ４を構成する各レコードは、機器名称と、機器ＩＤと、ＩＰアドレスと、Ｃｏｓの各フィールドにより構成される。ここで、Ｃｏｓは、パケットのＣｏｓフィールドに記述される値であって、機器を一意に識別する識別番号である。経路制御テーブルＤＢ４は、アプライアンスがＳＤＮネットワーク１０に追加されると新たなレコードが追加され、アプライアンスが故障したりＳＤＮネットワーク１０から除去されるとレコードが削除される。
【００４３】
図７は、処理実施テーブルＤＢ５の一例を示す図である。この処理実施テーブルＤＢ５は、アプライアンスと、パケットの処理とを対応付けて格納するテーブルである。この処理実施テーブルＤＢ５を構成する各レコードは、対象機器と処理の各フィールドにより構成される。ここで、同図に示される処理「迂回」は、パケットをアプライアンス経由で転送させることを指し、処理「コピー」は、コピーパケットをアプライアンスに転送させることを指す。迂回の場合は、送信元からアプライアンスを経由し宛先までの経路制御を行うようフローエントリが生成される。一方、コピーの場合は、送信元から宛先まで経路制御を行うようフローエントリが生成され、かつアプライアンスにパケットを複製して届けられるようにフローエントリが生成される。
【００４４】
情報取得部３１は、管理サーバ２から通知された、脅威を認められた通信を特定するための情報（送信元ＭＡＣアドレスと送信元ＩＰアドレス）と、当該通信のパケットを転送すべきアプライアンスの名称を取得する。管理サーバ２から、送信先ＭＡＣアドレスと送信先ＩＰアドレスも通知された場合には、これらも取得する。
【００４５】
機器特定部３２は、情報取得部３１により取得されたアプライアンスの名称を検索キーとして、アプライアンス情報テーブルＤＢ３から、接続先、経路制御タイプ及び機器ＩＤを取得する。この際、アプライアンス情報テーブルＤＢ３に該当する機器が複数存在する場合には、機器特定部３２は、トポロジ情報テーブルＤＢ２を参照して、送信元から各機器までの最短経路パスを計算して、送信元から近い方の機器の情報を取得する。例えば、図１に示されるＳＤＮネットワーク１０において、送信元が端末５Ｂであり、ＩＰＳ６ＡとＩＰＳ６Ｂのうちのいずれかが選択される場合には、ＩＰＳ６Ｂが選択される。なおここで、送信元は、情報取得部３１により取得された送信元ＭＡＣアドレスや送信元ＩＰアドレスを用いて特定される。
【００４６】
経路制御情報取得部３３は、機器特定部３２により取得された機器ＩＤを検索キーとして、経路制御テーブルＤＢ４から、ＩＰアドレス、Ｃｏｓ値またはこれらの組み合わせを取得する。
【００４７】
処理取得部３４は、情報取得部３１により取得されたアプライアンスの名称を検索キーとして、処理実施テーブルＤＢ５から、処理を取得する。
【００４８】
トポロジ情報取得部３５は、トポロジ情報テーブルＤＢ２から現在のＳＤＮネットワーク１０の構成情報を取得する。
【００４９】
経路制御計算部３６（本発明に係る「経路制御部」と「経路決定部」の一例である。）は、情報取得部３１〜トポロジ情報取得部３５により取得された情報に基づいて経路制御計算を行い、フローエントリを生成する。より具体的には、情報取得部３１により取得された送信元ＭＡＣアドレス及び送信元ＩＰアドレスと、経路制御情報取得部３３により取得されたＩＰアドレス及び／又はＣｏｓ値と、処理取得部３４により取得された処理（「迂回」、「コピー」等）とに基づいて経路制御計算を行い、フローエントリを生成する。ここで生成されるフローエントリは、例えば、ＯＦＳ４Ｄを対象として生成されるが、必要に応じて、このフローエントリにより影響を受ける他のＯＦＳ４についてもフローエントリを生成する。
【００５０】
例えば、経路制御計算部３６は、ＯＦＳ４が、第１送信先情報が第１フィールドに記述されているパケットを受信した場合に、当該パケットの第２フィールドに第２送信先情報を書き込み、かつ、第３フィールドの値を、第１フィールドを指定する値から第２フィールドを指定する値に変更することで、当該パケットの送信先を第１送信先から第２送信先に変更させるように当該ＯＦＳ４を制御するフローエントリを生成する。
【００５１】
ここで、第１送信先情報は、例えば、送信先ＩＰアドレスや送信先ＭＡＣアドレスであり、第１フィールドは、例えば、送信先ＩＰアドレスや送信先ＭＡＣアドレスのヘッダフィールドである。第２送信先情報は、例えばＣｏｓ値であり、第２フィールドは、例えばＣｏｓフィールドである。第３フィールドは、例えば、Ｔｏｓフィールドである。
【００５２】
フローエントリ更新部３７は、ＯＦＳ４に対してフローエントリ変更メッセージを送信して、フローエントリ更新部３７により生成されたフローエントリをＯＦＳ４に記憶させる。
以上が、制御サーバ３の機能構成についての説明である。
【００５３】
ここで、以上説明した制御サーバ３によるフローエントリの更新の例について説明する。まず、図８及び９を参照して、更新の第１の例について説明する。図８は、フローエントリの更新前の各ＯＦＳ４のフローテーブルと、パケットの転送経路とを示す図であり、図９は、フローエントリの更新後の各ＯＦＳ４のフローテーブルと、パケットの転送経路とを示す図である。この第１の例では、パケットの送信元が端末５Ｂであり（すなわち、送信元ＩＰが「Ｂ」であり）、送信先が端末５Ｃである場合に（すなわち、宛先ＩＰアドレスが「Ｃ」である場合に）、当該パケットがＩＰＳ６Ｂを迂回するようにフローエントリが更新される場合を想定している。また、パケットのＴｏｓ値は送信時、「００００００」である場合を想定している。
【００５４】
図８に示される更新前の状態では、端末５Ｂから送信されたパケットがポート２を介してＯＦＳ４Ｄにより受信されると、ＯＦＳ４Ｄは、当該パケットのＴｏｓ値は「００００００」であることから、宛先情報としてＣｏｓ値を参照しない。ＯＦＳ４Ｄは、当該パケットの宛先ＩＰアドレスのフィールド値「Ｃ」と合致する条件を有するフローエントリＦＥ３を特定し、このフローエントリＦＥ３の動作指示に従ってポート３からパケットを出力する。このポート３は端末５Ｃと接続されているため、パケットは端末５Ｃに転送されることになる。
【００５５】
図９に示される更新後の状態では、端末５Ｂから送信されたパケットがポート２を介してＯＦＳ４Ｄにより受信されると、ＯＦＳ４Ｄは、当該パケットのＴｏｓ値は「００００００」であることから、宛先情報としてＣｏｓ値を参照しない。本例では、当該パケットの宛先ＩＰアドレスのフィールド値が「Ｃ」であることから、フローエントリＦＥ３の条件に合致するとともに、入力ポートが「２」であり当該パケットの送信元ＩＰアドレスのフィールド値が「Ｂ」であることから、フローエントリＦＥ４の条件にもまた合致するが、フローエントリＦＥ４の方が優先度が高いため、ＯＦＳ４ＤはフローエントリＦＥ４を特定する。そして、ＯＦＳ４Ｄは、フローエントリＦＥ４の動作指示に従って処理を実行する。具体的には、当該パケットのＴｏｓ値を「０００００１」に変更し、Ｃｏｓ値を「０００１００」に変更し、変更したパケットをポート５から出力する。
【００５６】
ポート５から出力されたパケットは、ポート２を介してＯＦＳ４Ｂにより受信される。ＯＦＳ４Ｂは、受信したパケットのＴｏｓ値が「０００００１」であることから、宛先情報としてＣｏｓ値を参照する。ＯＦＳ４Ｂは、Ｃｏｓ値「０００１００」と合致する条件を有するフローエントリＦＥ５を特定し、特定したフローエントリＦＥ５の動作指示に従ってポート１からパケットを出力する。このポート１はＩＰＳ６Ｂと接続されているため、パケットはＩＰＳ６Ｂに転送されることになる。
【００５７】
ＩＰＳ６Ｂを経由してポート１を介してパケットを受信したＯＦＳ４Ｂは、受信したパケットのＴｏｓ値が「０００００１」であることから、宛先情報としてＣｏｓ値を参照する。本例では、Ｃｏｓ値が「０００１００」であることから、フローエントリＦＥ５の条件に合致するとともに、入力ポートが「１」であり当該パケットの宛先ＩＰアドレスのフィールド値が「Ｃ」であることからフローエントリＦＥ６の条件にもまた合致するが、フローエントリＦＥ６の方が優先度が高いため、ＯＦＳ４ＢはフローエントリＦＥ６を特定する。そして、ＯＦＳ４Ｂは、フローエントリＦＥ６の動作指示に従って処理を実行する。具体的には、当該パケットのＴｏｓ値を「００００００」に戻し、変更したパケットをポート２から出力する。
【００５８】
ポート２から出力されたパケットは、ポート５を介してＯＦＳ４Ｄにより受信される。ＯＦＳ４Ｄは、受信したパケットのＴｏｓ値が「００００００」であることから、宛先情報としてＣｏｓ値を参照しない。ＯＦＳ４Ｄは、当該パケット宛先ＩＰアドレスのフィールド値「Ｃ」と合致する条件を有するフローエントリＦＥ３を特定し、このフローエントリＦＥ３の動作指示に従ってポート３からパケットを出力する。このポート３は端末５Ｃと接続されているため、パケットは端末５Ｃに転送される。
以上が、フローエントリ更新の第１の例についての説明である。
【００５９】
次に、フローエントリ更新の第２の例について、図８及び１０を参照して説明する。図８は、上述のように、フローエントリの更新前の各ＯＦＳ４のフローテーブルと、パケットの転送経路とを示す図であり、図１０は、フローエントリの更新後の各ＯＦＳ４のフローテーブルと、パケットの転送経路とを示す図である。この第２の例では、パケットの送信元が端末５Ｂであり（すなわち、送信元ＩＰが「Ｂ」であり）、送信先が端末５Ｃである場合に（すなわち、宛先ＩＰアドレスが「Ｃ」である場合に）、当該パケットのコピーパケットがＣａｐｔｕｒｅツール８に転送されるようにフローエントリが更新される場合を想定している。また、パケットのＴｏｓ値は送信時、「００００００」である場合を想定している。
【００６０】
図８に示される更新前の状態については上述の通りである。
【００６１】
図１０に示される更新後の状態では、端末５Ｂから送信されたパケットがポート２を介してＯＦＳ４Ｄにより受信されると、ＯＦＳ４Ｄは、当該パケットのＴｏｓ値は「００００００」であることから、宛先情報としてＣｏｓ値を参照しない。本例では、パケットの宛先ＩＰアドレスのフィールド値が「Ｃ」であることから、フローエントリＦＥ３の条件に合致するとともに、送信元ＩＰアドレスが「Ｂ」であり宛先ＩＰアドレスが「Ｃ」であることから、フローエントリＦＥ７の条件にもまた合致するが、フローエントリＦＥ７の方が優先度が高いため、ＯＦＳ４ＤはフローエントリＦＥ７を特定する。そして、ＯＦＳ４Ｄは、フローエントリＦＥ７の動作指示に従って処理を実行する。具体的には、当該パケットをポート３から出力する。このポート３は端末５Ｃと接続されているため、パケットは端末５Ｃに転送される。また、ＯＦＳ４Ｄは、当該パケットのコピーを生成し、そのパケットのＴｏｓ値を「０００００１」に変更し、Ｃｏｓ値を「００００１０」に変更し、変更したパケットをポート４から出力する。
【００６２】
ポート４から出力されたパケットは、ポート３を介してＯＦＳ４Ｃにより受信される。ＯＦＳ４Ｃは、受信したパケットのＴｏｓ値が「０００００１」であることから、宛先情報としてＣｏｓ値を参照する。ＯＦＳ４Ｃは、Ｃｏｓ値「００００１０」と合致する条件を有するフローエントリＦＥ８を特定し、特定したフローエントリＦＥ８の動作指示に従ってポート１からパケットを出力する。このポート１はＣａｐｔｕｒｅツール８と接続されているため、パケットはＣａｐｔｕｒｅツール８に転送されることになる。
以上が、フローエントリ更新の第２の例についての説明である。
【００６３】
次に、フローエントリ更新の第３の例について、図１１及び１２を参照して説明する。図１１は、フローエントリの更新前の各ＯＦＳ４のフローテーブルと、パケットの転送経路とを示す図であり、図１２は、フローエントリの更新後の各ＯＦＳ４のフローテーブルと、パケットの転送経路とを示す図である。
【００６４】
この第３の例では、２つの通信についてフローエントリが更新される場合を想定している。一方の通信は、パケットの送信元が端末５Ｂであり（すなわち、送信元ＩＰが「Ｂ」であり）、送信先が端末５Ｃであり（すなわち、宛先ＩＰアドレスが「Ｃ」であり）、パケットがＩＰＳ６Ｂを迂回するようにフローエントリが更新される場合を想定している。他の通信は、パケットの送信元が端末５Ｄであり（すなわち、送信元ＩＰが「Ｄ」であり）、送信先が端末５Ｃであり（すなわち、宛先ＩＰアドレスが「Ｃ」であり）、パケットがＩＰＳ６Ａを迂回するようにフローエントリが更新される場合を想定している。なお、パケットのＴｏｓ値は、いずれの通信においても送信時においては「００００００」である。
【００６５】
図１１に示される更新前の状態において、端末５Ｂから端末５Ｃへの通信については、上掲の図８を参照して説明した通りである。一方、端末５Ｄから端末５Ｃへの通信については、端末５Ｄから送信されたパケットがポート４を介してＯＦＳ４Ｃにより受信されると、ＯＦＳ４Ｃは、当該パケットのＴｏｓ値は「００００００」であることから、宛先情報としてＣｏｓ値を参照しない。ＯＦＳ４Ｃは、当該パケットの宛先ＩＰアドレスのフィールド値「Ｃ」と合致する条件を有するフローエントリＦＥ１０を特定し、このフローエントリＦＥ１０の動作指示に従ってポート３からパケットを出力する。
【００６６】
ポート３から出力されたパケットは、ポート４を介してＯＦＳ４Ｄにより受信される。ＯＦＳ４Ｄは、受信したパケットのＴｏｓ値が「００００００」であることから、宛先情報としてＣｏｓ値を参照しない。ＯＦＳ４Ｄは、当該パケットの宛先ＩＰアドレスのフィールド値「Ｃ」と合致する条件を有するフローエントリＦＥ３を特定し、このフローエントリＦＥ３の動作指示に従ってポート３からパケットを出力する。このポート３は端末５Ｃと接続されているため、パケットは端末５Ｃに転送される。
【００６７】
次に、図１２に示される更新後の状態において、端末５Ｂから端末５Ｃへの通信については、上掲の図９を参照して説明した通りである。一方、端末５Ｄから端末５Ｃへの通信については、端末５Ｄから送信されたパケットがポート４を介してＯＦＳ４Ｃにより受信されると、ＯＦＳ４Ｃは、当該パケットのＴｏｓ値は「００００００」であることから、宛先情報としてＣｏｓ値を参照しない。本例では、当該パケットの宛先ＩＰアドレスのフィールド値が「Ｃ」であることから、フローエントリＦＥ１０の条件に合致するとともに、入力ポートが「４」であり当該パケットの送信元ＩＰアドレスのフィールド値が「Ｄ」であることから、フローエントリＦＥ１１の条件にもまた合致するが、フローエントリＦＥ１１の方が優先度が高いため、ＯＦＳ４ＣはフローエントリＦＥ１１を特定する。そして、ＯＦＳ４Ｃは、フローエントリＦＥ１１の動作指示に従って処理を実行する。具体的には、当該パケットのＴｏｓ値を「０００００１」に変更し、Ｃｏｓ値を「０００００１」に変更し、変更したパケットをポート２から出力する。
【００６８】
ポート２から出力されたパケットは、ポート３を介してＯＦＳ４Ａにより受信される。ＯＦＳ４Ａは、受信したパケットのＴｏｓ値が「０００００１」であることから、宛先情報としてＣｏｓ値を参照する。ＯＦＳ４Ａは、Ｃｏｓ値「０００００１」と合致する条件を有するフローエントリＦＥ１２を特定し、特定したフローエントリＦＥ１２の動作指示に従ってポート１からパケットを出力する。このポート１はＩＰＳ６Ａと接続されているため、パケットはＩＰＳ６Ａに転送されることになる。
【００６９】
ＩＰＳ６Ａを経由してポート１を介してパケットを受信したＯＦＳ４Ａは、受信したパケットのＴｏｓ値が「０００００１」であることから、宛先情報としてＣｏｓ値を参照する。本例では、Ｃｏｓ値が「０００００１」であることから、フローエントリＦＥ１２の条件に合致するとともに、入力ポートが「１」であり当該パケットの宛先ＩＰアドレスのフィールド値が「Ｃ」であることからフローエントリＦＥ１３の条件にもまた合致するが、フローエントリＦＥ１３の方が優先度が高いため、ＯＦＳ４ＡはフローエントリＦＥ１３を特定する。そして、ＯＦＳ４Ａは、フローエントリＦＥ１３の動作指示に従って処理を実行する。具体的には、当該パケットのＴｏｓ値を「００００００」に戻し、変更したパケットをポート３から出力する。
【００７０】
ポート３から出力されたパケットは、ポート２を介してＯＦＳ４Ｃにより受信される。ＯＦＳ４Ｃは、受信したパケットのＴｏｓ値が「００００００」であることから、宛先情報としてＣｏｓ値を参照しない。ＯＦＳ４Ｃは、当該パケットの宛先ＩＰアドレスのフィールド値「Ｃ」と合致する条件を有するフローエントリＦＥ１０を特定し、このフローエントリＦＥ１０の動作指示に従ってポート３からパケットを出力する。
【００７１】
ポート３から出力されたパケットは、ポート４を介してＯＦＳ４Ｄにより受信される。ＯＦＳ４Ｄは、受信したパケットのＴｏｓ値が「００００００」であることから、宛先情報としてＣｏｓ値を参照しない。ＯＦＳ４Ｄは、当該パケットの宛先ＩＰアドレスのフィールド値「Ｃ」と合致する条件を有するフローエントリＦＥ３を特定し、このフローエントリＦＥ３の動作指示に従ってポート３からパケットを出力する。このポート３は端末５Ｃと接続されているため、パケットは端末５Ｃに転送される。
以上が、フローエントリ更新の第３の例についての説明である。
【００７２】
以上説明した実施形態によれば、パケット送信時に設定された送信先情報を変更せずに当該パケットの送信先を変えることができる。
【００７３】
２．変形例
上記の実施形態は、以下に示すように変形してもよい。また、以下の変形例は互いに組み合わせてもよい。
【００７４】
２−１．変形例１
上記の実施形態において、制御サーバ３は、ＯＦＳ４間のトラフィックをリアルタイムで収集し、所定の閾値を超えた場合に経路制御を行うようにしてもよい。例えば、ＳＤＮネットワーク１０の各パスについて以下のように閾値を設定し、閾値未満である場合には最短経路パスに基づく経路制御を行い、閾値以上である場合には、送信元端末５に紐付いて経路制御を行うようにしてもよい。
【００７５】
（１）ＯＦＳ４Ａ ⇔ ＯＦＳ４Ｂ ≦ ９００Ｍｂｐｓ
（２）ＯＦＳ４Ａ ⇔ ＯＦＳ４Ｃ ≦ ８００Ｍｂｐｓ
（３）ＯＦＳ４Ｂ ⇔ ＯＦＳ４Ｄ ≦ ８００Ｍｂｐｓ
（４）ＯＦＳ４Ｃ ⇔ ＯＦＳ４Ｄ ≦ ９００Ｍｂｐｓ
【００７６】
以下、図１３及び１４を参照して、トラフィックに基づく経路制御の例について説明する。図１３は、フローエントリの更新前の各ＯＦＳ４のフローテーブルと、パケットの転送経路とを示す図であり、図１４は、フローエントリの更新後の各ＯＦＳ４のフローテーブルと、パケットの転送経路とを示す図である。本例ではＯＦＳ４Ｂ及びＯＦＳ４Ｄ間のトラフィックが閾値を越えている場合を想定している。
【００７７】
この例では、ＩＰＳ６Ｂを経由する２つの通信のうちの一方の通信についてフローエントリが更新される場合を想定している。フローエントリが更新される通信は、パケットの送信元が端末５Ｂであり（すなわち、送信元ＩＰが「Ｂ」であり）、送信先が端末５Ｃであり（すなわち、宛先ＩＰアドレスが「Ｃ」であり）、パケットがＩＰＳ６Ｂに代えてＩＰＳ６Ａを迂回するようにフローエントリが更新される場合を想定している。フローエントリが更新されない通信は、パケットの送信元が端末５Ａであり（すなわち、送信元ＩＰが「Ａ」であり）、送信先が端末５Ｃである（すなわち、宛先ＩＰアドレスが「Ｃ」である）通信である。なお、パケットのＴｏｓ値は、いずれの通信においても送信時においては「００００００」である。
【００７８】
図１３に示される更新前の状態において、ＩＰＳ６Ｂを経由する端末５Ｂから端末５Ｃへの通信については、上掲の図９を参照して説明した通りである。一方、ＩＰＳ６Ｂを経由する端末５Ａから端末５Ｃへの通信については、端末５Ａから送信されたパケットがポート１を介してＯＦＳ４Ｄにより受信されると、ＯＦＳ４Ｄは、当該パケットのＴｏｓ値は「００００００」であることから、宛先情報としてＣｏｓ値を参照しない。本例では、当該パケットの宛先ＩＰアドレスのフィールド値が「Ｃ」であることから、フローエントリＦＥ３の条件に合致するとともに、入力ポートが「１」であり当該パケットの送信元ＩＰアドレスのフィールド値が「Ａ」であることから、フローエントリＦＥ１４の条件にもまた合致するが、フローエントリＦＥ１４の方が優先度が高いため、ＯＦＳ４ＤはフローエントリＦＥ１４を特定する。そして、ＯＦＳ４Ｄは、フローエントリＦＥ１４の動作指示に従って処理を実行する。具体的には、当該パケットのＴｏｓ値を「０００００１」に変更し、Ｃｏｓ値を「０００１００」に変更し、変更したパケットをポート５から出力する。
【００７９】
ポート５から出力されたパケットは、ポート２を介してＯＦＳ４Ｂにより受信される。ＯＦＳ４Ｂは、受信したパケットのＴｏｓ値が「０００００１」であることから、宛先情報としてＣｏｓ値を参照する。ＯＦＳ４Ｂは、Ｃｏｓ値「０００１００」と合致する条件を有するフローエントリＦＥ５を特定し、特定したフローエントリＦＥ５の動作指示に従ってポート１からパケットを出力する。このポート１はＩＰＳ６Ｂと接続されているため、パケットはＩＰＳ６Ｂに転送される。
【００８０】
ＩＰＳ６Ｂを経由してポート１を介してパケットを受信したＯＦＳ４Ｂは、受信したパケットのＴｏｓ値が「０００００１」であることから、宛先情報としてＣｏｓ値を参照する。本例では、Ｃｏｓ値が「０００１００」であることから、フローエントリＦＥ５の条件に合致するとともに、入力ポートが「１」であり当該パケットの宛先ＩＰアドレスのフィールド値が「Ｃ」であることからフローエントリＦＥ６の条件にもまた合致するが、フローエントリＦＥ６の方が優先度が高いため、ＯＦＳ４ＢはフローエントリＦＥ６を特定する。そして、ＯＦＳ４Ｂは、フローエントリＦＥ６の動作指示に従って処理を実行する。具体的には、当該パケットのＴｏｓ値を「００００００」に戻し、変更したパケットをポート２から出力する。
【００８１】
ポート２から出力されたパケットは、ポート５を介してＯＦＳ４Ｄにより受信される。ＯＦＳ４Ｄは、受信したパケットのＴｏｓ値が「００００００」であることから、宛先情報としてＣｏｓ値を参照しない。ＯＦＳ４Ｄは、当該パケット宛先ＩＰアドレスのフィールド値「Ｃ」と合致する条件を有するフローエントリＦＥ３を特定し、このフローエントリＦＥ３の動作指示に従ってポート３からパケットを出力する。このポート３は端末５Ｃと接続されているため、パケットは端末５Ｃに転送される。
【００８２】
次に、図１４に示される更新後の状態において、ＩＰＳ６Ｂを経由する端末５Ｂから端末５Ｃへの通信については、端末５Ｂから送信されたパケットがポート２を介してＯＦＳ４Ｄにより受信されると、ＯＦＳ４Ｄは、当該パケットのＴｏｓ値は「００００００」であることから、宛先情報としてＣｏｓ値を参照しない。本例では、当該パケットの宛先ＩＰアドレスのフィールド値が「Ｃ」であることから、フローエントリＦＥ３の条件に合致するとともに、入力ポートが「２」であり当該パケットの送信元ＩＰアドレスのフィールド値が「Ｂ」であることから、フローエントリＦＥ１５の条件にもまた合致するが、フローエントリＦＥ１５の方が優先度が高いため、ＯＦＳ４ＤはフローエントリＦＥ１５を特定する。そして、ＯＦＳ４Ｄは、フローエントリＦＥ１５の動作指示に従って処理を実行する。具体的には、当該パケットのＴｏｓ値を「０００００１」に変更し、Ｃｏｓ値を「０００００１」に変更し、変更したパケットをポート４から出力する。
【００８３】
ポート４から出力されたパケットは、ポート３を介してＯＦＳ４Ｃにより受信される。ＯＦＳ４Ｃは、受信したパケットのＴｏｓ値が「０００００１」であることから、宛先情報としてＣｏｓ値を参照する。ＯＦＳ４Ｃは、Ｃｏｓ値「０００００１」と合致する条件を有するフローエントリＦＥ１６を特定し、特定したフローエントリＦＥ１６の動作指示に従ってポート２からパケットを出力する。
【００８４】
ポート２から出力されたパケットは、ポート３を介してＯＦＳ４Ａにより受信される。ＯＦＳ４Ａは、受信したパケットのＴｏｓ値が「０００００１」であることから、宛先情報としてＣｏｓ値を参照する。ＯＦＳ４Ａは、Ｃｏｓ値「０００００１」と合致する条件を有するフローエントリＦＥ１２を特定し、特定したフローエントリＦＥ１２の動作指示に従ってポート１からパケットを出力する。このポート１はＩＰＳ６Ａと接続されているため、パケットはＩＰＳ６Ｂに転送される。
【００８５】
ＩＰＳ６Ａを経由してポート１を介してパケットを受信したＯＦＳ４Ａは、受信したパケットのＴｏｓ値が「０００００１」であることから、宛先情報としてＣｏｓ値を参照する。本例では、Ｃｏｓ値が「０００００１」であることから、フローエントリＦＥ１２の条件に合致するとともに、入力ポートが「１」であり当該パケットの宛先ＩＰアドレスのフィールド値が「Ｃ」であることからフローエントリＦＥ１３の条件にもまた合致するが、フローエントリＦＥ１３の方が優先度が高いため、ＯＦＳ４ＡはフローエントリＦＥ１３を特定する。そして、ＯＦＳ４Ａは、フローエントリＦＥ１３の動作指示に従って処理を実行する。具体的には、当該パケットのＴｏｓ値を「００００００」に戻し、変更したパケットをポート３から出力する。
【００８６】
ポート３から出力されたパケットは、ポート２を介してＯＦＳ４Ｃにより受信される。ＯＦＳ４Ｃは、受信したパケットのＴｏｓ値が「００００００」であることから、宛先情報としてＣｏｓ値を参照しない。ＯＦＳ４Ｃは、当該パケットの宛先ＩＰアドレスのフィールド値「Ｃ」と合致する条件を有するフローエントリＦＥ１０を特定し、このフローエントリＦＥ１０の動作指示に従ってポート３からパケットを出力する。
【００８７】
ポート３から出力されたパケットは、ポート４を介してＯＦＳ４Ｄにより受信される。ＯＦＳ４Ｄは、受信したパケットのＴｏｓ値が「００００００」であることから、宛先情報としてＣｏｓ値を参照しない。ＯＦＳ４Ｄは、当該パケットの宛先ＩＰアドレスのフィールド値「Ｃ」と合致する条件を有するフローエントリＦＥ３を特定し、このフローエントリＦＥ３の動作指示に従ってポート３からパケットを出力する。このポート３は端末５Ｃと接続されているため、パケットは端末５Ｃに転送される。
以上が、トラフィックに基づく経路制御についての説明である。
【００８８】
以上説明したように、制御サーバ３の経路制御計算部３６は、パケットが転送されるべき同種の機器が複数存在する場合には、当該複数の機器の中からトラフィックに基づいて一の機器を決定してもよい。本変形例によれば、上記の実施形態の係る経路制御の結果、特定のパスがトラフィックにより過密してしまい、エンド間の通信を行う上で支障をきたしてしまうといった問題が抑制される。すなわち、特定パスに対する帯域占有が防止される。
【００８９】
２−２．変形例２
上記の実施形態では、パケットのＴｏｓ値として「００００００」と「０００００１」が使用される例について説明したが、以下ではＴｏｓ値として「００００１０」が使用される例について説明する。具体的には、Ｔｏｓ値を「００００１０」とするパケットを、上記の実施形態で説明したトポロジ検出又はリンク生死確認用のパケット（以下、「管理用パケット」という。）として利用する例について説明する。
【００９０】
図１５は、Ｔｏｓ値を「００００１０」とするパケットを管理用パケットとして利用する場合について説明する図である。同図に示される例では、Ｃｏｓ値「０００００１」で識別されるルート１と、Ｃｏｓ値「００００１０」で識別されるルート２の２つのルートについてリンクの生死確認が行われる。なお、本例では、ＯＦＳ４ＡからＯＦＳ４Ｂへのパケットの転送は制御サーバ３がその都度ＯＦＳ４Ａに直接指示をするため、ＯＦＳ４Ａにフローエントリは書き込まれない。
【００９１】
まず、ルート１については、ＯＦＳ４Ａのポート１から出力されたパケットは、ポート１を介してＯＦＳ４Ｂにより受信される。ＯＦＳ４Ｂは、受信したパケットのＴｏｓ値が「００００１０」であることから、宛先情報としてＣｏｓ値を参照する。ＯＦＳ４Ｂは、Ｃｏｓ値「０００００１」と合致する条件を有するフローエントリＦＥ１９を特定し、特定したフローエントリＦＥ１９の動作指示に従ってポート３からパケットを出力する。
【００９２】
ポート３から出力されたパケットは、ポート１を介してＯＦＳ４Ｃにより受信される。ＯＦＳ４Ｃは、受信したパケットのＴｏｓ値が「００００１０」であることから、宛先情報としてＣｏｓ値を参照する。ＯＦＳ４Ｃは、Ｃｏｓ値「０００００１」と合致する条件を有するフローエントリＦＥ２１を特定し、特定したフローエントリＦＥ２１の動作指示に従ってポート３からパケットを出力する。
【００９３】
ポート３から出力されたパケットは、ポート３を介してＯＦＳ４Ａにより受信される。ＯＦＳ４Ａは、受信したパケットのＴｏｓ値が「００００１０」であることから、宛先情報としてＣｏｓ値を参照する。ＯＦＳ４Ａは、Ｃｏｓ値「０００００１」と合致する条件を有するフローエントリＦＥ１７を特定し、特定したフローエントリＦＥ１７の動作指示に従って制御サーバ３にパケットを出力する。
【００９４】
次に、ルート２については、ポート２から出力されたパケットは、ポート２を介してＯＦＳ４Ｂにより受信される。ＯＦＳ４Ｂは、受信したパケットのＴｏｓ値が「００００１０」であることから、宛先情報としてＣｏｓ値を参照する。ＯＦＳ４Ｂは、Ｃｏｓ値「００００１０」と合致する条件を有するフローエントリＦＥ２０を特定し、特定したフローエントリＦＥ２０の動作指示に従ってポート４からパケットを出力する。
【００９５】
ポート４から出力されたパケットは、ポート２を介してＯＦＳ４Ｃにより受信される。ＯＦＳ４Ｃは、受信したパケットのＴｏｓ値が「００００１０」であることから、宛先情報としてＣｏｓ値を参照する。ＯＦＳ４Ｃは、Ｃｏｓ値「００００１０」と合致する条件を有するフローエントリＦＥ２２を特定し、特定したフローエントリＦＥ２１の動作指示に従ってポート４からパケットを出力する。
【００９６】
ポート４から出力されたパケットは、ポート４を介してＯＦＳ４Ａにより受信される。ＯＦＳ４Ａは、受信したパケットのＴｏｓ値が「００００１０」であることから、宛先情報としてＣｏｓ値を参照する。ＯＦＳ４Ａは、Ｃｏｓ値「００００１０」と合致する条件を有するフローエントリＦＥ１８を特定し、特定したフローエントリＦＥ１８の動作指示に従って制御サーバ３にパケットを出力する。
以上が、管理用パケットの利用例についての説明である。
【００９７】
従来の管理用パケットでは、１パケットで１つのリンクしか生死確認することができず、リンク数が増えると管理用パケットが増大するという問題がある。しかし、Ｔｏｓ値を「００００１０」とするパケットを管理用パケットと定義することで、指定した任意のｎ個のリンクを１パケットで同時に生死確認を行うことができる。
【００９８】
なお、図１５に示されるフローエントリＦＥ１７〜ＦＥ２１は、Ｔｏｓ値を「００００００」又は「０００００１」とするパケット転送用のフローエントリと共存可能である。また、本変形例では、上記の実施形態と同様にＣｏｓフィールドを利用しているが、別のフィールドの値を利用してもよい。
【００９９】
２−３．変形例３
上記の実施形態に係る管理サーバ２の機能は、制御サーバ３が備えてもよい。この場合、制御サーバ３の経路制御計算部３６は、パケットが中継される通信のリスクの度合いに基づいて、パケットを転送すべきアプライアンスを決定してもよい。
【０１００】
２−４．変形例４
上記の実施形態ではアプライアンスとしてセキュリティ機器のみが想定されているが、通常のＰＣ等のその他の機器もアプライアンスとして採用されてもよい。
【０１０１】
２−５．変形例５
上記の実施形態に係るＳＤＮネットワーク１０及び制御サーバ３は、OpenFlow仕様に準拠するものとなっているが、ＳＤＮを実現するものであれば他のプロトコルに準拠するものであってもよい。
【０１０２】
２−６．変形例６
上記の実施形態又は変形例においてＯＦＳ４又は制御サーバ３において実行されるプログラムは、コンピュータ装置が読み取り可能な記録媒体を介して提供されてもよい。ここで、記録媒体とは、例えば、磁気テープや磁気ディスクなどの磁気記録媒体や、光ディスクなどの光記録媒体や、光磁気記録媒体や、半導体メモリ等である。また、このプログラムは、インターネット等のネットワークを介して提供されてもよい。
【符号の説明】
【０１０３】
１…ログデータベースＤＢ、１…Ｐｒｏｘｙサーバ、２…トポロジ情報テーブルＤＢ、２…管理サーバ、３…アプライアンス情報テーブルＤＢ、３…制御サーバ、４…経路制御テーブルＤＢ、４…ＯＦＳ、５…処理実施テーブルＤＢ、５…端末、６…ＩＰＳ、７…ＷＡＦ、８…Ｃａｐｔｕｒｅツール、２１…収集部、２２…判断部、２３…実行部、３１…情報取得部、３２…機器特定部、３３…経路制御情報取得部、３４…処理取得部、３５…トポロジ情報取得部、３６…経路制御計算部、３７…フローエントリ更新部、４１…受信部、４２…フィールド特定部、４３…動作指示特定部、４４…処理実行部、１００…通信システム
【図１】
2019024272.tif 000003
【図２】
2019024272.tif 000004
【図３】
2019024272.tif 000005
【図４】
2019024272.tif 000006
【図５】
2019024272.tif 000007
【図６】
2019024272.tif 000008
【図７】
2019024272.tif 000009
【図８】
2019024272.tif 000010
【図９】
2019024272.tif 000011
【図１０】
2019024272.tif 000012
【図１１】
2019024272.tif 000013
【図１２】
2019024272.tif 000014
【図１３】
2019024272.tif 000015
【図１４】
2019024272.tif 000016
【図１５】
2019024272.tif 000017