「2024-11-03 Cat9000V GIR 機能検証」の版間の差分

提供:hkatou_Lab
ナビゲーションに移動 検索に移動
編集の要約なし
編集の要約なし
 
(同じ利用者による、間の2版が非表示)
5行目: 5行目:
検証対象として Catalyst 9000V Q200 を使用していますが、実機の Catalyst 9000 シリーズでも同様の動作をするはずです。
検証対象として Catalyst 9000V Q200 を使用していますが、実機の Catalyst 9000 シリーズでも同様の動作をするはずです。


== 目的 ==
== GIR (Graceful Insertion and Removal) とは ? ==
直訳ではスムーズな挿入と削除。
 
主にルーティング プロトコルの停止と開始を制御し、冗長化された機器を簡易にトラフィック迂回したり挿入したりできる機能。
 
== このドキュメントの目的 ==
GIR の動作について理解を深められること。
GIR の動作について理解を深められること。
ラボを再現して検証できること。


== 通信要件 ==
== 通信要件 ==
20行目: 27行目:
=== メリット ===
=== メリット ===


* L3 プロトコルのどこを止めてルートを迂回させて・・・などと考えて切り離しのコンフィグを組む必要がない
* L3 プロトコルのどこを止めてルートを迂回させて・・・などと考えて切り離し・切り戻しのコンフィグを組む必要がない
* 断時間は非常に短く切り替えできた
* 断時間は非常に短く切り替え・切り戻しできた


* メンテナンスするプロトコルの順番を入れ替えられる
* メンテナンスするプロトコルの順番を入れ替えられる
** 環境にもよると思われるが、基本的に上位プロトコルから実施したほうが良さそう
** 環境にもよると思われるが、基本的に上位プロトコルから実施したほうが良さそう
* 切り戻し (Insert) は切り替えの逆順で実施してくれる
* 切り戻し (Insert) は切り替えの逆順で実施してくれる
** iBGP は OSPF の Loopback アドレス学習を元にピアを張るため、OSPF ネイバーを先に上げた方が良い


=== 考慮点 ===
=== 考慮点 ===


* Stack には使えない
* GIR 導入後にコンフィグを変更した際、GIR にも変更が必要になるケースがあるので、変更を忘れないようにする
* GIR 導入後にコンフィグを変更した際、GIR にも変更が必要になるケースがあるので、変更を忘れないようにする
** HSRP で新 Group を追加した、など
** HSRP で新 Group を追加した、など
** 導入当初は検証しても、普段の設定追加で忘れがちになるのでは
* いったんメンテナンスを開始 (Remove) すると、手を出すことができない
* いったんメンテナンスを開始 (Remove) すると、手を出すことができない
** 新規導入時に動作検証を実施し、挙動を確認したほうが良い
** 新規導入時に動作検証を実施し、挙動を確認したほうが良い
* メンテナンス中はコンフィグ変更が可能
* メンテナンス中はコンフィグ変更が可能
** 切り戻せないコンフィグにした場合、stop maintenance しても切り戻りと判定してくれないため注意が必要
** 指定したプロトコルの状態を保存しているようで、切り戻せないコンフィグにした場合、stop maintenance しても切り戻りと判定してくれないため注意が必要
*** 例) 事前に Up していた、OSPF ネイバーのインターフェースをメンテナンス中にシャットダウンした
*** ネイバーの Up / Down が作業前後で異なるような作業に、GIR の利用は想定されていないと考えられる
** 基本的には OS Verup などコンフィグ変更しないメンテナンスを対象に GIR を使うのが良さそう
** 基本的には OS Verup などコンフィグ変更しないメンテナンスを対象に GIR を使うのが良さそう
* メンテナンス停止 (Insert) 中は、コンフィグを変更できない
* メンテナンス停止 (Insert) 中は、コンフィグを変更できない
* failsafe は今回挙動を確認できなかった
* failsafe は今回挙動を確認できなかった
* snapshot 機能は今回の Version に実装されていない模様
* snapshot 機能は今回の Version に実装されていない模様
* 各プロトコルのルート学習にかかる時間に wait などは設定できない
** フルルートや高スケールの環境でも GIR が考慮してくれるか、追加検証が必要
*2024/11 時点の最新長期サポート Version である、17.12.4 では C9500X が非サポート


== 検証結果概要 ==
== 検証結果概要 ==

2024年11月20日 (水) 14:59時点における最新版

Nexus で開発され Catalyst 9000 にも実装された GIR について、機能検証を実施しました。

このページにラボシナリオとして、コンフィグや確認コマンド、疎通確認のポイントなどをまとめています。

検証対象として Catalyst 9000V Q200 を使用していますが、実機の Catalyst 9000 シリーズでも同様の動作をするはずです。

GIR (Graceful Insertion and Removal) とは ?

直訳ではスムーズな挿入と削除。

主にルーティング プロトコルの停止と開始を制御し、冗長化された機器を簡易にトラフィック迂回したり挿入したりできる機能。

このドキュメントの目的

GIR の動作について理解を深められること。

ラボを再現して検証できること。

通信要件

GIR : BGP / OSPF / HSRP

  • GIR を開始したホストを経路迂回すること
  • GIR を停止したホストに経路復旧すること
  • 断時間がそこまで長くないこと

所感

メリット

  • L3 プロトコルのどこを止めてルートを迂回させて・・・などと考えて切り離し・切り戻しのコンフィグを組む必要がない
  • 断時間は非常に短く切り替え・切り戻しできた
  • メンテナンスするプロトコルの順番を入れ替えられる
    • 環境にもよると思われるが、基本的に上位プロトコルから実施したほうが良さそう
  • 切り戻し (Insert) は切り替えの逆順で実施してくれる
    • iBGP は OSPF の Loopback アドレス学習を元にピアを張るため、OSPF ネイバーを先に上げた方が良い

考慮点

  • Stack には使えない
  • GIR 導入後にコンフィグを変更した際、GIR にも変更が必要になるケースがあるので、変更を忘れないようにする
    • HSRP で新 Group を追加した、など
    • 導入当初は検証しても、普段の設定追加で忘れがちになるのでは
  • いったんメンテナンスを開始 (Remove) すると、手を出すことができない
    • 新規導入時に動作検証を実施し、挙動を確認したほうが良い
  • メンテナンス中はコンフィグ変更が可能
    • 指定したプロトコルの状態を保存しているようで、切り戻せないコンフィグにした場合、stop maintenance しても切り戻りと判定してくれないため注意が必要
      • 例) 事前に Up していた、OSPF ネイバーのインターフェースをメンテナンス中にシャットダウンした
      • ネイバーの Up / Down が作業前後で異なるような作業に、GIR の利用は想定されていないと考えられる
    • 基本的には OS Verup などコンフィグ変更しないメンテナンスを対象に GIR を使うのが良さそう
  • メンテナンス停止 (Insert) 中は、コンフィグを変更できない
  • failsafe は今回挙動を確認できなかった
  • snapshot 機能は今回の Version に実装されていない模様
  • 各プロトコルのルート学習にかかる時間に wait などは設定できない
    • フルルートや高スケールの環境でも GIR が考慮してくれるか、追加検証が必要
  • 2024/11 時点の最新長期サポート Version である、17.12.4 では C9500X が非サポート

検証結果概要

プロトコル別の挙動

GIR Remove 実施時
ピア・ネイバー・ステート ルート メトリック 備考
BGP 保持される 広報が停止される - BGP はアトリビュートが非常に多いため、ルートの広報をやめる実装になっていると思われる。

今回のユースケースでは断時間は非常に短かったため、問題にはなりにくいと考えられる。

OSPF 保持される 広報する 65536 になる ネイバーが保持され、ルートも削除されない。

ルートのメトリックは最低値になるため、優先度を低下する実装となっている。 OSPF で学習する Loopback を telnet 用アドレスとして管理する環境も多いため、好ましい実装と言える。

HSRP Resign メッセージを送信する

Active -> Init になる Hello も送信しなくなる

- - HSRP Active から降格する際、Resign メッセージを送信しているため、Standby が素早く Active へ昇格することが可能。

断時間を短く切り替えが可能となっている。

その他

  • start maintenance 中の再起動 : stop maintenance 状態で起動する

検証環境

Cisco Catalyst 9000V Q200 : IOS-XE 17.12.1 x6

構成図

  • Catalyst 3850 : PE01 , CE01 , CE02 , CORE01 , CORE02 , CPE01

PE01 を WAN の機器、CE01 , CE02 , CORE01 , CORE02 , CPE を LAN の機器とする。

20241103 GIR Diagram
20241103 GIR Diagram

IP アドレッシング

文書用例示アドレス (8.8.8.8 を除く)
大種別 小種別 ネットワーク アドレス ホスト インターフェース ホスト アドレス 備考
グローバルアドレス WAN グローバルアドレス 203.0.113.128/30 PE01 Gi1/0/1 203.0.113.129/30 BGP でデフォルトルートを広報
CE01 Gi1/0/23 203.0.113.130/30 PE ルータからデフォルトルートを受信
203.0.113.132/30 PE01 Gi1/0/1 203.0.113.133/30 BGP でデフォルトルートを広報
CE02 Gi1/0/23 203.0.113.134/30 PE ルータからデフォルトルートを受信
198.51.100.0/24 PE01 Lo0 198.51.100.1/32 上り方向 ping の宛先
LAN グローバル アドレス CE01 Lo0 198.51.100.11/32 iBGP ピア用
CE02 Lo0 198.51.100.12/32 iBGP ピア用
CORE01 Lo0 198.51.100.21/32
CORE02 Lo0 198.51.100.22/32
203.0.113.128/25 CE01 Po21 203.0.113.137/30 CE01 <-> CE02 間わたり OSPF P2P リンク

迂回経路用

CE02 Po21 203.0.113.138/30
CE01 Gi1/0/1 203.0.113.141/30 CE01 <-> CORE01 間 OSPF P2P リンク
CORE01 Gi1/0/23 203.0.113.142/30
CE02 Gi1/0/2 203.0.113.145/30 CE02 <-> CORE02 間 OSPF P2P リンク
CORE02 Gi1/0/24 203.0.113.146/30
CE01 Po21 203.0.113.149/30 CORE01 <-> CORE02 間 OSPF P2P リンク

迂回経路用

CE02 Po21 203.0.113.150/30
203.0.113.0/25 CE01 Vlan1 203.0.113.2/25

HSRP .1

CPE 収容 SVI
CE02 Vlan1 203.0.113.3/25

HSRP .1

CPE 収容 SVI
CPE Vlan1 203.0.113.101/25 CPE01 用ホストアドレス
プライベートアドレス LAN プライベート アドレス なし

コンフィギュレーション

ここではプロトコル・ホスト別にコンフィギュレーションを簡単に解説します。

自分でコンフィグを組んでみたい人向けに、デフォルトでは表示しません。

PE01

PE01 コンフィグ
プロトコル PE01 コンフィグ 解説
eBGP
PE01#show run | s back0|net1/0/[1-2]$|router bgp|ip route 0

interface Loopback0
 ip address 198.51.100.1 255.255.255.255

interface GigabitEthernet1/0/1
 description CE01_Gi1/0/23
 no switchport
 ip address 203.0.113.129 255.255.255.252

interface GigabitEthernet1/0/2
 description CE02_Gi1/0/23
 no switchport
 ip address 203.0.113.133 255.255.255.252

router bgp 64496
 bgp router-id 198.51.100.1
 bgp log-neighbor-changes
 bgp deterministic-med
 timers bgp 10 30
 neighbor 203.0.113.130 remote-as 64512
 neighbor 203.0.113.130 description CE01
 neighbor 203.0.113.130 default-originate
 neighbor 203.0.113.130 soft-reconfiguration inbound
 neighbor 203.0.113.134 remote-as 64512
 neighbor 203.0.113.134 description CE02
 neighbor 203.0.113.134 default-originate
 neighbor 203.0.113.134 soft-reconfiguration inbound

ip route 0.0.0.0 0.0.0.0 Null0 254
CE01 , 02 と eBGP ピアを張るための設定

CE01 , 02

CE01 , 02 コンフィグ
プロトコル CE01 コンフィグ CE02 コンフィグ 解説
eBGP
CE01#show run | s back0|net1/0/23$|^router bgp|route-map

interface Loopback0
 ip address 198.51.100.11 255.255.255.255

interface GigabitEthernet1/0/23
 description PE01_Gi1/0/1
 no switchport
 ip address 203.0.113.130 255.255.255.252

router bgp 64512
 bgp router-id 198.51.100.11
 bgp log-neighbor-changes
 bgp deterministic-med
 network 203.0.113.0 mask 255.255.255.128
 timers bgp 10 30
 neighbor 198.51.100.12 remote-as 64512
 neighbor 198.51.100.12 description CE02
 neighbor 198.51.100.12 update-source Loopback0
 neighbor 198.51.100.12 next-hop-self
 neighbor 198.51.100.12 soft-reconfiguration inbound
 neighbor 203.0.113.129 remote-as 64496
 neighbor 203.0.113.129 description PE01
 neighbor 203.0.113.129 soft-reconfiguration inbound
 neighbor 203.0.113.129 route-map LP300 in
 neighbor 203.0.113.129 route-map MED100 out

route-map LP300 permit 10
 set local-preference 300

route-map MED100 permit 10
 set metric 100
CE02#show run | s back0|net1/0/23$|^router bgp|route-map

interface Loopback0
 ip address 198.51.100.12 255.255.255.255

interface GigabitEthernet1/0/23
 description PE01_Gi1/0/2
 no switchport
 ip address 203.0.113.134 255.255.255.252

router bgp 64512
 bgp router-id 198.51.100.12
 bgp log-neighbor-changes
 bgp deterministic-med
 network 203.0.113.0 mask 255.255.255.128
 timers bgp 10 30
 neighbor 198.51.100.11 remote-as 64512
 neighbor 198.51.100.11 description CE01
 neighbor 198.51.100.11 update-source Loopback0
 neighbor 198.51.100.11 next-hop-self
 neighbor 198.51.100.11 soft-reconfiguration inbound
 neighbor 203.0.113.133 remote-as 64496
 neighbor 203.0.113.133 description PE01
 neighbor 203.0.113.133 soft-reconfiguration inbound
 neighbor 203.0.113.133 route-map LP100 in
 neighbor 203.0.113.133 route-map MED300 out

route-map MED300 permit 10
 set metric 300

route-map LP100 permit 10
 set local-preference 100
PE01 と eBGP ピア、

CE01 と CE02 で iBGP ピアを張るコンフィグ


route-map LP300

LP300 で上りトラフィックを優先する

値が高いほうが優先


route-map MED100

MED100 で下りトラフィックを優先する

値が低いほうが優先

OSPF
CE01#show run | s net1/0/1$|net1/0/2[1-2]$|el21|^router ospf

interface Port-channel21
 description CE02_Po21
 no switchport
 ip address 203.0.113.137 255.255.255.252
 ip ospf network point-to-point
 ip ospf cost 100

interface GigabitEthernet1/0/1
 description CORE01_Gi1/0/23
 no switchport
 ip address 203.0.113.141 255.255.255.252
 ip ospf network point-to-point
 ip ospf cost 1

interface GigabitEthernet1/0/21
 description CE02_Gi1/0/21
 no switchport
 no ip address
 channel-group 21 mode active

interface GigabitEthernet1/0/22
 description CE02_Gi1/0/22
 no switchport
 no ip address
 channel-group 21 mode active

router ospf 1
 router-id 198.51.100.11
 passive-interface default
 no passive-interface GigabitEthernet1/0/1
 no passive-interface Port-channel21
 network 198.51.100.11 0.0.0.0 area 0.0.0.0
 network 203.0.113.136 0.0.0.3 area 0.0.0.0
 network 203.0.113.140 0.0.0.3 area 0.0.0.0
 default-information originate metric 1 metric-type 1
CE02#show run | s net1/0/2$|net1/0/2[1-2]$|el21|^router ospf

interface Port-channel21
 description CE01_Po21
 no switchport
 ip address 203.0.113.138 255.255.255.252
 ip ospf network point-to-point
 ip ospf cost 100

interface GigabitEthernet1/0/2
 description CORE02_Gi1/0/24
 no switchport
 ip address 203.0.113.145 255.255.255.252
 ip ospf network point-to-point
 ip ospf cost 40

interface GigabitEthernet1/0/21
 description CE01_Gi1/0/21
 no switchport
 no ip address
 channel-group 21 mode active

interface GigabitEthernet1/0/22
 description CE01_Gi1/0/22
 no switchport
 no ip address
 channel-group 21 mode active

router ospf 1
 router-id 198.51.100.12
 passive-interface default
 no passive-interface GigabitEthernet1/0/2
 no passive-interface Port-channel21
 network 198.51.100.12 0.0.0.0 area 0.0.0.0
 network 203.0.113.144 0.0.0.3 area 0.0.0.0
 network 203.0.113.128 0.0.0.127 area 0.0.0.0
 default-information originate metric 100 metric-type 1
CE01 , 02 間

CE01 , 02 <-> CORE01 , 02 間 OSPF


iBGP で使用する Loopback を広報する

GIR
CE01#show run | s mainte
maintenance-template BGP_OSPF
 router bgp 64512
 router ospf 1
system mode maintenance
 timeout 15
 template BGP_OSPF
 failsafe 5
CE02#show run | s mainte
maintenance-template BGP_OSPF
 router bgp 64512
 router ospf 1
system mode maintenance
 timeout 15
 template BGP_OSPF
 failsafe 5
GIR で BGP と OSPF を切り替える

timeout 15 メンテナンス時間を設定します 15 は分を意味しています タイムアウトすると、stop maintenance が実行され、切り戻ります failsafe 5 不明

CORE01 , 02 コンフィグ
種別 CORE01 コンフィグ CORE02 コンフィグ 解説
OSPF
CORE01#show run | s net1/0/2[1-2]$|el21|^router ospf

interface Port-channel21
 description CORE02_Po21
 no switchport
 ip address 203.0.113.149 255.255.255.252
 ip ospf network point-to-point
 ip ospf cost 50

interface GigabitEthernet1/0/21
 description CORE02_Gi1/0/21
 no switchport
 no ip address
 channel-group 21 mode active

interface GigabitEthernet1/0/22
 description CORE02_Gi1/0/22
 no switchport
 no ip address
 channel-group 21 mode active

router ospf 1
 router-id 198.51.100.21
 passive-interface default
 no passive-interface GigabitEthernet1/0/23
 no passive-interface Port-channel21
 network 198.51.100.21 0.0.0.0 area 0.0.0.0
 network 203.0.113.0 0.0.0.127 area 0.0.0.0
 network 203.0.113.140 0.0.0.3 area 0.0.0.0
 network 203.0.113.148 0.0.0.3 area 0.0.0.0
CORE02#show run | s net1/0/2[1-2]$|el21|^router ospf

interface Port-channel21
 description CORE01_Po21
 no switchport
 ip address 203.0.113.150 255.255.255.252
 ip ospf network point-to-point
 ip ospf cost 50

interface GigabitEthernet1/0/21
 description CORE01_GI1/0/21
 no switchport
 no ip address
 channel-group 21 mode active

interface GigabitEthernet1/0/22
 description CORE01_GI1/0/22
 no switchport
 no ip address
 channel-group 21 mode active

router ospf 1
 router-id 198.51.100.22
 passive-interface default
 no passive-interface GigabitEthernet1/0/24
 no passive-interface Port-channel21
 network 198.51.100.22 0.0.0.0 area 0.0.0.0
 network 203.0.113.0 0.0.0.127 area 0.0.0.0
 network 203.0.113.144 0.0.0.3 area 0.0.0.0
 network 203.0.113.148 0.0.0.3 area 0.0.0.0
CE01 , 02 から

OSPF デフォルトルートを 受信するための設定

HSRP
CORE01#show run | s net1/0/1$|Vlan1$
interface GigabitEthernet1/0/1
 description CPE01_Gi1/0/23
 switchport mode access
 switchport nonegotiate
 spanning-tree portfast
 spanning-tree bpdufilter enable

interface Vlan1
 ip address 203.0.113.2 255.255.255.128
 standby version 2
 standby 1 ip 203.0.113.1
 standby 1 priority 110
 standby 1 preempt
CORE02#show run | s net1/0/1$|Vlan1$
interface GigabitEthernet1/0/1
 description CPE01_Gi1/0/24
 switchport mode access
 switchport nonegotiate
 spanning-tree portfast
 spanning-tree bpdufilter enable

interface Vlan1
 ip address 203.0.113.3 255.255.255.128
 standby version 2
 standby 1 ip 203.0.113.1
 standby 1 priority 105
 standby 1 preempt
CPE01 を HSRP で

収容するための設定

GIR
CORE01#show run | s mainte
maintenance-template OSPF_HSRP
 router ospf 1
 hsrp Vlan1 1

system mode maintenance
 timeout 15
 template OSPF_HSRP
 failsafe 5
CORE02#show run | s mainte
maintenance-template OSPF_HSRP
 router ospf 1
 hsrp Vlan1 1

system mode maintenance
 timeout 15
 template OSPF_HSRP
 failsafe 5
GIR で OSPF と HSRP を切り替える
CPE01 コンフィグ
種別 CPE01 コンフィグ 解説
ホスト
CPE01#show run | s net1/0/2[3-4]|Vlan1|ip route 0

interface GigabitEthernet1/0/23
 description CORE01_Gi1/0/1
 switchport mode access
 switchport nonegotiate
 spanning-tree portfast
 spanning-tree bpdufilter enable

interface GigabitEthernet1/0/24
 description CORE02_Gi1/0/1
 switchport mode access
 switchport nonegotiate
 spanning-tree portfast
 spanning-tree bpdufilter enable

interface Vlan1
 ip address 203.0.113.101 255.255.255.128

ip route 0.0.0.0 0.0.0.0 203.0.113.1
CORE01 , 02 の HSRP VIP に対してデフォルトルートを設定

正常時の疎通・経路確認

コマンドリスト

PE01

PE01#ping 203.0.113.101
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 203.0.113.101, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 70/87/103 ms
PE01#
PE01#traceroute 203.0.113.101
Type escape sequence to abort.
Tracing the route to 203.0.113.101
VRF info: (vrf in name/id, vrf out name/id)
  1 203.0.113.130 40 msec 40 msec 38 msec
  2 203.0.113.142 81 msec 54 msec 61 msec
  3 203.0.113.101 [AS 64512] 103 msec *  105 msec

通常時は CE01 -> CORE01 -> CPE01 を経由します。

PE01#show ip bgp
BGP table version is 11, local router ID is 198.51.100.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
      0.0.0.0          0.0.0.0                                0 i
 *>   203.0.113.0/25   203.0.113.130          100             0 64512 i
 *                     203.0.113.134          300             0 64512 i

CE01 宛を優先させています。

CORE01

CORE01#show ip route 0.0.0.0
Routing entry for 0.0.0.0/0, supernet
  Known via "ospf 1", distance 110, metric 2, candidate default path
  Tag 1, type extern 1
  Last update from 203.0.113.141 on GigabitEthernet1/0/23, 00:01:20 ago
  Routing Descriptor Blocks:
  * 203.0.113.141, from 198.51.100.11, 00:01:20 ago, via GigabitEthernet1/0/23
      Route metric is 2, traffic share count is 1
      Route tag 1
CORE01#
CORE01#show standby brief
                     P indicates configured to preempt.
                     |
Interface   Grp  Pri P State   Active          Standby         Virtual IP
Vl1         1    110 P Active  local           203.0.113.3     203.0.113.1

OSPF メトリック 1 と HSRP Priority 110 で優先させています。

CPE01

CPE01#ping 198.51.100.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 198.51.100.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 77/87/109 ms
CPE01#
CPE01#traceroute 198.51.100.1
Type escape sequence to abort.
Tracing the route to 198.51.100.1
VRF info: (vrf in name/id, vrf out name/id)
  1 203.0.113.2 40 msec 41 msec 72 msec
  2 203.0.113.141 63 msec 66 msec 69 msec
  3 203.0.113.129 89 msec *  84 msec

通常時は CORE01 -> CE01 -> PE01 を経由します。

CE01 GIR BGP + OSPF 動作確認

start maintenance でホストを Remove します。

CE01#start maintenance
Template BGP_OSPF will be applied. Do you want to continue?[confirm]
CE01#
Nov  3 2024 00:43:52 UTC: %MMODE-6-MMODE_SNAPSHOT_CREATE_ENTER_MMODE: Generating current snapshot 'before_maintenance'
Nov  3 2024 00:43:52 UTC: %MMODE-6-MMODE_CLIENT_TRANSITION_START: Maintenance Isolate start for router bgp 64512
Nov  3 2024 00:44:23 UTC: %MMODE-6-MMODE_CLIENT_TRANSITION_COMPLETE: Maintenance Isolate complete for router bgp 64512
Nov  3 2024 00:44:23 UTC: %MMODE-6-MMODE_CLIENT_TRANSITION_START: Maintenance Isolate start for router ospf 1
Nov  3 2024 00:44:53 UTC: %MMODE-6-MMODE_CLIENT_TRANSITION_COMPLETE: Maintenance Isolate complete for router ospf 1
Nov  3 2024 00:44:53 UTC: %MMODE-6-MMODE_ISOLATED: System is in Maintenance

CE01(maint-mode)#show system mode
System Mode: Maintenance
Maintenance window: 14 mins remaining

CE01(maint-mode)#show system mode maintenance
System Mode: Maintenance
Maintenance window: 14 mins remaining
Current Maintenance Parameters:
Maintenance Duration: 15(mins)
Failsafe Timeout: 5(mins)
Maintenance Template: BGP_OSPF
Snapshot Template: default
Reload in Maintenance: False
CE01 BGP + OSPF GIR 動作確認
確認 通常時 CE01 メンテナンス時 備考
BGP
PE01#traceroute 203.0.113.101
Type escape sequence to abort.
Tracing the route to 203.0.113.101
VRF info: (vrf in name/id, vrf out name/id)
  1 203.0.113.130 39 msec 65 msec 37 msec
  2 203.0.113.142 66 msec 75 msec 67 msec
  3 203.0.113.101 [AS 64512] 94 msec *  94 msec
PE01#show ip bgp
BGP table version is 13, local router ID is 198.51.100.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
      0.0.0.0          0.0.0.0                                0 i
 *>   203.0.113.0/25   203.0.113.130          100             0 64512 i
 *                     203.0.113.134          300             0 64512 i
PE01#traceroute 203.0.113.101
Type escape sequence to abort.
Tracing the route to 203.0.113.101
VRF info: (vrf in name/id, vrf out name/id)
  1 203.0.113.134 50 msec 30 msec 35 msec
  2 203.0.113.146 57 msec 67 msec 67 msec
  3 203.0.113.101 [AS 64512] 125 msec *  135 msec
PE01#
PE01#show ip bgp
BGP table version is 8, local router ID is 198.51.100.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
      0.0.0.0          0.0.0.0                                0 i
 *>   203.0.113.0/25   203.0.113.134          300             0 64512 i
上り : CPE01

CORE01 はわたりを経由するように変更されています。


下り : PE01

PE01 は CE02 を経由するように変更されています。

CE01 の Next Hop がなくなっており、BGP アドレス広報を停止していました。

CE01#show ip bgp summary
BGP router identifier 198.51.100.11, local AS number 64512
BGP table version is 3, main routing table version 3
2 network entries using 496 bytes of memory
4 path entries using 544 bytes of memory
4/2 BGP path/bestpath attribute entries using 1184 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 2248 total bytes of memory
1 received paths for inbound soft reconfiguration
BGP activity 2/0 prefixes, 4/0 paths, scan interval 60 secs
2 networks peaked at 08:12:30 Nov 4 2024 JST (00:02:19.633 ago)

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
198.51.100.12   4        64512      24      24        3    0    0 00:03:04        1
203.0.113.129   4        64496      20      19        3    0    0 00:02:19        1

CE01#show ip bgp
BGP table version is 3, local router ID is 198.51.100.11
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   0.0.0.0          203.0.113.129                 300      0 64496 i

 *>   203.0.113.0/25   203.0.113.142            2         32768 i
 * i                   198.51.100.12           41    100      0 i
CE01(maint-mode)#show ip bgp summary
BGP router identifier 198.51.100.11, local AS number 64512
BGP table version is 20, main routing table version 20
2 network entries using 496 bytes of memory
5 path entries using 680 bytes of memory
5/2 BGP path/bestpath attribute entries using 1480 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 2680 total bytes of memory
1 received paths for inbound soft reconfiguration
BGP activity 5/3 prefixes, 22/17 paths, scan interval 60 secs
2 networks peaked at 08:12:51 Nov 3 2024 JST (03:45:55.560 ago)

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
198.51.100.12   4        64512     153     160       20    0    0 00:22:50        2
203.0.113.129   4        64496     155     159       20    0    0 00:23:14        1

CE01(maint-mode)#show ip bgp
BGP table version is 20, local router ID is 198.51.100.11
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 * i  0.0.0.0          198.51.100.12            0    100      0 64496 i
 *>                    203.0.113.129                 300      0 64496 i
 * i  203.0.113.0/25   198.51.100.12           41    100      0 i
 *>                    203.0.113.142        65536         32768 i
BGP ピア

ピアは維持されます。 eBGP 受信ルート ルート自体は保持しています。

OSPF
CE02#show ip route 0.0.0.0
Routing entry for 0.0.0.0/0, supernet
  Known via "ospf 1", distance 110, metric 81, candidate default path
  Tag 1, type extern 1
  Last update from 203.0.113.137 on Port-channel21, 00:00:20 ago
  Routing Descriptor Blocks:
  * 203.0.113.137, from 198.51.100.11, 00:00:20 ago, via Port-channel21
      Route metric is 81, traffic share count is 1
      Route tag 1
CE02#show ip route 0.0.0.0
Routing entry for 0.0.0.0/0, supernet
  Known via "bgp 64512", distance 20, metric 0, candidate default path
  Tag 64496, type external
  Last update from 203.0.113.133 00:00:07 ago
  Routing Descriptor Blocks:
  * 203.0.113.133, from 203.0.113.133, 00:00:07 ago
      opaque_ptr 0x7477AABBBCC0
      Route metric is 0, traffic share count is 1
      AS Hops 1
      Route tag 64496
      MPLS label: none
上り : CE02

通常時は CE01 宛わたり Po21 を向いていますが、CE01 GIR 中は PE01 宛 203.0.113.133 を向いています。

CORE01#show ip route 0.0.0.0
Routing entry for 0.0.0.0/0, supernet
  Known via "ospf 1", distance 110, metric 2, candidate default path
  Tag 1, type extern 1
  Last update from 203.0.113.141 on GigabitEthernet1/0/23, 00:07:11 ago
  Routing Descriptor Blocks:
  * 203.0.113.141, from 198.51.100.11, 00:07:11 ago, via GigabitEthernet1/0/23
      Route metric is 2, traffic share count is 1
      Route tag 1


CORE01#show ip ospf 1 rib

            OSPF Router with ID (198.51.100.21) (Process ID 1)


                Base Topology (MTID 0)

OSPF local RIB
Codes: * - Best, > - Installed in global RIB

*>  198.51.100.11/32, Intra, cost 65536, area 0.0.0.0
      via 203.0.113.141, GigabitEthernet1/0/23
*>  198.51.100.12/32, Intra, cost 91, area 0.0.0.0
      via 203.0.113.150, Port-channel21
<snip>


CORE01#ping 198.51.100.11
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 198.51.100.11, timeout is 2 seconds:
!!!!!
  Success rate is 100 percent (5/5), round-trip min/avg/max = 19/25/35 ms
CORE01#show ip route 0.0.0.0
Routing entry for 0.0.0.0/0, supernet
  Known via "ospf 1", distance 110, metric 190, candidate default path
  Tag 1, type extern 1
  Last update from 203.0.113.150 on Port-channel21, 00:00:06 ago
  Routing Descriptor Blocks:
  * 203.0.113.150, from 198.51.100.12, 00:00:06 ago, via Port-channel21
      Route metric is 190, traffic share count is 1
      Route tag 1
上り : CORE01

CE01 Lo0 ルートの OSPF コスト メトリックが 65536 になっており、重くなっていますが、疎通自体は可能です。

CPE01#traceroute 198.51.100.1
Type escape sequence to abort.
Tracing the route to 198.51.100.1
VRF info: (vrf in name/id, vrf out name/id)
  1 203.0.113.2 71 msec 73 msec 65 msec
  2 203.0.113.141 82 msec 53 msec 55 msec
  3 203.0.113.129 66 msec *  80 msec
CPE01#traceroute 198.51.100.1
Type escape sequence to abort.
Tracing the route to 198.51.100.1
VRF info: (vrf in name/id, vrf out name/id)
  1 203.0.113.2 37 msec 69 msec 38 msec
  2 203.0.113.150 93 msec 86 msec 88 msec
  3 203.0.113.145 109 msec 110 msec 111 msec
  4 203.0.113.133 213 msec *  154 msec
上り : CPE01

CORE01 のわたりを経由するようになりました。

timeout 15 経過後、切り戻りました。

CE01(maint-mode)#
Nov  3 2024 23:52:04 UTC: %MMODE-6-MMODE_CLIENT_TRANSITION_START: Maintenance Insert start for router ospf 1
Nov  3 2024 23:52:34 UTC: %MMODE-6-MMODE_CLIENT_TRANSITION_COMPLETE: Maintenance Insert complete for router ospf 1
Nov  3 2024 23:52:34 UTC: %MMODE-6-MMODE_CLIENT_TRANSITION_START: Maintenance Insert start for router bgp 64512
Nov  3 2024 23:53:04 UTC: %MMODE-6-MMODE_CLIENT_TRANSITION_COMPLETE: Maintenance Insert complete for router bgp 64512
Nov  3 2024 23:53:04 UTC: %MMODE-6-MMODE_SNAPSHOT_CREATE_EXIT_MMODE: Generating current snapshot 'after_maintenance'

Please use 'show system snapshots compare before_maintenance after_maintenance' to check the health of the system
Nov  3 2024 23:53:04 UTC: %MMODE-6-MMODE_INSERTED: System is in Normal Mode

CORE01 GIR OSPF + HSRP 動作確認

start maintenance でホストを Remove します。

CORE01#start maintenance
Template OSPF_HSRP will be applied. Do you want to continue?[confirm]
CORE01#
Nov  3 2024 23:55:21 UTC: %MMODE-6-MMODE_SNAPSHOT_CREATE_ENTER_MMODE: Generating current snapshot 'before_maintenance'
Nov  3 2024 23:55:21 UTC: %MMODE-6-MMODE_CLIENT_TRANSITION_START: Maintenance Isolate start for router ospf 1
Nov  3 2024 23:55:51 UTC: %MMODE-6-MMODE_CLIENT_TRANSITION_COMPLETE: Maintenance Isolate complete for router ospf 1
Nov  3 2024 23:55:51 UTC: %MMODE-6-MMODE_CLIENT_TRANSITION_START: Maintenance Isolate start for hsrp Vlan1 1
Nov  3 2024 23:55:51 UTC: %HSRP-5-STATECHANGE: Vlan1 Grp 1 state Active -> Init
Nov  3 2024 23:56:21 UTC: %MMODE-6-MMODE_CLIENT_TRANSITION_COMPLETE: Maintenance Isolate complete for hsrp Vlan1 1
Nov  3 2024 23:56:21 UTC: %MMODE-6-MMODE_ISOLATED: System is in Maintenance

CORE01(maint-mode)#show system mode
System Mode: Maintenance
Maintenance window: 14 mins remaining

CORE01(maint-mode)#show system mode maintenance
System Mode: Maintenance
Maintenance window: 14 mins remaining
Current Maintenance Parameters:
Maintenance Duration: 15(mins)
Failsafe Timeout: 5(mins)
Maintenance Template: OSPF_HSRP
Snapshot Template: default
Reload in Maintenance: False
CORE01 OSPF + HSRP GIR 動作確認
確認 通常時 CORE01 メンテナンス時 備考
OSPF
CE01#show ip route 198.51.100.21
Routing entry for 198.51.100.21/32
  Known via "ospf 1", distance 110, metric 2, type intra area
  Last update from 203.0.113.142 on GigabitEthernet1/0/1, 00:00:07 ago
  Routing Descriptor Blocks:
  * 203.0.113.142, from 198.51.100.21, 00:00:07 ago, via GigabitEthernet1/0/1
      Route metric is 2, traffic share count is 1
CE01#show ip route 198.51.100.21
Routing entry for 198.51.100.21/32
  Known via "ospf 1", distance 110, metric 65536, type intra area
  Last update from 203.0.113.142 on GigabitEthernet1/0/1, 00:02:42 ago
  Routing Descriptor Blocks:
  * 203.0.113.142, from 198.51.100.21, 00:02:42 ago, via GigabitEthernet1/0/1
      Route metric is 65536, traffic share count is 1
OSPF ルートメトリック

65536 になっており、全く優先されないルートになりました。 上述の結果と同じく疎通は可能です。

HSRP
CORE01#show standby brief
                     P indicates configured to preempt.
                     |
Interface   Grp  Pri P State   Active          Standby         Virtual IP
Vl1         1    110 P Active  local           203.0.113.3     203.0.113.1
CORE01(maint-mode)#show standby brief
                     P indicates configured to preempt.
                     |
Interface   Grp  Pri P State   Active          Standby         Virtual IP
Vl1         1    110 P Init    203.0.113.3     unknown         203.0.113.1

Nov  4 2024 00:04:55 UTC: %MMODE-6-MMODE_CLIENT_TRANSITION_COMPLETE: Maintenance Isolate complete for router ospf 1
Nov  4 2024 00:04:55 UTC: %MMODE-6-MMODE_CLIENT_TRANSITION_START: Maintenance Isolate start for hsrp Vlan1 1
Nov  4 2024 00:04:55 UTC: HSRP: Vl1 Grp 1 Resign out 203.0.113.2 Active  pri 110 vIP 203.0.113.1
Nov  4 2024 00:04:55 UTC: %HSRP-5-STATECHANGE: Vlan1 Grp 1 state Active -> Init
HSRP

Resign メッセージを送信し、降格しました。 State が Init となっており、HSRP Hello を送信しなくなりました。

CORE02#show standby brief
                     P indicates configured to preempt.
                     |
Interface   Grp  Pri P State   Active          Standby         Virtual IP
Vl1         1    105 P Standby 203.0.113.2     local           203.0.113.1
CORE02#show standby brief
                     P indicates configured to preempt.
                     |
Interface   Grp  Pri P State   Active          Standby         Virtual IP
Vl1         1    105 P Active  local           unknown         203.0.113.1
上り : CORE02

CORE01 が HSRP Hello を送信しなくなったため、Standby が unknown になりました。

CPE01#traceroute 198.51.100.1
Type escape sequence to abort.
Tracing the route to 198.51.100.1
VRF info: (vrf in name/id, vrf out name/id)
  1 203.0.113.2 48 msec 43 msec 83 msec
  2 203.0.113.141 72 msec 78 msec 58 msec
  3 203.0.113.129 82 msec *  78 msec
CPE01#traceroute 198.51.100.1
Type escape sequence to abort.
Tracing the route to 198.51.100.1
VRF info: (vrf in name/id, vrf out name/id)
  1 203.0.113.3 47 msec 38 msec 48 msec
  2 203.0.113.145 63 msec 63 msec 55 msec
  3 203.0.113.137 79 msec 98 msec 90 msec
  4 203.0.113.129 111 msec *  113 msec

CPE01#ping 198.51.100.1 rep 1000000 tim 1
Type escape sequence to abort.
Sending 1000000, 100-byte ICMP Echos to 198.51.100.1, timeout is 1 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!
 <snip>
 CPE01#ping 198.51.100.1 rep 1000000 tim 1
 Type escape sequence to abort.
 Sending 1000000, 100-byte ICMP Echos to 198.51.100.1, timeout is 1 seconds:
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!
上り : CPE01

CE01 のわたりを経由するようになりました。

Remove / Insert 時の断時間は OSPF / HSRP でそれぞれ 1 秒でした。

断時間が計測できないケースもありました。

  • 左の例では OSPF 切り戻りが断なし

動作確認 - ホスト別コマンドリスト

PE01

show ip bgp summary

show ip bgp

ping 203.0.113.101

traceroute 203.0.113.101

CE01 . CE02

show ip bgp summary

show ip bgp

show ip route 0.0.0.0

show ip route 198.51.100.21

show ip ospf neighbor

CORE01 , CORE02

show ip route 0.0.0.0

show ip route 198.51.100.11

show ip ospf neighbor

show standby brief

CPE01

traceroute 198.51.100.1

ping 198.51.100.1 rep 1000000 timeout 1

リファレンス

High Availability Configuration Guide, Cisco IOS XE Dublin 17.12.x (Catalyst 9500 Switches)

Chapter: Configuring Graceful Insertion and Removal

脚注