iBGPピアリングは基本、フルメッシュで確立しなければいけません。
これは、ルーティングループを防ぐために、iBGPで学習したルートを他のiBGPネイバーにアドバタイズすることはできないためです。
R1(config)#router bgp 123 R1(config-router)#neighbor 192.168.12.2 remote-as 123
R2(config)#router bgp 123 R2(config-router)#neighbor 192.168.12.1 remote-as 123 R2(config-router)#neighbor 192.168.23.3 remote-as 123
R3(config)#router bgp 123 R3(config-router)#neighbor 192.168.23.2 remote-as 123
ここで、R1のループバックアドレス1.1.1.1/32をR2に広告します。
R1(config)#router bgp 123 R1(config-router)#network 1.1.1.1 mask 255.255.255.255
R2のBGPテーブルで1.1.1.1/32を学習しているか確認します。
R2#sh ip bgp
BGP table version is 2, local router ID is 2.2.2.2
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,
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 1.1.1.1/32 192.168.12.1 0 100 0 I
R2は1.1.1.1/32をベストパスとして認識しています。
では、R3のBGPテーブルを確認します。
R3#sh ip bgp R3#
R3では何もBGPルートを学習していません。R2はR1で学習したルートをR3へ広告しません.
BGPでは、AS番号を使用して、自身のAS番号が含まれるBGPルートを拒否することで、ループ検出、防止します。iBGPでは、同一AS番号内のピアリングのため、このような検知、防止ができません。
そのため、iBGPでは、学習したルートを他のiBGPネイバーにアドバタイズしないことで、ループを防止します。
そのため、AS内のルータをフルメッシュでピアリングする必要があります。
R3に1.1.1.1/32を学習させようとすると、R1からR3に直接iBGPピアリングする必要があります。 まず、R1からR3に接続できる必要があるので、R1〜R3間でIGP(EIGRP)を有効にします。
R1〜R3 : R1(config)#router eigrp 123 R1(config-router)#network 192.168.0.0 0.0.255.255
これで、R1とR3間が接続できるようになりました。
R1#sh ip route eigrp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
D 192.168.23.0/24 [90/307200] via 192.168.12.2, 00:00:59, FastEthernet0/0.12
R1#ping 192.168.23.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.23.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
R3#sh ip route eigrp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
D 192.168.12.0/24 [90/307200] via 192.168.23.2, 00:01:46, FastEthernet0/0.23
R3#ping 192.168.12.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.12.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
R3#
R1とR3で、iBGPピアリングします。
R1(config)#router bgp 123 R1(config-router)#neighbor 192.168.23.3 remote-as 123
R3(config)#router bgp 123 R3(config-router)#neighbor 192.168.12.1 remote-as 123 *May 6 12:16:31.512: %BGP-5-ADJCHANGE: neighbor 192.168.12.1 Up
R3のBGPテーブルを確認します。
R3#sh ip bgp
BGP table version is 2, local router ID is 3.3.3.3
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,
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 1.1.1.1/32 192.168.12.1 0 100 0 i
R1とR3間でiBGPピアリングすることで、R3は、1.1.1.1/32を学習できました。
今回はルータ3台ですが、台数Nが増えると、ピアリングの数が N(N-1)/ 2 で増加します。例えば、10台だと 45ピアリングが必要です。
これは、拡張性に問題が発生するため、その対策としてルートリフレクタやコンフェデレーションが使用されます。
その他 BGP関連記事は >> ルーティングプロトコル(BGP)まとめ << より参照できます。
コメント