メインコンテンツへスキップ
  1. ネットワーク 記事一覧/
  2. BGP記事一覧/

BGP Best External(ベストでない外部経路の広告)

目次

BGP Best Externalとは

BGPは同じプレフィックスに複数の経路があっても、ベストパスを1本だけ選んでピアへ広告しますRFC 4271の9.1.3(Phase 3: Route Dissemination)が定める規則で、iBGPピアへもeBGPピアへも、広告されるのはLoc-RIBに入ったベストパスだけです。

この規則には、境界ルータが自分のeBGP経路より他の境界ルータからのiBGP経路をベストに選んだとき、自分のeBGP経路をどこにも広告しなくなるという帰結があります。AS内の他のルータから見ると、その境界ルータの先にある出口は存在しないのと同じです。

Best Externalは、この場合に「ベストではない外部経路のうち最良のもの(best external)」をiBGPピアへ広告する機能です。IETFのドラフト draft-ietf-idr-best-external(期限切れ、標準化はされていない)が手続きを整理しています。

Given that Internal paths are not re-advertised to Internal peers, it was specified that the best of the external paths, as determined by the path selection tie breaking algorithm, would be advertised to Internal peers.

ドラフトが述べているとおり、初期のBGP-4(RFC 1771)ではiBGPピアへの広告は「外部経路のうち最良のもの」で、RFC 4271で「全体のベストパス」に変わりました。Best Externalは、その古い規則をルートリフレクタやコンフェデレーションの環境でも使えるように整理し直したものです。

なぜ必要になるか:active/backup構成

出口を1つに寄せる運用(active/backup構成)でこの問題が起きます。

ルータ受けている経路ベストパスiBGPピアへの広告
R1(主出口)R4からのeBGP(LOCAL_PREF 200を付ける)自分のeBGPする
R2(バックアップ出口)R4からのeBGP(LOCAL_PREF 100)、R1からのiBGP(LOCAL_PREF 200R1からのiBGPしない(ベストがiBGPなので、iBGPピアへ広告する経路が無い)
R3(内部)R1からのiBGPだけR1経由

R2の出口は生きているのに、R3もR1もR2経由の経路を知りません。BGP PICで説明したバックアップパスは「同じプレフィックスを別のネクストホップから受けた経路」なので、PICのバックアップの材料が無くなります。R1-R4リンクが落ちると、R1がR3へ取り消しを送り、R2がベストパスを選び直してR3へ広告し、R3がそれを入れるまで転送が止まります。

R2にadvertise best-externalを入れると、R2は自分のeBGP経路(ベストではないが外部経路のうち最良)をiBGPピアへ広告します。R3とR1はR2経由の経路を受け取り、PICのバックアップとしてFIBに入れられます。ドラフトが挙げる効果は、障害時の接続の早い回復(Faster restoration of connectivity)のほか、ドメイン間のチャーンとブラックホールの削減、iBGPの経路振動の抑止、同じ隣接ASからのMEDの比較の改善です。

ループの条件とアドレスファミリーの制限

Best Externalで広告される経路は、受け取ったルータでは(LOCAL_PREFが低いので)ベストになりません。定常状態では転送に使われず、障害のときだけバックアップとして使われます。ドラフトはこれをAS内の経路選択の一貫性の根拠にしています。

consistency in the path selection process across the AS is still guaranteed since the ingress routers will not choose the best-external route as the best route for a destination in steady state.

ただし障害の瞬間には注意が要ります。バックアップに切り替えたルータのパケットは、ネクストホップ(R2)までIGPの経路をたどります。途中に別のルータがいると、そのルータは自分のBGPテーブルで転送先を決めるので、そのルータのベストパスがまだ元の出口を向いていればパケットは送り返されてループします。ラベル(MPLS)でネクストホップまで運ぶか、この記事の構成のようにバックアップ側の境界ルータへ直結リンクで届くなら、この問題は起きません。

Ciscoのガイドはこの理由から、Best Externalを設定できるアドレスファミリーを限定して説明しています。

OSガイドの記述出典
IOS XRVRF IPv4/IPv6、VPNv4/VPNv6、L2VPN、IPv4/IPv6 labeled-unicast。“Unlabelled best-external is not supported as it may create routing loop”ASR 9000 Routing Command Reference, IOS XR 6.4.x
IOS XEVPNv4、VPNv6、IPv4 VRF、IPv6 VRFIOS XE 17.x IP Routing Configuration Guide

一方、この記事で使うXRd 26.1.1は素のIPv4 unicastのaddress-familyでもadvertise best-externalを受け付け、そのとおりに動きます(STEP 5で確認)。古いコマンドリファレンスの制限は現行のリリースには当てはまりません。MPLS VPN(VPNv4)で使う形は、BGP Best External(MPLS VPN)で解説します。

IOS XRでの設定と確認

項目内容
advertise best-externaladdress-family配下。ベストがiBGP経路のとき、最良の外部経路をiBGPピアとRRクライアントへ広告する
show bgp <プレフィックス>Best Externalに選ばれた経路にbest-externalが付き、Advertised ... to peersの行が付く。ベストではない経路にNot advertised to any peerと出れば広告されていない
show bgp neighbors <ピア> advertised-routesそのピアへ実際に広告した経路
show route <プレフィックス> / show cef <プレフィックス>PICのバックアップが入っているか(BGP backup path / backup

実機での検証

XRd 26.1.1のルータ5台で確認します。

BGP Best Externalの検証トポロジ
  • AS 65001はR1・R2が境界、R3が内部(iBGPフルメッシュ、next-hop-self、OSPF area 0)。R1-R2は直結
  • AS 65002のR4はR1・R2の両方にeBGPで接続し、Lo1 192.168.4.0/24とLo2 100.63.255.0/24を広告する。戻り(R4 → R5)はR2経由に固定している(R4の入方向でR2からの経路にLOCAL_PREF 200)。障害を入れるR1-R4リンクを戻りが通らないようにして、往路だけを測るため
  • AS 65003のR5は通信の発信元。R5 → R4の通信はR3 → R1 → R4を通る
  • 出方向・入方向ポリシーはネイバーごとに別名(中身はpass)、全ネイバーにsoft-reconfiguration inbound always

障害のあいだのロスは、R5から192.168.4.1100.63.255.1へ100ミリ秒間隔で流したpingと、R3-R5間のキャプチャーの応答の途切れから求めます(BGP PICと同じ測り方)。

検証の全体像

STEP操作確かめること
0初期状態R1・R2とも自分のeBGPがベストで、互いに広告している。R3には2本届く
1R1の入方向でR4からの経路にLOCAL_PREF 200R2のベストがiBGP(R1経由)になり、R2は自分のeBGP経路を広告しなくなる(WITHDRAW)。R3・R1の経路は1本に
2R1・R3にPIC(backup 1 install材料が無いのでbackupが付かない
3R1-R4リンク断バックアップが無いのでロスが出る。R1の取り消し → R2の再選択と広告 → R3が入れるまで
4復旧
5R2にadvertise best-externalR2がベストでない自分のeBGP経路をiBGPピアへ広告する(UPDATE、best-externalの印)。R3・R1にbackupが付く
6R1-R4リンク断(Best Externalあり)バックアップがあるのでロスなし
7復旧
8no advertise best-external(最終状態)R2の広告が消え(WITHDRAW)、バックアップも消える

以降のshowとpcapの時刻はすべてUTCです(ルータのsyslogと揃えています)。

STEP 0:初期状態

R1・R2とも自分のeBGP経路がベストで、互いにiBGPで広告し合っています。 R2のshow bgpでは、eBGP経路(10.2.4.4)にAdvertised IPv4 Unicast paths to peersが付いてR1・R3へ広告されており、R3には2本届いています。

R2 show bgp 192.168.4.0/24(STEP 0)
RP/0/RP0/CPU0:R2#show bgp 192.168.4.0/24
Wed Sep 16 13:25:22.272 UTC
BGP routing table entry for 192.168.4.0/24
Versions:
  Process           bRIB/RIB   SendTblVer
  Speaker                  4            4
Last Modified: Sep 16 12:47:14.023 for 00:38:08
Paths: (2 available, best #2)
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.0.0.3        10.0.0.1        
  Path #1: Received by speaker 0
  Not advertised to any peer
  65002, (received & used)
    10.0.0.1 (metric 2) from 10.0.0.1 (10.0.0.1)
      Origin IGP, metric 0, localpref 100, valid, internal
      Received Path ID 0, Local Path ID 0, version 0
  Path #2: Received by speaker 0
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.0.0.3        10.0.0.1        
  65002, (received & used)
    10.2.4.4 from 10.2.4.4 (10.0.0.4)
      Origin IGP, metric 0, localpref 100, valid, external, best, group-best
      Received Path ID 0, Local Path ID 1, version 4
      Origin-AS validity: (disabled)
R1 show bgp 192.168.4.0/24(STEP 0)
RP/0/RP0/CPU0:R1#show bgp 192.168.4.0/24
Wed Sep 16 13:24:30.104 UTC
BGP routing table entry for 192.168.4.0/24
Versions:
  Process           bRIB/RIB   SendTblVer
  Speaker                  6            6
Last Modified: Sep 16 12:47:16.023 for 00:37:14
Paths: (2 available, best #2)
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.0.0.3        10.0.0.2        
  Path #1: Received by speaker 0
  Not advertised to any peer
  65002, (received & used)
    10.0.0.2 (metric 2) from 10.0.0.2 (10.0.0.2)
      Origin IGP, metric 0, localpref 100, valid, internal
      Received Path ID 0, Local Path ID 0, version 0
  Path #2: Received by speaker 0
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.0.0.3        10.0.0.2        
  65002, (received & used)
    10.1.4.4 from 10.1.4.4 (10.0.0.4)
      Origin IGP, metric 0, localpref 100, valid, external, best, group-best
      Received Path ID 0, Local Path ID 1, version 6
      Origin-AS validity: (disabled)
R3 show bgp 192.168.4.0/24(STEP 0)
RP/0/RP0/CPU0:R3#show bgp 192.168.4.0/24
Wed Sep 16 13:26:14.746 UTC
BGP routing table entry for 192.168.4.0/24
Versions:
  Process           bRIB/RIB   SendTblVer
  Speaker                  7            7
Last Modified: Sep 16 12:47:18.023 for 00:38:56
Paths: (2 available, best #1)
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.3.5.5        
  Path #1: Received by speaker 0
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.3.5.5        
  65002, (received & used)
    10.0.0.1 (metric 2) from 10.0.0.1 (10.0.0.1)
      Origin IGP, metric 0, localpref 100, valid, internal, best, group-best
      Received Path ID 0, Local Path ID 1, version 7
  Path #2: Received by speaker 0
  Not advertised to any peer
  65002, (received & used)
    10.0.0.2 (metric 2) from 10.0.0.2 (10.0.0.2)
      Origin IGP, metric 0, localpref 100, valid, internal
      Received Path ID 0, Local Path ID 0, version 0

R5からR4への通信はR3 → R1 → R4を通ります。

R5 traceroute 192.168.4.1(STEP 0)
RP/0/RP0/CPU0:R5#traceroute 192.168.4.1 source 192.168.5.1 probe 3 timeout 1 maxttl 6
Wed Sep 16 13:28:22.320 UTC

Type escape sequence to abort.
Tracing the route to 192.168.4.1

 1  10.3.5.3 7 msec  5 msec  5 msec 
 2  10.1.3.1 9 msec  8 msec  28 msec 
 3  10.1.4.4 12 msec  *  13 msec 

STEP 1:R1の入方向でR4からの経路にLOCAL_PREF 200

R2のベストパスがR1からのiBGPになり、R2は自分のeBGP経路を広告しなくなります。

R1 STEP 1 で commit した設定
RP/0/RP0/CPU0:R1#show configuration commit changes last 1
Wed Sep 16 13:28:46.113 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
route-policy FROM-R4
  set local-preference 200
  pass
end-policy
!
end

R2のshow bgpでは、ベストがlocalpref 200のR1経由に変わり、自分のeBGP経路はNot advertised to any peerになっています。

R2 show bgp 192.168.4.0/24(STEP 1)
RP/0/RP0/CPU0:R2#show bgp 192.168.4.0/24
Wed Sep 16 13:31:44.925 UTC
BGP routing table entry for 192.168.4.0/24
Versions:
  Process           bRIB/RIB   SendTblVer
  Speaker                  9            9
Last Modified: Sep 16 13:28:47.023 for 00:02:58
Paths: (2 available, best #1)
  Not advertised to any peer
  Path #1: Received by speaker 0
  Not advertised to any peer
  65002, (received & used)
    10.0.0.1 (metric 2) from 10.0.0.1 (10.0.0.1)
      Origin IGP, metric 0, localpref 200, valid, internal, best, group-best
      Received Path ID 0, Local Path ID 1, version 9
  Path #2: Received by speaker 0
  Not advertised to any peer
  65002, (received & used)
    10.2.4.4 from 10.2.4.4 (10.0.0.4)
      Origin IGP, metric 0, localpref 100, valid, external
      Received Path ID 0, Local Path ID 0, version 0
      Origin-AS validity: (disabled)

キャプチャーでは、R1がLOCAL_PREF 200の経路をUPDATEで送った30ミリ秒後に、R2がR3とR1へWITHDRAWMP_UNREACH_NLRIで2つのプレフィックス)を送っています。R2の出口は生きていますが、AS内の他のルータからはもう見えません。

STEP 1 の R2-R3 間(R2 → R3 の UPDATE)
$ tshark -r bgp-best-external-step1-r2r3.pcap -t ud -Y 'bgp.type==2'
    2 2026-09-16 13:28:47.539877Z     10.0.0.2 → 10.0.0.3     BGP 85 UPDATE Message

R3とR1の経路は1本になります。

R3 show bgp 192.168.4.0/24(STEP 1)
RP/0/RP0/CPU0:R3#show bgp 192.168.4.0/24
Wed Sep 16 13:32:37.238 UTC
BGP routing table entry for 192.168.4.0/24
Versions:
  Process           bRIB/RIB   SendTblVer
  Speaker                  9            9
Last Modified: Sep 16 13:28:47.023 for 00:03:50
Paths: (1 available, best #1)
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.3.5.5        
  Path #1: Received by speaker 0
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.3.5.5        
  65002, (received & used)
    10.0.0.1 (metric 2) from 10.0.0.1 (10.0.0.1)
      Origin IGP, metric 0, localpref 200, valid, internal, best, group-best
      Received Path ID 0, Local Path ID 1, version 9
R1 show bgp 192.168.4.0/24(STEP 1)
RP/0/RP0/CPU0:R1#show bgp 192.168.4.0/24
Wed Sep 16 13:30:53.362 UTC
BGP routing table entry for 192.168.4.0/24
Versions:
  Process           bRIB/RIB   SendTblVer
  Speaker                 10           10
Last Modified: Sep 16 13:28:47.023 for 00:02:06
Paths: (2 available, best #1)
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.0.0.3        10.0.0.2        
  Path #1: Received by speaker 0
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.0.0.3        10.0.0.2        
  65002
    10.1.4.4 from 10.1.4.4 (10.0.0.4)
      Origin IGP, metric 0, localpref 200, valid, external, best, group-best
      Received Path ID 0, Local Path ID 1, version 10
      Origin-AS validity: (disabled)
  Path #2: Received by speaker 0
  Not advertised to any peer
  65002, (received-only)
    10.1.4.4 from 10.1.4.4 (10.0.0.4)
      Origin IGP, metric 0, localpref 100, valid, external
      Received Path ID 0, Local Path ID 0, version 0
      Origin-AS validity: (disabled)

STEP 2:R1・R3にPIC(backup 1 install

バックアップにする経路が無いので、PICを設定してもbackupは付きません。 R3のルーティングテーブルにはネクストホップが1つだけで、Number of pic pathsの行も出ません。

R3 STEP 2 で commit した設定
RP/0/RP0/CPU0:R3#show configuration commit changes last 1
Wed Sep 16 13:35:20.308 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
route-policy PIC
  set path-selection backup 1 install
end-policy
!
router bgp 65001
 address-family ipv4 unicast
  additional-paths selection route-policy PIC
 !
!
end
R3 show route 192.168.4.0/24(STEP 2)
RP/0/RP0/CPU0:R3#show route 192.168.4.0/24
Wed Sep 16 13:39:14.906 UTC

Routing entry for 192.168.4.0/24
  Known via "bgp 65001", distance 200, metric 0
  Tag 65002, type internal
  Installed Sep 16 13:28:47.509 for 00:10:27
  Routing Descriptor Blocks
    10.0.0.1, from 10.0.0.1
      Route metric is 0, Wt is 1
  No advertising protos. 

STEP 3:R1-R4リンク断(Best Externalなし)

バックアップが無いので、R2の経路がAS内に広まるまで転送が止まります。 R1のGi0/0/0/2をshutdownすると(R4側も落としています)、R1はR2へWITHDRAWを送り、それを受けたR2は自分のeBGP経路をベストに選び直してR1・R3へ広告します。

R1 show logging(STEP 3)
RP/0/RP0/CPU0:R1#show logging start Sep 16 13:37:54
Wed Sep 16 13:45:42.363 UTC
Time Zone UTC, DST disabled
Syslog logging: enabled (0 messages dropped, 0 flushes, 0 overruns)
    Console logging: Disabled
    Monitor logging: level debugging, 0 messages logged
    Trap logging: level informational, 0 messages logged
    Buffer logging: level debugging, 158 messages logged

Log Buffer (2097152 bytes):

RP/0/RP0/CPU0:Sep 16 13:37:54.525 UTC: logger[68497]: %OS-SYSLOG-6-LOG_INFO : informational STEP3-BEGIN 
RP/0/RP0/CPU0:Sep 16 13:37:54.918 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[11107]: Received disconnect from 10.100.3.1 port 50706:11: disconnected by user 
RP/0/RP0/CPU0:Sep 16 13:37:54.918 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[11107]: Disconnected from user cisco 10.100.3.1 port 50706 
RP/0/RP0/CPU0:Sep 16 13:41:58.111 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[11495]: Accepted authentication/pam for cisco from 10.100.3.1 port 51046 ssh2 
RP/0/RP0/CPU0:Sep 16 13:42:02.703 UTC: ifmgr[155]: %PKT_INFRA-LINK-5-CHANGED : Interface GigabitEthernet0/0/0/2, changed state to Administratively Down 
RP/0/RP0/CPU0:Sep 16 13:42:02.707 UTC: bgp[1084]: %ROUTING-BGP-5-ADJCHANGE : neighbor 10.1.4.4 Down - Admin. shutdown (CEASE notification sent - administrative shutdown) (VRF: default) (AS: 65002) 
RP/0/RP0/CPU0:Sep 16 13:42:03.132 UTC: config[68893]: %MGBL-CONFIG-6-DB_COMMIT : Configuration committed by user 'cisco'. Use 'show configuration commit changes 1000000005' to view the changes. 
RP/0/RP0/CPU0:Sep 16 13:42:03.327 UTC: config[68893]: %MGBL-SYS-5-CONFIG_I : Configured from console by cisco on vty0 (10.100.3.1) 
RP/0/RP0/CPU0:Sep 16 13:42:05.334 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[11500]: Received disconnect from 10.100.3.1 port 51046:11: disconnected by user 
RP/0/RP0/CPU0:Sep 16 13:42:05.334 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[11500]: Disconnected from user cisco 10.100.3.1 port 51046 
RP/0/RP0/CPU0:Sep 16 13:45:24.732 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[11852]: Accepted authentication/pam for cisco from 10.100.3.1 port 51339 ssh2 
RP/0/RP0/CPU0:Sep 16 13:45:39.023 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[11868]: Received disconnect from 10.100.3.1 port 51339:11: disconnected by user 
RP/0/RP0/CPU0:Sep 16 13:45:39.023 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[11868]: Disconnected from user cisco 10.100.3.1 port 51339 
RP/0/RP0/CPU0:Sep 16 13:45:40.116 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[12068]: Accepted authentication/pam for cisco from 10.100.3.1 port 51349 ssh2 
STEP 3 の R1-R2 間(R1 → R2 の WITHDRAW と R2 → R1 の UPDATE)
$ tshark -r bgp-best-external-step3-r1r2.pcap -t ud -Y 'bgp.type==2'
    9 2026-09-16 13:42:02.905376Z     10.0.0.1 → 10.0.0.2     BGP 85 UPDATE Message
   10 2026-09-16 13:42:02.939058Z     10.0.0.2 → 10.0.0.1     BGP 125 UPDATE Message
STEP 3 の R2-R3 間(R2 → R3 の UPDATE)
$ tshark -r bgp-best-external-step3-r2r3.pcap -t ud -Y 'bgp.type==2'
  307 2026-09-16 13:42:02.935153Z     10.0.0.2 → 10.0.0.3     BGP 125 UPDATE Message

リンク断(13:42:02.703)からR2の再広告(13:42:02.935)までは0.23秒ですが、R3がそれを入れて応答が戻ったのは13:42:03.928で、途切れは1.12秒です。100ミリ秒間隔のpingは900発中1発を失いました。

R5 ping 192.168.4.1(STEP 3、100ミリ秒間隔)
RP/0/RP0/CPU0:R5#ping 192.168.4.1 source 192.168.5.1 count 900 interval 100 timeout 1
Wed Sep 16 13:41:44.291 UTC
Type escape sequence to abort.
Sending 900, 100-byte ICMP Echos to 192.168.4.1 timeout is 1 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 99 percent (899/900), round-trip min/avg/max = 8/16/94 ms
R5 ping 100.63.255.1(STEP 3、100ミリ秒間隔)
RP/0/RP0/CPU0:R5#ping 100.63.255.1 source 192.168.5.1 count 900 interval 100 timeout 1
Wed Sep 16 13:41:48.992 UTC
Type escape sequence to abort.
Sending 900, 100-byte ICMP Echos to 100.63.255.1 timeout is 1 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 99 percent (899/900), round-trip min/avg/max = 9/15/93 ms

STEP 4:復旧

両端をno shutdownにしてSTEP 2の状態に戻します。

STEP 5:R2にadvertise best-external

R2はベストではない自分のeBGP経路をiBGPピアへ広告し、R3・R1にバックアップが戻ります。 設定はaddress-family配下の1行です。

R2 STEP 5 で commit した設定
RP/0/RP0/CPU0:R2#show configuration commit changes last 1
Wed Sep 16 13:56:10.659 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router bgp 65001
 address-family ipv4 unicast
  advertise best-external
 !
!
end

R2のshow bgpでは、eBGP経路にbest-externalが付き、Advertised IPv4 Unicast paths to peersの行が戻っています。ベストパスはR1経由のままです。

R2 show bgp 192.168.4.0/24(STEP 5)
RP/0/RP0/CPU0:R2#show bgp 192.168.4.0/24
Wed Sep 16 13:59:09.675 UTC
BGP routing table entry for 192.168.4.0/24
Versions:
  Process           bRIB/RIB   SendTblVer
  Speaker                 16           16
Last Modified: Sep 16 13:56:12.023 for 00:02:57
Paths: (2 available, best #1)
  Not advertised to any peer
  Path #1: Received by speaker 0
  Not advertised to any peer
  65002, (received & used)
    10.0.0.1 (metric 2) from 10.0.0.1 (10.0.0.1)
      Origin IGP, metric 0, localpref 200, valid, internal, best, group-best
      Received Path ID 0, Local Path ID 1, version 14
  Path #2: Received by speaker 0
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.0.0.3        10.0.0.1        
  65002, (received & used)
    10.2.4.4 from 10.2.4.4 (10.0.0.4)
      Origin IGP, metric 0, localpref 100, valid, external, best-external
      Received Path ID 0, Local Path ID 2, version 16
      Origin-AS validity: (disabled)

キャプチャーには、commitの直後にR2がR3へ送ったUPDATE(LOCAL_PREF 100の2プレフィックス)が入っています。

STEP 5 の R2-R3 間(R2 → R3 の UPDATE)
$ tshark -r bgp-best-external-step5-r2r3.pcap -t ud -Y 'bgp.type==2'
    2 2026-09-16 13:56:11.824278Z     10.0.0.2 → 10.0.0.3     BGP 125 UPDATE Message

R3はR2経由の経路を受け取り、STEP 2で設定したPICがそれをバックアップにします(backup, add-pathBGP backup path)。R1も同じです。

R3 show bgp 192.168.4.0/24(STEP 5)
RP/0/RP0/CPU0:R3#show bgp 192.168.4.0/24
Wed Sep 16 14:00:02.113 UTC
BGP routing table entry for 192.168.4.0/24
Versions:
  Process           bRIB/RIB   SendTblVer
  Speaker                 19           19
Last Modified: Sep 16 13:56:12.023 for 00:03:50
Paths: (2 available, best #1)
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.3.5.5        
  Path #1: Received by speaker 0
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.3.5.5        
  65002, (received & used)
    10.0.0.1 (metric 2) from 10.0.0.1 (10.0.0.1)
      Origin IGP, metric 0, localpref 200, valid, internal, best, group-best
      Received Path ID 0, Local Path ID 1, version 16
  Path #2: Received by speaker 0
  Not advertised to any peer
  65002, (received & used)
    10.0.0.2 (metric 2) from 10.0.0.2 (10.0.0.2)
      Origin IGP, metric 0, localpref 100, valid, internal, backup, add-path
      Received Path ID 0, Local Path ID 3, version 19
R3 show route 192.168.4.0/24(STEP 5)
RP/0/RP0/CPU0:R3#show route 192.168.4.0/24
Wed Sep 16 14:00:04.028 UTC

Routing entry for 192.168.4.0/24
  Known via "bgp 65001", distance 200, metric 0
  Tag 65002
  Number of pic paths 1 , type internal
  Installed Sep 16 13:56:11.827 for 00:03:52
  Routing Descriptor Blocks
    10.0.0.1, from 10.0.0.1
      Route metric is 0, Wt is 1
    10.0.0.2, from 10.0.0.2, BGP backup path
      Route metric is 0, Wt is 1
  No advertising protos. 
R1 show cef 192.168.4.0/24(STEP 5)
RP/0/RP0/CPU0:R1#show cef 192.168.4.0/24
Wed Sep 16 13:58:20.239 UTC
192.168.4.0/24, version 54, internal 0x5000001 0x40 (ptr 0x8851a380) [1], 0x0 (0x0), 0x0 (0x0)
 Updated Sep 16 13:56:11.847 
 local adjacency to GigabitEthernet0/0/0/2

 Prefix Len 24, traffic index 0, precedence n/a, priority 4
  gateway array (0x8938b008) reference count 2, flags 0x102010, source rib (7), 0 backups
                [1 type 3 flags 0x48501 (0x8942df60) ext 0x0 (0x0) (collapsed)]
  LW-LDI[type=0, refc=0, ptr=0x0, sh-ldi=0x0]
  gateway array update type-time 1 Sep 16 13:56:11.831
 LDI Update time Sep 16 13:56:11.847
   via 10.0.0.2/32, 3 dependencies, recursive, backup [flags 0x6100]
    path-idx 0 NHID 0x0 [0x8851b0f0 0x0]
    next hop 10.0.0.2/32 via 10.0.0.2/32
   via 10.1.4.4/32, 2 dependencies, recursive, bgp-ext [flags 0x6020]
    path-idx 1 NHID 0x0 [0x8851b470 0x0], Internal 0x8a9b80a0
    next hop 10.1.4.4/32 via 10.1.4.4/32

    Weight distribution:
    slot 0, weight 1, normalized_weight 1, class 0
    Load distribution: 0 (refcount 1)

    Hash  OK  Interface                 Address
    0     Y   GigabitEthernet0/0/0/2    10.1.4.4       

STEP 6:R1-R4リンク断(Best Externalあり)

同じ障害で、今度はロスがありません。 pingは両宛先とも900発すべて応答があり、キャプチャー上の応答の途切れも最大0.21秒です。

R5 ping 192.168.4.1(STEP 6、100ミリ秒間隔)
RP/0/RP0/CPU0:R5#ping 192.168.4.1 source 192.168.5.1 count 900 interval 100 timeout 1
Wed Sep 16 14:03:22.827 UTC
Type escape sequence to abort.
Sending 900, 100-byte ICMP Echos to 192.168.4.1 timeout is 1 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (900/900), round-trip min/avg/max = 9/17/173 ms
R5 ping 100.63.255.1(STEP 6、100ミリ秒間隔)
RP/0/RP0/CPU0:R5#ping 100.63.255.1 source 192.168.5.1 count 900 interval 100 timeout 1
Wed Sep 16 14:03:27.390 UTC
Type escape sequence to abort.
Sending 900, 100-byte ICMP Echos to 100.63.255.1 timeout is 1 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (900/900), round-trip min/avg/max = 8/17/136 ms

R1のインタフェースが14:03:40.850にダウンすると、その56ミリ秒後(14:03:40.906)にはR5からのパケットがR1-R2間に現れます。R1のFIBが、Best Externalで受け取っていたR2経由の経路(バックアップ)へ切り替えたためです。STEP 3ではこの経路がそもそも無く、R2の再広告を待っていました。

R1 show logging(STEP 6)
RP/0/RP0/CPU0:R1#show logging start Sep 16 13:58:43
Wed Sep 16 14:07:18.756 UTC
Time Zone UTC, DST disabled
Syslog logging: enabled (0 messages dropped, 0 flushes, 0 overruns)
    Console logging: Disabled
    Monitor logging: level debugging, 0 messages logged
    Trap logging: level informational, 0 messages logged
    Buffer logging: level debugging, 223 messages logged

Log Buffer (2097152 bytes):

RP/0/RP0/CPU0:Sep 16 13:58:43.926 UTC: logger[67558]: %OS-SYSLOG-6-LOG_INFO : informational STEP6-BEGIN 
RP/0/RP0/CPU0:Sep 16 13:58:44.330 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[14263]: Received disconnect from 10.100.3.1 port 52989:11: disconnected by user 
RP/0/RP0/CPU0:Sep 16 13:58:44.330 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[14263]: Disconnected from user cisco 10.100.3.1 port 52989 
RP/0/RP0/CPU0:Sep 16 14:03:37.108 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[14723]: Accepted authentication/pam for cisco from 10.100.3.1 port 53249 ssh2 
RP/0/RP0/CPU0:Sep 16 14:03:40.850 UTC: ifmgr[155]: %PKT_INFRA-LINK-5-CHANGED : Interface GigabitEthernet0/0/0/2, changed state to Administratively Down 
RP/0/RP0/CPU0:Sep 16 14:03:40.851 UTC: bgp[1084]: %ROUTING-BGP-5-ADJCHANGE : neighbor 10.1.4.4 Down - Admin. shutdown (CEASE notification sent - administrative shutdown) (VRF: default) (AS: 65002) 
RP/0/RP0/CPU0:Sep 16 14:03:41.152 UTC: config[68025]: %MGBL-CONFIG-6-DB_COMMIT : Configuration committed by user 'cisco'. Use 'show configuration commit changes 1000000007' to view the changes. 
RP/0/RP0/CPU0:Sep 16 14:03:41.251 UTC: config[68025]: %MGBL-SYS-5-CONFIG_I : Configured from console by cisco on vty0 (10.100.3.1) 
RP/0/RP0/CPU0:Sep 16 14:03:43.149 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[14728]: Received disconnect from 10.100.3.1 port 53249:11: disconnected by user 
RP/0/RP0/CPU0:Sep 16 14:03:43.149 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[14728]: Disconnected from user cisco 10.100.3.1 port 53249 
RP/0/RP0/CPU0:Sep 16 14:07:02.413 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[15036]: Accepted authentication/pam for cisco from 10.100.3.1 port 53412 ssh2 
RP/0/RP0/CPU0:Sep 16 14:07:15.625 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[15041]: Received disconnect from 10.100.3.1 port 53412:11: disconnected by user 
RP/0/RP0/CPU0:Sep 16 14:07:15.625 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[15041]: Disconnected from user cisco 10.100.3.1 port 53412 
RP/0/RP0/CPU0:Sep 16 14:07:16.452 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[15223]: Accepted authentication/pam for cisco from 10.100.3.1 port 53421 ssh2 
STEP 6 の R1-R2 間(R5 からの Echo request。R1 が R2 へ迂回させたもの)
$ tshark -r bgp-best-external-step6-r1r2.pcap -t ud -Y 'icmp.type==8'
    5 2026-09-16 14:03:40.906320Z  192.168.5.1 → 100.63.255.1 ICMP 114 Echo (ping) request  id=0x3973, seq=124/31744, ttl=253
    6 2026-09-16 14:03:40.908027Z  192.168.5.1 → 100.63.255.1 ICMP 114 Echo (ping) request  id=0x3973, seq=124/31744, ttl=252
    7 2026-09-16 14:03:40.909325Z  192.168.5.1 → 100.63.255.1 ICMP 114 Echo (ping) request  id=0x3973, seq=124/31744, ttl=251
    8 2026-09-16 14:03:40.911463Z  192.168.5.1 → 100.63.255.1 ICMP 114 Echo (ping) request  id=0x3973, seq=124/31744, ttl=250
    9 2026-09-16 14:03:40.912680Z  192.168.5.1 → 100.63.255.1 ICMP 114 Echo (ping) request  id=0x3973, seq=124/31744, ttl=249
   10 2026-09-16 14:03:40.914636Z  192.168.5.1 → 100.63.255.1 ICMP 114 Echo (ping) request  id=0x3973, seq=124/31744, ttl=248
<snip>(以下 18 行)

STEP 7:復旧

両端をno shutdownにしてSTEP 5の状態に戻します。

STEP 8:no advertise best-external(最終状態)

設定を外すと、R2はR3・R1へWITHDRAWを送り、R3のバックアップも消えてSTEP 2の状態に戻ります。

R2 STEP 8 で commit した設定
RP/0/RP0/CPU0:R2#show configuration commit changes last 1
Wed Sep 16 14:17:47.153 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router bgp 65001
 address-family ipv4 unicast
  no advertise best-external
 !
!
end
STEP 8 の R2-R3 間(R2 → R3 の WITHDRAW)
$ tshark -r bgp-best-external-step8-r2r3.pcap -t ud -Y 'bgp.type==2'
    3 2026-09-16 14:17:48.424068Z     10.0.0.2 → 10.0.0.3     BGP 85 UPDATE Message
R3 show bgp 192.168.4.0/24(STEP 8)
RP/0/RP0/CPU0:R3#show bgp 192.168.4.0/24
Wed Sep 16 14:21:38.105 UTC
BGP routing table entry for 192.168.4.0/24
Versions:
  Process           bRIB/RIB   SendTblVer
  Speaker                 25           25
Last Modified: Sep 16 14:17:48.023 for 00:03:50
Paths: (1 available, best #1)
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.3.5.5        
  Path #1: Received by speaker 0
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.3.5.5        
  65002, (received & used)
    10.0.0.1 (metric 2) from 10.0.0.1 (10.0.0.1)
      Origin IGP, metric 0, localpref 200, valid, internal, best, group-best
      Received Path ID 0, Local Path ID 1, version 24

検証Configおよびshow結果

各STEPで5台すべてから、次のファイルをルータごとに分けて取得しています。検証Configは..._run.txtです(最終状態はSTEP 8のもの)。

ファイル内容
..._show.txtshow bgp summary / show bgp / show route bgp / show bgp <プレフィックス>192.168.1.0/24192.168.5.0/24100.63.255.0/24)/ show route summary / show routeshow cef192.168.4.0/24100.63.255.0/24192.168.5.0/2410.0.0.1/3210.0.0.2/32)/ show bgp neighbors / show bgp process / show rpl route-policy / ピアごとのadvertised-routes / routes / received routes。R1〜R3はshow ospf neighbor / show route ospf
..._log.txtそのSTEPの範囲だけに絞ったshow logging。各STEPの開始時にlogmsgでマーカーを入れ、その時刻をshow logging startに指定して取得したもの
..._run.txtそのSTEP時点のshow running-config(=そのSTEPの検証Config)
..._ping.txt / ..._ping2.txtR5から192.168.4.1100.63.255.1へのpingtraceroute。障害を入れるSTEP(3・6)は障害の前から100ミリ秒間隔で900発を宛先ごとに流したもの(_ping.txt192.168.4.1_ping2.txt100.63.255.1)。それ以外は50発
..._trace.txtshow bgp trace neighbor / show bgp trace error
..._commit.cfgそのSTEPで実際にcommitした設定だけ。 設定を変えたルータの分のみ

STEP 0:初期状態

ルータshow出力syslogrunning-configpingtracecommit
R1showlogrun-trace-
R2showlogrun-trace-
R3showlogrun-trace-
R4showlogrun-trace-
R5showlogrunpingtrace-

STEP 1:R1の入方向でR4からの経路にLOCAL_PREF 200

ルータshow出力syslogrunning-configpingtracecommit
R1showlogrun-tracecfg
R2showlogrun-trace-
R3showlogrun-trace-
R4showlogrun-trace-
R5showlogrunpingtrace-

STEP 2:R1・R3にPIC(backup 1 install

ルータshow出力syslogrunning-configpingtracecommit
R1showlogrun-tracecfg
R2showlogrun-trace-
R3showlogrun-tracecfg
R4showlogrun-trace-
R5showlogrunpingtrace-

STEP 3:R1-R4リンク断(Best Externalなし)

ルータshow出力syslogrunning-configpingtracecommit
R1showlogrun-tracecfg
R2showlogrun-trace-
R3showlogrun-trace-
R4showlogrun-tracecfg
R5showlogrunping / ping2trace-

STEP 4:復旧

ルータshow出力syslogrunning-configpingtracecommit
R1showlogrun-tracecfg
R2showlogrun-trace-
R3showlogrun-trace-
R4showlogrun-tracecfg
R5showlogrunpingtrace-

STEP 5:R2にadvertise best-external

ルータshow出力syslogrunning-configpingtracecommit
R1showlogrun-trace-
R2showlogrun-tracecfg
R3showlogrun-trace-
R4showlogrun-trace-
R5showlogrunpingtrace-

STEP 6:R1-R4リンク断(Best Externalあり)

ルータshow出力syslogrunning-configpingtracecommit
R1showlogrun-tracecfg
R2showlogrun-trace-
R3showlogrun-trace-
R4showlogrun-tracecfg
R5showlogrunping / ping2trace-

STEP 7:復旧

ルータshow出力syslogrunning-configpingtracecommit
R1showlogrun-tracecfg
R2showlogrun-trace-
R3showlogrun-trace-
R4showlogrun-tracecfg
R5showlogrunpingtrace-

STEP 8:no advertise best-external(最終状態)

ルータshow出力syslogrunning-configpingtracecommit
R1showlogrun-trace-
R2showlogrun-tracecfg
R3showlogrun-trace-
R4showlogrun-trace-
R5showlogrunpingtrace-

パケットキャプチャーはSTEPごとに、R3-R5間(R5のping。応答の途切れの計測に使ったもの)・R1-R2間・R2-R3間で取得しています。

STEPR3-R5間R1-R2間R2-R3間
0pcappcappcap
1pcappcappcap
2pcappcappcap
3pcappcappcap
4pcappcappcap
5pcappcappcap
6pcappcappcap
7pcappcappcap
8pcappcappcap

参考

資料タイトル概要
RFC 4271A Border Gateway Protocol 4 (BGP-4)9.1.3 広告するのはベストパスだけ
draft-ietf-idr-best-external-05Advertisement of the best external route in BGPBest Externalの手続きと効果(期限切れのドラフト)
Cisco ASR 9000 Routing Command Reference, IOS XR 6.4.xadvertise best-external当時のガイドが挙げるアドレスファミリーと、ラベル無しでループしうる理由(XRd 26.1.1ではIPv4 unicastでも設定できる)
Cisco IOS XE 17.x IP Routing Configuration GuideBGP Best Externalactive/backup構成の説明と、VPNv4 / VRF限定の制限

関連記事