JP4033769B2 - ルータ及びルーティング・プロトコル冗長性 - Google Patents

ルータ及びルーティング・プロトコル冗長性 Download PDF

Info

Publication number
JP4033769B2
JP4033769B2 JP2002548930A JP2002548930A JP4033769B2 JP 4033769 B2 JP4033769 B2 JP 4033769B2 JP 2002548930 A JP2002548930 A JP 2002548930A JP 2002548930 A JP2002548930 A JP 2002548930A JP 4033769 B2 JP4033769 B2 JP 4033769B2
Authority
JP
Japan
Prior art keywords
card
routing protocol
controller
state change
standby
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
JP2002548930A
Other languages
English (en)
Other versions
JP2004534414A (ja
Inventor
チー, ファイ ホー,
アマー ガプタ,
マドフ グランヒ,
アレックス バックムットスカイ,
Original Assignee
ノキア インコーポレイテッド
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 ノキア インコーポレイテッド filed Critical ノキア インコーポレイテッド
Publication of JP2004534414A publication Critical patent/JP2004534414A/ja
Application granted granted Critical
Publication of JP4033769B2 publication Critical patent/JP4033769B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)

Description

本発明は、ネットワーク及びネットワーク装置の分野に関する。更に具体的には、本発明は、ネットワーク・ルータ及びルーティング・プロトコルに関する。具体的には、本発明は、ルータ及びルーティング・プロトコル冗長性に関する。
ネットワークは、相互に接続された装置の集合であって、ユーザがリソース及びデータにアクできるようにする。通常のタイプのネットワーク装置は、サーバ、ルータ、ブリッジ、スイッチ、ゲートウェイ、及びハブを含む。よく知られたネットワークはインターネットである。インターネットは相互に接続されたネットワークの世界規模システムであって、インターネット・プロトコル(IP)を走らせてデータ(例えばパケット)を転送する。パケットは、インターネット上の多数のネットワーク境界を越えて行き先へ到着することができるので、IPはルーティング及び転送機能を提供するレイヤー(layer、層)「3」サービスを含み、パケットが最適経路を使用して行き先へ到着できるようにする。
IPレイヤー3サービスを提供する通常のネットワーク装置はルータである。ルータは、その現在のネットワーク・ビューに基づき最適経路を決定することによってパケットを回送し、最適経路を使用して、ネットワーク境界を越えて行き先へパケットを転送する。ルータは、そのネットワーク・ビューに基づいて、ルータに知られた利用可能ルートのルーティング・テーブルを生成及び維持する。ルータは、ルーティング・テーブルを使用して転送情報テーブル(FIB)を作り出す。FIBは、ルータがパケットを行き先へ転送するために使用するルートのテーブルである。
ルータは、ネットワークの整合したビュー(即ち、整合FIB)を維持するため、ルーティング・プロトコルを使用して他のルータと情報を交換する。パケットを適正に転送するために、各々のルータはネットワーク上の他のルータと一緒に整合FIBを有しなければならない。即ち、整合しない転送情報テーブル(FIB)を有するルータは、ネットワークを介して予測可能な方法でパケットを転送しないであろう。従って、ルーティング・ループ又はパケットの不適正なルーティングが起こるであろう。
ここで、ネットワークで起こる重大な問題は、ルータ障害である。ルータは、多数の理由、例えば、誤った構成、ハッカーの攻撃、ハードウェア障害、及びソフトウェア障害によって故障する。そのような障害は予測不可能である。都合の悪いことに、ルータ障害は、ネットワークのトポロジを変化させる原因となる。特に、トポロジは、或るリンク又はルートが消滅したために変化する。更に、ノードへ到達できないか、ネットワークを介して情報を伝搬できないために、ルーティング・プロトコル情報が失われる。更に、アドレスへ到達不可能であるために、パケットは行き先に到着できないかもしれない。
こうして、ルータ障害は、多くの問題、例えば、サービス停止、サービス低下(非最適条件ルーティング)、及び長時間のルーティング・テーブル収斂時間に起因するサービス停止を起こす。故障したルータは、他のルータに非最適経路を使用してパケットを転送させ、サービスの低下を起こす。なぜなら、パケットは、より多くの時間を費やして行き先へ到着するからである。故障したルータは、更に、そのピアを介して、そのピア及びネットワーク上の他のルータにルーティング・テーブルを更新させる(「収斂」)。これは、そのような収斂を実行するためのサービス停止又は低下を生じる。
例えば、もしルータが故障し、ピア・ノード又は隣接ルータのルーティング・プロトコルが故障を認識すれば、ルーティング・プロトコルは、ネットワークを介して、故障したルータを知らせ、それに従ってルーティング・テーブルが更新されるようにする。その結果、ネットワークが完全なサービスを再開する前に、作動ルータ内のルーティング・テーブルを更新して相互に整合したFIBを生成することに起因するサービスの停止又は低下が存在する。このネットワーク再構成は、全体のネットワークが回復する前に、数秒、数分、又は数時間を要するかもしれない。きわめて重大なサービスについては、そのような事態は許容されない。
システムの利用可能性を増加するため、ルータ障害を処理する方法は、ハードウェア冗長性を実現することである。このタイプの冗長性は、通常、レイヤー2冗長性と呼ばれる。レイヤー2冗長性システムは、冗長的なライン・カード、ポート、又はコントローラ・カードを含む。もしライン・カード、ポート、又はコントローラ・カードが故障すると、冗長ライン・カード、ポート、又はコントローラ・カードは、動作を再開することができる。しかし、レイヤー2冗長性の欠点は、リアルタイムのルーティング・プロトコル冗長性を提供しないことである。例えば、ルーティング・プロトコルによって生成される多数のソフトウェア状態は、冗長ハードウェアの中にリアルタイムで維持されず、これはプロトコル・セッションのドロップを生じる。従って、レイヤー2冗長性システムにおいて、プロトコル・セッションがドロップされ、これはネットワーク・トポロジの変化、従ってサービス停止又はサービス低下を起こす。
ルータ障害を処理する他の方法は、バックアップ・ルータを備えることである。そのようなスキームは、通常、バーチャル・ルータ冗長性プロトコル(VRRP)と呼ばれる。VRRPスキームにおいて、もし、メイン・ルータが故障したことをピア・ルータが認識すると、ピア・ルータはバックアップ・ルータとの通信を開始する。VRRPの欠点は、バックアップ・ルータへの切り替えに長い時間(グリッチ・タイム)を取ることである。VRRPの他の欠点は、故障したルータのピア・セッションが破壊又は切断され、バックアップ・ルータによって再開されることができず、サービス障害を起こすことである。
VRRPの他の欠点は、全てのルーティング・セッションが切断されるか、バックアップ・ルータが、メイン・ルータの同じ隣接ルータと別個のピア・セッションを有し、ルーティング処理に著しいオーバヘッドを生じることである。いずれにせよ、メイン・ルータが故障したとき、メイン・ルータのピア・セッションがドロップされるので、収斂時間が必要となる。
ネットワーク装置のサービス停止又は低下を低減し、従ってネットワーク装置のソフトウェア及びハードウェア障害に起因するネットワークのサービス利用可能性を向上するルータ及びルーティング・プロトコル冗長性が開示される。1つの実施形態において、ネットワーク装置、例えばルータは、アクティブ・コントローラ・システム及びスタンバイ・コントローラ・システムを有する冗長性プラットフォームを含む。ルーティング・プロトコルの状態変化は、アクティブ・コントローラ・システムによって受信又は生成される。受信又は生成されたルーティング・プロトコル状態変化は、スタンバイ・コントローラ・システムへ複写される。ルーティング・プロトコルの状態変化を複写することによって、スタンバイ・コントローラ・システムは、障害がアクティブ・コントローラ・システムで発生する場合に、ネットワーク装置のためにルーティング・プロトコル・セッションを維持することができる。更に、ルーティング・プロトコルによって作り出された動的変化を処理するため、ルーティング・プロトコルの状態はリアルタイムで維持される。
本発明の他の特徴及び利点は、添付の図面及び以下の詳細な説明から明らかになるであろう。
本発明は例として示され、添付図面の図形によって制限されることを意図されず、そこでは、類似の参照記号は類似の要素を示す。
ネットワーク装置のソフトウェア及びハードウェア障害に起因するネットワーク装置のサービスの停止又は低下を低減し、従ってネットワークのサービス利用可能性を向上するルータ及びルーティング・プロトコル冗長性が説明される。1つの実施形態において、ネットワーク装置、例えば、ルータは、アクティブ・コントローラ・システム及びスタンバイ・コントローラ・システムを有する冗長性プラットフォームを含む。ルーティング・プロトコルの状態変化は、アクティブ・コントローラ・システムによって受信又は生成される。受信又は生成されたルーティング・プロトコルの状態変化は、スタンバイ・コントローラ・システムへ複写される。ルーティング・プロトコルの状態変化を複写することによって、スタンバイ・コントローラ・システムは、障害がアクティブ・コントローラ・システムで発生する場合に、ネットワーク装置のためにルーティング・プロトコル・セッションを維持することができる。更に、ルーティング・プロトコルによって作り出された動的変化を処理するため、ルーティング・プロトコルの状態がリアルタイムで維持される。
ここで説明される冗長性手法によって、故障したネットワーク装置は、短い時間でサービスへ復帰し、サービスの停止を回避することができる。冗長性手法によって、更に、バックアップ又はスタンバイ・コントローラ・システムは、故障したネットワーク装置を、故障前のアクティブ・コントローラ・システムの作業状態でサービスするように復帰させることができる。冗長性手法は、更に、ネットワーク装置のピア・ノードが、ネットワーク装置の障害を認識しないようにする。冗長性手法は、更に、アクティブ・コントローラ・システムからスタンバイ・コントローラ・システムへ切り替わる場合に、プロトコル・セッションをリアルタイムで維持することによって、ルーティング・プロトコル・セッションがドロップされないようにする。冗長性手法は、更に、スタンバイ・コントローラ・システムの中にネットワークの整合したビューを維持する。
以下の説明において、冗長性手法は、ネットワーク・ルータ及びルーティング・プロトコルに関して説明される。しかし、ここで説明される冗長性手法は、特定のタイプのネットワーク装置に限定されることを意図されず、ハードウェア及びソフトウェア障害を有するか、ルーティング・プロトコル機能、例えば、ネットワーク・スイッチ、ネットワーク光学スイッチ、ブリッジ、ハブ、又はゲートウェイを実行することができる他のタイプのネットワーク装置を使用して実現されることができる。
更に、以下の説明において、ルータの冗長性とは、ルータがアクティブ・コントローラ・システムのバックアップ・コントローラ・システム(即ち、スタンバイ・コントローラ・システム)を有することを意味する。スタンバイ・コントローラ・システムは、アクティブ・コントローラ・システムが故障した場合に、アクティブ・コントローラ・システムのために動作を再開することができる。更に、ルーティング・プロトコル冗長性とは、アクティブ・コントローラ・システム上で走っているプロトコル・セッションをスタンバイ・コントローラ・システムの中に維持し、アクティブ・コントローラ・システムと整合したルーティング及び転送情報をスタンバイ・コントローラ・システムの中に維持することを意味する。
ルータ及びルーティング・プロトコル冗長性の概観
ルータ冗長性を有する例示的ネットワーク
図1は、本発明が実施されることのできる例示的ネットワーク100を示す。図1を参照すると、例示的ネットワーク・システムは、複数のピア・ノード102A及び102Bと相互接続されて冗長性プラットフォーム900を有するノード104(「冗長ノード104」)を含む。例示のため、3つのノードが示されるが、ネットワーク100は任意数のノードを含むことができる。ピア・ノード102A及び102Bとは、冗長ノード104との「セッション」又は「論理接続」を有するノードである。
1つの実施形態において、ノード102A及び102B、並びに冗長ノード104は、ネットワーク装置、例えば、IPレイヤー3サービスを実行しているネットワーク・ルータを表す。代替的に、ノード102A及び102B、並びに冗長ノード104は、IPレイヤー3サービス、又はそれより高いレイヤーレベル・サービスであってアプリケーション・サービスまでを実行することのできる他のタイプのネットワーク装置、例えば、スイッチ、ブリッジ、ハブ、又はゲートウェイであってよい。他の実施形態において、ノード102A及び102B、並びに冗長ノード104は、マルチプロトコル・ラベル・スイッチング(MPLS)サービスを実行することができる。
ノード102A及び102B、並びに冗長ノード104は、通常、自立システム(AS)と呼ばれて同じ管理権限及び制御のもとにある1つの特定のネットワーク・グループを介して情報(即ち、パケット)を転送するために使用されるネットワーク・ルータを表すことができる。従って、ノード102A及び102B、並びに冗長ノード104は、ゲートウェイ内プロトコル(IGP)を走らせて、ASの内部で情報を交換する「内部ルータ」を表すことができる。
ノード102A及び102B、並びに冗長ノード104は、もしIGPとして動作していれば、ルーティング・プロトコル、例えば、中間システム−中間システム・プロトコル(IS−IS)、オープン最短経路第一プロトコル(OSPF)、及びルーティング情報プロトコル(RIP)を動作させることができる。IS−ISプロトコル及びOSPFプロトコルは、リンク状態プロトコルである。リンク状態プロトコルはリンク状態パケットを使用して、ネットワークの整合したビューを維持する。RIPプロトコルは、距離ベクトルに基づく単純なプロトコルで、最短経路の計算を使用する。
代替的に、ノード102A及び102B並びに104は、ASの間で情報を転送するために使用されるネットワーク・ルータを表すことができる。その場合、ルータは、「外部ルータ」と呼ばれ、外部ゲートウェイ・プロトコル(EGP)を走らせる。ノード102A及び102B、並びに冗長ノード104は、もしEGPとして動作していれば、ルーティング・プロトコル、例えば、ボーダー・ゲートウェイ・プロトコル(BGP)を動作させることができる。BGPプロトコルは、信頼性のあるトランスポート・プロトコル、例えば、トランスポート・コントロール・プロトコル(TCP)を介して接続情報を交換し、エラー制御能力を有しない。しかし、ノード102A及び102B、並びに冗長ノード104は、内部ルータ又は外部ルータの任意の組み合わせを表すことができ、任意数のルータがネットワーク100の中で表されることができる。
従って、ノード102A及び102B、並びに冗長ノード104は、整合したルーティング及びルーティング・プロトコル状態情報を維持することができる。もしルートが更新されると、そのルートはピア・ノードで更新され、ネットワークの整合したビューが維持されなければならない。1つの実施形態において、ノード102A及び102B、並びに冗長ノード104は、「挨拶」パケットを送信することによって隣接ノードを決定することができる。もし確立されたピア・ノードが或る時間間隔の間に「挨拶」パケットに応答しなければ、ピア・ノードは動作不能又は「故障」と考えられる。
従って、冗長ノード104は冗長性プラットフォームを有する特殊なタイプのノードである。この冗長性プラットフォームは、アクティブ・コントローラ・システム(アクティブ・カード910)及びスタンバイ・コントローラ・システム(スタンバイ・カード950)を有し、ノード内の障害がピア・ノード102A及び102Bによって認識されないようにすることができる。更に、もしアクティブ・コントローラ・システムが故障すると、スタンバイ・コントローラ・システムはピア・ノードとのプロトコル・セッションを再開し、アクティブ・コントローラ・システムが故障したことをピア・ノードが認識しないようにすることができる。例えば、もしノード102Aが「挨拶」パケットを冗長ノード104へ送信し、それが何らかの理由で失われ、切り替えが起こり、ノード102Aが挨拶パケットを再送信すると、スタンバイ・コントローラ・システムは、冗長ノード104のために動作を再開し、タイムアウト期間の前に、再送信された挨拶パケットの受信通知を送信することができる。従って、ノード102Aはスタンバイ・システムへの切り替えを認識しない。
1つの実施形態において、ノード104は、図9で示されるような冗長性プラットフォーム900を有するルータを表す。冗長性プラットフォーム900は、アクティブ・カード910に障害が存在する場合に動作を再開するため、アクティブ・カード910及びスタンバイ・カード950を含む。アクティブ・カード910及びスタンバイ・カード950は、それらの中で動作しているハードウェア及びソフトウェア・モジュールを含む。1つの実施形態において、アクティブ・カード910及びスタンバイ・カード950の双方は、可能性としてソフトウェアの異なったバージョン又は同じバージョンを走らせることができる。以下で更に詳細に説明するように、冗長性プラットフォーム900は、ノード104のためにルータ及びルーティング・プロトコル冗長性をサポートする。この冗長性は、ピア・ノードが障害を認識しないようにし、冗長ノード104のためにピア・ノードとのルーティング・プロトコル・セッションを維持する。
例示的アーキテクチャレイヤーモデル
図2は、1つの実施形態に従って図1で示されるノードによって使用されることのできるアーキテクチャレイヤーモデル200を示す。1つの実施形態において、アクティブ・カード910及びスタンバイ・カード950は、アーキテクチャレイヤーモデル200を使用して動作する。アーキテクチャレイヤーモデル200は、ネットワーク通信の標準7レイヤー参照モデルに基づくことができる。説明目的のために、アーキテクチャレイヤーモデル200は、IPルータが動作することのできる異なったレイヤーの1つの実施形態を表す。
図2を参照すると、アーキテクチャレイヤーモデル200は、物理レイヤー202、リンクレイヤー204、IPレイヤー206、通信制御プロトコル(TCP)レイヤー208、ユーザ・データグラム・プロトコル(UDP)レイヤー208、インターネット制御メッセージ・プロトコル(ICMP)218、ボーダー・ゲートウェイ・プロトコル(BGP)レイヤー226、ルーティング・インターネット・プロトコル(RIP)レイヤー222、開放最短経路第一(OSPF)プロトコルレイヤー224、中間システム−中間システム(IS−IS)プロトコルレイヤー214を含むルーティング・プロトコルレイヤー220、ソケットレイヤー210、アプリケーションレイヤー212を含む。ルーティング・プロトコル220は、転送情報テーブル(FIB)216を生成するためルーティング・テーブルを維持する。FIB216は、IPレイヤー209及びリンクレイヤー216によって使用される。前記のレイヤーはネットワークの中でノードへサービスを提供する。
物理レイヤー202は、物理リンクを使用してノード間でデータを移動するサービスを提供する。リンクレイヤー204は、物理リンク上で転送されているデータを処理するサービスを提供する。IPレイヤー209(「IPレイヤー3」)は、物理レイヤー及びリンクレイヤーの上でルーティング及び転送サービスを提供する。TCPレイヤー208は、エラー・チェックを実行し全てのデータが到着したことを確認することによって、完全なデータ転送を保証するサービスを提供する。TCPレイヤー208はIPレイヤー3の上で動作する。従って、ネットワーク内のノードは、IPレイヤー3サービスの上でTCPサービスを使用してデータを送信することができる。
ICMPレイヤー218は、IPレイヤー206の上で走り、その一体的部分である。即ち、IPレイヤー3サービスは本来的に信頼性がなく、データ・パケットはドロップされることがある。従って、ICMPレイヤー218は、IPレイヤー3サービスのためにメッセージ制御及びエラー報告を提供する。UDPレイヤー209は、TCPレイヤー208によって提供されるサービスへの代替サービスを提供する。特に、UDPレイヤー209は、IPレイヤー3サービスレイヤーの上で走って、データグラムを送信するとき、コネクションレス伝送プロトコルを提供する。即ち、UDPレイヤー209は、エンドツーエンドのエラー検出を提供しない。ソケットレイヤー210は、ネットワーク上で走っているノードのアプリケーションレイヤー212又はルーティング・プロトコル220の間の双方向通信の端点を提供する。アプリケーションレイヤー212は、ノード上で走っているアプリケーションを含む。アプリケーションレイヤー212は、他のノードのアプリケーションと通信するため、下位のレイヤーを使用することができる。
ルーティング・プロトコル220は、最適経路(「ルート」)を決定し、パケットを転送し、ルートへの更新がネットワークを通して整合していることを保証するサービスを提供する。全てのルータからのルーティング更新を分析することによって、ルータはネットワークの詳細なビューを構築することができる。ルーティング・プロトコル220の中で、多数のルーティング・プロトコルが動作することができる。例えば、BGPプロトコル226、RIPプロトコル222、OSPFプロトコル224、及びIS−ISプロトコル220は、全てルーティング・プロトコルレイヤー220の中で動作することができる。ルーティング・プロトコル220は、IPレイヤー206によって提供されるレイヤー3サービスの中でデータ(例えば、パケット)を送信するため、FIB216を使用することができる。
BGPプロトコル226は信頼性のあるルーティング・プロトコルではない。従って、BGP226は、メッセージ又はパケットの転送を信頼できるものにするため、TCP208の上で走る。特に、BGP226はメッセージ又はパケットを再送信せず、TCP208に依存して、失われたメッセージ又はパケットを処理する。RIP222は、メッセージ又はパケットを転送するためUDP209を使用する。OSPF224及びIS−IS214は、それぞれのルーティング・プロトコルの中に、信頼できるデータ転送メカニズムを有する。OSPF224はIPレイヤー206の上で走り、IS−IS214はリンクレイヤー204のすぐ上で走る。
以下で更に詳細に説明するように、冗長ノード104の中で動作しているルーティング・プロトコルは、冗長性プラットフォーム900と一緒に動作して、ルータ及びルーティング・プロトコル冗長性を実現することができる。冗長性プラットフォーム900は、リアルタイムのルーティング・プロトコル冗長性を実現するために必要なサポートを提供する。即ち、ルーティング・プロトコルはダイナミックであって、ルートの更新は、ルーティング・プロトコルに依存して規則的又は不規則的時間間隔で起こる。完全な冗長性を実現するため、これらの更新はリアルタイムで維持される必要がある。
例えば、冗長ノード104のためにアクティブ・カード910の上で走っているRIP222、OSPF224、BGP226、及びIS−IS214のルーティング・プロトコル・セッション状態は、冗長性プラットフォーム900を使用してスタンバイ・カード950の上へリアルタイムで維持されることができる。スタンバイ・カード950は、アクティブ・カード910が故障した場合に、同じルーティング・プロトコル・セッション状態を再開することができる。更に、FIB216もスタンバイ・カード950の中へ維持され、スタンバイ・カード950が冗長ノード104のために制御を引き継ぐ場合に、スタンバイ・カード950が最新のネットワーク・ビューを有するようにされる。
基本的な冗長性動作
図3は、1つの実施形態に従った冗長ノード104の基本的動作300のフローチャートである。次の動作300は、図1で示されるようなアクティブ・カード910及びスタンバイ・カード950を有する冗長ノード104によって実現されることができる。説明目的のため、冗長ノード104は、IPレイヤー3又はMPLSサービスを実行することのできるネットワーク・ルータ104であり、動作300は動作302から始まる。
動作302において、冗長ノード104は、アクティブ・カード910の現在の状態を、スタンバイ・カード950の中に維持する。特に、冗長ノード104は、冗長性プラットフォーム900を使用して、アクティブ・カード910の中の現在の構成情報、グローバル情報、ルーティング・テーブル情報、転送テーブル情報、プロトコル・セッション情報、又はデータベース情報を、スタンバイ・カード950へ複写又はコピーする。
動作304において、アクティブ・カード910は障害を検出する。例えば、アクティブ・カード910は、冗長ノード104の中のハードウェア障害又はソフトウェア障害を検出することができる。それによって、冗長ノード104は、アクティブ・カード910からスタンバイ・カード950へ動作を切り替える。
動作306において、スタンバイ・カード950は、故障前のアクティブ・カード910の現在の状態の動作を再開する。スタンバイ・カード950は、故障がピア・ノード102A又は102Bによって認識されないように動作を再開する。図4A〜図7で更に詳細に説明されるように、冗長ノード104は、アクティブ・カード910のルーティング・プロトコル・セッション状態をスタンバイ・カード950の中へリアルタイムで維持し、またプロトコル・セッションがドロップされないようにスタンバイ・カード950へ高速で切り替えることによって、障害がピア・ノードによって認識されないようにすることができる。従って、ネットワーク・トポロジ変化は、ネットワークを通して伝搬される必要はなく、収斂時間が低減される。
プロトコル・セッション及びルーティング情報の維持
図4Aは、アクティブ・カード910からスタンバイ・カード950へルーティング・プロトコル情報プロトコルを複写する図400を示す。図9で示されるような冗長性プラットフォーム900は、ルーティング・プロトコル情報をスタンバイ・カード950の中へリアルタイムで維持するサポートを提供する。図4Aを参照すると、冗長ノード104と通信するピア・ノード102Aが示される。冗長ノード104は、ピア・ノード102Aと通信しているアクティブ・カード910を有する冗長性プラットフォーム900を含む。冗長ノード104は、更に、アクティブ・カード910に障害が存在する場合に動作を再開するスタンバイ・カード950を含む。
1つの実施形態において、ピア・ノード102Aはプロトコル情報415を含む。プロトコル情報415は、持続データ411、セッション状態412、及びルーティング・テーブル413を含む。ルーティング・テーブル413は、FIB432を生成するために使用される。プロトコル情報415は、アクティブ・カード910内のプロトコル情報405Aと整合していなければならない。即ち、ピア・ノード102Aの持続データ411、セッション状態412、及びルーティング・テーブル413の情報は、持続データ401A、セッション状態402A、及びルーティング・テーブル403Aと整合していなければならない。それによって、スタンバイ・カード950は同じ情報を複写されて、冗長性を保証することができる。更に、もしルーティング・テーブル413及び403Aが整合していなければ、ピア・ノード102A内のFIB432は、アクティブ・カード910内のFIB422Aと整合しないであろう。従って、ピア・ノード102Aは、冗長ノード104が異なったネットワーク・ビューを有すると考えるかも知れず、冗長ノード104とのルーティング・プロトコル・セッションを破壊することができる。
完全な冗長性を実現するため、アクティブ・カード910によってプロトコル情報405Aへ受信又は実行された変更は、スタンバイ・カード950内のプロトコル情報405Bへ複写されなければならない。具体的には、アクティブ・カード910によって持続データ401A、セッション状態402A、及びルーティング・テーブル403Aへ受信又は実行された変更は、スタンバイ・カード950内の持続データ401B、セッション状態402B、及びルーティング・テーブル403Bへ複写される。もし変更が維持されなければ、冗長性は破壊される。
プロトコル情報は、ルーティング・プロトコル、例えば、BGP、RIP、OSPF、及びIS−ISルーティング・プロトコルへ関連づけられることができる。持続データは、各々のルーティング・プロトコルのために構成情報を含むことができる。構成情報は、性質として永続的である。セッション状態情報は、ノードの上で走っている各々のルーティング・プロトコルのためにルーティング・プロトコル状態変化を含む。セッション状態情報は、性質としてダイナミックであって、規則的又は不規則的時間間隔で変化することができる。例えば、ルーティング・プロトコル状態変化データは、各々のルーティング・プロトコルについて、ノード間の通信規則、ピアから受信された全てのルートのステータス、ピアへ送信された全てのルートのステータス、タイムアウト・パラメータ、全てのピアによって削除されつつあるルートの履歴などに関連した情報を含むことができる。ルーティング・テーブル情報は、各々のルーティング・プロトコルについて、ノードによって知られたルートを含む。ルーティング・テーブル情報は、パケットを転送するために使用されるFIBテーブルを生成するために使用される。
スタンバイ・カード950は、アクティブ・カード910の上で走っている各々のルーティング・プロトコルに必要な関連情報を移植されるので、もし障害がアクティブ・カード910で起こると、スタンバイ・カード950は、アクティブ・カード910と整合したFIBを使用して、アクティブ・カード910のルーティング・プロトコル・セッションを再開することができる。従って、スタンバイ・カード950は、アクティブ・カード910の同じ状態を使用して、同じプロトコル・セッションを再開することができる。そのような場合、ピア・ノード102Aは、依然としてアクティブ・カード910と通信しているものと信じながら、スタンバイ・カード950と通信するであろう。それによって、サービス停止が回避される。
図4Bは、1つの実施形態に従ってルーティング・プロトコル状態変化情報を複写する動作450のフローチャートである。次の動作450は、図1で示されるようなアクティブ・カード910及びスタンバイ・カード950を有する冗長ノード104によって実現されることができる。説明目的のために、冗長ノード104は、IPレイヤー3又はMPLSサービスを実行するネットワーク・ルータ104であり、動作450は動作452で始まる。
動作452において、ルーティング・プロトコル状態変化情報は、アクティブ・カード910によって受信又は生成される。例えば、アクティブ・カード910は、持続データ401A、セッション状態402A、及びルーティング・テーブル403Aへの変化を生成することができる。代替的に、アクティブ・カード910は、持続データ401A、セッション状態402A、及びルーティング・テーブル403Aについて、ピア・ノード102Aから変化を受信することができる。
動作454において、アクティブ・カード910内で受信又は生成されたルーティング・プロトコル状態変化は、スタンバイ・カード950へ複写される。例えば、図9で示されるような冗長性プラットフォーム900は、アクティブ・カード910内の持続データ401A、セッション状態402A、及びルーティング・テーブル403Aが、スタンバイ・カード950内のピア持続データ401B、セッション状態402B、及びルーティング・テーブル403Bへ複写されるときのサポートを提供する。そのような複写動作は、リアルタイムで実行される。従って、もしアクティブ・カード950が故障すれば、スタンバイ・カード950は、アクティブ・カード950内の同じ情報を使用して、動作を再開することができる。
高速切り替え/障害のスプーフィング
図5〜図7は、冗長性プラットフォーム900を有するノードが、どのようにしてピア・ノードが障害及び切り替えを認識しないようにするかを示す。ネットワークの残りと整合した持続データ、セッション状態、及びルーティング・テーブル情報を、スタンバイ・コントローラ・システム(スタンバイ・カード950)の中に維持することによって、シームレス、円滑、及び高速の切り替えを起こすことができる。切り替えは十分に高速であるから(例えば、数ミリ秒内)、切り替えを実行するため冗長ノード104が少し遅延したことをピア・ノードは認識しない。
図5は、1つの実施形態に従って高速切り替えを有するスタンバイ・コントローラ・システムによって動作を再開する図3の動作306の詳細を示すフローチャートである。説明目的のために、動作306は、動作502で始まる。
図5を参照すると、動作502において、冗長ノード104は、アクティブ・カード910からスタンバイ・カード950への切り替えを実行する。切り替えは、数ミリ秒内で実行されることができる。切り替え(即ち、「突然の不調」)を実行するための時間は非常に短いので、切り替えが起こったことをピア・ノード102Aは認識しない。動作504において、スタンバイ・カード350は、プロトコル・セッションを破壊することなくピア・ノード102Aとの動作を再開する。即ち、突然の不調は非常に小さいので、冗長ノード104に突然の不調が存在したことをピア・ノード102Aは気づかない。
以下は、高速切り替えを詳細に説明する記述である。IPは、本来的に信頼性がないので、パケットはドロップされる可能性がある。パケットがアクティブ・カード910によってピア・ノード102Aから受信され、障害が起こって、アクティブ・カード910がパケットの受信を通知しない場合、ピア・ノード102Aはパケットを再送信することができる。この場合、切り替えが存在しても、スタンバイ・カード950が、ピア・ノード102Aから再送信されているパケットを受信することができ、そのパケットの受信を通知する。従って、ピア・ノード102Aは、通常のように認識し(即ち、パケットを再送信し、再送信されたパケットへの応答を受信する)、パケットがドロップされても冗長ノード104内で障害又は切り替えが起こったとは思わないであろう。
切り替えは迅速に実行されるので、スタンバイ・カード950は、ルーティング・プロトコル・セッションを破壊することなく、冗長ノード104のために動作を再開することができる。例えば、各々のルーティング・プロトコルはタイムアウト期間を含み、もし或る数のパケットが或る時間内に受信を通知されなければ、セッションを破壊する。その結果、幾つかのパケットが切り替えの間にドロップされても、冗長性プラットフォーム900を有する冗長ノード104に対しては、突然の不調は短い。即ち、セッションが破壊されるか冗長ノード104のサービスが停止することなしに、スタンバイ・カード950はアクティブ・カード910のために動作を再開することができる。
図6Aの600は、1つの実施形態に従って障害及び切り替えを認識しないようにピア・ノードをだます線図を示す。ルーティング・プロトコルへのリアルタイム局面が存在するから、冗長ノード104へのピア・ノード102Aは、アクティブ・カード910によってコミットされているトランザクションが、スタンバイ・カード950によってもコミットされることを必要とする。例えば、もしアクティブ・カード910がルーティング更新へコミットすれば、そのルーティング更新は、スタンバイ・カード950の中でも行われなければならない。もしアクティブ・カード910によってコミットされたトランザクションが、スタンバイ・カード950によってコミットされず、切り替えが起こると、ピア・ノード102Aは冗長ノード104とのセッションを破壊するであろう。なぜなら、スタンバイ・カード950は、ピア・ノード102Aと整合したネットワーク・ビューを有しないからである。具体的には、スタンバイ・カード950は更新へコミットしなかった。
従って、ピア・ノード102Aが冗長ノード104とのセッションを破壊しないようにするため、スタンバイ・カード950への切り替えは迅速に実行されなければならず、アクティブ・カード910によってコミットされたトランザクションは、スタンバイ・カード950によってコミットされなければならない。冗長性プラットフォーム900を有する冗長ノード104は、そのような高速切り替えを実行し、スタンバイ・カード950内でトランザクションへコミットして、ピア・ノード102Aがプロトコル・セッションを破壊しないようにすることができる。
図6を参照すると、ピア・ノードからメッセージ(MSGA)を受信するアクティブ・カード910が示される。メッセージは、例えば、ノード102Bが故障し、それに従って102Bへのルートが更新されなければならないことを冗長ノード104へ通知するメッセージであってよい。ノード102Aは、ノード104がその更新を受信し、必要な変更を実行している(即ち、メッセージへコミットしている)ことの確認を聞く必要がある。もしノード104がそのメッセージへコミットしなければ、冗長ノード104はピア・ノード102Aとは整合しないネットワーク・ビューを有するであろう。従って、もしピア・ノード102Aが、冗長ノード104が整合しないネットワーク・ビューを有すると思えば、冗長ノード104とのセッションを破壊し、サービス停止を起こすであろう。
ここで、もしアクティブ・カード910がメッセージを処理しており、故障点1又は2で故障し(冗長ノード104は、これらの点でメッセージへコミットしなかった)、切り替えがスタンバイ・カード950へ起こるならば、ピア・ノード102Aは、ノード104とのセッションを破壊しないであろう。なぜなら、ピア・ノード102Aはメッセージを再送信することができ(或る再試行回数まで)、スタンバイ・カード950は再送信されたメッセージを受信し、ピア・ノード102Bが故障したことのルート更新へコミットすることによって応答するからである。切り替えが迅速に起こり、再試行回数が最大数になる前にスタンバイ・カード950が動作を再開するかぎり、スタンバイ・カード950は冗長ノード104のために動作を再開することができ、障害及び切り替えはピア・ノード102Aによって認識されない。
しかし、もしアクティブ・カード910のコミット点で障害が起これば、スタンバイ・カード950もメッセージへコミットしなければならない。即ち、もしアクティブ・カード910がメッセージへコミットし、スタンバイ・カード950がメッセージへコミットしなかったならば、冗長性は破壊され、アクティブ・カード910及びスタンバイ・カード950には情報の不整合が存在し、それはサービス障害を起こす可能性がある。例えば、コミットされたトランザクションがルート更新へ関連づけられ、もしスタンバイ・カード950がその更新へコミットしなければ、それはピア・ノード102Aとは整合しないネットワーク・ビューを有するであろう。従って、スタンバイ・カード950は、アクティブ・カード910によってコミットされたメッセージへコミットしなければならない。
図6Aの例において、アクティブ・カード910によってコミットされたメッセージが、スタンバイ・カード950によってコミットされることを確実にするため、スタンバイ・カード950がメッセージへコミットしたのでなければ、アクティブ・カード910はメッセージへコミットしない。図6Aで示されるように、MSGAを受信した後、アクティブ・カード910は、MSGAをスタンバイ・カード950へ送信する。スタンバイ・カード950は、MSGAの受信通知(例えば、「MSGAを受信し、MSGAへコミットした」という通知)をアクティブ・カード910へ送信する。アクティブ・カード910がスタンバイ・カード950から受信通知を受信した後、アクティブ・カード910はメッセージへコミットし、そのコミットメント(「MSGAがコミットされたことの受信通知」)を遠隔のピアへ送信する。次に、アクティブ・カード910は、上位レイヤーを介してMSGAを送信するであろう。
図6Bの650は、他の実施形態に従ってピア・ノードが障害及び切り替えを認識しないようにだます線図を示す。図6Bの例において、アクティブ・カード910はMSGAをそのまま上位レイヤーへ送信するが、スタンバイ・カード950がMSGAへコミットしたことの受信通知が受信されるまで、MSGAへコミットしない。受信通知が受信された時点で、アクティブ・カード910は「コミットメント」を遠隔のピアへ送信する。図6Bで示されるように、MSGAは、図6AのMSGAよりも早くアクティブ・カード910の上位レイヤーへ渡される。
冗長性プラットフォーム900は、アクティブ・カード910内でコミットされたトランザクションに関連した情報でスタンバイ・カード950を更新するサポートを提供する。以下で説明されるように、コミットされたメッセージ又はトランザクションは、小さな更新又は大きな更新を要求することができる。個々のトランザクションのためには、小さな更新又は「デルタ」更新がスタンバイ・カード950へ要求される。トランザクションの長い履歴を再生するためには、大きな更新又は「バルク」更新がスタンバイ・カード950へ要求される。従って、アクティブ・カード910によってコミットされた全てのトランザクションを、スタンバイ・カード950の中に維持することができる。
図7は、1つの実施形態に従ってピア・ノードへコミットメントを送信する動作700のフローチャートである。図7を参照すると、動作702において、メッセージがピア・ノードから受信される。例えば、アクティブ・カード910は、ルートのステータスが変化して更新を行う必要がある旨のメッセージを、ピア・ノード102Aから受信することができる。
動作704において、メッセージに関連した情報がスタンバイ・カード950へ送信される。動作706において、スタンバイ・カード950はメッセージを処理し、ルートのステータスを変更することによってメッセージへコミットする。メッセージへコミットすることによって、スタンバイ・カード950はアクティブ・カード910へ受信通知を送信する。従って、アクティブ・カード910はスタンバイ・カード950からその受信通知を受信する。
動作708において、スタンバイ・カード950から受信通知を受信した後、アクティブ・カード910はメッセージへコミットする。この時点で、スタンバイ・カード910もルートのステータスを変更する。
動作710において、メッセージへコミットした後、アクティブ・カード910は、ルートへの更新が行われたことをピア・ノードへ通知してピア・ノードへ「コミットメント」を送信することができる。従って、アクティブ・カード910だけでなくスタンバイ・カード950の中でも、整合したネットワーク・ビューが維持される。
ルータの冗長性
ルータ冗長性のハードウェア
図8は、1つの実施形態に従ってアクティブ・コントローラ・システム及び冗長スタンバイ・コントローラ・システムを有するネットワーク装置104を示す。図8を参照すると、ネットワーク装置104は複数のポート814を含む。ポート814は、様々なデータ転送レートで電気信号又は光学信号をサポートする。拡大図810はネットワーク装置104の基本的内部構成部品を示し、ライン・カード812A、アクティブ・カード910、スタンバイ・カード950、ライン・カード812、及びカードを相互に結合するバックプレーン814を含む。他のタイプの構成部品、例えばシステム・コントローラ・カードも含まれてよい。1つの実施形態において、ネットワーク装置104はIPレイヤー3サービスを提供するネットワーク・ルータである。他の実施形態において、ネットワーク装置104は、アプリケーションレイヤーサービスまでの上位レイヤーレベル・サービスを提供することができる。ネットワーク装置104は、更に、マルチプロトコル・レベル・スイッチング(MPLS)サービスを提供することができる。
ルータ104を冗長にするため、アクティブ・カード910及びスタンバイ・カード950は、同じハードウェア及びソフトウェア構成要素又はモジュールを有する。アクティブ・カード910及びスタンバイ・カード950は、高速ネットワーク・プロセッサ、メモリ装置、例えば、スタティック・ランダム・アクセス・メモリ(SRAM)装置、ダイナミック・ランダム・アクセス・メモリ(DRAM)装置、又は他の類似のメモリ装置を制御する標準メモリ・コントローラを含むことができる。そのようなメモリ装置は、プロトコル情報、グローバル情報、又はカードに関する構成情報を記憶するために使用されることができる。メモリ装置は、更に、命令、ソフトウェア・モジュール、及びカードを制御するオペレーティング・システムを記憶することができる。
1つの実施形態において、バックプレーン814は受動的であり、ライン・カード812A、アクティブ・カード910、スタンバイ・カード950、及びライン・カード812Bの間の通信を可能にする。他の実施形態において、バックプレーン814は、3つ以上のライン・カード冗長性をサポートすることができ、アクティブ・カード910及びスタンバイ・カード950が2つ以上のライン・カードを制御できるようにする。アクティブ・カード910は、アクティブ・カード910又はライン・カード812Aの中の障害を検出して、動作をスタンバイ・カード950へ移すハードウェア及び/又はソフトウェアを含む。スタンバイ・カード950もアクティブ・カード910が故障したとき、アクティブ・カード910のために動作を再開するハードウェア及び/又はソフトウェアを含む。
冗長性プラットフォーム900に関して更に詳細に説明するように、アクティブ・カード910及びスタンバイ・カード950は、スタンバイ・カード950の中に整合情報を維持するデータ転送及び検索サブシステムを含む。アクティブ・カード910は、バックプレーン814を介する通信リンク上で、スタンバイ・カード950と通信することができる。例えば、通信リンクは周辺制御インタフェース(PCI)リンク又はイーサネット・リンクであることができる。
ルータ104は、次のタイプのハードウェア又はルータ冗長性を提供することができる。即ち、(a)カード・セット冗長性、(b)システム・カード冗長性、(c)ポート冗長性、又は(d)ライン・カード冗長性である。カード・セット冗長性とは、スタンバイ・カード950及びライン・カード812Bが、アクティブ・カード910及びライン・カード812Aに対して冗長ペアとして働くことを意味する。1つの実施形態において、ライン・カード812A及びアクティブ・カード910は、スロット0及び1へ挿入されることができ、スタンバイ・カード950及びライン・カード812Bは、ルータ104のためにスロット2及び3の中へ挿入されることができる。従って、ライン・カード812A又はアクティブ・カード910の障害は、ライン・カード812B及びスタンバイ・カード950への切り替えを起こす。
システム・カード冗長性とは、スタンバイ・カード950がアクティブ・カード910に対して冗長システム・カードとして働くことを意味する。1つの実施形態において、システム・カード冗長性は、ルータ104のデフォルト構成であり、ポート冗長性から独立して、ポート冗長性が存在しても存在しなくても作動可能にすることができる。ポート冗長性とは、冗長ポート814が設けられることを意味する。例えば、「Y」タイプのケーブル冗長性は、ポート814のために実現されることができる。1つの実施形態において、ポート冗長性は個々のライン・カードのみに適用される。ライン・カード冗長性とは、アクティブ・ライン・カードのために冗長ライン・カードが設けられることを意味する。例えば、ライン・カード812Aは冗長ライン・カードを有することができ、ライン・カード812Bも冗長ライン・カードを有することができる。
カード状態
アクティブ・カード910及びスタンバイ・カード950は、2つの重要な状態を認識しなければならない。2つの重要な状態とは、「アクティブ状態」及び「スタンバイ状態」である。どの状態でカードが動作しているかに依存して、各々のカードは異なったタイプの動作を実行する。例えば、アクティブ状態で動作しているカードは、構成、状態、及び学習情報を、スタンバイ状態で動作しているスタンバイ・カードに対して更新する。スタンバイ状態で動作しているカードは、アクティブ・カードから情報を受信して、それに従って記憶サブシステムを更新する。以下で更に詳細に説明するように、スタンバイ・カード950に対しては2種類の更新が存在する。即ち、大きな(「バルク」)更新と小さな又は増分(「デルタ」)更新である。
もしアクティブ・カード910の診断及び自己テストの全てがピア・ノードとの間でデータ・トラフィックを送受信することができ、かつ支配権を有するならば、アクティブ・カード910は「アクティブ状態」にあると考えられる。従って、アクティブ・カードは、管理及びプロビジョニング目的のためにアクセス可能である。1つの実施形態において、カードがアクティブであるかどうかの決定は、グローバル・フラグによって行われることができる。更に、ユーザは、ルータ104上の発光ダイオード(LED)インディケータ(例えば、緑色のインディケータ)に基づいて、どのカードがアクティブであるかを決定することができる。もしスタンバイ・カード950の診断及び自己テストの全てが合格し、アクティブ・カードになることができ、支配権を有しないならば、スタンバイ・カード950は「スタンバイ状態」にあると考えられる。1つの実施形態において、スタンバイ・カードは管理のためにアクセス可能であるが、プロビジョニング目的のためにアクセス可能ではない。1つの実施形態において、カードがスタンバイ状態にあるかどうかの決定もグローバル・フラグによって行われることができ、ユーザは、ルータ104上のLEDインディケータ(例えば、黄色のインディケータ)に基づいて、どのカードがスタンバイであるかを決定することができる。
もしアクティブ・カード910又はスタンバイ・カード950が動作可能になることができなければ、カードは「故障状態」へ入る。故障状態もLEDインディケータ(例えば、赤色のインディケータ)によって決定されることができる。もしアクティブ状態の構成が冗長カードの中でミラーリングされるならば、カードは「冗長」であると定義される。冗長性を維持するため、アクティブ・カードとスタンバイ・カードとの間の通信は常時存在しなければならない。特に、アクティブ・カード910が故障したとき、冗長カード950はアクティブになることが可能でなければならない。
冗長性プラットフォーム
基本要件
図9は、ノード104の冗長性プラットフォーム900の1つの実施形態を示す。ノード104によって、ピア・ノードがノードで起こっている障害を認識しないようにするため、冗長性プラットフォーム900は、(a)ノード104とピア・ノードとの接続(即ち、ピア・ノード102A及び102Bとのセッション)がドロップされないように維持し、(b)アクティブ・カード910及びスタンバイ・カード950の中に整合情報を維持することを要求される。従って、もしスタンバイ・カード950が、故障したアクティブ・カード910のために動作を再開するならば、スタンバイ・カード950は、あたかもアクティブ・カード910のように動作する。
例示的アーキテクチャ
図9を参照すると、冗長性プラットフォーム900は、ハードウェア及びソフトウェア構成要素又はモジュールの組み合わせを有する例示的プラットフォーム・アーキテクチャを示す。冗長性プラットフォームは、冗長メモリ・サブシステム及びソフトウェア・モジュールを有するアクティブ・カード910及びスタンバイ・カード950を含む。例えば、メモリ・サブシステムは、データ構造及び非持続データを記憶するランダム・アクセス・メモリ(RAM)、及び持続データを記憶するフラッシュ・ディスクを含む。更に、ソフトウェア・モジュールは、ソフトウェア冗長性マネージャ、アプリケーション・タスク、冗長性制御マネージャ、及びデータストアを含む。
アクティブ・カード910は、アプリケーション・タスク916と通信するソフトウェア冗長性マネージャ(SRM)918を含む。アプリケーション・タスク916は、RAMデータ構造912及び非持続データ914へ情報変化を送信することができる。非持続データ914は、更新の後で変化する情報、例えば、ルーティング情報及び状態を記憶する。アプリケーション・タスク916は、更新をデータストア922へ送信することができる。この場合、RAMデータ構造912及び非持続データ914への変更は、フラッシュ・ディスク924の中へ永続的及び冗長的に記憶されることができる。冗長性制御マネージャ(RCM)920は、アプリケーション・タスク920及びデータストア922と通信することができる。RCM920は、スタンバイ・カード950の中のピアRCM960へ更新情報を送信する。スタンバイ・カード950は、アプリケーション・タスク916の動作をミラーリングするピア・アプリケーション・タスク956を含む。ピア・アプリケーション・タスク956は、SRM958と通信することができ、アクティブ・カード910の中で行われた変更を、RAMデータ構造952及び非持続データ954へ送信することができる。RCM960は、更に、フラッシュ・ディスク924との整合性を維持するため、データストア962へ変更を送信して、フラッシュ・ディスク964を更新することができる。
RAMデータ構造912は、アクティブ・カード910とピア・ノードとのルーティング・プロトコル・セッションの状態を記憶することができる。スタンバイ・カード950の中のRAMデータ構造952は、アクティブ・カード912の中のRAMデータ構造912との整合情報を維持する。非持続データ914は、RAMの中に記憶された情報を表す。特に、非持続データは、バッファの中に一時的に記憶されたパケットであることができる。FIB情報は、規則的又は不規則的時間間隔で更新されている非持続データを含むことができる。持続データとは、データストアを使用してフラッシュ・ディスクの中に永続的に記憶されるデータである。例えば、持続データは、頻繁には変更されないルーティング・プロトコル構成データであることができる。
アクティブ・カード910の中のSRM918は、ソフトウェア障害を検出し、そのピアSRM958に障害を通知し、スタンバイ・カード950へ動作を切り替える責任を有する。特に、アクティブ・カード910の中のSRM916は、アクティブ・カード910が劣化又は故障しているかを決定する。もしSRM916がアクティブ・カード910の中でそのような劣化又は故障を検出すると、SRM916は、スタンバイ・カード950への切り替えを促進し、スタンバイ・カード950の上で走っている他のタスクと協調することができる。
ノード104が適正に動作するためには、他のモジュールが「作動可能」状態になければならない。特に、RCM960、ピア・アプリケーション・タスク956、及びデータストア962は、「作動可能」状態になければならない。作動可能状態とは、シームレスな切り替えが起こることのできる状態である。これは、アクティブ・カード910におけるRAMデータ構造912、持続データ914、フラッシュ・ディスク924の情報が、スタンバイ・カード950におけるRAMデータ構造952、持続データ954、及びフラッシュ・ディスク964の情報と整合しているときである。
アクティブ・カード910の中のRCM920は、スタンバイ・カード950の中のRCM960と通信して、アクティブ・カード912の中の情報をスタンバイ・カード950へ常時「ミラーリング」し、アクティブ・カード910のプロセスをスタンバイ・カード950と同期する。RCM920は、スタンバイ・カード950へデータを選択的に移動する責任を有する。特に、RCM920は、「デルタ」更新と呼ばれる小さな個々のトランザクション更新、及び「バルク」更新と呼ばれる大きなトランザクション更新について責任を有する。
カード間の通信
物理レイヤーは、アクティブ・カード910とスタンバイ・カード950との間のカード間通信をサポートする。例えば、アクティブ・カード910とスタンバイ・カード950との間の通信をサポートするため、イーサネット・リンクを使用することができる。アクティブ・カード910の中のRCM920は、そのようなリンクを使用して、スタンバイ・カード950の中のRCM960と通信することができる。
RCM920及び960は、カード間通信の上で走るソフトウェア・モジュールである。冗長性制御マネージャ(RCM)は、それぞれのカードについて役割及び支配権を決定する。RCMは、更に、ハードウェア・ロジックと通信し、役割及び支配権を決定することができる。RCMは、アクティブ・カード910の中の整合情報をスタンバイ・カード950へ転送して更新することをサポートする。例えば、RCMは、アクティブ・カード910とスタンバイ・カード950との間で、大きな「バルク」更新及び小さな増分「デルタ」更新を制御する。バルク更新は、通常、新しい冗長カードが挿入された場合に実行される。デルタ更新は、スタンバイ更新として考えられ、個々の変更がアクティブ・カード910の中で実行されているときに実行される。1つの実施形態において、スタンバイ・カード950の中のRCM960は、少数のトランザクションを遅らせて動作し、より効率的な更新プロセスを促進することができる。
基礎に存在するプラットフォーム900は、カード間通信をサポートし、従ってアクティブ・カード910とスタンバイ・カード950との間の情報の複写、即ち、バルク更新及びデルタ更新を起こすことができる。カード間通信は、アクティブ・カード910とスタンバイ・カード950との間でメッセージの受信通知を促進して、アクティブ・カード910及びスタンバイ・カード950の中で情報の整合性を維持することができる。
支配権
もし冗長システム(即ち、ノード又はルータ104のために挿入されたスタンバイ・カード)が存在するならば、支配権の決定問題が起こる。単一カード構成、例えば、アクティブ・カード910のみが存在する構成では、アクティブ・カード910がルータ104のために支配権を自動的に獲得する。1つの実施形態において、アクティブ・カード910は、スタンバイ・カード950がルータ104の中に存在するかどうかを自動的に決定する。もし冗長カードが存在しなければ、アクティブ・カード910が支配権を獲得する。しかし、もしアクティブ・カード910が、冗長カードが存在することを決定すれば、アクティブ・カード910とスタンバイ・カード950との間で支配権を決定する決定が行われる。この決定は、ソフトウェア及び/又はハードウェアの中で行うことができる。例えば、支配権を決定するため任意数の手法を使用するアービトレーション・ロジック又は支配権ロジックが、アクティブ・カード910及びスタンバイ・カード950の双方に存在することができる。例えば、アービトレーション・ロジックは、カードのスロットIDに基づいて支配権を決定することができる。例えば、スロットID1に挿入されたカードは、「アクティブ・カード」として決定されることができ、スロットID2に挿入されたカードは、「冗長カード」として決定されることができる。代替的に、アービトレーション・ロジックが、カード上のID番号をチェックして、それがルータのID番号とマッチするかどうかを調べることができる。もしマッチすれば、そのカードは「アクティブ・カード」となる。明らかであるように、様々な手法を使用して、支配権を決定することができる。
ブート・シーケンス
単一コントローラ・カード構成において、支配権はコントローラ・カードに所属する。しかし、冗長システムにおいては、ブートアップ時に、どのカードが「アクティブ」になるかを決定する決定が行われる。図10Aは、1つの実施形態に従ったブート・シーケンスの動作1000のフローチャートである。
図10Aを参照すると、動作1002において、冗長システムの中のどのカードが、アクティブ又はスタンバイとして動作すべきであるかを調べる決定が行われる。1つの実施形態において、もしカードの1つがブート・シーケンス前にアクティブであったならば、そのカードが支配権を与えられてアクティブとなる。他の実現形態では、どのカードがアクティブ又はスタンバイであるかを決定するため、スロットIDが使用される。
動作1004において、アクティブと決定されたカードが支配権を要求する。他のカードの中でも同じプロセスを起こすことができる。即ち、双方のカードが同時に走り、各々のカードが支配権を獲得するプロセスを走らせることができる。双方のカードが以前にアクティブであって、現在アクティブになることが可能である場合、タイブレーカを破壊するため、任意数の支配権又は選択アルゴリズム又は手法を使用することができる(例えば、乱数手法)。
動作1004において、アービトレーション・ロジックは、カード910又は950の1つへ支配権を許可する。説明目的のために、アクティブ・カード910の上のアービトレーション・ロジックがアクティブ・カード910へ支配権を許可し、スタンバイ・カード950の上のアービトレーション・ロジックがスタンバイ・カード950へスタンバイ・ステータスを与える。
アクティブ・カード910がアクティブとして動作し、スタンバイ・カード950がスタンバイとして動作しているものと仮定すれば、スタンバイ・カード950はブートアップ・シーケンスの間に、アクティブ・カード910をミラーリングするように更新される必要がある。即ち、アクティブ・カード910がブートアップし、SRM918はアクティブ・カード910の中の構成及び状態情報を読み取る。従って、アクティブ・カード910はアクティブ状態で走り始める。スタンバイ・カード950の中のSRM958も、構成及び状態情報を読み取り、スタンバイ状態で走り、作動可能であってスタンバイ状態にあることをSRM918へ通知する。図10Bは、他の実施形態に従ったブート・シーケンスの動作1010のフローチャートである。
図10Bを参照すると、動作1012において、アクティブ・カード910は、アプリケーション・タスク916、SRM918、及びRCM920を使用して、RAMデータ構造912、フラッシュ・ディスク924、及び非持続データ914に記憶された内容の全てを、スタンバイ・カード950の中のピアへバルク・コピーする。例えば、アクティブ・カード910の上で走っているルーティング・プロトコル・アプリケーションは、RAMデータ構造912の中の全ての関連情報を、スタンバイ・カード950の中のピア952へコピーし始める。1つの実施形態において、必須のデータだけが、例えば、状態データ、接続データ、私用ルート・データベースなどが、コピーされなければならない。更に、非必須データ、例えば、カウンタ情報は、コピーされる必要はない。
動作1014において、アクティブ・カード910は、ピア・ノードから到着する新しいルーティング・メッセージから生成された新しい情報又はデータの増分コピーを実行する。新しい情報は、バルク・コピー動作が完了したかどうかに関わらず、スタンバイ・カード950へコピーされなければならない。1つの実施形態において、どの情報が新しく生成されたかを決定するため、マーク・アンド・スイープ手法を使用することができる。他の実施形態において、増分コピー及びバルク・コピーの同時の実行は許されない。そのような場合、冗長性プラットフォーム900は、バルク・コピー動作の後で増分更新を実行するため、任意数のキューを含むことができる。有効及び整合したルーティング・プロトコル情報を保証するため、データストア922は、フラッシュ・ディスク924へ変更を行う前に、フラッシュ・ディスク924からの冗長性コピーを、スタンバイ・カード950の中のデータストア962及びフラッシュ・ディスク964へ実行する。
動作1016において、アクティブ・カード910及びスタンバイ・カード950の双方は、整合性検査を実行する。例えば、各々のルータ・プロトコルは、アクティブ・カード910からスタンバイ・カード950へ整合情報がコピー又は複写されたかどうかの検査を実行しなければならない。一度、整合性が検査されると、ルーティング・プロトコルは、スタンバイ・カード950におけるそれ自身の冗長性を宣言することができる。もしルーティング・プロトコルが、それら自身の冗長性を宣言すれば、ルータ104は、冗長であると宣言される。
猶予切り替え
猶予切り替えとは、制御された方法でユーザ又はソフトウェアによってイニシエートされる切り替えを意味する。例えば、ユーザは、コマンドをコマンド行でイニシエートして、ノード104のためにアクティブ・カード910からスタンバイ・カード950へ動作を切り替えることができる。猶予切り替えにおいて、SRM918は、スタンバイ・カード950への支配権変更を認識する。従って、SRM918は、より制御された方法で切り替えを準備し、アクティブ・カード910はルータ104の制御をスタンバイ・カード950へ円滑に譲渡することができる。SRM918は、アクティブ・カード910が「アクティブ状態」で機能するために必要な全ての重要機能のビット・マップを維持する。アプリケーション・タスク916を介するタスクは、それらの状態をスタンバイ・カード950の中のSRM918へ送信し、シームレス及び高速の切り替えが起こるようにする。
図11A及び図11Bは、1つの実施形態に従ってスタンバイ・カード950への猶予切り替えを実行するアクティブ・カード910の動作1100のフローチャートである。次の動作において、高速及び円滑な切り替えを促進するため、アクティブ・カード910のSRM918及びRCM920を使用することができる。
図11A及び図11Bを参照すると、動作1102において、アクティブ・カード910は、スタンバイ・カード950がルータ104に挿入されているかどうか、又はスタンバイ・カード950がオフラインでないかどうかをチェックすることによって、切り替えがブロックされないことを検査する。アップグレード目的のため、又は他の理由によって、スタンバイ・カード950を「オフライン」モードにすることができる。これは、結果的に冗長性機能を除去する。スタンバイ・カード950がオンラインかオフラインかを検査するため、カード間通信メカニズムを使用することができる。例えば、SRM918は、スタンバイ・カード950の状態を要求することができる。状態は、カード状態、カード・タイプ、ハードウェア、ソフトウェア、及びデータベース・チェックサムへ関連づけられることができる。従って、もし戻された状態が「オフライン」であれば、アクティブ・カード910は切り替えを拒絶するであろう。
動作1104において、アクティブ・カード910は、スタンバイ・カード950がオフラインでないことを検査する。
動作1106において、SRM918は、切り替えが実行されていることを、ルータ104の制御プレーン又はアプリケーションレイヤーへ通知する。
動作1108において、アクティブ・カード910は、フラッシュ・ディスク924への全ての新しい更新をブロックする。例えば、SRM918及びデータストア922は、RAMデータ構造912、非持続データ914、及びフラッシュ・ディスク924への全ての更新をブロックすることができる。1つの実施形態において、SRM918は、全てのタスクが更新、例えば、フラッシュ・ディスク924内のルーティング・テーブルの変更を禁止された旨のメッセージを、アプリケーション・タスク916へ送信することができる。このブロックは、更に、スタンバイ・カード950への全ての新しい更新をブロックする。これは切り替えに必須である。他の実施形態において、アプリケーション・タスク916は、切り替えに致命的ではない或るデータ変更が、RAMデータ構造912及び非持続データ914へブロックされないことを決定できる。
動作1110において、SRM918及びRCM920は、データベースの更新を完了するため、RAMデータ構造912、持続データ914、及びフラッシュ・ディスク924の中の情報を、スタンバイ・カード950の中のピアへ複写する。
動作1112において、SRM918は、スタンバイ・カード950上の構成情報がアクティブ・カード910と同じかどうかを検査する。例えば、SRM958は、スタンバイ・カード950におけるデータベース情報のチェックサムをアクティブ・カード910と交換することができる。1つの実施形態において、もしチェックサムがマッチしなければ、SRM958は、アクティブ・カード918の中へデータベースを再び複写し、検査プロセスを再び実行する。もしチェックサムが2回目にマッチしなければ、切り替えは起こらない。
動作1114において、SRM918は、複写が完了した後にアクティブになる準備をすることを、スタンバイ・カード950へ通知する。アクティブ・カード910は、「アクティブ」になる準備を完了することを、スタンバイ・カード950に通知する。1つの実施形態において、アクティブ・カード910は、アクティブになる準備を完了するメッセージをスタンバイ・カード950に送信する。こうして、アクティブ・カード910は受信通知(即ち、「作動可能」又は「非作動可能」)を待つことができる。もしスタンバイ・カード950が「非作動可能」を応答すれば、切り替えは破棄される。
動作1116において、SRM918は、走っている或るタスクがスタンバイへ移りつつあることを、アプリケーション・タスク916へ選択的に通知する。例えば、SRM918は、メッセージをタスクの選択グループへ送信する。このメッセージに対しては受信通知が必要である。メッセージは、アクティブ・カード910がスタンバイ状態へ変更されつつあることをタスクへ通知する。
動作1118において、アクティブ・カード910は、ルータ104に対する支配権を譲渡する。例えば、SRM918は、「マスター」状態を主張しないI/Oドライバを呼び出して、支配権を譲渡することができる。次に、アクティブ・カード910のハードウェアは、即時の制御又は支配権をスタンバイ・カード950へ与える。従って、このアクションは、ルータ104へ来る全てのデータをスタンバイ・カード950へ転送する。
動作1120において、SRM918は、タスクの残りがスタンバイへ移ることを、アプリケーション・タスク916へ通知する。即ち、或るタスクの機能は、カード状態が変化するにつれて変化する。そのような変化は、全てのタスクへ伝搬されることができる。
動作1122において、SRM918は、タスクの状態をタスクに質問し、タスクがスタンバイになるまで待つ。この動作は、主として、アクティブ・カード910だけが実行することのできる機能、例えば、管理ステーションへの応答、又はアップリンク/アクセス・ポート上のデータの送信、ライン・アラームへの応答などを実行しているアクティブ状態のタスクに必要である。この質問/ハンドシェーキングによって、全ての重要なタスクはスタンバイへ移ることを保証される。
動作1124において、アクティブ・カード910は、持続情報及び非持続情報の双方についてデータベースを同期するため、アクティブ(スタンバイ・カード950)との通信を確立する。一度、データベースが同期されると、アクティブ・カード910の状態はスタンバイ状態への準備を完了する。
動作1126において、SRM918は、アプリケーション・タスク916及びデータストア922へ行われたブロックを除去する。
動作1128において、アクティブ・カード910はスタンバイ状態へ設定される。
上記の動作はアクティブ・カード910のイベントに関連する。スタンバイ・カード950のイベントは、以下の図12A及び図12Bとの関連で説明される。
図12A及び図12Bは、1つの実施形態に従って猶予切り替えを実行するスタンバイ・カード950の動作1200のフローチャートである。以下の動作において、高速及び円滑な切り替えを促進するため、スタンバイ・カード950のSRM958及びRCM960を使用することができる。図12A及び図12Bを参照すると、動作1202において、SRM958は、SRM918を介してアクティブ・カード910へカード状態情報及び自己テスト情報を与える。
動作1204において、RCM960は、アクティブ・カード910からスタンバイ・カード950の中のピア・データベースを更新する。
動作1206において、SRM958は、SRM918を介してアクティブ・カード910へデータベース・チェックサムを提供する。
動作1208において、SRM958は、或るタスクがアクティブ状態への準備を完了することを、ピア・アプリケーション・タスク956へ通知する。
動作1210において、アクティブ・カード910が支配権を譲渡する時点で、スタンバイ・カード950がルータ104に対する支配権を獲得する。
動作1212において、SRM958は、タスクの残りがアクティブ・ステータスを有すべきであることを、ピア・アプリケーション・タスク956へ通知する。SRM958は、更に、スタンバイ・カード950の中で支配権を有することの状態情報を更新する。
動作1214において、ピア・アプリケーション・タスク956は、タスクの状態をタスクに質問し、それらのタスクがアクティブ状態になるまで待つ。1つの実施形態において、幾つかのタスクは、もし必要であれば、アクティブとして再スタートしてよい。
動作1216において、SRM958は、スタンバイ・カード950上のRAMデータ構造952、非持続データ954、及びフラッシュ・ディスク964への新しいネットワーク更新をブロックする。
動作1218において、スタンバイ・カード950は、その状態をアクティブへ変更する。
動作1220において、SRM958は、制御プレーン又はスタンバイ・カード950上で走っているアプリケーションレイヤーへ切り替えを通知する。
動作1222において、SRM958は、他のカード(アクティブ・カード910)がスタンバイ状態になるまで待つ。
動作1224において、SRM958及び/又はRCM960は、スタンバイ・カード950におけるデータベースのデータが、アクティブ・カード910のデータベースと整合しているかどうかを検査する。
動作1226において、SRM958は、スタンバイ・カード950内のデータベースへのプロビジョニング・ブロックを除去する。
非猶予切り替え
非猶予切り替えとは、警告なしにアクティブ・カード910内の障害によってイニシエートされた切り替えを意味する。例えば、アクティブ・カード910は、以下で詳細に説明するように、幾つかのハードウェア及びソフトウェアの理由によって故障する。非猶予切り替えは、切り替えの準備が存在しないことを除いて、猶予切り替えと非常に類似している。即ち、切り替えは、冗長システムのために任意の時点で起こり、データベースの更新は係属中であるか、データベースは、例えば、ルーティング・テーブル又はFIBの更新の最中であってよい。更に、或る情報は、失われる可能性がある。1つの実施形態において、失われた情報を回復するため、回復メカニズムを実行することができる。
図13は、1つの実施形態に従った非猶予切り替えを実行するスタンバイ・カード950の動作1300のフローチャートである。動作1300は、スタンバイ・カード950に関連する。1つの実施形態において、アクティブ・カード910は、非猶予切り替えのために図11の動作1100を実行する。
図13を参照すると、動作1302において、SRM958は、他のカード(アクティブ・カード910)がルータ104のために支配権を所有していないこと決定する。
動作1304において、SRM958は、全てのタスクが「アクティブ」へ移行すること、及びスタンバイ・カード910の状態が「アクティブ」として更新されることを、ピア・アプリケーション・タスク956へ通知する。
動作1306において、SRM958は、タスクの状態をタスクに質問し、それらのタスクが「アクティブ」になるまで待つ。
動作1308において、アクティブ・カード910の状態が「非アクティブ」又は「スタンバイ」へ変更される。
動作1310において、スタンバイ・カード950は、スタンバイ・カード950がルータ104のために支配権を所有していること、及び切り替えが起こったことを、制御プレーン又はアプリケーションレイヤーへ通知する。
スタンバイ・カード冗長性の同期
冗長性がアクティブ・カード910及びスタンバイ・カード950と一緒に働くために同期されなければならない2つの主な構成要素が存在する。第1に、フラッシュ・ディスク924の中に記憶された「持続情報」の同期が存在しなければならない。持続情報は、例えば、構成情報及び関連したファイル、関連した更新、ログ、状態などを含むことができる。第2に、RAM(例えば、RAMデータ構造912及び非持続データ914)に記憶された「非持続情報」の同期が存在しなければならない。非持続情報は、例えば、ルーティング・テーブル、セッション接続などを含む。ルータ104上で走っている全てのタスクは、その設計の一部分として冗長性を有する。即ち、全てのタスクは、「持続情報複写」及び「非持続情報複写」に焦点を置いている。アクティブ・カード910及びスタンバイ・カード950の中のデータストア・ソフトウェア・モジュールは、持続及び非持続複写又は更新を助ける。
持続更新
図14は、持続情報をスタンバイ・カード950へ更新する動作1400のフローチャートである。動作1400は、アクティブ・カード910上のデータストア922を呼び出して構成情報をフラッシュ・ディスク924へ保存するタスクに関連している。データストア922は、ローカルのフラッシュ・ディスク924を更新した後、スタンバイ・カード950内のピア・データストア962へメッセージを送信し、同じ情報をフラッシュ・ディスク964へコピーする。更に、RAMデータ構造952及び非持続データ954を新しい構成情報で更新するため、データストア962へのメッセージをピア・アプリケーション・タスク956へ送信することができる。1つの実施形態において、全てのトランザクションのために否定応答又は肯定応答が存在してよい。
図14を参照すると、動作1402において、アプリケーション・タスク916は、メッセージをデータストア922へ送信し、構成情報をフラッシュ・ディスク924へ保存する。例えば、メッセージは、更新のためのレコード識別情報を含むことができる。代替的に、単一のトランザクションについて、多数のレコード更新が存在してよい。
動作1404において、データストア924は構成情報でフラッシュ・ディスク924を更新する。ローカルのフラッシュ・ディスク924を更新した後、データストア924は、フラッシュ・ディスク924が更新された旨の受信通知を、アプリケーション・タスク916へ送る。次に、データストア924は、RCM920及び960を介してスタンバイ・カード950内のピア・データストア962へ同じメッセージを送信する。
動作1406において、スタンバイ・カード950内のデータストア962は、アクティブ・カード910の中のフラッシュ・ディスク924に対する同じ更新で、フラッシュ・ディスク964を更新する。データストア962は、アクティブ・カード910の中のデータストア922によってアプリケーション・タスク916へ送信された同じメッセージ・セットを、ピア・アプリケーション・タスク956へ送信する。
動作1408において、ピア・アプリケーション・タスク956は、メッセージを解釈し、それに従ってRAMデータ構造952及び非持続データ954を更新する。
非持続更新
図15は、非持続情報をスタンバイ・カード950へ更新する動作1500のフローチャートである。動作1500は、アクティブ・カード910の中のRAMデータ構造912及び非持続データ914へ構成変更を送信し、スタンバイ・カード950内のピア・アプリケーション・タスク956へメッセージを送信して、RAMデータ構造952及び非持続データ954を更新するアプリケーション・タスク916に関連する。1つの実施形態において、全てのトランザクションに否定応答又は肯定応答を使用することができる。
図15を参照すると、動作1502において、アプリケーション・タスク916は、そのRAMデータ構造952又は非持続データ954を更新し、メッセージをRCM920へ送信して、そのメッセージをスタンバイ・カード950へ送信する。
動作1504において、RCM920は、RCM960を介してメッセージをピア・アプリケーション・タスク956へ送信する。RCM920は、アプリケーション・タスク916がアクティブ・カード910の中で送信したメッセージの同じセットを、ピア・アプリケーション・タスク956へ送信する。
動作1506において、ピア・アプリケーション・タスク956は、それに従ってそのRAMデータ構造952及び非持続データ954を更新する。ピア・アプリケーション・タスク956は、変更を行った旨の受信通知を、アクティブ・カード910の中のアプリケーション・タスク916へ送信することができる。
動作1508において、アクティブ・カード910上のSRM918は、受信通知を受信すると、RAMデータ構造912、非持続データ914、及びフラッシュ・ディスク924への変更禁止を実行したブロッキング・プロセスをアンブロックする。
上記の更新動作は、「バルク更新」及び「デルタ(小さい)更新」と呼ばれるスタンバイ・カード950への2種の更新について実行されることができる。
バルク更新
バルク更新とは、スタンバイ・カード950が最初にルータ104へ挿入され、アクティブ・カード910がアクティブ・モードで動作していたときに行われるスタンバイ・カード950への更新を意味する。新しく挿入されたカードは、新しいカード又はスペア・カード又は他のルータからのカードであってよい。アクティブ・カード910及びスタンバイ・カード950の上で走っているSRMは、それら自身の有効性及びステータスを決定し、アクティブ・ステータス又はスタンバイ・ステータスを決定する。説明目的のために、挿入されたスタンバイ・カード950はスタンバイ・ステータスを獲得する。もし挿入されたカードが機能的にスタンバイになることができれば、スタンバイ・カード950はアクティブ・カード910と同期されなければならない。
この時点において、動作している巨大なルーティング・テーブルを有するアクティブ・カード910とスタンバイ・カード950との間で、大きな更新「バルク更新」が起こる。特に、更新は「バルク」と呼ばれる。なぜなら、何百万というルーティング・エントリを含むことができるアクティブ・カード910の中の全ての情報が、スタンバイ・カード950へコピーされなければならないからである。
バルク更新の始めに、SRM918は、アクティブ・カード910の構成への全ての変更、例えば、コマンド・ライン変更又はセッション・セットアップ変更をブロックする。1つの実施形態において、ネットワーク・ルートの更新をキューにすることができる。なぜなら、ネットワーク・トポロジの変化は、バルク更新の間でも、常に認識されていなければならないからである。
アクティブ・カード910内のデータストア922は、持続データ(即ち、フラッシュ・ディスク924の中に記憶された情報)を記憶しているデータベースが、スタンバイ・カード950のメモリ又はフラッシュ・ディスク964の中へミラーリングされることを確実にする。例えば、ルーティング・テーブル、接続情報などは、アクティブ・カード910及びスタンバイ・カード950の中にミラーリングされる。RCM920は、アクティブ・カード910上のモジュールへ、スタンバイ・カード950の存在を通知する。1つの実施形態において、更新は、アクティブ・カード910の上で走っているルーティング・プロトコルの異なったタイプについて使用される各々のアプリケーションごとに異なることができる。
デルタ更新
アクティブ・カード910上で起こることのできる変化は2種類存在する。第1の変化は、スタンバイ・カード950へ複写又は更新されることが必要な変化である。例えば、構成の変化、ルーティング・テーブルの更新、ノード名の変更などは、スタンバイ・カード950の中で更新されることが必要である。第2の変化は、スタンバイ・カード950へ更新されることを必要としない変化である。例えば、カウンタの更新又は重要でないアラームは、スタンバイ・カード950へ更新される必要はない。しかし、そのような変化をスタンバイ・カード950へ複写することができる。
デルタ更新は、持続更新及び非持続更新に関連して説明した動作を使用して実行することができる。1つの実施形態において、デルタ更新が失敗し、スタンバイ・カード950が動作を再開した場合でも、デルタ更新の不在は、必ずしもスタンバイ・カード950の障害を生じない。なぜなら、ピア・ノードがメッセージを再送信するからである。メッセージがコミットされない限り、スタンバイ・カード950は必ずしもデルタ更新を必要とせず、アクティブ・カード910が故障した場合に動作を再開する。即ち、もしメッセージ又は変更がアクティブ・カード910によってコミットされるならば、それはスタンバイ・カード950に対して行われ、デルタ更新でピア・ノードとの整合性を維持しなければならない。
エラーの処理
アクティブ・カード910はソフトウェア及びハードウェアのエラー処理能力を含む。例えば、SRM918は、ソフトウェア・エラーを処理することができ、エラー・ロジックはアクティブ・カード910のハードウェア・エラーを処理することができる。図16は、1つの実施形態に従ってエラー処理を実行する動作1600のフローチャートである。
図16を参照すると、動作1602において、アクティブ・カード910はエラー、例えば、ソフトウェア・エラー又はハードウェア・エラーを検出する。アクティブ・カード910は、エラーが切り替えを必要とするかどうかを検出する。もしエラーが切り替えを必要とすれば、アクティブ・カード910及びスタンバイ・カード950は、前述したような非猶予切り替えを実行することができる。
動作1604において、スタンバイ・カード950へのハードウェア切り替えが起こる。物理的切り替えを実行するため、数ミリ秒台の或る時間が必要である。
動作1606において、スタンバイ・カード950はルータ104のために動作を再開する。スタンバイ・カード950は動作を迅速に再開する必要がある。なぜなら、ルータ104とのプロトコル・セッションがタイムアウトになるかもしれないからである。アクティブ・カード910への関連情報の変更のため、非持続及び持続情報のデルタ更新が行われるため、スタンバイ・カード950はシームレス及び迅速に動作を再開することができる。
ソフトウェア/ハードウェア障害
ソフトウェアの障害は、最も重要なタイプの障害である。即ち、ソフトウェア・エラーは、冗長性システムの中で整合性を必要とする多数のソフトウェア状態及び変数に関連している。更に、ソフトウェア・エラーは検出するのが困難である。通常のタイプのソフトウェア障害は、セグメンテーション障害、メモリ破壊、メモリ不足、アプリケーションの強制切り替え、及び無限ループを含む。
セグメンテーション障害は、メモリへの無効アクセスが存在する場合に起こる。もしメモリへの誤ったアクセスが存在すると、ハードウェア又はソフトウェアは、誤ったアクセスを検出し、SRMへエラーを生成して切り替えを起こすことができる。特に、メモリへの誤ったアクセスは、正しくない情報を記憶させ、これは整合しないルーティング・テーブル情報を作り出して記憶させる。メモリ不足のエラーは、あまりに多くのメモリ空間が使用される場合に起こる。1つの実施形態において、もし使用されたメモリ空間が警告レベルに達すると、警告が与えられ、もし使用されたメモリ空間が或る閾値を越えると、切り替えが起こる。
アプリケーション強制切り替えは、ユーザがコマンド・ライン命令によって切り替えを強制する場合に、ソフトウェアで起こる。例えば、アクティブ・ステータスを有すべき新しいカードが挿入される場合である。無限ループも、プロセッサが他の命令を処理できないようにする。1つの実施形態において、命令がソフトウェア・エラーを起こす無限ループであるかどうかを決定するため、ウォッチドッグ・タイマを使用することができる。代替的に、プロセッサが他のタスクを無限に処理することに固執しているかどうかを決定するため、低優先度のタスクを使用することができる。即ち、もし低優先度のタスクが決して処理時間を獲得しないならば、無限ループであると決定することができる。
スタンバイ・カード950内の冗長ハードウェアのために、ハードウェア障害はソフトウェア障害よりも重大ではない。通常のタイプのハードウェア障害は、ASIC診断障害、バス障害、メモリ障害、又はパワーアップ又はブート・シーケンスの間のカード障害である。そのようなハードウェア障害は、更に、アクティブ・カードの支配権の譲渡、及びスタンバイ・カード950への切り替えを起こす。
ルーティング・プロトコルの冗長性
ルーティング・プロトコル冗長性の基本的要件
ルーティング・プロトコル・レベルの冗長性を実現するため、スタンバイ・カード950は、アクティブ・カード910の上で走っているルーティング・プロトコルの各々のために必要な全ての関連情報を移植されなければならない。アクティブ・カード910及びスタンバイ・カード950の上で走っている各々のルーティング・プロトコル・モジュールは、アクティブ・カード910及びスタンバイ・カード950の双方の中で、プロトコル情報のミラーリング・コピーを維持する責任を有する。従って、もしアクティブ・カード910が故障すると、スタンバイ・カード950は、アクティブ・カード910の全てのルーティング・プロトコル・セッションを再開することができる。スタンバイ・カード950は、ルーティング・プロトコル・セッション状態がタイムアウトする前に動作を再開し、故障がピア・ノードから認識されないようにする。
ルーティング・プロトコルの例示的インタラクション
図17の1700は、1つの実施形態に従ったノードの中のルーティング・プロトコル・インタラクションを示す。図17を参照すると、各々のルーティング・プロトコルBGP1726、OSPF1724及びIS−IS1714は、それぞれ、それ自身のデータベース1731、1732及び1733に関連づけられている。そのようなデータベースは、特定のルーティング・プロトコルのルート又は情報を含むことができる。更に、各々のルーティング・プロトコルのデータベース1731、1732及び1733は、ルーティング・プロトコルBGP1726、OSPF1724及びIS−IS1714の中で動作している状態機械及び統計のデータ構造を記憶することができる。
集成された全てのルートは、IPルーティング・テーブル1702の中に記憶される。転送テーブル(FIB)1702は、IPルーティング・テーブル1702内のルートに基づいて生成することができる。FIB1716は、ルータ104のためにパケットを転送する転送情報を含むことができる。1つの実施形態において、第3次連想記憶装置(TCAM)1706は、FIB1716の中にルートを記憶することができる。他の実施形態において、FIB1716を記憶及び維持するため、プロセッサ及びメモリ・システムの任意の組み合わせを使用することができる。
前記のルーティング・プロトコル・インタラクションは、アクティブ・カード910が故障した場合に、スタンバイ・カード950の上で同じように動作することである。従って、アクティブ・カード910におけるBGP1726、OSPF1724及びIS−ISに対するデータベース1731、1732、1733の中の情報は、スタンバイ・カード950における同等物へ複写される。更に、IPルーティング・テーブル1702及びFIB1716は、スタンバイ・カード950内の同等物へ複写される。こうして、スタンバイ・カード950のTCAM1706は、ルータ104の整合した転送情報を使用して、パケットを切り替えて転送する。
図18の1800は、他の実施形態に従ったアクティブ制御点とスタンバイ制御点との間のルーティング・プロトコル・インタラクションを示す。図18を参照すると、ルーティング・プロトコルBGP1726A、OSPF1724A及びIS−IS1714Aのデータベース1731A、1732A及び1733A内のルーティング情報のコピーが、それぞれ、スタンバイ制御点内のピア・データベースの中に維持される。
1つの実施形態において、アクティブ・カード910とスタンバイ・カード950との間の接続の過負荷を回避するため、アクティブ・カード910は、スタティック・ルート1820Aのみを、スタンバイ制御点内のピア・スタティック・ルート1820Bへ複写又はコピーする。スタティック・ルートはネイティブ・ルートである。スタンバイ・カード950は、ルータ104のためにネットワーク100へ通信するために使用されているポートへのアクセスを有しないことを除いて、アクティブ・カード910と同じように走っている。特に、スタンバイ・カード950内の正規符号経路は、そのIPルーティング・テーブル1716を再分配及び移植するだけである。
アクティブ制御点の故障の場合、ルータ104は、動作をスタンバイ制御点へ切り替える。ルータ104は、トラフィックをシームレスに回送し続ける。なぜなら、スタンバイ制御点は、各々のルーティング・プロトコルの私用データストアから有効な転送テーブルを生成したからである。従って、ルータ104と通信しているピア・ノードは、ルータ104とのルーティング・プロトコル・セッションを維持することができる。更に、ルータ104は、障害がピア・ノードから認識されないようにし、切り替えがピア・ノードから認識されないようにすることができる。
ルーティング・プロトコル冗長性の例示的アーキテクチャ
図19は、ルーティング・プロトコル冗長性の例示的アーキテクチャ1900を示す。例示的アーキテクチャ1900は、ルーティング・プロトコルの冗長性をサポートするアクティブ・カード910及びスタンバイ・カード950のルーティング・プロトコル・データベース及びモジュールを含む。アクティブ・カード910及びスタンバイ・カード950のモジュールの各々は、2種類の冗長性データベースを有する。それらは冗長データベース(RDB)及び持続データベース(PDB)である。
アクティブ・カード910は、IGP RDB 1942A及びIGP RDB 1924Aにアクセスするゲートウェイ内プロトコル(IGP)モジュール1992Aを含む。IGPモジュールは、OSPF、RIP、及びIS−ISルーティング・プロトコルのモジュールを含む。アクティブ・カード910は、更に、BGP RDB1927A及びBGP PDB1731AにアクセスするBGPモジュール1726A、TCP RDB1933A及びTCP PDB1926AにアクセスするTCPモジュール1932A、及びIP RDB1931A及びIP PDB1928AにアクセスするIPモジュール1930Aを含む。
スタンバイ・カード950は、ピアPDB及びRDBにアクセスするアクティブ・カード910のピア・モジュールを含む。特に、スタンバイ・カード950は、IGP RDB1942B及びIGP RDB1924BにアクセスするIGPモジュール1992Bを含む。スタンバイ・カード950は、更に、BGP RDB1927B及びBGP PDB1731BにアクセスするBGPモジュール1726B、TCP RDB1933B及びTCP PDB1926BにアクセスするTCPモジュール1932B、及びIP RDB1931B及びIP PDB1928BにアクセスするIPモジュール1930Bを含む。
持続データ(PDB)及び非持続データ(RDB)の冗長性は、異なるように処理される。持続データ冗長性は、各々のアクティブ・カード910及びスタンバイ・カード950の内部データストア・モジュールによって処理される。もしアクティブ・カード910のデータストア・モジュールがデータをフラッシュ・ディスクへ記憶すれば、同じデータは、スタンバイ・カード950及びそのフラッシュ・ディスクへトランスペアレントに渡される。更に、スタンバイ・カード950内のピア・データストア・モジュールは、変更を通知され、変更されているデータも通知の一部分として渡される。モジュールの各々は、更に、それ自身の非持続データの冗長性に対してのみ責任を有する。例えば、もしOSPFが或る更新をBGPから受信したのであれば、OSPFはそれをスタンバイ・カード950へ渡さない。この場合、BGPはスタンバイ・カード950内のそのピアBGPへ更新を送信する。
アクティブ・カード910及びスタンバイ・カード950は、ルート再分配を同じように実行する。アクティブ・カード910及びスタンバイ・カード950の上のルーティング・プロトコル・モジュールの各々は、それぞれ、ルーティング・テーブル・マネージャ(RTM)1940A及び1940Bへその最良ルートを送信する責任がある。もしアクティブ・カード910上のRTM1940Aが、他のプロトコルへルートを再分配するように構成されていれば、RTM1940Aは、同様にスタンバイ・カード950の上でそうするであろう。1つの実施形態において、RTM再分配のセッティングは構成情報として考えられ、持続データとして冗長にされる。
転送情報テーブル(FIB)1716A及び1716Bは、それぞれ、アクティブ・カード910及びスタンバイ・カード950の上で同じように構築される。FIB1716A及び1716Bは、最良ルートに基づいており、各々のプロトコルのために管理距離を構成される。1つの実施形態において、RTMのプロトコル距離セッティング情報は構成情報として考えられ、持続データとして冗長にされる。第3次連想記憶装置(TCAM)1706A及び1706Bは、それぞれアクティブ・カード910及びスタンバイ・カード950の上で同じように動作する。TCAM1706A及び1706Bは、異なったモジュールからの持続データ、及びRTM1940A及び1940BからのダイナミックFIBデータに基づいて、プログラムされることができる。スタンバイ・カード950は(もしスタンバイで動作していれば)、ルータ104のために接続された物理的線を有しない。従って、スタンバイ・カード950は、インタフェース状態がアクティブ・カード910と同期するように処理するインタフェース・マネージャとなる責任を有する。即ち、スタンバイ・カード950は、そのモジュール及びアクティブ・カード910内のピア・モジュールへ情報を提供する。
ボーダー・ゲートウェイ・プロトコル(BGP)の冗長性
BGP冗長性の基本的要件
BGPは、インターネット上で最も広く使用されるルーティング・プロトコルである。BGPは、異なった自律システム(AS)のルータによって使用される外部ゲートウェイ・プロトコルである。BGPルータは、ネットワーク境界の間でパケットを回送する。従って、BGPルーティング又は転送テーブルは非常に大きく、何百万というルートを記憶することができる。しかし、BGPは、他のルーティング・プロトコルとは異なった難問を提供する。BGPは、接続及び信頼できるデータ転送を行うためTCPを使用する。その結果、もしBGPがピアとのTCP接続を失うと、ピアは、その隣接ピアから学習した全てのルートを即時にドロップすることによって反応する。この理由により、BGPルーティング・プロトコル冗長性を実現するためには、TCPも冗長にされて、BGPによって学習されたルートがアクセス不能になるのを回避しなければならない。
次の実施形態において、図9に示された冗長性プラットフォーム900は、BGP及びTCPプロトコル冗長性を実現するサポートを提供する。冗長性プラットフォーム900によって、スタンバイ・カード950は、サービス停止を構成しないような十分短い時間でBGPルーティング及び転送情報を再学習することができる。更に、冗長性プラットフォーム900は、次の動作をサポートして、BGP及びTCPプロトコル冗長性を獲得させる。
TCPレベル冗長性の要件
TCPレベルの冗長性は、BGPルーティング・プロトコル冗長性を実現するための冗長性追加レベルである。次の実施形態は、冗長ノード104におけるBGPとTCPとの間の例示的インタラクションを示す。
図20の2000は、BGP、TCP、及びIP間の例示的インタラクションを示す。説明目的のために、2000は、アクティブ・カード910が「アクティブ・モード」にあると考える。図20を参照すると、2000は、3つのメッセージをTCP1932Aへ送信しているBGP1726Aを示す。メッセージ1は19バイトの長さである。メッセージ2は70バイトの長さであり、メッセージ3は26バイトであって、全部で115バイトである。
TCP1932Aはバイト・ストリーム・プロトコルである。TCP1932Aは、BGP1726Aからの3つのメッセージをバイトのストリームとして考える。例えば、TCP1932Aは、BGP1726Aからの115バイトを2つのメッセージとしてIP1930Aへ送信することができる。メッセージ1は85バイトを有し、メッセージ2は30バイトを有する。従って、IP1930AはTCP1932Aから2つのメッセージを受信することができる。IP1930Aは、2つのメッセージを送信バッファ2002の中に一時的に記憶することができる。
TCP1932Aはメッセージを連続バイト・ストリームとして考えるので、TCP1932Aはメッセージ内にシーケンス番号を記憶して、メッセージがバイト・ストリームのどこに位置するかを示すことができる。例えば、TCP1932Aは、次の送信番号(NS)及び次の受信番号(NR)を記憶して、メッセージの順序を決定することができる。NS番号は、メッセージ又はパケットを識別する識別子である。NR番号は、遠隔のピアから受信されたバイト・ストリームの中の次のメッセージ又はパケットを識別する識別子である。図20を参照すると、IP1930Aへのメッセージ1は、ランダムに生成されたNS番号=1000を有する。もしピア・ノードがNS番号=1000を有するメッセージ1を受信すれば、ピア・ノードは、次のメッセージ(即ち、メッセージ2)がNS=1085を有しなければならないことを知る。そうでなければ、ピア・ノードは、メッセージがメッセージ1から順序をはずれており、何かが誤っていると決定するであろう。
TCP1932Aが使用することのできる他のパラメータは、ウィンドウ・サイズである。ウィンドウ・サイズは、TCP1932Aがピア・ノードから受信通知を受信する前に送信することのできる最大数のバイトである。ウィンドウ・サイズ・パラメータは、ピアとの間で交渉されることができる。例えば、ウィンドウ・サイズは8K又は16Kであることができる。1つの実施形態において、BGP1726A、TCP1932A、IP1930A、及び送信バッファ2002の間を通されるデータは、メッセージが受信ピア・ノードによって受信を通知されるまで、スタンバイ・カード950のなかへ複写又はコピーされる。
図21Aは、1つの実施形態に従って受信又は生成されたBGP状態変化を複写する動作2100のフローチャートである。次の動作2100は、前述したようなアクティブ・カード910及びスタンバイ・カード950を有する冗長ノード104によって実現されることができる。説明目的のため、動作2100は動作2102で始まる。動作2102において、BGP状態変化は、アクティブ・カード910によって受信又は生成される。例えば、ピア・ノードは、BGPルートがもはや状態変化として利用できないことを、冗長ノード104へ送信することができる。
動作2104において、受信又は生成されたBGP状態変化は、アクティブ・カード910からスタンバイ・カード950へ複写される。例えば、冗長性プラットフォーム900は、前述したようなBGP状態変化の「デルタ更新」をスタンバイ・カード950に対して実行することができる。
図21Bは、1つの実施形態に従って受信又は生成されたTCP状態変化を複写する動作2150のフローチャートである。説明目的のために、動作2150は動作2152で始まる。動作2152において、TCP状態変化はアクティブ・カード910によって受信又は生成される。例えば、ピア・ノードは、TCP接続がドロップされ、もはや状態変化として利用できないことを、冗長ノード104へ送信することができる。
動作2104において、受信又は生成されたTCP状態変化は、アクティブ・カード910からスタンバイ・カード950へ複写される。例えば、冗長性プラットフォーム900は、前述したようなTCP状態変化の「デルタ更新」をスタンバイ・カード950に対して実行することができる。
前記の動作2100及び2150によって、BGP及びTCP状態変化のBGP及びTCP冗長性が可能になる。他の実施形態において、BGP及びTCPメッセージの選択的冗長性を提供するために、前記の動作2100及び2150を実行することができる。即ち、スタンバイ・カード950の中で、BGP及びTCPメッセージの幾つか又は全てを冗長にすることができる。
送信されているBGPメッセージのTCPロック・ステップ
1つの実施形態において、TCPレベルの冗長性の要件は、BGP及びTCPの「ロック・ステップ」要件である。ロック・ステップ要件は、アクティブ・カード910によって送信又は受信される全てのメッセージについて、アクティブ・カード910が他のメッセージを送信又は受信する前に、スタンバイ・カード950が送信又は受信されたメッセージを記憶したことの受信通知が存在しなければならないことを要求する。もし切り替えが起こり、スタンバイ・カード950がメッセージを保存しなかったならば、冗長性は破壊される。
図22は、アクティブ・カード910の上で動作しているアクティブTCPと、スタンバイ・カード950の上で動作しているスタンバイTCPとの間の例示的対話を示し、ピア・ノードへ送信されているBGPメッセージのロック・ステップ要件を示す。図22を参照すると、対話2200は、アクティブBGP1726AがBGPメッセージ(メッセージ1)をアクティブTCP1932Aへ送信していることを示す。アクティブ・カード910は、メッセージ1をルータ又はピア・ノードへ送信することを計画している。アクティブTCP1932Aはメッセージ1をスタンバイTCP1932Bへ送信し、メッセージ1をスタンバイ・カード950へ複写できるようにする。スタンバイ・カード950は、メッセージ1を複写したことの受信通知をアクティブTCP1932Aへ送信する。
1つの実施形態において、冗長性プラットフォーム900を有する冗長ノード104は、メッセージ1が複写されたことの受信通知を受信するまで、IP1932Aを介してメッセージ1をピア・ノードへ送信しない。更に、冗長ノード104は、メッセージ1が保存されたことの受信通知をスタンバイTCP1932Bから受信するまで、他のメッセージ(即ち、メッセージ2)を送信しない。前述したように、もしメッセージ1がスタンバイ・カード950の中に保存されなければ、冗長性は破壊され、もし切り替えが起これば、スタンバイ・カード950はアクティブ・カード910の現在の状態で動作を再開することができない。
従って、アクティブTCP1932Aがメッセージ1の受信通知を受信した後、それは「ack」をBGP1726Aへ送信し、次にBGP1726Aが第2のメッセージ2を送信することができる。同様に、アクティブ・カード910は、スタンバイTCP1932Bがスタンバイ・カード950の中にメッセージ2を記憶したことの受信通知を受信するまで、IP1932Aを介してメッセージをピア・ノードへ送信しないであろう。そのようなロック・ステップを維持することによって、ピア・ノードへの送信を計画されているアクティブ・カード910の中の同じBGPメッセージをスタンバイ・カード950が有することが保証される。
受信されているBGPメッセージのTCPロック・ステップ
図23は、アクティブ・カード910の上で動作しているアクティブTCPと、スタンバイ・カード950の上で動作しているスタンバイTCPとの間の例示的対話を示し、ピア・ノードから受信されているBGPメッセージのロック・ステップ要件を示す。図23を参照すると、対話2300は、アクティブ・カード910の中のアクティブTCP1932Aが遠隔ノード102AからBGPメッセージ(メッセージA)を受信していることを示す。TCP1932Aが遠隔ノード102Aへ受信通知を送信する前に、TCP1932Aは、メッセージAがスタンバイ・カード950の中に複写されたことを確認しなければならない。もしメッセージAがスタンバイ・カード950の中に複写されなければ、冗長性は破壊される。
従って、TCP1932Aは、そのスタンバイTCP1932BへメッセージAを送信する。スタンバイTCP1932Bは、スタンバイ・カード950の中のスタンバイBGP1726BへメッセージAを送信する。次に、スタンバイTCP1932Bは、メッセージAが複写されたことの受信通知をアクティブTCP1932Aへ送信する。スタンバイTCP1932Bから受信通知を受信した後、アクティブTCP1932Aは、メッセージAをアクティブBGP1726Aへ送信し、次にメッセージAの受信通知を遠隔ノード102Aへ送信することができる。
もし2番目のBGPメッセージ(メッセージB)がアクティブTCP1932Aによって受信されると、それはメッセージAと同じ動作を実行し、メッセージBをスタンバイ・カード950の中に複写して、メッセージBが複写されたことの受信通知を待つ。スタンバイTCP1932Bから受信通知を受信した後、アクティブTCP1932Aは、メッセージBをアクティブBGP1726Aへ送信し、次にメッセージBへの受信通知を遠隔ノード102Aへ送信することができる。メッセージBの受信通知は、メッセージAが複写されるまで起こらないであろう。従って、そのようなロック・ステップを維持することによって、アクティブ・カード910によって受信された同じBGPメッセージをスタンバイ・カード950が有することが保証される。
BGPプロトコル冗長性の増分(デルタ)更新
図24及び図25は、前記の図22によって示されるTCPロック・ステップ要件を実現するピア・ノードへ送信されている個々のBGPメッセージをデルタ更新する変形の実施形態を示す。図26は、前記の図23で示されたTCPロック・ステップ要件を実現するピア・ノードから受信されている個々のBGPメッセージをデルタ更新する実施形態を示す。
図24は、BGPアーキテクチャ2400を示し、1つの実施形態に従ってピア・ノードへ送信されている個々のBGPメッセージのデルタ更新を示す。BGPアーキテクチャ2400は、図9で示される冗長性プラットフォーム900の上で動作する。次のアーキテクチャ2400において、アクティブ・カード910上で走っているBGPプロトコルによって生成された各々のBGPメッセージは、スタンバイ・カード950の中へ更新又は複写される。BGPメッセージは多数のバッファ・ステージを通過する。これは全てのステージで冗長性を必要とする。
図24を参照して、アーキテクチャ2400の動作が、参照点1〜34に関して今から説明される。参照点1において、BGP1926Aは、BGPバッファ1927Aに記憶されるメッセージを送信する。参照点2において、メッセージはスタンバイ・カード950の中にミラーリング又は複写されなければならない。従って、メッセージは冗長性マネージャ920へ送信される。参照点3において、冗長性マネージャ920は、カード間リンク(例えば、「ワイヤ」)を介してスタンバイ・カード950の中のピア冗長性マネージャ960へメッセージを送信する。冗長性マネージャ960は、ここでBGPバッファ1927Bをメッセージで更新し、それによってBGPバッファ1927Aの中に記憶されたメッセージのミラーリング・コピーを有する。
参照点5において、メッセージが更新されたことの受信通知が冗長性マネージャ960へ送信される。参照点6において、スタンバイ・カード950の中の冗長性マネージャ960は、アクティブ・カード910の中の冗長性マネージャ920へ受信通知を送信する。従って、冗長性マネージャ920は、受信通知をBGPバッファ1927の中に記憶する。その後、メッセージはソケット・キュー2403Aへ渡される。
ここで、上記の動作は参照点9〜28で実行され、メッセージはアクティブ・カード910内のソケット・キュー2403A、ソケット・バッファ2404A、及びTCPバッファ1933Aを通して伝搬される。従って、ソケット・キュー2403A、ソケット・バッファ2404A、及びTCPバッファ1933Aを通して伝搬されているメッセージは、スタンバイ・カード950内のピア・ソケット・キュー2403B、ソケット・バッファ2404B、及びTCPバッファ1933Bへミラーリング又は複写される。メッセージがTCPバッファ1933Aに記憶された後、参照点29〜34において、メッセージはIP1930A、プロトコル・チェーン・マネージャ(PCM)キュー2405A、PCM2006A、ドライバ・キュー2407A、及びドライバ2408Aを介してワイヤ上をピア・ノードへ渡される。ソケット・キューは、BGPプロトコルのために端点情報を記憶する。その場合、端点情報は他のノードの上を走っているBGPプロトコルに関連している。PCMは、ルーティング・プロトコルの各々のタイプに指定されたメッセージを管理する。PCMキューは、個々のルーティング・プロトコルのためにメッセージを記憶する。
図25は、例示的BGPアーキテクチャ2500を示し、他の実施形態に従ったデータ送信冗長性である個々のBGPメッセージのデルタ更新を示す。例示的BGPアーキテクチャ2500は、BGPとTCP/IPとの間のバッファ・ステージの数を低減する。特に、BGPは、TCP/IPによって使用されるバッファへメッセージ(「パケット」)を直接送信することができる。例えば、バッファは「リング・バッファ」であることができる。BGPはリング・バッファへの「書き込み」ポインタを制御することができ、TCP/IPはリング・バッファへの「読み出し」ポインタを制御することができる。
図25を参照して、アーキテクチャ2500の動作は、ここで参照点1〜13に関して説明される。参照点1において、BGP1926Aは、送信データ・リング2508Aへ記憶されるメッセージ「パケット」を送信する。参照点2において、メッセージはスタンバイ・カード950の中へミラーリング又は複写されなければならない。従って、メッセージは冗長性マネージャ920へ送信される。参照点3において、冗長性マネージャ920は、カード間リンク(例えば、「ワイヤ」)を介して、スタンバイ・カード950の中のピア冗長性マネージャ960へメッセージを送信する。冗長性マネージャ960は、ここで送信データ・リング2108Bをメッセージで更新し、それによって送信データ・リング2508Aに記憶されたメッセージのミラー・コピーが実現される。
参照点5において、メッセージが更新されたことの受信通知が冗長性マネージャ960へ送信される。参照点6において、スタンバイ・カード950の中の冗長性マネージャ960は、アクティブ・カード910の中の冗長性マネージャ920へ受信通知を送信する。従って、冗長性マネージャ920は、送信データ・リング2508Aの中に受信通知を記憶する。その後、メッセージは、TCP/IP1930A、PCMキュー2405A、PCM2406A、ドライバ・キュー2407A、及びドライバ2408Aを通されてワイヤ上をピア・ノードへ渡される。
図26は、1つの実施形態に従ったデータ受信の例示的BGPアーキテクチャ2600を示す。例示的BGPアーキテクチャ2600は、データ・リング・バッファ(即ち、受信データ・リング・バッファ2660A及び2660B)が追加されたBGPアーキテクチャ2500と同じである。特に、BGPは、データ・リング・バッファからBGPメッセージを受信することができる。
図26を参照して、アーキテクチャ2600の動作が、ここで参照点1〜14に関して説明されるであろう。参照点1において、スタンバイ・カード910はドライバ2408Aによってワイヤ接続からBGPメッセージを受信する。参照点2において、ドライバ2408AはメッセージをPCMキュー2405Aへ送信する。参照点3において、PCMキュー2405AはメッセージをPCM2406Aへ送信する。参照点4において、PCM2406AはメッセージをTCP/IPキュー2631Aへ送信する。参照点5において、TCP/IPキュー2631AはメッセージをTCP/IP1930Aへ送信する。参照点6において、TCP/IP1930Aはメッセージをデータ受信リング・バッファ2660Aへ送信する。
参照点7において、データ受信リング・バッファ2660Aは、メッセージを冗長性マネージャ920へ送信する。参照点8において、冗長性マネージャ920は、複写されるスタンバイ・カード950の中の冗長性マネージャ960へメッセージを送信する。参照点9において、冗長性マネージャ960はメッセージをデータ受信リング・バッファ2660Bへ送信する。参照点10において、メッセージの受信通知が送信リング・データ・バッファ2550Bの中に記憶される。参照点11及び11aにおいて、メッセージがBGP1726Bへ送信され、受信通知が冗長性マネージャ960へ送信される。参照点12において、受信通知が冗長性マネージャ920へ送信される。
参照点13において、冗長性マネージャ920はデータ受信リング・バッファ2660Aへ受信通知を送信する。参照点14において、冗長性マネージャ960からの受信通知が送信リング・バッファ2550Aへ記憶される。参照点15において、メッセージがBGP1726Aへ送信される。前記の動作において、アクティブ・カード910によって受信されたメッセージは、BGP1726Bによって受信されるまで、BGP1726Aへ送信されないであろう。更に、前記の動作は、ピア・ノード又は隣接ノードから受信されたBGPメッセージの増分更新を示す。
図27は、1つの実施形態に従ってBGPメッセージへコミットする動作2700のフローチャートである。以下の動作2700は、前述したようなアクティブ・カード910及びスタンバイ・カード950を有する冗長ノード104によって実行されることができる。説明目的のために、動作2700は、図19を参照し、動作2702で始まる。
動作2702において、BGPメッセージがアクティブ・カード910によって受信される。アクティブ・カード910は、上位レイヤーを通ってアプリケーション(BGP)、即ちBGP1726Aまでメッセージを送信する。アクティブ・カード910は、更に、スタンバイ・カード950の中のTCP1932Bへメッセージを送信する。
動作2704において、アクティブ・カード910はメッセージへコミットする。
動作2706において、スタンバイ・カード950はメッセージを受信し、TCP1932Bからスタンバイ上のアプリケーション(BGP)、即ちBGP1726Bへメッセージを送信する。
動作2708において、スタンバイ・カード950はメッセージへコミットし、そのコミットメントをアクティブ・カード950内のTCP1932Aへ送信する。
動作2710において、スタンバイ・カード910はスタンバイ・カード950からコミットメントを受信し、そのコミットメントをシステム・コミットメントへ変換する。
動作2712において、アクティブ・カード910はシステム・コミットメントを遠隔ピアへ送信する。
上記の動作2700は、冗長性マネージャ920及び960を使用し、アクティブ・カード910とスタンバイ・カード950との間で、メッセージの転送を促進する。他の実施形態において、動作2702〜2710は、他のメッセージのために繰り返されることができるが、特定のメッセージのシステム・コミットメントは、スタンバイ・カード950がコミットするまで、ピア・ノードへ送信されないであろう。上記の動作によって、BGPメッセージは、アクティブ・カード910及びスタンバイ・カード950の双方の上で、上位レイヤーへ迅速に渡される。
BGPプロトコル冗長性のためのブート・シーケンス/バルク更新
図28は、1つの実施形態に従ってBGPプロトコル冗長性のためにバルク更新を実行する動作2800のフローチャートである。説明目的のために、動作2800は、アクティブ・カード910及びスタンバイ・カード950がルータ104の中で動作しているブート・シーケンスを参照する。
図28を参照すると、動作2802において、BGP及びTCPデータベースは、アクティブ・カード910からスタンバイ・カード950へ複写される。例えば、図19で示されるように、アクティブ・カード910内のBGP RDB1927A及びBGP PDB1731Aは、スタンバイ・カード950内のBGP RDB1927B及びBGP PDB1731Bへ複写される。BGPデータベースを複写するため、冗長性プラットフォーム900のところで説明したようなバルク更新動作を使用することができる。更に、アクティブ・カード910内のTCP RDB1933A及びTCP PDB1926Aが、BGPデータベースに対する同じ動作を使用して、スタンバイ・カード950内のTCP RDB1933B及びTCP PDB1926Bへ複写される。代替的に、不揮発性メモリ及び他のデータベースも複写することができる。
動作2804において、受信又は送信されたBGPメッセージがキューにされるので、それらはバルク更新プロセスの後でスタンバイ・カード950の中で作られることができる。動作2806において、受信又は送信されたBGPメッセージが、図24〜図26で示されたようなデルタ更新動作を使用して、スタンバイ・カード950へデルタ更新される。
中間システム−中間システム・プロトコル(IS−IS)の冗長性
IS−ISプロトコル冗長性の基本的要件
IS−ISプロトコルは、リンクステートプロトコルである。IS−ISプロトコルパケットを生成するエリア/ドメインにおけるルータは、パケットでエリア/ドメイン内のすべてのルータに送出する。すなわち、1つのIS−ISルータによって生成されるパケットは、そのエリア/ドメイン内のあらゆるIS−ISルータに格納される。従って、各IS−ISルータは、他のIS−ISルータのネットワークの完全で、そして、無矛盾のビューを有している。これらのパケットは、リンクステートプロトコル(LSP)と呼ばれる。LSPパケットは、パケットを生成するISルータについての情報を含んでいる。それ自体、IS−ISプロトコルを実行する各ルータは、LSPデータベース、あるいは、LSPパケットを格納するIS−ISデータベースを含んでいる。
IS−ISプロトコル冗長を有するために、待機コントローラシステムは、アクティブコントローラシステムにおけるコンフィギュレーション/グローバル情報、回線情報、隣接情報およびリンクステートパケット(LSP)情報を維持するか、あるいは、知っている必要がある。コンフィギュレーション情報は、アクティブカード910のグローバルなステート、すなわち、アクティブ中か、あるいは、待機中かなどのグローバル情報を含んでいる。回線情報は、実行している回線のステートを含んでいる。たとえば、その回線は、使用可能か/使用禁止か。隣接情報は、アクティブの隣接についての情報、すなわち、その隣接者は誰かということを含んでいる。リンクステート情報は、LSPパケット情報を含んでいる。冗長プラットフォーム900は、IS−ISプロトコル冗長を維持するためのサポートを供給する。
IS−ISプロトコル冗長のためのブートシーケンス/バルクアップデート
図29は、1つの実施の形態により、IS−ISプロトコル冗長のためのバルクアップデートを達成するオペレーション2900のフローチャートを示している。説明のために、オペレーション2900は、アクティブカード910および待機カード950が、ルータ104内で動作するブートシーケンスに適用している。
図29を参照すると、オペレーション2902で、IS−ISデータベースは、アクティブカード910から待機カード950に複製される。たとえば、図19に示されるように、アクティブカード910におけるIGP RDB 1942A、IGP PDB 1924AおよびFIB 1716Aは、待機カード950におけるIGP RDB1942B、IGP PDB 1924BおよびFIB1716Bに複製される。IGPデータベースは、まさに、IS−ISデータベース情報のために選択的にコピーされることが可能である。冗長プラットフォーム900において説明されるようにバルクアップデートオペレーションは、IGP IS−ISデータベースを複製するのに使用されることが可能である。
オペレーション2904で、受信されるか、あるいは、送信されるあらゆるIS−ISメッセージは、バルクアップデートプロセス後、それらが待機カード950において作られることが可能なようにキューに入れられる。オペレーション2906で、受信されるか、あるいは、送信されるあらゆるIS−ISメッセージは、図24から図26に示されるようなデルタアップデートオペレーションを使用して、待機カード950にデルタアップデートされる。
IS−ISプロトコル冗長のためのインクリメンタル(デルタ)アップデート
図30は、1つの実施の形態により、受信されるか、あるいは、送信される個々のIS−ISメッセージのためのインクリメンタル(デルタ)アップデーティングを達成するオペレーション3000のフローチャートを示している。説明のために、オペレーション3000は、アクティブカード910および待機カード950を有するルータに適用している。
図30を参照すると、オペレーション3002で、IS−ISメッセージは、受信されるか、あるいは、生成される。たとえば、IS−ISプロトコルは、LSPを生成することが可能か、あるいは、ピアノードからLSPを受信することが可能である。オペレーション3004で、アクティブカード910は、LSPパケットを、隣接者として処理される待機カード950に送信する。従って、待機カード950は、LSPパケットを複製する。
最適経路の第1のプロトコル(OPSF)冗長
OSPFプロトコル冗長のための基本必要条件
OSPFプロトコルは、リンクステートドメイン内ルーティングプロトコルであり、そして、パケットを伝送して、受信するためのIPプロトコルをあてにする。OSPFは、パケットの高信頼転送のためにTCP、あるいは、UDPを使用しない。OSPFプロトコルは、ピアノードでネットワーク情報を交換することによって、ピアノード隣接者との隣接に基づかせる。OSPFは、FIBにアップデートし、そして、他のプロトコルは、ルーティングテーブルマネージャ(RTM)によって作られる。OSPFプロトコル冗長のための基本必要条件は、ピアノード上のRTMで待機カード910上のRTMのためにOSPFプロトコルサービスを乱されないで維持することである。それゆえに、OSPFプロトコル冗長のために、すべてのプロトコルステート情報、OSPFデータベース情報およびコンフィギュレーション情報は、待機カード950内に維持される必要がある。
OSPFプロトコル冗長のためのブートシーケンス/バルクアップデート
図31は、1つの実施の形態により、OSPFプロトコル冗長のためのバルクアップデーティングを達成するオペレーション3100のフローチャートを示している。説明のために、オペレーション3100は、アクティブカード910および待機カード950がルータ104内で動作するブートシーケンスに適用している。
図31を参照すると、オペレーション3102で、OSPFデータベースは、アクティブカード910から待機カード950に複製される。たとえば、図19に示されるように、アクティブカード910におけるIGP RDB 1942A、IGP PDB 1924AおよびFIB 1716Aは、待機カード950におけるIGP RDB1942B、IGP PDB 1924BおよびFIB1716Bに複製される。IGPデータベースは、まさに、OSPFデータベース情報のために選択的にコピーされることが可能である。冗長プラットフォーム900において説明されるようなバルクアップデートオペレーションは、IGP OSPFデータベースを複製するのに使用されることが可能である。
オペレーション3104で、受信されるか、あるいは、生成されるあらゆるOSPFメッセージは、バルクアップデートプロセス後、それらが待機カード950において作られることが可能なようにキューに入れられる。オペレーション3106で、受信されるか、あるいは、送信されるあらゆるOSPFメッセージは、図24から図26に示されるようなデルタアップデートオペレーションを使用して、待機カード950にデルタアップデートされる。
OSPFプロトコル冗長のためのインクリメンタル(デルタ)アップデート
図32は、1つの実施の形態により、受信されるか、あるいは、送信される個々のOSPFメッセージのためのインクリメンタル(デルタ)アップデーティングを達成するオペレーション3200のフローチャートを示している。説明のために、オペレーション3200は、アクティブカード910および待機カード950を有するルータに適用している。図32を参照すると、オペレーション3202で、OSPFメッセージは、受信されるか、あるいは、生成される。オペレーション3004で、アクティブカード910は、冗長プラットフォーム900で説明されるようなデルタアップデートを使用して、受信されたか、あるいは、生成されたOSPFメッセージを待機カード950に送信する。上記に記述されたルーティングプロトコル冗長テクニックおよびオペレーションは、本質的に例示的であり、そして、たとえば、Routing Internet Protocol(ルーティングインターネットプロトコル)(RIP)などの他のタイプのルーティングプロトコルに適用されることが可能である。たとえば、冗長プラットフォーム900は、上記に記述されるようなRIP情報のためのバルク、デルタ、非永続、および永続データアップデーティングを達成するのに使用されることが可能である。
上記ルータおよびルーティングプロトコル冗長オペレーションは、プロセッサによって実行されるソフトウェアルーチンとして実施されることが可能である。所定のプロセッサのために、ソフトウェアルーチンは、固定記憶装置などのストレージデバイスに格納されることが可能である。別の方法として、ソフトウェアルーチンは、ディスケット、CD−ROM、磁気テープ、ディジタルビデオディスク、あるいは、汎用ディスク(DVD)、レーザディスク、ROM、Flash(フラッシュ)メモリ、他の同様なメモリデバイスなどのあらゆる機械読取り可能ストレージ媒体に格納される機械実行可能命令でよい。一連の命令は、局部的に格納される必要はなく、そして、ネットワーク上のサーバなどのリモートストレージデバイス、CD−ROMデバイス、フロッピーディスクなどから受領されることが可能である。その命令は、ストレージデバイスから一時記憶装置にコピーされ、そして、次に、アクセスされて、プロセッサによって実行されることができる。1つの実施の形態において、このようなソフトウェアルーチンは、Cプログラミング言語で書き込みされることが可能である。とはいえ、これらのルーチンは、広範囲にわたる様々なプログラミング言語のいずれかで実施されることができることは高く評価されるべきことである。
別の実施の形態について、ルータおよびルーティングプロトコル冗長オペレーションは、離散型ハードウェア、あるいは、ソフトウェアにおいて実施されることが可能である。たとえば、1つ以上の専用集積回路(ASICs)は、上記に記述された冗長オペレーションを達成するためにプログラムされることが可能である。別の例示において、冗長オペレーションは、追加の回路基板上の1つ以上のASICsにおいて実施されることが可能であり、そして、その回路基板は、上記に記述されるような冗長を有するルータ、あるいは、ノードに挿入されることが可能である。別の例示において、書替え可能ゲートアレイ(FPGAs)、あるいは、静的プログラマブルゲートアレイ(SPGA)は、ここに記述されている冗長オペレーションを実施するのに使用されることが可能である。さらに別の例示において、ハードウェアとソフトウェアの組合せが、ここに記述される冗長オペレーションを実施するのに使用されることが可能である。
このように、ルータおよびルーティングプロトコル冗長について記述してきた。前述の明細書において、本発明は、特定の例示的な実施の形態を参照して記述してきた。しかしながら、様々な修正および変更が、添付されている請求の範囲に述べられるような本発明の広範囲にわたる精神と範囲から逸脱することなく行われることができることは明らかだ。明細書および図面は、従って、制限的な意味ではなく、例示としての意味であると考えられるべきである。
本発明を実施することのできる例示的ネットワークを示す。 1つの実施形態に従って図1に示されるノードによって使用されることのできるアーキテクチャレイヤーモデルを示す。 1つの実施形態に従った冗長ノードの基本動作のフローチャートである。 アクティブ・カードからスタンバイ・カードへルーティング・プロトコル情報を複写することを示す図である。 1つの実施形態に従ってルーティング・プロトコル状態変化情報を複写する動作のフローチャートである。 1つの実施形態に従ってスタンバイ・コントローラ・システムへの高速切り替えを有する図3の再開動作を詳細な動作で示すフローチャートである。 1つの実施形態に従って障害及び切り替えを認識しないようにピア・ノードをだますことを示す図である。 他の実施形態に従って障害及び切り替えを認識しないようにピア・ノードをだますことを示す図である。 1つの実施形態に従ってピア・ノードへコミットメントを送信する動作のフローチャートである。 1つの実施形態に従ってアクティブ・コントローラ・システム及びスタンバイ・コントローラ・システムを有するネットワーク装置を示す。 1つの実施形態に従ったネットワーク装置の冗長性プラットフォームを示す。 1つの実施形態に従ったブート・シーケンス動作のフローチャートである。 他の実施形態に従ったブート・シーケンス動作のフローチャートである。 1つの実施形態に従ってアクティブ・カードがスタンバイ・カードへ猶予切り替えを実行する動作のフローチャートである。 1つの実施形態に従ってアクティブ・カードがスタンバイ・カードへ猶予切り替えを実行する動作のフローチャートである。 1つの実施形態に従ってスタンバイ・カードが猶予切り替えを実行する動作のフローチャートである。 1つの実施形態に従ってスタンバイ・カードが猶予切り替えを実行する動作のフローチャートである。 1つの実施形態に従ってスタンバイ・カードが非猶予切り替えを実行する動作のフローチャートである。 1つの実施形態に従ってスタンバイ・カードへ持続情報を更新する動作のフローチャートである。 1つの実施形態に従ってスタンバイ・カードへ非持続情報を更新する動作のフローチャートである。 1つの実施形態に従ってエラー処理を実行する動作のフローチャートである。 1つの実施形態に従ったネットワーク装置内のルーティング・プロトコル・インタラクションを示す図である。 1つの実施形態に従ったアクティブ・カード及びスタンバイ・カード間のルーティング・プロトコル・インタラクションを示す図である。 1つの実施形態に従ったルーティング・プロトコル冗長性のアーキテクチャを示す。 BGP、TCP、及びIP間の例示的インタラクションを示す図である。 1つの実施形態に従って受信又は生成されたBGP状態変化を複写する動作のフローチャートである。 1つの実施形態に従って受信又は生成されたTCP状態変化を複写する動作のフローチャートである。 アクティブ・カード上で動作しているアクティブTCPと、スタンバイ・カード上で動作しているスタンバイTCPとの間の対話の1つの実施形態を示し、ピア・ノードへ送信されているBGPメッセージのロック・ステップ要件を示す図である。 アクティブ・カード上で動作しているアクティブTCPと、スタンバイ・カード上で動作しているスタンバイTCPとの間の対話の1つの実施形態を示し、ピア・ノードから受信されているBGPメッセージのロック・ステップ要件を示す図である。 1つの実施形態に従ってピア・ノードへ送信されている個々のBGP情報のデルタ更新を示すBGPアーキテクチャを示す。 1つの実施形態に従ってピア・ノードへ送信されている個々のBGP情報のデルタ更新を示すBGPアーキテクチャを示す。 1つの実施形態に従ってピア・ノードから受信されている個々のBGP情報のデルタ更新を示すBGPアーキテクチャを示す。 1つの実施形態に従ってBGPメッセージへコミットするフローチャートである。 1つの実施形態に従ってBGPプロトコル冗長性のためにバルク更新を実行する動作のフローチャートである。 1つの実施形態に従ってIS−ISプロトコル冗長性のためにバルク更新を実行する動作のフローチャートである。 1つの実施形態に従って受信又は送信されているIS−ISメッセージのためにデルタ更新を実行する動作のフローチャートである。 1つの実施形態に従ってOSPFのためにバルク更新を実行する動作のフローチャートである。 1つの実施形態に従って受信又は送信されているOSPFメッセージのためにデルタ更新を実行する動作のフローチャートである。
符号の説明
104 ネットワーク装置(ルータ)
220 ルーティング・プロトコル
900 冗長性プラットフォーム

Claims (19)

  1. ピアノードからルーティングプロトコル状態変化を受信し、
    前記ルーティングプロトコル状態変化を第2のコントローラに送信し、
    前記ルーティングプロトコル状態変化へのコミットメントを前記第2のコントローラから受信し、
    前記第2のコントローラから前記コミットメントを受信した後に前記ルーティングプロトコル状態変化を完遂し、
    前記ルーティングプロトコル状態変化を完遂した後に前記コミットメントを前記ピアノードに送信するように構成され第1のコントローラ。
  2. 別のコントローラから前記コミットメントを受信した後に前記ルーティングプロトコル状態変化をルーティングプロトコルに送信するように構成され請求項1に記載の第1のコントローラ。
  3. 前記ピアノードから前記ルーティングプロトコル状態変化を受信した後に前記ルーティングプロトコル状態変化をルーティングプロトコルに送信するように構成され請求項1に記載の第1のコントローラ。
  4. 前記ルーティングプロトコル状態変化が、境界ゲートウェイプロトコル(BGP)状態変化、ルーティングインターネットプロトコル(RIP)状態変化、最適経路の第1のプロトコル(OSPF)状態変化、あるいは、中間システム間のプロトコル(IS−IS)状態変化を含む請求項1に記載の第1のコントローラ。
  5. ルーティングプロトコルメッセージを受信又は生成し、当該受信又は生成したルーティングプロトコルメッセージを前記第2のコントローラに選択的に複製する請求項1に記載の第1のコントローラ。
  6. 故障を検出するように構成され請求項1に記載の第1のコントローラであって、
    前記第2のコントローラが、故障前に、前記第1のコントローラにおけるのと同一のルーティングプロトコル状態変化を維持するように構成されている、
    請求項1に記載の第1のコントローラ。
  7. ピアノードのためにルーティングプロトコル状態変化を生成し、
    前記ルーティングプロトコル状態変化を第2のコントローラに送信し、
    前記ルーティングプロトコル状態変化へのコミットメントを前記第2のコントローラから受信し、
    前記第2のコントローラから前記コミットメントを受信した後に前記ルーティングプロトコル状態変化を完遂し、
    前記ルーティングプロトコル状態変化を完遂した後に前記コミットメントを前記ピアノードに送信するように構成され第1のコントローラ。
  8. 前記第2のコントローラから前記コミットメントを受信した後に前記ルーティングプロトコル状態変化をルーティングプロトコルに送信するように構成され請求項7に記載の第のコントローラ。
  9. 前記ルーティングプロトコル状態変化が、境界ゲートウェイプロトコル(BGP)状態変化、ルーティングインターネットプロトコル(RIP)状態変化、最適経路の第1のプロトコル(OSPF)状態変化、あるいは、中間システム間のプロトコル(IS−IS)状態変化を含む請求項7に記載の第のコントローラ。
  10. ルーティングプロトコルメッセージを受信又は生成し、当該受信又は生成したルーティングプロトコルメッセージを前記第2のコントローラに選択的に複製するように構成され請求項7に記載の第1のコントローラ。
  11. 故障を検出するように構成され請求項7に記載の第1のコントローラであって、
    前記第2のコントローラが、故障前に、前記第1のコントローラにおけるのと同一のルーティングプロトコル状態変化を維持するように構成されている、
    請求項7に記載の第1のコントローラ。
  12. ルーティングプロトコル状態変化を第2のコントローラから受信し、
    前記ルーティングプロトコル状態変化へのコミットメントを前記第2のコントローラに送信し、
    前記コミットメントを前記第2のコントローラに送信した後に前記ルーティングプロトコル状態変化を完遂し、
    前記ルーティングプロトコル状態変化を完遂した後に前記コミットメントをピアノードに送信するように構成され第1のコントローラ。
  13. 冗長プラットフォームを有するネットワークデバイスにおける方法であって、
    第1のコントローラが、ピアノードからルーティングプロトコル状態変化を受信するステップと、
    前記ルーティングプロトコル状態変化を第2のコントローラに送信するステップと、
    前記第1のコントローラが、前記ルーティングプロトコル状態変化へのコミットメントを前記第2のコントローラから受信するステップと、
    前記第1のコントローラにおける前記ルーティングプロトコル状態変化を完遂するステップと、
    前記ルーティングプロトコル状態変化を完遂した後に、前記第1のコントローラが前記コミットメントを前記ピアノードに送信するステップと、
    を備えることを特徴とする方法。
  14. 前記第2のコントローラから前記コミットメントを受信した後に前記ルーティングプロトコル状態変化をルーティングプロトコルに送信するステップ、
    を更に備えることを特徴とする請求項13に記載の方法。
  15. 前記ピアノードから前記ルーティングプロトコル状態変化を受信した後に前記ルーティングプロトコル状態変化をルーティングプロトコルに送信するステップ、
    を更に備えることを特徴とする請求項13に記載の方法。
  16. 冗長プラットフォームを有するネットワークデバイスにおける方法であって、
    第1のコントローラが、ピアノードのためにルーティングプロトコル状態変化を生成するステップと、
    前記ルーティングプロトコル状態変化を第2のコントローラに送信するステップと、
    前記第1のコントローラが、前記ルーティングプロトコル状態変化へのコミットメントを前記第2のコントローラから受信するステップと、
    前記第1のコントローラにおける前記ルーティングプロトコル状態変化を完遂するステップと、
    前記ルーティングプロトコル状態変化を完遂した後に、前記第1のコントローラが前記コミットメントを前記ピアノードに送信するステップと、
    を備えることを特徴とする方法。
  17. 前記第2のコントローラのために前記コミットメントを生成した後に前記ルーティングプロトコル状態変化をルーティングプロトコルに送信するステップ、
    を更に備えることを特徴とする請求項16に記載の方法。
  18. 冗長プラットフォームを有するデバイスであって、
    第1のコントローラを用いて、ピアノードからルーティングプロトコル状態変化を受信する第1の受信手段と、
    前記ルーティングプロトコル状態変化を第2のコントローラに送信する第1の送信手段と、
    前記第1のコントローラを用いて、前記ルーティングプロトコル状態変化へのコミットメントを前記第2のコントローラから受信する第2の受信手段と、
    前記第1のコントローラにおける前記ルーティングプロトコル状態変化を完遂する完遂手段と、
    前記ルーティングプロトコル状態変化を完遂した後に、前記第1のコントローラを用いて前記コミットメントを前記ピアノードに送信する第2の送信手段と、
    を備えることを特徴とするデバイス。
  19. 冗長プラットフォームを有するデバイスであって、
    第1のコントローラを用いて、ピアノードのためにルーティングプロトコル状態変化を生成する生成手段と、
    前記ルーティングプロトコル状態変化を第2のコントローラに送信する第1の送信手段と、
    前記第1のコントローラを用いて、前記ルーティングプロトコル状態変化へのコミットメントを前記第2のコントローラから受信する受信手段と、
    前記第1のコントローラにおける前記ルーティングプロトコル状態変化を完遂する完遂手段と、
    前記ルーティングプロトコル状態変化を完遂した後に、前記第1のコントローラを用いて前記コミットメントを前記ピアノードに送信する第2の送信手段と、
    を備えることを特徴とするデバイス。
JP2002548930A 2000-12-07 2001-12-06 ルータ及びルーティング・プロトコル冗長性 Expired - Fee Related JP4033769B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/733,284 US6910148B1 (en) 2000-12-07 2000-12-07 Router and routing protocol redundancy
PCT/US2001/048582 WO2002047329A2 (en) 2000-12-07 2001-12-06 Router and routing protocol redundancy

Publications (2)

Publication Number Publication Date
JP2004534414A JP2004534414A (ja) 2004-11-11
JP4033769B2 true JP4033769B2 (ja) 2008-01-16

Family

ID=24946970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002548930A Expired - Fee Related JP4033769B2 (ja) 2000-12-07 2001-12-06 ルータ及びルーティング・プロトコル冗長性

Country Status (11)

Country Link
US (2) US6910148B1 (ja)
EP (1) EP1342340B1 (ja)
JP (1) JP4033769B2 (ja)
CN (1) CN1314243C (ja)
AT (1) ATE334537T1 (ja)
AU (1) AU2002232605A1 (ja)
CA (1) CA2431034C (ja)
DE (1) DE60121798T2 (ja)
ES (1) ES2267850T3 (ja)
HK (1) HK1066659A1 (ja)
WO (1) WO2002047329A2 (ja)

Families Citing this family (204)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7273601B2 (en) * 2000-07-18 2007-09-25 The University Of Western Ontario Preparation of radiolabelled haloaromatics via polymer-bound intermediates
FR2808353B1 (fr) * 2000-04-28 2003-12-05 Airsys Atm S A Dispositif de gestion d'entrees/sorties redondant, notamment de routage informatique
US6894970B1 (en) * 2000-10-31 2005-05-17 Chiaro Networks, Ltd. Router switch fabric protection using forward error correction
US7613183B1 (en) 2000-10-31 2009-11-03 Foundry Networks, Inc. System and method for router data aggregation and delivery
US7002980B1 (en) 2000-12-19 2006-02-21 Chiaro Networks, Ltd. System and method for router queue and congestion management
FR2819360B1 (fr) 2001-01-11 2003-04-11 Cit Alcatel Systeme de routage assurant la continuite de service des interfaces associees aux reseaux voisins
FR2819359B1 (fr) 2001-01-11 2003-04-11 Cit Alcatel Systeme de routage assurant la continuite de service, des machines a etats associees aux systemes de routage voisins
CA2437548A1 (en) * 2001-02-06 2002-11-28 En Garde Systems Apparatus and method for providing secure network communication
WO2002091203A1 (en) * 2001-05-03 2002-11-14 Nokia Inc. Method and system for implementing mpls redundancy
US7359377B1 (en) * 2001-06-19 2008-04-15 Juniper Networks, Inc. Graceful restart for use in nodes employing label switched path signaling protocols
JP3908483B2 (ja) * 2001-06-28 2007-04-25 富士通株式会社 通信装置
US7441017B2 (en) * 2001-06-29 2008-10-21 Thomas Lee Watson System and method for router virtual networking
FR2827102B1 (fr) * 2001-07-09 2003-10-03 Cit Alcatel Systeme de routage inter systemes autonomes tolerant aux fautes
US7020716B2 (en) * 2001-08-31 2006-03-28 Adaptec, Inc. Method and system for verifying the hardware implementation of TCP/IP
US7788381B2 (en) 2001-09-17 2010-08-31 Foundry Networks, Inc. System and method for router keep-alive control
US7483433B2 (en) * 2001-09-17 2009-01-27 Foundry Networks, Inc. System and method for router data distribution
US7406527B2 (en) * 2001-11-02 2008-07-29 Microsoft Corporation Method for advance negotiation of computer settings
US20040078625A1 (en) * 2002-01-24 2004-04-22 Avici Systems, Inc. System and method for fault tolerant data communication
US7406035B2 (en) * 2002-01-24 2008-07-29 Alcatel-Lucent Canada Inc. Method and apparatus for providing redundant protocol processes in a network element
US8005980B2 (en) * 2002-01-24 2011-08-23 Alcatel Lucent Method and apparatus for synchronizing redundant communication tasks
US8769154B2 (en) * 2002-01-24 2014-07-01 Alcatel Lucent Method and apparatus for facilitating routing protocol redundancy in a network element
US7978598B1 (en) * 2002-03-01 2011-07-12 Cisco Technology, Inc. Connection replication
US7301894B1 (en) * 2002-03-25 2007-11-27 Westell Technologies, Inc. Method for providing fault tolerance in an XDSL system
US7209449B2 (en) * 2002-03-27 2007-04-24 Intel Corporation Systems and methods for updating routing and forwarding information
US20030185221A1 (en) * 2002-03-29 2003-10-02 Alan Deikman Network controller with shadowing of software routing tables to hardware routing tables
US7304941B2 (en) * 2002-04-11 2007-12-04 International Business Machines Corporation Switchover system and method in a data packet switching network
US7209435B1 (en) * 2002-04-16 2007-04-24 Foundry Networks, Inc. System and method for providing network route redundancy across Layer 2 devices
US7334048B1 (en) * 2002-06-04 2008-02-19 Extreme Networks, Inc. Method and apparatus for fast route table update
US7275081B1 (en) 2002-06-10 2007-09-25 Juniper Networks, Inc. Managing state information in a computing environment
US8001269B1 (en) * 2002-06-18 2011-08-16 Cisco Technology, Inc. Network address translation with IP redundancy
US7440394B2 (en) 2002-06-24 2008-10-21 Nokia Corporation Method and system for redundant IP forwarding in a telecommunications network
FI20021235A0 (fi) * 2002-06-24 2002-06-24 Nokia Corp Menetelmä ja järjestelmä redundanttia IP-edelleenohjausta varten tietoliikenneverkossa
US8037196B2 (en) * 2002-06-26 2011-10-11 Alcatel Lucent Method for maintaining communication between communication devices having inconsistent protocols
US7236453B2 (en) * 2002-06-27 2007-06-26 Jeremy Benjamin, Trustee High available method for border gateway protocol version 4
US20040006640A1 (en) * 2002-07-03 2004-01-08 Inderieden Daniel W. Notification to routing protocols of changes to routing information base
US7480737B2 (en) * 2002-10-25 2009-01-20 International Business Machines Corporation Technique for addressing a cluster of network servers
US7036051B1 (en) * 2002-12-18 2006-04-25 Juniper Networks, Inc. Responsive virtual routing system
US7382769B1 (en) 2003-02-07 2008-06-03 Juniper Networks, Inc. Automatic filtering to prevent network attacks
US7814232B2 (en) * 2003-03-28 2010-10-12 Cisco Technology, Inc. Network address translation with gateway load distribution
JP4385834B2 (ja) * 2003-04-15 2009-12-16 パナソニック株式会社 ルーティング制御方法およびルータ装置
US7162234B1 (en) * 2003-05-20 2007-01-09 Mark J. Smith Wireless communication device
US8078758B1 (en) * 2003-06-05 2011-12-13 Juniper Networks, Inc. Automatic configuration of source address filters within a network device
JP4449903B2 (ja) * 2003-06-11 2010-04-14 日本電気株式会社 ルータ装置およびネットワーク接続方式
US7751312B2 (en) * 2003-06-13 2010-07-06 International Business Machines Corporation System and method for packet switch cards re-synchronization
EP1501257A1 (en) * 2003-07-25 2005-01-26 Hewlett-Packard Development Company, L.P. Improvements in or relating to fault tolerant systems
US7406030B1 (en) 2003-08-25 2008-07-29 Juniper Networks, Inc. Dynamic renegotiation of graceful restart time to avoid double-failure traffic loss
US7562145B2 (en) * 2003-08-28 2009-07-14 International Business Machines Corporation Application instance level workload distribution affinities
US7751416B2 (en) * 2003-09-18 2010-07-06 Cisco Technology, Inc. Virtual network device
US7178052B2 (en) * 2003-09-18 2007-02-13 Cisco Technology, Inc. High availability virtual switch
US7839843B2 (en) 2003-09-18 2010-11-23 Cisco Technology, Inc. Distributed forwarding in virtual network devices
US7739403B1 (en) * 2003-10-03 2010-06-15 Juniper Networks, Inc. Synchronizing state information between control units
US8009556B2 (en) * 2003-10-17 2011-08-30 Ip Infusion, Inc. System and method for providing redundant routing capabilities for a network node
WO2005039142A1 (en) * 2003-10-17 2005-04-28 Siemens Aktiengesellschaft A basic message service for redundant devices
US8526427B1 (en) 2003-10-21 2013-09-03 Cisco Technology, Inc. Port-based loadsharing for a satellite switch
US7929424B2 (en) * 2003-10-31 2011-04-19 Ericsson Ab Switchover for broadband subscriber sessions
US7599285B2 (en) * 2003-11-03 2009-10-06 Cisco Technology, Inc. Combined electro-mechanical and solid state switching fabric
US20050111352A1 (en) * 2003-11-21 2005-05-26 Boon Ho Method and system for monitoring a network containing routers using a backup routing protocol
US9032095B1 (en) * 2004-01-06 2015-05-12 Juniper Networks, Inc. Routing device having multiple logical routers
CN100407727C (zh) * 2004-01-18 2008-07-30 中兴通讯股份有限公司 一种基于消息的处理器间通信方法
US8265058B2 (en) * 2004-02-05 2012-09-11 Ericsson Ab Method and an apparatus for route selection in routing protocols
US7773596B1 (en) 2004-02-19 2010-08-10 Juniper Networks, Inc. Distribution of traffic flow criteria
US8990430B2 (en) 2004-02-19 2015-03-24 Cisco Technology, Inc. Interface bundles in virtual network devices
US7506194B2 (en) * 2004-03-24 2009-03-17 Cisco Technology, Inc. Routing system and method for transparently rocovering routing states after a failover or during a software upgrade
US7293198B2 (en) * 2004-03-25 2007-11-06 Emc Corporation Techniques for maintaining operation of data storage system during a failure
US8208370B1 (en) 2004-03-31 2012-06-26 Cisco Technology, Inc. Method and system for fast link failover
US7889733B2 (en) 2004-04-28 2011-02-15 Cisco Technology, Inc. Intelligent adjunct network device
FR2870420B1 (fr) * 2004-05-17 2006-09-08 Alcatel Sa Dispositif de gestion d'un protocole de mobilite pour un equipement d'un reseau de communications ip, en vue d'une continuite de service
US7710957B2 (en) * 2004-05-19 2010-05-04 Cisco Technology, Inc. System and method for implementing multiple spanning trees per network
US7706364B2 (en) * 2004-05-19 2010-04-27 Cisco Technology, Inc. Virtual network device clusters
US7284148B2 (en) * 2004-06-17 2007-10-16 International Business Machines Corporation Method and system for self-healing in routers
US7436836B2 (en) 2004-06-30 2008-10-14 Cisco Technology, Inc. Method and apparatus for detecting support for a protocol defining supplemental headers
US7808983B2 (en) 2004-07-08 2010-10-05 Cisco Technology, Inc. Network device architecture for centralized packet processing
US8730976B2 (en) 2004-08-17 2014-05-20 Cisco Technology, Inc. System and method for preventing erroneous link aggregation due to component relocation
US7515525B2 (en) * 2004-09-22 2009-04-07 Cisco Technology, Inc. Cooperative TCP / BGP window management for stateful switchover
US8717899B2 (en) * 2004-10-13 2014-05-06 Cisco Technology, Inc. System and method for reporting out-of-resources (OOR) conditions in a data network
US8693350B2 (en) * 2004-10-26 2014-04-08 Jds Uniphase Corporation Method of collecting BGP routing protocol messages
US7808889B1 (en) * 2004-11-24 2010-10-05 Juniper Networks, Inc. Silent failover from a primary control unit to a backup control unit of a network device
US7742444B2 (en) 2005-03-15 2010-06-22 Qualcomm Incorporated Multiple other sector information combining for power control in a wireless communication system
US7573811B2 (en) * 2005-03-28 2009-08-11 Alcatel-Lucent Usa Inc. Network transparent OSPF-TE failover
JP2006285448A (ja) * 2005-03-31 2006-10-19 Oki Electric Ind Co Ltd 冗長システム
US7609617B2 (en) * 2005-04-14 2009-10-27 Cisco Technology, Inc. BGP hitless upgrade approaches
JP2006311254A (ja) * 2005-04-28 2006-11-09 Kddi Corp ネットワークシステム
US7751311B2 (en) * 2005-05-19 2010-07-06 Cisco Technology, Inc. High availability transport protocol method and apparatus
US8040899B2 (en) * 2005-05-26 2011-10-18 Genband Us Llc Methods, systems, and computer program products for implementing automatic protection switching for media packets transmitted over an ethernet switching fabric
US20060274649A1 (en) * 2005-06-06 2006-12-07 Sbc Knowledge Ventures Lp Method and apparatus for rerouting non-unicast traffic
US8750908B2 (en) 2005-06-16 2014-06-10 Qualcomm Incorporated Quick paging channel with reduced probability of missed page
US9055552B2 (en) 2005-06-16 2015-06-09 Qualcomm Incorporated Quick paging channel with reduced probability of missed page
US7606241B1 (en) 2005-08-12 2009-10-20 Juniper Networks, Inc. Extending standalone router syntax to multi-chassis routers
KR20070024302A (ko) * 2005-08-26 2007-03-02 한국전자통신연구원 셀룰러 시스템의 수면 모드 제어 장치 및 제어 방법
US7552262B1 (en) 2005-08-31 2009-06-23 Juniper Networks, Inc. Integration of an operative standalone router into a multi-chassis router
US7881183B2 (en) * 2005-09-08 2011-02-01 Her Majesty The Queen In Right Of Canada As Represented By The Minister Of Industry, Through The Communications Research Centre Canada Recovery from control plane failures in the LDP signalling protocol
US9166904B2 (en) * 2005-09-08 2015-10-20 Cisco Technology, Inc. Method and apparatus for transferring BGP state information during asynchronous startup
JP4747758B2 (ja) * 2005-09-21 2011-08-17 日立電線株式会社 ネットワーク装置
US8135857B1 (en) 2005-09-26 2012-03-13 Juniper Networks, Inc. Centralized configuration of a multi-chassis router
US7747999B1 (en) 2005-09-26 2010-06-29 Juniper Networks, Inc. Software installation in a multi-chassis network device
US7911940B2 (en) * 2005-09-30 2011-03-22 Genband Us Llc Adaptive redundancy protection scheme
US7948873B2 (en) * 2005-10-17 2011-05-24 Cisco Technology, Inc. Method for recovery of a controlled failover of a border gateway protocol speaker
US20090207790A1 (en) 2005-10-27 2009-08-20 Qualcomm Incorporated Method and apparatus for settingtuneawaystatus in an open state in wireless communication system
CN101352073A (zh) * 2005-10-27 2009-01-21 高通股份有限公司 在无线通信***中发送接入探测的方法和设备
US7518986B1 (en) 2005-11-16 2009-04-14 Juniper Networks, Inc. Push-based hierarchical state propagation within a multi-chassis network device
US7957380B2 (en) * 2005-11-21 2011-06-07 Cisco Technology, Inc. Support of unidirectional link in IS-IS without IP encapsulation and in presence of unidirectional return path
CN1980230B (zh) * 2005-11-30 2011-06-01 华为技术有限公司 对vrrp组进行管理的方法
US7804769B1 (en) * 2005-12-01 2010-09-28 Juniper Networks, Inc. Non-stop forwarding in a multi-chassis router
US7852778B1 (en) 2006-01-30 2010-12-14 Juniper Networks, Inc. Verification of network paths using two or more connectivity protocols
US7881188B2 (en) 2006-02-03 2011-02-01 Genband Us Llc Methods, systems, and computer program products for implementing link redundancy in a media gateway
US7965771B2 (en) * 2006-02-27 2011-06-21 Cisco Technology, Inc. Method and apparatus for immediate display of multicast IPTV over a bandwidth constrained network
US7512776B2 (en) * 2006-03-06 2009-03-31 Alcatel Lucent Optimized control plane signalling for a high availability network device in a communications network
US8218654B2 (en) * 2006-03-08 2012-07-10 Cisco Technology, Inc. Method for reducing channel change startup delays for multicast digital video streams
US7509528B2 (en) * 2006-03-10 2009-03-24 Alcatel Lucent Transaction bundling for improved redundancy
US8036213B1 (en) 2006-03-30 2011-10-11 Cisco Technology, Inc. System and method for enhancing network stability by selectively controlling adjacency formation
US7502992B2 (en) 2006-03-31 2009-03-10 Emc Corporation Method and apparatus for detecting presence of errors in data transmitted between components in a data storage system using an I2C protocol
US8089903B2 (en) * 2006-03-31 2012-01-03 Emc Corporation Method and apparatus for providing a logical separation of a customer device and a service device connected to a data storage system
US8284656B2 (en) * 2006-04-28 2012-10-09 Alcatel Lucent System and method for resilient VPLS over multi-nodal APS protected provider edge nodes
US8208372B2 (en) * 2006-06-02 2012-06-26 Cisco Technology, Inc. Technique for fast activation of a secondary head-end node TE-LSP upon failure of a primary head-end node TE-LSP
US8441924B2 (en) * 2006-07-20 2013-05-14 Verizon Services Organization Inc. Redundant capability in a fiber optic network
CN101114892A (zh) * 2006-07-28 2008-01-30 华为技术有限公司 一种报文备份方法
US8031701B2 (en) * 2006-09-11 2011-10-04 Cisco Technology, Inc. Retransmission-based stream repair and stream join
CN101193092A (zh) * 2006-11-29 2008-06-04 鸿富锦精密工业(深圳)有限公司 网络设备及其数据同步传输方法
CN100579072C (zh) * 2006-12-22 2010-01-06 华为技术有限公司 一种在ip设备之间进行通信的方法和***
US9648147B2 (en) * 2006-12-29 2017-05-09 Futurewei Technologies, Inc. System and method for TCP high availability
US8051326B2 (en) 2006-12-29 2011-11-01 Futurewei Technologies, Inc. System and method for completeness of TCP data in TCP HA
US7937531B2 (en) * 2007-02-01 2011-05-03 Cisco Technology, Inc. Regularly occurring write back scheme for cache soft error reduction
US8769591B2 (en) * 2007-02-12 2014-07-01 Cisco Technology, Inc. Fast channel change on a bandwidth constrained network
US7940644B2 (en) * 2007-03-14 2011-05-10 Cisco Technology, Inc. Unified transmission scheme for media stream redundancy
US20080253369A1 (en) * 2007-04-16 2008-10-16 Cisco Technology, Inc. Monitoring and correcting upstream packet loss
US20080285437A1 (en) * 2007-05-18 2008-11-20 Adc Dsl Systems, Inc. Ethernet protection switching system
US8442072B2 (en) * 2007-05-25 2013-05-14 Futurewei Technologies, Inc. Method of preventing transport leaks in hybrid switching networks by extension of the link layer discovery protocol (LLDP)
US8806472B2 (en) * 2007-09-27 2014-08-12 Ericsson Ab In-service software upgrade utilizing metadata-driven state translation
US7957330B1 (en) 2007-11-27 2011-06-07 Juniper Networks, Inc. Failsafe management of periodic communications during system upgrade for a network device
US8134915B2 (en) * 2007-12-12 2012-03-13 Cisco Technology, Inc. Method and apparatus for providing network redundancy
US8787153B2 (en) 2008-02-10 2014-07-22 Cisco Technology, Inc. Forward error correction based data recovery with path diversity
US8243591B2 (en) * 2008-02-12 2012-08-14 Alcatel Lucent Method and tool for router interface L2 redundancy
US8031722B1 (en) 2008-03-31 2011-10-04 Emc Corporation Techniques for controlling a network switch of a data storage system
US20090252173A1 (en) * 2008-04-03 2009-10-08 Rangaprasad Sampath Method For Improving Efficiency Of Redundancy Protocols
US20100005263A1 (en) * 2008-07-04 2010-01-07 Huawei Technologies Co., Ltd. Information backup method, firewall and network system
JP5113684B2 (ja) * 2008-09-05 2013-01-09 株式会社日立製作所 アクセスゲートウェイ装置の制御方法及び通信システム
US8644186B1 (en) 2008-10-03 2014-02-04 Cisco Technology, Inc. System and method for detecting loops for routing in a network environment
US7969974B2 (en) * 2008-10-15 2011-06-28 Cisco Technology, Inc. System and method for providing a multipath switchover between redundant streams
US8467296B2 (en) * 2009-01-09 2013-06-18 Foundry Networks, Llc Hierarchical rate color marker
US8730812B2 (en) 2009-01-09 2014-05-20 Brocade Communications Systems, Inc. Hierarchical rate color marker
CN101853137B (zh) * 2009-03-31 2012-06-06 联想(北京)有限公司 一种多硬件***数据处理设备及其中的切换方法
CN101534309B (zh) 2009-04-14 2013-03-13 华为技术有限公司 节点注册方法、路由更新方法、通讯***以及相关设备
US8335943B2 (en) * 2009-06-22 2012-12-18 Citrix Systems, Inc. Systems and methods for stateful session failover between multi-core appliances
US8045477B2 (en) * 2009-07-17 2011-10-25 Cisco Technology, Inc. Smart protection escalation mechanism prevention
US8154992B2 (en) * 2009-08-11 2012-04-10 Google Inc. System and method for graceful restart
US8363549B1 (en) 2009-09-02 2013-01-29 Juniper Networks, Inc. Adaptively maintaining sequence numbers on high availability peers
CN102045185B (zh) * 2009-10-21 2014-07-16 中兴通讯股份有限公司 用户信息备份方法及装置
US8369345B1 (en) 2009-11-13 2013-02-05 Juniper Networks, Inc. Multi-router system having shared network interfaces
US8873377B2 (en) * 2009-11-18 2014-10-28 Juniper Networks, Inc. Method and apparatus for hitless failover in networking systems using single database
US9274851B2 (en) 2009-11-25 2016-03-01 Brocade Communications Systems, Inc. Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines
US8472311B2 (en) 2010-02-04 2013-06-25 Genband Us Llc Systems, methods, and computer readable media for providing instantaneous failover of packet processing elements in a network
US8503289B2 (en) 2010-03-19 2013-08-06 Brocade Communications Systems, Inc. Synchronizing multicast information for linecards
US9168946B2 (en) * 2010-03-19 2015-10-27 Javad Gnss, Inc. Method for generating offset paths for ground vehicles
US8769155B2 (en) * 2010-03-19 2014-07-01 Brocade Communications Systems, Inc. Techniques for synchronizing application object instances
KR20130060170A (ko) * 2010-03-26 2013-06-07 록스타 비드코, 엘피 라우팅형 이더넷 네트워크에서의 분산형 장애 복구
US8897134B2 (en) * 2010-06-25 2014-11-25 Telefonaktiebolaget L M Ericsson (Publ) Notifying a controller of a change to a packet forwarding configuration of a network element over a communication channel
US8495418B2 (en) 2010-07-23 2013-07-23 Brocade Communications Systems, Inc. Achieving ultra-high availability using a single CPU
US9104619B2 (en) 2010-07-23 2015-08-11 Brocade Communications Systems, Inc. Persisting data across warm boots
KR101414753B1 (ko) 2010-11-22 2014-07-04 닛본 덴끼 가부시끼가이샤 통신 시스템, 통신 디바이스, 컨트롤러, 및 패킷 플로우의 포워딩 경로의 제어 방법 및 프로그램
CN102761577B (zh) * 2011-04-29 2015-05-20 深圳友讯达科技股份有限公司 Cfda采集平台
US20120281695A1 (en) * 2011-05-05 2012-11-08 Brocade Communications Systems, Inc. Control packet bicasting between stackable devices
US8614941B2 (en) * 2011-05-09 2013-12-24 Telefonaktiebolaget L M Ericsson (Publ) Hitless switchover from active TCP application to standby TCP application
US8913485B2 (en) * 2011-09-16 2014-12-16 Telefonaktiebolaget L M Ericsson (Publ) Open shortest path first (OSPF) nonstop routing (NSR) with link derivation
US9143335B2 (en) 2011-09-16 2015-09-22 Brocade Communications Systems, Inc. Multicast route cache system
US8923312B2 (en) 2011-09-29 2014-12-30 Telefonaktiebolaget L M Ericsson (Publ) OSPF nonstop routing synchronization nack
US8964758B2 (en) 2011-09-29 2015-02-24 Telefonaktiebolaget L M Ericsson (Publ) OSPF nonstop routing (NSR) synchronization reduction
JP5703201B2 (ja) * 2011-12-02 2015-04-15 アラクサラネットワークス株式会社 冗長制御装置およびネットワークシステム
US10031782B2 (en) 2012-06-26 2018-07-24 Juniper Networks, Inc. Distributed processing of network device tasks
US10581763B2 (en) 2012-09-21 2020-03-03 Avago Technologies International Sales Pte. Limited High availability application messaging layer
US9967106B2 (en) 2012-09-24 2018-05-08 Brocade Communications Systems LLC Role based multicast messaging infrastructure
US9203690B2 (en) 2012-09-24 2015-12-01 Brocade Communications Systems, Inc. Role based multicast messaging infrastructure
US8902780B1 (en) 2012-09-26 2014-12-02 Juniper Networks, Inc. Forwarding detection for point-to-multipoint label switched paths
US20140146661A1 (en) * 2012-11-28 2014-05-29 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for facilitating process restart in an is-is system
US9258234B1 (en) 2012-12-28 2016-02-09 Juniper Networks, Inc. Dynamically adjusting liveliness detection intervals for periodic network communications
US8953460B1 (en) 2012-12-31 2015-02-10 Juniper Networks, Inc. Network liveliness detection using session-external communications
US9118409B2 (en) * 2013-01-17 2015-08-25 Strata Products Worldwide, Llc Method, controller, and system for tunnel communication
CN103973571A (zh) * 2013-02-05 2014-08-06 中兴通讯股份有限公司 网络处理器及其路由查找方法
US9256660B2 (en) 2013-08-06 2016-02-09 Telefonaktiebolaget L M Ericsson (Publ) Reconciliation protocol after ICR switchover during bulk sync
US9268836B2 (en) * 2013-11-14 2016-02-23 Vmware, Inc. Intelligent data propagation in a highly distributed environment
US9230001B2 (en) 2013-11-14 2016-01-05 Vmware, Inc. Intelligent data propagation using performance monitoring
US10193801B2 (en) 2013-11-25 2019-01-29 Juniper Networks, Inc. Automatic traffic mapping for multi-protocol label switching networks
US9769017B1 (en) 2014-09-26 2017-09-19 Juniper Networks, Inc. Impending control plane disruption indication using forwarding plane liveliness detection protocols
US9619349B2 (en) 2014-10-14 2017-04-11 Brocade Communications Systems, Inc. Biasing active-standby determination
CN104821913B (zh) * 2015-05-05 2019-01-29 新华三技术有限公司 一种数据报文转发方法和装置
US9778354B2 (en) 2015-08-10 2017-10-03 Mitsubishi Electric Research Laboratories, Inc. Method and system for coding signals using distributed coding and non-monotonic quantization
US9501717B1 (en) 2015-08-10 2016-11-22 Mitsubishi Electric Research Laboratories, Inc. Method and system for coding signals using distributed coding and non-monotonic quantization
WO2017053977A1 (en) 2015-09-25 2017-03-30 Fsa Technologies, Inc. Multi-trunk data flow regulation system and method
CN106933547B (zh) 2015-12-29 2020-12-01 阿里巴巴集团控股有限公司 全局信息获取及处理的方法、装置和更新***
CN106933550B (zh) 2015-12-29 2021-01-08 阿里巴巴集团控股有限公司 全局信息获取、处理及更新方法、装置和***
CN106933548B (zh) 2015-12-29 2021-01-12 阿里巴巴集团控股有限公司 全局信息获取、处理及更新、方法、装置和***
US10374936B2 (en) 2015-12-30 2019-08-06 Juniper Networks, Inc. Reducing false alarms when using network keep-alive messages
US10397085B1 (en) 2016-06-30 2019-08-27 Juniper Networks, Inc. Offloading heartbeat responses message processing to a kernel of a network device
CN107959636B (zh) * 2016-10-17 2021-01-26 新华三技术有限公司 Bgp消息的发送方法及装置
CN110249591B (zh) * 2016-12-16 2022-05-10 赫思曼自动化控制有限公司 用于优化利用测试数据包的冗余协议的故障识别的方法
US10771316B1 (en) * 2017-11-30 2020-09-08 Amazon Technologies, Inc. Debugging of a network device through emulation
US10447571B2 (en) 2018-01-12 2019-10-15 Cisco Technology, Inc. Dataplane-based seamless bidirectional forwarding detection monitoring for network entities
CN112567696B (zh) * 2018-08-24 2022-08-09 日立安斯泰莫株式会社 车载通信装置及车载***
US11750441B1 (en) 2018-09-07 2023-09-05 Juniper Networks, Inc. Propagating node failure errors to TCP sockets
US10901399B2 (en) * 2018-09-28 2021-01-26 Rockwell Automation Technologies, Inc. High availability industrial automation controller and method of operating the same
CN111698151B (zh) * 2019-03-13 2022-06-28 华为技术有限公司 路由信息管理方法、装置及计算机存储介质
WO2020236277A1 (en) 2019-05-23 2020-11-26 Cray Inc. System and method for facilitating tracer packets in a data-driven intelligent network
CN113765781B (zh) * 2020-06-04 2022-07-12 华为技术有限公司 处理路由报文的方法、通信设备、存储介质及***
CN114374642B (zh) * 2021-12-29 2023-06-16 中国电信股份有限公司 一种路由信息的维护方法及装置
CN116489085B (zh) * 2023-03-28 2023-10-27 网根科技(青岛)有限公司 一种基于Handle的解析路由安全监测方法和***

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471469A (en) * 1994-02-08 1995-11-28 Metricon, Inc. Method of resolving media contention in radio communication links
US5453977A (en) * 1994-02-08 1995-09-26 Metricom, Inc. Method for network configuration via third party query
US5473599A (en) 1994-04-22 1995-12-05 Cisco Systems, Incorporated Standby router protocol
US5541911A (en) 1994-10-12 1996-07-30 3Com Corporation Remote smart filtering communication management system
US5513314A (en) * 1995-01-27 1996-04-30 Auspex Systems, Inc. Fault tolerant NFS server system and mirroring protocol
JPH0974412A (ja) * 1995-09-04 1997-03-18 Fujitsu Ltd Atm交換網のapsシステム
US5936936A (en) 1997-04-11 1999-08-10 International Business Machines Corporation Redundancy mechanisms for classical internet protocol over asynchronous transfer mode networks
US6366558B1 (en) * 1997-05-02 2002-04-02 Cisco Technology, Inc. Method and apparatus for maintaining connection state between a connection manager and a failover device
US6148410A (en) * 1997-09-15 2000-11-14 International Business Machines Corporation Fault tolerant recoverable TCP/IP connection router
JP3286584B2 (ja) * 1997-11-20 2002-05-27 株式会社日立製作所 多重化ルータ装置
JP3204302B2 (ja) 1997-11-27 2001-09-04 日本電気株式会社 ネットワークエレメント管理システム及びそれにおけるデータベース更新方法
US6577634B1 (en) * 1998-07-01 2003-06-10 Hitachi, Ltd. Method for sharing network information and a router apparatus
US6415323B1 (en) * 1999-09-03 2002-07-02 Fastforward Networks Proximity-based redirection system for robust and scalable service-node location in an internetwork
US6885635B1 (en) * 2000-11-21 2005-04-26 Juniper Networks, Inc. High capacity router having redundant components
US20020176355A1 (en) * 2001-05-22 2002-11-28 Alan Mimms Snooping standby router

Also Published As

Publication number Publication date
JP2004534414A (ja) 2004-11-11
US20050265346A1 (en) 2005-12-01
HK1066659A1 (en) 2005-03-24
AU2002232605A1 (en) 2002-06-18
US6910148B1 (en) 2005-06-21
CA2431034A1 (en) 2002-06-13
ES2267850T3 (es) 2007-03-16
EP1342340B1 (en) 2006-07-26
WO2002047329A2 (en) 2002-06-13
DE60121798T2 (de) 2007-08-09
EP1342340A2 (en) 2003-09-10
ATE334537T1 (de) 2006-08-15
CN1314243C (zh) 2007-05-02
CA2431034C (en) 2009-06-02
CN1502191A (zh) 2004-06-02
DE60121798D1 (de) 2006-09-07
WO2002047329A3 (en) 2003-06-05
US7392424B2 (en) 2008-06-24

Similar Documents

Publication Publication Date Title
JP4033769B2 (ja) ルータ及びルーティング・プロトコル冗長性
Panda et al. {SCL}: Simplifying Distributed {SDN} Control Planes
US7518986B1 (en) Push-based hierarchical state propagation within a multi-chassis network device
KR101099822B1 (ko) 액티브 라우팅 컴포넌트 장애 처리 방법 및 장치
US7751311B2 (en) High availability transport protocol method and apparatus
US8483048B2 (en) Non-stop forwarding in a multi-chassis router
JP3932994B2 (ja) サーバ引継システムおよびその方法
US7508772B1 (en) Partial graceful restart for border gateway protocol (BGP)
US6910150B2 (en) System and method for state preservation in a stretch cluster
US7710899B1 (en) System and method for speeding border gateway protocol graceful restart
US9674285B2 (en) Bypassing failed hub devices in hub-and-spoke telecommunication networks
JP2005535241A (ja) マルチコンピュータ・アーキテクチャにおけるアプリケーション・ソフトウェアの移動方法、前記移動方法を用いて作動の連続性を実現するマルチコンピュータ方法および装置
JPH0936910A (ja) パケット通信ネットワークにおける経路指定の管理
US9954723B2 (en) Packet switch modules for computer networks with efficient management of databases used in forwarding of network traffic
AT&T
EP1330897B1 (en) Method of and device for transmitting data packets on a network
WO2017148097A1 (zh) 平滑重启处理的方法及装置
JP2005136690A (ja) 高速ネットワークアドレス引継ぎ方法、ネットワーク装置及びプログラム
Chowdhury et al. On the design, development, deployment, and network survivability analysis of the dynamic routing system protocol

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041118

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20041118

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20041118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20041118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060613

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060913

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060921

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070116

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070416

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070423

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070516

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070523

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070618

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070717

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: 20070925

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071023

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

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111102

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131102

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees