iBGPとeBGPとは
同じASに属するルータ同士のピアがiBGP(Internal BGP)、異なるASに属するルータ同士のピアがeBGP(External BGP)です。 どちらも同じプロトコルで、メッセージも状態遷移も共通です。異なるのは経路を広告するときの振る舞いとピアの張り方で、この記事ではその違いを整理し、IOS XR(XRd)で確認します。
違いの一覧
| 項目 | eBGP | iBGP |
|---|---|---|
| ピアの関係 | 異なるASに属するルータ同士 | 同じASに属するルータ同士 |
AS_PATH | 広告時に自身のAS番号を先頭に追加する | 変更しない |
NEXT_HOP | 広告時に自身のアドレスに書き換える | 変更しない(自分が発生させた経路を除く) |
LOCAL_PREF | 付けない | 付ける(既定値100) |
| ループ防止 | AS_PATHに自身のAS番号が含まれる経路を破棄する | iBGPで学習した経路を他のiBGPピアへ広告しない(スプリットホライズン) |
| アドミニストレーティブディスタンス | 20 | 200 |
| IPパケットのTTL(既定値) | 1 | 255 |
| ピアの前提 | 直接接続されていること(ebgp-multihopなどで緩和可能) | AS内であればどこでもよい |
| 広告間隔(MRAI)の既定値 | 30秒 | 0秒(RFC 4271の推奨値は5秒) |
| 一般的なピアリングアドレス | 直接接続インタフェースのアドレス | Loopbackインタフェースのアドレス |
AS_PATH・NEXT_HOP・LOCAL_PREF・ループ防止はRFC 4271の規定、それ以外の既定値はIOS XRのものです。MRAIはRFC 4271の第10章がeBGP 30秒・iBGP 5秒を推奨していますが、IOS XRのiBGPは0秒です。
AS_PATH・NEXT_HOP・LOCAL_PREFの扱い
eBGPで広告するとき、ルータはAS_PATHの先頭に自AS番号を足し、NEXT_HOPを自身のアドレスに書き換えます。iBGPではどちらも変更しません(RFC 4271 5.1.2、5.1.3)。
そのためiBGPで受け取った経路のNEXT_HOPはAS外のルータのアドレスのままで、受信したルータがそこへ到達できないと経路が有効になりません。IGPでそのアドレスへの経路を配るか、next-hop-selfを使います。
LOCAL_PREFはAS内での優先度なので、eBGPピアへ送るUPDATEには入れてはいけません(RFC 4271 5.1.5)。
ループ防止の仕組み
eBGPはAS_PATHに自AS番号を含む経路を捨ててループを防ぎます。iBGPではAS_PATHが変化しないので、代わりに「iBGPピアから学習した経路は他のiBGPピアへ広告しない」というルール(iBGPスプリットホライズン、RFC 4271 9.2)で防ぎます。
フルメッシュが必要になる理由
スプリットホライズンによりiBGPの経路は1ホップしか伝わらないので、AS内のBGPルータはすべて互いに直接ピアを張る必要があります(フルメッシュ)。
ピア数は n × (n - 1) ÷ 2(10台で45本、20台で190本)になり、これを減らすのがルートリフレクタとコンフェデレーションです。
eBGPの「直接接続」を支える2つの仕組み
eBGPのピアが直接接続でなければならないのは、2つの仕組みが別々に働くためです。
| 仕組み | 働き方 | 緩める設定 |
|---|---|---|
| 直接接続の検査 | ピアのアドレスが直接接続のサブネットに無ければ、TCPの接続を始めない。状態はIdleのまま | ignore-connected-check、またはebgp-multihop |
| TTL 1 | BGPのパケットをTTL 1で送るので、ルータを1台越えたところで捨てられる | ebgp-multihop <ホップ数> |
直接接続の検査はルータの中で完結するので、ピアが直接接続でなければパケットは1つも出ません。検査だけを外すと接続を始めますが、TTL 1のパケットは途中のルータで捨てられます。ebgp-multihopはこの2つを両方緩めます(TTLは送信側が決めるので、両側に設定します)。
iBGPは既定でTTL 255で、直接接続の検査もしないので、AS内のどこにいるルータとでもピアを張れます。Loopbackのアドレスで張れば、迂回経路がある限りセッションを維持できます。
実機での検証
3つのASにXRd 26.1.1を4台置き、R1 - R2間がiBGP、R2 - R3・R3 - R4間がeBGPです。各ルータは192.168.N.0/24を広告しています。
R2はiBGPピア(R1)とeBGPピア(R3)の両方を持つので、1台の上で2種類のピアを比べられます。R4はR2から2ホップ先にいるので、直接接続の検査とTTLを試すのに使います。eBGPの出方向ルートポリシーはネイバーごとに別名にしています(中身はpassだけ)。
| STEP | 操作 | 確かめること |
|---|---|---|
| 0 | 初期状態 | R2の上でiBGPピアとeBGPピアを並べる(internal / external、広告先、ディスタンス、MRAI) |
| 1 | R2でclear bgp ipv4 unicast * soft out | 同じ経路をiBGPとeBGPへ送るUPDATEを、キャプチャーで並べる |
| 2 | R2 - R4(2ホップ先)をLoopback0でピアリング(オプションなし) | 直接接続の検査で、TCPを始めないこと |
| 3 | R2・R4にignore-connected-checkだけを入れる | TCPを始めるが、TTL 1のSYNがR3で捨てられること |
| 4 | ignore-connected-checkを外してebgp-multihop 2 | 確立すること。eBGPのループ防止 |
| 5 | R2 - R4のピアを削除して元に戻す(最終状態) | STEP 0と同じ状態 |
STEP 0:1台のルータで2種類のピアを比べる
internal と external、広告先の違い
show bgp <プレフィックス>は学習元をinternal / externalで示します。R2がeBGPで学習した192.168.3.0/24はexternalで、広告先にiBGPピアのR1(10.0.0.1)が挙がっています。iBGPで学習した192.168.1.0/24はinternalで、広告先はeBGPピアのR3(10.2.3.3)だけです。iBGPで学習した経路は他のiBGPピアへ広告されません。
RP/0/RP0/CPU0:R2#show bgp 192.168.3.0/24
Tue Sep 22 08:47:48.732 UTC
BGP routing table entry for 192.168.3.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 5 5
Last Modified: Sep 22 08:35:28.023 for 00:12:20
Paths: (1 available, best #1)
Advertised IPv4 Unicast paths to peers (in unique update groups):
10.0.0.1
Path #1: Received by speaker 0
Advertised IPv4 Unicast paths to peers (in unique update groups):
10.0.0.1
65002, (received & used)
10.2.3.3 from 10.2.3.3 (10.0.0.3)
Origin IGP, metric 0, localpref 100, valid, external, best, group-best
Received Path ID 0, Local Path ID 1, version 5
Origin-AS validity: (disabled)RP/0/RP0/CPU0:R2#show bgp 192.168.1.0/24
Tue Sep 22 08:47:48.187 UTC
BGP routing table entry for 192.168.1.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 4 4
Last Modified: Sep 22 08:35:16.023 for 00:12:32
Paths: (1 available, best #1)
Advertised IPv4 Unicast paths to peers (in unique update groups):
10.2.3.3
Path #1: Received by speaker 0
Advertised IPv4 Unicast paths to peers (in unique update groups):
10.2.3.3
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 4広告するときにAS_PATHとNEXT_HOPがどう変わるか
R2が2つのピアへ広告している内容です。iBGPピア(R1)向けでは、R3から受け取った経路がNext Hop 10.2.3.3、AS Path 65002 / 65002 65003のままです。eBGPピア(R3)向けではNext HopがすべてR2自身の10.2.3.2に書き換わり、AS Pathの先頭に65001が付いています。
RP/0/RP0/CPU0:R2#show bgp neighbors 10.0.0.1 advertised-routes
Tue Sep 22 08:47:50.600 UTC
Network Next Hop From AS Path
192.168.2.0/24 10.0.0.2 Local i
192.168.3.0/24 10.2.3.3 10.2.3.3 65002i
192.168.4.0/24 10.2.3.3 10.2.3.3 65002 65003i
Processed 3 prefixes, 3 pathsRP/0/RP0/CPU0:R2#show bgp neighbors 10.2.3.3 advertised-routes
Tue Sep 22 08:47:51.422 UTC
Network Next Hop From AS Path
192.168.1.0/24 10.2.3.2 10.0.0.1 65001i
192.168.2.0/24 10.2.3.2 Local 65001i
Processed 2 prefixes, 2 pathsR1側ではAS_PATHもNEXT_HOPも変わらずに届いています(from 10.0.0.2は送ってきたピアで、NEXT_HOPとは別の情報です)。Not advertised to any peerがiBGPスプリットホライズンで、R1のピアはiBGPのR2だけなので、どこへも広告されません。
RP/0/RP0/CPU0:R1#show bgp 192.168.4.0/24
Tue Sep 22 08:46:57.900 UTC
BGP routing table entry for 192.168.4.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 6 6
Last Modified: Sep 22 08:35:58.023 for 00:10:59
Paths: (1 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
65002 65003, (received & used)
10.2.3.3 (metric 2) from 10.0.0.2 (10.0.0.2)
Origin IGP, localpref 100, valid, internal, best, group-best
Received Path ID 0, Local Path ID 1, version 6R1がこの経路を使えるのは、R2が10.2.3.0/24をOSPFで広告していて10.2.3.3へ到達できるためです。
アドミニストレーティブディスタンスの違い
show route bgpの角括弧の左の数字がディスタンスです。同じ192.168.3.0/24でも、eBGPで学習したR2は20、iBGPで学習したR1は200です。
RP/0/RP0/CPU0:R2#show route bgp
Tue Sep 22 08:47:48.046 UTC
B 192.168.1.0/24 [200/0] via 10.0.0.1, 00:12:32
B 192.168.3.0/24 [20/0] via 10.2.3.3, 00:12:20
B 192.168.4.0/24 [20/0] via 10.2.3.3, 00:11:50RP/0/RP0/CPU0:R1#show route bgp
Tue Sep 22 08:46:56.947 UTC
B 192.168.2.0/24 [200/0] via 10.0.0.2, 00:11:41
B 192.168.3.0/24 [200/0] via 10.2.3.3, 00:11:29
B 192.168.4.0/24 [200/0] via 10.2.3.3, 00:10:59ピアの属性の違い
R2のshow bgp neighborには、2つのピアの違いが並びます。
BGP neighbor is 10.0.0.1
Remote AS 65001, local AS 65001, internal link
<snip>
Minimum time between advertisement runs is 0 secs
<snip>
Neighbor is not directly connected
<snip>
BGP neighbor is 10.2.3.3
Remote AS 65002, local AS 65001, external link
<snip>
Enforcing first AS is enabled
<snip>
Minimum time between advertisement runs is 30 secs
<snip>
Neighbor is directly connected| 行 | iBGP(10.0.0.1) | eBGP(10.2.3.3) |
|---|---|---|
| リンク種別 | internal link | external link |
| 直接接続 | Neighbor is not directly connected | Neighbor is directly connected |
| 広告間隔(MRAI) | 0 secs | 30 secs |
| 先頭ASの検査 | — | Enforcing first AS is enabled(AS_PATHの先頭が相手のAS番号でないUPDATEを拒否する) |
STEP 1:同じ経路をiBGPとeBGPへ送るUPDATEを比べる
R2でclear bgp ipv4 unicast * soft outを実行すると、R2はセッションを切らずに全ピアへ経路を送り直します。R1 - R2間とR2 - R3間を同時にキャプチャーし、R2自身の192.168.2.0/24を運ぶUPDATEを並べました。
Internet Protocol Version 4
Time to Live: 255
Source Address: 10.0.0.2
Destination Address: 10.0.0.1
Border Gateway Protocol - UPDATE Message
<snip>
Length: 61
<snip>
Withdrawn Routes Length: 0
Total Path Attribute Length: 38
<snip>
Path Attribute - MP_REACH_NLRI
<snip>
...1 .... = Extended-Length: Set
<snip>
Length: 13
<snip>
Next hop: 10.0.0.2
<snip>
192.168.2.0/24
<snip>
Path Attribute - ORIGIN: IGP
<snip>
...0 .... = Extended-Length: Not set
<snip>
Length: 1
<snip>
Path Attribute - AS_PATH: empty
<snip>
...0 .... = Extended-Length: Not set
<snip>
Length: 0
Path Attribute - MULTI_EXIT_DISC: 0
<snip>
...0 .... = Extended-Length: Not set
<snip>
Length: 4
<snip>
Path Attribute - LOCAL_PREF: 100
<snip>
...0 .... = Extended-Length: Not set
<snip>
Length: 4
Local preference: 100Internet Protocol Version 4
Time to Live: 1
Source Address: 10.2.3.2
Destination Address: 10.2.3.3
Border Gateway Protocol - UPDATE Message
<snip>
Length: 60
<snip>
Withdrawn Routes Length: 0
Total Path Attribute Length: 37
<snip>
Path Attribute - MP_REACH_NLRI
<snip>
...1 .... = Extended-Length: Set
<snip>
Length: 13
<snip>
Next hop: 10.2.3.2
<snip>
192.168.2.0/24
<snip>
Path Attribute - ORIGIN: IGP
<snip>
...0 .... = Extended-Length: Not set
<snip>
Length: 1
<snip>
Path Attribute - AS_PATH: 65001
<snip>
...0 .... = Extended-Length: Not set
<snip>
Length: 6
AS Path segment: 65001
<snip>
Path Attribute - MULTI_EXIT_DISC: 0
<snip>
...0 .... = Extended-Length: Not set
<snip>
Length: 4 上のiBGPのパケット(STEP 1 R1 - R2間 No.3)のpcapをダウンロード
上のeBGPのパケット(STEP 1 R2 - R3間 No.1)のpcapをダウンロード
| 項目 | iBGP(R2 → R1) | eBGP(R2 → R3) |
|---|---|---|
| IPのTTL | 255 | 1 |
NEXT_HOP | 10.0.0.2(R2のLoopback0。自分が発生させた経路なので自分のアドレス) | 10.2.3.2(R2のR3側インタフェース) |
AS_PATH | 空 | 65001 |
LOCAL_PREF | 100 | 無い |
STEP 2:直接接続でないeBGPピアは接続を始めない
R2とR4は、R3をはさんで2ホップ離れています。互いのLoopback0へのスタティック経路を入れてから、Loopback0同士でeBGPピアを設定します(update-source Loopback0、オプションなし)。
route-policy TO-TEST
pass
end-policy
!
route-policy FROM-TEST
pass
end-policy
!
router static
address-family ipv4 unicast
10.0.0.4/32 10.2.3.3
!
!
router bgp 65001
neighbor 10.0.0.4
remote-as 65003
description test: eBGP to R4 (2 hops away)
update-source Loopback0
address-family ipv4 unicast
route-policy FROM-TEST in
route-policy TO-TEST out
soft-reconfiguration inbound always
!
!
!R4のLoopback0への経路はスタティックで入っていますが(show route 10.0.0.4/32)、状態はIdle (eBGP neighbor not directly connected)です。Local hostは0.0.0.0、Connections established 0で、TCPの接続を始めていません。R2 - R3間とR3 - R4間のキャプチャーにも、10.0.0.4宛のパケットは1つもありません。
RP/0/RP0/CPU0:R2#show route 10.0.0.4/32
Tue Sep 22 08:57:32.124 UTC
Routing entry for 10.0.0.4/32
Known via "static", distance 1, metric 0
Installed Sep 22 08:54:36.604 for 00:02:55
Routing Descriptor Blocks
10.2.3.3
Route metric is 0
No advertising protos. BGP neighbor is 10.0.0.4
Remote AS 65003, local AS 65001, external link
<snip>
BGP state = Idle (eBGP neighbor not directly connected)
<snip>
Connections established 0; dropped 0
Local host: 0.0.0.0, Local port: 0, IF Handle: 0x00000000
Foreign host: 10.0.0.4, Foreign port: 0
<snip>
External BGP neighbor not directly connected.STEP 3:直接接続の検査だけを外す
R2・R4にignore-connected-checkだけを入れます。TTLは1のままです。
router bgp 65001
neighbor 10.0.0.4
ignore-connected-check
!
!状態はIdleからActiveに変わり、Local hostが10.0.0.2になりました。直接接続の検査が外れて、TCPの接続を始めたということです。それでもセッションは上がりません。
BGP neighbor is 10.0.0.4
Remote AS 65003, local AS 65001, external link
<snip>
BGP state = Active
<snip>
Connections established 0; dropped 0
Local host: 10.0.0.2, Local port: 0, IF Handle: 0x00000000
Foreign host: 10.0.0.4, Foreign port: 0キャプチャーを見ると、R2が送ったSYNのTTLは1で、R3(10.2.3.3)がICMP Time Exceededを返しています。SYNは2秒・4秒・8秒の間隔で再送され、そのたびに同じICMPが返ります。R3 - R4間のキャプチャーには、R2から来たパケットは1つもありません(R4も同じ理由で、R4からのSYNがR3で捨てられています)。
1 0.000000 10.0.0.2 → 10.0.0.4 TCP 62 16770 → 179 [SYN] Seq=0 Win=32768 Len=0 MSS=1240 WS=1
2 0.003066 10.2.3.3 → 10.0.0.2 ICMP 110 Time-to-live exceeded (Time to live exceeded in transit)
3 2.000413 10.0.0.2 → 10.0.0.4 TCP 62 [TCP Retransmission] 16770 → 179 [SYN] Seq=0 Win=32768 Len=0 MSS=1240 WS=1
4 2.003217 10.2.3.3 → 10.0.0.2 ICMP 110 Time-to-live exceeded (Time to live exceeded in transit)
5 6.001255 10.0.0.2 → 10.0.0.4 TCP 62 [TCP Retransmission] 16770 → 179 [SYN] Seq=0 Win=32768 Len=0 MSS=1240 WS=1
6 6.004113 10.2.3.3 → 10.0.0.2 ICMP 110 Time-to-live exceeded (Time to live exceeded in transit)Internet Protocol Version 4, Src: 10.2.3.3, Dst: 10.0.0.2
<snip>
Time to Live: 255
<snip>
Source Address: 10.2.3.3
Destination Address: 10.0.0.2
<snip>
Internet Control Message Protocol
Type: Time-to-live exceeded (11)
<snip>
Code: 0 (Time to live exceeded in transit)
<snip>
Internet Protocol Version 4, Src: 10.0.0.2, Dst: 10.0.0.4
<snip>
Time to Live: 1
<snip>
Source Address: 10.0.0.2
Destination Address: 10.0.0.4
<snip>
Transmission Control Protocol, Src Port: 16770, Dst Port: 179, Seq: 1946219533STEP 4:ebgp-multihopで確立する
ignore-connected-checkを外し、R2・R4の両側にebgp-multihop 2を入れます。確立し、表示はmay be up to 2 hops awayに変わりました。
BGP neighbor is 10.0.0.4
Remote AS 65003, local AS 65001, external link
<snip>
BGP state = Established, up for 00:02:58
<snip>
Connections established 1; dropped 0
Local host: 10.0.0.2, Local port: 57050, IF Handle: 0x00000000
<snip>
External BGP neighbor may be up to 2 hops away.R2が送るパケットはTTL 2になりました。R4も2で送りますが、R3で1つ減るので、R2 - R3間では1です。
9 10.0.0.2 10.0.0.4 2 OPEN Message
12 10.0.0.4 10.0.0.2 1 OPEN Message, KEEPALIVE Message
13 10.0.0.2 10.0.0.4 2 KEEPALIVE Message
15 10.0.0.4 10.0.0.2 1 UPDATE Message, UPDATE Message, UPDATE Message, UPDATE Message
16 10.0.0.2 10.0.0.4 2 UPDATE Message, UPDATE Message, UPDATE Message, UPDATE Message, UPDATE Message
22 10.0.0.4 10.0.0.2 1 UPDATE Message, KEEPALIVE MessageAS_PATHによるループ防止
このセッションで、R4は自分が学習した経路をすべてR2へ送ります。その中の192.168.1.0/24・192.168.2.0/24は、R2のAS 65001から出てR3・R4を回ってきた経路で、AS_PATHは65003 65002 65001です(No.15)。
Border Gateway Protocol - UPDATE Message
<snip>
192.168.1.0/24
<snip>
192.168.2.0/24
<snip>
Path Attribute - AS_PATH: 65003 65002 65001
<snip>
AS4: 65003
AS4: 65002
AS4: 65001R2は自AS番号の65001を含むこの2本を捨てます。入方向ポリシー適用前の経路を見せるreceived routesにも入っていません。
RP/0/RP0/CPU0:R2#show bgp neighbors 10.0.0.4 received routes
Tue Sep 22 09:08:11.188 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: 7
BGP main routing table version 7
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.3.0/24 10.0.0.4 0 65003 65002 i
*> 192.168.4.0/24 10.0.0.4 0 0 65003 i
Processed 2 prefixes, 2 pathsSTEP 5:元に戻す(最終状態)
R2 - R4のピア、スタティック経路、試験用のポリシーを削除し、STEP 0と同じ状態に戻します。
検証Configおよびshow結果
各STEPで4台すべてから、次の種類をルータごとに分けて取得しています。検証Configはこの..._run.txtです(最終状態はSTEP 5のもの)。
| ファイル | 内容 |
|---|---|
..._show.txt | show version / show interface description / show route / show bgp / show bgp summary / show bgp <プレフィックス> / show bgp neighbors / ピアごとのadvertised-routes・routes・received routes / show bgp update-group / show rpl route-policy。R1・R2はshow ospf neighborも含む。STEP 2〜4はR2にshow route 10.0.0.4/32、R4にshow route 10.0.0.2/32も含む |
..._log.txt | そのSTEPの範囲だけに絞ったshow logging。各STEPの開始時にlogmsgでマーカーを入れ、その時刻をshow logging startに指定して取得したもの |
..._run.txt | そのSTEP時点のshow running-config(=そのSTEPの検証Config) |
..._ping.txt | そのSTEPのpingとtraceroute(R1・R2・R4から192.168.4.1または192.168.1.1へ50発) |
..._trace.txt | show bgp trace neighborとshow bgp trace error(BGPプロセス内部のイベント) |
..._commit.cfg | そのSTEPで実際にコミットされた設定(設定を変えたルータのみ) |
..._exec.txt | そのSTEPで実行したclear bgpのコマンドと時刻(STEP 1のR2) |
STEP 0:初期状態
| ルータ | show出力 | syslog | running-config | ping | trace | 投入した設定 |
|---|---|---|---|---|---|---|
| R1 | show | log | run | ping | trace | — |
| R2 | show | log | run | ping | trace | — |
| R3 | show | log | run | — | trace | — |
| R4 | show | log | run | ping | trace | — |
STEP 1:R2でclear bgp ipv4 unicast * soft out
| ルータ | show出力 | syslog | running-config | ping | trace | 投入した設定 |
|---|---|---|---|---|---|---|
| R1 | show | log | run | ping | trace | — |
| R2 | show | log | run | ping | trace | exec |
| R3 | show | log | run | — | trace | — |
| R4 | show | log | run | ping | trace | — |
STEP 2:R2 - R4をLoopback0でピアリング(オプションなし)
| ルータ | show出力 | syslog | running-config | ping | trace | 投入した設定 |
|---|---|---|---|---|---|---|
| R1 | show | log | run | ping | trace | — |
| R2 | show | log | run | ping | trace | commit |
| R3 | show | log | run | — | trace | commit |
| R4 | show | log | run | ping | trace | commit |
STEP 3:R2・R4にignore-connected-check
| ルータ | show出力 | syslog | running-config | ping | trace | 投入した設定 |
|---|---|---|---|---|---|---|
| R1 | show | log | run | ping | trace | — |
| R2 | show | log | run | ping | trace | commit |
| R3 | show | log | run | — | trace | — |
| R4 | show | log | run | ping | trace | commit |
STEP 4:ignore-connected-checkを外してebgp-multihop 2
| ルータ | show出力 | syslog | running-config | ping | trace | 投入した設定 |
|---|---|---|---|---|---|---|
| R1 | show | log | run | ping | trace | — |
| R2 | show | log | run | ping | trace | commit |
| R3 | show | log | run | — | trace | — |
| R4 | show | log | run | ping | trace | commit |
STEP 5:R2 - R4のピアを削除して元に戻す(最終状態)
| ルータ | show出力 | syslog | running-config | ping | trace | 投入した設定 |
|---|---|---|---|---|---|---|
| R1 | show | log | run | ping | trace | — |
| R2 | show | log | run | ping | trace | commit |
| R3 | show | log | run | — | trace | commit |
| R4 | show | log | run | ping | trace | commit |
パケットキャプチャーはSTEPごとに取得しています(キャプチャーしていない区間は「—」)。
| STEP | R1 - R2間 | R2 - R3間 | R3 - R4間 |
|---|---|---|---|
| 0 | pcap | pcap | — |
| 1 | pcap | pcap | — |
| 2 | — | pcap | pcap |
| 3 | — | pcap | pcap |
| 4 | — | pcap | pcap |
| 5 | — | pcap | — |
参考
| 資料 | タイトル | 概要 |
|---|---|---|
| RFC 4271 | A Border Gateway Protocol 4 (BGP-4) | BGP-4の基本仕様。5.1.2〜5.1.5でAS_PATH・NEXT_HOP・LOCAL_PREFの扱い、9.2でiBGPスプリットホライズン、第10章でMRAIの推奨値を定義。 |
| RFC 4456 | BGP Route Reflection | iBGPフルメッシュを緩和するルートリフレクタを定義。 |
| IANA | Border Gateway Protocol (BGP) Parameters | 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(ベストでない外部経路の広告)