IP : IP ルーティング

IS-IS での過負荷ビットの使用

2002 年 7 月 16 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2005 年 10 月 25 日) | フィードバック

目次


概要

この文書は、set-overload-bit Intermediate System-to-Intermediate System(IS-IS)設定コマンドについて紹介し、このコマンドを wait-for-bgp および suppress キーワード付きで使用する方法と、どのような場合に使用すればよいかを示しています。この文書全体を通じて、「Intermediate System」(IS; 中間システム)および「ルータ」という用語は同じ意味で使用しています。

前提条件

この文書の読者は、次のことについて理解している必要があります。

  • Border Gateway Protocol(BGP; ボーダーゲートウェイ プロトコル)と IS-IS の各ルーティング プロトコルについての基本的な理解

ハードウェアとソフトウェアのバージョン

この文書の情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

  • Cisco IOS(R) ソフトウェア リリース 12.1(9)
  • Cisco 2500 および 3600 シリーズ ルータ

過負荷ビットの従来の使用

ルータでシステム リソース(メモリまたは CPU)がなくなると、リンクステート データベースの保存や Shortest Path First(SPF; 最短パス優先)などの処理を実行できません。この状態に陥ると、ルータは Link-State Packet(LSP; リンクステート パケット)に特定のビットを設定して、エリア内の他のルータに通知します。他のルータはこのビットが設定されていることを検出すると、このルータを中継トラフィックでは使用しません。ただし、この過負荷状態のルータに直接接続されているネットワークおよび IP プレフィクス宛てのパケットを送信するときは、このルータを使用します。

IS-IS では、ルータは Complete Sequence Number PDU(CSNP)パケットを送信する前であっても、それ自体の LSP を即時にフラッディングします。このように過負荷ビットは、新しくリロードされたルータを経由して中継トラフィックをルーティングしないように、ネットワーク上の他のデバイスに通知するために使用されます。

ISO/IEC 10589:1992 cisco.com 以外のサイトへ移動 は、LSP ごとに、LSP データベースの過負荷ビットと呼ばれる特別なビットを規定しています。このドラフトでは過負荷状態について次のように記載されています(セクション 7.3.19)。「ネットワークの設定ミス、またはある種の一時的な状態の結果として、受信されたリンクステート PDU を保存するためのメモリ リソースが足りない可能性があります。これが起こった場合、IS は、それ自体の LSP データベースと他の IS の LSP データベースの整合性が崩れたときに他の IS が過負荷状態の IS を経由するフォワーディング パスを使用しないように、なんらかの措置を講じる必要があります。」

IS はこの状態に陥ると、非疑似ノード LSP フラグメント 0 を生成してこのビットを設定します。

また、同ドラフトのセクション 7.2.8.1 に、「他の IS は過負荷状態の IS を中継ルータとして使用すべきでないが、直接接続されている End System(ES; エンドシステム)に到達できる」という注意があります。ルータが過負荷状態でも、直接接続されたインターフェイスおよび IP プレフィクスには到達可能です。Cisco IOS では、この機能のために過負荷ビットは使用されません。ただし、Cisco Bug ID CSCdj18100 によって、過負荷ビットを永続的に設定する機能が IOS に導入されています。シスコの実装では、過負荷ビットが設定されているときでも、直接接続されたインターフェイスまたは IP プレフィクスには到達可能です。

過負荷ビットの拡張使用

IS-IS の過負荷ビット手法は、Cisco Bug ID CSCdp01872 で拡張されました。これにより、リロード後一定の時間、過負荷ビットが設定された LSP をアドバタイズするようにルータを設定できます。タイマーが切れると、過負荷ビットはクリアーされ、LSP が再フラッディングされます。

この新機能は、いくつかの「ブラック ホール」シナリオを避けるために Border Gateway Protocol(BGP; ボーダーゲートウェイ プロトコル)と IS-IS をどちらも実行している Internet Service Provider(ISP; インターネット サービス プロバイダー)にとって役立ちます。リロード直後の一定時間、過負荷ビットを設定することで、ルーティング プロトコルがコンバージしている間にルータが中継トラフィックを受信することを回避できます。

リロード後一定時間、過負荷ビットを設定する手法は、次のコマンドを使用して実装します。このコマンドは、リロード後過負荷ビットを設定し続ける時間として、5〜86400 秒の範囲をとります。

  router isis
  set-overload-bit [on-startup [<timeout> | wait-for-bgp] ]
  
次に、例を示します。
  Router(config-router)#set-overload-bit on-startup 3500 wait-for-bgp
  !--- 過負荷ビットを 5 分間設定します(デフォルトは 10 分)。)
  

この機能では、BGP のコンバージが完了したときに過負荷ビットを自動的に無効にするようルータを設定することも可能です。BGP 待機の詳細については、「RFC3277 Intermediate System to Intermediate System (IS-IS) Transient Blackhole Avoidancecisco.com 以外のサイトへ移動」を参照してください。

BGP 仕様によると、BGP ルータはアップデートを送信していれば、キープアライブを送信する必要はありません。したがって、キープアライブが送信されるのは、アップデートの送信がすべて完了した後に限られます。BGP では、すべての BGP 近接ルータからキープアライブが受信されたときにコンバージが完了したと判断されます。

wait-for-bgp が設定されていて、BGP キープアライブがまだすべての BGP 近接ルータから受信されていない場合、過負荷ビットは 10 分後に無効になります。

ISP では、set-overload-bit を設定しているときに、ルータ自体の LSP で特定の IP プレフィクスがアドバタイズされないようにすることができます。たとえば、レベル 1 からレベル 2 への IP プレフィクスの伝搬を許可することが望ましくない場合があります。これを許可すれば、ルータが IP トラフィックの中継ノードになるためです。

Cisco Bug ID CSCdr98046 では、過負荷ビットの拡張機能を使用しているときの動作をより細かく制御できます。この改良を適用すると、IP ルートをレベル 1 からレベル 2、またはレベル 2 からレベル 1 に再配送している IS-IS レベル 1 - レベル 2(L1L2)ルータが、過負荷ビットが設定されているときに、それ自体の LSP でこれらの再配送ルートを引き続きアドバタイズできます。

L1L2 ルータで suppress キーワードを設定すると、set-overload-bit が設定されている場合でも、IP ルートをレベル 1 からレベル 2、またはその逆に再配送し、アドバタイズできます。コマンドの構文は、次のとおりです。

[no] set-overload-bit [on-startup [<n> | wait-for-bgp]] | [suppress [interlevel | external]]

suppress external キーワードは、過負荷ビットが設定されている場合に、別の IS-IS レベルから学習した IP プレフィクス、および他のプロトコルから学習した IP プレフィクスをアドバタイズしないようにルータに指示します。デフォルトではこの抑制は行われず、CSCdp01872 の動作に従います。

suppress オプションは、お客様のルータが過負荷ビットを設定している場合のみ効果があり、過負荷ビットが受信された場合、またはコンフィギュレーションに設定されている場合(たとえば、set-overload-bit on-startup がコンフィギュレーション内にあり、過負荷ビットは設定されていない場合)には効果はありません。

例:

router isis
  set-overload-bit on-startup 40 suppress interlevel
  

上記の例では、過負荷ビットは実際にはルータがリロードされるまで設定されません。したがって、IP プレフィクスはレベル間で引き続き漏出されます。ルータをリロードしてビットを実際に設定すると、レベル間のアドバタイズメントは抑制されます。

設定例

次のネットワーク ダイアグラムを使用して、set-overload-bit コマンドと、wait-for-bgp および suppress オプションの使用方法を説明します。

ネットワーク ダイアグラム

wait-for-bgp オプションを含む、ルータ 2 の設定を次に示します。

ルータ 2 の設定
!
  interface Loopback0
  ip address 2.2.2.2 255.255.255.255
  !--- ループバック インターフェイスを作成し、インターフェイス Loopback0 
!--- に IP アドレスを割り当てます。 ! interface Ethernet0/0 ip address 135.8.1.1 255.255.255.0 ip router isis ! !--- インターフェイス Ethernet0/0 に IP アドレスを割り当て、
!--- このインターフェイスで IP 用の IS-IS を有効にします。 ! ! interface Ethernet1/0 ip address 135.8.2.1 255.255.255.0 ip router isis ! !--- インターフェイス Ethernet1/0 に IP アドレスを割り当て、
!--- このインターフェイスで IP 用の IS-IS を有効にします。 ! ! router isis passive-interface Loopback0 net 12.0020.0200.2002.00 set-overload-bit on-startup wait-for-bgp ! !--- ルータで IS-IS プロセスを有効にします。
!--- ループバック インターフェイスをパッシブに設定します。
!--- (つまり、インターフェイスで IS-IS パケットを送信しません)
!--- エリアとシステム ID をルータに割り当てます。
!--- BGP がコンバージするまで待機するように起動時の過負荷ビットを設定します。
!--- タイムアウトにはデフォルトの 10 分を使用します。

ルータが新たにリロードされると、eBGP がコンバージされるまで、IS-IS レベル 1 データベース内のルータ 2 の LSP に過負荷ビットが設定されます。

  IS-IS Level-1 Link State Database:
  LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
  r2.00-00              0x00000017   0x2372        284               0/0/1
  

ルータ 2 で BGP がコンバージしたときの debug isis update の出力を次に示します。

  *Mar 1 00:00:51.015 UTC: BGP(0): Revise route installing 1.1.1.1/32 -> 135.8.1.1 to main IP table
  

BGP がコンバージして過負荷ビットがクリアーされたため、ルータ 2 はそれ自体のレベル 1 LSP を再構築します。 そのため、debug isis update の出力には、次のように「Important fields changed」と表示されます。

  *Mar 1 00:00:51.087 UTC: ISIS-Upd: Building L1 LSP
  *Mar 1 00:00:51.087 UTC: ISIS-Upd: Important fields changed
  *Mar 1 00:00:51.087 UTC: ISIS-Upd: Full SPF required
  

これで、ルータ 2 での近接ルータとの BGP アップデート セッションは完了です。

  *Mar 1 00:00:52.127 UTC: BGP: 135.8.1.1 initial update completed
  

ルータ 2 のレベル 1 LSP をもう一度見ると、ルータ 2 の過負荷ビットがクリアーされていて(BGP のコンバージが完了したため)、LSP Seq Num フィールドが 1 増えている(新しい LSP が作成されたため)ことがわかります。

  IS-IS Level-1 Link State Database:
  LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
  r2.00-00              0x00000018   0xAD87        287               0/0/0
  

L1L2 ルート漏出が設定されていて、過負荷ビットがクリアーされているルータ 2 の設定を次に示します。

ルータ 2 の設定
!
  interface Loopback0
  ip address 2.2.2.2 255.255.255.255
  !--- ループバック インターフェイスを作成し、インターフェイス Loopback0 
!--- に IP アドレスを割り当てます。 ! interface Ethernet0/0 ip address 135.8.1.1 255.255.255.0 ip router isis !--- インターフェイス Ethernet0/0 に IP アドレスを割り当て、
!--- このインターフェイスで IP 用の IS-IS を有効にします。 ! ! ! interface Ethernet1/0 ip address 135.8.2.1 255.255.255.0 ip router isis ! !--- インターフェイス Ethernet1/0 に IP アドレスを割り当て、
!--- このインターフェイスで IP 用の IS-IS を有効にします。 ! ! router isis redistribute static ip metric 11 level-1 redistribute isis ip level-2 into level-1 distribute-list 100 passive-interface Loopback0 net 12.0020.0200.2002.00 ! !--- ルータで IS-IS プロセスを有効にします。
!--- L2 から L1 へのルート漏出を設定します。
!--- ループバック インターフェイスをパッシブに設定します。
!--- (つまり、インターフェイスで IS-IS パケットを送信しません)
!--- エリアとシステム ID をルータに割り当てます。 ! ip route 200.200.200.200 255.255.255.255 loopback0 !--- loopback0 を経由した 200.200.200.200 へのスタティック ルート access-list 100 permit ip any any !--- アクセス リスト 100 は、どのルートがレベル 2 からレベル 1 に
!--- 漏出されるかを制御するために使用します。

ルータ 2 のレベル 1 データベースでは、ルータ 2 の L1 LSP の過負荷ビットがクリアーされています。

  IS-IS Level-1 LSP r2.00-00
  LSPID       LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
  r2.00-00 * 0x0000005D   0xC252        180           0/0/0
  Area Address: 12
  NLPID: 0xCC
  Hostname: r2
  IP Address: 2.2.2.2
  Metric: 10 IP 135.8.2.0 255.255.255.0
  Metric: 10 IP 135.8.1.0 255.255.255.0
  Metric:  0 IP 2.2.2.2 255.255.255.255
  Metric: 10 IS r2.02
  Metric: 10 IS r3.01
  Metric: 11 IP-External 200.200.200.200 255.255.255.255
  Metric:138 IP-Interarea 1.1.1.1 255.255.255.255
  

ルータ 3 が学習している IP ルートを見ると、ルータ 3 は L2L1 ルート漏出からルータ 1 のループバック アドレス 1.1.1.1 を学習していることがわかります。また、ルータ 3 は再配送されたスタティック ルート 200.200.200.0/32 も受信しています。

  r3#show ip route isis
  200.200.200.0/32 is subnetted, 1 subnets
  i L1 200.200.200.200 [115/21] via 135.8.2.2, Ethernet0/0
  1.0.0.0/32 is subnetted, 1 subnets
  i ia 1.1.1.1 [115/148] via 135.8.2.2, Ethernet0/0
  2.0.0.0/32 is subnetted, 1 subnets
  i L1 2.2.2.2 [115/10] via 135.8.2.2, Ethernet0/0
  135.8.0.0/24 is subnetted, 2 subnets
  i L1 135.8.1.0 [115/20] via 135.8.2.2, Ethernet0/0
  

次に、ルータ 2 で set-overload-bitsuppress オプション付きで設定します。内部ルートと外部ルートをどちらも抑制します。コマンドの構文は次のとおりです。


  [no] set-overload-bit [on-startup [<n> | wait-for-bgp]] | [suppress [interlevel | external]]
  

suppress interlevel を指定すると、レベル 2 から学習したプレフィクスがアドバタイズされません。suppress external を指定すると、再配送が行われません。

  r2(config-router)#set-overload-bit suppress interlevel external
  

ルータ 2 のレベル 1 データベースを見ると、今度はルータ 2 のレベル 1 LSP に過負荷ビットが設定されています。200.200.200.200/32 と 1.1.1.1/32 はどちらも抑制されています。これらのルートはレベル 1 データベースには注入されません。

  IS-IS Level-1 LSP r2.00-00
  LSPID       LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
  r2.00-00 * 0x0000005F   0x23C6       266            0/0/1
  Area Address: 12
  NLPID: 0xCC
  Hostname: r2
  IP Address: 2.2.2.2
  Metric: 10 IP 135.8.2.0 255.255.255.0
  Metric: 10 IP 135.8.1.0 255.255.255.0
  Metric: 0 IP 2.2.2.2 255.255.255.255
  Metric: 10 IS r2.02
  Metric: 10 IS r3.01
  

ルータ 2 で debug isis update-packets を有効にすると、レベル 1 とレベル 2 の LSP が構築されたときに「Important fields changed」と出力されます。これは LSP の内容が変わったことを示します。言い換えると、過負荷ビットが設定された LSP が受信されたことを示します。新しい LSP は完全な SPF の実行を必要とします。

  *Mar 1 03:16:08.987 UTC: ISIS-Upd: Building L1 LSP
  *Mar 1 03:16:08.987 UTC: ISIS-Upd: Important fields changed
  *Mar 1 03:16:08.987 UTC: ISIS-Upd: Full SPF required
  *Mar 1 03:16:08.987 UTC: ISIS-Upd: Building L2 LSP
  *Mar 1 03:16:08.987 UTC: ISIS-Upd: Important fields changed
  *Mar 1 03:16:08.987 UTC: ISIS-Upd: Full SPF required
  *Mar 1 03:16:09.035 UTC: ISIS-Upd: Sending L1 LSP 0020.0200.2002.00-00, seq 61, ht 299 on Ethernet0/0
  *Mar 1 03:16:09.095 UTC: ISIS-Upd: Sending L2 LSP 0020.0200.2002.00-00, seq 65, ht 299 on Ethernet1/0
  

ルータ 3 の更新されたルーティング テーブルには、IP ネットワーク 200.200.200.200 と 1.1.1.1 は含まれていません。

  r3#show ip route isis
  2.0.0.0/32 is subnetted, 1 subnets
  i L1 2.2.2.2 [115/10] via 135.8.2.2, Ethernet0/0
  135.8.0.0/24 is subnetted, 2 subnets
  i L1 135.8.1.0 [115/20] via 135.8.2.2, Ethernet0/0
  

DDTS 情報

  • CSCdj18100 - 過負荷ビットを手動で設定する機能が導入されました。
  • CSCdp01872 - 過負荷ビットを起動時に設定する機能が導入されました。BGP がコンバージェンスを伝えるまで待機するか、過負荷ビットをクリアーするためのタイマーを設定します。
  • CSCdr98046 - IP ルートをレベル 1 からレベル 2、またはレベル 2 からレベル 1 に再配送している IS-IS L1L2 ルータが、過負荷ビットが設定されているときに、それ自体の LSP でこれらの再配送ルートを引き続きアドバタイズできます。

ツール情報

その他のリソースについては、シスコの「IP ルーティング テクノロジー用の TAC ツール」を参照してください。


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 24509