(57)【特許請求の範囲】
【請求項１】
ファイアウォールクラスターの実現方法であって、
ＳＤＮコントローラーは、ファイアウォールクラスターにおける各仮想ファイアウォール（ｖＦＷ）ノードの負荷をリアルタイムに監視し、
前記ＳＤＮコントローラーは、１つ以上のｖＦＷノードの負荷が予め設定された第１閾値よりも高いことを検出すると、新たなｖＦＷノードを作成し、
前記ＳＤＮコントローラーは、すべての監視されるｖＦＷノードを流れるサービスフローの中から移行対象の第１サービスフローを選択し、前記第１サービスフローの識別子と前記新たなｖＦＷノードの識別子を前記すべての監視されるｖＦＷノードに通知し、第１通知メッセージを受信した後、前記第１サービスフローに対応する第１フローエントリを更新し、更新後の第１フローエントリをスイッチに送信し、前記第１通知メッセージは、前記第１サービスフローが流れるｖＦＷノードが前記第1サービスフローのセッション情報を前記新たなｖＦＷノードに同期させたことを示し、前記更新後の第１フローエントリは、受信した前記第１サービスフローを前記新たなｖＦＷノードに送信するように前記スイッチに指示するものであることを含み、
前記ＳＤＮコントローラーは、１つ以上のｖＦＷノードの負荷が予め設定された第２閾値よりも低いことを検出すると、
前記負荷が予め設定された第2閾値よりも低いｖＦＷノードの中から除去対象のｖＦＷノードを選択し、前記除去対象のｖＦＷノードを流れる第２サービスフローを移行対象のサービスフローとして特定し、前記第２サービスフローの移行先ｖＦＷノードを特定するとともに、前記第２サービスフローの識別子及び前記移行先ｖＦＷノードの識別子を前記除去対象のｖＦＷノードに送信し、
前記ＳＤＮコントローラーは、第２通知メッセージを受信した後、前記第２サービスフローに対応する第２フローエントリを更新し、更新後の第２フローエントリを前記スイッチに送信し、前記第２通知メッセージは、前記除去対象のｖＦＷノードが前記第２サービスフローのセッション情報を前記移行先ｖＦＷノードに同期させたことを示し、前記更新後の第２フローエントリは、受信した前記第２サービスフローを前記移行先ｖＦＷノードに送信するように前記スイッチに指示するものであることをさらに含むことを特徴とするファイアウォールクラスターの実現方法。
【請求項２】
前記第１サービスフローに対応する第１フローエントリを更新することは、
前記第１フローエントリのネクストホップを前記新たなｖＦＷノードに更新することを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第２サービスフローに対応する第２フローエントリを更新することは、
前記第２フローエントリのネクストホップを前記移行先ｖＦＷノードに更新することを含むことを特徴とする請求項１に記載の方法。
【請求項４】
ファイアウォールクラスターにおける各ｖＦＷノードがネットワークアドレス変換（ＮＡＴ）サービス及び仮想プライベートネットワーク（ＶＰＮ）サービスの機能を有しない場合、
スイッチから送信されたサービスフローパケットを受信すると、前記ＳＤＮコントローラーは、ハッシュアルゴリズムに従って前記各ｖＦＷノードの中から１つのｖＦＷノードを選択するとともに、当該サービスフローパケットを選択されたｖＦＷノードに転送するように前記スイッチに通知することをさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
ファイアウォールクラスターにおける各ｖＦＷノードがネットワークアドレス変換（ＮＡＴ）サービス及び仮想プライベートネットワーク（ＶＰＮ）サービスの機能を有する場合、
前記ＳＤＮコントローラーは、ＮＡＴアドレスプールにおけるＮＡＴアドレスを各ｖＦＷノードに割り当て、
スイッチから送信されたサービスフローパケットを受信すると、前記ＳＤＮコントローラーは、前記サービスフローパケットを解析してＶＰＮパケットを取得し、前記ＶＰＮパケットの宛先アドレスに基づいて対応するｖＦＷノードを検索するとともに、対応するフローエントリを生成して前記スイッチに送信し、前記宛先アドレスはＮＡＴアドレスであり、前記生成されたフローエントリは、前記ＶＰＮパケットを前記検索されたｖＦＷノードに転送するように前記スイッチに指示するものであることをさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
ＳＤＮコントローラーであって、プロセッサーと不揮発性機械可読記憶媒体とを含むＳＤＮコントローラーにおいて、前記不揮発性機械可読記憶媒体には前記プロセッサーにより実行される機械可読命令が記憶され、
ファイアウォールクラスターにおける各仮想ファイアウォール（ｖＦＷ）ノードの負荷をリアルタイムに監視し、１つ以上のｖＦＷノードの負荷が予め設定された第１閾値よりも高いことを検出すると、新たなｖＦＷノードを作成し、
すべての監視されるｖＦＷノードを流れるサービスフローの中から移行対象の第１サービスフローを選択し、前記第１サービスフローの識別子と前記新たなｖＦＷノードの識別子を前記すべての監視されるｖＦＷノードに通知し、第１通知メッセージを受信した後、前記第1サービスフローに対応する第１フローエントリを更新し、更新後の第１フローエントリをスイッチに送信し、前記第１通知メッセージは、前記第１サービスフローが流れるｖＦＷノードが前記第１サービスフローのセッション情報を前記新たなｖＦＷノードに同期させたことを示し、前記更新後の第１フローエントリは、受信した前記第１サービスフローを前記新たなｖＦＷノードに送信するように前記スイッチに指示するものである操作を実現し、
１つ以上のｖＦＷノードの負荷が予め設定された第２閾値よりも低いことを検出すると、前記プロセッサーは、前記機械可読命令を実行して、
前記負荷が予め設定された第２閾値よりも低いｖＦＷノードの中から除去対象のｖＦＷノードを選択し、
前記除去対象のｖＦＷノードを流れる第２サービスフローを移行対象のサービスフローとして特定し、前記第２サービスフローの移行先ｖＦＷノードを特定するとともに、前記第２サービスフローの識別子及び前記移行先ｖＦＷノードの識別子を前記除去対象のｖＦＷノードに送信し、第２通知メッセージを受信した後、前記第２サービスフローに対応する第２フローエントリを更新し、更新後の第２フローエントリを前記スイッチに送信し、前記第２通知メッセージは、前記除去対象のｖＦＷノードが前記第２サービスフローのセッション情報を前記移行先ｖＦＷノードに同期させたことを示し、前記更新後の第２フローエントリは、受信した前記第２サービスフローを前記移行先ｖＦＷノードに送信するように前記スイッチに指示するものである操作を実現することを特徴とするＳＤＮコントローラー。
【請求項７】
前記第１サービスフローに対応する第１フローエントリを更新するために、前記プロセッサーは、前記機械可読命令を実行して、
前記第１フローエントリのネクストホップを前記新たなｖＦＷノードに更新する操作を実現することを特徴とする請求項６に記載のＳＤＮコントローラー。
【請求項８】
前記第２サービスフローに対応する第２フローエントリを更新するために、前記プロセッサーは、前記機械可読命令を実行して、
前記第２フローエントリのネクストホップを前記移行先ｖＦＷノードに更新する操作を実現することを特徴とする請求項６に記載のＳＤＮコントローラー。
【請求項９】
ファイアウォールクラスターにおける各ｖＦＷノードがネットワークアドレス変換（ＮＡＴ）サービス及び仮想プライベートネットワーク（ＶＰＮ）サービスの機能を有しない場合、前記プロセッサーは、前記機械可読命令を実行して、
スイッチから送信されたサービスフローパケットを受信すると、ハッシュアルゴリズムに従って前記各ｖＦＷノードの中から１つのｖＦＷノードを選択するとともに、当該サービスフローパケットを選択されたｖＦＷノードに転送するように前記スイッチに通知する操作を実現することを特徴とする請求項６に記載のＳＤＮコントローラー。
【請求項１０】
ファイアウォールクラスターにおける各ｖＦＷノードがネットワークアドレス変換（ＮＡＴ）サービス及び仮想プライベートネットワーク（ＶＰＮ）サービスの機能を有する場合、前記プロセッサーは、前記機械可読命令を実行して、
ＮＡＴアドレスプールにおけるＮＡＴアドレスを各ｖＦＷノードに割り当て、
スイッチから送信されたサービスフローパケットを受信すると、前記サービスフローパケットを解析してＶＰＮパケットを取得し、前記ＶＰＮパケットの宛先アドレスに基づいて対応するｖＦＷノードを検索するとともに、対応するフローエントリを生成して前記スイッチに送信し、前記宛先アドレスはＮＡＴアドレスであり、前記生成されたフローエントリは、前記ＶＰＮパケットを前記検索されたｖＦＷノードに転送するように前記スイッチに指示するものである操作を実現することを特徴とする請求項６に記載のＳＤＮコントローラー。
【発明の詳細な説明】
【背景技術】
【０００１】
ソフトウェア・デファインド・ネットワーク（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ、ＳＤＮ）は新しいネットワークアーキテクチャであり、そのコアテクノロジーであるオープンフロー（ＯｐｅｎＦｌｏｗ）は、ネットワーク装置のコントロールプレーンとデータプレーンとを分離することにより、ネットワークトラフィックへの柔軟な制御を実現する。
【０００２】
ＳＤＮコントローラは、ネットワークトポロジの収集、ルートの算出、フローテーブルの生成及び配信、ネットワークの管理及び制御などの機能を実現し、ネットワーク層の装置は、トラフィックの転送及びポリシーの実行を担う。
【０００３】
ネットワーク機能仮想化（Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎｓ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ、ＮＦＶ）は欧州電気通信標準化機構（Ｅｕｒｏｐｅａｎ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄｓ  Ｉｎｓｔｉｔｕｔｅ、ＥＴＳＩ）の１つの業界仕様グループ（Ｉｎｄｕｓｔｒｙ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｇｒｏｕｐ、ＩＳＧ）である。ＮＦＶ方式において、様々なネットワークエレメントは、独立したアプリケーションとなり、標準に従うサーバー、メモリ、スイッチにより構築されたプラットフォーム上に柔軟に配置されることが可能となる。
【０００４】
ＮＦＶの技術基盤は、クラウドコンピューティングと仮想化技術であり、汎用的な商用オフザシェルフ（Ｃｏｍｍｅｒｃｉａｌ  Ｏｆｆ−Ｔｈｅ−Ｓｈｅｌｆ、ＣＯＴＳ）としてのコンピューティング／ストレージ／ネットワークハードウェア装置は、仮想化技術によって複数種類の仮想リソースに分割されて上位層の様々なアプリケーションに使用されることが可能となる。また、仮想化技術によって、アプリケーションがハードウェアから切り離され、リソースの供給速度を大幅に向上させる。
【０００５】
ファイアウォールスタック技術は、スタック技術によって複数台の物理的なファイアウォール装置を積み重ねて、論理的に１台のファイアウォール装置を形成する技術である。
【図面の簡単な説明】
【０００６】
【図１】本願の実施例によるファイアウォールクラスタの実現方法のフローチャート。
【図２】本願の実施例による、ファイアウォールクラスタを配置する方法のフローチャート。
【図３】本願の実施例によるファイアウォールクラスタの模式図。
【図４】本願の実施例による、ＮＡＴサービス無しかつＶＰＮサービス無しのファイアウォールを実現する際におけるイントラネットからエクストラネットへのフローパケットの転送方法のフローチャート。
【図５】本願の実施例による、ＮＡＴサービス無しかつＶＰＮサービス無しのファイアウォールを実現する際におけるエクストラネットからイントラネットへのフローパケットの転送方法のフローチャート。
【図６】本願の実施例による、ＮＡＴサービス有りかつＶＰＮサービス有りのファイアウォールを実現する際におけるイントラネットからエクストラネットへのフローパケットの転送方法のフローチャート。
【図７】本願の実施例による、ＮＡＴサービス有りかつＶＰＮサービス有りのファイアウォールを実現する際におけるエクストラネットからイントラネットへのフローパケットの転送方法のフローチャート。
【図８】本願の実施例による、ＮＡＴサービス無しかつＶＰＮサービス無しのファイアウォールを実現する際のファイアウォールクラスタの拡張方法のフローチャート。
【図９】本願の実施例による、ＮＡＴサービス無しかつＶＰＮサービス無しのファイアウォールを実現する際のファイアウォールクラスタの縮小方法のフローチャート。
【図１０】本願の実施例によるファイアウォールクラスタの実現装置の構成の模式図。
【図１１】本願の実施例によるＳＤＮコントローラのハードウェア構成の模式図。
【発明を実施するための形態】
【０００７】
スタック技術によって複数台の物理的なファイアウォール装置を積み重ねて論理的なファイアウォール装置を構築する場合、物理的なファイアウォール装置の台数及びこれらの物理的なファイアウォール装置を格納するマシンルームのスペースを事前に考慮する必要がある。そして、スタックメンバーを追加、削除する過程において、スタックポートの設定を変更する必要があり、例えば、スタックポートの設定を追加、削除する必要がある。
【０００８】
以下、図面を参照しながら、本願の実施例を説明する。
【０００９】
図１は、本願の実施例によるファイアウォールクラスタの実現方法のフローチャートである。図１に示すように、この方法のステップは以下の通りである。
【００１０】
ステップ１０１において、ＳＤＮコントローラは、ファイアウォールクラスタにおける各仮想ファイアウォール（Ｖｉｒｔｕａｌ  ＦｉｒｅＷａｌｌ、ｖＦＷ）ノードの負荷をリアルタイムに監視する。ファイアウォールクラスタは、ＳＤＮコントローラと１つ以上のｖＦＷノードとスイッチとを含み、各ｖＦＷノードは、前記スイッチの等コストネクストホップである。
【００１１】
ステップ１０２において、ＳＤＮコントローラは、１つ以上のｖＦＷノードの負荷が予め設定された第１閾値よりも高いことを検出すると、新たなｖＦＷノードを作成する。
【００１２】
ステップ１０３において、ＳＤＮコントローラは、監視されるｖＦＷノードを流れるフローの中から移行対象の第１フローを選択し、第１フローに対応する第１フローエントリを更新し、更新後の第１フローエントリをスイッチに送信する。更新後の第１フローエントリは、第１フローを新たなｖＦＷノードに送信するようにスイッチに指示するものである。
【００１３】
本願の実施例において、第１フローに対応する第１フローエントリを更新する前に、この方法はさらに以下のことを含む。
【００１４】
ＳＤＮコントローラは、第１フローの識別子及び新たなｖＦＷノードの識別子を監視されるｖＦＷノードに送信する。
【００１５】
ＳＤＮコントローラは、第１フローが流れるｖＦＷノードから送信された第１通知メッセージを受信する。第１通知メッセージは、第１フローが流れるｖＦＷノードが第１フローに対応するセッション情報を新たなｖＦＷノードに同期させた後に送信したものである。
【００１６】
本願の実施例において、第１フローに対応する第１フローエントリを更新することは以下のことを含む。
【００１７】
第１フローエントリのネクストホップを新たなｖＦＷノードに変更する。
【００１８】
本願の実施例において、ＳＤＮコントローラは、ファイアウォールクラスタにおける各ｖＦＷノードの負荷をリアルタイムに監視した後、この方法はさらに以下のことを含む。
【００１９】
ＳＤＮコントローラは、１つ以上のｖＦＷノードの負荷が予め設定された第２閾値よりも低いことを検出すると、負荷が予め設定された第２閾値よりも低いｖＦＷノードの中から除去対象のｖＦＷノードを選択し、除去対象のｖＦＷノードを流れる第２フローを移行対象のフローとして特定するとともに、第２フローの移行先ｖＦＷノードを特定する。
【００２０】
ＳＤＮコントローラは、第２フローに対応する第２フローエントリを更新し、更新後の第２フローエントリをスイッチに送信する。更新後の第２フローエントリは、第２フローを移行先ｖＦＷノードに送信するようにスイッチに指示するものである。
【００２１】
本願の実施例において、第２フローに対応する第２フローエントリを更新する前に、この方法はさらに以下のことを含む。
【００２２】
ＳＤＮコントローラは、第２フローの識別子及び移行先ｖＦＷノードの識別子を除去対象のｖＦＷノードに送信する。
【００２３】
ＳＤＮコントローラは、除去対象のｖＦＷノードから送信された第２通知メッセージを受信する。第２通知メッセージは、除去対象のｖＦＷノードが第２フローに対応するセッション情報を移行先ｖＦＷノードに同期させた後に送信したものである。
【００２４】
本願の実施例において、第２フローに対応する第２フローエントリを更新することは以下のことを含む。
【００２５】
第２フローエントリのネクストホップを移行先ｖＦＷノードに更新する。
【００２６】
本願の実施例において、ファイアウォールクラスタにおける各ｖＦＷノードがネットワークアドレス変換（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ、ＮＡＴ）サービス及び仮想プライベートネットワーク（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ、ＶＰＮ）サービスの機能を有しない場合、方法はさらに以下のことを含む。
【００２７】
スイッチから送信されたフローパケットを受信すると、ＳＤＮコントローラは、ハッシュアルゴリズムに従って複数のｖＦＷノードの中から１つのｖＦＷノードを選択するとともに、当該フローパケットを選択されたｖＦＷノードに転送するようにスイッチに通知する。
【００２８】
本願の実施例において、ファイアウォールクラスタにおける各ｖＦＷノードがＮＡＴサービス及びＶＰＮサービスの機能を有する場合、方法はさらに以下のことを含む。
【００２９】
ＳＤＮコントローラは、ＮＡＴアドレスプールにおけるＮＡＴアドレスをｖＦＷノードに割り当てる。
【００３０】
スイッチから送信されたフローパケットを受信すると、ＳＤＮコントローラは、フローパケットを解析してＶＰＮパケットを取得し、ＶＰＮパケットの宛先アドレスに基づいて対応するｖＦＷノードを検索するとともに、フローエントリを生成し、生成されたフローエントリをスイッチに送信する。ここで、宛先アドレスはＮＡＴアドレスであり、生成されたフローエントリは、ＶＰＮパケットを検索されたｖＦＷノードに転送するようにスイッチに指示するものである。
【００３１】
図２は、本願の実施例による、ファイアウォールクラスタを配置する方法のフローチャートである。図２に示すように、この方法のステップは以下の通りである。
【００３２】
ステップ２０１において、ファイアウォールクラスタが設けられるネットワークにおいてＳＤＮコントローラ（ＳＤＮ  Ｃｏｎｔｒｏｌｌｅｒ）を配置し、ＳＤＮコントローラは、フローマネージャ（Ｆｌｏｗ  Ｍａｎａｇｅｒ）とＮＦＶマネージャ（ＮＦＶ  Ｍａｎａｇｅｒ）の機能を有効にする。
【００３３】
ステップ２０２において、ＮＦＶマネージャは、設けられるファイアウォールクラスタの性能に応じて、ＮＦＶ技術によって複数のｖＦＷノードを作成する。各ｖＦＷノードのアップリンクポートとダウンリンクポートはいずれもスイッチにバインドされ、各ｖＦＷノードはスイッチの等コストネクストホップとなる。また、スイッチはＳＤＮネットワーク装置の機能を有効にする。ＳＤＮネットワーク装置の機能は、オープンフロー転送機能を含む。
【００３４】
本願の実施例において、ｖＦＷノードの数はファイアウォールクラスタの性能により決められる。
【００３５】
図３は、本願の実施例によるファイアウォールクラスタの模式図である。図３に示すように、このファイアウォールクラスタは、ＳＤＮコントローラとｎ個のｖＦＷノードとスイッチとを含み、ここでｎは正の整数である。スイッチは、イントラネットとエクストラネットとを接続し、各ｖＦＷノードはスイッチの等コストネクストホップである。ＳＤＮコントローラはフローマネージャとＮＦＶマネージャの機能を有効にする。
【００３６】
本願の実施例において、ファイアウォールクラスタにより提供されるサービスに従って、ファイアウォールクラスタにおけるファイアウォールは２つのタイプに分けられる。
【００３７】
第１のタイプは、ＮＡＴサービス無しかつＶＰＮサービス無しのファイアウォールである。
【００３８】
ＮＡＴサービス無しかつＶＰＮサービス無しのファイアウォールは、主にファイアウォール攻撃防御、ドメイン間ポリシーなどのサービスを処理する。また、スイッチは、同一のフローの双方向パケットをともに同一のｖＦＷノードに転送することができる。
【００３９】
第２のタイプは、ＮＡＴサービス有りかつＶＰＮサービス有りのファイアウォールである。
【００４０】
ＮＡＴサービス有りかつＶＰＮサービス有りのファイアウォールは、ＮＡＴサービス、ＶＰＮサービスを分割してｖＦＷノードに割り当てる必要がある。
【００４１】
図４は、本願の実施例による、ＮＡＴサービス無しかつＶＰＮサービス無しのファイアウォールを実現する際におけるイントラネットからエクストラネットへのフローパケットの転送方法のフローチャートである。図４に示すように、この方法のステップは以下の通りである。
【００４２】
ステップ４００において、ファイアウォールクラスタにおける各ｖＦＷノードは、等コスト・マルチパス・ルーティング（Ｅｑｕａｌ−Ｃｏｓｔ  Ｍｕｌｔｉ−Ｐａｔｈ  ｒｏｕｔｉｎｇ、ＥＣＭＰ）技術によってその自体のアップリンク方向及びダウンリンク方向のルートをスイッチに送信する。スイッチは、各ｖＦＷノードから送信されたアップリンク方向及びダウンリンク方向のルートを受信し、各ｖＦＷノードが自スイッチのアップリンク方向及びダウンリンク方向の等コストネクストホップである旨の情報をＳＤＮコントローラに送信する。
【００４３】
スイッチは、アップリンク方向のフローを受信したか、それともダウンリンク方向のフローを受信したかを問わず、当該フローを先ずファイアウォールクラスタに送信する必要がある。ファイアウォールクラスタにおける各ｖＦＷノードは、スイッチのアップリンク方向及びダウンリンク方向の等コストネクストホップである。
【００４４】
ステップ４０１において、スイッチは、イントラネットからの、ソースＩＰアドレスがＩＰ＿Ａであり、宛先ＩＰアドレスがＩＰ＿Ｂであるフローパケットを受信する。そして、スイッチは、フローパケットの宛先ＩＰアドレスに基づいて、対応するフローエントリをローカルに検索し、検索されなかった場合、当該フローパケットをＰａｃｋｅｔ  ｉｎパケット中にカプセル化してＳＤＮコントローラに送信する。
【００４５】
ここで、Ｐａｃｋｅｔ  ｉｎパケットのソースアドレスは、スイッチのアドレスであり、宛先アドレスはＳＤＮコントローラのアドレスである。
【００４６】
ステップ４０２において、ＳＤＮコントローラは、当該Ｐａｃｋｅｔ  ｉｎパケットを受信し、当該Ｐａｃｋｅｔ  ｉｎパケットのソースアドレスがスイッチのアドレスであることを発見する。そして、ローカルに記録されている、ファイアウォールクラスタにおける各ｖＦＷノードが当該スイッチのアップリンク方向及びダウンリンク方向の等コストネクストホップである旨の情報に基づいて当該スイッチが等コストネクストホップを有することを確認すると、Ｐａｃｋｅｔ  ｉｎパケットを解析して元のフローパケットを取得し、予め設定されたハッシュアルゴリズムに従って「ＩＰ＿Ａ、ＩＰ＿Ｂ、ファイアウォールクラスタにおけるｖＦＷノードの数」に対してハッシュ演算を実行し、ハッシュ演算の結果をファイアウォールクラスタにおける１つのｖＦＷノードにマッピングする。そして、当該ｖＦＷノードを当該フローパケットを転送するネクストホップとし、当該フローパケットのためにフローエントリを生成し、当該フローエントリをＰａｃｋｅｔ  ｏｕｔパケット中にカプセル化して当該スイッチに送信する。
【００４７】
本願の実施例において、ハッシュアルゴリズムにおける２つのキーパラメータであるＩＰ＿ＡとＩＰ＿Ｂが順番に記入される。
【００４８】
フローエントリの内容は、フローパケットの宛先ＩＰアドレス（すなわち、ＩＰ＿Ｂ）及びネクストホップ情報を含む。
【００４９】
ステップ４０３において、スイッチは、当該Ｐａｃｋｅｔ  ｏｕｔパケットを受信し、当該Ｐａｃｋｅｔ  ｏｕｔパケットを解析して、ＳＤＮコントローラから送信されたフローエントリを取得して格納し、当該フローエントリにおけるネクストホップに基づいて、上記フローパケットを当該ネクストホップに対応するｖＦＷノードに送信する。
【００５０】
ステップ４０４において、ｖＦＷノードは、当該フローパケットを受信し、当該フローパケットに対してファイアウォールサービス処理を行い、当該フローパケットに対応するセッション情報を生成する。そして、当該フローパケットがフィルタリングされていなければ、当該フローパケットを当該スイッチに返す。
【００５１】
セッション情報は、フローパケットのソースＩＰアドレス、ソースＩＰポート番号、宛先ＩＰアドレス、宛先ＩＰポート番号、プロトコル番号、ステータスなどの情報を含む。
【００５２】
ステップ４０５において、スイッチは、ｖＦＷノードが返したフローパケットを受信し、当該フローパケットをエクストラネットに転送する。
【００５３】
図５は、本願の実施例による、ＮＡＴサービス無しかつＶＰＮサービス無しのファイアウォールを実現する際におけるエクストラネットからイントラネットへのフローパケットの転送方法のフローチャートである。図５に示すように、この方法のステップは以下の通りである。
【００５４】
ステップ５００において、ファイアウォールクラスタにおける各ｖＦＷノードは、ＥＣＭＰ技術によってその自体のアップリンク方向及びダウンリンク方向のルートをスイッチに送信する。そして、スイッチは、各ｖＦＷノードから送信されたアップリンク方向及びダウンリンク方向のルートを受信し、各ｖＦＷノードが自スイッチのアップリンク方向及びダウンリンク方向の等コストネクストホップである旨の情報をＳＤＮコントローラに送信する。
【００５５】
ステップ５０１において、スイッチは、エクストラネットからの、ソースＩＰアドレスがＩＰ＿Ｂであり、宛先ＩＰアドレスがＩＰ＿Ａであるフローパケットを受信する。そして、スイッチは、当該フローパケットの宛先ＩＰアドレスに基づいて、対応するフローエントリをローカルに検索し、検索されなかった場合、当該フローパケットをＰａｃｋｅｔ  ｉｎパケット中にカプセル化してＳＤＮコントローラに送信する。
【００５６】
ステップ５０２において、ＳＤＮコントローラは、当該Ｐａｃｋｅｔ  ｉｎパケットを受信し、当該Ｐａｃｋｅｔ  ｉｎパケットのソースアドレスがスイッチのアドレスであることを発見する。そして、ローカルに記録されている、ファイアウォールクラスタにおける各ｖＦＷノードが当該スイッチのアップリンク方向及びダウンリンク方向の等コストネクストホップである旨の情報に基づいて当該スイッチが等コストネクストホップを有することを確認すると、Ｐａｃｋｅｔ  ｉｎパケットを解析して元のフローパケットを取得し、予め設定されたハッシュアルゴリズムに従って「ＩＰ＿Ａ、ＩＰ＿Ｂ、ファイアウォールクラスタにおけるｖＦＷノードの数」に対してハッシュ演算を実行し、ハッシュ演算の結果をファイアウォールクラスタにおける１つのｖＦＷノードにマッピングする。そして、当該ｖＦＷノードを当該フローパケットを転送するネクストホップとし、当該フローパケットのためにフローエントリを生成し、当該フローエントリをＰａｃｋｅｔ  ｏｕｔパケット中にカプセル化して当該スイッチに送信する。
【００５７】
本願の実施例において、ハッシュアルゴリズムにおける２つのキーパラメータであるＩＰ＿ＡとＩＰ＿Ｂが順番に記入される。
【００５８】
このステップ５０２におけるハッシュ演算とステップ４０２におけるハッシュ演算とは完全に同一であるため、この２つのステップにおけるハッシュ演算の結果は同一である。これにより、同一のフローの順方向パケット、逆方向パケットが同一のｖＦＷノードに転送されることを確保できる。
【００５９】
ステップ５０３において、スイッチは、当該Ｐａｃｋｅｔ  ｏｕｔパケットを受信し、当該Ｐａｃｋｅｔ  ｏｕｔパケットを解析して、ＳＤＮコントローラから送信されたフローエントリを取得して格納し、当該フローエントリにおけるネクストホップに基づいて、上記フローパケットを当該ネクストホップに対応するｖＦＷノードに送信する。
【００６０】
ステップ５０４において、ｖＦＷノードは、当該フローパケットを受信し、当該フローパケットに対してファイアウォールサービス処理を行い、当該フローパケットに対応するセッション情報を生成する。そして、当該フローパケットがフィルタリングされていなければ、当該フローパケットを当該スイッチに返す。
【００６１】
ステップ５０５において、スイッチは、ｖＦＷノードが返したフローパケットを受信し、当該フローパケットをイントラネットに転送する。
【００６２】
図６は、本願の実施例による、ＮＡＴサービス有りかつＶＰＮサービス有りのファイアウォールを実現する際におけるイントラネットからエクストラネットへのフローパケットの転送方法のフローチャートである。図６に示すように、この方法のステップは以下の通りである。
【００６３】
ステップ６００において、ファイアウォールクラスタにおけるｖＦＷノードと、当該ｖＦＷノードに対応するエクストラネットパートナーとの間にＶＰＮトンネルを予め確立する。
【００６４】
パートナーとは、エクストラネットにおけるＶＰＮをいう。
【００６５】
各ｖＦＷノードは１つ以上のパートナーとＶＰＮトンネルを確立することができる。一般的に、ｖＦＷノードは、性能が高ければ高いほど、確立できるＶＰＮトンネルが多くなる。１つのパートナーは１つのｖＦＷノードのみとＶＰＮトンネルを確立することができる。
【００６６】
ステップ６０１において、ＳＤＮコントローラにＮＡＴアドレスプールを予め配置し、ＳＤＮコントローラのＮＦＶマネージャは、ＮＡＴアドレスプール中のリソースを分割してファイアウォールクラスタにおける各ｖＦＷノードに割り当てる。そして、割り当てたＮＡＴアドレスプール中のリソースを対応するｖＦＷノードに送信し、各ｖＦＷノードに割り当てられたＮＡＴアドレスプール中のリソースに基づいて、ポリシーベースルーティング（Ｐｏｌｉｃｙ  Ｂａｓｉｃ  Ｒｏｕｔｉｎｇ、ＰＢＲ）を配置する。
【００６７】
各ｖＦＷノードの性能に応じてＮＡＴアドレスプール中のリソースの分割及び割り当てを行うことができる。ｖＦＷノードは、性能が高ければ高いほど、割り当てられるＮＡＴアドレスプールにおけるＮＡＴアドレスが多くなる。
【００６８】
ＰＢＲは、ＮＡＴアドレスと、当該ＮＡＴアドレスに対応するネクストホップ情報とを含み、ＮＡＴアドレスに対応するネクストホップは、当該ＮＡＴアドレスが割り当てられたｖＦＷノードである。
【００６９】
ステップ６０２において、スイッチは、イントラネットからの、ソースＩＰアドレスがＩＰ＿Ａであり、宛先ＩＰアドレスがＩＰ＿ＮＡＴ＿Ｂであるフローパケットを受信する。そして、スイッチは、パケットの宛先ＩＰアドレスに基づいて、対応するフローエントリをローカルに検索し、検索されなかった場合、当該フローパケットをＰａｃｋｅｔ  ｉｎパケット中にカプセル化してＳＤＮコントローラに送信する。
【００７０】
ここで、ＩＰ＿ＮＡＴ＿Ｂは、ＩＰ＿Ｂに対してＮＡＴ処理を行って得られるアドレスである。
【００７１】
ステップ６０３において、ＳＤＮコントローラのフローマネージャは、当該Ｐａｃｋｅｔ  ｉｎパケットを受信し、当該Ｐａｃｋｅｔ  ｉｎパケットを解析して元のフローパケットを取得する。そして、ＮＦＶマネージャへフローパケットの宛先ＩＰアドレスＩＰ＿ＮＡＴ＿Ｂに対応するネクストホップを問い合わせ、当該フローパケットのためにフローエントリを生成し、当該フローエントリをＰａｃｋｅｔ  ｏｕｔパケット中にカプセル化してスイッチに送信する。
【００７２】
フローマネージャがＮＦＶマネージャへフローパケットの宛先ＩＰアドレスＩＰ＿ＮＡＴ＿Ｂに対応するネクストホップを問い合わせると、ＮＦＶマネージャは、ローカルに配置されているＰＢＲの中からＩＰ＿ＮＡＴ＿Ｂに対応するネクストホップを検索し、当該ネクストホップは１つのｖＦＷノードに向けられる。
【００７３】
ステップ６０４において、スイッチは、当該Ｐａｃｋｅｔ  ｏｕｔパケットを受信し、当該Ｐａｃｋｅｔ  ｏｕｔパケットを解析してフローエントリを取得して格納し、当該フローエントリにおけるネクストホップに基づいて、当該フローパケットを当該ネクストホップに対応するｖＦＷノードに送信する。
【００７４】
ステップ６０５において、ｖＦＷノードは、当該フローパケットを受信し、その自体のＮＡＴアドレスプールに基づいてパケットに対してＮＡＴ処理を行い、かつ当該フローパケットに対してファイアウォール処理を行う。そして、当該フローパケットがフィルタリングされていなければ、当該フローパケットをＶＰＮトンネルカプセル化し、カプセル化されたフローパケットをスイッチに返す。
【００７５】
ステップ６０６において、スイッチは、ｖＦＷノードが返したフローパケットを受信し、当該フローパケットをエクストラネットに転送する。
【００７６】
図７は、本願の実施例による、ＮＡＴサービス有りかつＶＰＮサービス有りのファイアウォールを実現する際におけるエクストラネットからイントラネットへのフローパケットの転送方法のフローチャートである。図７に示すように、この方法のステップは以下の通りである。
【００７７】
ステップ７００において、ファイアウォールクラスタにおけるｖＦＷノードと、当該ｖＦＷノードに対応するエクストラネットパートナーとの間にＶＰＮトンネルを予め確立する。
【００７８】
パートナーとは、エクストラネットにおけるＶＰＮをいう。
【００７９】
各ｖＦＷノードは１つ以上のパートナーとＶＰＮトンネルを確立することができる。一般的に、ｖＦＷノードは、性能が高ければ高いほど、確立できるＶＰＮトンネルが多くなる。１つのパートナーは１つのｖＦＷノードのみとＶＰＮトンネルを確立することができる。
【００８０】
ステップ７０１において、ＳＤＮコントローラにＮＡＴアドレスプールを予め配置し、ＳＤＮコントローラのＮＦＶマネージャは、ＮＡＴアドレスプール中のリソースを分割してファイアウォールクラスタにおける各ｖＦＷノードに割り当てる。そして、割り当てられたＮＡＴアドレスプール中のリソースを対応するｖＦＷノードに送信し、各ｖＦＷノードに割り当てられたＮＡＴアドレスプール中のリソースに基づいて、ＰＢＲを配置する。
【００８１】
各ｖＦＷノードの性能に応じてＮＡＴアドレスプール中のリソースの分割及び割り当てを行うことができる。ｖＦＷノードは、性能が高ければ高いほど、割り当てられるＮＡＴアドレスプールにおけるＮＡＴアドレスが多くなる。
【００８２】
ＰＢＲは、ＮＡＴアドレスと、当該ＮＡＴアドレスに対応するネクストホップ情報とを含み、ＮＡＴアドレスに対応するネクストホップは、当該ＮＡＴアドレスが割り当てられたｖＦＷノードである。
【００８３】
ステップ７０２において、エクストラネットのパートナーは、イントラネットにアクセスするための、ソースＩＰアドレスがＩＰ＿Ｂであり、宛先ＩＰアドレスがＩＰ＿ＮＡＴ＿Ａであるフローパケットを送信し、当該フローパケットはエクストラネットのＶＰＮゲートウェイに到達する。ＶＰＮゲートウェイが当該フローパケットをＶＰＮトンネルカプセル化した後、当該ＶＰＮトンネルカプセル化されたフローパケット（ＶＰＮパケットと略称する）はスイッチに到達する。スイッチは、当該ＶＰＮパケットの宛先ＩＰアドレスに基づいて、対応するフローエントリをローカルに検索し、検索されなかった場合、当該ＶＰＮパケットをＰａｃｋｅｔ  ｉｎパケット中にカプセル化してＳＤＮコントローラに送信する。
【００８４】
ここで、ＩＰ＿ＮＡＴ＿Ａは、ＮＡＴアドレスであり、つまりＩＰ＿Ａに対してＮＡＴ処理を行って得られるＩＰアドレスである。
【００８５】
ステップ７０３において、ＳＤＮコントローラのフローマネージャは、当該Ｐａｃｋｅｔ  ｉｎパケットを受信し、パケットを解析してＶＰＮパケットを取得する。そして、ＮＦＶマネージャへ当該ＶＰＮパケットの宛先ＩＰアドレスＩＰ＿ＮＡＴ＿Ａに対応するネクストホップを問い合わせ、フローエントリを生成し、当該フローエントリをＰａｃｋｅｔ  ｏｕｔパケット中にカプセル化してスイッチに送信する。
【００８６】
ステップ７０４において、スイッチは、当該Ｐａｃｋｅｔ  ｏｕｔパケットを受信し、当該パケットを解析して当該フローエントリを取得して格納し、当該フローエントリにおけるネクストホップに基づいて、当該ＶＰＮパケットを当該ネクストホップに対応するｖＦＷノードに送信する。
【００８７】
ステップ７０５において、ｖＦＷノードは、当該ＶＰＮパケットを受信し、当該ＶＰＮパケットをＶＰＮトンネルデカプセル化して元のフローパケットを取得し、元のフローパケットに対してＮＡＴ処理を行い、かつ当該フローパケットに対してファイアウォール処理を行う。そして、当該フローパケットがフィルタリングされていなければ、当該フローパケットをスイッチに返す。
【００８８】
ステップ７０６において、スイッチは、当該フローパケットを受信し、当該フローパケットをイントラネットに転送する。
【００８９】
図８は、本願の実施例による、ＮＡＴサービス無しかつＶＰＮサービス無しのファイアウォールを実現する際のファイアウォールクラスタの拡張方法のフローチャートである。図８に示すように、この方法のステップは以下の通りである。
【００９０】
ステップ８０１において、ＳＤＮコントローラのＮＦＶマネージャは、ファイアウォールクラスタにおける各ｖＦＷノードの負荷をリアルタイムに監視する。
【００９１】
本願の実施例において、ＳＤＮコントローラのＮＦＶマネージャは、ｖＦＷノードのＣＰＵ、メモリ、帯域幅、接続数のいずれか１つまたは任意の組み合わせを監視することによってｖＦＷノードの負荷を監視することができる。
【００９２】
ステップ８０２において、ＳＤＮコントローラのＮＦＶマネージャは、１つ以上のｖＦＷノードの負荷が予め設定された第１閾値よりも高いことを検出すると、ＮＦＶ技術によって新たなｖＦＷノードを作成し、新たなｖＦＷノードをファイアウォールクラスタに追加する。
【００９３】
ステップ８０３において、ＳＤＮコントローラのフローマネージャは、予め設定されたフロー移行ルールに基づいて、ファイアウォールクラスタにおける監視されるｖＦＷノードから新たなｖＦＷノードへ移行するフロー（第１フローと称する）を特定し、移行すべき第１フローの識別子（例えば、ソースＩＰアドレスと宛先ＩＰアドレス）及び新たなｖＦＷノードの識別子をすべての監視されるｖＦＷノードに通知する。
【００９４】
本願の実施例において、予め設定されたハッシュアルゴリズムに従って、監視されるｖＦＷノードのフローの中から移行すべきフローを選択することができる。
【００９５】
ステップ８０４において、移行すべき第１フローが流れるｖＦＷノードは、ＳＤＮコントローラから送信された第１フローの識別子に基づいて、第１フローに対応するセッション情報を新たなｖＦＷノードに同期させ、同期が完了した後、セッション同期完了の通知メッセージ（第１通知メッセージと称する）をＳＤＮコントローラに送信する。
【００９６】
ステップ８０５において、ＳＤＮコントローラのフローマネージャは、移行すべき第１フローが流れるｖＦＷノードから送信された第１通知メッセージを受信し、移行すべき第１フローのフローエントリを更新し、更新後のフローエントリをスイッチに送信する。
【００９７】
本願の実施例において、移行すべき第１フローのフローエントリを更新するとは、移行すべき第１フローのフローエントリのネクストホップを新たなｖＦＷノードに変更することである。これによって、スイッチは、移行すべき第１フローを受信すると、当該移行すべき第１フローを新たなｖＦＷノードに送信することができる。
【００９８】
図９は、本願の実施例による、ＮＡＴサービス無しかつＶＰＮサービス無しのファイアウォールを実現する際のファイアウォールクラスタの縮小方法のフローチャートである。図９に示すように、この方法のステップは以下の通りである。
【００９９】
ステップ９０１において、ＳＤＮコントローラのＮＦＶマネージャは、ファイアウォールクラスタにおける各ｖＦＷノードの負荷をリアルタイムに監視する。
【０１００】
本願の実施例において、ＳＤＮコントローラのＮＦＶマネージャは、ｖＦＷノードのＣＰＵ、メモリ、帯域幅、接続数のいずれか１つまたは任意の組み合わせを監視することによってｖＦＷノードの負荷を監視することができる。
【０１０１】
ステップ９０２において、ＳＤＮコントローラのＮＦＶマネージャは、１つ以上のｖＦＷノードの負荷が予め設定された第２閾値よりも低いことを検出すると、負荷が予め設定された第２閾値よりも低いｖＦＷノードの中から１つのｖＦＷノードを除去対象のｖＦＷノードとして選択する。
【０１０２】
一般的に、負荷が最も低いｖＦＷノードを除去対象のｖＦＷノードとして選択する。
【０１０３】
ステップ９０３において、ＳＤＮコントローラのフローマネージャは、除去対象のｖＦＷノードのフロー（第２フローと称する）をファイアウォールクラスタにおけるその他のｖＦＷノード（すなわち、移行先ｖＦＷノード）に移行させることを決定し、当該第２フローの識別子及び当該第２フローの移行先ｖＦＷノードの識別子を除去対象のｖＦＷノードに送信する。
【０１０４】
本願の実施例において、予め設定されたハッシュアルゴリズムに従って、ファイアウォールクラスタにおいて除去対象のｖＦＷノード以外のｖＦＷノードの中から上記移行先ｖＦＷノードを選択することができる。
【０１０５】
ステップ９０４において、除去対象のｖＦＷノードは、ＳＤＮコントローラから送信された当該第２フローの識別子及び当該第２フローの移行先ｖＦＷノードの識別子に基づいて、当該第２フローのセッション情報を移行先ｖＦＷノードに同期させ、同期が完了した後、セッション同期完了の通知メッセージ（第２通知メッセージと称する）をＳＤＮコントローラに送信する。
【０１０６】
ステップ９０５において、ＳＤＮコントローラのフローマネージャは、除去対象のｖＦＷノードから送信された第２通知メッセージを受信し、移行すべき第２フローのフローエントリを更新し、更新後のフローエントリをスイッチに送信する。
【０１０７】
本願の実施例において、移行すべき第２フローのフローエントリを更新するとは、移行すべき第２フローのフローエントリのネクストホップを第２フローの移行先ｖＦＷノードに変更することである。
【０１０８】
本願の実施例において、ＮＦＶ技術によって新たなｖＦＷノードを作成することにより、ファイアウォールクラスタの自動配置を実現することができる。また、ｖＦＷノードのアップリンクポートとダウンリンクポートをいずれもＳＤＮネットワーク装置にバインドすることにより、各ｖＦＷノードがＳＤＮネットワーク装置のアップリンク方向及びダウンリンク方向の等コストネクストホップとなるようにする。これによって、アップリンクパケットとダウンリンクパケットはＳＤＮネットワーク装置により各ｖＦＷノードに均一に転送されることが可能となる。
【０１０９】
本願の実施例において、ＳＤＮコントローラは、ファイアウォールクラスタにおける各ｖＦＷノードの負荷をリアルタイムに監視し、１つ以上のｖＦＷノードの負荷が予め設定された第１閾値よりも高いことを検出すると、新たなｖＦＷノードを作成してファイアウォールクラスタに追加し、すべての監視されるｖＦＷノードのフローの中から移行対象の第１フローを選択し、第１フローを新たなｖＦＷノードに移行させる。これによって、ファイアウォールクラスタの自動拡張を実現することができる。１つ以上のｖＦＷノードの負荷が予め設定された第２閾値よりも低いことを検出すると、１つのｖＦＷノードを選択してファイアウォールクラスタから除去し、これによって、ファイアウォールクラスタの自動縮小を実現することができる。
【０１１０】
図１０は、本願の実施例によるファイアウォールクラスタの実現装置の構成の模式図である。この装置はＳＤＮコントローラに位置される。ＳＤＮコントローラは１つ以上のｖＦＷノード及びスイッチとともにファイアウォールクラスタを構成し、各ｖＦＷノードはスイッチの等コストネクストホップである。図１０に示すように、当該装置は、主にＮＦＶ管理モジュール１００１とフロー管理モジュール１００２とを含む。
【０１１１】
ＮＦＶ管理モジュール１００１は、ファイアウォールクラスタにおける各ｖＦＷノードの負荷をリアルタイムに監視し、１つ以上のｖＦＷノードの負荷が予め設定された第１閾値よりも高いことを検出すると、新たなｖＦＷノードを作成する。
【０１１２】
フロー管理モジュール１００２は、ＮＦＶ管理モジュール１００１が新たなｖＦＷノードを作成すると、すべての監視されるｖＦＷノードのフローの中から移行対象の第１フローを選択し、第１フローに対応する第１フローエントリを更新し、更新後の第１フローエントリをスイッチに送信する。更新後の第１フローエントリは、第１フローを新たなｖＦＷノードに送信するようにスイッチに指示するものである。
【０１１３】
本願の実施例において、フロー管理モジュール１００２は、第１フローに対応する第１フローエントリを更新する前に、以下のことも行う。
【０１１４】
第１フローの識別子及び新たなｖＦＷノードの識別子をすべての監視されるｖＦＷノードに送信し、第１フローが流れるｖＦＷノードから送信された第１通知メッセージを受信する。第１通知メッセージは、第１フローが流れるｖＦＷノードが第１フローに対応するセッション情報を新たなｖＦＷノードに同期させた後に送信したものである。
【０１１５】
本願の実施例において、フロー管理モジュール１００２は、第１フローに対応する第１フローエントリを更新する際に、以下のことを行う。
【０１１６】
第１フローエントリのネクストホップを新たなｖＦＷノードに変更する。
【０１１７】
本願の実施例において、ＮＦＶ管理モジュール１００１は、１つ以上のｖＦＷノードの負荷が予め設定された第２閾値よりも低いことを検出すると、負荷が予め設定された第２閾値よりも低いｖＦＷノードの中から除去対象のｖＦＷノードを選択することも行う。
【０１１８】
また、フロー管理モジュール１００２は、ＮＦＶ管理モジュール１００１が除去対象のｖＦＷノードを選択すると、除去対象のｖＦＷノードの第２フローを移行対象のフローとして特定するとともに、第２フローの移行先ｖＦＷノードを特定する。また、フロー管理モジュール１００２は、第２フローに対応する第２フローエントリを更新し、更新後の第２フローエントリをスイッチに送信する。更新後の第２フローエントリは、第２フローを移行先ｖＦＷノードに送信するようにスイッチに指示するものである。
【０１１９】
本願の実施例において、フロー管理モジュール１００２は、第２フローに対応する第２フローエントリを更新する前に、以下のことも行う。
【０１２０】
第２フローの識別子及び移行先ｖＦＷノードの識別子を除去対象のｖＦＷノードに送信し、除去対象のｖＦＷノードから送信された第２通知メッセージを受信する。第２通知メッセージは、除去対象のｖＦＷノードが第２フローに対応するセッション情報を移行先ｖＦＷノードに同期させた後に送信したものである。
【０１２１】
本願の実施例において、フロー管理モジュール１００２は、第２フローに対応する第２フローエントリを更新する際に、以下のことを行う。
【０１２２】
第２フローエントリのネクストホップを移行先ｖＦＷノードに変更する。
【０１２３】
本願の実施例において、ファイアウォールクラスタにおける各ｖＦＷノードがＮＡＴサービス及びＶＰＮサービスを有しない場合、フロー管理モジュール１００２は、以下のことも行う。
【０１２４】
スイッチから送信されたフローパケットを受信すると、ハッシュアルゴリズムに従って複数のｖＦＷノードの中から１つのｖＦＷノードを選択するとともに、当該フローパケットを選択されたｖＦＷノードに転送するようにスイッチに通知する。
【０１２５】
本願の実施例において、ファイアウォールクラスタにおけるｖＦＷノードがＮＡＴサービス及びＶＰＮサービスを有する場合、ＮＦＶ管理モジュール１００１は、ＮＡＴアドレスプールにおけるＮＡＴアドレスをｖＦＷノードに割り当てることも行う。
【０１２６】
フロー管理モジュール１００２は、スイッチから送信されたフローパケットを受信すると、フローパケットを解析してＶＰＮパケットを取得し、ＶＰＮパケットの宛先アドレスに基づいて対応するｖＦＷノードを検索するとともに、対応するフローエントリを生成し、生成されたフローエントリをスイッチに送信することも行う。ここで、宛先アドレスはＮＡＴアドレスであり、生成されたフローエントリは、ＶＰＮパケットを検索されたｖＦＷノードに転送するようにスイッチに指示するものである。
【０１２７】
本願の実施例は、ＳＤＮコントローラのハードウェア構成をさらに提供する。図１１は、本願の実施例によるＳＤＮコントローラのハードウェア構成の模式図である。ＳＤＮコントローラは、１つ以上のｖＦＷノード及びスイッチとともにファイアウォールクラスタを構成し、各ｖＦＷノードはスイッチの等コストネクストホップである。図１１に示すように、当該ＳＤＮコントローラは、プロセッサー１１０１と、不揮発性メモリ１１０２と、ネットワークインタフェース１１０３と、内部バス１１０４と、を含む。不揮発性メモリ１１０２は、不揮発性機械可読記憶媒体であってもよい。
【０１２８】
本願の実施例において、不揮発性メモリ１１０２は、ファイアウォールクラスタを実現するための、プロセッサー１１０１により実行可能な機械可読命令である論理的命令を記憶する。
【０１２９】
本願の実施例において、プロセッサー１１０１は、機械可読命令を実行して以下の操作を実現する。
【０１３０】
ファイアウォールクラスタにおける各ｖＦＷノードの負荷をリアルタイムに監視し、１つ以上のｖＦＷノードの負荷が予め設定された第１閾値よりも高いことを検出すると、新たなｖＦＷノードを作成する。
【０１３１】
すべての監視されるｖＦＷノードのフローの中から移行対象の第１フローを選択し、第１フローに対応する第１フローエントリを更新し、更新後の第１フローエントリをスイッチに送信する。更新後の第１フローエントリは、第１フローを新たなｖＦＷノードに送信するようにスイッチに指示するものである。
【０１３２】
本願の実施例において、第１フローに対応する第１フローエントリを更新する前に、プロセッサー１１０１は、機械可読命令を実行して以下の操作を実現する。
【０１３３】
第１フローの識別子及び新たなｖＦＷノードの識別子をすべての監視されるｖＦＷノードに送信し、第１フローが流れるｖＦＷノードから送信された第１通知メッセージを受信する。第１通知メッセージは、第１フローが流れるｖＦＷノードが第１フローに対応するセッション情報を新たなｖＦＷノードに同期させた後に送信したものである。
【０１３４】
本願の実施例において、第１フローに対応する第１フローエントリを更新するために、プロセッサー１１０１は、機械可読命令を実行して以下の操作を実現する。
【０１３５】
第１フローエントリのネクストホップを新たなｖＦＷノードに変更する。
【０１３６】
本願の実施例において、１つ以上のｖＦＷノードの負荷が予め設定された第２閾値よりも低いことを検出すると、プロセッサー１１０１は、機械可読命令を実行して以下の操作を実現する。
【０１３７】
負荷が予め設定された第２閾値よりも低いｖＦＷノードの中から除去対象のｖＦＷノードを選択する。
【０１３８】
除去対象のｖＦＷノードの第２フローを移行対象のフローとして特定するとともに、第２フローの移行先ｖＦＷノードを特定する。また、第２フローに対応する第２フローエントリを更新し、更新後の第２フローエントリをスイッチに送信する。更新後の第２フローエントリは、第２フローを移行先ｖＦＷノードに送信するようにスイッチに指示するものである。
【０１３９】
本願の実施例において、第２フローに対応する第２フローエントリを更新する前に、プロセッサー１１０１は、機械可読命令を実行して以下の操作を実現する。
【０１４０】
第２フローの識別子及び移行先ｖＦＷノードの識別子を除去対象のｖＦＷノードに送信し、除去対象のｖＦＷノードから送信された第２通知メッセージを受信する。第２通知メッセージは、除去対象のｖＦＷノードが第２フローに対応するセッション情報を移行先ｖＦＷノードに同期させた後に送信したものである。
【０１４１】
本願の実施例において、第２フローに対応する第２フローエントリを更新するために、プロセッサー１１０１は、機械可読命令を実行して以下の操作を実現する。
【０１４２】
第２フローエントリのネクストホップを移行先ｖＦＷノードに更新する。
【０１４３】
本願の実施例において、各ｖＦＷノードがＮＡＴサービス及びＶＰＮサービスを有しない場合、プロセッサー１１０１は、機械可読命令を実行して以下の操作を実現する。
【０１４４】
スイッチから送信されたフローパケットを受信すると、ハッシュアルゴリズムに従って複数のｖＦＷノードの中から１つのｖＦＷノードを選択するとともに、当該フローパケットを選択されたｖＦＷノードに転送するようにスイッチに通知する。
【０１４５】
本願の実施例において、各ｖＦＷノードがＮＡＴサービス及びＶＰＮサービスを有する場合、プロセッサー１１０１は、機械可読命令を実行して以下の操作を実現する。
【０１４６】
ＮＡＴアドレスプールにおけるＮＡＴアドレスをｖＦＷノードに割り当てる。
【０１４７】
スイッチから送信されたフローパケットを受信すると、フローパケットを解析してＶＰＮパケットを取得し、ＶＰＮパケットの宛先アドレスに基づいて対応するｖＦＷノードを検索するとともに、フローエントリを生成し、生成されたフローエントリをスイッチに送信する。ここで、宛先アドレスはＮＡＴアドレスであり、生成されたフローエントリは、ＶＰＮパケットを検索されたｖＦＷノードに転送するようにスイッチに指示するものである。
【０１４８】
本願の実施例において、ネットワークインタフェース１１０３は、その他のハードウェア装置、例えばスイッチに接続するためのものである。内部バス１１０４は、プロセッサー１１０１、不揮発性メモリ１１０２及びネットワークインタフェース１１０３を接続するためのものである。
【０１４９】
以上の説明は、本発明の好適な実施例にすぎず、本発明を限定するものではない。本発明の趣旨および原理を逸脱しない範囲内で行われる任意の変更、均等の置換、改善などはいずれも、本発明の権利範囲に含まれる。
【図１】
0006619096.tif 000002
【図２】
0006619096.tif 000003
【図３】
0006619096.tif 000004
【図４】
0006619096.tif 000005
【図５】
0006619096.tif 000006
【図６】
0006619096.tif 000007
【図７】
0006619096.tif 000008
【図８】
0006619096.tif 000009
【図９】
0006619096.tif 000010
【図１０】
0006619096.tif 000011
【図１１】
0006619096.tif 000012