(57)【要約】【課題】  複数のゲートウェイ装置間でステート情報の同期をとることにより、高可用化構成をとるゲートウェイ装置が障害等により切り替わった場合に、継続的に処理ができるゲートウェイシステムを提供する。【解決手段】  ネットワークの境界で通信の中継を行うゲートウェイシステムにおいて、通信パケットを処理すると共にその処理に基づいてステート情報を更新して送信する主ゲートウェイ装置と、送信されたステート情報を受信して自己のステート情報として保持する少なくとも１つの従ゲートウェイ装置と、を有し、前記従ゲートウェイ装置は、ステート情報に基づいて主ゲートウェイ装置に代わって動作することを特徴とするゲートウェイシステム。【選択図】                    図１
2006310928.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークの境界で通信の中継を行うゲートウェイシステムにおいて、
通信パケットを処理すると共にその処理に基づいてステート情報を更新して送信する主ゲートウェイ装置と、
送信されたステート情報を受信して自己のステート情報として保持する少なくとも１つの従ゲートウェイ装置と、
を有し、
前記従ゲートウェイ装置は、ステート情報に基づいて主ゲートウェイ装置に代わって動作することを特徴とするゲートウェイシステム。
【請求項２】
前記主ゲートウェイ装置が複数ある場合には、前記従ゲートウェイ装置が複数の主ゲートウェイ装置のステート情報を保持することを特徴とする請求項１に記載のゲートウェイシステム。
【請求項３】
前記主ゲートウェイ装置は、
通信パケットを処理すると共にその処理に基づいてステート情報を更新する処理手段と、
ステート情報が格納される記憶手段と、
ステート情報を送信する同期処理手段と、
を有することを特徴とする請求項１または請求項２に記載のゲートウェイシステム。
【請求項４】
前記従ゲートウェイ装置は、
ステート情報を受信する同期処理手段と、
通信パケットを処理すると共に現在のステート情報を受信したステート情報に更新する処理手段と、
ステート情報が格納される記憶手段と、
を有することを特徴とする請求項１から請求項３のいずれかに記載のゲートウェイシステム。
【請求項５】
前記従ゲートウェイ装置の処理手段は通信パケットを処理した場合にステート情報を更新し、同期処理手段は更新されたステート情報を他のゲートウェイ装置に送信することを特徴とする請求項４に記載のゲートウェイシステム。
【請求項６】
前記従ゲートウェイ装置の同期処理手段は、動作開始時に機能が有効になったことを他のゲートウェイ装置に通知すると共にステート情報のリクエスト信号を前記主ゲートウェイ装置に送信することを特徴とする請求項３から請求項５のいずれかに記載のゲートウェイシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータなどの装置間の通信に使用するゲートウェイシステムに関し、特に通信の信頼性の向上を図るゲートウェイシステムに関するものである。
【背景技術】
【０００２】
インターネット、社内ネットワーク等が普及する中、安定したネットワークを提供することが必要である。社内ネットワークとインターネットの境界には、ＮＡＴ（Network Address Translation）装置やファイアウォール装置などのゲートウェイ装置が導入されていることが多い。それらのゲートウェイ装置はその組織の運用方針に基づいたアドレスの変換ルールやフィルタをはじめとするセキュリティのルール等が設定されている。
また、プラント等の制御における操作監視システムのシステムバスの境界にもデータをを中継するものとしてゲートウェイ装置が用いられる。
従来、このようなゲートウェイ装置が不具合により停止してしまうと、通信が不能となってしまうため、ゲートウェイ装置の冗長化が図られている（例えば、特許文献１参照。）。
【０００３】
【特許文献１】特開２０００−３１９９７４号公報
【０００４】
また、最近では、ＶＲＲＰ（Virtual Router Redundancy Protocol）といったルータの多重化を行なうためのプロトコルを用いて、複数のルータを１つのグループに所属させ、通常はそのうち１つのルータが通信を行なうが、そのルータが障害を起こした時に同グループに属するルータが自動的に通信を受け継ぐようにする仕組みが使われる。
【０００５】
図１２は、従来のゲートウェイシステムの一例を示した構成図である。
図１２において、サーバ３とゲートウェイ装置３００，４００はネットワーク６で接続され、クライアントＰＣ４、ゲートウェイ装置３００，４００はネットワーク７で接続され、サーバ３、クライアントＰＣ４相互の通信ではゲートウェイ装置３００が主装置として実際の処理を行う。ゲートウェイ装置４００は従装置として動作し主装置であるゲートウェイ装置３００を監視している。
【０００６】
前提条件として、ゲートウェイ装置３００，４００は、クライアントＰＣ４やサーバ３から見ると仮想的な一台のゲートウェイ装置として認識される。その仕組みは例えばＶＲＲＰによりで定義されているのでここでは言及しない。ゲートウェイ装置３００，４００は、処理部３０１，４０１と記憶部３０３，４０３を有する。処理部３０１，４０１は、パケットを処理する部分であって、ゲートウェイ装置の種類によって処理は異なるが、例えば、ＮＡＴ装置の場合はアドレス変換処理、ファイアウォール装置の場合はフィルタ処理、トランスレータ装置の場合はプロトコル変換処理等を行う。
【０００７】
記憶部３０３，４０３には、規則情報とステート情報が格納される。規則情報は、ゲートウェイ装置の種類によって実際の情報は異なるが、例えば、ＮＡＴ装置、トランスレータ装置の場合はアドレス変換規則、ファイアウォール装置の場合はフィルタ規則等に該当する。ステート情報は、ゲートウェイ装置の種類によって実際の情報は異なるが、例えば、送信元/宛先アドレス、送信元/宛先ポート番号、セッションの状態などである。
【０００８】
以下に動作例を示す。なお、図１２で使用している信号名と以下の処理ステップの符号とを対応させている。
【０００９】
（Ｓ０１）クライアントＰＣ４がサーバ３に対して通信を開始する。
（Ｓ０２）ゲートウェイ装置３００は、Ｓ０１でクライアントＰＣ３００から送信されたパケットを受信する。処理部３０１は、パケットが処理対象であるかを、ステート情報、規則情報の順に参照を行う。ゲートウェイ装置３００において、Ｓ０１のパケットは初めて処理を行うパケットのため、記憶部３０３内のステート情報には対象とするエントリは存在しない。処理部３０１は、規則情報を参照し処理対象であるかどうかを判断する。
（Ｓ０３）処理対象である場合、処理部３０１は、Ｓ０１で受信したパケットを処理すると供に、規則情報を基に記憶部３０３のステート情報に新しいエントリを追加する。
【００１０】
（Ｓ０４）ゲートウェイ装置３００はサーバに向けて処理を行ったパケットを送信する。
（Ｓ０５）サーバ３はＳ０４で受信したパケットをうけて、返答する。
（Ｓ０６）ゲートウェイ装置３００は、Ｓ０５でサーバから送信されたパケットを受信する。処理部３０１は、パケットが処理対象であるかを、ステート情報、規則情報の順に参照を行う。Ｓ０５のパケットは既にゲートウェイ装置３００が処理を行った通信に関するものなので、記憶部３０３内に対象となるステート情報が格納されているため処理対象と判断される。処理部３０１は、パケットの処理を行ったのでステート情報を更新する。
【００１１】
（Ｓ０７）ゲートウェイ装置３００はクライアントＰＣ４に向けて処理を行ったパケットを送信する。この後、ゲートウェイ装置３００が障害等の理由で処理の継続ができなくなると仮定する。この時、従装置として動作していたゲートウェイ装置４００が主装置であるゲートウェイ装置４００の障害を検知する。障害を検知したゲートウェイ装置４００は、主装置として動作を始め実際の処理を行う。
（Ｓ０８）クライアントＰＣ４がパケットを送信する。このパケットは既存のセッションに属するものである。
（Ｓ０９）ゲートウェイ装置４００の処理部４０１は、Ｓ０８でクライアントから送信されたパケットを受信する。処理部４０１は、パケットが処理対象であるかを、記憶部４０３のステート情報、規則情報の順に参照を行う。ゲートウェイ装置４００において、Ｓ０８のパケットは初めて処理を行うパケットのため、記憶部４０３内のステート情報には対象とするエントリは存在しない。処理部４０１は、規則情報を参照し処理対象であるかどうかを判断する。
【００１２】
（Ｓ１０）処理対象である場合、処理部４０１は、Ｓ０８で受信したパケットを処理すると供に、規則情報を基に記憶部４０３のステート情報に新しいエントリを追加する。
ただし、ゲートウェイ装置３００，４００では、個々にステート情報を管理しているため、Ｓ０３でゲートウェイ装置３００が生成したエントリとは情報が異なる。
（Ｓ１１）ゲートウェイ装置４００は、サーバ３に向けて処理を行ったパケットを送信する。
しかしサーバ３は、Ｓ１１に関連するセッションは存在しないため、そのパケットを破棄する。
サーバ３においてパケットが破棄されてしまうため、サーバ３とクライアントＰＣ４との接続はタイムアウトの処理等によって切断されてしまう。
【００１３】
また次に示すような不具合も生じる場合が考えられる。
図１３は、従来のゲートウェイ装置の他の動作説明図である。
図１３において、図１２と同様に、ゲートウェイ装置３００とゲートウェイ装置４００が存在する。このときゲートウェイ装置３００が主装置として実際の処理を行う。ゲートウェイ装置４００は従装置として動作し主装置であるゲートウェイ装置３００を監視している。また、ゲートウェイ装置３００とゲートウェイ装置４００には同様の規則情報が適用されている。
【００１４】
以下に動作を示す。なお、図１３で使用している信号名と以下の処理ステップの符号とを対応させている。
【００１５】
（Ｓ０１）クライアントＰＣ４がサーバ３に対して通信を開始する。
（Ｓ０２）ゲートウェイ装置３００は、Ｓ０１でクライアントから送信されたパケットを受信する。処理部３０１は、パケットが処理対象であるかを、記憶部３０３のステート情報、規則情報の順に参照を行う。ゲートウェイ装置３００において、Ｓ０１のパケットは初めて処理を行うパケットのため、記憶部３０３内のステート情報には対象とするエントリは存在しない。処理部３０１は、規則情報を参照し処理対象であるかどうかを判断する。
（Ｓ０３）処理対象である場合、処理部３０１は、Ｓ０１で受信したパケットを処理すると供に、規則情報を基に記憶部３０３のステート情報に新しいエントリを追加する。
【００１６】
（Ｓ０４）ゲートウェイ装置３００はサーバ３に向けて処理を行ったパケットを送信する。この後、ゲートウェイ装置３００が障害等の理由で処理の継続ができなくなると仮定する。この時従装置として動作していたゲートウェイ装置４００が主装置であるゲートウェイ装置３００の障害を検知する。障害を検知したゲートウェイ装置４００は、主装置として動作を始め実際の処理を行う。
（Ｓ０５）サーバ３はＳ０４で受信したパケットをうけて、返答する。
【００１７】
（Ｓ０６）ゲートウェイ装置４００の処理部４０１は、Ｓ０５でサーバから送信されたパケットを受信する。パケットが処理対象であるかを、記憶部４０３のステート情報、規則情報の順に参照を行う。
ゲートウェイ装置４００において、Ｓ０５のパケットは初めて処理を行うパケットのため、記憶部４０３内のステート情報には対象とするエントリは存在しない。処理部４０１は、規則情報を参照し処理対象であるかどうかを判断する。
このとき、規則情報に通信はクライアント側から始まるという内容が設定されていると、サーバ３から送られてきたパケット対し、ゲートウェイ装置４００の処理部４０１で処理対象でないと判断する。この場合ゲートウェイ装置４００はこのパケットを破棄する。
ゲートウェイ装置４００においてパケットが破棄されてしまうため、サーバ３とクライアントＰＣ４との接続はタイムアウトの処理等によって切断されてしまう。
【発明の開示】
【発明が解決しようとする課題】
【００１８】
このような従来のゲートウェイ装置では、複数のゲートウェイ装置による多重化を行い高可用化して稼働率の向上を試みたとしても、上述のようにステート情報が同期されていないと、ゲートウェイ装置を介して行われていた通信の継続が不可能な場合が生じるという問題があった。
【００１９】
本発明は、このようなゲートウェイシステムが有していた問題を解決しようとするものであり、複数のゲートウェイ装置間でステート情報の同期をとることにより、高可用化構成をとるゲートウェイ装置が障害等により切り替わった場合に、継続的に処理ができるゲートウェイシステムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明は次の通りの構成になったゲートウェイシステムである。
【００２１】
（１）ネットワークの境界で通信の中継を行うゲートウェイシステムにおいて、
通信パケットを処理すると共にその処理に基づいてステート情報を更新して送信する主ゲートウェイ装置と、
送信されたステート情報を受信して自己のステート情報として保持する少なくとも１つの従ゲートウェイ装置と、
を有し、
前記従ゲートウェイ装置は、ステート情報に基づいて主ゲートウェイ装置に代わって動作することを特徴とするゲートウェイシステム。
【００２２】
（２）前記主ゲートウェイ装置が複数ある場合には、前記従ゲートウェイ装置が複数の主ゲートウェイ装置のステート情報を保持することを特徴とする（１）に記載のゲートウェイシステム。
【００２３】
（３）前記主ゲートウェイ装置は、
通信パケットを処理すると共にその処理に基づいてステート情報を更新する処理手段と、
ステート情報が格納される記憶手段と、
ステート情報を送信する同期処理手段と、
を有することを特徴とする（１）または（２）に記載のゲートウェイシステム。
【００２４】
（４）前記従ゲートウェイ装置は、
ステート情報を受信する同期処理手段と、
通信パケットを処理すると共に現在のステート情報を受信したステート情報に更新する処理手段と、
ステート情報が格納される記憶手段と、
を有することを特徴とする（１）から（３）のいずれかに記載のゲートウェイシステム。
【００２５】
（５）前記従ゲートウェイ装置の処理手段は通信パケットを処理した場合にステート情報を更新し、同期処理手段は更新されたステート情報を他のゲートウェイ装置に送信することを特徴とする（４）に記載のゲートウェイシステム。
【００２６】
（６）前記従ゲートウェイ装置の同期処理手段は、動作開始時に機能が有効になったことを他のゲートウェイ装置に通知すると共にステート情報のリクエスト信号を前記主ゲートウェイ装置に送信することを特徴とする（３）から（５）のいずれかに記載のゲートウェイシステム。
【発明の効果】
【００２７】
本発明によれば、以下のような効果がある。
【００２８】
請求項１、請求項３、請求項４に記載の発明によれば、ステート情報を主ゲートウェイ装置と、従ゲートウェイ装置とが同期して共有しているのでゲートウェイ装置が障害等により切り替わった場合に、継続的に処理ができる。
【００２９】
請求項２に記載の発明によれば、複数の主ゲートウェイ装置のステート情報と従ゲートウェイ装置のステート情報とが、同期をとって共有される。このように、複数のグループに属するように従ゲートウェイ装置を設置することによってシステムの設計が柔軟に行える。
【００３０】
請求項５に記載の発明によれば、従ゲートウェイ装置の１つが主ゲートウェイ装置に切り替わった場合に、他の従ゲートウェイ装置とステート情報を同期をとって共有することにより、さらに冗長化、高可用化することができる。
【００３１】
請求項６に記載の発明によれば、追加されたゲートウェイ装置の機能が有効になったことを他のゲートウェイ装置に通知すると共に主ゲートウェイ装置に対してステート情報のリクエストを送信することにより、任意にゲートウェイ装置の追加が可能となる。
【発明を実施するための最良の形態】
【００３２】
以下図面を用いて本発明を詳細に説明する。図１は本発明に係るゲートウェイシステムの一実施例を示す構成図である。
【００３３】
図１において、ゲートウェイ装置１，２は、処理部１１，２１、同期処理部１２，２２、記憶部１３，２３を有する。処理部１１，２１は、パケットを処理する部分であって、ゲートウェイ装置１，２の種類によって処理は異なるが、例えば、ＮＡＴ装置の場合はアドレス変換処理、ファイアウォール装置の場合はフィルタ処理、トランスレータ装置の場合はプロトコル変換処理等を行う。
【００３４】
記憶部１３，２３は、処理部１１，２１により、規則情報とステート情報が格納されるメモリである。規則情報は、例えば、ＮＡＴ装置、トランスレータ装置の場合はアドレス変換規則、ファイアウォール装置の場合はフィルタ規則等に該当する。ステート情報は、例えば、送信元/宛先アドレス、送信元/宛先ポート番号、セッションの状態などのゲートウェイ装置にとって、クライアントＰＣやサーバが今までどのような状態であったかを示すものである。
【００３５】
同期処理部１２，２２は、ステート情報の更新が行われた際に処理部１１，２１からの通知を受け、更新されたステート情報を処理部１１，２１を介して記憶部１３，２３から入手し、相手先のゲートウェイ装置に送信する。また、相手先のゲートウェイ装置から送信されたステート情報を処理部１１，２１を介して記憶部１３，２３に格納する。
【００３６】
図２は、本発明に係るネットワークの構成を説明する図である。
図２において、サーバ３とゲートウェイ装置１，２はネットワーク６で接続される。クライアントＰＣ４、ゲートウェイ装置１，２はネットワーク７で接続される。サーバ３、クライアントＰＣ４相互の通信では、ゲートウェイ装置１が主装置として実際の処理を行う。ゲートウェイ装置１，２は専用ライン８で接続される。
【００３７】
ここで、ゲートウェイ装置１，２間のデータのやり取りは専用ライン８を介して行っても良いし、専用ラインを設けずにネットワーク６，７のいずれを介して行っても良い。
【００３８】
図３は、図１の構成におけるパケットフロー図である。
図１および図３を用いて、詳細な動作を説明する。
なお、以下に示す処理ステップの符号は、図１，図３の信号名に対応させている。
【００３９】
（Ｓ０１）クライアントＰＣ４がサーバ３に対して通信を開始する。
（Ｓ０２）ゲートウェイ装置１の処理部１１は、Ｓ０１でクライアントＰＣ４から送信されたパケットを受信する。処理部１１は、パケットが処理対象であるかを、記憶部１３内のステート情報、規則情報の順に参照を行う。ゲートウェイ装置１において、Ｓ０１のパケットは初めて処理を行うパケットのため、記憶部１３内のステート情報には対象とするエントリは存在しない。処理部１１は、規則情報を参照し処理対象であるかどうかを判断する。
（Ｓ０３）処理対象である場合、処理部１１は、Ｓ０１で受信したパケットを処理すると供に、規則情報を基に記憶部１３のステート情報に新しいエントリを追加する。
【００４０】
（Ｓ０４）ゲートウェイ装置１の処理部１１は、ステート情報の更新を行ったため、ゲートウェイ装置１内の同期処理部１２に通知する。
（Ｓ０５）ゲートウェイ装置１の処理部１１は、サーバ３に向けて処理を行ったパケットを送信する。
（Ｓ０６）Ｓ０５のパケットとほぼ同時に、またはその前後で、ゲートウェイ装置１の同期処理部１２は、処理部１１を介して更新したステート情報を入手し、他のゲートウェイ装置に対して広告する。
【００４１】
（Ｓ０７）ゲートウェイ装置２の同期処理部２２は、ステート情報の広告パケットであるＳ０６を受信し、処理部２１にその情報を渡す。
（Ｓ０８）ゲートウェイ装置２の処理部２１は、受け取った情報を基に自身の記憶部２３にあるステート情報の更新を行う。
（Ｓ０９）サーバ３はＳ０５で受信したパケットをうけて、返答する。
【００４２】
（Ｓ１０）ゲートウェイ装置１の処理部１１は、Ｓ０９でサーバ３から送信されたパケットを受信する。処理部１１は、パケットが処理対象であるかを、記憶部１３のステート情報、規則情報の順に参照を行う。Ｓ０９のパケットは既にゲートウェイ装置１の処理部１１が処理を行った通信に関するものなので、記憶部１３内のステート情報に対象となる情報が格納されているため処理対象と判断される。処理部１１は、パケットの処理を行ったのでステート情報を更新する。
（Ｓ１１）ステート情報を更新した場合、ゲートウェイ装置１の処理部１１は、他のゲートウェイ装置に対して、更新したステート情報を広告するためゲートウェイ装置１内の同期処理部１２に通知する。
（Ｓ１２）ゲートウェイ装置１の処理部１１は、クライアントＰＣ４に向けて処理を行ったパケットを送信する。
【００４３】
（Ｓ１３）ステート情報を更新した場合、Ｓ１２パケットとほぼ同時に、またはその前後で、ゲートウェイ装置１の同期処理部１２は、処理部１１を介して更新したステート情報を入手し、他のゲートウェイ装置に対して広告する。
（Ｓ１４）ゲートウェイ装置２の同期処理部２２は、ステート情報の広告パケットであるＳ１３を受信し、処理部２１にその情報を渡す。
（Ｓ１５）ゲートウェイ装置２の処理部２１は、受け取った情報を基に自身の記憶部２３内にあるステート情報の更新を行う。
【００４４】
（Ｓ１６）クライアントＰＣ４はサーバ３に対してパケットを送信する。
（Ｓ１７）ゲートウェイ装置１の処理部１１は、Ｓ１６でクライアントＰＣ４から送信されたパケットを受信する。処理部１１は、パケットが処理対象であるかを、記憶部１３のステート情報、規則情報の順に参照を行う。Ｓ１６のパケットは既にゲートウェイ装置１の処理部１１が処理を行った通信に関するものなので、記憶部１３内のステート情報に対象となる情報が格納されているため処理対象と判断される。処理部１１は、パケットの処理を行ったのでステート情報を更新する。
（Ｓ１８）ステート情報を更新した場合、ゲートウェイ装置１の処理部１１は他のゲートウェイ装置に対して、更新したステート情報を広告するためゲートウェイ装置１内の同期処理部１２に通知する。
【００４５】
（Ｓ１９）ゲートウェイ装置１の処理部１１は、サーバ３に向けて処理を行ったパケットを送信する。
（Ｓ２０）ステート情報を更新した場合、Ｓ１９のパケットとほぼ同時に、またはその前後で、ゲートウェイ装置１の同期処理部１２は、処理部１１を介して更新したステート情報を入手し、他のゲートウェイ装置に対して広告する。
（Ｓ２１）ゲートウェイ装置２の同期処理部２２は、ステート情報の広告パケットであるＳ２０を受信し、その情報を処理部２１に渡す。
【００４６】
（Ｓ２２）ゲートウェイ装置２の処理部２１は、受け取った情報を基に自身の記憶部２３内にあるステート情報の更新を行う。
（Ｓ２３）一定時間経過後、クライアントＰＣ４とサーバ３間で通信が行われなかった場合、ゲートウェイ装置１の処理部１１は対象となるステート情報を削除する。
（Ｓ２４）ゲートウェイ装置１の処理部１１は、削除したステート情報をゲートウェイ装置２に対して広告するため、ゲートウェイ装置１内の同期処理部１２に通知する。
【００４７】
（Ｓ２５）ゲートウェイ装置１の同期処理部１１は、削除したステート情報を他のゲートウェイ装置に対して広告する。
（Ｓ２６）ゲートウェイ装置２の同期処理部２２は、ステート情報の広告パケットであるＳ２５を受信し、その情報を処理部２１に渡す。
（Ｓ２７）ゲートウェイ装置２の処理部２１は、受け取った情報を基に自身の記憶部２３内にあるステート情報の削除を行う。
【００４８】
図４は、通信の途中でゲートウェイ装置が切り替わる場合を説明する図である。
図５は、図４におけるパケットフロー図である。
図４，図５を用いてクライアントＰＣ４からサーバ３にゲートウェイ装置１を介して通信を行っている途中でゲートウェイ装置２に切り替わる場合について説明する。
【００４９】
この動作例でも、ゲートウェイ装置１とゲートウェイ装置２が存在し、ゲートウェイ装置１が主装置として実際の処理を行い、ゲートウェイ装置２は従装置として動作し主装置であるゲートウェイ装置１を監視している。なお、以下に示す処理ステップの符号は、図４，図５の信号名に対応させている。
【００５０】
（Ｓ０１）クライアントＰＣ４がサーバ３に対して通信を開始する。
（Ｓ０２）ゲートウェイ装置１の処理部１１は、Ｓ０１でクライアントＰＣ４から送信されたパケットを受信する。処理部１１は、パケットが処理対象であるかを、記憶部１３のステート情報、規則情報の順に参照を行う。ゲートウェイ装置１の処理部１１において、Ｓ０１のパケットは初めて処理を行うパケットのため、記憶部１３内のステート情報には対象とするエントリは存在しない。処理部１１は、規則情報を参照し処理対象であるかどうかを判断する。
（Ｓ０３）処理対象である場合、処理部１１は、Ｓ０１で受信したパケットを処理すると供に、規則情報を基に記憶部１３のステート情報に新しいエントリを追加する。
【００５１】
（Ｓ０４）ゲートウェイ装置１の処理部１１は、ステート情報の更新を行ったため、ゲートウェイ装置１内の同期処理部１２に通知する。
（Ｓ０５）ゲートウェイ装置１の処理部１１は、サーバに向けて処理を行ったパケットを送信する。
（Ｓ０６）Ｓ０５のパケットとほぼ同時に、またはその前後で、ゲートウェイ装置１の同期処理部１２は、処理部１１を介して更新したステート情報を入手し、他のゲートウェイ装置に対して広告する。
【００５２】
（Ｓ０７）ゲートウェイ装置２の同期処理部２２は、ステート情報の広告パケットであるＳ０６を受信し、その情報を処理部２１に渡す。
（Ｓ０８）ゲートウェイ装置２の処理部２１は、受け取った情報を基に自身の記憶部２３にあるステート情報の更新を行う。
（Ｓ０９）サーバ３はＳ０５で受信したパケットをうけて、返答する。
【００５３】
（Ｓ１０）ゲートウェイ装置１の処理部１１は、Ｓ０９でサーバから送信されたパケットを受信する。処理部１１は、パケットが処理対象であるかを、記憶部１３のステート情報、規則情報の順に参照を行う。Ｓ０９のパケットは既にゲートウェイ装置１の処理部１１が処理を行った通信に関するものなので、記憶部１３内のステート情報に対象となる情報が格納されているため処理対象と判断される。処理部１１は、パケットの処理を行ったのでステート情報を更新する。
（Ｓ１１）ステート情報を更新した場合、ゲートウェイ装置１はゲートウェイ装置２に対して、更新したステート情報を広告するためゲートウェイ装置１の処理部１１は同期処理部１２に通知する。
（Ｓ１２）ゲートウェイ装置１の処理部１１は、クライアントＰＣ４に向けて処理を行ったパケットを送信する。
【００５４】
（Ｓ１３）ステート情報を更新した場合、Ｓ１２のパケットとほぼ同時に、またはその前後で、ゲートウェイ装置１の同期処理部は、処理部１１を介して更新したステート情報を入手し、他のゲートウェイ装置に対して広告する。
（Ｓ１４）ゲートウェイ装置２の同期処理部２２は、ステート情報の広告パケットであるＳ１３を受信し、その情報を処理部２１に渡す。
（Ｓ１５）ゲートウェイ装置２の処理部２１は、受け取った情報を基に自身の記憶部２３にあるステート情報の更新を行う。
【００５５】
（Ｓ１６）ゲートウェイ装置１の処理部１１は障害等により処理の継続ができなくなる。この時従装置として動作していたゲートウェイ装置２の処理部２１が主装置であるゲートウェイ装置１の障害を検知する。障害を検知したゲートウェイ装置２の処理部２１は、主装置として動作を始め実際の処理を行う。
（Ｓ１７）クライアントＰＣ４はサーバ３に対してパケットを送信する。
（Ｓ１８）ゲートウェイ装置２の処理部２１は、Ｓ１７でクライアントＰＣ４から送信されたパケットを受信する。処理部２１は、パケットが処理対象であるかを、記憶部２３のステート情報、規則情報の順に参照を行う。Ｓ１７のパケットはゲートウェイ装置２の処理部２１においては、初めて処理を行うパケットであるが、既にゲートウェイ装置１のステート情報とゲートウェイ装置２のステート情報は同期されているため、ゲートウェイ装置２の記憶部２３内のステート情報に対象となる情報が格納されている。従って、処理対象と判断される。処理部１１は、パケットの処理を行ったのでステート情報を更新する。
【００５６】
（Ｓ１９）ステート情報を更新した場合、ゲートウェイ装置２の処理部２１は、他のゲートウェイ装置に対して、更新したステート情報を広告するためゲートウェイ装置２内の同期処理部２２に通知する。
（Ｓ２０）ゲートウェイ装置２の処理部２１は、サーバ３に向けて処理を行ったパケットを送信する。
（Ｓ２１）ステート情報を更新した場合、Ｓ２０のパケットとほぼ同時に、またはその前後で、ゲートウェイ装置２の同期処理部２２は、処理部２１を介して更新したステート情報を入手し、他のゲートウェイ装置に対して広告する。この時他のゲートウェイ装置は存在しないため処理はされない。
【００５７】
（Ｓ２２）一定時間経過後、クライアントＰＣ４とサーバ３間で通信が行われなかった場合、ゲートウェイ装置２の処理部２１は、対象となるステート情報を削除する。
（Ｓ２３）ゲートウェイ装置２の処理部２１は、削除したステート情報を他のゲートウェイ装置に対して広告するため、ゲートウェイ装置２内の同期処理部に通知する。
（Ｓ２４）ゲートウェイ装置２の同期処理部２２は、削除したステート情報を処理部２１を介して入手し、他のゲートウェイ装置に対して広告する。
【００５８】
以上により、主ゲートウェイ装置が、パケットを処理しステート情報に変更を行う際に、他のゲートウェイ装置に行った変更を同期させることで、主ゲートウェイ装置が障害などで処理の継続が不可能になった場合、主ゲートウェイ装置が他のゲートウェイ装置へ切り替わった後も、主ゲートウェイ装置を介して行っていた通信は継続して行うことが可能になる。
また、ステート情報に変更が生じた場合に同期するため、差分のみを送信することにより不要な通信を行う必要がない。
さらに、サーバやクライアントＰＣは、ゲートウェイ装置の切り替わりを意識することなく通信できる。
【００５９】
なお、本実施例では、ゲートウェイ装置が２台の場合について説明したが、ゲートウェイ装置は、２台に限るものではなく、それ以上であっても良い。
従ゲートウェイ装置が複数あれば、従ゲートウェイ装置の１つが主ゲートウェイ装置に切り替わった場合に、他の従ゲートウェイ装置とステート情報を同期をとって共有することにより、さらに冗長化、高可用化することができる。
【００６０】
図６は本発明に係る第２の実施例を示す構成図である。
本実施例ではゲートウェイ装置を追加した場合を説明する。なお、各ゲートウェイ装置の構成は前出のものと同一なのでここでの説明は省略する。また、図６では、ゲートウェイ装置２の記載は便宜上省略している。
【００６１】
図７は、本発明に係るネットワークの構成を説明する図である。
図７において、サーバ３とゲートウェイ装置１，２，１０はネットワーク６で接続される。クライアントＰＣ４、ゲートウェイ装置１，２，１０はネットワーク７で接続される。サーバ３、クライアントＰＣ４相互の通信では、ゲートウェイ装置１，２が一つのグループとして動作している。この時ゲートウェイ装置１が主装置として動作をし、ゲートウェイ装置２は従装置として動作している。ゲートウェイ装置１０は動作していない(電源が入っていない、機能が有効でない等)。
【００６２】
図８は図６の構成におけるパケットフロー図である。図６および図８を用いて本実施例の動作を説明する。なお、以下に示す処理ステップの符号は、図６，図８の信号名に対応させている。
【００６３】
（Ｓ０１）ゲートウェイ装置１０が起動や機能の有効化等により動作を開始する。
（Ｓ０２）ゲートウェイ装置１０の処理部１０１が同期処理部１０２に対して機能が有効になったことを通知する。
（Ｓ０３）ゲートウェイ装置１０の同期処理部１０２は、他のゲートウェイ装置のステート情報と同期をするために、ゲートウェイ装置１０が属する全てのゲートウェイ装置に対してリクエストを送信する。
【００６４】
（Ｓ０４）主装置であるゲートウェイ装置１の同期処理部１１は、ゲートウェイ装置１０から送信されたリクエストＳ０３を受信する。従装置であるゲートウェイ装置２の同期処理部２２は、リクエストＳ０３を破棄する。ゲートウェイ装置１の同期処理部１２は、リクエストを受信したことを処理部１１に通知する。
（Ｓ０５）ゲートウェイ装置１の処理部１１は、記憶部１３のステート情報を参照して、ステート情報を収集する。
（Ｓ０６）ゲートウェイ装置１の同期処理部１１はステート情報を同期処理部１２に通知する。
【００６５】
（Ｓ０７）ゲートウェイ装置１の同期処理部１２はステート情報を、ゲートウェイ装置１０に対して送信する。
（Ｓ０８）ゲートウェイ装置１０の同期処理部１０２はＳ０７を受信し、処理部１０１に通知する。
（Ｓ０９）ゲートウェイ装置１０の処理部１０１は、受信したステート情報を基に、記憶部１０３内のステート情報を更新する。
【００６６】
（Ｓ１０）ゲートウェイ装置１０の同期処理部１０２は必要があれば、ゲートウェイ装置１に対して、受信通知を送信する。
【００６７】
このように、追加されたゲートウェイ装置の機能が有効になったことを他のゲートウェイ装置に通知すると共に主ゲートウェイ装置に対してステート情報のリクエストを送信することにより、任意にゲートウェイ装置の追加が可能となる。
【００６８】
図９は、本発明に係る第３の実施例を示す構成図である。
図９において、ゲートウェイ装置１１，１４の構成は前出のゲートウェイ装置の構成と同様に処理部１１１，１４１、同期処理部１１２，１４２、記憶部１１３，１４３から成るのでここでの説明は省略する。また、後述するゲートウェイ装置１２，１５は、便宜上省略している。
【００６９】
ゲートウェイ装置１３０は、処理部１３１、記憶部１３３ａ，１３３ｂ、同期処理部１３２を有する。処理部１３１および同期処理部１３２は、他のゲートウェイ装置と同様の機能ブロックである。
【００７０】
記憶部１３３ａには、処理部１３１により、規則情報（図示せず）とステート情報Ａが、格納され、記憶部１３３ｂには、処理部１３１によりステート情報Ｂが格納される。ステート情報Ａは後述する第１グループのステート情報であり、ステート情報Ｂは、第２グループのステート情報である。
【００７１】
図１０は、本発明に係るネットワークの構成を説明する図である。
図１０において、ゲートウェイ装置１１０から１５０、サーバ３１，３２はネットワーク６で接続され、ゲートウェイ装置１１０から１５０、クライアントＰＣ４１，４２がネットワーク７で接続されている。
【００７２】
ここで、ゲートウェイ装置１１０からゲートウェイ装置１３０はゲートウェイ装置のグループである第１グループ１００に属しており、仮想的な１台のゲートウェイ装置のように動作する。またゲートウェイ装置１３０からゲートウェイ装置１５０はゲートウェイ装置のグループである第２グループ２００に属しており、仮想的は一台のゲートウェイ装置のように動作する。
【００７３】
この時、第１グループ１００において、ゲートウェイ装置１１０が主装置として動作をし、ゲートウェイ装置１２０とゲートウェイ装置１３０は従装置として動作している。また第２グループ２００において、ゲートウェイ装置１４０が主装置として動作をし、ゲートウェイ装置１５０とゲートウェイ装置１３０が従装置として動作している。
【００７４】
サーバ３１とクライアントＰＣ４１はゲートウェイ装置のグループである第１グループ１００を使用するように設定がされている。サーバ３２とクライアントＰＣ４２はゲートウェイ装置のグループである第２グループ２００を使用するように設定されている。
【００７５】
図１１は図９の構成におけるパケットフロー図である。図９および図１１を用いて動作を説明する。なお、以下に示す処理ステップの符号は、図９，図１１の信号名に対応させている。
【００７６】
（Ｓ０１）クライアントＰＣ４１がサーバ３１に対して通信を開始する。
（Ｓ０２）ゲートウェイ装置１１０の処理部１１１は、Ｓ０１でクライアントＰＣ４１から送信されたパケットを受信する。処理部１１１は、パケットが処理対象であるかを、記憶部１１３のステート情報、規則情報の順に参照を行う。ゲートウェイ装置１１０の処理部１１１において、Ｓ０１のパケットは初めて処理を行うパケットのため、記憶部１１３のステート情報には対象とするエントリは存在しない。処理部１１１は、規則情報を参照し処理対象であるかどうかを判断する。
（Ｓ０３）処理対象である場合、処理部１１１は、Ｓ０１で受信したパケットを処理すると供に、規則情報を基に記憶部１１３のステート情報に新しいエントリを追加する。
【００７７】
（Ｓ０４）ゲートウェイ装置１１０の処理部１１１は、ステート情報の更新を行ったため、ゲートウェイ装置１１０内の同期処理部１１２に通知する。
（Ｓ０５）ゲートウェイ装置１１０の処理部１１２は、サーバ３１に向けて処理を行ったパケットを送信する。
（Ｓ０６）Ｓ０５のパケットとほぼ同時に、またはその前後で、ゲートウェイ装置１１０は更新したステート情報を第１グループに属する他のゲートウェイ装置に対して広告する。
【００７８】
（Ｓ０７）ゲートウェイ装置１３０の同期処理部１３２は、ステート情報の広告パケットであるＳ０６を受信し、その情報を処理部１３１に渡す。
（Ｓ０８）ゲートウェイ装置１３０の処理部１３１は、受け取った情報を基に記憶部１３３ａ内にある第１グループ用のステート情報Ａの更新を行う。ここでは便宜上ステート情報を各グループ毎に保持しているが、必ずしも別々に保持する必要はない。
（Ｓ０９）サーバ３１は（Ｓ０５）で受信したパケットをうけて、返答する。
【００７９】
（Ｓ１０）ゲートウェイ装置１１０の処理部１１１は、Ｓ０９でサーバ３１から送信されたパケットを受信する。処理部１１１は、パケットが処理対象であるかを、ステート情報、規則情報の順に参照を行う。Ｓ０９のパケットは既にゲートウェイ装置１１０が処理を行った通信に関するものなので、記憶部１１３内に対象となるステート情報が格納されているため処理対象と判断される。処理部１１１はパケットの処理を行ったのでステート情報を更新する。
（Ｓ１１）ステート情報を更新した場合、ゲートウェイ装置１１０の処理部１１１は、他のゲートウェイ装置に対して、更新したステート情報を広告するためゲートウェイ装置１１０内の同期処理部１１２に通知する。
（Ｓ１２）ゲートウェイ装置１１０の処理部１１１は、クライアントＰＣ４１に向けて処理を行ったパケットを送信する。
【００８０】
（Ｓ１３）ステート情報を更新した場合、Ｓ１２のパケットとほぼ同時に、またはその前後で、ゲートウェイ装置１１０の同期処理部１１２は、処理部１１１を介して更新したステート情報を入手し、第１グループ１００に属する他のゲートウェイ装置に対して広告する。
（Ｓ１４）ゲートウェイ装置１３０の同期処理部１３２は、ステート情報の広告パケットであるＳ１３を受信し、その情報を処理部１３１に渡す。
（Ｓ１５）ゲートウェイ装置１３０の処理部１３１は、受け取った情報を基に記憶部１３３ａ内にある第１グループ用のステート情報Ａの更新を行う。
【００８１】
（Ｓ１６）クライアントＰＣ４１はサーバ３１に対してパケットを送信する。
（Ｓ１７）ゲートウェイ装置１１０の処理部１１１は、Ｓ１６でクライアントＰＣ４１から送信されたパケットを受信する。処理部１１１は、パケットが処理対象であるかを、記憶部１１３のステート情報、規則情報の順に参照を行う。Ｓ１６のパケットは既にゲートウェイ装置１１０の処理部１１１が処理を行った通信に関するものなので、記憶部１１３内に対象となるステート情報が格納されているため処理対象と判断される。処理部１１１は、パケットの処理を行ったのでステート情報を更新する。
（Ｓ１８）ステート情報を更新した場合、ゲートウェイ装置１１０の処理部１１１は、他のゲートウェイ装置に対して、更新したステート情報を広告するためゲートウェイ装置１１０内の同期処理部１１２に通知する。
【００８２】
（Ｓ１９）ゲートウェイ装置１１０の処理部１１１は、サーバ３１に向けて処理を行ったパケットを送信する。
（Ｓ２０）ステート情報を更新した場合、Ｓ１９のパケットとほぼ同時に、またはその前後で、ゲートウェイ装置１１０の同期処理部１１２は、処理部１１１を介して更新したステート情報を取得し、第１グループ１００に属する他のゲートウェイ装置に対して広告する。
（Ｓ２１）ゲートウェイ装置１３０の同期処理部１３２は、ステート情報の広告パケットであるＳ２０を受信し、その情報を処理部１３１に渡す。
【００８３】
（Ｓ２２）ゲートウェイ装置１３０の処理部１３１は、受け取った情報を基に記憶部１３３ａ内にある第１グループ用のステート情報Ａの更新を行う。
（Ｓ２３）クライアントＰＣ４２がサーバ３２に対して通信を開始する。
（Ｓ２４）ゲートウェイ装置１４０の処理部１４１は、Ｓ２３でクライアントＰＣ４２から送信されたパケットを受信する。処理部１４１は、パケットが処理対象であるかを、記憶部１４３のステート情報、規則情報の順に参照を行う。ゲートウェイ装置１４０の処理部１４１において、Ｓ２３のパケットは初めて処理を行うパケットのため、記憶部１４３内のステート情報には対象とするエントリは存在しない。処理部１４１は、記憶部１４３の規則情報を参照し処理対象であるかどうかを判断する。
【００８４】
（Ｓ２５）処理対象である場合、処理部１４１は、Ｓ２３で受信したパケットを処理すると供に、規則情報を基に記憶部１４３のステート情報に新しいエントリを追加する。
（Ｓ２６）ゲートウェイ装置１４０の処理部１４１は、ステート情報の更新を行ったため、ゲートウェイ装置１４０内の同期処理部１４２に通知する。
（Ｓ２７）ゲートウェイ装置１４０の処理部１４１は、サーバ３２に向けて処理を行ったパケットを送信する。
【００８５】
（Ｓ２８）Ｓ２７のパケットとほぼ同時に、またはその前後で、ゲートウェイ装置１４０の同期処理部１４２は、処理部１４１を介して更新したステート情報を入手し、第２グループ２００に属する他のゲートウェイ装置に対して広告する。
（Ｓ２９）ゲートウェイ装置１３０の同期処理部１３２は、ステート情報の広告パケットであるＳ２８を受信し、その情報を処理部１３１に渡す。
（Ｓ３０）ゲートウェイ装置１３０の処理部１３１は、受け取った情報を基に記憶部１３３ｂ内にある第２グループ用のステート情報Ｂの更新を行う。
【００８６】
（Ｓ３１）サーバ３２はＳ２７で受信したパケットをうけて、返答する。
（Ｓ３２）ゲートウェイ装置１４０の処理部１４１は、Ｓ３１でサーバ３２から送信されたパケットを受信する。処理部１４１は、パケットが処理対象であるかを、記憶部１４３のステート情報、規則情報の順に参照を行う。Ｓ３２のパケットは既にゲートウェイ装置１４０の処理部１４１が処理を行った通信に関するものなので、記憶部１４３内に対象となるステート情報が格納されているため処理対象と判断される。処理部１４１はパケットの処理を行ったのでステート情報を更新する。
（Ｓ３３）ステート情報を更新した場合、ゲートウェイ装置１４０の処理部１４１は、他のゲートウェイ装置に対して、更新したステート情報を広告するためゲートウェイ装置１４０内の同期処理部１４２に通知する。
【００８７】
（Ｓ３４）ゲートウェイ装置１４０の処理部１４１は、クライアントＰＣ４２に向けて処理を行ったパケットを送信する。
（Ｓ３５）ステート情報を更新した場合、Ｓ３４のパケットとほぼ同時に、またはその前後で、ゲートウェイ装置１４０の同期処理部１４２は、処理部１４１を介して更新したステート情報を入手し、第２グループに属する他のゲートウェイ装置に対して広告する。
（Ｓ３６）ゲートウェイ装置１３０の同期処理部１３２は、ステート情報の広告パケットであるＳ３５を受信し、その情報を処理部１３１に渡す。
【００８８】
（Ｓ３７）ゲートウェイ装置１３０の処理部１３１は、受け取った情報を基に記憶部１３３ｂ内にある第２グループ用のステート情報Ｂの更新を行う。
（Ｓ３８）クライアントＰＣ４２はサーバ３２に対してパケットを送信する。
（Ｓ３９）ゲートウェイ装置１４０の処理部１４１は、Ｓ３８でクライアントＰＣ４２から送信されたパケットを受信する。処理部１４１は、パケットが処理対象であるかを、記憶部１４３のステート情報、規則情報の順に参照を行う。Ｓ３８のパケットは既にゲートウェイ装置１４０の処理部１４１が処理を行った通信に関するものなので、記憶部１４３内に対象となるステート情報が格納されているため処理対象と判断される。処理部１４１は、パケットの処理を行ったのでステート情報を更新する。
【００８９】
（Ｓ４０）ステート情報を更新した場合、ゲートウェイ装置１４０の処理部１４１は、他のゲートウェイ装置に対して、更新したステート情報を広告するためゲートウェイ装置１４０内の同期処理部１４２に通知する。
（Ｓ４１）ゲートウェイ装置１４０の処理部１４１は、サーバ３２に向けて処理を行ったパケットを送信する。
（Ｓ４２）ステート情報を更新した場合、Ｓ４１のパケットとほぼ同時に、またはその前後で、ゲートウェイ装置１４０の同期処理部１４２は、処理部１４１を介して更新したステート情報を入手し、第２グループ２００に属する他のゲートウェイ装置に対して広告する。
【００９０】
（Ｓ４３）ゲートウェイ装置１３０同期処理部１３１は、ステート情報の広告パケットであるＳ４３を受信し、その情報を処理部１３１に渡す。
（Ｓ４４）ゲートウェイ装置１３０の処理部１３１は、受け取った情報を基に記憶部１３３ｂにある第２グループ用のステート情報Ｂの更新を行う。  
【００９１】
以上により、複数のゲートウェイ装置のグループが存在し、いずれのグループにも属する従ゲートウェイ装置が存在する場合において、各グループの主ゲートウェイ装置のステート情報が、いずれのグループにも属する従ゲートウェイ装置に同期をとって共有される。
このように、複数のグループに属するように従ゲートウェイ装置を設置することによってシステムの設計が柔軟に行える。
【００９２】
なお、上述した実施例において、処理部が処理手段、同期処理部が同期処理手段、記憶部が記憶手段に相当する。
また、処理部および同期処理部は、例えば演算装置とソフトウェアにより実現できる。
従って、機能ブロックとして、実施例のように処理部と同期処理部とを分けて設けても良いし、機能を統合した処理部を１つ設けるようにしても良い。処理部が同期処理部の機能の一部または全部を担うこともできるし、同期処理部が処理部の機能の一部または全部を担うこともできる。
【００９３】
なお、本発明は、上記実施例に限定されることなく、その本質から逸脱しない範囲で更に多くの変更、変形をも含むものである。
【図面の簡単な説明】
【００９４】
【図１】本発明に係るゲートウェイシステムの一実施例を示す構成図である。
【図２】本発明に係るネットワークの構成を説明する図である。
【図３】図１の構成におけるパケットフロー図である。
【図４】通信の途中でゲートウェイ装置が切り替わる場合を説明する図である。
【図５】図４におけるパケットフロー図である。
【図６】本発明に係る第２の実施例を示す構成図である。
【図７】本発明に係るネットワークの構成を説明する図である。
【図８】図６の構成におけるパケットフロー図である。
【図９】本発明に係る第３の実施例を示す構成図である。
【図１０】本発明に係るネットワークの構成を説明する図である。
【図１１】図９の構成におけるパケットフロー図である。
【図１２】従来のゲートウェイシステムの一例を示した構成図である。
【図１３】従来のゲートウェイシステムの他の動作説明図である。
【符号の説明】
【００９５】
１、２  ゲートウェイ装置
３  サーバ
４  クライアントＰＣ
１０  ゲートウェイ装置
１１、２１  処理部
１２、２２  同期処理部
１３、２３  記憶部
３１、３２  サーバ
４１、４２  クライアントＰＣ
１０１  処理部
１０２  同期処理部
１０３  記憶部
１１０、１２０、１３０、１４０、１５０  ゲートウェイ装置
１１１、１３１、１４１  処理部
１１２、１３２、１４２  同期処理部
１１３、１３３ａ、１３３ｂ、１４３  記憶部
【図１】
2006310928.tif 000003
【図２】
2006310928.tif 000004
【図３】
2006310928.tif 000005
【図４】
2006310928.tif 000006
【図５】
2006310928.tif 000007
【図６】
2006310928.tif 000008
【図７】
2006310928.tif 000009
【図８】
2006310928.tif 000010
【図９】
2006310928.tif 000011
【図１０】
2006310928.tif 000012
【図１１】
2006310928.tif 000013
【図１２】
2006310928.tif 000014
【図１３】
2006310928.tif 000015