解決BGP路由黑洞
具體配置如下:
R1的配置
router bgp 100
no synchronization
bgp router-id 1.1.1.1
bgp cluster-id 167838721
bgp log-neighbor-changes
network 1.1.1.0 mask 255.255.255.0
neighbor 192.1.12.2 remote-as 234
no auto-summary
R2的配置
router bgp 65012
no synchronization
bgp router-id 2.2.2.2
bgp cluster-id 2886730753
bgp log-neighbor-changes
bgp confederation identifier 234
neighbor 3.3.3.3 remote-as 65012
neighbor 3.3.3.3 update-source Loopback0
neighbor 3.3.3.3 next-hop-self
neighbor 192.1.12.1 remote-as 100
no auto-summary
R3的配置
router bgp 65012
no synchronization
bgp router-id 3.3.3.3
bgp cluster-id 3232236289
bgp log-neighbor-changes
bgp confederation identifier 234
bgp confederation peers 65014
neighbor 2.2.2.2 remote-as 65012
neighbor 2.2.2.2 update-source Loopback0
neighbor 4.4.4.4 remote-as 65014
neighbor 4.4.4.4 ebgp-multihop 255
no auto-summary
R4的配置
router bgp 65014
no synchronization
bgp router-id 4.4.4.4
bgp cluster-id 3288400129
bgp log-neighbor-changes
bgp confederation identifier 234
bgp confederation peers 65012
neighbor 3.3.3.3 remote-as 65012
neighbor 3.3.3.3 ebgp-multihop 255
neighbor 3.3.3.3 update-source Loopback0
neighbor 3.3.3.3 next-hop-self
neighbor 192.1.45.5 remote-as 500
no auto-summary
R5的配置
router bgp 500
no synchronization
bgp router-id 5.5.5.5
bgp cluster-id 3221302533
bgp log-neighbor-changes
network 5.5.5.0 mask 255.255.255.0
neighbor 192.1.45.4 remote-as 234
no auto-summary
在配置過程中r2與r1建立鄰居和r4與r5建立鄰居會收到如下信息:
r2(config-router)#
00:28:45: %BGP-3-NOTIFICATION: received from neighbor 192.1.12.1 2/2 (peer in wrong AS) 2 bytes FDF4
r4(config-router)#
00:30:27: %BGP-3-NOTIFICATION: received from neighbor 192.1.45.5 2/2 (peer in wrong AS) 2 bytes FDF6
原因在於聯盟中的路由器還不識別聯盟,需要打上以下命令:
bgp confederation identifier 234
(3)第三種方法:使用路由反射器(Router Reflector)
路由反射器對於解決AS內建立大量IBGP鄰居時非常有用。
路由反射器和其客戶端共同組成路由反射簇。可以把路由反射簇看成一個單獨的路由器,對於客戶端只需要與路由反射器建立鄰居即可,不需要與每臺ibgp路由器建立鄰居。
一個自治系統內可以創建多個路由反射簇。
路由反射器的規則:對於路由反射器來說
1、 從一個客戶端傳遞的路由條目會反射給另一個客戶端,會反射給非客戶端,會反射給EBGP鄰居。
2、 從一個非客戶端傳遞的路由條目會反射給另一個客戶端,會反射給EBGP鄰居,但不會傳遞給別一個非客戶端
3、 從EBGP傳遞的路由條目會反射給另一個客戶端,會反射給EBGP鄰居,會反射給非客戶端
對於本案例配置命令如下:
neighbor 2.2.2.2 route-reflector-client
配置之後鄰居會重置
總結:
(1)路由反射器在拓撲設計和命令配置上實現相對簡單一些。
(2)對於聯盟來說,要求所有的路由器都必須要支持和識別,而路由反射只需要路由反射器理解路上反射機制即可,客戶端將與RR之間的連接都視爲普通的IBGP連接。