JP4244384B2 - 冗長化パケット処理装置、及び、その冗長化方法 - Google Patents

冗長化パケット処理装置、及び、その冗長化方法 Download PDF

Info

Publication number
JP4244384B2
JP4244384B2 JP2005093675A JP2005093675A JP4244384B2 JP 4244384 B2 JP4244384 B2 JP 4244384B2 JP 2005093675 A JP2005093675 A JP 2005093675A JP 2005093675 A JP2005093675 A JP 2005093675A JP 4244384 B2 JP4244384 B2 JP 4244384B2
Authority
JP
Japan
Prior art keywords
session state
packet
packet processing
storage unit
session
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005093675A
Other languages
English (en)
Other versions
JP2006279375A (ja
Inventor
秀一 狩野
昌弘 地引
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2005093675A priority Critical patent/JP4244384B2/ja
Publication of JP2006279375A publication Critical patent/JP2006279375A/ja
Application granted granted Critical
Publication of JP4244384B2 publication Critical patent/JP4244384B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、冗長化パケット処理装置、及び、その冗長化方法に関し、さらに詳しくは、冗長化構成によりパケットの処理を行う冗長化パケット処理装置、及び、そのような冗長化パケット処理装置における冗長化方法に関する。
ネットワークを構成するパケット処理装置には、例えば、IPネットワークを構成するルータ装置、ルータ機能を有するファイアウォール装置などのアクセス制御装置、IPsecゲートウエイなどのVPN終端装置等がある。これらパケット処理装置は、必要に応じて、受信パケットが属する上位層のセッションを識別し、識別したセッションの状態と、受信パケットのヘッダの内容とに応じて、パケットの転送や破棄等のパケット処理を行う。
ここで、複数のパケット処理装置を並列に配置して冗長化されたネットワーク中継装置が知られている(例えば非特許文献1参照)。図11は、非特許文献1に記載のOpenBSDにおける冗長化されたネットワーク中継装置の構成を示している。ルータ装置110及び120は、それぞれ現用及び予備として用いられる。ルータ装置110及び120は、それぞれ、制御用データリンク140を介して相互に接続されており、データリンク130−1〜130−Nを介して、隣接ノード150−1〜150−Nに対して並列に接続されている。ルータ装置110及び120は、それぞれ同一のパケット処理を実行可能に構成されており、各隣接ノード150に対して、単一のルータ装置として振る舞う。
ネットワーク中継装置100では、現用ルータ装置110が稼動している間は、その現用ルータ装置110がパケットの転送処理などを行い、予備ルータ装置120は、パケットの転送処理などは行わずに待機する。予備ルータ装置120は、現用ルータ装置110の死活状態の監視や、セッション状態の冗長化などを行い、現用ルータ装置110がその稼動を停止したと判断すると、現用ルータ装置110に代わり、自身がパケットの転送処理などを行うように、動作を変更する。このような動作により、現用ルータ装置110が、何らかの障害で稼動を停止しても、隣接ノード150からは、ネットワーク中継装置100が稼動し続けているように見え、現用ルータ装置110の停止を隠蔽することができる。
図12は、ネットワーク中継装置の詳細な構成を示している。現用ルータ装置110は、インタフェース部211により、隣接ノード150(図11)からのパケットを受領する。パケット処理部212は、パケット処理規則219に従って、フィルタリングなどのパケット処理を実行する。このとき、パケット処理部212は、パケット処理を、セッション状態213を参照・更新しながら行う。処理されたパケットは、フィルタ規則により破棄されない場合は、次ホップに向けて、何れかのインタフェース部211より送出される。
状態同期タイマ215は、所定の周期でタイムアウトを起こす。更新状態送信部216は、状態同期タイマ215のタイムアウトを契機として、セッション状態213を検査し、前回の検査時点以降に更新されたセッション状態を抜き出す。その後、制御用インタフェース部214を通して、予備ルータ装置120へ、更新されたセッション状態を送信する。稼動通知タイマ218は、状態同期タイマ215とは独立に、所定の間隔でタイムアウトを起こす。稼動通知送信部217は、稼動通知タイマ218のタイムアウトを契機として、制御用インタフェース部214を通して、所定の形式の稼動通知メッセージを広告する。
予備ルータ装置120では、動作モード部228が、予備/現用の動作状態を保持している。動作モード部228には、当初、動作状態「予備」が格納される。予備ルータ装置120は、動作モード部228が、動作状態「予備」を保持するときには、自身ではパケット処理を行わず、セッション状態223の冗長化と、現用ルータ装置110の死活状態の監視のみを行う。
現用ルータ装置110によって送出されたセッション状態は、制御用データリンク140を通して、更新状態受信部225により受領される。更新状態受信部225は、現用ルータ装置110から受信したセッション状態を、セッション状態223に反映させる。これにより、現用ルータ装置110が稼動し続ける間は、予備ルータ装置120は、一定の間隔で、保持するセッション状態223を、現用ルータ装置110のセッション状態213と同期させることができる。
死活監視タイマ227は、所定の間隔でタイムアウトを発生する。ただし、稼動通知受信部226が現用ルータ装置110からの稼動通知を受信すると、タイマをリセットし、タイムアウトを延期させる。死活監視タイマ227のタイムアウト間隔は、現用ルータ装置110の稼動通知タイマ218のタイムアウト間隔よりも長く設定されている。従って、現用ルータ装置110が稼動通知を送信し続ける間は、死活監視タイマ227はタイムアウトを発生しない、
現用ルータ装置110に何らかの障害が発生し、現用ルータ装置110が死活監視タイマ227のタイムアウト周期の間に稼動通知を送信できなくなると、死活監視タイマ227は、タイムアウトを発生する。死活監視タイマ227がタイムアウトを発生すると、予備ルータ装置120は、動作モード部228が保持する動作状態を、「予備」から「現用」に切り替え、現用のルータ装置として動作する。
予備ルータ装置120のパケット処理規則229には、現用ルータ装置110のパケット処理規則219と同一の規則が設定されている。予備ルータ装置120は、動作モード部228が保持する動作状態が「現用」となると、インタフェース部221からパケットを受信し、パケット処理部222でパケットを処理して、セッション状態223の参照・更新を行う。ネットワーク中継装置100では、このような動作により、正常時におけるセッション状態の冗長化と、フェイルオーバの処理とが実現される。
Firewall Failover with pfsync and CARP http://www.countersiege.com/doc/pfsync-carp/
上記従来のネットワーク装置では、所定時間間隔で、セッション状態213で更新された全てのセッション状態を、現用ルータ装置110から、予備ルータ装置120へと送信する必要がある。セッション状態の更新は、パケットの通過頻度が高くなるほど多く発生するため、ユーザートラフィックが増えるほど、パケット処理部212が処理すべきパケットが増加すると共に、現用ルータ装置110から予備ルータ装置120に送信するセッション状態が増加する。このため、ユーザトラフィックが増大すると、現用ルータ装置110に多大な負荷がかかるという問題がある。
本発明は、上記従来技術の問題点を解消し、冗長化構成のパケット処理装置において、ユーザートラフィックが増加した際にも、現用のパケット処理装置に多大な負荷がかからない冗長化パケット装置及びその冗長化方法を提供することを目的とする。
上記目的を達成するために、本発明の冗長化パケット処理装置は、通信のセッション状態を記憶する第1のセッション状態記憶部と、データリンクから受信したパケットを、所定のパケット処理規則に基づいて処理し、該処理内容に応じて、受信したパケットを送信先のデータリンクに転送し、該パケットの転送に伴って、前記第1のセッション状態記憶部が記憶するセッション状態を更新する第1のパケット処理部とを備える現用パケット処理装置と、通信のセッション状態を記憶する第2のセッション状態記憶部と、前記データリンクから受信したパケットを、前記所定のパケット処理規則に基づいて処理し、送信先のデータリンクに転送すべきパケットに基づいて、前記第2のセッション状態記憶部が記憶するセッション状態を更新する第2のパケット処理部とを備える予備パケット処理装置と、前記第1のセッション状態記憶部が記憶するセッション状態から要約情報を作成する第1の要約作成部と、前記第2のセッション状態記憶部が記憶するセッション状態から要約情報を作成する第2の要約作成部と、前記第1の要約作成部が作成した要約情報と、前記第2の要約情報作成部が作成した要約情報とを比較する比較部と、該比較部による比較の結果、双方の要約情報が一致しないときには、前記第2のセッション状態記憶部が記憶するセッション状態部分を、前記第1のセッション状態記憶部が記憶するセッション状態部分と一致させるセッション状態同期部とを有する同期制御手段とを備えることを特徴とする。
本発明のセッション状態同期方法は、現用パケット処理装置及び予備パケット処理装置を有する冗長化パケット処理装置のセッション状態を、同期制御装置を用いて同期させる方法であって、現用パケット処理装置が、データリンクから受信したパケットを、所定のパケット処理規則に基づいて処理するステップと、現用パケット処理装置が、前記パケット処理ステップでの処理内容に応じて、受信パケットを、送信先のデータリンクに転送するステップと、前記現用パケット処理装置が、前記パケット転送処理に伴って、第1のセッション状態記憶部が記憶するセッション状態を更新するステップと、前記予備パケット処理装置が、前記データリンクから受信したパケットを、前記所定のパケット処理規則に基づいて処理するステップと、前記予備パケット処理装置が、受信パケットを送信先のデータリンクに転送すべきパケットにより、第2のセッション状態記憶部が記憶するセッション状態を更新するステップと、前記同期制御装置が、前記第1及び第2のセッション状態記憶部が記憶するセッション状態からそれぞれ要約情報を作成するステップと、前記同期制御装置が、前記第1のセッション状態記憶部が記憶するセッション状態から作成された要約情報と、前記第2のセッション状態記憶部が記憶するセッション状態から作成された要約情報とを比較するステップと、前記比較ステップによる比較の結果、双方の要約情報が一致しないと、前記同期制御装置が、前記第2のセッション状態記憶部が記憶するセッション状態部分を、前記第1のセッション状態記憶部が記憶するセッション状態部分と一致させるステップとを有することを特徴とする。
本発明の冗長化パケット処理装置及びセッション状態同期方法では、現用パケット処理装置及び予備パケット処理装置は、同一のデータリンクからパケット受信し、同様なパケット処理を実行することにより、第1及び第2のセッション状態が記憶するセッション状態を更新する。本発明では、第1及び第2のセッション状態が記憶するセッション状態が一致しているか否かを、例えばハッシュ関数を用いて作成された要約情報を比較することにより行っているため、第1及び第2のセッション状態記憶部が記憶するセッション状態を、逐一比較する必要がない。このため、現用パケット処理装置から、予備パケット処理装置に、第1のセッション状態記憶部が記憶するセッション状態の全てを送信して、第1及び第2のセッション状態記憶部が記憶する一致しているか否かを確認する場合に比して、現用パケット処理装置の負担を軽減できる。
本発明の冗長化パケット処理装置では、前記第1及び第2の要約作成部は、それぞれ前記第1及び第2のセッション状態が記憶するセッション状態を複数の範囲に分割し、分割したそれぞれの範囲について要約情報を作成することが好ましい。また、本発明のセッション状態同期方法は、前記セッション状態から要約情報を作成するステップでは、前記同期制御装置は、前記第1及び第2のセッション状態記憶部が記憶するセッション状態をそれぞれ複数の範囲に分割し、該分割したそれぞれの範囲について要約情報を作成することが好ましい。例えば、全セッション数が10,000個であったとき、そのセッション数を100分割して要約情報を作成すると、第1及び第2のセッション状態記憶部に記憶されたセッション状態から、それぞれ100個の要約情報が作成される。この100個の要約情報のうちで、一致しない要約情報を探し出すことで、全セッションのうちのどの部分のセッション状態が一致していないかのあたりをつけることができる。
本発明の冗長化パケット処理装置では、前記セッション状態同期部は、一致しないセッション状態部分が特定されるまで、前記第1及び第2の要約作成部に、一致しない要約情報に対応するセッション状態の範囲を分割した各分割範囲について要約情報を作成させ、該作成させた要約情報を前記比較部に相互に比較させる不一致セッション状態特定部を有し、該不一致セッション状態特定部で不一致であると特定されたセッション状態部分について、前記第2のセッション状態記憶部が記憶するセッション状態部分を、前記第1のセッション状態記憶部が記憶するセッション状態部分と一致させる構成を採用できる。また、本発明のセッション状態同期方法では、前記セッション状態を一致させるステップは、前記同期制御装置が、第1のセッション状態記憶部が記憶するセッション状態及び第2のセッション状態記憶部が記憶するセッション状態について、一致しないセッション状態部分が特定されるまで、一致しない要約情報に対応するセッション状態の範囲を分割した各分割範囲について要約情報を作成し、該作成した要約情報を相互に比較して、不一致セッション状態部分を特定するステップと、前記同期制御装置が、前記不一致セッション状態特定ステップで不一致であると特定されたセッション状態部分について、前記第2のセッション状態記憶部が記憶するセッション状態部分を、前記第1のセッション状態記憶部が記憶するセッション状態部分と一致させるステップとを有する構成を採用できる。この場合、要約情報の作成元のセッション状態の範囲を狭くしていき、単一のセッション状態から作成した要約情報を比較することで、一致しないセッション状態を特定することができる。このように特定したセッション状態について、第2のセッション状態記憶部に記憶されたセッション状態を、第1のセッション状態記憶部に記憶されたセッション状態と一致させることで、双方のセッション状態を一致させることができる。このとき、現用パケット装置側からは、不一致であると特定されたセッション状態を補正するために必要な情報のみを送信すればよいため、現用パケット処理装置の処理負担を軽減できる。
本発明の冗長化パケット処理装置は、前記第1のパケット処理部により転送された所定のパケットをセッションごとに記憶するパケット蓄積部を更に備え、前記セッション状態同期部は、前記不一致であると特定されたセッション状態部分について、当該セッション状態の所定のパケットを前記パケット蓄積部から取得し、該取得した所定の転送パケットを第2のパケット処理部に処理させることにより、前記第2のセッション状態記憶部が記憶するセッション状態を補正する構成を採用できる。また、本発明のセッション状態同期方法では、現用パケット処理装置が、セッションごとに、最後に転送したパケットを保持するステップを更に有し、前記セッション状態を一致させるステップでは、前記同期制御装置は、不一致であると特定されたセッション状態部分について、前記現用パケット処理装置から、最後に転送したパケットを取得し、該取得したパケットを、前記予備パケット処理装置に処理させることにより、第2のセッション状態記憶部が記憶するセッション状態を補正する構成を採用できる。この場合、一致しないセッションの所定のパケットを予備パケット処理装置で処理させることにより、第2のセッション状態記憶部が記憶するセッション状態を、第1のセッション状態記憶部が記憶するセッション状態と一致させることができる。
本発明の冗長化パケット処理装置では、前記セッション状態同期部は、前記第1のセッション状態記憶部から、前記不一致であると特定されたセッション状態部分を取得し、該取得したセッション状態部分により、前記第2のセッション状態記憶部が記憶するセッション状態を補正する構成を採用することができる。また、本発明のセッション状態同期方法は、前記セッション状態を一致させるステップでは、前記同期制御装置は、不一致であると特定されたセッション状態部分のセッション状態を、前記第1のセッション状態記憶部から取得し、該取得したセッション状態により、第2のセッション状態記憶部が記憶するセッション状態を補正する構成を採用できる。この場合、一致しないセッション状態を、第1のセッション状態記憶部から取得して、その取得したセッション状態で第2のセッション状態記憶部を補正することにより、第2のセッション状態記憶部が記憶するセッション状態を、第1のセッション状態記憶部が記憶するセッション状態と一致させることができる。
本発明の冗長化パケット処理装置は、前記現用パケット処理装置及び前記予備パケット処理装置が、状態同期タイマを更に有し、該状態同期タイマがタイムアウトを発生させると、前記同期制御手段は、前記第1及び第2の要約作成部にそれぞれ要約情報を作成させ、第2のセッション状態記憶部が記憶するセッション状態を、第1のセッション状態記憶部が記憶するセッション状態と一致させる処理を行う構成を採用できる。この場合、所定の条件でタイムアウトを発生させる状態同期タイマを使用することで、定期的に、第1及び第2のセッション状態記憶部が記憶するセッション状態を同期させることができる。
本発明の冗長化パケット処理装置では、前記現用パケット処理装置及び前記予備パケット処理装置内の状態同期タイマは、それぞれ前記第1及び第2のパケット処理部が所定個数のパケットを処理するごとにタイムアウトを発生する構成を採用できる。この場合、現用パケット処理装置と、予備パケット処理装置とで、ほぼ同じタイミングでタイムをアウトを発生させることができる。
本発明の冗長化パケット処理装置は、前記現用パケット処理装置が、所定周期で稼動通知を送信する稼動通知部を更に有し、前記予備パケット処理装置が、前記稼動通知部が送信する稼動通知を所定期間内に受信できるか否かにより前記現用パケット処理装置が稼動中であるか否かを監視する死活監視部を更に有し、該死活監視部が、前記現用パケット処理装置が稼動を停止したと判断すると、前記第2のパケット処理部は、パケット処理の内容に応じて、パケットを送信先のデータリンクに転送する構成を採用できる。このようにすることで、外部から見て、現用パケット処理装置の稼動の停止を隠蔽できる。
本発明の冗長化パケット処理装置では、前記第1及び第2の要約情報作成部は、それぞれハッシュ関数を用いて要約情報を作成する構成を採用できる。
本発明の冗長化パケット処理装置及びセッション状態の同期方法では、現用パケット処理装置及び予備パケット処理装置のそれぞれにおいて、受信パケットに基づくセッション状態の更新を行い、現用パケット処理装置のセッション状態と、予備パケット処理装置のセッション状態とを、要約情報を用いて比較する。このように、要約情報を用いて、双方のセッション状態を比較しているため、現用パケット処理装置に処理負担を掛けずに、かつ、低コストで、セッション状態が一致していることを確認できる。
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図1は、本発明の一実施形態の冗長化パケット処理装置の構成を機能ブロック図で示している。この冗長化パケット処理装置(ネットワーク中継装置)300は、現用のパケット処理装置(現用ルータ装置)310と、予備のパケット処理装置(予備ルータ装置)330とを有する。現用ルータ装置310及び予備ルータ装置330は、それぞれ独立に、複数のマルチアクセスデータリンク130に接続されている。各マルチアクセスデータリンク130には、図示しない隣接ノードがそれぞれ接続されており、現用ルータ装置310及び予備ルータ装置330は、隣接ノードから送信されたパケット受信して、受信パケットに対する処理を行う。
現用ルータ装置310は、インタフェース部311−1〜311−N、パケット処理部312、パケット処理規則記憶部313、セッション状態記憶部314、状態圧縮部316、同期制御部317、状態同期タイマ318、制御用インタフェース部319、稼動通知送信部320、及び、稼動通知タイマ321を備える。予備ルータ装置330は、インタフェース部331−1〜331−N、パケット処理部332、パケット処理規則記憶部333、セッション状態記憶部334と、状態圧縮部335、同期制御部336、状態同期タイマ337、制御用インタフェース部338、稼動通知受信部339、死活監視タイマ340、及び、動作モード保持部341を備える。
現用ルータ装置310の状態圧縮部316、同期制御部317、及び、状態同期タイマ318と、予備ルータ装置330の状態圧縮部335、同期制御部336、及び、状態同期タイマ337とは、同期制御装置を構成する。この同期制御装置は、ハードウェア動作により、或いは、プログラム動作により、各種処理を実行する。
現用ルータ装置310のインタフェース部311は、各マルチアクセスデータリンク130に接続され、マルチアクセスデータリンク130との間でフレームの送受信に用いられる。インタフェース部311には、冗長化パケット交換システムに割り当てられた所定の仮想データリンクアドレスが割り当てられている。この所定の仮想データリンクアドレスは、データリンクがイーサネットの場合には、所定のマルチキャストイーサネットアドレスを用いることができる。インタフェース部311では、割り当てられた仮想データリンクアドレス宛のフレームを受け取るように設定されている。
パケット処理規則記憶部313は、受信パケットの処理規則を記憶する。セッション状態記憶部314は、セッション状態を記憶する。セッション状態は、セッションごとの状態情報を保持するために利用される。セッション状態は、セッションの確立時や終了時の他、TCPのシーケンス番号のようにパケット通過のたびに更新されるものもある。セッション状態記憶部314は、パケット蓄積部315を有する。パケット蓄積部315は、パケット処理部312を通過したパケットで、各セッションごとに、そのセッションでの最終処理パケットを保持するために使用される。
パケット処理部312は、セッション状態記憶部314に記憶されたセッション状態を参照・更新しつつ、パケット処理規則記憶部313が記憶する処理規則に従って、パケットの転送方法の決定や、パケットの加工を行う。何れかのインタフェースから到達したパケットは、パケット処理部312による、次ホップ決定や通過認否などの処理を経て、必要に応じて、何れかのインタフェース部311を経由して、マルチアクセスデータリンク130へ送出され、隣接ノードへ渡される。パケット処理部312のこのような動作により、現用ルータ装置310は、パケット中継装置として動作する。
パケット処理部312が行うパケット処理のうち、典型的なものとしては、次ホップの転送先の決定処理、パケットの通過認否処理、トンネルの終端処理がある。これらの処理は、複数を組み合わせて使われることもある。次ホップの転送先の決定処理では、パケットIPヘッダに含まれる宛先IPアドレスをキーとして経路情報を検索し、転送先を決定する。また、パケットの通過認否処理では、パケットのヘッダに含まれる情報などから、所定の処理規則に従って通過認否を行う。
パケットの通過認否処理には、静的なものと、動的なものとがある。静的な通過認否処理では、発信元、宛先IPアドレス、上位層プロトコル番号、上位層がTCP、UDPなどの場合には、発信元と、宛先のポート番号などの値とにより通過認否を行う。一方、動的な通過認否規則では、特定のセッションの状態に応じて、通過認否を行う。具体的には、TCPの場合には、受信側のウインドウを外れたシーケンス番号をもつセグメントの通過を拒否するなどの規則に従って、動的なパケット処理を行う。
トンネルの終端処理の代表的なものの一つには、ESPトンネルの終端処理がある。この処理では、あらかじめ定められたsecurity policyに基づき、パケットのESPへのカプセル化、及び、ESPからのパケットの抽出を行う。このESPトンネルの終端処理では、security associationというセッションごとの処理情報を利用する。
予備ルータ装置330のインタフェース部331は、現用ルータ装置310のインタフェース部311と同様な機能を有する。各インタフェース部331には、現用ルータ装置310の各インタフェース部311と同一の仮想データリンクアドレスが割り当てられる。これにより、現用ルータ装置310と予備ルータ装置330とは、同一の仮想データリンクアドレス宛のフレームを受け取る。
パケット処理規則記憶部333は、現用ルータ装置310のパケット処理規則記憶部313が記憶するパケット処理規則と同じ処理規則を記憶する。セッション状態記憶部334は、現用ルータ装置310のセッション状態記憶部314が記憶するセッション状態と同様なセッション状態を記憶する。動作モード保持部341は、予備/現用の動作状態を保持している。動作モード保持部341は、現用ルータ装置310が稼動している間は、動作状態「予備」を保持しており、現用ルータ装置310が稼動を停止すると、保持する動作状態が「現用」に切り替えられる。
パケット処理部332は、現用ルータ装置310のパケット処理部312と同様に、セッション状態記憶部334を参照・更新しつつ、パケット処理規則記憶部333が記憶するパケット処理規則に従って、パケットの転送や加工を行う。ただし、パケット処理部332は、動作モード保持部341が動作状態「予備」を保持するときには、インタフェース部331からパケットを送出する前に、パケットを破棄する動作を行う。これは、現用ルータ装置310と予備ルータ装置330とで、パケットが重複して送出されないようにするためである。このような動作により、予備ルータ装置330では、動作状態が「予備」の状態にあるときでも、セッション状態記憶部334に記憶されたセッション状態の更新を個別に行う。
現用ルータ装置310の同期制御部317は、現用ルータ装置310のセッション状態記憶部314が記憶するセッション状態と、予備ルータ装置330のセッション状態記憶部334が記憶するセッション状態との同期を制御する。状態圧縮部316は、セッション状態記憶部314が記憶するセッション状態の任意の範囲を、任意の分割数に分割し、分割した範囲のそれぞれについて、ハッシュ関数などにより、要約情報を作成する。状態圧縮部316が要約情報を作成する際のセッション状態の範囲、及び、分割数は、同期制御部317により指定される。
状態同期タイマ318は、所定のパケット通過量ごと、又は、所定の時間ごとに、タイムアウトを発生する。同期制御部317は、状態同期タイマ318がタイムアウトを発生させると、状態圧縮部316によって生成された要約情報を、制御用インタフェース部319を通して予備ルータ装置330に送信し、また、パケット蓄積部315に保持するパケットを、制御用インタフェース部319を通して予備ルータ装置330に送信して、セッション状態の同期処理を実行する。
予備ルータ装置330の状態圧縮部335は、現用ルータ装置310の状態圧縮部316と同様に、セッション状態の任意の範囲についての要約情報を作成する機能を有する。状態同期タイマ337は、現用ルータ装置310の状態同期タイマ337と同様に、所定のパケット通過量ごと、又は、所定の時間ごとに、タイムアウトを発生する。同期制御部336は、制御用インタフェース部338を通して、現用ルータ装置310から送信された状態要約情報を受信し、その受信した要約情報と、状態圧縮部335が作成した要約情報とを比較する。同期制御部336は、要約情報の比較により、双方のセッション状態が一致しないと判断すると、セッション状態が一致しない箇所を特定し、現用ルータ装置310と予備ルータ装置330とで、セッション状態を一致させるための処理を実行する。
稼動通知タイマ321は、従来の現用ルータ装置110(図12)における稼動通知タイマ218と同様な機能を有し、所定時間間隔で、タイムアウトを発生する。稼動通知送信部320は、従来の現用ルータ装置110における稼動通知送信部217と同様な機能を有し、稼動通知タイマ321がタイムアウトを発生すると、所定の稼動通知メッセージを、制御用インタフェース部319を通して、予備ルータ装置330に送信する。稼動通知受信部339は、現用ルータ装置310から送信された稼動通知を、制御用インタフェース部338を通して受信する。死活監視タイマ340は、従来の予備ルータ装置120における死活監視タイマ227と同様な機能を有する。
死活監視タイマ340は、稼動通知受信部339が現用ルータ装置310から稼動通知を受信すると、リセットされる。予備ルータ装置330は、稼動通知受信部339が、死活監視タイマ340がタイムアウトを発生するまでに稼動通知を受信できないときには、現用ルータ装置310が稼動していないと判断して、動作モード保持部341が保持する動作状態を、「予備」から「現用」に切り替える。動作状態の変更により、パケット処理部332は、破棄していたパケットの送出を行い、現用ルータ装置310のパケット処理部312に代わって、パケットの転送処理等を実際に実行する。
図2は、現用ルータ装置におけるパケット転送処理の動作手順の詳細をフローチャートで示している。隣接ノードが送信したパケットが、何れかのマルチアクセスデータリンク130を通して、対応するインタフェース部311に到着すると、そのパケットは、パケット処理部312へ渡される。パケット処理部312は、受信パケットのヘッダ等に基づいて、パケット処理規則を検索し、マッチするものを抽出して、その規則を適用・実行する(ステップS201)。その際、例えばパケット通過認否やIPsecトンネル終端処理などのパケット処理を行う場合に、セッション状態の参照・更新が必要なときは、セッション状態記憶部314に記憶されたセッション状態を参照して、該当セッションの状態を更新する(ステップS202)。
パケット処理部312は、パケットを送出することができるか否かを判断する(ステップS203)。送出可能と判断するときには、パケット蓄積部315にパケットを蓄積して(ステップS204)、送出パケットを、送出側のインタフェース部311に引き渡す(ステップS205)。送出可能でないと判断されたときには、パケットを破棄する(ステップS206)。ステップS206のパケットの破棄は、例えば、パケットの宛先から経路情報を検索したが、次ホップを決定できなかったときや、パケットのホップリミットカウントが0になっているときに、実行される。或いは、パケット通過認否規則により、パケットの通過が拒否されているときや、IPsecトンネルの終端処理でパケットを正しく復号できなかったときに実行される。
図3は、動作状態が「予備」の際の予備ルータ装置330におけるパケット処理の動作手順の詳細をフローチャートで示している。予備ルータ装置330は、動作モード保持部341が動作状態「現用」を保持している場合には、図2に示す動作により、現用ルータ装置310によるパケット処理と同様なパケット処理を実行する。また、動作モード保持部341が動作状態「予備」を保持している場合には、以下に説明する動作により、セッション状態の更新を行う。
隣接ノードが送信したパケットは、何れかのマルチアクセスデータリンク130を通して、対応するインタフェース部331にも到着する。パケット処理部332は、ステップS201(図2)と同様に、受信パケットのヘッダ等に基づいてパケット処理規則を検索し、マッチするものを抽出して、その規則を適用・実行する(ステップS301)。その際、例えばパケット通過認否やIPsecトンネル終端処理などのパケット処理を行う場合に、セッション状態の参照・更新が必要なときは、ステップS202と同様に、セッション状態記憶部334に記憶されたセッション状態を参照して、該当セッションの状態を更新する(ステップS302)。
パケット処理部332は、動作モード保持部341が保持する動作状態が「予備」のときには、パケットを送出可能であるか否かを判断することなく破棄する(ステップS303)。現用ルータ装置310及び予備ルータ装置330では、同様なパケット処理が行われるが、予備ルータ装置330では、パケットが外部に送出される前に破棄されるため、パケットが重複して送出されることはない。このように、現用ルータ装置310及び予備ルータ装置330では、受信パケットが、それぞれにおいて同様に処理されて、セッション状態の更新が行われるため、パケットがロスしない限り、セッション状態記憶部314、334に記憶されたセッション状態は、同一に保たれることとなる。
パケット処理として、パケット通過認否処理を例に挙げて、その処理におけるセッション状態の更新について説明する。パケット通過認否処理のうち典型的なものとしては、「Real Stateful TCP Packet Filtering in IP Filter, Guido van Rooij, SANE 2000」において説明されている「TCP stateful firewall」がある。この処理では、通過するTCPパケットについて、それが属するTCPコネクションの状態を管理する。
パケット処理部312、332は、パケットが通過するたびに、TCPエンドポイントが保持しているウインドウの情報を、パケットが持つTCPヘッダに含まれるパラメータより計算して、セッション状態に保持する。ここで、パケットが運ぶTCPセグメントは、受信側のウインドウに収まるように送信側が調整して送出される。このため、仮に、処理対象のパケットが運ぶTCPセグメントが、セッション状態に記録されているウインドウの位置から外れていれば、そのパケットは不正なパケットであるから、パケット処理部312、332は、そのパケットの通過を拒否する。このような動作により、TCP stateful firewallでは、パケット−バイ−パケットでセッション状態を更新しつつ、パケットの通過認否を行う。
図4は、現用ルータ装置におけるパケット蓄積処理の動作手順をフローチャートで示している。ステップS204(図2)のパケット蓄積処理では、セッション状態記憶部314を参照して、パケットが属するセッション状態を検索し(ステップS401)、セッション状態が存在するか否かを判断する(ステップS402)。セッション状態が存在しないということは、該当パケットについては、パケット処理規則でセッションを管理していないことを意味している。パケット蓄積処理は、セッション状態の同期をとるために行っているため、ステップS402でセッション状態が存在しないと判断される場合には、処理を終了して、パケットの蓄積処理を行わない。
ステップS402で、セッション状態があると判断されたときには、パケット処理部312は、送出用と蓄積用とに、パケットを複製し(ステップS403)、当該セッションでパケットがパケット蓄積部315に既に蓄積されているか否かを判断する(ステップS404)。当該セッションでパケットがすでに蓄積されている場合は、それは、当該セッションで直前に通過したパケットであるから、その蓄積されているパケットを破棄する(ステップS405)。その後、複製したパケットの一方(蓄積用パケット)を、パケット蓄積部315に蓄積させる。このようなパケット蓄積処理により、全てのセッションについて、最後に通過したパケットを蓄積させることができる。
前述のように、現用ルータ装置310及び予備ルータ装置330では、同一パケットを受信して、それぞれにおいて、セッション状態の更新が行われているため、セッション状態を同一に保つことができる。しかし、以下に示す場合には、現用ルータ装置310が受信するパケットと、予備ルータ装置330が受信するパケットとが同一ではなくなるため、セッション状態に相違が生じることがある。
(1)現用ルータ装置310と予備ルータ装置330の各系に届けるために、伝送路でパケットが複製されたあと、一方のパケットが、伝送エラー等で失われる場合。
(2)現用ルータ装置310又は予備ルータ装置330の装置のデバイス内や、パケット処理用のバッファが、処理遅延などのために一杯になり、受信したパケットがバッファに収まりきらず、破棄される場合。
上記のような場合に備え、現用ルータ装置310及び予備ルータ装置330は、セッション状態を同期させる機能を有している。セッション状態の同期は、従来のように、セッション状態記憶部314、334が記憶するセッション状態の個別の状態同士を相互に比較する場合には、セッション状態は装置によっては数千から数万程度保持する必要があるため、処理量が膨大となり、現用ルータ装置310に多大な負担がかかる。本実施形態では、状態圧縮部316、335を用いて、セッション状態の要約情報の比較を行い、現用ルータ装置310と予備ルータ装置330とでセッション状態が一致しているか否かを判断する。
ところで、要約情報の比較では、同一時点のセッション状態の要約情報を比較する必要がある。このため、状態同期タイマ318、337は、同時にタイムアウトを起こす必要がある。一般に、疎結合された複数の装置のそれぞれが持つ時計を完全に同期させることは困難である。そこで、ここでは、状態同期タイマ318、337は、それぞれ通過させるべきパケットを所定個数処理するごとにタイムアウトを発生させる構成とする。このようにする場合には、現用ルータ装置310又は予備ルータ装置330の一方の系でパケットが失われると、その系ではタイムアウトがそれだけ遅くなることになる。しかし、処理する全パケット数に比して、パケットロスが十分少なければ、タイムアウト発生時刻のずれによるセッション状態のずれは少なくてすむため、同期確認のためのコストは高くならない。
図5は、現用ルータ装置がセッション状態の要約情報を送信する際の処理手順をフローチャートで示している。同期制御部317は、状態同期タイマ318を監視し(ステップS501)、タイムアウトが発生したか否かを判断する(ステップS502)。ステップS502で、タイムアウトが発生していないと判断したときには、ステップS501に戻り、状態同期タイマ318の監視を継続する。同期制御部317は、タイムアウトが発生したと判断すると、状態圧縮部316に、セッション状態記憶部314が記憶するセッション状態の全範囲について、所定の分割数で要約情報を作成するように指示する。
状態圧縮部316は、全セッション状態を、指定された分割数で分割し、その分割したそれぞれについて、要約情報を作成する。同期制御部317は、状態圧縮部316により作成された、タイムアウト発生時点でのセッション状態の要約情報のスナップショットを取得し(ステップS503)、その取得した要約情報にタイムスタンプをつけて、それを、制御用データリンク140を通して、予備ルータ装置330に向けて送信する(ステップS504)。このとき、同期制御部317は、要約情報と共に、送信する要約情報がセッション状態の全範囲についての要約情報である旨を示す情報を、予備ルータ装置330に送信する。現用ルータ装置310は、状態同期タイマ318をリセットし(ステップS505)、次のタイムアウト発生に備える。
図6は、予備ルータ装置がセッション状態の要約情報の比較を行う際の処理手順をフローチャートで示している。同期制御部336は、状態同期タイマ337を監視し(ステップS601)、タイムアウトが発生したか否かを判断する(ステップS602)。ステップS602で、タイムアウトが発生していないと判断したときには、ステップS601に戻り、状態同期タイマ337の監視を継続する。同期制御部336は、タイムアウトが発生したと判断すると、状態圧縮部335に、セッション状態記憶部334が記憶するセッション状態の全範囲について、所定の分割数で要約情報を作成するように指示する。
状態圧縮部335は、全セッション状態を、指定された分割数で分割し、その分割したそれぞれについて、要約情報を作成する。同期制御部336は、状態圧縮部335により作成された、タイムアウト発生時点でのセッション状態の要約情報のスナップショットを取得する(ステップS603)。同期制御部336は、現用ルータ装置310から送信された要約情報を受信し(ステップS604)、その受信した要約情報と、状態圧縮部335によって作成された要約情報とを比較する(ステップS605)。ステップS605では、所定の分割数分だけ作成された要約情報同士をそれぞれ比較することにより、要約情報が一致しているか否かを判断する。
ステップS605の比較により、両者が一致していると判断されたときには、状態同期タイマ318、337のタイムアウト時点では、現用ルータ装置310のセッション状態記憶部314が記憶するセッション状態と、予備ルータ装置330のセッション状態記憶部334が記憶するセッション状態とが一致している。このため、セッション状態を一致させるための処理は不要である。
一方、何れかのセッション状態が現用ルータ装置310と予備ルータ装置330とで一致しないときには、ステップS605では、要約情報が一致していないと判断される。この場合には、一致していないセッション状態を絞り込む処理へ移行して一致していないセッション状態を特定し、その後、その一致していないセッション状態を補正する処理を実行する。
図7は、不一致セッション状態を絞り込む処理の処理手順を示している。同期制御部336は、要約情報が一致していないセッション状態を含む範囲についての詳細な要約情報の送信を、現用ルータ装置310に要求する(ステップS701)。ステップS701では、同期制御部336は、図6のステップS606で不一致であると判断された要約情報の作成元となったセッション状態の範囲と、詳細な要約情報を作成する際の分割数とを指定して、詳細な要約情報の送信を要求する。ステップS701で指定する分割数は、図5、6に示す処理で、状態圧縮部316、335がセッション状態の全範囲についての要約情報を作成する際の分割数と同じであってもよく、また、異なっていてもよい。
現用ルータ装置310の同期制御部317は、制御用データリンク140を通して、予備ルータ装置330から送信された要求を受信し(ステップS711)、状態圧縮部316に、要求されたセッション情報の範囲の要約情報を作成するように指示する。状態圧縮部316は、指示されたセッション情報を、指定された分割数に分割し、その分割したそれぞれについて要約情報を作成する。同期制御部317は、状態圧縮部316が作成した要約情報を取得し、これを、制御用データリンク140を通して予備ルータ装置330に送信する(ステップS712)。
予備ルータ装置330の同期制御部336は、ステップS701で現用ルータ装置310に要約情報の送信を要求した後、状態圧縮部335に、ステップS701で要求したセッション状態の範囲と同じ範囲を、現用ルータ装置310に指定した分割数と同じ分割数で分割して要約情報を作成するように指示する。状態圧縮部335は、同期制御部336に指示された範囲のセッション状態を、指示された分割数で分割して、そのそれぞれについて要約情報を作成する(ステップS702)。
同期制御部336は、ステップS712で送信された要約情報を受信し、現用ルータ装置310から受信した要約情報と、ステップS702で作成された要約情報とを比較し(ステップS703)、一致していないものを抽出する(ステップS704)。同期制御部336は、要約情報が作成されたセッション状態が、単一のセッション状態から作成されているか否かを判断する(ステップS705)。ステップS705で、単一のセッション状態から作成されていないと判断したときには、ステップS701に戻り、一致していないセッション状態の範囲について、ステップS701以降の処理を実行する。このような処理を実行することにより、セッション状態中のどの部分のセッション状態が一致していないのかを特定することができる。
例えば、図6のステップS606で、全セッション状態(セッション数10,000)を100分割して作成した要約情報の何れかが不一致であると判定された場合について考える。この場合、図7に示す処理では、現用ルータ装置310及び予備ルータ装置330は、一致しなかった要約情報の作成元となる100セッション分の範囲を、例えば100分割して、要約情報を作成する。100セッション分を100分割して作成された要約情報は、単一のセッション状態から作成された要約情報に該当するため、一致しない要約情報を抽出することで、一致しないセッション状態を特定することができる。この場合には、100個の要約情報を、図6に示す処理と図7に示す処理とでそれぞれ1回ずつ現用ルータ装置310から予備ルータ装置330に送信するだけで、一致していないセッション状態を特定することができる。
図8は、一致しないセッション状態の補正処理の処理手順を示している。図7に示す処理により、セッション状態が一致していないセッション状態が特定されると、予備ルータ装置330の同期制御部336は、要約情報が不一致であるセッションについて、最終パケットの送信を、制御用データリンク140を通して、現用ルータ装置310に要求する(ステップS801)。現用ルータ装置310は、前述の動作により(図2、図4)、各セッションについて、最後に転送したパケットをパケット蓄積部315に蓄積している。同期制御部317は、予備ルータ装置330からの要求を受信し(ステップS811)、パケット蓄積部315から、要求されたセッションの最終処理パケットを取得して、これを、制御用データリンク140を通して、予備ルータ装置330に送信する(ステップS812)。
予備ルータ装置330の同期制御部336は、ステップS812で現用ルータ装置310が送信したパケットを受信して、その受信パケットを、パケット処理部332に引き渡す(ステップS802)。パケット処理部332は、図3に示す手順に従って、同期制御部336から引き渡されたパケットを処理し、セッション状態記憶部334に記憶されたセッション状態を更新する(ステップS803)。ステップS802でパケット処理部332に引き渡されたパケットは、現用ルータ装置310を通過したパケットである。従って、パケット処理部332が、そのパケットを処理することで、セッション状態記憶部334に記憶されたセッション状態が更新され、セッション状態の補正がなされる。このような処理により、予備ルータ装置330のセッション状態の補正を行うことで、現用ルータ装置310と予備ルータ装置330とで、セッション状態の同期が取れるようになる。
図9は、現用ルータ装置における稼動通知送信の処理手順を示している。稼動通知送信部320は、稼動通知タイマ321を監視し(ステップS901)、タイムアウトが発生したか否かを判断する(ステップS902)。ステップS902で、タイムアウトが発生していないと判断したときには、ステップS901に戻り、稼動通知タイマ321の監視を継続する。稼動通知送信部320は、タイムアウトが発生したと判断すると、稼動通知タイマ321をリセットし(ステップS903)、所定形式の稼動通知を作成し、作成した稼動通知を、制御用データリンク140を通して予備ルータ装置330に送信する(ステップS904)。
図10は、予備用ルータ装置における死活監視とフェイルオーバの処理手順を示している。稼動通知受信部339は、死活監視タイマ340を監視し(ステップS1001)、タイムアウトが発生したか否かを判断する(ステップS1002)。ステップS1002で、タイムアウトが発生していないと判断したときには、現用ルータ装置310から稼動通知を受信したか否かを判断する(ステップS1003)。ステップS1003で、稼動通知を受信したと判断したときには、死活監視タイマ340をリセットして(ステップS1004)、ステップS1001に戻り、死活監視タイマ340の監視を継続する。稼動通知を受信していないときには、そのままステップS1001に戻り、死活監視タイマ340の監視を継続する。
死活監視タイマ340がタイムアウトするまでに、現用ルータ装置310が稼動通知を送信しないときには、ステップS1002で、死活監視タイマ340がタイムアウトしたと判断される。この場合には、現用ルータ装置310が故障等により稼動を停止したと判断して、稼動通知受信部339は、動作モード保持部341が保持する動作状態を、「予備」から「現用」に切り替える(ステップS1005)。これにより、予備ルータ装置330は、図2に示す動作により、受信パケットを処理し、現用ルータ装置として振る舞う。このようにすることで、隣接ノードに対して、現用ルータ装置310の稼動停止が隠蔽される。
本実施形態では、セッション状態を、所定の分割数で分割して作成された要約情報により、現用ルータ装置310と予備ルータ装置330とで、セッション状態が一致しているか否かを調べ、一致していないときには、一致してないセッション情報が特定されるまで、一致していないセッション状態の範囲を複数の範囲に分割して要約情報を作成し、作成した要約情報の比較を行う。このようにして特定された状態が一致しないセッション状態を補正することにより、現用ルータ装置310と予備ルータ装置330とで、セッション情報を一致させることができる。
セッション状態同士を直接比較する場合には、現用ルータ装置310から予備ルータ装置330に全てのセッション状態を送信する必要があり、現用ルータ装置310の処理負担が大きかった。本実施形態では、現用ルータ装置310は、個々のセッション状態の全てを予備ルータ装置330に送信しなくても、一致しないセッション状態を特定することができる。このため、マルチアクセスデータリンク130間のパケット通過頻度が高くなった場合でも、現用ルータ装置310の処理負担が増大しない。また、このように、簡易にセッション状態の同期をとることができるため、性能が高いネットワーク中継装置を、低コストで実現することができる。
なお、上記実施形態では、一致していないセッション状態を特定し、その特定したセッションの最終パケットを送信して、セッション状態の補正を行ったが、これに代えて、セッション状態そのものを送信して、セッション状態の補正をおこなってもよい。最終パケットを送信することによるセッション状態の補正と、補正が必要なセッション状態を送信することによるセッション状態の補正とを比較すると、後者では、パケットを蓄積するためのバッファ(パケット蓄積部315)が不要となるが、補正が必要なセッション状態を、パケットにカプセル化して送受信する回路が必要となる。一般に、パケット処理がハードウエアにより実現されている装置では、バッファからパケットを送出する方が、パケットを自身で作成して送出するより実現が容易な場合があり、そのような装置では、バッファから最終パケットを送信してセッション状態を補正する方が、セッション状態を送信する場合に比して、簡易に、セッション状態の補正ができると考えられる。
また、現用ルータ装置310と予備ルータ装置330との間の通信には、専用の制御用データリンク140を用いたが、これには限定されない。現用ルータ装置310と予備ルータ装置330との間の通信には、制御用データリンク140に代えて、何れかのマルチアクセスデータリンク130を用いることもできる。パケット蓄積部315に蓄積するパケットは、当該セッションにおける最終転送パケットには限定されない。例えば、パケット蓄積部315に、最終転送パケットに加えて、当該セッション状態における所定のパケットを蓄積してもよい。上記実施形態では、パケット処理装置として、ルータ装置を例に挙げて説明したが、これには限定されない。パケット処理装置は、例えば、ルータの機能を持つファイアウォール装置などのアクセス制御装置や、IPsecゲートウエイなどのVPN終端装置として構成されていてもよい。上記実施形態では、同期制御装置の各部が、現用ルータ装置310と予備ルータ装置330とに分散して配置されたが、これには限定されない。例えば、同期制御装置の各部をまとめて、これを、制御用データリンク140に接続してもよい。
以上、本発明をその好適な実施形態に基づいて説明したが、本発明の冗長化パケット処理装置及びその冗長化方法は、上記実施形態例にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
本発明の一実施形態の冗長化パケット処理装置の構成を示す機能ブロック図。 現用ルータ装置におけるパケット転送処理の動作手順の詳細を示すフローチャート。 動作状態が「予備」の際の予備ルータ装置330におけるパケット処理の動作手順の詳細を示すフローチャート。 現用ルータ装置におけるパケット蓄積処理の動作手順を示すフローチャート。 現用ルータ装置がセッション状態の要約情報を送信する際の処理手順を示すフローチャート。 予備ルータ装置がセッション状態の要約情報の比較を行う際の処理手順を示すフローチャート。 不一致セッション状態を絞り込む処理の処理手順を示すフローチャート。 一致しないセッション状態の補正処理の処理手順を示すフローチャート。 現用ルータ装置における稼動通知送信の処理手順を示すフローチャート。 予備用ルータ装置における死活監視とフェイルオーバの処理手順を示すフローチャート。 非特許文献1に記載のOpenBSDにおける冗長化されたネットワーク中継装置の構成を示すブロック図。 ネットワーク中継装置の詳細な構成を示す機能ブロック図。
符号の説明
130:マルチアクセスデータリンク
140:制御用データリンク
300:冗長化パケット処理装置
310:現用ルータ装置
311、331:インタフェース部
312、332:パケット処理部
313、333:パケット処理規則記憶部
314、334:セッション状態記憶部
315:パケット蓄積部
316、335:状態圧縮部
317、336:同期制御部
318、337:状態同期タイマ
319、338:制御用インタフェース部
320:稼動通知送信部
321:稼動通知タイマ
330:予備ルータ装置
339:稼動通知受信部
340:死活監視タイマ
341:動作モード保持部

Claims (14)

  1. 通信のセッション状態を記憶する第1のセッション状態記憶部と、データリンクから受信したパケットを、所定のパケット処理規則に基づいて処理し、該処理内容に応じて、受信したパケットを送信先のデータリンクに転送し、該パケットの転送に伴って、前記第1のセッション状態記憶部が記憶するセッション状態を更新する第1のパケット処理部とを備える現用パケット処理装置と、
    通信のセッション状態を記憶する第2のセッション状態記憶部と、前記データリンクから受信したパケットを、前記所定のパケット処理規則に基づいて処理し、送信先のデータリンクに転送すべきパケットに基づいて、前記第2のセッション状態記憶部が記憶するセッション状態を更新する第2のパケット処理部とを備える予備パケット処理装置と、
    前記第1のセッション状態記憶部が記憶するセッション状態から要約情報を作成する第1の要約作成部と、前記第2のセッション状態記憶部が記憶するセッション状態から要約情報を作成する第2の要約作成部と、前記第1の要約作成部が作成した要約情報と、前記第2の要約情報作成部が作成した要約情報とを比較する比較部と、該比較部による比較の結果、双方の要約情報が一致しないときには、前記第2のセッション状態記憶部が記憶するセッション状態部分を、前記第1のセッション状態記憶部が記憶するセッション状態部分と一致させるセッション状態同期部とを有する同期制御手段と、
    を備えることを特徴とする冗長化パケット処理装置。
  2. 前記第1及び第2の要約作成部は、それぞれ前記第1及び第2のセッション状態記憶部が記憶するセッション状態を複数の範囲に分割し、分割したそれぞれの範囲について要約情報を作成する、請求項1に記載の冗長化パケット処理装置。
  3. 前記セッション状態同期部は、
    一致しないセッション状態部分が特定されるまで、前記第1及び第2の要約作成部に、一致しない要約情報に対応するセッション状態の範囲を分割した各分割範囲について要約情報を作成させ、該作成させた要約情報を前記比較部に相互に比較させる不一致セッション状態特定部を有し、該不一致セッション状態特定部で不一致であると特定されたセッション状態部分について、前記第2のセッション状態記憶部が記憶するセッション状態部分を、前記第1のセッション状態記憶部が記憶するセッション状態部分と一致させる、請求項2に記載の冗長化パケット処理装置。
  4. 前記第1のパケット処理部により転送された所定のパケットをセッションごとに記憶するパケット蓄積部を更に備え、
    前記セッション状態同期部は、前記不一致であると特定されたセッション状態部分について、当該セッション状態の所定のパケットを前記パケット蓄積部から取得し、該取得した所定の転送パケットを第2のパケット処理部に処理させることにより、前記第2のセッション状態記憶部が記憶するセッション状態を補正する、請求項3に記載の冗長化パケット処理装置。
  5. 前記セッション状態同期部は、前記第1のセッション状態記憶部から、前記不一致であると特定されたセッション状態部分を取得し、該取得したセッション状態部分により、前記第2のセッション状態記憶部が記憶するセッション状態を補正する、請求項3に記載の冗長化パケット処理装置。
  6. 前記現用パケット処理装置及び前記予備パケット処理装置が、状態同期タイマを更に有し、
    該状態同期タイマがタイムアウトを発生させると、前記同期制御手段は、前記第1及び第2の要約作成部にそれぞれ要約情報を作成させ、第2のセッション状態記憶部が記憶するセッション状態を、第1のセッション状態記憶部が記憶するセッション状態と一致させる処理を行う、請求項1〜5の何れか一に記載の冗長化パケット処理装置。
  7. 前記現用パケット処理装置及び予備パケット処理装置内の状態同期タイマは、それぞれ前記第1及び第2のパケット処理部が所定個数のパケットを処理するごとにタイムアウトを発生する、請求項6に記載の冗長化パケット処理装置。
  8. 前記現用パケット処理装置が、所定周期で稼動通知を送信する稼動通知部を更に有し、前記予備パケット処理装置が、前記稼動通知部が送信する稼動通知を所定期間内に受信できるか否かにより前記現用パケット処理装置が稼動中であるか否かを監視する死活監視部を更に有し、該死活監視部が、前記現用パケット処理装置が稼動を停止したと判断すると、前記第2のパケット処理部は、パケット処理の内容に応じて、パケットを送信先のデータリンクに転送する、請求項7に記載の冗長化パケット処理装置。
  9. 前記第1及び第2の要約情報作成部は、それぞれハッシュ関数を用いて要約情報を作成する、請求項1〜8の何れか一に記載の冗長化パケット処理装置。
  10. 現用パケット処理装置及び予備パケット処理装置を有する冗長化パケット処理装置のセッション状態を、同期制御装置を用いて同期させる方法であって、
    前記現用パケット処理装置が、データリンクから受信したパケットを、所定のパケット処理規則に基づいて処理するステップと、
    前記現用パケット処理装置が、前記パケット処理ステップでの処理内容に応じて、受信パケットを、送信先のデータリンクに転送するステップと、
    前記現用パケット処理装置が、前記パケット転送処理に伴って、第1のセッション状態記憶部が記憶するセッション状態を更新するステップと、
    前記予備パケット処理装置が、前記データリンクから受信したパケットを、前記所定のパケット処理規則に基づいて処理するステップと、
    前記予備パケット処理装置が、受信パケットを送信先のデータリンクに転送すべきパケットにより、第2のセッション状態記憶部が記憶するセッション状態を更新するステップと、
    前記同期制御装置が、前記第1及び第2のセッション状態記憶部が記憶するセッション状態からそれぞれ要約情報を作成するステップと、
    前記同期制御装置が、前記第1のセッション状態記憶部が記憶するセッション状態から作成された要約情報と、前記第2のセッション状態記憶部が記憶するセッション状態から作成された要約情報とを比較するステップと、
    前記比較ステップによる比較の結果、双方の要約情報が一致しないと、前記同期制御装置が、前記第2のセッション状態記憶部が記憶するセッション状態部分を、前記第1のセッション状態記憶部が記憶するセッション状態部分と一致させるステップとを有することを特徴とするセッション状態同期方法。
  11. 前記セッション状態から要約情報を作成するステップでは、前記同期制御装置は、前記第1及び第2のセッション状態記憶部が記憶するセッション状態をそれぞれ複数の範囲に分割し、該分割したそれぞれの範囲について要約情報を作成する、請求項10に記載のセッション状態同期方法。
  12. 前記セッション状態を一致させるステップは、
    前記同期制御装置が、第1のセッション状態記憶部が記憶するセッション状態及び第2のセッション状態記憶部が記憶するセッション状態について、一致しないセッション状態部分が特定されるまで、一致しない要約情報に対応するセッション状態の範囲を分割した各分割範囲について要約情報を作成し、該作成した要約情報を相互に比較して、不一致セッション状態部分を特定するステップと、
    前記同期制御装置が、前記不一致セッション状態特定ステップで不一致であると特定されたセッション状態部分について、前記第2のセッション状態記憶部が記憶するセッション状態部分を、前記第1のセッション状態記憶部が記憶するセッション状態部分と一致させるステップとを有する、請求項11に記載のセッション状態同期方法。
  13. 現用パケット処理装置が、セッションごとに、最後に転送したパケットを保持するステップを更に有し、前記セッション状態を一致させるステップでは、前記同期制御装置は、不一致であると特定されたセッション状態部分について、前記現用パケット処理装置から、最後に転送したパケットを取得し、該取得したパケットを、前記予備パケット処理装置に処理させることにより、第2のセッション状態記憶部が記憶するセッション状態を補正する、請求項12に記載のセッション状態同期方法。
  14. 前記セッション状態を一致させるステップでは、前記同期制御装置は、不一致であると特定されたセッション状態部分のセッション状態を、前記第1のセッション状態記憶部から取得し、該取得したセッション状態により、第2のセッション状態記憶部が記憶するセッション状態を補正する、請求項12に記載のセッション状態同期方法。
JP2005093675A 2005-03-29 2005-03-29 冗長化パケット処理装置、及び、その冗長化方法 Expired - Fee Related JP4244384B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005093675A JP4244384B2 (ja) 2005-03-29 2005-03-29 冗長化パケット処理装置、及び、その冗長化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005093675A JP4244384B2 (ja) 2005-03-29 2005-03-29 冗長化パケット処理装置、及び、その冗長化方法

Publications (2)

Publication Number Publication Date
JP2006279375A JP2006279375A (ja) 2006-10-12
JP4244384B2 true JP4244384B2 (ja) 2009-03-25

Family

ID=37213672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005093675A Expired - Fee Related JP4244384B2 (ja) 2005-03-29 2005-03-29 冗長化パケット処理装置、及び、その冗長化方法

Country Status (1)

Country Link
JP (1) JP4244384B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008120267A1 (ja) * 2007-03-28 2008-10-09 Fujitsu Limited エッジノード冗長システム
JP5187595B2 (ja) * 2008-01-21 2013-04-24 日本電気株式会社 通信装置及び通信装置の冗長化方法
CN101651553B (zh) * 2009-09-03 2013-02-27 华为技术有限公司 用户侧组播业务主备保护系统、方法及路由设备
JP4944278B2 (ja) * 2010-06-29 2012-05-30 かもめエンジニアリング株式会社 アクセス制御方法、アクセス制御装置およびアクセス制御プログラム
JP5605237B2 (ja) * 2010-06-30 2014-10-15 沖電気工業株式会社 通信制御装置及びプログラム、並びに、通信システム
JP5655661B2 (ja) * 2011-03-28 2015-01-21 富士通株式会社 通信二重化装置及び通信二重化方法
US20230125853A1 (en) * 2021-10-26 2023-04-27 Schneider Electric Systems, USA Inc. Remote terminal unit processor redundancy sychronization

Also Published As

Publication number Publication date
JP2006279375A (ja) 2006-10-12

Similar Documents

Publication Publication Date Title
US10567340B2 (en) Data center system
EP3322150B1 (en) Apparatus and method for resilient ip security/internet key exchange security gateway
JP4244384B2 (ja) 冗長化パケット処理装置、及び、その冗長化方法
CN108141376B (zh) 网络节点、通信网络及通信网络中的方法
US7111035B2 (en) Fault tolerance associations for IP transport protocols
US10033667B1 (en) Enhanced virtual router redundancy protocol
US7406037B2 (en) Packet forwarding apparatus with redundant routing module
US7515525B2 (en) Cooperative TCP / BGP window management for stateful switchover
CN102449963B (zh) 跨层2域的负载平衡
US7787365B1 (en) Routing protocol failover between control units within a network router
US9077617B1 (en) Kernel-based TCP-layer assist for fast recovery by backup control unit of a device
US20200314692A1 (en) Method and system for steering bidirectional network traffic to a same service device
US9660898B2 (en) Enhanced protocol independent multicast source registration over a reliable transport
JP4524686B2 (ja) クラスタシステム及びクラスタメンバ並びにプログラム
JP2020522925A (ja) Ipsecの地理的冗長性のための分離した制御プレーンおよびデータプレーンの同期
CN105164991A (zh) 冗余网络协议系统
US11681519B2 (en) Software update on a network device forming a multi-chassis link aggregation group (MC-LAG)
US9553760B2 (en) Method, device, and system for dual-uplink tangent ring convergence
WO2014175423A1 (ja) 通信ノード、通信システム、パケット処理方法及びプログラム
JP6571400B2 (ja) ルータ装置、冗長化方法および冗長化プログラム
JP2007208502A (ja) 通信システム、バックアップルータ、その冗長化処理プログラムおよびその冗長化処理方法
JP5309350B2 (ja) 移動体通信ゲートウェイ装置及び移動体通信ゲートウェイ制御方法
TW200836525A (en) Selective passive address resolution learning
CN104243591B (zh) 同步安全集群会话信息的方法及装置
WO2016177211A1 (zh) 地址解析协议arp表项的同步方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081215

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081228

R150 Certificate of patent or registration of utility model

Ref document number: 4244384

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120116

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees