2024-08-28 プロトコル別 断時間チューニング

提供:hkatou_Lab
2023年7月23日 (日) 13:11時点におけるHkatou (トーク | 投稿記録)による版 (→‎OSPF)
ナビゲーションに移動 検索に移動

君はこのドキュメントを参考にしてもいいし、しなくてもいい

Cisco

LAN Switching

カテゴリ デフォルト デフォルト設定 変更値 確認コマンド 備考
spanning-tree portfast (trunk) Disable no spanning-tree portfst - show spanning-tree ping ホストを収容するポートで未設定 + RSTP の場合、BPDU Proposal を送信して、対向側の Agreement を数十秒待機するため、断時間が延びてしまう

OSPF

router ospf <process_id>
カテゴリ デフォルト デフォルト設定 変更値 確認コマンド 備考
NSF Helper Enable nsf cisco helper

nsf ietf helper

- show ip ospf


IETF NSF helper support enabled

Cisco NSF helper support enabled

隣接 NSF ルータがフェイルオーバーした際、自ルータが FIB を保持する
NSF Disable - nsf show ip ospf


Non-Stop Forwarding enabled

自ルータが SSO フェイルオーバーした際、

隣接ルータで OSPF が Down しても FIB を保持してもらう

NSR Disable - nsr show ip ospf


Non-Stop Routing enabled

実装難易度が高いため、低価格製品や IPv6 は対応していない場合が多い

常時 OSPF プロセスの状態を SSO Active と Standby で同期する

自ルータが SSO フェイルオーバーした際、隣接ルータに影響を与えない


歴史的には NSF のほうが先に実装されている + IETF 標準であるため、NSF のほうが不具合が少なそう

BGP Disable - max-metric router-lsa on-startup wait-for-bgp show ip ospf


    Condition: on startup while BGP is converging, State: inactive

再起動後、BGP の経路を受信し終わるまで、LSA のメトリックを最大にして、OSPF でトラフィックを処理しない
timers Enable timers throttle spf 5000 10000 10000


Cisco IOS XE Everest 16.5.1b 以降

timers throttle spf 50 200 5000

timers throttle spf 10 100 5000 show ip ospf


Initial SPF schedule delay 10 msecs

Minimum hold time between two consecutive SPFs 100 msecs

Maximum wait time between two consecutive SPFs 5000 msecs

単位 msec

1:SPF 遅延

2:1つ目と2つ目の SPF 計算の間の遅延

3:最大遅延

Cisco Classic IOS の OSPF はリンクダウン時に 6 秒程度の断時間が発生するが、これは最初の 5000msec の SPF 遅延時間による

  • 昔の CPU で高速に収束させると、CPU 負荷が高かったため


IOS-XE 16.5.1b 以降は、Fast Convergence Default Optimize でタイマーが高速化された

  • OSPF を設定すると、タイマーが Optimize された旨のメッセージが出力される
Enable timers throttle lsa 0 5000 5000


Cisco IOS XE Everest 16.5.1b 以降

timers throttle lsa 50 200 5000

timers throttle lsa 10 100 5000 show ip ospf


Initial LSA throttle delay 10 msecs

Minimum hold time for LSA throttle 100 msecs

Maximum wait time for LSA throttle 5000 msecs

単位 msec

1 : 最初の LSA 生成遅延

2 : 最小 LSA 生成遅延

3 : 最大 LSA 生成遅延

OSPF はリンクダウン時に 6 秒程度の断時間が発生するが、これは最初の 5000msec の時間による


IOS-XE 16.5.1b 以降は、Fast Convergence Default Optimize でタイマーが高速化された

Enable timers lsa arrival 1000

Cisco IOS XE Everest 16.5.1b 以降

timers lsa arrival 100

timers lsa arrival 80 show ip ospf


Minimum LSA arrival 80 msecs

単位 msec

LSA の最小受信間隔


IOS-XE 16.5.1b 以降は、Fast Convergence Default Optimize でタイマーが高速化された


BGP

router bgp <AS_Number>
カテゴリ デフォルト デフォルト設定 変更値 確認コマンド 備考
NSF /

NSF Helper

Disable - bgp graceful-restart show ip bgp neighbors <Peer_IP>


Graceful Restart Capabilty:advertised and received

自ルータが SSO フェイルオーバーした際、隣接ルータで BGP が Down しても FIB を保持してもらう
NSR Disable - bgp graceful-restart

bgp sso route-refresh-enable


iBGP / eBGP : neighbor <BGP_Peer_IP> ha-mode sso

show ip bgp neighbors <Peer_IP>


  SSO is enabled

実装難易度が高いため、低価格製品や IPv6 は対応していない場合が多い

常時 BGP プロセスの状態を SSO Active と Standby で同期する

自ルータが SSO フェイルオーバーした際、隣接ルータに影響を与えない


歴史的には NSF のほうが先に実装されている + IETF 標準であるため、NSF のほうが不具合が少なそう

timers Enable bgp update-delay 120 bgp update-delay 1 - 1 つ目のピアとセッションを確立したあと、最適経路選択・経路通知を遅延させる時間


ただし、すべてのピアが Up した際は、最適経路選択・経路通知を行う

SSO かつ VSS などのクラスタリング系技術で、論理ルータが 1 台のみの場合に使用すると、再起動時のトラフィック断を減らすことが可能


もともとフルルートで収束に時間がかかることから動作しているタイマーであるため、フルルートの環境には向いていない

Enable bgp aggregate-timer 30 bgp aggregate-timer 0 - 0 の場合、集約ルートの広報を即時行う


有効な場合、タイマーの間サブネットルートを広報する


対向側ピアでサブネットルートをフィルタリングしている場合に有効と思われる

Enable timers bgp 60 180 timers bgp 10 30 show ip bgp neighbors


  Last read 00:00:01, last write 00:00:09, hold time is 30, keepalive interval is 10 seconds

キープアライブタイマーを 60 -> 10 秒、

ホールドダウンタイマーを 180 -> 30 秒に変更する


eBGP フルルート環境だとここまで短縮している例は見た記憶が無い

  • フルルートの受信に数分 - 十数分程度はかかるため、BGP ピアが Flap するのは CPU 使用率の観点から避けたい


eBGP では 15 / 45 , 20 / 60 くらいが一般的と思われる

BGP Additional Paths (PIC-Edge) Disable - bgp additional-paths select all

bgp additional-paths send receive

neighbor <Peer_IP> additional-paths send receive

show ip bgp neighbors


  Additional Paths send capability: advertised

  Additional Paths receive capability: advertised

バックアップ BGP ルートを RIB に保持することで、アクティブな FIB ルートが削除された際、すぐに切り替えられる機能
  • EIGRP のフィージブル サクセサと類似している



特に無効時のフルルート環境はルートを受信し終わるまで、ルート未受信の宛先トラフィックがダウンし続けてしまう

有効にすることで即時に FIB を切り替えられ、断時間を大幅に短くできるため、有効な機能といえる


有効時にピアが Down / Up するため、メンテナンス時間が必要


また、RIB の保持にメモリを使用するため要注意

  • FIB のルート数は足りているのに、RIB の消費メモリ量が多くなりすぎて、BGP が Flap する事例があった
  • 発生してしまった場合は、soft-reconfiguration inbound とともに Add-path は削除すると良い


スイッチではあまり対応していない

  • Catalyst 9500 では非サポート [1]
  • Catalyst 9500H では 16.8.1a- サポート [2]

用語解説

SSO = Stateful Switch Over.

ルータのルートプロセッサや、スイッチのスーパーバイザエンジンを、なるべく断時間が短くなるように切り替える仕組みのこと。

よくある勘違いとして、以下がある。

  • 勘違い : SSO+NSF 切替時は OSPF や BGP が隣接ルータでダウンしない (実際にはダウンする)
    • ネイバー・ピア ダウンしても NSF Helper で転送させる、NSR でダウンさせないなどの対処が必要
    • NSF はネイバー・ピア ダウンしても、FIB を保持する技術
  • 勘違い : HSRP も SSO により短時間で切り替えられる
    • SSO Aware HSRP 機能が必要
    • ない場合は HSRP が両系でダウンするため、十数秒単位でトラフィック断が発生する

リファレンス

Change of Default OSPF and IS-IS SPF and Flooding Timers and iSPF Removal

BGP の追加パス


  1. Unsupported Features: Cisco Catalyst 9500 Series Switches Border Gateway Protocol (BGP) Additional Paths
  2. Feature History for BGP Additional Paths Support for this feature was introduced only on the C9500-32C, C9500-32QC, C9500-48Y4C, and C9500-24Y4C models of the Cisco Catalyst 9500 Series Switches.