BGP Graceful Restart

RT1——RT2——RT3——RT4

Q: Graceful-Restartって何?

A: BGPがリセットされてもしばらくの間経路を保持しておいて、復旧時に経路情報を継続利用できるようにする機能のこと

コンフィグ(RT1~4)

[iosv-1]
int lo0
ip add 100.1.1.1 255.255.255.0
!
int gi0/0
ip add 192.168.12.1 255.255.255.0
no shut
!
router bgp 64700
nei 192.168.12.2 remote 64700
nei 192.168.12.2 next-hop-self
nei 192.168.12.2 ha-mode graceful-restart
net 100.1.1.0 mask 255.255.255.0

[iosv-2]
int lo0
ip add 100.2.2.2 255.255.255.0
!
int gi0/0
ip add 192.168.12.2 255.255.255.0
no shut
!
int gi0/1
ip add 192.168.23.2 255.255.255.0
no shut
!
router bgp 64700
nei 192.168.12.1 remote 64700
nei 192.168.12.1 next-hop-self
nei 192.168.12.1 ha-mode graceful-restart
nei 192.168.23.3 remote 64700
nei 192.168.23.3 next-hop-self
nei 192.168.23.3 ha-mode graceful-restart
net 100.2.2.0 mask 255.255.255.0

[iosv-3]
int lo0
ip address 100.3.3.0 255.255.255.0
!
int gi0/0
ip add 192.168.23.3 255.255.255.0
no shut
!
int gi0/1
ip add 192.168.34.3 255.255.255.0
no shut
!
router bgp 64700
nei 192.168.34.4 remote 64700
nei 192.168.34.4 next-hop-self
nei 192.168.34.4 ha-mode graceful-restart
nei 192.168.23.2 remote 64700
nei 192.168.23.2 next-hop-self
nei 192.168.23.2 ha-mode graceful-restart
net 100.3.3.0 mask 255.255.255.0

[iosv-4]
int lo0
ip add 100.4.4.4 255.255.255.0
!
int gi0/0
ip add 192.168.34.4 255.255.255.0
no shut
!
router bgp 64700
nei 192.168.34.3 remote 64700
nei 192.168.34.3 next-hop-self
nei 192.168.34.3 ha-mode graceful-restart
net 100.4.4.0 mask 255.255.255.0

[コンフィグ要約]

  • 物理IFでピアリング、AS64700統一のiBGP
  • neighbor x.x.x.x ha-mode graceful-restartが本日のメイン
  • タイマーは置いといて基本的な挙動を確認することが目的
  • BGP RIBやFIB等の確認をわかりやすくするためLo0を100.x.x.x/24でBGP networkで広告(next-hop-self込み)
  • iosv-2,3を再起動させたりセッションクリアしたりする

iosv-2,3間でのOPEN Message

◎新たに追加されたGraceful Restart Capability(以下GRC)を確認する

iosv-2にて#clear ip bgp * を実行

iosv-2→iosv-3のBGP OPEN Message
iosv-3→iosv-2のBGP OPEN Message

・iosv-2でclearを実行したので、iosv-2から送信されたGRCではRestartのビットが立っている

【悲報1】staleについて

(私の調べた限りであり、そんなことないのかもしれないが)

どうやらIOS XEではstale経路であるかどうかを確認するコマンドはないそう。

【悲報2】extended modeについて

コマンドリファレンスに載ってない……。

CCIE的に考えるのであれば、リセット前の経路を保持して迅速な復旧を可能にすることを把握しておいて、変数としてrestart-time(再起動にかかるであろう時間)とstale-path time(経路をstaleとして保持しておく時間)を覚えておけばそれ以上のコンフィグはない。

とはいえすっごいもやもやする……。

GoBGPとかだとこの辺りも検証しやすいのかなあ。一応前回勉強したときよりはBGP Graceful Restartへの解像度があがったのでメモとして残しておく。

参考

BGP Graceful Restartに関わる各OSSルーティングプラットフォームの動向調査

Graceful Restart Mechanism for BGP

Cisco IOS IP Routing: BGP Command Reference

1.5 BGP