2024-08-28 プロトコル別 断時間チューニング
君はこのドキュメントを参考にしてもいいし、しなくてもいい。
Cisco
レイヤ 1
link debounce タイマー
カテゴリ | デフォルト | デフォルト設定 | 変更値 | 確認コマンド | 備考 |
---|---|---|---|---|---|
link debouce | Disable | 240 ms | 120 - 1200ms まで 120 刻み | show interface debounce | ハードウェアでリンクダウン検出を行う時間を遅延させる設定
Catalyst 9500 では IOS-XE 17.6.1- で対応 Catalyst 9600 では IOS-XE 17.3.3- で対応
|
カテゴリ | デフォルト | デフォルト設定 | 変更値 | 確認コマンド | 備考 |
---|---|---|---|---|---|
link debouce | Disable | 0 ms | 0 - 5000ms | show interface debounce | ハードウェアでリンクダウン検出を行う時間を遅延させる設定
0 で無効化 link-up オプションで up 時も遅延させることが可能 |
レイヤ 2
LAN Switching
カテゴリ | デフォルト | デフォルト設定 | 変更値 | 確認コマンド | 備考 |
---|---|---|---|---|---|
spanning-tree portfast [trunk]
|
Disable | no spanning-tree portfast [trunk]
|
- | show spanning-tree | 断時間を測定する ping ホストを収容するポートで portfast 未設定 + RSTP の場合、BPDU Proposal を送信して、対向側の Agreement 送信を数十秒待機するため、断時間が延びてしまう
冗長試験では ping 端末や IXIA のポートに設定しておくのを忘れがち |
switchport nonegotiate | Disable | switchport mode dynamic auto | - | show interfaces switchport | Administrative Mode Dynamic がデフォルト設定で、DTP によるネゴシエートが行われる
|
レイヤ 3
carrier-delay タイマー
カテゴリ | デフォルト | デフォルト設定 | 変更値 | 確認コマンド | 備考 |
---|---|---|---|---|---|
carrier-delay | Disable | 2 seconds | ルータ : [up | down] {seconds | msec milliseconds}
スイッチ : {seconds | msec milliseconds}
seconds : <0-60> msec : <0-1000> |
? | リンクダウンをソフトウェアが検知するまでの遅延時間を制御する
ルータのみ up 時も設定可能 ISP 用途では、対向側の IX 事業者が光スイッチを切り替える際に、ローカル側の ISP で光の瞬断を検出させないように carrier-delay 値を大きくするケースが存在する [1] |
カテゴリ | デフォルト | デフォルト設定 | 変更値 | 確認コマンド | 備考 |
---|---|---|---|---|---|
carrier-delay | Disable | 0 second | { down milliseconds [ up milliseconds ] | up milliseconds [ down milliseconds ] }
|
show interface | IOS-XR は IOS と比較して新しい Network OS であり、CPU リソースが潤沢 + ルーティング プロトコルの収束を高速に行いたいため、carrier-delay のデフォルト値は 0 秒となっている |
カテゴリ | デフォルト | デフォルト設定 | 変更値 | 確認コマンド | 備考 |
---|---|---|---|---|---|
carrier-delay | Disable | 0 second ?? | {delay-seconds | msec milliseconds}
msec : <0-1000> |
show interface | Vlan インターフェースで使用可能 |
OSPF
カテゴリ | デフォルト | デフォルト設定 | 変更値 | 確認コマンド | 備考 |
---|---|---|---|---|---|
NSF Helper | Enable | nsf cisco helper
nsf ietf helper |
- | show ip ospf
Cisco NSF helper support enabled |
隣接 NSF ルータが SSO フェイルオーバーした際、自ルータが FIB を保持する |
NSF | Disable | - | nsf | show ip ospf
|
自ルータが SSO フェイルオーバーした際、
隣接ルータで OSPF が Down しても FIB を保持してもらう |
NSR | Disable | - | nsr | show ip ospf
|
常時 OSPF プロセスの状態を SSO Active と Standby で同期する
実装難易度が高いため、低価格製品や IPv6 は対応していない場合が多い 自ルータが SSO フェイルオーバーした際、隣接ルータに影響を与えない 歴史的には NSF のほうが先に実装されている + IETF 標準であるため、NSF のほうが不具合が少なそう |
BGP | Disable | - | max-metric router-lsa on-startup wait-for-bgp | show ip ospf
|
再起動後、BGP の経路を受信し終わるまで、LSA のメトリックを最大にして、OSPF でトラフィックを処理しない
フルルートのように収束に時間がかかる環境で有効 |
timers | Enable | timers throttle spf 5000 10000 10000
timers throttle spf 50 200 5000 |
timers throttle spf 10 100 5000 | show ip ospf
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 遅延時間による
|
Enable | timers throttle lsa 0 5000 5000
timers throttle lsa 50 200 5000 |
timers throttle lsa 10 100 5000 | show ip ospf
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 の時間による
| |
Enable | timers lsa arrival 1000
Cisco IOS XE Everest 16.5.1b 以降 timers lsa arrival 100 |
timers lsa arrival 80 | show ip ospf
|
単位 msec
LSA の最小受信間隔
|
BGP
カテゴリ | デフォルト | デフォルト設定 | 変更値 | 確認コマンド | 備考 |
---|---|---|---|---|---|
NSF | 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
|
show ip bgp neighbors <Peer_IP>
|
実装難易度が高いため、低価格製品や IPv6 は対応していない場合が多い
常時 BGP プロセスの状態を SSO Active と Standby で同期する 自ルータが SSO フェイルオーバーした際、隣接ルータに影響を与えない
|
timers | Enable | bgp update-delay 120 | bgp update-delay 1 | - | 1 つ目のピアとセッションを確立したあと、最適経路選択・経路通知を遅延させる時間
SSO かつ VSS などのクラスタリング系技術を使っており、かつ NSF / NSR を使用しておらず、論理ルータが 1 台のみの場合に使用すると、再起動後のトラフィック断を減らすことが可能
|
Enable | bgp aggregate-timer 30 | bgp aggregate-timer 0 | - | 0 の場合、集約ルートの広報を即時行う
復旧にかかる時間を短縮可能 | |
Enable | timers bgp 60 180 | timers bgp 10 30 | show ip bgp neighbors
|
キープアライブタイマーを 60 -> 10 秒、
ホールドダウンタイマーを 180 -> 30 秒に変更する
| |
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 receive capability: advertised |
バックアップ BGP ルートを RIB に保持することで、アクティブな FIB ルートが削除された際、すぐに切り替えられる機能
特に無効時のフルルート環境はルートを受信し終わるまで、ルート未受信の宛先トラフィックがダウンし続けてしまう 有効にすることで即時に FIB を切り替えられ、断時間を大幅に短くできるため、有効な機能といえる
有効時にピアが Down / Up するため、メンテナンス時間が必要
|
Stack
カテゴリ | デフォルト | デフォルト設定 | 変更値 | 確認コマンド | 備考 |
---|---|---|---|---|---|
stack-mac | Disable | - | stack-mac persistent timer 0 | show switch
|
MAC アドレスを使用するプロトコル・機能の、再収束を無くします
未設定の場合は、筐体切替時に Active 機の MAC を Standby 機で引き継がないため、再収束が発生し断時間となります |
用語解説
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
IGP/LDP/BGP Convergence Tuning (IOS/IOS-XE)
Juniper
set interfaces <int_id> hold-time up <milliseconds> down <milliseconds>
set protocols ospf overload timeout <seconds>
set protocols ospf3 overload timeout <seconds>
- BGP が未収束の状態で、OSPF でルーティングされることを防ぐ
- オーバーロード = 過負荷に見せる
更新履歴
2021/10/17 : 初版作成
2023/09/14 : link debounce , carrier-delay を追加
2024/08/28: stack-mac persistent timer 0 を追加
引用
- ↑ JANOG26 IXPセッション ~頑張ってトラフィック支えてます~ 光スイッチによる可用性向上 顧客間トラヒックへの影響の極小化 『顧客ルータがLink断検知しない』 ⇒ BGP peer 断しない 顧客ルータでLink断検知のconfig調整が必要な場合あり
- ↑ Unsupported Features: Cisco Catalyst 9500 Series Switches Border Gateway Protocol (BGP) Additional Paths
- ↑ 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.
- ↑ デバイス スタックおよび LACP LACP の場合、システム ID は、アクティブ デバイスから取得したスタック MAC アドレスが使用されます。アクティブ デバイスに障害が発生したり、スタックを離れ、スタンバイ デバイスが新しいアクティブ デバイスが変更になっても、LACP システム ID は変更されません。デフォルトでは、LACP 設定はアクティブ デバイスの変更後も影響を受けません。
- ↑ stack-mac persistent timer (注) PAgP フラップを回避するには、stack-mac persistent timer 0 を使用してスタック MAC 永続待機タイマーを無期限に設定する必要があります。
- ↑ stack-mac persistent timer (注) スタック MAC アドレスを変更しない場合、レイヤ 3 インターフェイスのフラップが発生しません。