解決BGP路由黑洞

解決BGP路由黑洞

 

 

   R2、R3和R4之間運行ospf協議,並在R2和R三、R3和R4之間使用迴環口創建IBGP鄰居。
R1的配置
router bgp 100
 no synchronization
 bgp router-id 1.1.1.1
 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 234
 no synchronization
 bgp router-id 2.2.2.2
 bgp log-neighbor-changes
 neighbor 3.3.3.3 remote-as 234
 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 234
 no synchronization
 bgp router-id 3.3.3.3
 bgp log-neighbor-changes
 neighbor 2.2.2.2 remote-as 234
 neighbor 2.2.2.2 update-source Loopback0
 neighbor 4.4.4.4 remote-as 234
 neighbor 4.4.4.4 update-source Loopback0
 no auto-summary
 
R4的配置
router bgp 234
 bgp router-id 4.4.4.4
 bgp cluster-id 3288400129
 bgp log-neighbor-changes
 neighbor 3.3.3.3 remote-as 234
 neighbor 3.3.3.3 update-source Loopback0
 neighbor 3.3.3.3 next-hop-self
 neighbor 192.1.45.5 remote-as 500
 
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
R1的1.1.1.0這條路由能夠傳遞給R2和R3,可是R4卻收不到?
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
Origin codes: i - IGP, e - EGP, ? - incomplete
 
   Network          Next Hop            Metric LocPrf Weight Path
*>i1.1.1.0/24        2.2.2.2                  0    100      0 100 i
 
r3#
r4#sh ip bgp
想想爲何呢?
主要因爲ibgp遵循水平分割的原則,即從一個ibgp鄰居學習到的路由不會再傳給另外一個ibgp鄰居,這樣就造成了路由黑洞,怎麼去解決呢?
方法有三種:
(1)在r一、r2和r3之間創建full mesh(全互聯)的ibgp鄰居關係,這樣就會創建大量的IGBP鄰居關係,會消耗設備的大量資源,配置複雜,不推薦。
(2)使用聯邦AS(有些書上也叫BGP聯盟:bgp confederation)
爲了解決創建大量的IBGP鄰居關係,可使用聯邦AS。能夠這樣理解聯邦as,聯邦as是由一組子自治系統組成,它們共享一個聯邦AS號,該聯邦AS號被聯邦以外的對等體視爲整個聯邦的名字(AS號),外部的對等體是沒法看見聯邦的內部結構的。
針對本例,能夠在AS 234內劃分兩個小的AS,將r2和R3組成AS 65012,R4組成AS 65014,創建聯邦AS時一般會使用私有的AS
 

具體配置以下:ide

R1的配置oop

router bgp 100學習

 no synchronizationthis

 bgp router-id 1.1.1.1spa

 bgp cluster-id 167838721設計

 bgp log-neighbor-changes3d

 network 1.1.1.0 mask 255.255.255.0code

 neighbor 192.1.12.2 remote-as 234orm

 no auto-summaryrouter

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

在配置過程當中r2r1創建鄰居和r4r5創建鄰居會收到以下信息:

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路由器創建鄰居。

一個自治系統內能夠建立多個路由反射簇。

路由反射器的規則:對於路由反射器來講

一、  從一個客戶端傳遞的路由條目會反射給另外一個客戶端,會反射給非客戶端,會反射給EBGP鄰居。

二、  從一個非客戶端傳遞的路由條目會反射給另外一個客戶端,會反射給EBGP鄰居,但不會傳遞給別一個非客戶端

三、  EBGP傳遞的路由條目會反射給另外一個客戶端,會反射給EBGP鄰居,會反射給非客戶端

 

對於本案例配置命令以下:

neighbor 2.2.2.2 route-reflector-client

配置以後鄰居會重置

總結:

1)路由反射器在拓撲設計和命令配置上實現相對簡單一些。

2)對於聯盟來講,要求全部的路由器都必需要支持和識別,而路由反射只須要路由反射器理解路上反射機制便可,客戶端將與RR之間的鏈接都視爲普通的IBGP鏈接。

相關文章
相關標籤/搜索