Cisco Catalyst 6500 シリーズ

Cisco NSF/SSO(ノンストップ フォワーディング⁄ステートフル スイッチオーバー)導入ガイド

ダウンロード
Cisco NSF/SSO(ノンストップ フォワーディング⁄ステートフル スイッチオーバー)導入ガイド

導入ガイド


Cisco NSF⁄SSO(ノンストップ フォワーディング⁄ステートフル スイッチオーバー)導入ガイド


Cisco Nonstop Forwarding(NSF;ノンストップ フォワーディング)/Stateful Switchover(SSO;ステートフル スイッチオーバー)は、ハードウェアまたはソフトウェア障害による意図しないダウンタイムからシステムを保護し、ネットワーク サービスの継続的な提供を可能にします。NSF/SSOをネットワークの重要な部分に展開すれば、システムとサービスの可用性が向上するとともに、将来、In Service Software Upgrade(ISSU)で提供されるダウンタイムの計画化を目的とした機能を活用できるようになります。

重要なビジネス システムへのネットワーク アクセスを実現しようとしている企業においても、卓越したネットワーク サービスと接続性を顧客に提供することを追求しているネットワーク プロバイダーにおいても、コンポーネントの障害によって発生するダウンタイムを短縮することが業務には必須であると認識しています。シスコのお客様は、ビジネス要件と予算を考慮しながら、サービスが停止することのない冗長ネットワークの設計と運用の実現に向けて努力しています。

Cisco NSF/SSOは、ある種のネットワーク機能停止による影響を抑制するために開発された拡張機能から発展しました。Cisco NSF/SSOは、Route Processor Redundancy(RPR)およびRPR Plus(RPR+)として知られる初期のテクノロジーを基盤としています。シャーシ内でハードウェアを冗長化(冗長Route Processor [RP;ルート プロセッサ])し、コントロール プレーンをデータ プレーンから分離することによって、たとえハードウェアまたはソフトウェアに障害が発生してそれがRPに支障を与えたとしても、パケット損失することなく継続的にパケットを転送できるようにします(独自のテスト結果[英語]はhttp://www.cisco.com/warp/public/732/Tech/grip/tech.shtmlを参照してください)。

この文書は、Cisco NSF/SSOを展開することでネットワークサービスの可用性を高めようとしている設計スタッフと運用スタッフのための手引き書です。最初の項では、ネットワーク内でNSF/SSOを展開すべきポイントについて説明します。2項と3項では、SSOとNSFの運用について検討します。4項では、確実に展開を成功させるための実装手順について説明します。

注: この文書では、特に断りのないかぎり、「RP(ルート プロセッサ)」という用語は、ハードウェアの名称に関係なく、すべてのネットワーキング デバイス上のルート プロセッサ エンジンを指します。たとえば、Cisco 10000シリーズ インターネット ルータでは、RPはPerformance Routing Engine(PRE;パフォーマンス ルーティング エンジン)を指し、Cisco 12000シリーズ ルータでは、RPはGigabit Route Processor(GRP;ギガビット ルート プロセッサ)またはPerformance Route Processor(PRP;パフォーマンス ルート プロセッサ)を指します。また、Cisco Catalyst® 6500シリーズ スイッチとCisco 7600シリーズ ルータではスーパーバイザという用語が使用され、Cisco 7500シリーズ ルータのRPはRoute Switch Processor(RSP;ルート スイッチ プロセッサ)を指します。

NSF/SSOの展開

Cisco NSF/SSOという言葉からは、すべてのネットワーク ノードに復元力の向上というメリットを提供するように思えます。しかし、実際には、この機能から最大の効果を得られるのはエッジ デバイスです。シングルポイント オブ フェイラーは、ネットワーク エッジの境界に存在する傾向があります。さらにサービス プロバイダーのような通信事業の場合、スケールメリットを基盤にしているので、そのエッジにはシングルポイント オブ フェイラーがより多く存在します。通常は、上位層とバックボーンのノード間のパスを冗長化することにより、単一ノードでの障害がサービスに影響を与えないようにします。したがって、上位層とバックボーンのノードには、シャーシ内でRPを冗長化させたり、ネットワーク復元力を装備したりはしません。代わりにそれらのノードは、代替パスへの高速なルーティング コンバージェンスによって可用性を向上させています。つまり、リンクまたはノードの障害をただちに検出し、トラフィックをすみやかに代替パスにルーティングします。Multiprotocol Label Switching(MPLS;マルチプロトコル ラベル スイッチング)Virtual Private Network(VPN;仮想私設網)ネットワークは、トラフィック処理などの機能を組み込んでおり、コアでのリンクとノードの保護によって、迅速にルートを変更してパスの復元力を実現します。ルーティング プロトコルのコンバージェンスは、ネットワーク サービスの可用性に直接影響を与えますが、複雑な問題なので、この文書では詳しく述べません。ルーティング プロトコル タイマーの操作とNSF/SSOに関する情報については、下記のURLにある高可用性に関する文書『Cisco NSF and Timer Manipulation for Fast Convergence』(英語)を参照してください。http://www.cisco.com/en/US/tech/tk869/tk769/technologies_white_paper09186a00801dce40.shtml

図1 Cisco NSF/SSOの主な展開ポイント

図1は、Cisco NSF/SSOを展開すべきポイントを示しています。色の付いた楕円で示しているように、NSF/SSOはサービス プロバイダー ネットワークのエッジに展開すると最も効果的です。NSFはサービス プロバイダーのエッジ ルータで、メンテナンスや何らかの障害などの理由によりRPがオフラインになっても、お客様がその影響を受けないことを保証します。特に、お客様またはネットワークが、単一のエッジ ルータのみでサービス プロバイダーと相互接続している場合に、最大の効果を発揮します。こうしたケースでは、サービス プロバイダーのエッジ ルータがシングルポイント オブ フェイラーとなるので、この機能がないと、ノードに何らかの障害が発生した場合、そのパスを使用しているすべてのトラフィック フローが停止します。NSFを設定すると、シャーシ内の冗長RPへスイッチオーバーする間もトラフィック フローは継続するため、サービスの向上と、ネットワーク寸断やルーティング プロトコル変動の抑制につながります。

多くのネットワークでは、トポロジー内の他の場所に設定しても効果が得られます。たとえば企業では、NSF/SSOをサービス プロバイダーとのエッジ境界に展開すると効果的です。これらのデバイスは、通常重要なネットワーク サービスを提供しており、再コンバージェンスによるパフォーマンス低下やパケットの損失は大きな問題となるからです。NSF/SSOはCisco Catalyst 6500シリーズ スイッチで装備できるので、シングルポイント オブ フェイラーとなる接続が存在するデータ センタの重要なディストリビューション レイヤ デバイスや、キャンパス アクセス レイヤに展開できます。詳細については、「キャンパス ネットワークのNSF/SSO」を参照してください。

Cisco NSF機能では、隣接ノードが1つの役割を果たします(図2を参照)。RPのスイッチオーバー中でもパケット転送を継続できる場合、そのノードはNSF対応ノードです。NSF/SSOの展開から最大の効果を得るには、隣接またはルーティング プロトコル ピア ノードがNSFを認識できる必要があります。実装には必ず必要というわけではありませんが、再起動するノードでパケット転送を継続できることをルーティング ピアが認識し、またスイッチオーバー後にルーティング テーブルの整合性の復元と確認を支援しなければ、限られた効果しか得られません。これについては、ルーティング プロトコルごとにNSF運用の詳細を説明する際に取り上げます。

シスコのNSFとSSOは、組み合わせて展開するように設計されています。NSFはSSOに基づいて、リンクとインターフェイスがスイッチオーバー中でも動作し、また下位レイヤのプロトコルの状態が維持されるようにします。ただしNSFを別個に設定したり、またSSOをNSFなしで有効にしたりすることは可能です。

図2 NSF認識デバイスとNSF対応デバイスの連携


キャンパス ネットワークのNSF/SSO

キャンパス ネットワークは通常、高度な冗長性と広域な帯域幅を備えた設計となっています。キャンパス内では、どのリンクまたはコンポーネントで障害が発生しても、二重の等コスト パスと高速コンバージェンスによってトラフィックは代替パスをとることが可能です。ただし、接続の維持、パケット損失の低減、および特定のネットワーク サービスを提供するノードを経由するパス フローの一貫性を確保するうえで、NSF/SSOが効果を発揮する場所があります。

図3 NSF認識デバイスとNSF対応デバイスの連携


図3では、色付きの円で囲まれた部分が、NSF/SSOが最大の効果を発揮すると予想される場所です。

検討すべき最初の場所は、アクセス レイヤです。大規模企業では多くの場合、共通の機器とモジュールを使用することによって設計を簡略化し、運用の一貫性を確保することで、必要な予備品を最小限に抑えながら可用性を向上させます。Cisco Catalyst 6500シリーズまたは4500シリーズ スイッチでは、エンド ステーションとIPテレフォニーにワイヤリング クローゼット接続が提供されるので、SSOはスーパーバイザによる障害、またはソフトウェア問題によるサービスの停止からの保護を実現します。アクセス レイヤは通常、レイヤ2サービスを提供し、冗長スイッチでディストリビューション レイヤが構成されます。レイヤ2アクセス レイヤでは、NSFなしで展開したSSOで効果が得られます。一部の企業は、アクセス レイヤでレイヤ3ルーティングを展開しています。その場合は、NSF/SSOを使用できます。

検討すべきもう1つの場所は、キャンパス メトロポリタン ネットワーク エッジです。多くの企業ではキャンパスは拡張され、そこでは複数の建物が相互接続されています。Metropolitan-Area Network(MAN;メトロポリタン エリア ネットワーク)は、2台のルータまたはスイッチで各建物またはサイトを相互接続して構成される場合があります。メトロポリタン エリア サービスはサービス プロバイダーによって提供され、ダーク ファイバ経由で相互接続されるか、企業所有のファイバ パスで構成されます。いずれの場合も、各サイトがメトロポリタン ネットワークに接続するキャンパス エッジの重要性は非常に高まるので、NSF/SSOが効果的です。

最後に、フロントエンドのデータ センタ、サーバ、コンピューティング クラスタ、およびメインフレームに使用される機器についても、NSF/SSOは効果的です。ここで特に有利なことは、ハードウェアおよびソフトウェア ベースのIPサービス機器またはブレード(ファイアウォール、コンテンツ管理システム、ロードバランシング システムなど)を通過するトラフィック パスが保全されることです。

図4 データ センタのNSF/SSO


図4は、データ センタの設計を示しています。この図は、2台のCisco Catalyst 6500シリーズ スイッチに統合型サービス モジュールを展開する例になっています。具体的には、ファイアウォール サービス モジュール、SSLサービス モジュール、およびコンテント スイッチング サービス モジュールを使用して、接続先サーバのアプリケーションに向かうトラフィックに重要なサービスを提供しています。

この環境では、片方のCisco Catalyst 6500シリーズ スイッチのスーパーバイザに障害が発生しても、トラフィックが同じパスで伝送され続けます。NSF/SSOのサポートによって、障害とネットワークの再コンバージェンスの影響は最小限に抑えられ、トラフィックの損失量が抑制されるとともに、Mean Time To Repair(MTTR;平均復旧時間)も短縮します。サービス モジュール、シャーシ電源、またはシャーシ全体の障害に影響する重大な障害からの保護は、並列で動作する冗長スイッチで引き続き提供されます。

SSOの運用上の考慮事項

シスコのSSOは、他の2つのCisco IOS®ソフトウェア インフラストラクチャ サブシステム、Redundancy FacilityとCheckpoint Facilityに依存しています。PPP、High-Level Data Link Control(HDLC;ハイレベル データリンク制御)、フレーム リレーといった個々のプロトコルを制御するソフトウェアは、Checkpoint FacilityとRedundancy Facilityを使用して、リンクの状態とレイヤ2プロトコルの詳細がスタンバイRPに複製されるようにします。これによって、RPのスイッチオーバー中にリンクの動作が維持されます。

以前の冗長モード(RPRなど)では、こうした品質を提示できませんでした。RPRモードでは、スタンバイRPは電源投入時にCisco IOSソフトウェア イメージをロードし、スタンバイ モードで初期化されます。スタートアップ コンフィギュレーションはスタンバイRPに同期化されますが、その後の変更は同期化されません。スイッチオーバーが発生すると、スタンバイRPはアクティブRPとして再初期化され、すべてのライン カードをリロードしてシステムを再起動します。ライン カードがすべてリロードされるため、隣接ルータではほとんどのタイプのポイントツーポイント接続で物理リンクの障害が検出されます。RPR+モードでは、スタンバイRPは完全に初期化され、設定されます。これによって、RPR+ではアクティブRPに障害が発生したり、手動でスイッチオーバーを実行したりした場合のスイッチオーバー時間を大幅に短縮できます。スタートアップ コンフィギュレーションとランニング コンフィギュレーションは、つねに両方ともアクティブRPとスタンバイRPで同期され、ライン カードがスイッチオーバー中にリセットされることはありません。インターフェイスは移行中も動作しているため、近接ルータで物理リンクのフラップ(リンクの一時的なダウンとアップ)が検出されることもありません。ただし、ライン カード、プロトコル、およびアプリケーションの状態情報は同期化されないため、一部のレイヤ2プロトコルでは障害が発生します。冗長性モードをSSOに設定すると、ライン カード、プロトコル、およびアプリケーションの状態情報が同期化されて冗長RPは「ホット」スタンバイとなり、いつでもただちに移行できるようになります。

現在、SSOを使用して同期化を実行するには、両方のRPで同じレベルのソフトウェア リリースが動作している必要があります。開発中のIn Service Software Upgrade(ISSU)が利用できるようになると、この制約はなくなり、NSF/SSOを活用することによって、サービスに影響を与えずにソフトウェア アップグレードを実行できるようになります。

SSOの運用上の主な効果と利点は、RPがプライマリRPからホット スタンバイRPに切り替わるときに、隣接デバイスでリンク障害が検出されないことです。これは、RPのスイッチオーバーにのみ当てはまります。シャーシ全体が電源を失ったり障害を起こしたりした場合、またはライン カードに障害が発生した場合、リンクは障害を起こし、ピアでそのイベントが検出されます。もちろん、これはリンク障害を検出できるポイントツーポイントのギガビット イーサネット インターフェイスやPacket over SONET(POS)インターフェイスなどの場合です。NSFが有効になっていても、物理リンクの障害はピアによって検出可能で、NSF認識は無効になります。

SSOのプロトコルサポート
SSOでサポートされているライン プロトコルとアプリケーションは、SSOを認識できます。Cisco IOSソフトウェアの機能またはプロトコルがSSOを認識できるのは、Redundancy FacilityとCheckpoint Facilityが提供する機能を使用することにより、RPのスイッチオーバーを通じて部分的または完全に安定した動作が維持される場合です。SSO認識プロトコルおよびアプリケーション(PPP、フレームリレー、Asynchronous Transfer Mode [ATM;非同期転送モード]、SNMP [簡易ネットワーク管理プロトコル]など)の状態情報は、アクティブからスタンバイへと同期化され、それらのプロトコルとアプリケーションのステートフル スイッチオーバーが実現されます。

SSOを認識できないプロトコルとアプリケーションでダイナミックに生成された状態は、スイッチオーバーが発生すると消失するので、再初期化と再起動が必要です。これらのプロトコルとアプリケーションでは、状態情報が確立または再構築されるまでにある程度のパケット損失が発生する場合があります。

2004年10月の時点で、SSOはPPP、Multilink PPP(MLPPP;マルチリンク ポイントツーポイント プロトコル)、HDLC、フレーム リレー、ATM、およびイーサネットをサポートしています。スイッチング製品には、表1に記載されている機能およびプロトコルのサポートも含まれます。

表1 SSOのスイッチング機能サポート

リンク ネゴシエーション VLAN Trunking Protocol(VTP;VLANトランキング プロトコル) Dynamic Trunking Protocol(DTP;ダイナミック トランキング プロトコル)
VLAN(仮想LAN) 802.1Q Port Aggregation Protocol(PAgP;ポート集約プロトコル)
VLANトランク
レイヤ2プロトコル トンネリング MAC移動通知
Spanning Tree Protocol(STP;スパニング ツリー プロトコル) 802.1Qトンネリング フロー制御とトラフィック ストーム制御
Address Resolution Protocol(ARP;アドレス解決プロトコル) ブリッジ グループ 音声VLANとインライン パワー
Cisco Discovery Protocol(CDP) ポート セキュリティ 802.1X
Switched Port Analyzer(SPAN;スイッチド ポート アナライザ)⁄Remote Switched Port Analyzer(RSPAN;リモート スイッチド ポート アナライザ) Unidirectional Link
Detection(UDLD;単一方向リンク検出)プロトコル
Link Aggregation Control Protocol(802.3ad-LACP)
Internet Group Management Protocol(IGMP)スヌーピング    


製品ではコンフィギュレーションと状態情報も維持され、レイヤ4でのトランスペアレントなフェールオーバーが可能です。これには、Quality of Service(QoS;サービス品質)、セキュリティ機能、およびAccess Control List(ACL;アクセス制御リスト)の維持が含まれます。

特定のプロトコルごとの状態の同期化、制限事項、およびコンフィギュレーションの詳細については、該当するシスコのマニュアルを参照してください。

NSFの運用上の考慮事項

Cisco NSFはレイヤ3のルーティング冗長性機能と考えることができます。NSFでは、フォワーディング プレーンからのコントロール プレーンの分離を活用します。コントロール プレーンはルーティング プロトコルのインテリジェンスであり、フォワーディング プレーンは利用可能な場合、ハードウェア アクセラレーションを使用してパケット交換を行います。NSFはCisco Express Forwarding(CEF)と緊密に連携しています。Cisco 12000およびCisco 7600シリーズ ルータやCisco Catalyst 6500シリーズ スイッチなどの分散ルーティング ハードウェアは、CEFの情報をForwarding Information Base(FIB;フォワーディング情報ベース)の形式でライン カードにダウンロードします。こうしてRPのスイッチオーバー中でも、ライン カードは保持しているルーティング情報を使用してトラフィックの転送を継続できます。

また、NSFはCheckpoint FacilityとRedundancy Facilityを使用して、CEFの状態情報をスタンバイRPに複製します。ホット スタンバイRPに切り替わって「アクティブ」になると、NSF対応およびNSF設定済みルーティング プロトコルによってネイバーとの隣接関係が再設定され、ルーティング情報が交換されます。ルーティング情報の交換後、Routing Information Base(RIB;ルーティング情報ベース)はFIBによって検証され、さらに必要に応じてアップデートされて、ルーティング情報の正確さとピアとの同期化が保証されます。

ルーティング プロトコルの隣接関係はプライマリRPがダウンすると失われ、スタンバイRPがアクティブになったあとで再確立されることに注意してください。さらにその後、ルーティング プロトコル情報はピアと交換されます。これを実行し、ピアまたは隣接ルータから、スイッチオーバー中のルータへのトラフィック転送を確実に継続させるために、ルーティング プロトコルの拡張機能が使用されます。

運用および展開の点からみると、上記の実現には隣接ルータでルーティング プロトコルの拡張機能がサポートされていることが必要です。ルーティング プロトコルの拡張機能によって、ネイバーはピアがパケット転送を継続できることをあらかじめ認識できます。一方、隣接関係が短時間途絶するために、ルーティング プロトコル情報の送信を要求する場合があることも、あらかじめ認識できます。スイッチオーバー中でも転送を継続できるルータは、NSF対応ルータです。ルーティング プロトコルの拡張機能で、再起動するルータへのトラフィック転送を継続する機能をサポートするデバイスは、NSF認識デバイスです。シスコ デバイスでNSF対応のものは、NSF認識デバイスでもあります。一部のソフトウェア バージョンとシスコ製品には、NSF認識はサポートしていてもNSF対応ではないものがあります。

NSFのプロトコル サポート
前述のとおり、Cisco NSFでは、スイッチオーバー中のコントロール プレーンが常時アクティブに維持されるわけではありません。代わりに、フォワーディング プレーンでは既知のルートが使用され、ルーティング プロトコル情報はスイッチオーバー後に復旧することになります。シスコのネットワーキング デバイスでは、パケット転送はCEFによって提供されます。CEFはFIBを保持しており、スイッチオーバーの時点で最新だったFIB情報を使用して、スイッチオーバー中もパケット転送を継続します。パケット転送の継続が可能なので、スイッチオーバー中のダウンタイムはなくなります。

Cisco NSFでは、Border Gateway Protocol(BGP)、Intermediate System-to-Intermediate System(IS-IS)、Open Shortest Path First(OSPF)、およびEIGRPの各ルーティング プロトコルがサポートされています。Cisco NSFは、MPLS関連のプロトコルもサポートしています(製品とリリースの入手方法については、該当する文書を参照してください)。スイッチオーバー中、各プロトコルではCEFによってパケット転送が継続され、一方ルーティング プロトコルによってRIBが再構築されます。

Cisco NSFの現在の実装は、次の要件を想定して設計されています。
  • シスコのお客様のニーズを満たすスケーラビリティを提供する。
  • 多数のシスコ製品にわたって展開できる。
  • 複数の障害シナリオにわたってネットワークの完全性を維持する。

シスコはネットワーク コミュニティおよびIETFと連携し、広く使用されているルーティング プロトコルに対する複数の機能拡張を推進することで、効果的なソリューションを生み出しています。プロトコルの拡張機能の基礎となる規格とドラフトについては、「関連する規格とドラフト」にまとめてあります。

次の項では、プロトコルの拡張機能と、サポートされている各ルーティング プロトコルの実装について説明します。

BGP NSF
シスコのBGP Nonstop Forwarding(NSF、別名グレースフル リスタート)のサポートは、IETFの規格案に記述されている実装仕様に準拠しています。この実装によると、パケット転送の継続を実現するには、以下の条件が満たされている必要があります。
  • NSF対応ルータとピア ルータは、それぞれがBGPグレースフル リスタートをサポートする。
  • ピア ルータはNSF対応ルータが使用できなくなっても、即座にそれを明示しない。
  • ピア ルータはNSF対応ルータの状態変化をいずれのピアにも伝達しない。これによって、当該ルータの突然の障害に伴うパフォーマンスへの悪影響が、ネットワーク全体に及ぶことを回避する。
  • ピア ルータはBGPアップデートを送信して、再起動するNSF対応ルータのBGP RIB再取得を支援する。
  • ピア ルータは、End of RIBマーカーの送信によって、最初のルーティング アップデートの完了を通知する。
  • ピア ルータは一時的に(再起動するNSF対応ルータがルーティング情報を再取得するまでの間)、再起動ルータに関連するあらゆるルートを「stale」とマーキングする。ただし、パケット転送のためにそれらのルートの使用は継続する。

最初のBGP接続が確立されると、プロトコルの調整が始まります。NSF対応ルータとそのピアは、セッションを確立する最初のBGP OPEN中に、新しいBGP Capability(#64)を交換することによって、BGPグレースフル リスタート メカニズムに対応していることを示します。

ルータは、NSF対応であるかどうかに関係なく、Capability 64を送信することに注意してください。Capability 64だけでは、再起動可能かどうかはわかりません。この信号が示すのは、当該ルータがIETFのドラフトで規定されているBGPの拡張機能を実装しているということです。そのため、BGPグレースフル リスタート対応で設定されているCisco 7200シリーズ ルータは、デュアルRPをサポートしていないために、BGPを再起動できない場合でも、Capability 64をピアにアドバタイズします。

さらに、NSF対応ルータは、一連のAddress Family Identifier(AFI)とSubsequent Address Family Identifier(SAFI)を提供し、それらについてBGPリスタートの前後でフォワーディング ステートを維持する機能を備えています。AFIとSAFIは、BGPで情報を伝送できる各種のプロトコルを示します。これには、IPv4、IPv6、MPLS、およびユニキャスト/マルチキャスト ルーティングなどのプロトコル サポートが含まれます。

図5 BGPプロトコル拡張機能

BGPグレースフル リスタート プロトコル拡張機能の手順
この項では、RPのスイッチオーバー中に動作するBGPグレースフル リスタートの手順の一例を示します。図5は、BGPプロトコル拡張機能の手順を示しています。ここで、R1は再起動ルータ、R2はピア(受信ルータ)です。目的は、トラフィックのルートを変更して再起動ルータを迂回させるNSF対応ルータのピアを使用せずに、BGPセッションを再開することです。
  1. ルータR1のBGPプロセスが開始され、ルータR2とのピアリング関係が確立されます。ルータR1は「OPEN」メッセージをR2に送信します。OPENメッセージには、「グレースフル リスタート」のCapability(コード64)、IPv4のアドレス ファミリー、およびユニキャストのSAFIが含まれています。R2は「グレースフル リスタート」をサポートしているので、独自の「OPEN」メッセージ(GR=64とAF=IPv4を含む)によって確認応答を送信します。
  2. RPのスイッチオーバーが発生し、ルータR1のBGPプロセスが、新たにアクティブになったRPで再開します。R1はこのRP上にRIBを持っていないため、それをピア ルータから再取得する必要があります。R1は、最後にアップデートされたFIBとCEFテーブルを使用して、ピア ルータ(R2)宛て(または経由)のIPパケット転送を継続します。
  3. 受信ルータ(R2)は、再起動ルータとの間のTCPセッションが消失したことを検出すると、再起動ルータから学習したルートをただちにstaleとマーキングします。R2でstaleとマーキングされるのは、R1から学習したルートだけです。R2にほかにもピアがある場合、そのピアから学習したルートはUPステートのままです。またルータR2では、再起動ルータ用に「リスタート タイマー」が初期化されます。このタイマーのデフォルト設定は120秒です。リスタート タイマーの長さは、受信ルータが再起動ルータからのOPENメッセージを待ち受ける時間です。受信ルータは、指定された「リスタート タイム」内に再起動ルータからOPENメッセージを受信しなければ、staleルートをすべて削除します。R2でR1のOPENメッセージが受信されると、リスタート タイマーはリセットされます。この間に、ルータR1とルータR2は最後にアップデートされたCEFテーブルを使用して、トラフィック転送を継続します。
  4. R1のBGPプロセスが初期化されました。R1は次に、R2とのBGPセッションの再確立を試みます。まず新しいTCPセッションを確立し、次に「OPEN」メッセージを送信します(リスタート ステート ビットの設定は、Restart Time = n、Forwarding State = IPv4)。リスタート タイムはデフォルトでは120秒で、設定可能です。R2はこの「OPEN」メッセージを受信すると、自身のリスタート タイマーをリセットし、「ステイルパス タイマー」を開始します。「ステイルパス タイマー」のデフォルトは360秒で、これも設定可能です。
  5. 両ルータがセッションの再確立に成功します。この時点で、R1の「OPEN」メッセージ内のForwarding StateがIPv4で設定されていないことをR2が認識した場合(通常、Forwarding StateはIPv4で設定されます)、R2はただちに再起動ルータから学習したすべてのstaleルートを削除し、そのルーティング データベースを再計算します。
  6. R2はR1に対してUPDATEメッセージの送信を開始します。このメッセージにはIPプレフィクス情報が含まれており、R1はそれに応じてメッセージを処理します。R1はアップデート遅延タイマーを開始し、全てのNSFピアから「End of RIB(EOR)」を受信するまで、最大120秒待ちます。R1でBGPルート選択プロセスが開始されるのは、すべてのピアからEOR指示を受信したあと(またはBGP アップデート遅延タイマーが切れたあと)です。ルート選択プロセスが完了すると、新しいルーティング情報データベースが利用可能になり、CEFの情報もそれに応じてアップデートされます。
  7. R1がすべてのピアからEORを受信すると、BGPルート選択プロセスが開始されます。
  8. このプロセスが完了すると、R1はR2に対してプレフィクス情報付きUPDATEメッセージの送信を開始します。R1はEOR指示をR2に送信することで、このプロセスを完了します。これにより、次はR2でルート選択プロセスが開始されます。
  9. R2はEORを待つ間、「ステイルパス タイム」の監視も行います。このタイマーが切れると、staleルートはすべて削除され、「通常の」BGPプロセスが有効になります。R2でルート選択プロセスが完了すると、BGPのすべてのstaleエントリが新しい情報でリフレッシュされるか、またはBGPのRIBとFIBから削除されます。これでネットワークのコンバージェンスが完了します。
BGP NSFの展開の例
BGPネットワークの設計と展開には、さまざまなバリエーションがあります。話を簡単にするため、ルータの機能に関してBGP設計を検討します。ネットワーク トポロジー内の配置に応じて、特定のルータが達成すべきことは何でしょうか。BGPネットワーク内のルータには、基本的に次の3つのタイプがあります。
  • AS間ルータは、eBGPとiBGPを組み合わせて実行し、さまざまなAutonomous System(AS;自律システム)を接続します。これには、エンタープライズ カスタマーをサービス プロバイダーのネットワークに接続するエッジ ルータ、サービス プロバイダーのAS同士を接続するインターネット ピアリング ポイント、およびBGP連合のサブASの境界に存在するエッジ ルータなど、多くのバリエーションがあります(RFC 3065を参照)。ただしこれらの各ルータの機能は、Cisco NSFの点では同等です。
  • AS内ルータは、個々のASのディストリビューション レイヤまたはコアに存在します。これらのルータはiBGPのみを実行し、同一AS内のルータとしかやり取りしません。AS外部に関して保持する情報は、すべてAS間ルータによって伝達されます。
  • ルート リフレクタは、BGPルーティング情報の集約ポイントおよび配信ポイントとして機能します。AS内ルータは、ルート リフレクタにBGPルーティング情報をレポートし、ルート リフレクタから情報を受信します。ルート リフレクタによって、すべてのiBGPピアをフルメッシュにする制約がなくなるため、BGPネットワークのスケーラビリティは向上します。ルート リフレクタの最も一般的な展開シナリオは、次の2つです。
    • 中央集中型ルート リフレクタ:BGPネットワークのコアに存在し、AS内にある他のすべてのルータからほぼ等距離です。AS内の各ルータは、このルート リフレクタとのBGPセッションを確立します。多くの場合、この構成では冗長ルート リフレクタが配置されます。
    • 分散型ルート リフレクタ:AS内のルータの一部は管理上グループ化され、ローカルのルート リフレクタが配置されます。各ルータはこのルート リフレクタに対してBGPセッションを確立します。これらのルート リフレクタは次に別の領域で、他のルート リフレクタとBGPセッションを確立するか、またはコアにある他のルート リフレクタおよびAS内ルータとメッシュ接続を確立します。このタイプの構成の一般的な例は、サービス プロバイダーが各POPにローカルのルート リフレクタを配置する場合です。

AS間の例
図6は、複数の異なるASにピアが配置されているeBGPの展開を示しています。この図には、可能な設計がいくつか示されています。ルータR1とルータR2はAS100に属します。ピアリング ポイントには、RR1とRR2の2台のルート リフレクタが配置されています。可能な設計の1つは、接続先のAS(AS200)にある2つの異なるルータに対して、2つのリンクと2つのeBGPセッションを使用するものです。別の設計ではeBGPマルチホップを使用して、単一のルータに対し2つのリンクを使用します(図のAS300との接続を参照)。さらにもう1つの可能性は、AS400との接続のような単一の接続です。AS400は、AS300を経由する別のパスを備えていることに注意してください。

図からは、AS100にピアリングしている一部のルータが、NSF認識ではない場合があるということもわかります。前述のように、NSF/SSOが最大の効果を発揮するのは、ピア ルータがNSF認識ルータである場合です。ただし理解を深めるために、ピアがNSFを認識しない場合のトラフィック フローの動作についても説明します。

注:NSF対応ルータはNSF認識ルータでもあります。

検討のために、R2がスイッチオーバーを実行するケースを取り上げます。

まず、AS100とAS400の間の動作を検討します。AS400はAS100と単一のルータ(R6)経由で接続されていますが、このルータはBGP NSF認識ルータなので、スイッチオーバー中でもR2へのトラフィック転送を継続します。さらにR6は、R2との接続損失をどのピアにも通知しません。またR2の上流のルータも、R2を経由してAS400に向かうパケットの転送を継続します。NSF/SSOは完全に意図したとおり機能します。RPのスイッチオーバー中も転送は継続し、ルーティング プロトコルの混乱もまったく起こりません。

同じことは、AS100とAS200の間のトラフィック フローにも当てはまります。ここでは2つの異なるルータに対して、2つの接続が管理ドメイン間で使用されています。R3とR4は、両方ともBGP NSF認識ルータです。BGPで使用されているTCPセッションがR2上のRPのスイッチオーバーで消失しても、同様に問題なく処理されます。スイッチオーバー中のトラフィックは、BGPが選択した最適パスで継続的に転送されます。

次に、AS300に出入りするトラフィックを検討します。R5はBGP NSF認識ルータではありません。おそらくR5では、BGP NSF認識のサポートを提供した最初のバージョン(Cisco IOSソフトウェア リリース12.0(22)S)よりも前のソフトウェアが実行されています。R2でスイッチオーバーが実行されると、TCP/BGPセッションの障害がR5で検出されます。次にR5は、トラフィックをルーティングして障害を迂回させようとします。その結果AS100宛てのトラフィックは、AS400のR6を経由するルートをとりますが、R2はNSF/SSO対応で設定されているため、R5に対してAS300に向かうトラフィックの転送を継続します。これは、NSF認識ピアとNSF非認識ピアが混在するときに発生する可能性のある、非対称ルーティングの例です。非対称ルーティングは望ましくない状態であり、ある程度のパケット損失が発生することもありますが、それでもR2の再初期化に伴うネットワークの混乱よりは望ましい状態です。

R5がR6に接続されていない場合を考えます。R2は以前にR5から学習したルートをクリアしません。R2は、最後にアップデートされたCEFテーブルを使用して、R5へのIPパケットの転送を継続する必要があります。R5はNSF非認識ルータなので、R2とのBGPセッションを喪失し、BGPセッションを最初から初期化します。R2はAS300宛てのパケット転送をR5経由で継続しますが、そのトラフィックにはリターン パスがありません。R5がR2との間で再コンバージェンスを完了するまでに、パケット損失が発生します。

このルールには例外があります。R5がネクスト ホップとしてR2を指定するデフォルトのスタティック ルートを持ち、またBGPのみを使用していたとすると、そのルートはR5によってアドバタイズされ、R2のBGPテーブルにエントリされます。この場合、R5のそのルートはR2で維持され、またR5に必要なのはデフォルトのルートだけなので、パケット損失は発生しません。

図6 BGPのAS間展開の例

BGPとIGPの関係
このシナリオでは、展開上重要な考慮事項があります。このトポロジーでは、AS100からネクスト ホップに到達できるようにするために、Interior Gateway Protocol(IGP;内部ゲートウェイ プロトコル)(OSPFまたはIS-IS)を運用するのが非常に一般的です。BGPと選択されたIGPプロトコルは相互に依存します。最適パスを計算する際、BGPは特定の宛先プレフィクスをアドバタイズするルータのIPアドレスを認識しています。ただし、そのアドバタイズしているルータに到達するネクスト ホップを決定するには、IGPからの情報が必要です。

BGPグレースフル リスタートではBGPのコンバージェンスのタイミングを変更できるので、BGPで最適パスの選択が実行されるときに、IGPのコンバージェンスが未完了という状態になる可能性があります。したがって、アドバタイズしているルータへのパスがIGPによって計算されていないため、宛先プレフィクスがBGPにいくらか存在しても、CEFテーブルには追加できません。これによりパケット損失が発生することもあるので、BGPグレースフル リスタートに加えて、IS-ISまたはOSPF用のNSFを設定することを強く推奨します。

ルート リフレクタとの相互作用
このトポロジーでは、R1、R2、RR1、RR2、およびコア対面ルータはNSFを認識します。ここでは、ルート リフレクタがコントロール プレーンとして展開され、iBGPのフルメッシュ構成の要件を軽減しています。そのためルート リフレクタは転送パス内にはありませんが、ルート リフレクタ クライアントとして、R1、R2、および他のルート リフレクタとiBGPのピアリング アレンジメントを構成しています。このトポロジーでは、IGP NSF(OSPFまたはIS-ISのいずれか)の実装が想定されています。BGP NSFとルート リフレクタに関しては、次のことを考慮する必要があります。
  • R2はBGPを再開する際、既存のCEFテーブルとFIBに基づいて、コア対面ルータ宛て(または経由)のパケット転送を継続する。
  • その間、R2が保持するピアリング アレンジメントはルート リフレクタとのアレンジメントだけである。コア対面ルータとの直接のピアリングはない。
  • ルート リフレクタはNSFを認識できるので、R2がBGPを再開したことは隠蔽される。ルート リフレクタは、コア対面ルータや他のルート リフレクタ ピアに対して、情報の伝達を停止する。ネットワーク内の他のルータは、R2を経由してトラフィック転送を継続する。

ルート リフレクタが実際にNSF対応で、BGPプロセスを再開する別のバリエーションを検討します。ルート リフレクタがBGPを再開すると、すべてのクライアントはルート リフレクタによって反映されたルーティング情報を維持します。バックアップ ルート リフレクタに切り替えるクライアントはありません。

NSF対応ルート リフレクタを使用するときは、特別に考慮すべき点がいくつかあります。まず考慮することは、ルート リフレクタが持つBGPピアの数とBGPデータの総量が、おそらくAS内の他のルータよりも多くなるということです。このため、スイッチオーバー中の最適パス選択の完了にかかる時間が長くなる場合があります。第2に、ネットワーク設計者は、ネットワークでパケット転送の連続性とルーティングの安定性を確保するという要件と、コンバージェンスの完了までにルーティングが大幅に変化する可能性との間で、折り合いをつける必要があります。RPのスイッチオーバー中、Cisco NSFはBGPのルーティング情報ではなく、CEFテーブルを使用してパケットを転送することに注意してください。

Cisco NSFをルート リフレクタで使用する場合、もう1つ設定の調整が必要になることがあります。再コンバージェンスのプロセスが全体で360秒を超えると予想される場合は、bgp graceful-restart stalepath-time 360コマンドのデフォルト値をルート リフレクタのすべてのピアで調整する必要があります。ステイルパス タイムの値は、コンバージェンス時間の予想値(秒)に30~60秒のバッファ ゾーンを加算した値に等しくなるように調整します。これにより、コンバージェンス時間がネットワークの状態変化に基づいて変動しても対応できます。

BGPグレースフル リスタートをルート リフレクタで使用すべきかどうかの決定は複雑であり、ネットワークの運用に大きく左右されます。ネットワーク設計者は、この決定にあたって重要なファクタを比較検討する必要があります。次の疑問に答えることが必要です。
  • ほかに可用性戦略はないか。バックアップ ルート リフレクタを使用した場合、フェールオーバー時間は許容可能か。
  • 再起動するルート リフレクタで再コンバージェンスが実行され、そのピア ルータが新しい情報に基づいた転送を開始できるようになるまでの時間はどれくらいか。
  • ルート リフレクタの再コンバージェンス中、ほかにBGPルーティングで大幅な変更が発生する可能性はないか。

これらの疑問は、ルート リフレクタでCisco NSF/SSOを使用するかどうかを決定する際に問題となりますが、Cisco NSF/SSOを展開する場所と方法を決定する際に役立つ一般的な疑問でもあります。

特定のネットワーク展開で、別のケースとトポロジーが可能な場合もあります。したがって、NSF/SSOを導入するときは、実際にネットワークでアクティブ化する前に、すべてのケースについてその効果を分析することが重要です。

BGP NSFの設定
設計と展開オプションが決まれば、設定は非常に簡単です。

BGP NSF(グレースフル リスタート)は、ルータのbgpグローバル コンフィギュレーション コマンドを使用して設定します。

Router(config-route)# [no] bgp graceful-restart
Router(config-route)# [no] bgp graceful-restart restart-time n
Router(config-route)# [no] bgp update-delay n
Router(config-route)# [no] bgp graceful-restart stalepath-time n

bgp graceful-restartコマンドは、Cisco NSF対応ルータ、およびグレースフル リスタートに係わるすべてのNSF認識ピアで実行する必要があります。グレースフル リスタートはデフォルトでは無効なので、NSF対応ルータとすべてのピア ルータで正しく設定することが必要です。

bgp graceful-restart restart-time nコマンドは、再起動ルータの障害が検出されたあと、ピアがTCPセッションの再接続と、新しいBGP OPENメッセージを待ち受ける最大時間を指定します。TCPおよびBGPセッションが再確立されないうちにこのタイマーが切れた場合、BGPセッションは障害を起こしたとみなされ、通常のBGP復旧手順が有効になります。再起動時間のデフォルト値は120秒です。

bgp update-delay nコマンドは、Cisco NSF対応ルータで実行できます。このコマンドは、最初のピアが再接続されたあとのタイム インターバルを指定します。再起動ルータはこのインターバル中に、すべてのBGPアップデートとEND OF RECORD(EOR)マーカーを、設定されているすべてのピアから受け取ります。nのデフォルト値は120秒で、常に秒単位で指定します。再起動ルータが多数のピアを持ち、それぞれが多数のアップデートを送信するときは、この値をデフォルト値よりも大きくすることが必要な場合もあります。

bgp graceful-restart stalepath-time nコマンドは、再起動ルータのNSF認識ピアで実行できます。このタイマーは、再起動ルータとのBGPセッションを再確立したあと、ピアが転送にstaleルートを使用できる最大時間を設定します。デフォルト値は360秒です。これはコンバージェンスを完了するには十分な時間ですが、大規模なネットワークでは、この値を大きくすることが必要な場合もあります。

OSPF NSF
BGPの場合と同様に、OSPF NSFの目的は、RPのスイッチオーバー発生時にグレースフル リスタートを実行することです。グレースフル リスタートは、ルーティングへの影響が最小限に抑えられ、パケット転送が中断しない方法で実行する必要があります。

OSPFはリンク ステート ルーティング プロトコルの1つで、同一ルーティング エリア内のすべてのルータが、一貫したルーティング トポロジーのビューを保持するようになります。たとえば、ルーティング トポロジーに変更があった場合は、Link-State Advertisement(LSA;リンク ステート アドバタイズ)がOSPFエリア全体にフラッディングされます。これにより、エリア内のすべてのルータでShortest Path First(SPF)計算が実行され、ルーティング テーブルが更新され、FIBテーブルの再読み込みが行われます。

再コンバージェンス中はネットワークが不安定になり、悪影響が生じることがあります。RPのスイッチオーバーは復旧処理であり、ルーティング トポロジーの変更ではありません。ルーティング トポロジーは以前の状態に復帰させる必要があるからです。再起動ルータがLSAフラッディングとネイバー隣接関係のフラップを引き起こさずにルーティング情報を再学習できれば、ルーティングの不安定化を回避できます。

OSPFルーティング プロトコルでこの目標を達成するには、主に次の2つの課題に対処する必要があります。
  • スイッチオーバー発生時にネイバー隣接関係を維持し、不要なLSAフラッディングを回避する。
  • 新たにアクティブになったRPのLink State Database(LSDB;リンク ステート データベース)を、隣接ネイバーと再び同期させる。

ネイバー隣接関係の維持
OSPFがデュアルRPを備えたNSFルータで有効になっている場合、ルーティング プロセスはアクティブRPでのみ実行されます。スタンバイRPには、OSPF関連のルーティング情報、LSDB、およびネイバー データ構造は保持されていません。スイッチオーバーが発生すると、ネイバー関係は再確立する必要があります。

OSPF Helloプロトコルを使用することで、ネイバー関係の確立と維持、およびネイバー間の双方向通信の確認ができます。ルータが受信するネイバーのHelloパケット内にそのルータがリストされていれば、双方向通信が成立していることがわかります。

スイッチオーバーが発生すると、再起動ルータはHelloパケットを送信することによって、ネイバー隣接関係の再確立を試みます。新たにアクティブになったRPにはネイバーの状態情報が存在しないため、このHelloパケットのネイバー リストには、ネイバー情報がまったく含まれません。そのあとプロトコルに変更がなければ、このHelloパケットを受信するネイバーは双方向チェックに失敗し、再起動ルータとの既存のネイバー隣接関係をリセットします。近接ルータは同時に、隣接関係の変更を反映するためにアップデートLSAをフラッディングするので、ルーティングの混乱が引き起こされます。

シスコは、プロトコル機能拡張をOSPFに導入することによって、この問題を解決しました。シスコの実装は、IETFの3つのドラフトで提案されている方式に準拠しています(「関連する規格とドラフト」を参照)。ネイバー隣接関係のフラップを防止するため、シスコのOSPF NSFの実装では、Helloプロトコルに新しいビットとしてRestart Signalを導入しています。HelloパケットにRestart Signalビットが設定されることにより、そのルータでRPのスイッチオーバーが実行されていることがわかります。ネイバーはこのHelloパケットを受信すると、OSPF NSF手順に従って、双方向接続チェックを無視します。

Restart Signalビットは、HelloパケットのLink Local Signaling(LLS)データ ブロックにあるExtended Options Type Length Value(EO-TLV)に格納されています。LLSデータ ブロックがHelloパケットに存在することは、IETFのドラフトで導入されたLビットによって示されます。LビットはOSPFのOptionsフィールドに設定されます。ビットの値は0x10です。

NSFの実行中、Restart Signalビットが設定されたHelloパケットは2秒間隔で送信されます。これは、スイッチオーバー後のコンバージェンス時間を短縮するためです。このRestart Signalビットが設定された2秒間隔のHelloパケットは、「Fast Hello」と呼ばれています。Restart Signalビットは、ネイバー隣接関係が復旧するとクリアされます。

LSDBの再同期化
OSPF NSFではOSPFの状態情報がスタンバイRPに保持されないため、新たにアクティブになったRPは、LSDBをネイバーと同期化する必要があります。

OSPFプロトコルは現在RFC 2328で定義されており、次の2つの方法でLSDBを同期化できます。
  • ネイバー隣接関係の確立中にLSDBを初期化する
  • ネイバー隣接関係の確立後、およびトポロジーの変更発生時に、フラッディング メカニズムを利用してLSDBを同期化する

これらの方法は、RPのスイッチオーバーの場合はいずれも実行不可能です。第1の方法が不可能なのは、LSAフラッディング回避のためには、RPのスイッチオーバー中もネイバー隣接関係を維持する必要があるからです。第2の同期方法は、変更のみが再同期化される差分式のため不十分です。この差分式のLSDB同期化では、FIB内のルートをすべて検証することができません。スイッチオーバー後はすべてのルートを検証し、トポロジー全体の完全性を維持することが不可欠です。

Cisco OSPF NSFでは、Out of Band(OOB) LSDB再同期化を使用することによって、この問題に対処しています。OOB再同期化メカニズムはIETFのドラフトで定義されており、ネイバー隣接関係が確立されたあとにLSDBを完全に再同期化できます。

このOOB再同期化機能を通知するため、新しいビットであるLSDB Resynchronization(LR)ビットが定義されています。LRビットはLLSデータ ブロック内のEO-TLVに設定されます。このデータ ブロックは、すべてのHelloパケットとDatabase Description(DBD)パケットに含まれています。

LRビットに加えて、DBDパケットには新たにRビットも導入されています。Rビットは、OOB再同期化手順がアクティブになっていることを示すために使用されます。このRビットは、DBDパケットのOptionsフィールドのフラグに設定されます。

LRビットを導入すると、OSPF NSFルータは、OSPFネイバーがNSF手順をサポートできるかどうかを識別できます。OSPFの動作中にLRビットの設定されたHelloパケットをネイバーから受信すると、そのネイバーがNSF認識で、NSF手順を実行できることがわかります。Rビットを導入すると、ルータは通常のLSDB同期化またはOOB再同期化のどちらが実行されているかを識別できます。

OOB再同期化メカニズムを使用したLSDB同期化プロセスは、すべての隣接ネイバー間で実行されるわけではありません。それはRFC 2328で定義されている従来のLSDB同期化と同じ方法により、ルータ間で実行されます。たとえばブロードキャスト ネットワークでは、再起動ルータがDesignated Router(DR;指定ルータ)またはBackup DR(BDR;バックアップ指定ルータ)でない場合は、指定ルータとの間でのみOOB再同期化が行われます。再起動ルータがNSF認識ネイバーとポイントツーポイントで接続されている場合は、そのネイバーとOOB再同期化が行われます。

注:NSF非認識ルータが検出されると、OSPF NSF対応ルータはセグメントでのNSF処理を無効にします。デフォルトでは、他のセグメントでNSF処理が継続されます。(OSPF)nsf [enforce global] CLI(コマンドライン インターフェイス)オプションが設定された場合、NSF処理はすべてのセグメントで終了します。また、共通セグメント上の2台のルータが同時にNSFの実行を試みた場合、NSF処理は両方のルータで終了します。

OSPF NSFプロトコル拡張機能の手順
図7は、R1再起動の直後に、デュアルRPのNSF対応ルータとNSF認識ルータとの間でOSPF NSFが実行される手順を示しています。
  1. 再起動ルータ(R1)は、FIB内のルートを「stale」とマーキングします。また、NSFリスタート タイマーを開始します。このタイマーは、DR/BDR選択とOOB再同期化のトリガーとなります。
  2. R1は、RSビットの設定されたFast Helloパケットをマルチキャストし、OSPF NSF手順が開始されたことを通知します。LRビットも設定されます。ネイバー情報はスイッチオーバー後まで維持されないため、このHelloパケットのネイバー リストは空白です。NSF対応ネイバーとNSF認識ネイバーでは、NSFプロセスのステータスに関係なく、Helloパケットに必ずLRビットが設定されることに注意してください。
  3. R2はRSビットの設定されたHelloパケットをR1から受信し、R1でNSF再起動手順が実行されていることを認識します。そのため双方向チェックは無視されます。一方R1では、ネイバーのFinite State Machine(FSM;有限状態マシン)がFullステートで維持されます。Resync-Timeoutというタイマーがこの時点で開始されます。このタイマーによって、RSビットの設定されたHelloパケットが最初に受信されてからOOB再同期化が開始されるまでの遅延が制限されます。
注: OOB再同期化タイマーは、dead-intervalタイマーかデフォルトの40秒のいずれか大きい方の値に設定されます。たとえば、dead-intervalタイマーが40秒未満の値に設定されている場合、OOB再同期化タイマーは40秒のままです。逆に、dead-intervalタイマーが(個々のネットワーク構成に固有の何らかの理由で)40秒を超える値に引き上げられると、OOB再同期化タイマーも同じ値に設定されます。これは自動的に行われるため、ルータに特別な設定は不要です。OOB再同期化タイマーは、CLIコマンドip ospf resync-timeout secondsによって明示的に設定できます。このコマンドは、必要に応じて再起動ルータのNSF認識ピアで有効にできます。コマンドの有効化はインターフェイスごとに行います。詳細については、CSCdz80936を参照してください。
  1. R2はユニキャストHelloパケットをR1に返信します。R2は通常のHelloタイマーを待たずに、ただちにHelloパケットに応答します。注:R2からのHelloパケットには、RSビットは設定されません。
  2. R1はR2からFast Helloを受信すると、ネイバー隣接関係のステートを2-wayに移行させますが、NSF側からはステートはFullとみなされます。
  3. R1はNSFリスタート タイマーが切れるまで待ちます。これはHelloインターバルの設定値(デフォルトは20秒)の2倍です。このタイマーが切れると、DR/BDR選択とOOB LSDB再同期化が開始されます。NSF非認識ルータがセグメントに存在する可能性があるため、この「待ち時間」によってリスタート ルータがすべてのネイバーの状態を学習できるようになっています。また、RSビットはクリアされます。DR/BDR選択のあと、R1はネイバー隣接関係のステートをEXSTARTに移行させます。
注:(OSPF)nsf [enforce global] CLIオプションが設定されている場合は、HelloパケットがLRビットなしでピアから受信されると、ただちにOSPF NSFが無効になり、DR/BDR選択が進行します。
  1. R1はR2に対して、Rビットの設定されたDBDパケットの送信を開始します。
  2. R2は、Rビットの設定されたDBDパケットをR1から受信すると、ネイバーFSMをEXSTARTに移行させ、LSDB同期化を開始します。R2は再同期化タイマーをキャンセルします。
  3. R1とR2は、RFC 2328に記述されている通常のLSDB同期化と同じ方法で、LSDB同期化を実行します。R1はLSDB同期化プロセス中に自動作成されたLSAを受信しても、すぐにそのLSAを削除することはせず、それを保存し、「stale」とマーキングします。
  4. OOB再同期化がこの段階で完了します。R1でルータLSAとネットワークLSAの作成が開始されます。R1がそのLSAをネイバーに送信するのは、以前にネイバーから学習したものと異なる場合だけです。同じものであれば、R1はそのLSAの「stale」ステータスをクリアするだけです。またこの段階で、R1はRIBとFIBのアップデートも開始します。
注: ここでは内部的なRIBコンバージェンス信号の受信が想定されているため、R1はLSAフラッシュ タイマーを開始します。RIBのコンバージェンスは、OSPFでコンバージェンスが行われる場合だけでなく、すべてのNSFルーティング プロトコルに基づいています(NSF再起動を行うプロトコルがOSPFだけではない場合)。これによって、他のプロトコルがOSPFに再配信されることで自動作成される外部のLSAが、すぐに削除されることを防止します。
  1. R1でLSAフラッシュ タイマーが切れたことが検出されます(LSAフラッシュ タイマーのデフォルト値は60秒)。データベースに残っている「stale」フラグの設定されたLSAがすべて削除されます。
  2. OSPF NSFが完了します。
図7 OSPF NSFの手順


OSPF NSFの展開
OSPF NSFは、次の場所に展開することを推奨します。
  • シングルポイント オブ フェイラーとなるルータ。
  • RPのスイッチオーバーが発生した場合に、ネットワーク不安定化の原因となるルータ。
  • OSPF NSF対応ルータのネイバー。OSPF NSF手順には再起動ルータとそのネイバーの両方が関与するので、これらのネイバーはNSFを認識できる必要がある。これは必須ではないが、NSF/SSOで最大の効果を得るためには必要。

NSF非認識ネイバーが存在してもNSFの利点を活用することはある程度可能なので、NSFは漸次的に展開できます。再起動ルータは、セグメント内のネイバーがNSFを認識できないことを検出すると、デフォルトでは、そのセグメントのNSF手順を終了させるだけです。ほかのセグメントのNSF手順は継続されます。

混在環境では、RPのスイッチオーバー中、およびNSF手順が完了するまでに、非対称ルーティングが発生することがあります。ルーティングはNSF手順が完了すると対称になります。

以下は、NSFが動作しているときのトラフィック フローについての説明です。トラフィック フローを次の3つの段階で図示します。
  1. RPのスイッチオーバー開始前
  2. RPのスイッチオーバー発生時、およびNSF実行中
  3. NSFプロセスの完了後

理解しやすいように、OSPF NSF再起動ルータとして1台のエッジ ルータに焦点を合わせ、そのネイバー ルータの1つがNSF非認識ルータであるとします。

OSPF NSF非認識ネイバーが存在するときのトラフィック フロー
図8では、R8がNSF再起動ルータです。そのネイバーのうち4台(R1、R4、R5、R7)はNSF認識ルータです。R2はNSF非認識ルータです。この設計は、NSF非認識ルータが存在するときのトラフィック フローの結果を示すという目的に合わせ、意図的に構成したものです。またリンクはすべて等コストで、「enforce global」コンフィギュレーションオプションは無効になっているものとします。「enforce global」オプションが設定されていると、NSF非認識ネイバーが検出された場合に、ネットワークの全セグメントですべてのOSPF NSF手順が強制的に終了されます。

図8 NSF非認識ネイバーが存在する場合のOSPF NSFの例

サブネットAからサブネットBへのトラフィック フロー
  • R8のRPのスイッチオーバー開始前:
    • R8はトラフィック フローをR1、R2、R4、およびR5にロードバランシングします。次に、そのトラフィック フローはR3とR6へ送られ、さらにサブネットBへと送られます。これを図示したものが図9です。
  • R8のRPのスイッチオーバー発生時、およびNSF実行中:
    • R8はR1、R2、R4、R5に対してトラフィック転送を継続します(図9)。
  • 注: R2はNSF認識ルータではありませんが転送先に含まれます。これは、ネイバーがNSFを認識できるかどうかにかかわらず、再起動ルータのライン カード上のFIBがスイッチオーバー中は変化しないためです。
  • R8のスイッチオーバー完了後:
    • トラフィック フローはスイッチオーバー前と同様に、図9に示されているパスと同じパスで伝送されます。

図9 スイッチオーバー前のサブネットAからサブネットBへのトラフィック フロー

図10 スイッチオーバー前のサブネットBからサブネットAへのトラフィック フロー

サブネットBからサブネットAへのトラフィック フロー
  • R8のRPのスイッチオーバー開始前:
    • サブネットBからのトラフィックは、R3とR6の両方へ送られるものとします。R3は、サブネットA宛てのトラフィックを、R1とR2にロードバランシングします。同様に、R6はサブネットA宛ての受信トラフィックをR4とR5にロードバランシングします。スイッチオーバー前のトラフィック フローは図10に示されています。
  • R8のRPのスイッチオーバー発生時、およびNSF実行中:
    • トラフィックはR6にのみ伝送され、さらにR4とR5にロードバランシングされます(図11)。
    • フローはR1とR2のパスには流れません。これは、R2がNSFを認識しないためです。そのためR8は、R1をR2に接続しているセグメントでNSF手順を終了させます。
    • これによって、 R8とR1およびR2の間のOSPF隣接関係にフラップが発生します。R1とR2は、トポロジーをアップデートするためにLSAをR3にフラッディングします。その結果、R8を経由するルートがR1、R2、およびR3で削除され、R6に既知のパスだけが残ります。
    • ここで、サブネットBからのトラフィックはR6へ向かうものとします。サブネットBからサブネットAに向かうトラフィックは、図11に示すように、ネットワークの右側だけを流れます。
  • R8のスイッチオーバー完了後:
    • トラフィック フローは、図9図10に示された(スイッチオーバー前と同じ)もとのパスに戻ります。

図11 R2がNSFを認識しないためにR1とR2を迂回するトラフィック

NSFプロセス中にトポロジー変更が発生した場合のトラフィック フロー
NSF手順の進行中にトポロジー変更が発生することはほとんどありません。発生した場合も、NSFプロセスは継続します。この項では、NSF手順の進行中にトポロジー変更が発生した場合のトラフィックへの影響について説明します。ここまでに図示したものと同じネットワーク トポロジーを例として使用しますが、ここではR2はNSF認識ルータとします。

図12は、R8でスイッチオーバーが発生したために、NSF手順が進行しているときのトラフィック フローを示しています。

図12 スイッチオーバー前とスイッチオーバー中のトラフィック フロー

ここではR6のリンクが障害を起こしたために、トポロジー変更が発生するものとします。この場合はR6でLSAが作成され、OSPFエリアにフラッディングされます。

LSAを受信したR4とR5は、R6を経由するサブネットBへのパスが存在しなくなったことを認識します。R4とR5はパスを再計算し、サブネットBにはR8経由で到達できると判断します。そのため、R8がサブネットBに到達するためのネクスト ホップとして選定されます。これによって、一時的にルーティング ループが発生します(図13)。

このルーティング ループの発生は短時間です。NSF手順はまだ進行中であり、OOB再同期化手順がR8とR4、またはR5の間で完了すると、R8はR6を経由するサブネットBへのパスが利用できなくなったことを認識するので、ルーティング ループは解消します。

注: ルーティング ループは、NSFプロセス中にトポロジー変更があると必ず発生するわけではありません。ネットワーク トポロジー、変更のタイプ(スタブ ネットワークのフラップではルーティング ループは発生しません)、および変更のタイミングに左右されます。

NSF手順が有効なときにトポロジー変更が発生した場合のもう1つの例は、NSFを終了させることです。NSFプロセスをトポロジー変更中に終了させると、Cisco NSFのメリットは完全になくなります。NSFがトポロジー変更中に終了された場合、4つのフローはいずれもサブネットBに到達しません。トラフィックの消失です。NSF/SSOが実装されていなくても、ネットワークの再コンバージェンスが完了するまでは、RPのスイッチオーバーによってトラフィック損失が発生するのが一般的です。あらゆる面を考えると、こうした結果を招くよりもNSF/SSOがもたらすメリットの方が大きくなります。

図13 NSF手順中にルーティング変更によって生じる一時的なループ

OSPF NSFの設定
OSPFでNSFの動作を設定するには、ルータのOSPFコンフィギュレーション モードでnsfコマンドを使用します。

router(config)# router ospf 100
router(config-router)# nsf

注: ルータをNSF認識ルータに設定する必要はありません。ルータで、NSF手順をサポートできるCisco IOSソフトウェア リリースが実行されていれば、設定なしでNSFを認識します。

OSPF NSF非認識ルータが検出された場合に、オプションでルータ全体のOSPF NSFプロセスを終了させるには、「enforce global」キーワードを設定します。

router(config)# router ospf 1
router(config-router)# nsf enforce global

IS-IS NSF
IS-IS NSFの目的は、RPのスイッチオーバーが発生したときにグレースフル リスタートを実行することです。グレースフル リスタートは、ルーティングへの影響が最小限に抑えられ、パケット転送が中断しない方法で実行する必要があります。

IS-ISはOSPFと同様、リンク ステート ルーティング プロトコルの1つです。したがって、同じルーティング エリア内のルータは、すべて一貫したルーティング トポロジーのビューを保持する必要があります。たとえば、ルーティング トポロジーに変更があった場合は、Link State Protocol(LSP)データ ユニットがIS-ISエリア全体にフラッディングします。その結果、エリア内のすべてのルータでSPFアルゴリズムが実行され、RIBが更新され、FIBの再読み込みが行われます。

ネットワークが再コンバージェンス中に不安定になり、パケットの配信に悪影響を与えることもあります。RPのスイッチオーバーは復旧処理と捉えることはできますが、ルーティング トポロジーの変更とは捉えられません。ルーティング トポロジーはスイッチオーバー後、以前の状態に復帰します。再起動ルータが、LSPフラッディングとネイバー隣接関係のフラップを引き起こさずにルーティング情報を再学習または維持できれば、ルーティングの不安定化は回避できます。

OSPFの場合と同様、IS-ISルーティング プロトコルでこの目標を達成するには、主に次の2つの課題に対処する必要があります。
  • スイッチオーバー発生時にネイバー隣接関係を維持し、不要なLSPフラッディングを回避する。
  • 新たにアクティブになったRPのLSDBを、隣接ネイバーと再び同期させる。

この問題に対処するには、2つのソリューションがあります。1つはシスコ固有のステートフル ルーティング ソリューションで、もう1つはOSPFとBGPで使用される前述の方法によく似ています。Cisco IOSソフトウェア固有のソリューションでは、チェックポイント機能を使用して、スタンバイRPのIS-IS隣接関係とデータベースの状態をバックアップします。2つめのソリューションはIETFの成果に基づき、IS-IS Hello PDU内の新しいTLVを使用します。したがって2つめの方法では、支援ネイバーが機能する必要があります。

シスコのステートフル ソリューション
シスコのステートフル ルーティング ソリューションを使用すると、隣接関係とLSP情報がすべてスタンバイRPに保存(チェックポイント化)されます。スイッチオーバー後、新たにアクティブになったRPはチェックポイント化されたデータを使用して隣接関係を維持するので、ルーティング テーブルを迅速に再構築できます。

このシスコ固有のソリューションは、前述の2つの問題(隣接関係の再取得とLSDBの再同期化)に革新的かつ独特な方法で対処します。

隣接関係の維持
IS-ISプロトコルでは、隣接関係はHelloメッセージの定期的な伝送によって維持されます。Intermediate System(IS)で隣接関係のホールディング タイム中にHelloを受信できないと、その隣接関係は廃棄されます。適切な状態情報がHelloに含まれていない場合(Helloに受信ISの[ポイントツーポイント リンクの]システムIDまたは[LANセグメントの]MACアドレスがリストされていない場合)も、隣接関係は再初期化されます。したがってNSFメカニズムでは、タイムアウトのためにネイバーで隣接関係が廃棄されないように、すばやく再起動を行う必要があります。さらに、NSFプロセスでは適切な情報がHelloに含まれ、ネイバーで再起動が認識されることを防止できるように、状態を維持する必要があります。

シスコのソリューションは、適切な状態情報をチェックポイント化し、再起動後にそれを使用することでこれらの課題を克服し、ネイバーで隣接関係が廃棄されることを防止します。メカニズムは、ポイントツーポイントとLANの両方の隣接関係に対応して設計されています。

LSPデータベースの同期化
データベースの同期化は、再初期化プロセスのもう1つの部分です。IS-ISプロトコルでは、LSDBを近接ルータと同期化するメカニズムを利用できます。通常の状況ではリブートによって、隣接関係の再初期化とそれに続くLSPデータベースの同期化が引き起こされます。隣接関係の再初期化はシスコのIS-ISステートフル ソリューションによって抑制されるので、トポロジー変更を起こさずにルータのLSPデータベースを同期化するために、特定のメカニズムが使用されます。

この場合もメカニズムは、ポイントツーポイントとLANの両方のインターフェイスに対応するように開発されています。

IETFソリューション
IETFソリューションが定義するメカニズムでは、ルータが再起動してネイバーでダウン ステートを繰り返さずに隣接関係を再確立できることを、再起動ルータからネイバーに通知します。一方、データベース同期化が正しく開始されることも通知します。前述のシスコのステートフルIS-ISルーティング ソリューションと異なり、IETFソリューションはステートレスです。このソリューションでは、LSPデータベースの内容と隣接関係の情報はチェックポイント化されません。

IETFソリューションでは、再起動ルータの再起動を隠蔽しません。再起動ルータは再起動したことを明示し、LSPデータベースの内容をネイバーから取得できるようにします。ネイバーはこれを認識し、再起動ルータと連携します。

隣接関係の再取得
隣接関係の再取得は、再初期化の最初のステップです。再起動ルータは、隣接関係が再取得されるので、ネイバーでは隣接関係再初期化の必要がないことをネイバーに対して明示的に通知します。これは、新しい「再起動」オプション(TLV)をHello PDUに含めることで実現されます。このTLVの存在によって送信者が新しい再起動機能をサポートしていることがわかります。またこのTLVには、再起動中の情報伝達に使用するフラグが付いています。この機能をサポートしているルータから送信されるHelloメッセージには、このTLVが含まれます。このTLVには、2つのフラグが含まれています。「Restart Request」を示すRRと「Restart Acknowledgement」を伝達するRA、そして「Remaining Time」で、これは許容できる復旧時間を再起動ルータに通知します。

再起動ルータの近接ルータは、「再起動」TLVにRRビットが設定されたHelloメッセージを受信すると、再起動ルータとの隣接関係を「Up」ステートのまま維持し、この再起動への確認応答としてRAビットを設定したHelloメッセージを送信します。

複数のレベル
ルータは、特定のインターフェイスでレベル1とレベル2の両方として動作している場合、上記の動作をレベルごとに実行します。
  • LANインターフェイス:ルータはレベル1とレベル2の両方のHelloを送受信し、Complete Sequence Number PDU(CSNP)同期化をレベルごとに実行します。
  • ポイントツーポイント インターフェイス:Helloメッセージは(両レベルのサポートを示すものが)1つだけ必要です。ただしCSNP同期化はレベルごとに実行されます。

LSPデータベースの同期化
ルータは再起動すると、ネイバーごとに保持されているLSP状態を反映したCSNPをそれぞれのインターフェイスで受信できます。CSNPが正しく受信されるまでは、RRビットの設定された「再起動」Helloが再送信されて、CSNPの着信を保証します。このLSPがすべて受信されると、同期化が完了します。

LSPの作成とフラッディング
隣接関係がすべて再初期化されると、ルータでは利用可能な隣接関係情報がすべて再取得されたものとみなされ、IS-ISで独自のLSPを作成できるようになります。ローカライズされた再起動を実現するためには、再起動前のルータの状態を反映する十分な情報が取得されるまで、このルータのLSPを作成および伝達しないことが重要です。また、このローカルLSPの再作成フェーズより前に、ローカル ルータのLSPの古くなったコピーが受信されることもあります。

通常の場合、作成を終えているルータから受信されたLSPのコピーは削除する必要があります。ただし再起動ルータの場合は、作成される必要のない新しいLSPが受信されることもあります(レベル1のSPFが実行されて、レベル2に伝達の必要のあるプレフィクスが検出された場合)。「余計な」LSPを削除すると、他のすべてのルータに影響が及び、そのFIBは混乱します。NSF認識ルータでは、プロトコルとIS-ISレベル間の再分配がすべて実行されるまで、この「余計な」LSPは無視されます。「余計な」LSPは、同期化ポイントに達してから削除されます。

同様に、レベル間情報の再分配は、このルータのLSPが他のノードにフラッディングする前に再開されます。レベル1またはレベル2のLSPの送信は、他のレベルのSPFが実行され、伝播する必要のあるレベル間情報がこのLSPに含まれていることが確認できるまで延期されます。

注:SPF計算の「最初の反復」中に情報がRIBに追加されなくても、FIBにエントリが保持されているため、これらの宛先へのトラフィックは廃棄されません。IS-IS以外のルーティング プロトコル情報の再分配は、最後のNSF IS-IS LSPの作成前に、RIBでアップデートされる適切なルーティング情報に依存することがあります。

SPF計算
LSPデータベースが再同期化されると、リンク ステート データベースは最新になります。SPF計算が実行され、再初期化されたすべての情報がRIBとFIBに伝播されます。このプロセスでリフレッシュされなかったルートはすべて古くなっているので、ブラック ホールとルーティング ループを抑制するためのホールド タイム経過後に削除されます。

IS-IS NSFプロトコル拡張機能の手順
この項では、IETFの実装に対応したIS-IS NSFについて説明します。

シスコのIS-IS NSFのIETF実装
次のシーケンスは、IETFの実装に準拠してIS-IS手順を記述したものです。図14を参照してください。
  1. R1が再起動します。
  2. R1はHelloメッセージを送信します。このメッセージには、RRビットが設定され、RAビットがクリアされたTLV 211が含まれており、R1が再起動したことが示されます。
  3. R2はR1のHelloメッセージを受信します。
  4. R2はIS-IS NSFを認識できるので、RRビットがクリアされ、RAビットが設定されたTLV 211を含むHelloメッセージで応答します。これによって、前にR1から受信したHelloをR2が確認したことが示されます。
  5. R1はR2からHelloメッセージを受信します。
  6. インターフェイスがポイントツーポイント インターフェイスである場合、またはR2が(R1を除いて)、IS-IS Hello(IIH)に再起動TLVを含むルータの中で(送信元MACアドレスに基づくプライオリティも含めて)最高のルータ プライオリティを持っている場合、R2はCSNPの完全セットを送信します。このCSNPと上記の4で送信されたHelloメッセージの両方が受信されると、隣接関係タイマーはキャンセルされます。隣接関係タイマーが切れた場合は、R1はRRビットの設定されたHelloメッセージを再送信します。

図14 IETFの実装対応のIS-IS NSF手順

IS-IS NSF非認識ピアとの手順例
下の説明は、IETF IS-IS NSF機能が有効、ただしピアはNSF非認識ルータである場合です。図15のダイヤグラムを参照してください。
  1. R1が再起動します。
  2. R1はHelloメッセージを送信します。このメッセージには、RRビットが設定され、RAビットがクリアされたTLV 211が含まれており、R1が再起動したことが示されます。
  3. R2はR1からHelloメッセージを受信します。
  4. R2はNSFを認識できないため、TLV 211なしのHelloメッセージで応答します。隣接関係は廃棄されます。
  5. R1はTLV 211なしのHelloメッセージを受信します。
  6. R2との隣接関係を再初期化します。R1は、TLV 211のRRおよびRAビットをクリアしてHelloメッセージを送信します。目的は、必ずしも隣接関係を再初期化することではなく(R2では再初期化済みであるため)、「通常の」隣接関係取得プロセスを実行することです。

注:NSF非認識ルータが検出されると、IETF IS-IS NSF対応ルータは、他のすべてのセグメントでNSF処理を無効にします。

図15 IS-IS NSF非認識ピアとのIETF IS-IS NSF手順

IS-IS NSFの展開
IS-IS NSFの展開で推奨される対象ポイントは次の2つです。
  • シングルポイント オブ フェイラーとなるルータ
  • RPのスイッチオーバー発生時に、望ましくないネットワークの不安定化を引き起こすルータ

Cisco IS-IS NSFは、近接ルータのNSF機能にかかわらず、同レベルの効果で機能する利点を備えています。IETFバージョンを展開する場合は、IS-IS NSF手順に再起動ルータとそのネイバーの両方が関与するため、IS-IS NSF対応ルータのネイバーはNSF認識ルータである必要があります。

タイマー調整に関する考慮事項
隣接関係を廃棄する標準的なタイムアウト時間は、ポイントツーポイント リンクでは30秒、LANでは10秒です。この時間内にHelloの伝送が再開できれば、ネイバーはその隣接関係を廃棄しません。したがって、Helloのホールド タイムは、隣接関係が時間切れになる前にプロセスを再開できるだけの十分な長さに設定する必要があります。

「スムーズに」再起動するという目標は、リンク(およびその後のトポロジー)の変更にすばやく反応するという目標と矛盾することになりますが、ホールド タイムの設定値を長くするだけでは、スムーズな再起動は保証できません。Helloタイマーが変動すると、Helloとホールド タイムの時間切れはホールド インターバル全体に均一に分散します。これはどの瞬間にも、多数の隣接関係が時間切れ寸前になっていることを意味します。時間切れ寸前の隣接関係がすべて失われないようにするには、Helloの乗数を1より大きくするのが唯一妥当な方法です。これは一般的に行われていることですが、NSFでは絶対要件です。Helloの乗数を2または3にすると、(少なくともHelloが失われていない隣接関係では、)再起動プロセスで復旧のためのHelloインターバルは最大になります。インターフェイスの数が多いときは、NSFルータのIS-IS再起動時間を決定する必要があります。

IS-IS NSFの設定
IS-ISでNSF動作を設定するには、ルータのIS-ISコンフィギュレーション モードでnsfコマンドを使用します。デフォルトではNSF再起動はオフですが、ルータにはデフォルトでIETF TLVが含まれています。動作モード(シスコまたはIETF)はこの段階で選択されます。

router(config)# router isis
router(config-router)# nsf [cisco/ietf]
次のコマンドは、2つの再起動間のインターバルを(0~1440分の範囲で)指定します。ルータのアクティブおよびスタンバイRPがこの時間より長く稼働していないと、IS-IS NSFはキャンセルされます。デフォルト値は5分です。

router(config)# router isis
router(config-router)# nsf interval 600
次のコマンドは、IS-IS隣接関係を持つインターフェイスが再起動完了前にすべて動作状態になるように、NSF再起動の待ち時間を(1~60秒の範囲で)設定します。デフォルト値は10秒です。

router(config)# router isis
router(config-router)# nsf interface wait 20
次のIETFモード専用コマンドは、overloadビットの設定された独自のLSPが作成されてフラッディングされる前に、LSPデータベースが同期化されるのをNSFが待つ時間を(秒単位で)設定します。

router(config)# router isis
router(config-router)# nsf t3 manual 60
「adjacency」キーワードを使用すると、この上記のt3時間は、スイッチオーバー前にネイバーにアドバタイズされる隣接関係のホールド タイムから決定されます。

router(config)# router isis
router(config-router)# nsf t3 adjacency

EIGRP NSF
Enhanced Interior Gateway Routing Protocol(EIGRP)は、さまざまなトポロジーとメディアに適したIGPです。EIGRPは拡張ディスタンス ベクタ ルーティング プロトコルで、Diffused Update Algorithm(DUAL)に基づいて、ネットワーク内の宛先への最短パスを計算します。設計の優れたネットワークでは、EIGRPのスケーラビリティが発揮されるので、きわめて高速のコンバージェンスが実現され、またオーバーヘッド トラフィックは最小限に抑えられます。これまでに説明した各種のルーティング プロトコルと同じく、EIGRPルーティング プロトコルとNSFが相互作用する目的は、RPのスイッチオーバーが発生したときに、ルーティングへの影響が最小限に抑えられ、パケット転送が混乱しないような形で、グレースフル リスタートを実行することです。

ネイバー隣接関係の維持
他のプロトコルと同様、NSFを実現するには、スイッチオーバー中に再起動ルータのピアが再起動ルータへのパケット転送を継続する必要があります。したがって、ピアでネイバー隣接関係がリセットされないようにすることが必要です。

ネイバーによる隣接関係のリセットを防止するため、再起動ルータは新しいRestart(RS)ビットをEIGRPパケットのヘッダーに設定し、再起動を示すことで、スイッチオーバー中でもサービス提供ができることをピアに通知します。EIGRP NSFを設定すると、HelloパケットとNSF再起動期間中に送信される最初のINITアップデート パケットに、RSビットが設定されます。RSビットをHelloパケットに設定することによって、再起動ルータはスイッチオーバーを迅速にネイバーに通知できます。またこれによってNSF認識ピアは、通常の隣接関係検出と起動の方法を使用するのではなく、NSF拡張機能に従う必要があることを認識します。

NSF非認識ネイバーは新しいRSビットを無視します。このネイバーはINITアップデート パケットを受信するか、またはホールド タイマーが切れると、隣接関係をリセットします。

HelloパケットまたはINITパケットによって再起動の通知を受信すると、ネイバーは再起動ピアをピア リストに書き込み、再起動ルータとの隣接関係を維持します。近接ルータは、再起動ルータに関する状態変更を自身のネイバーにはまったく伝達しません。代わりに、再起動ルータを経由するルートをstaleとマーキングし、再起動ルータへのパケット転送を継続します。これによって、ルータの障害に伴うネットワーク パフォーマンスへの悪影響を回避できます。

EIGRP NSFプロトコル拡張機能の手順
図16は、NSF対応ルータでスイッチオーバーが実行されているときの、NSF対応EIGRPルータとNSF認識EIGRPピア間のプロトコル交換を示しています。

隣接関係が最初に形成されるとき、RSビットは使用されません。そのため、ピアがEIGRP NSF手順をサポートできるかどうかを、CLIコマンドから事前に判断することは不可能です。EIGRP NSFに対する各ルータのサポートを判別するには、それらのルータにアクセスするか、またはCisco IOSソフトウェアのバージョンを確認する必要があります。
  1. スイッチオーバーが発生し、スタンバイRPがアクティブになると、EIGRPはRSビットの設定されたHelloを生成します。これによって再起動が実行されたことがピアに通知されます。
  2. ここではピアはEIGRP NSF認識ルータなので、RSビットを認識し、再起動ルータに関してそのフォワーディング ステートを維持します。つまりこのピアは、隣接関係をリセットせず、何ごともなかったかのように再起動ルータを経由したパケット転送を継続します。
  3. 再起動ルータがまだピアを再検出していない場合、NSF認識ルータがINITパケットの前にHelloパケットを受信することがあります。再起動ルータのピア再検出プロセスを早めるため、NSF認識ルータはただちにより短いHelloタイム インターバルでHelloパケットを返信します。

  4. 次にNSF認識ネイバーは、最初のアップデート パケットにRSビットを設定して、そのトポロジー テーブルを再起動ルータに送信します。これによって、そのネイバーがNSFを認識でき、再起動ルータを支援できることを通知します。NSF認識ネイバーではスイッチオーバーまたは再起動が実行されなかったため、HelloパケットにRSビットは設定されません。

  5. 注: ルータはNSFを認識できても再起動手順は実行しません。この状態は、再起動ネイバーがリロードされ、コールド スタートから稼働状態になるときに発生します。

    図16 EIGRP NSFの手順

  6. 再起動ルータとピアはルーティング アップデートを交換し、NSF対応ルータはデータベースを再構築します。再起動ルータは、トポロジー テーブル アップデートでEnd of Table(EOT)マーカーを受信すると、プロセスが完了したことを認識します。NSF認識ルータはそれぞれが最後のアップデート パケットでEnd of Tableマーカーを送信し、テーブル内容の終了を示す必要があります。
  7. End of Tableマーカー方式に加えて、EIGRPではタイマー(NSFコンバージ タイマー)が使用され、すべてのEnd of Tableマーカーを受信するまでの最大待ち時間が設定されます。

  8. 再起動ルータは、EOTマーカーをすべてのピアから受信すると、ただちに通常どおりアップデートを送信し、RIBを伝達します。再起動ルータでネイバーからのEOTマーカーがすべて受信されるか、またはNSFコンバージ タイマーが切れると、EIGRPによってDiffusing Update Algorithm(DUAL)計算が実行され、ループのない最適ルートがトポロジー データベースの宛先ごとに選択されます。さらにRIBにコンバージェンスが通知されます。
  9. その後、RIBはすべてのプロトコルからコンバージェンス信号を受信すると、EIGRPに対してRIBのコンバージェンスを通知します。RIBのコンバージェンスが完了すると、再起動ルータは再起動に係わったNSF認識ピアにEOTアップデートを送信します。RIBのコンバージェンスの通知後、再起動ルータによって送信されるこのEOTアップデートには、パケット ヘッダー内にEOTフラグのみが含まれ、トポロジー情報は含まれません。
  10. NSF認識ピアは、EOTマーカーを再起動ルータから受信すると、再起動ネイバーのコンバージェンスが完了した時間を認識します。次に、ピアはトポロジー テーブルを走査し、再起動ネイバーが送信元となっているルートを検索します。ピアはルートのタイムスタンプを再起動イベントのタイムスタンプと比較し、ルートがまだ利用できるかどうかを判別します。さらにピアはアクティブになり、再起動ルータを経由するルートで利用できなくなったものについて、代替パスを検出します。

この時点でNSF拡張機能はすべて完了し、通常のEIGRP処理が継続します。

EIGRP NSFの展開
再起動ルータがNSFを正しく実行するには、ピア ルータでEIGRP NSF機能を備えたCisco IOSソフトウェア バージョンが動作していることも必要です。ピア ルータでEIGRP NSF機能を持たないCisco IOSソフトウェア バージョンが動作している場合、スイッチオーバーの結果は隣接関係がリセットされるのと変わりません。これは非NSF EIGRPルータが、再起動ルータからINITアップデート パケットを受信すると隣接関係をリセットするためです。

このEIGRP NSFの設計では、2つの近接ルータでスイッチオーバーまたはNSF再起動が同時に実行されるケースはサポートしていません。両方のルータが同時に再起動した場合は、HelloパケットまたはINITアップデート パケット内のRSビットによって、一方に他方の再起動が通知されます。両方のルータでNSF以外の通常の再起動が実行され、それらのピア関係はNSF以外の方法で再確立されます。

EIGRP NSFでは、次のことを認識する3つの新しいタイマーが追加されています。

  • シグナル タイマー - 各EIGRPプロセスは、スイッチオーバー イベントを通知されるとシグナル タイマーを開始します。RSビットの設定されたHelloがこの時間内に送信されます。
  • コンバージ タイマー - コンバージ タイマーは、シグナル タイマーの時間内に未受信のスタートアップ アップデートがあった場合、最後のEOTアップデートを待ち受けるために使用します。EIGRPプロセスでネイバーが検出されない場合、またはシグナル タイマーの時間内にすべてのスタートアップ アップデートをネイバーから受信した場合、コンバージ タイマーは開始されません。
  • ルートホールド タイマー - NSF認識ピアは、再起動ルータからのEOTを待ち受けるためにルートホールド タイマーを開始します。このタイマーが時間切れになると、ピアは待ち状態を解除してトポロジー テーブルの走査を開始し、さらに再起動ルータによってアップデートされていないルートでアクティブになります。再起動時間が長すぎる場合は、ピアでの代替パスの検出を早めてトラフィックの消失を回避できるように、ルートホールド タイマーを調整(短縮)します。

EIGRP NSFの設定
EIGRP NSFはデフォルトでは無効です。NSFは、次のコマンドで有効または無効にします。

router eigrp <AS-number>
[no] nsf
タイマーは、次のコマンドで指定できます。

router eigrp <AS-number>
[no] timers nsf signal <seconds>
[no] timers nsf converge <seconds>
[no] timers nsf route-hold <seconds>

MPLSネットワークの高可用性
Cisco IOSソフトウェア リリース12.2(25)Sでは、MPLS環境に対応したHAが導入されています。MPLS High Availability(MPLS-HA)のサポートの主な対象は、MPLSネットワークへのアクセスを提供するService Provider Edge(PE;プロバイダー エッジ)デバイスです。これらのデバイスは、MPLSコアに基づかない純粋なIPネットワークのエッジ ルータと同様に、MPLS VPNサービスのお客様にとってシングルポイント オブ フェイラーとなることがよくあります。

この文書の作成時点では、MPLS-HA機能のサポートはCisco 7500シリーズ ルータでのみリリースされています。他の製品についても順次サポートされる予定です。Cisco 7500シリーズ製品のMPLS-HAでは、MPLSレイヤ3 VPN用のNSF/SSO、およびLabel Distribution Protocol(LDP)NSF(グレースフル リスタート)のサポートが可能となっています。これまでに説明した他のプロトコルと同様、LDPの実装では、隣接ピア ルータでのLDPグレースフル リスタート(NSF認識)が必要になります。LDP GR認識は、Cisco IOSソフトウェア リリース12.0(29)S以上が稼働するCisco 12000シリーズ製品で利用できます。

MPLSの完全サポートを提供していないCisco IOSソフトウェアが稼働しているネットワークでは、RPのスイッチオーバー中にMPLSトラフィックのパケット損失が発生します。ただしこの場合でも、SSOに維持されるリンク レイヤの状態によってすばやく回復できるため、NSF/SSOを有効にすることには、ある程度の利点があります。試験の測定結果によると、多くのリンク タイプでは、MPLSインターフェイスを備えたルータでスイッチオーバーが発生した場合のトラフィック損失は、そのルータでRPR+のスイッチオーバーが実行された場合とほぼ同じです。ただし一部のリンク タイプでは、トラフィックの損失は減少します。転送を継続するにはLDPプロセスでラベルの完全な再起動と学習が必要ですが、再起動の速度はNSF/SSOを有効にすることで向上します。

MPLS-HAがCisco 12000シリーズやその他の製品で利用可能になると、MPLSレイヤ3 VPN、さらにMPLSレイヤ2 VPNで同じようにパケット損失をゼロにすることが可能になります。

MPLS-HA機能
現在Cisco IOSソフトウェア リリース12.2(25)では、次のMPLS機能でRPスイッチオーバー後のデータ転送が継続できます。
  • MPLS Virtual Private Network(VPN;仮想私設網):これにより、ルータはBGP NSFグレースフル リスタート メカニズムを利用して、VPNプレフィクス情報を失わずにサービスの混乱から回復できます。現在BGPグレースフル リスタートではVPNv4 VRFがサポートされているため、BGPグレースフル リスタートを実行するルータは、再起動が発生してもVPNプレフィクス情報を維持できます。
  • MPLS LDP:MPLS LDPでは、SSOおよびNSF(グレースフル リスタート)を利用することで、RPがMPLSフォワーディング ステートを失うことなくコントロール プレーン サービスのLDPコンポーネントの混乱から回復できます。LDPグレースフル リスタートは、直接接続されていないピア(ターゲット セッション)だけでなく、直接接続されているピア間のLDPセッションでも機能します。
  • Any Transport over MPLS(AToM):AToMでは、SSO、NSF、およびグレースフル リスタートを利用することで、RPがMPLSフォワーディング ステートを失うことなくコントロール プレーン サービスのLDPコンポーネントの混乱から回復できるようになります。
  • また、IETFバージョン8アップグレードによるMPLS VPN MIB、MPLS LDP MIBのSSOサポートも備えられています。
MPLS-HA共存機能
この文書の作成時点では、次のMPLS機能はHA用に有効になっていません。そのためスイッチオーバー後の状態情報は維持されませんが、NSF/SSOおよびMPLS-HAとは共存します。
  • MPLSトラフィック処理
  • MPLS QoSアプリケーション
  • IPv6 over MPLS
  • MPLS Label Switching Router(LSR;ラベル スイッチング ルータ)MIB
  • MPLS TE MIB
  • インターフェイスMIBへのMPLS機能拡張

詳細については、この文書の最後にある「参考文献」を参照してください。

MPLS-HAの前提条件
MPLS-HAは、これまでに動作を説明したNSF/SSOの基本機能を基にしています。前提条件は次のようにまとめられます。
  • BGP NSFメカニズムを有効にする必要があります。BGPグレースフル リスタートによって、ルータはNSFモードでVPNv4プレフィクスのMPLS転送エントリを作成できます。転送エントリは再起動中も維持されます。またBGPは、プレフィクスおよび対応するラベル情報を保存し、再起動後その情報を回復します。
  • コア ネットワークのLDPに対するNSFサポート
  • コアで使用されるIGP(OSPFまたはIS-IS)に対するNSFサポート
  • PEおよびCustomer Edge(CE;カスタマー エッジ)ルータ間のルーティング プロトコルに対するNSFサポート

MPLS-HAの動作
BGPは、プレフィクスにローカル ラベルを割り当てると、そのローカル ラベル バインディングをバックアップRPでチェックポイント化します。チェックポイント機能は、状態情報をアクティブRPからバックアップRPにコピーします。これによって、バックアップRPは最新情報とまったく同じコピーを保持するようになります。アクティブRPに障害が発生しても、サービスを中断することなくバックアップRPに切り替えることができます。チェックポイント化は、アクティブRPがすべてのローカル ラベル バインディングを、バックアップRPにコピーするバルク同期化を行うときに開始されます。その後アクティブRPは、ラベルの割り当てまたは解放のときに、個々のプレフィクス ラベル バインディングをダイナミックにチェックポイント化します。これによって、BGPの再コンバージェンス前でもラベル付きパケットの転送を続けることができます。

BGPグレースフル リスタート機能を持つルータが接続を失うと、再起動ルータは次のように動作します。
  1. ルータは他のルータとBGPセッションを確立し、同じようにグレースフル リスタート機能を持つ他のルータからBGPルートを再学習します。再起動ルータは近接ルータからアップデートを受信するのを待ちます。近接ルータがEnd of RIBマーカーを送信してアップデートの送信完了を通知すると、再起動ルータは自身のアップデートの送信を開始します。
  2. 再起動ルータはチェックポイント データベースにアクセスして、各プレフィクスに割り当てられたラベルを検出します。ラベルが検出されると、再起動ルータはそれを近接ルータにアドバタイズします。ラベルが検出されない場合は、新しいラベルを割り当て、それをアドバタイズします。
  3. 再起動ルータはstaleエントリのタイマーが切れてから、staleプレフィクスをすべて削除します。
BGPグレースフル リスタート機能を持つピア ルータは、再起動ルータを検出すると、次の動作を行います。
  1. ピア ルータはすべてのルーティング アップデートを再起動ルータに送信します。アップデートの送信が完了すると、ピア ルータはEnd of RIBマーカーを再起動ルータに送信します。
  2. ピア ルータは再起動ルータから学習したBGPルートを、すぐにはBGPルーティング テーブルから削除しません。ピア ルータは再起動ルータからプレフィクスを学習していき、新しいプレフィクスとラベル情報が古い情報と一致すれば、staleルートをリフレッシュします。

VPN NSF用に設定されていないルータが、VPN NSFを備えたルータとのBGPセッションの確立を試みた場合、2台のルータは通常のBGPセッションを確立しますが、VPN NSFは実行できません。

LDPグレースフル リスタート(NSF)
LDP NSF(LDPグレースフル リスタート[GR])は、RPのスイッチオーバーが片方のLSRで発生するなどして2台のLSR間のLDP通信がいったん失われ、その後復旧する場合に、それらのLSRでLDPとフォワーディング ステートを保護するために使用できるメカニズムです。LDP GRによって、中断されたLDP通信が障害から復旧するまでの間も、以前に学習したラベルを使用するトラフィックでノンストップのMPLS転送が可能になります。

この実装によって、LDPコンポーネント(コントロール プレーン)の再起動やネイバーとのLDP通信の一時的な中断から保護されます。LDPコンポーネントの再起動(LDP再起動)が発生すると、すべてのLDPネイバーとのLDP通信が中断し、それらのネイバーから学習したLDP状態が失われます。LDPコンポーネントは再起動せず、ネイバーとの通信が失われただけ(LDPセッション リセット)の場合は、そのネイバーから学習したLDP状態は、関連するフォワーディング ステートも含めて維持されます。

LDP GRは、この文書で説明している他のNSFプロトコルと同様に動作します。LDP GRでは、LDP通信の障害から回復するために、LSRが次のように動作することが必要です。
  • LDP通信の障害が検出されると、関連するフォワーディング ステートをstaleとマーキングし、維持する。
  • stale状態を使用して転送を継続する。
  • LDP通信が再確立されると、staleのフォワーディング ステートを復旧し、リフレッシュする。
  • staleのフォワーディング ステートが、要求される時間内に「リフレッシュ」されない場合は、それを削除する。
LDP GRプロトコル拡張機能
LDPを使用してラベル マッピング情報を交換する2台のLSRは、LDPピアと呼ばれています。LDPピアの1つがLDP GR対応で、ピアが少なくともLDP GRを認識できる場合は、MPLS-HAが可能です。LDPは、ラベル スイッチング パスを経由してピア間に「LDPセッション」を確立することで機能します。単一のLDPセッションによって、各ピアは他のピアのラベル マッピングを学習できます。

図17は、2台のLSR間のLDP GRメッセージ フローを示しています。

LDPでは、Helloメッセージが交換され、LDPメッセージを伝送するためにTCPセッションが確立されると規定しています。

1 & 2. LSRは、LDP初期化メッセージの中にオプション パラメータとしてFault Tolerant(FT) Session TLVを含めることによって、LDPグレースフル リスタートのサポートが可能であることを示します。L(Learn from Network)フラグは、LDP GR手順が使用されることを示します。オプションのFT Session TLVは、下位互換性を確保できるように定義されています。TLVの「Uビット」が設定されると、受信側はLDP GRをサポートしていない場合にTLVを自動的に削除します。その場合、LDPセッションは確立しますが、GRは実行されません。

LDP GR関連で、FT Session TLVに存在するタイマー フィールドは次の2つです。
  • 再接続タイムアウト:TLVの送信側が受信側に要求する、LDP通信障害検出後の待ち時間(ミリ秒)です。待ち状態の間、受信側では、送信側と受信側との間のリンクを通過する(確立済み)LSPのMPLSフォワーディング ステートが維持されます。FT再接続タイムアウトは、TLVの送信側のコントロール プレーンが再起動できるように、十分長くする必要があります。特にそのLDPコンポーネントが、送信側でネイバーとLDPメッセージを交換できるような状態になることが必要です。このタイマーのデフォルト値は120秒です。
FT再接続タイムアウトを0に設定すると、TLVの送信側では再起動の前後にそのフォワーディング ステートは維持されませんが、RFC 3478の3.3項「Restart of LDP communication with a neighbor LSR」で定義されている手順はサポートすることが示されます。
  • 復旧時間:再起動するLSRでの復旧時間とは、再起動の前後に維持していたMPLSフォワーディング ステートを、LSRが維持しようとする時間(ミリ秒)です。これは、LSRがFT Session TLVを含む初期化メッセージを再起動後に送信する瞬間から始まります。

図17 LDPグレースフル リスタート拡張機能

この時間を0にすると、再起動の前後にMPLSフォワーディング ステートは維持されていないことが示されます。

  1. 再起動の前にラベル情報が交換されます。
  2. RPのハードウェアまたはソフトウェア障害によってスイッチオーバーが発生すると、ルータの再起動するLDPコンポーネントは、ピアに対して新しいTCPセッションを確立します。LDP GR対応ルータは、MPLSフォワーディング ステート ホールディング タイマー(forwarding-holding)という内部タイマーを開始し、MPLSフォワーディング ステートのエントリをすべて「stale」とマーキングします。ルータはLDP再起動モードになります。このforwarding-holdingタイマーのデフォルト値は600秒です。
  3. LDP GR認識ピアであるR2は、障害が検出されて再起動すると、livenessタイマーというタイマーを初期化します。このタイマーは、ピアのLSRがstaleのラベル/FECバインディングを維持する時間を示します。このタイマーは、再起動ルータによって以前にアドバタイズされたFT再接続タイムアウト、およびNeighbor Livenessタイマーというローカル タイマーよりも小さな値に設定されます。
  4. この時間内にLSRがネイバーとのLDPセッションを確立しなければ、staleバインディングはすべて削除されます。

  5. 再起動LSRは、FT Session TLVで送信される復旧時間を、MPLSフォワーディング ステート ホールディング タイマーの現在の値に設定します。このタイマーは、フォワーディング ステートがその後維持される時間を示します。
  6. LDPセッションが確立します。再接続タイマーが切れる前にネイバーとのLDPセッションが再確立した場合は、再接続タイマーが停止し、復旧タイマーが開始します。
  7. LSRはアドレス プレフィクスとラベル メッセージを交換します。
  8. ピア ルータが再アドバタイズしていないstaleの送信ラベル バインディングを削除するために、LDPコンポーネントはもう1つのタイマー(max-recovery)を使用します。このタイマーは初期化メッセージが送信されると開始します。デフォルト値は120秒です。このタイマーが切れると、LDPはstaleとマーキングされ、タイマーの時間切れに関連する再起動ネイバーから学習したLIB内の送信ラベル バインディングを、すべて削除します。ラベル バインディングが削除されると、関連するフォワーディング ステートはすべて削除されます。
ピア側の処理
LDPピアは、既存のLDPセッションの障害によって、進行中のLDPの復旧を認識します。LDPセッションの障害は、次の場合に検出されると考えられます。
  • セッションの最後のHello隣接関係が失われる。
  • セッションのキープアライブ タイマーが期限切れになる。
  • 接続が失われたことがTCPレイヤから通知される。
  • ShutdownまたはNotificationメッセージの受信によって通常のクローズが起動される。

LDP GR認識ルータはLDPセッション リセット モードになります。LDP GR認識ルータは、再起動ルータとのLDPセッションを再確立する時間を設定するためにタイマーを開始します。ルータがLDPセッションの再確立を待ち受ける時間は、ピアからFT TLVで受信される再接続時間、またはneighbor-livenessタイマーの値よりも短くなります。タイマーが切れる前にLDPセッションが確立された場合、ルータはそのネイバーと関連するstaleラベル バインディングを削除します。neighbor-livenessタイマーのデフォルト値は120秒です。

再起動手順中は既存のラベル バインディングが使用されます。送信ラベル バインディングは、LDPセッションの再確立後、再起動ルータによってアドバタイズされます。LDPがアドバタイズされたプレフィクスのバインディングを保持している場合は、新しいバインディングが既存のLDP手順を使用して学習されます。ラベル バインディングが保持されている場合、LDPは新しいバインディングが学習されたときに、保持されているバインディングの「stale」マークを消去します。同じラベルがアドバタイズされた場合は、動作は必要ありません。新しいラベルがアドバタイズされると、LDPはそのイベントを処理するために既存の手順を使用して、ラベル バインディングをアップデートする必要があります。

MPLS-HAの設定
MPLS-HAのサポートを有効にするには、まずルータをSSOモードにする必要があります。次に、LDPグレースフル リスタートを有効にすることが必要です。NSFで最大の効果が得られるように、IGPプロトコルとPE-CEプロトコルも有効にする必要があります。次に、LDPの具体的な設定について説明します。

LDPグレースフル リスタートの設定
LDP GRは、次のグローバル コマンドによって有効化します。

Router(config)# mpls ldp graceful-restart
LDP GRタイマーの値は、関連する次のコマンドで指定します。

Router(config)# mpls ldp graceful-restart timers <timer> <value>
このコマンドでは、次のタイマーを指定できます。
  • forwarding-holding:コントロール プレーンの再起動後に、MPLSフォワーディング ステートを維持する時間を指定します。
  • neighbor-liveness:ルータがLDPセッションの再確立を待ち受ける時間を指定します。
  • max-recovery:LDPセッションの再確立後に、ルータがstaleのラベル/FECバインディングを保持する時間を指定します。

LDPグレースフル リスタートの状態は、次のコマンドを使用して決定できます。

Router# show mpls ldp graceful-restart
LDP Graceful Restart is enabled
Neighbor Liveness Timer: 5 seconds
Max Recovery Time: 200 seconds
Down Neighbor Database (0 records):
Graceful Restart-enabled Sessions:
VRF default:
Peer LDP Ident: 18.18.18.18:0, State: estab
Peer LDP Ident: 17.17.17.17:0, State: estab

NSF/SSOのソフトウェアとハードウェアのサポート

Cisco NSF/SSOのサポートは、Cisco IOSソフトウェア12.0(22)Sで初めて登場しました。その後、他のリリースにも拡張され、Cisco 7500シリーズ ルータ用のCisco IOSソフトウェア リリース12.2(25)SではMPLS-HAのサポートが導入されました。 NSF/SSOは現在、幅広いシスコ製品、RP、およびライン カード ハードウェアで利用できます。またNSF認識も、さまざまなシスコ製品ファミリーの複数のリリースで一般的な機能となっています。

ハードウェアの制限
ルータにはSSOをサポートするために、互換性のあるRPとライン カードが搭載されている必要があります。さらに、次のタイプのRPを混在させるときは注意が必要です。
  • Cisco 12000シリーズ ルータ:GRPおよびGRP-B RPを併せて使用できます。このルータでPRPを使用する場合は、もう1つPRPを用意してペアにする必要があります。
  • Cisco 10000シリーズ インターネット ルータ:2つのPRE-1またはPRE-2を使用する必要があります。このルータのもとのPREは、Cisco NSF/SSOをサポートしていません。MPLS-HAは、Cisco IOSソフトウェア リリース12.2SでPRE-2用にサポートされます。
  • Cisco 7500:RSP-2とRSP-4を組み合わせて使用できます。また、RSP-8とRSP-16も組み合わせて使用できます。ただし、RSP-8またはRSP-16をRSP-2またはRSP-4と混在させることはできません。
  • Cisco Catalyst 6500シリーズおよびCisco 7600シリーズでは、Supervisor Engine 2とSupervisor Engine 720がサポートされています。同種のスーパーバイザを使用する必要があります。
  • RPハードウェアの物理的特性が異なる場合、一部の製品では警告が表示されることもあります(メモリ容量が異なる場合など)。その相違が許容されるものである場合、システムはSSOモードに入ります。ネットワーク設計者は、スイッチオーバー発生時に物理的特性の相違がパフォーマンスに影響を与えないことを確認する必要があります。

さまざまなライン カードでCisco NSF/SSOがサポートされています。パフォーマンスを最適化するには、ルータ シャーシ内のすべてのカードでCisco SSOがサポートされている必要があります。各プラットフォームで現在サポートされているライン カードの一覧については、シスコの最新マニュアルで確認してください。Cisco SSOでサポートされていない特定のライン カードの場合、そのライン カードはRPR+モードで動作します。RPのスイッチオーバー時には、カード上の分散転送情報が消去されます。これにより、スイッチオーバーが発生した場合、そのカードを経由して到達できる宛先へのトラフィックに損失が発生します。他のライン カードは、スイッチオーバー中も転送を継続します。

各種ライン カードまたはモジュール組み合わせのサポートに関する詳細は、CCO上の該当するマニュアルを参照するか、シスコの担当者にお問い合わせください。

NSF/SSOの実装手順

この項では、NSF/SSOの展開時に踏むべき実際の実装手順について概説します。

ピアの組み合わせの検討
実装前の最初のステップはネットワークを再検討し、手持ちのさまざまなピアの組み合わせを分析することです。シスコ製品だけで構成されたネットワークを利用しているお客様は、展開が最も簡単です。マルチベンダー環境を利用しているお客様は、グレースフル リスタート規格とプロトコル拡張機能のサポート レベルを確認する必要があります。いずれの場合も、HA認識のサポートでは、さまざまな組み合わせを利用できます。

次に、実装の戦略を考えます。推奨する方法は、コアから実施することです。上位層のコア対面ルータを、必要なNSF認識をサポートするCisco IOSソフトウェアのレベルまでアップグレードします。さらにサイトごと、または特定のロケーションで作業を行い、NSF/SSOをエッジ デバイスに実装します。

ルート リフレクタを使用する場合は、このルータがBGP NSFを認識するようにします。これが完了すると、ネットワーク エッジ境界でNSF/SSOの有効化を開始できます。

OSPF NSF認識はデフォルトでオンですが、BGP NSF認識は設定の必要があります。またピアをリセットして、BGP NSFがその特定のピアについて有効になるようにする必要があります。OSPF NSFが有効で、BGP NSFが無効の状態は望ましくないので、実装の観点では避ける必要があります。

サービス プロバイダーでの展開例
設定の準備
サービス プロバイダーのPOPまたはサイト内でNSF/SSOを展開するための最初の準備ステップは、サイト内のすべてのルータの機能別一覧を作成することです。たとえば、カスタマー アクセス ルータ、アグリゲーション レイヤ ルータ、ルート リフレクタ、コア ルータなどです。

NSF/SSOの展開で予想される適切なレベルのソフトウェアが、すべてのルータで実行されていることを再確認します。

ピアリングの設定をルータごとに再確認し、実際の設定が実行されるときにすべてのOSPFまたはIS-ISおよびBGPピアが含まれるようにします。

特定のネットワークで実行されるステップを簡単にまとめると、次のようになります(この例では、IGPをOSPFとし、ルート リフレクタを使用すると仮定しています)。
  1. ルート リフレクタでBGP NSFを設定し、それらがNSFを認識するようにします。
  2. コア対面ルータのOSPF NSF機能を再確認します。
  3. アグリゲーション ルータでOSPF NSFとBGP NSFを設定します(RRのピアのリセットは、この時点、またはアクセス ルータの設定後に行うことができます)。
  4. カスタマー アクセス ルータ(エッジ ルータ)でOSPF NSFとBGP NSFを設定します。
  5. BGPピアをリセットし、すべてのNSF対応ピアが機能のネゴシエーションを行うようにします。
  6. すべてのデュアルRPルータをSSO用に設定します。
  7. カスタマーのNSF機能を再確認します。BGPがSPエッジとカスタマー ネットワークの間で使用され、コードがNSFをサポートしている場合は、カスタマー ルータでBGP NSFを設定し、BGPセッションをリセットします。

以下に、NSF/SSOを実装する詳細なコンフィギュレーション コマンドを例示します。

段階的な実装手順
この項では展開の例、およびNSF/SSOの実装に使用する一連のCLIコンフィギュレーション コマンドを示します。

Cisco 7500シリーズ ルータとCisco 12000シリーズ ルータについては、特記すべき運用上の注意事項がいくつかあります。

Cisco 7500シリーズ ルータ運用上の注意事項
SSOスイッチオーバーが発生すると、新しいスレーブ(以前のアクティブ)は、ブート シーケンスを開始する前に5分間だけROMMONにとどまります。これは設計に従った動作です。Cisco 7500上のスレーブは、(Cisco 12000と異なり)マスターの支援がなければブートできません。マスターはRPを部分的にブートするためにサブセット イメージをバスで提供します。この5分間は、サブセット イメージをスレーブにロードするという、プロセッサに大きな負荷がかかるタスクからの影響を最小限に抑えながら、新たにアクティブになったRPが通常の復旧動作を行えるように設計されています。

スレーブがオンラインになると、トラフィックはスレーブがバスに再接続するときにもう一度中断します。このトラフィックの中断は、スイッチオーバーが発生した際の最初のトラフィック損失以下になります。

Cisco 12000シリーズ ルータ運用上の注意事項
スイッチオーバーが発生すると、新しいスレーブ(以前のアクティブ)はただちにブート プロセスを開始します。プロセッサは個別にブートできるため、アクティブ プロセッサの負荷が下がるまで待つ必要はありません。

スレーブがオンラインになるときにトラフィック損失は発生しません。

設定
設定の最初のステップは、最上位レベルのすべてのルート リフレクタで、NSF認識のためにBGPグレースフル リスタートを有効にすることです。IGPもNSFを認識できる必要があります。OSPF認識はデフォルトでオンなので、設定の必要はありません。ルート リフレクタでBGPグレースフル リスタート設定の動作を行っても、トラフィックへの影響はまったくありません。次のコマンドを使用します。

Router(config)#router bgp <as number>
Router(config-router)#bgp graceful-restart
次に、このサイトのアグリゲーション レイヤ ルータでOSPF NSFを有効にします(関連するCisco IOSソフトウェア ベースのデバイスが存在する場合)。

Router(config)#router ospf <process id>
Router(config-router)#nsf
同じコマンドを使用して、サイト内のすべてのカスタマー アクセス レイヤ ルータまたはエッジ ルータで、BGPおよびOSPFグレースフル リスタートを有効にします。

Router(config)#router ospf <process id>
Router(config-router)#nsf
Router(config)#router bgp <as number>
Router(config-router)#bgp graceful-restart

この時点で、ルータは「望ましくない」設定状態の1つになります。OSPF NSFは稼働していますが、BGPピアがリセットされていないため、BGP NSFは未稼働です。NSF/SSOの設定手順ではこうした状態は回避できないので、次のステップをすみやかに実行し、SSO/NSFを完全に稼働状態にします。

次に、BGPピアをリセットする必要があります。通常サービス プロバイダーのPOPの設計では、冗長アグリゲーション ルータが配置されます。この場合、clear ip bgp* を一方のアグリゲーション レイヤ ルータで実行してピアが再確立するのを待ち、次にもう一方のアグリゲーション レイヤ ルータでclear ip bgp* を実行するのが最も簡単です。これによって、設定した最初のサイトのBGP RRピアがすべてキャッチされます。そのあと他のサイトを設定していくときは、clear ip bgp* を使用してリセット済みサイトのBGP RRピアを再度リセットする必要はありません。BGPピアをそれぞれ任意にリセットすることは可能ですが、すべてのBGPピアがグレースフル リスタート機能を備えるようにすることが重要です。

次に、デュアル プロセッサを備えたアグリゲーション レイヤ ルータとアクセス レイヤ ルータを、すべてRedundancy Mode SSOで設定します。

Cisco 7500シリーズ ルータでは、ハードウェア モジュール コマンドを設定することが必要です。

router#conf t
router(config)#hardware-module slot 6 image disk0:<image-name>
router(config)#hardware-module slot 7 image disk0:<image-name>

注: スロットは、ルータがCisco 7507とCisco 7513のどちらであるかによって異なります。

両タイプのルータに、次のコマンドを使用してSSOを設定します。

router#conf t
router(config)#redundancy
router(config-red)#mode sso

SSOを設定すると、スレーブは自動的にリセットされます。Cisco 12000シリーズ ルータのリセット中、トラフィック損失は発生しません。Cisco 7500シリーズ ルータでは、スレーブをリセットすると、スレーブがオンラインに復帰するときに短時間だけトラフィック損失が発生します。

最後に、NSF/SSOの設定を各ルータで確認する必要があります。

OSPFでは、次のコマンドでNSFが有効になっていることを確認します。

router>sh ip ospf | inc Non-Stop
Non-Stop Forwarding enabled

BGPでは、各ピアを次の行で確認する必要があります。

Graceful Restart Capability: advertised and received
機能はアドバタイズされ、かつ受信される必要があります。受信されない場合は、ピアの相手側でBGPグレースフル リスタートが設定されていないか、またはそのピアがリセットされていないかのいずれかです。

最後にsh redundancyコマンドで、ルータがSSOモードで動作していることを確認します。

router>sh red
Redundant System Information:
------------------------------
Available system uptime = 12 minutes
Switchovers system experienced = 0
Standby failures = 0
Last switchover reason = none
Hardware Mode = Duplex
Configured Redundancy Mode = sso
Operating Redundancy Mode = sso
Maintenance Mode = Disabled
Communications = Up

まとめと利点

ここ数年の間に、ネットワークの可用性は、サービス プロバイダーと企業の双方にとってますます重要な問題となってきました。シスコは、Cisco IOSソフトウェアのHAインフラストラクチャとCisco NSF/SSO、およびグレースフル リスタート用のさまざまなルーティング プロトコル拡張機能など、高可用性ネットワーキングに向けた包括的戦略を実践しています。ユーザとベンダーがこうした拡張機能による展開の経験を蓄積するにしたがって、プロトコルそのものとネットワークの展開方法に、さらに改良が加えられます。

シスコはSSOを、Cisco IOSソフトウェアのインフラストラクチャ機能として実装しています。Cisco SSOは、実際にはレイヤ2接続の維持以上の機能を提供しており、すべてのサポート プラットフォームとインフラストラクチャの状態の管理も行っています。レイヤ2接続の維持は、Cisco SSOの提供サービスの中で最も目につきやすいものであるにすぎません。

まとめとして、シスコはお客様のニーズに対応する革新的機能を提供し続けます。シスコのHA戦略は単純です。つまり、ダウンタイムの原因となるあらゆる可能性に対処し、MTBFを拡大してMTTRを短縮するための特徴、機能、ベスト プラクティス設計の推奨事項、および運用手順を提供することです。Cisco NSF/SSOは現在、既存のハードウェアに展開することが可能です。Cisco NSF/SSOは、ネットワーク ルーティング プロトコルの再コンバージェンス、およびそれに伴うトラフィック バーストとCPU負荷を最小限に抑えます。また、ネットワーク利用の計画性を強化し、信頼性に対するユーザの認知度も向上させます。

関連する規格とドラフト

RPのスイッチオーバー発生時に転送を継続させるメカニズムは、完全には規格化されていません。関連する文書を以下に挙げます。

シスコのBGPの実装は、draft-ietf-idr-restart-nn.txtに記されている仕様に準拠しています。この文書の作成時点での最新バージョンはdraft-ietf-idr-restart-10で、これは規格案です。

シスコのOSPFの実装は、次のIETFのドラフトに記されている仕様に準拠しています。
  • draft-nguyen-ospf-lls-04 2004-01-07 IESGで処理中 ― 検索画面DRAFT TRACKERから参照してください。
  • draft-nguyen-ospf-oob-resync-04 2004-01-07 IESGで処理中 ― 検索画面DRAFT TRACKERから参照してください。
  • draft-nguyen-ospf-restart-04 2004-01-07 IESGで処理中 ― 検索画面DRAFT TRACKERから参照してください。

OSPF Hitless Restartの現在の標準は、RFC 3623 『Graceful OSPF Restart』です。現在(この文書の作成時)シスコの実装は、RFC 3623と相互運用できません。

IS-IS(IETFオプション)のCisco NSFの実装は、RFC 3847『Restart Signaling for Intermediate System to Intermediate System(IS-IS)』に記されている仕様に準拠しています。シスコ固有のステートフル実装もサポートされており、設定が可能です。

シスコのLDPの実装は、RFC 3478『Graceful Restart Mechanism for Label Distribution Protocol』に記されている仕様に準拠しています。

用語集

Autonomous System(AS;自律システム) 技術的には、共通の管理制御を受けているルータのグループ。実用上は、BGPコンフィギュレーションで一般的に設定されたAS番号を共有するルータのグループ
Cisco Express Forwarding(CEF) FIBをさらに最適化したもので、非常に高速のIPパケット交換が可能。Distributed CEF(dCEF)は、ライン カード上で動作するCEFの一種
コンバージェンス ネットワーク上のすべてのルータで、ピア ルータからのルーティング情報の受信と処理がすべて完了すること
eBGP 異なるASに属するルータ間のBGPピアリング接続
Forwarding Information Base(FIB;フォワーディング情報ベース) RIBを検査して特定の宛先IPアドレスに対して唯一の最適パスを選択することで形成される、最適化されたルーティング テーブル。ロード シェアリングまたはロード バランシングが有効の場合は、複数の最適パスが選択されることもある
iBGP 同一のASに属するルータ間のBGPピアリング接続
Interior Gateway Protocol(IGP;内部ゲートウェイ プロトコル) AS内で動作し、ネクスト ホップの接続情報を提供するプロトコル(OSPF、IS-IS、EIGRPが標準的)
Nonstop Forwarding(NSF;ノンストップ フォワーディング) RPのスイッチオーバー中にバックグラウンドでフォワーディング ステートを維持し、ルーティング プロトコルの再コンバージェンスを行うルータの機能。シスコはBGP、OSPF、およびIS-ISの機能を拡張しているので、それらの拡張機能を一括してCisco NSFという
NSF対応ルータ NSFが実装され、RPに障害が発生してもパケット転送を継続できるルータ。注:NSF対応ルータはいずれもがNSF認識ルータである。ただしNSF認識ルータがNSF対応ルータである必要はない
NSF認識ルータ ルーティング プロトコルに必要な変更を加えて、NSF対応ネイバーを支援できるルータ
NSF非認識ルータ NSF認識ルータではないルータ
再起動ルータ RPのスイッチオーバーが実行されているルータ
Routing Information Base(RIB;ルーティング情報ベース) 1台のルータに関するすべてのルーティング情報を集約したもの。さまざまな宛先IPアドレスに対する複数の参照が含まれている場合もある
ルート選択プロセス Border Gateway Protocol(BGP)が、ピアから取得した利用可能な情報をすべて使用して、特定の宛先への最適ルートを選択するプロセス。別名最適パス選択
Stateful Switchover(SSO;ステートフル スイッチオーバー) プラットフォーム、インフラストラクチャ、およびレイヤ2接続に関する情報をデュアルRP間で共有するプロセス。SSOでは、RPのスイッチオーバーの前後でレイヤ2接続を維持することも可能


参考文献

MPLSハイ アベイラビリティ - 概要(英語):
http://www.cisco.com/en/US/products/sw/iosswrel/ps1838/products_feature_guide09186a008029b23d.html
MPLS VPN:SSO/NSFのサポート(英語):
http://www.cisco.com/en/US/products/sw/iosswrel/ps1838/products_feature_guide09186a008029b289.html
MPLS LDP:SSO/NSFのサポートとグレースフル リスタート(英語):
http://www.cisco.com/en/US/products/sw/iosswrel/ps1838/products_feature_guide09186a008029b285.html
MPLS LSR MIB(英語):
http://www.cisco.com/en/US/products/sw/iosswrel/ps1838/products_feature_guide09186a008029b23c.html
MPLS LDP MIBバージョン8アップグレード(英語):
http://www.cisco.com/en/US/products/sw/iosswrel/ps1838/products_feature_guide09186a00801b1bdc.html