ORIGINとは
ORIGIN(Type code 1)は、その経路がどうやってBGPに入ったかを示すwell-known mandatoryのパス属性です(BGPパス属性とベストパス選択)。値は1バイトで、経路をBGPに持ち込んだルータが決め、RFC 4271の5.1.1は他のルータが変更すべきでないとしています。
3つの値
| 値 | 名前 | 意味 |
|---|---|---|
| 0 | IGP | BGPを動かしているルータ自身が、AS内部の経路として明示的にBGPへ入れた。 |
| 1 | EGP | BGPの前身であるEGP(RFC 904)から学習した。EGPは使われていないため、現在の運用で見ることはない。 |
| 2 | Incomplete | 上記以外の方法でBGPに入った。再配布(redistribute)で入れた経路がこれにあたる。 |
show bgpでは各行の末尾1文字で表されます(i / e / ?)。UPDATEの中では1バイトの数値(0 / 1 / 2)で、showの1文字はそれを丸めた表示です。
*>iの3文字目のiはステータスコードの「internal(iBGPで学習)」で、行末のiとは別物です。どの操作でどの値になるか
| BGPへの入れ方 | ORIGIN |
|---|---|
networkで明示的に指定する | IGP(i) |
aggregate-addressで集約経路を生成する | 構成要素がすべてIGPならIGP。1本でもIncompleteがあればIncomplete、Incompleteは無くEGPが1本でもあればEGP(RFC 4271 9.2.2.2、BGP経路集約) |
redistributeで他プロトコル・スタティック・接続経路から再配布する | Incomplete(?) |
networkは管理者が1つずつ宣言する方法でIGP、redistributeは他プロトコルの経路をまとめて流し込む方法でBGPから見ると素性が分からないためIncompleteです。
ベストパス選択での位置づけ
ベストパス選択の5段階目で比較され、小さいほう(IGP < EGP < Incomplete)が優先されます。
実際にはLOCAL_PREFやAS_PATH長で先に決着することが多く、ORIGINが効くのはそれより前がすべて同点のときです。同じプレフィックスをAS内の2箇所からnetworkとredistributeで入れた場合などが該当します。
eBGPへ広告するときにORIGINをIGPに揃える
自AS発の経路をnetworkで入れれば最初からIGPです。redistributeを使うと自AS発でもiと?が混在し、隣のASのベストパス選択に影響することがあります。これを避ける選択肢が、eBGPへ出すときにルートポリシーでIGPへ揃える方法です。
ORIGINの書き換えは「どうやってBGPに入ったか」の情報を消す操作で、RFC 4271の5.1.1が「他のスピーカーは変更すべきでない」とする値です。?の混在が問題になる場合の対処にとどめ、他ASから受け取った経路(トランジット)に適用しないよう注意します。単純な書き方は、そのピアへ出すすべての経路をIGPにするものです。
route-policy EBGP-OUT
set origin igp
pass
end-policy
!
router bgp <AS番号>
neighbor <eBGPピアのアドレス>
address-family ipv4 unicast
route-policy EBGP-OUT out
!
!
!route-map EBGP-OUT permit 10
set origin igp
!
router bgp <AS番号>
address-family ipv4
neighbor <eBGPピアのアドレス> activate
neighbor <eBGPピアのアドレス> route-map EBGP-OUT outIOS XRのpass、IOS XEのpermit 10はどちらも「すべての経路を通す」意味で、無いと経路がまったく広告されません。
この形はトランジット経路にも効きます。自AS発の経路だけに限定するには、AS_PATHが空であること(^$)を条件にします。 自AS番号の追加はルートポリシーの評価より後なので、出方向ポリシーから見ると自AS発の経路はAS_PATHが空です。
as-path-set LOCAL-ORIGIN
ios-regex '^$'
end-set
!
route-policy EBGP-OUT
if as-path in LOCAL-ORIGIN then
set origin igp
endif
pass
end-policyip as-path access-list 1 permit ^$
!
route-map EBGP-OUT permit 10
match as-path 1
set origin igp
!
route-map EBGP-OUT permit 20IOS XEのpermit 20は一致しなかった経路を通すための空エントリで、無いと自AS発以外がすべて破棄されます。
実機での検証
XRd 26.1.1を6台使い、(1) 他が同点のときORIGINがベストパスを決めること、(2) 出方向ポリシーでORIGINを書き換えたとき全経路と^$限定で何が違うか、を確認します。
| ルータ | AS | 役割 |
|---|---|---|
| R1 | 65001 | 192.168.99.0/24をnetworkで広告(ORIGINはi)。実体はLoopback99 |
| R2 | 65001 | 観測点。 R1のiとR3の?を同時に受け取る |
| R3 | 65001 | 同じ192.168.99.0/24をredistribute staticで広告(ORIGINは?)。R4とeBGP |
| R4 | 65002 | R3から受け取る。出方向ポリシーの効果を見る相手 |
| R5 | 65003 | 2つ先のAS。書き換えがここまで伝わるかを見る |
| R6 | 65004 | トランジット経路の供給元。192.168.6.0/24はnetwork(i)、192.168.66.0/24はredistribute static(?) |
AS 65001内はOSPFエリア0、iBGPはLoopback0どうしのフルメッシュです。R3のスタティックはR1のLoopback0(10.0.0.1)を指す再帰スタティックなので、R3の経路が選ばれても転送はR1のLoopback99に届きます。
| STEP | 操作 | 確かめること |
|---|---|---|
| 0 | なし(初期状態) | 1〜4段目が同点で、ORIGINが5段目で決着する(iが勝つ) |
| 1 | R1のno network 192.168.99.0/24 | iの経路が消え、R2のベストが?に変わる。R4・R5・R6の行末も?になる |
| 2 | R1のnetworkを戻す | STEP 0の状態に戻る |
| 3 | R3にEBGP-OUT-ALL(全経路set origin igp) | 自AS発だけでなくトランジット経路までiに書き換わる |
| 4 | R3にEBGP-OUT-LOCAL(^$限定、最終状態) | 自AS発だけがiになり、トランジットは?のまま |
各STEPでR4・R5から192.168.99.1へping 50発とtracerouteを取り、どちらの経路で転送されたかも記録しています。
STEP 0:ORIGINがベストパスを決める
R2のBGPテーブルでは192.168.99.0/24だけ2行あります。行末がi(R1から)と?(R3から)です。
RP/0/RP0/CPU0:R2#show bgp
Sun Sep 27 12:33:27.495 UTC
BGP router identifier 10.0.0.2, local AS number 65001
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 11
BGP main routing table version 11
BGP NSR Initial initsync version 3 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i192.168.1.0/24 10.0.0.1 0 100 0 i
*> 192.168.2.0/24 0.0.0.0 0 32768 i
*>i192.168.3.0/24 10.0.0.3 0 100 0 i
*>i192.168.4.0/24 10.3.4.4 0 100 0 65002 i
*>i192.168.5.0/24 10.3.4.4 100 0 65002 65003 i
*>i192.168.6.0/24 10.1.6.6 0 100 0 65004 i
*>i192.168.66.0/24 10.1.6.6 0 100 0 65004 ?
*>i192.168.99.0/24 10.0.0.1 0 100 0 i
* i 10.0.0.1 0 100 0 ?
Processed 8 prefixes, 9 paths詳細を見ると、1〜4段目はすべて同点です。NEXT_HOPもIGPメトリックも同じで、違うのはORIGINだけです。
RP/0/RP0/CPU0:R2#show bgp 192.168.99.0/24
Sun Sep 27 12:33:28.055 UTC
BGP routing table entry for 192.168.99.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 8 8
Last Modified: Sep 27 12:25:36.023 for 00:07:52
Paths: (2 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
Local, (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 8
Path #2: Received by speaker 0
Not advertised to any peer
Local, (received & used)
10.0.0.1 (metric 2) from 10.0.0.3 (10.0.0.3)
Origin incomplete, metric 0, localpref 100, valid, internal
Received Path ID 0, Local Path ID 0, version 0| 順序 | 比較項目 | Path #1(R1から) | Path #2(R3から) | 結果 |
|---|---|---|---|---|
| 1 | WEIGHT | 0 | 0 | 同点 |
| 2 | LOCAL_PREF | 100 | 100 | 同点 |
| 3 | 自身が生成した経路 | どちらもiBGPで学習 | どちらもiBGPで学習 | 同点 |
| 4 | AS_PATHの長さ | 0(AS内で生成) | 0(AS内で生成) | 同点 |
| 5 | ORIGIN | IGP | Incomplete | Path #1が優先 |
R3のスタティックがR1のLoopback0を指しているため、NEXT_HOPはどちらも10.0.0.1です。どちらが選ばれても転送先は同じR1で、AS 65002のR4から192.168.99.1へのpingも通ります。
RP/0/RP0/CPU0:R2#show route bgp
Sun Sep 27 12:33:27.791 UTC
B 192.168.1.0/24 [200/0] via 10.0.0.1, 00:07:52
B 192.168.3.0/24 [200/0] via 10.0.0.3, 00:08:03
B 192.168.4.0/24 [200/0] via 10.3.4.4, 00:08:03
B 192.168.5.0/24 [200/0] via 10.3.4.4, 00:08:03
B 192.168.6.0/24 [200/0] via 10.1.6.6, 00:07:51
B 192.168.66.0/24 [200/0] via 10.1.6.6, 00:07:51
B 192.168.99.0/24 [200/0] via 10.0.0.1, 00:07:52RP/0/RP0/CPU0:R4#ping 192.168.99.1 source 192.168.4.1 count 50 timeout 1
Sun Sep 27 12:34:51.497 UTC
Type escape sequence to abort.
Sending 50, 100-byte ICMP Echos to 192.168.99.1 timeout is 1 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (50/50), round-trip min/avg/max = 6/11/52 ms
RP/0/RP0/CPU0:R4#traceroute 192.168.99.1 source 192.168.4.1 probe 3 timeout 1 maxttl 6
Sun Sep 27 12:34:53.105 UTC
Type escape sequence to abort.
Tracing the route to 192.168.99.1
1 10.3.4.3 6 msec 5 msec 4 msec
2 10.1.3.1 10 msec * 10 msec STEP 1:iの経路を消すと?が選ばれる
R1からnetworkを外してiの経路を消します。
RP/0/RP0/CPU0:R1#show configuration commit changes last 1
Sun Sep 27 12:37:03.574 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router bgp 65001
address-family ipv4 unicast
no network 192.168.99.0/24
!
!
endR2のベストパスはR3からのOrigin incompleteだけになり、隣のAS 65004(R6)でも行末がiから?に変わります。
RP/0/RP0/CPU0:R2#show bgp 192.168.99.0/24
Sun Sep 27 12:33:28.055 UTC
BGP routing table entry for 192.168.99.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 8 8
Last Modified: Sep 27 12:25:36.023 for 00:07:52
Paths: (2 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
Local, (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 8
Path #2: Received by speaker 0
Not advertised to any peer
Local, (received & used)
10.0.0.1 (metric 2) from 10.0.0.3 (10.0.0.3)
Origin incomplete, metric 0, localpref 100, valid, internal
Received Path ID 0, Local Path ID 0, version 0RP/0/RP0/CPU0:R2#show bgp 192.168.99.0/24
Sun Sep 27 12:39:55.014 UTC
BGP routing table entry for 192.168.99.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 12 12
Last Modified: Sep 27 12:37:39.023 for 00:02:16
Paths: (1 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
Local, (received & used)
10.0.0.1 (metric 2) from 10.0.0.3 (10.0.0.3)
Origin incomplete, metric 0, localpref 100, valid, internal, best, group-best
Received Path ID 0, Local Path ID 1, version 12RP/0/RP0/CPU0:R6#show bgp
Sun Sep 27 12:36:27.824 UTC
BGP router identifier 10.0.0.6, local AS number 65004
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 10
BGP main routing table version 10
BGP NSR Initial initsync version 4 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0/24 10.1.6.1 0 0 65001 i
*> 192.168.2.0/24 10.1.6.1 0 65001 i
*> 192.168.3.0/24 10.1.6.1 0 65001 i
*> 192.168.4.0/24 10.1.6.1 0 65001 65002 i
*> 192.168.5.0/24 10.1.6.1 0 65001 65002 65003 i
*> 192.168.6.0/24 0.0.0.0 0 32768 i
*> 192.168.66.0/24 0.0.0.0 0 32768 ?
*> 192.168.99.0/24 10.1.6.1 0 0 65001 i
Processed 8 prefixes, 8 pathsRP/0/RP0/CPU0:R6#show bgp
Sun Sep 27 12:42:58.136 UTC
BGP router identifier 10.0.0.6, local AS number 65004
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 11
BGP main routing table version 11
BGP NSR Initial initsync version 4 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0/24 10.1.6.1 0 0 65001 i
*> 192.168.2.0/24 10.1.6.1 0 65001 i
*> 192.168.3.0/24 10.1.6.1 0 65001 i
*> 192.168.4.0/24 10.1.6.1 0 65001 65002 i
*> 192.168.5.0/24 10.1.6.1 0 65001 65002 65003 i
*> 192.168.6.0/24 0.0.0.0 0 32768 i
*> 192.168.66.0/24 0.0.0.0 0 32768 ?
*> 192.168.99.0/24 10.1.6.1 0 65001 ?
Processed 8 prefixes, 8 pathsR1 - R6間のキャプチャーでは、UPDATEのORIGINが数値で見えます。STEP 1のNo.4はINCOMPLETE (2)、STEP 2でnetworkを戻した後のNo.3はIGP (0)です。
Border Gateway Protocol - UPDATE Message
<snip>
Path Attribute - MP_REACH_NLRI
<snip>
Next hop: 10.1.6.1
<snip>
192.168.99.0/24
<snip>
Path Attribute - ORIGIN: INCOMPLETE
<snip>
Origin: INCOMPLETE (2)
Path Attribute - AS_PATH: 65001
<snip>
AS4: 65001Border Gateway Protocol - UPDATE Message
<snip>
Path Attribute - MP_REACH_NLRI
<snip>
Next hop: 10.1.6.1
<snip>
192.168.99.0/24
<snip>
Path Attribute - ORIGIN: IGP
<snip>
Origin: IGP (0)
Path Attribute - AS_PATH: 65001
<snip>
AS4: 65001
Path Attribute - MULTI_EXIT_DISC: 0 上のtshark出力のパケット(STEP 1 No.4、ORIGIN 2)のpcapをダウンロード
上のtshark出力のパケット(STEP 2 No.3、ORIGIN 0)のpcapをダウンロード
STEP 2でR1のnetworkを戻すと、R2のベストパスはOrigin IGPに戻ります。以降はこの状態から始めます。
STEP 3:出方向ポリシーで全経路のORIGINをIGPにする
R3からR4へのeBGPに、すべての経路をIGPにするポリシーを当てます。
RP/0/RP0/CPU0:R3#show configuration commit changes last 1
Sun Sep 27 12:50:01.577 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
route-policy EBGP-OUT-ALL
set origin igp
pass
end-policy
!
router bgp 65001
neighbor 10.3.4.4
address-family ipv4 unicast
route-policy EBGP-OUT-ALL out
!
!
!
endR3がR4へ広告する経路の行末を、適用前(STEP 2)と後(STEP 3)、そして^$で限定した後(STEP 4)で比べます。
RP/0/RP0/CPU0:R3#show bgp neighbors 10.3.4.4 advertised-routes
Sun Sep 27 12:47:10.448 UTC
Network Next Hop From AS Path
192.168.1.0/24 10.3.4.3 10.0.0.1 65001i
192.168.2.0/24 10.3.4.3 10.0.0.2 65001i
192.168.3.0/24 10.3.4.3 Local 65001i
192.168.6.0/24 10.3.4.3 10.0.0.1 65001 65004i
192.168.66.0/24 10.3.4.3 10.0.0.1 65001 65004?
192.168.99.0/24 10.3.4.3 Local 65001?
Processed 6 prefixes, 6 pathsRP/0/RP0/CPU0:R3#show bgp neighbors 10.3.4.4 advertised-routes
Sun Sep 27 12:53:39.252 UTC
Network Next Hop From AS Path
192.168.1.0/24 10.3.4.3 10.0.0.1 65001i
192.168.2.0/24 10.3.4.3 10.0.0.2 65001i
192.168.3.0/24 10.3.4.3 Local 65001i
192.168.6.0/24 10.3.4.3 10.0.0.1 65001 65004i
192.168.66.0/24 10.3.4.3 10.0.0.1 65001 65004i
192.168.99.0/24 10.3.4.3 Local 65001i
Processed 6 prefixes, 6 pathsRP/0/RP0/CPU0:R3#show bgp neighbors 10.3.4.4 advertised-routes
Sun Sep 27 13:00:07.773 UTC
Network Next Hop From AS Path
192.168.1.0/24 10.3.4.3 10.0.0.1 65001i
192.168.2.0/24 10.3.4.3 10.0.0.2 65001i
192.168.3.0/24 10.3.4.3 Local 65001i
192.168.6.0/24 10.3.4.3 10.0.0.1 65001 65004i
192.168.66.0/24 10.3.4.3 10.0.0.1 65001 65004?
192.168.99.0/24 10.3.4.3 Local 65001i
Processed 6 prefixes, 6 pathsSTEP 3では自AS発の192.168.99.0/24がiになった一方、トランジット経路の192.168.66.0/24まで?からiに書き換わっています。R4の先のAS 65003(R5)からも同じに見えます。
RP/0/RP0/CPU0:R5#show bgp
Sun Sep 27 12:55:11.954 UTC
BGP router identifier 10.0.0.5, local AS number 65003
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 12
BGP main routing table version 12
BGP NSR Initial initsync version 3 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0/24 10.4.5.4 0 65002 65001 i
*> 192.168.2.0/24 10.4.5.4 0 65002 65001 i
*> 192.168.3.0/24 10.4.5.4 0 65002 65001 i
*> 192.168.4.0/24 10.4.5.4 0 0 65002 i
*> 192.168.5.0/24 0.0.0.0 0 32768 i
*> 192.168.6.0/24 10.4.5.4 0 65002 65001 65004 i
*> 192.168.66.0/24 10.4.5.4 0 65002 65001 65004 i
*> 192.168.99.0/24 10.4.5.4 0 65002 65001 i
Processed 8 prefixes, 8 pathsキャプチャーでも確かめられます。STEP 3のNo.3では192.168.66.0/24のORIGINがIGP (0)です。
Border Gateway Protocol - UPDATE Message
<snip>
Path Attribute - MP_REACH_NLRI
<snip>
Next hop: 10.3.4.3
<snip>
192.168.66.0/24
<snip>
Path Attribute - ORIGIN: IGP
<snip>
Origin: IGP (0)
Path Attribute - AS_PATH: 65001 65004
<snip>
AS4: 65001
AS4: 65004STEP 4:自AS発の経路だけIGPに揃える
^$を条件に加えて、自AS発の経路だけを対象にします。
RP/0/RP0/CPU0:R3#show configuration commit changes last 1
Sun Sep 27 12:56:30.352 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
as-path-set LOCAL-ORIGIN
ios-regex '^$'
end-set
!
no route-policy EBGP-OUT-ALL
route-policy EBGP-OUT-LOCAL
if as-path in LOCAL-ORIGIN then
set origin igp
endif
pass
end-policy
!
router bgp 65001
neighbor 10.3.4.4
address-family ipv4 unicast
route-policy EBGP-OUT-LOCAL out
!
!
!
endトランジット経路は?に戻りました。同じNo.3のUPDATEで、192.168.66.0/24だけがINCOMPLETE (2)です。
Border Gateway Protocol - UPDATE Message
<snip>
Path Attribute - MP_REACH_NLRI
<snip>
Next hop: 10.3.4.3
<snip>
192.168.66.0/24
<snip>
Path Attribute - ORIGIN: INCOMPLETE
<snip>
Origin: INCOMPLETE (2)
Path Attribute - AS_PATH: 65001 65004
<snip>
AS4: 65001
AS4: 65004R4のテーブルでも、192.168.99.0/24はi、192.168.66.0/24は?に分かれています。
RP/0/RP0/CPU0:R4#show bgp
Sun Sep 27 13:00:53.285 UTC
BGP router identifier 10.0.0.4, local AS number 65002
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 13
BGP main routing table version 13
BGP NSR Initial initsync version 4 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0/24 10.3.4.3 0 65001 i
*> 192.168.2.0/24 10.3.4.3 0 65001 i
*> 192.168.3.0/24 10.3.4.3 0 0 65001 i
*> 192.168.4.0/24 0.0.0.0 0 32768 i
*> 192.168.5.0/24 10.4.5.5 0 0 65003 i
*> 192.168.6.0/24 10.3.4.3 0 65001 65004 i
*> 192.168.66.0/24 10.3.4.3 0 65001 65004 ?
*> 192.168.99.0/24 10.3.4.3 0 0 65001 i
Processed 8 prefixes, 8 pathsadvertised-routesには65001が付いて表示されますが、これはポリシー評価より後に付きます。ポリシーから見たAS_PATHは空で^$に一致し、192.168.66.0/24は65004だったため一致しません。
192.168.1.0/24や192.168.2.0/24も^$に一致しますが、もともとIGPなので見た目は変わりません。検証Configおよびshow結果
各STEPで6台すべてから、次の種類をルータごとに分けて取得しています。検証Configはこの..._run.txtです(最終状態はSTEP 4のもの)。
| ファイル | 内容 |
|---|---|
..._show.txt | show version / show interface description / show route / show bgp / show bgp summary / show route bgp / show bgp(192.168.99.0/24・192.168.6.0/24・192.168.66.0/24) / show bgp neighbors / ピアごとのadvertised-routes・routes・received routes / show bgp update-group / show bgp process / show rpl route-policy。R1〜R3はshow ospf neighbor / show route ospf、R1・R3はshow route 192.168.99.0/24(R3はshow cefも)を含む |
..._log.txt | そのSTEPの範囲だけに絞ったshow logging |
..._run.txt | そのSTEP時点のshow running-config(=そのSTEPの検証Config) |
..._ping.txt | R4・R5から192.168.99.1へのping 50発とtraceroute |
..._trace.txt | show bgp trace neighborとshow bgp trace error |
..._commit.cfg | そのSTEPで実際にコミットされた設定(設定を変えたルータのみ) |
STEP 0:初期状態(iと?の2経路)
| ルータ | show出力 | syslog | running-config | ping | trace | 投入した設定 |
|---|---|---|---|---|---|---|
| R1 | show | log | run | — | trace | — |
| R2 | show | log | run | — | trace | — |
| R3 | show | log | run | — | trace | — |
| R4 | show | log | run | ping | trace | — |
| R5 | show | log | run | ping | trace | — |
| R6 | show | log | run | — | trace | — |
STEP 1:R1のnetwork 192.168.99.0/24を削除
| ルータ | show出力 | syslog | running-config | ping | trace | 投入した設定 |
|---|---|---|---|---|---|---|
| R1 | show | log | run | — | trace | commit |
| R2 | show | log | run | — | trace | — |
| R3 | show | log | run | — | trace | — |
| R4 | show | log | run | ping | trace | — |
| R5 | show | log | run | ping | trace | — |
| R6 | show | log | run | — | trace | — |
STEP 2:R1のnetworkを戻す
| ルータ | show出力 | syslog | running-config | ping | trace | 投入した設定 |
|---|---|---|---|---|---|---|
| R1 | show | log | run | — | trace | commit |
| R2 | show | log | run | — | trace | — |
| R3 | show | log | run | — | trace | — |
| R4 | show | log | run | ping | trace | — |
| R5 | show | log | run | ping | trace | — |
| R6 | show | log | run | — | trace | — |
STEP 3:R3にEBGP-OUT-ALL(全経路のORIGINをIGPに)
| ルータ | show出力 | syslog | running-config | ping | trace | 投入した設定 |
|---|---|---|---|---|---|---|
| R1 | show | log | run | — | trace | — |
| R2 | show | log | run | — | trace | — |
| R3 | show | log | run | — | trace | commit |
| R4 | show | log | run | ping | trace | — |
| R5 | show | log | run | ping | trace | — |
| R6 | show | log | run | — | trace | — |
STEP 4:R3にEBGP-OUT-LOCAL(^$限定、最終状態)
| ルータ | show出力 | syslog | running-config | ping | trace | 投入した設定 |
|---|---|---|---|---|---|---|
| R1 | show | log | run | — | trace | — |
| R2 | show | log | run | — | trace | — |
| R3 | show | log | run | — | trace | commit |
| R4 | show | log | run | ping | trace | — |
| R5 | show | log | run | ping | trace | — |
| R6 | show | log | run | — | trace | — |
パケットキャプチャーはSTEPごとに取得しています。
| STEP | R3 - R4間 | R4 - R5間 | R1 - R6間 |
|---|---|---|---|
| 0 | pcap | pcap | pcap |
| 1 | pcap | pcap | pcap |
| 2 | pcap | pcap | pcap |
| 3 | pcap | pcap | pcap |
| 4 | pcap | pcap | pcap |
参考
| 資料 | タイトル | 概要 |
|---|---|---|
| RFC 4271 | A Border Gateway Protocol 4 (BGP-4) | 4.3でORIGINの3つの値、5.1.1で生成と変更の扱い、9.1.2.2でベストパス選択での比較、9.2.2.2で集約時のORIGINを定義。 |
| RFC 904 | Exterior Gateway Protocol Formal Specification | ORIGINの値EGPが指すプロトコルの仕様。現在は使われていない。 |
| IANA | Border Gateway Protocol (BGP) Parameters | パス属性のType codeなど、BGPで使われる番号の割り当て一覧。 |
関連記事
- BGP(Border Gateway Protocol)
- BGPメッセージ
- BGPネイバーの状態遷移
- iBGPとeBGPの違い
- BGP next-hop-self
- BGPルートリフレクタ
- BGPパス属性とベストパス選択
- BGP ORIGIN属性
- BGP AS_PATH属性
- BGP NEXT_HOP属性
- BGP LOCAL_PREF属性
- BGP MED属性
- BGP WEIGHT属性
- BGP COMMUNITY属性
- BGP経路集約(aggregate-address)
- MP-BGP(マルチプロトコル拡張)
- BGP Extended Community(拡張コミュニティ)
- BGPマルチパス(maximum-paths)
- BGPの4バイトAS番号(RFC 6793)
- BGPのプライベートAS番号の除去(remove-private-AS)
- BGPのADD-PATH(RFC 7911)
- BGP PIC(Prefix Independent Convergence)
- BGP Best External(ベストでない外部経路の広告)