簡介
本檔案介紹邊界閘道通訊協定(BGP)權重路徑屬性在網路容錯移轉方案中的重要性。
必要條件
需求
思科建議您瞭解以下主題:
- 邊界閘道通訊協定(BGP)
- 路由協定重分發
- 執行Cisco IOS®的Cisco路由器
採用元件
本檔案中的資訊是根據使用Cisco IOS®版本15.6(2)的Cisco路由器
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
BGP通常用於在通過內部閘道通訊協定(IGP)從Lan區域網路(LAN)接收到網路首碼後,向Wan區域網路(WAN)通告網路首碼,反之亦然。如果沒有正確配置,BGP可能會在網路從鏈路故障中恢復後無法通過WAN恢復原始路由路徑。
在故障轉移場景中部署的路由器可能會發生路由停滯,從而導致發生故障和恢復網路事件後通過備份路徑重定向流量。這可能是由於BGP Weight路徑屬性的性質所造成。
發生網路故障後(通常是WAN鏈路),網路可以收斂並使用通過IGP接收的可用備份路徑。
但是,在恢復主路徑時,路由器仍然可以使用備份路徑,無法通過WAN鏈路恢復原始路由。
可以看到非對稱路由路徑和次優路由路徑等後果。
在使用兩個WAN路由器的冗餘方案中,這些路由器可以運行BGP以與WAN交換網路字首。類似IGP的增強型內部網關路由協定(EIGRP)可用於與LAN網路裝置交換網路字首。要完成完全的網路連線,通常需要在這些協定之間進行相互重分發。
註:本文檔使用術語字首和路由可互換使用。
可以在下一個拓撲中看到此功能的高級設計:
本地路由中的BGP權重路徑屬性集
下一個場景將描述故障轉移情況下BGP權重路徑屬性的行為。
步驟 1.路由是透過BGP接收的。
如圖所示,名為WAN RTR的路由器通過BGP接收192.168.1.0/24網路。
管理距離(AD)為20時,路由會將其安裝到路由表中。
BGP表:
WAN_RTR |
WAN_RTR#show ip bgp
<snip>
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0 10.1.2.2 0 0 2 i
|
路由表顯示BGP安裝的路由:
WAN_RTR |
WAN_RTR#show ip route
<snip>
B 192.168.1.0/24 [20/0] via 10.1.2.2, 00:00:42
|
步驟 2.路由通過EIGRP接收。
BGP會話由於鏈路故障而關閉。通過網路融合,現在通過EIGRP接收相同的路由192.168.1.0/24。
關鍵是BGP可以通告或重新分發EIGRP路由(在下一路由器配置的幫助下)。如果是這種情況,現在會將EIGRP路由新增到BGP表中。
注意:當路由器在本地建立網路字首時,BGP權重路徑屬性預設設定為32768。
BGP配置:
WAN_RTR |
WAN_RTR#show running-config | begin router bgp
<snip> router bgp 1
redistribute eigrp 1
neighbor 10.1.2.2 remote-as 2
! |
註:BGP命令network 192.168.1.0 mask 255.255.255.0可以顯示相同的結果。
BGP表:
WAN_RTR |
WAN_RTR#show ip bgp
<snip>
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0 10.1.3.3 156160 32768 ?
|
路由表顯示EIGRP安裝的路由:
WAN_RTR |
WAN_RTR#show ip route
<snip>
D 192.168.1.0/24 [90/156160] via 10.1.3.3, 00:00:02, FastEthernet0/1
WAN_RTR# |
步驟 3.路由再次通過BGP接收。
現在,EIGRP路由重新分發到BGP中,並且再次通過BGP接收原始路由後,BGP表中現在有2個用於192.168.1.0/24網路的條目。
BGP表:
WAN_RTR |
WAN_RTR#show ip bgp
<snip>
Network Next Hop Metric LocPrf Weight Path
* 192.168.1.0 10.1.2.2 0 0 2 i
*> 10.1.3.3 156160 32768 ?
|
在BGP表中:
— 仍然可以看到步驟2中由重新分發到BGP的EIGRP路由建立的條目。
— 原始路由通過重新建立的BGP會話新增回來。
在BGP最佳路徑選取視點中:
— 重新分發到BGP的EIGRP路由的Weight路徑屬性的值設定為32768,因為它在本地從BGP角度起源於路由器。
— 通過與WAN的BGP會話接收的原始路由的Weight路徑屬性的值為0。
— 第一條路由的Weight最高,因此被選為BGP表中最佳路由。
— 這會導致路由表收斂到原始狀態並保留EIGRP路由條目。
註:BGP Weight Path屬性是BGP檢查在Cisco IOS路由器的BGP表中選擇最佳路徑的第一個路徑屬性。BGP優先使用具有最高Weight的專案的路徑。Weight是一個思科特定的引數,只在設定該引數的路由器上產生本地意義。透過BGP最佳路徑選取演演算法的詳細資訊。
路由表:
WAN_RTR |
WAN_RTR#show ip route
<snip>
D 192.168.1.0/24 [90/156160] via 10.1.3.3, 00:08:55, FastEthernet0/1
|
修改BGP權重路徑屬性
在配置的每個BGP對等體中,可以使用weight命令或route-map修改BGP權重路徑屬性的預設值。
接下來的命令將從BGP對等體接收的所有路由的Weight path屬性設定為40000。
範例 1
使用weight命令 |
router bgp 1
neighbor 10.1.2.2 weight 40000 |
範例 2
使用route-map命令設定「權重路徑」屬性 |
route-map FROM-WAN permit 10
set weight 40000
!
router bgp 1
neighbor 10.1.2.2 route-map FROM-WAN in
!
clear ip bgp * soft in |
範例 3
使用route-map命令為某些路由設定權重路徑屬性 |
ip prefix-list NETWORKS permit 192.168.1.0/24
!
route-map FROM-WAN permit 10
match ip address prefix NETWORKS
set weight 40000
route-map FROM-WAN permit 100
!
router bgp 1
neighbor 10.1.2.2 route-map FROM-WAN in
!
clear ip bgp * soft in |
隨著Weight path屬性的值增加,通過BGP接收的原始路由將優先使用,如下例所示:
步驟 1.路由是透過BGP接收的。
BGP表顯示,通過BGP接收的路由現在的Weight值為40000,而不是零。
BGP表:
WAN_RTR |
WAN_RTR#show ip bgp
<snip>
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0 10.1.2.2 0 40000 2 i
WAN_RTR# |
路由表:
WAN_RTR |
WAN_RTR#show ip route
<snip>
B 192.168.1.0/24 [20/0] via 10.1.2.2, 00:09:53
|
步驟 2.路由通過EIGRP接收。
本地生成的路由在BGP表中仍然具有32768值。
BGP表:
WAN_RTR |
WAN_RTR#show ip bgp
<snip>
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0 10.1.3.3 156160 32768 ?
|
路由表:
WAN_RTR |
WAN_RTR#show ip route
<snip>
D 192.168.1.0/24 [90/156160] via 10.1.3.3, 00:01:41, FastEthernet0/1
|
步驟 3.路由再次通過BGP接收。
使用Weight 40000,現在通過BGP接收的路由會選擇本地發起的路由。這使得網路正確收斂到其原始狀態。
BGP表:
WAN_RTR |
WAN_RTR#show ip bgp
<snip>
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0 10.1.2.2 0 40000 2 i
|
路由表:
WAN_RTR |
WAN_RTR#show ip route
<snip>
B 192.168.1.0/24 [20/0] via 10.1.2.2, 00:00:25
|
真實案例場景
以下情境為例:
步驟 1.原始網路狀態。
核心第3層交換機通過EIGRP從WAN RTR A和WAN RTR B接收192.168.1.0/24路由。通過WAN RTR A的路徑被選擇。
下一個輸出顯示了核心交換機如何與兩台WAN路由器保持EIGRP鄰接關係,以及如何選擇WAN RTR A以到達192.168.1.0/24網路。
核心 |
CORE#show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(1)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 10.1.2.2 (WAN_RTR_A) Fa0/0 10 00:05:15 79 1066 0 10
1 10.1.3.3 (WAN_RTR_B) Fa0/1 12 00:06:22 76 456 0 5
CORE#show ip route
<snip>
D EX 192.168.1.0/24 [170/28416] via 10.1.2.2, 00:00:32, FastEthernet0/0
CORE#show ip eigrp topology
EIGRP-IPv4 Topology Table for AS(1)/ID(10.10.10.10)
<snip>
P 192.168.1.0/24, 1 successors, FD is 28416, tag is 4
via 10.1.2.2 (28416/2816), FastEthernet0/0
via 10.1.3.3 (281856/2816), FastEthernet0/1 |
步驟 2.主WAN鏈路故障。
在鏈路出現故障時,CORE交換機現在通過第二佳EIGRP路徑(即WAN RTR B)安裝路由。
核心 |
CORE#show ip route
<snip>
D EX 192.168.1.0/24 [170/281856] via 10.1.3.3, 00:00:05, FastEthernet0/1
CORE#show ip eigrp topology
EIGRP-IPv4 Topology Table for AS(1)/ID(10.10.10.10)
<snip>
P 192.168.1.0/24, 1 successors, FD is 28416, tag is 4
via 10.1.3.3 (281856/2816), FastEthernet0/1 |
步驟 3.恢復主WAN鏈路。
主WAN鏈路已恢復。但是,CORE交換機仍會通過備份路徑進行路由,如下面的輸出所示:
核心 |
CORE#show ip route
<snip>
D EX 192.168.1.0/24 [170/281856] via 10.1.3.3, 00:06:09, FastEthernet0/1
CORE#show ip eigrp topology
EIGRP-IPv4 Topology Table for AS(1)/ID(10.10.10.10)
<snip>
P 192.168.1.0/24, 1 successors, FD is 28416, tag is 4
via 10.1.3.3 (281856/2816), FastEthernet0/1 |
此行為的原因在於前面討論的BGP Weight路徑屬性。
在當前狀態下,WAN RTR A顯示路由表中通過EIGRP的路由和BGP表中從EIGRP重新分發的路由,因為權重路徑屬性值的最高值比從重新建立的WAN鏈路通過BGP接收的路由的權重值高。
WAN_RTR_A |
WAN_RTR_A#show ip bgp
<snip>
Network Next Hop Metric LocPrf Weight Path
* 192.168.1.0 10.2.4.4 0 0 4 i
*> 10.1.2.1 284416 32768 ?
WAN_RTR_A#show ip bgp summary
BGP router identifier 10.20.20.20, local AS number 2
<snip>
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.2.4.4 4 4 12 12 16 0 0 00:03:54 (UP) 4
WAN_RTR_A#show ip route
<snip>
D EX 192.168.1.0/24 [170/284416] via 10.1.2.1, 00:08:22, FastEthernet0/0
|
本文檔中涵蓋的行為已廣泛用於該領域。網路拓撲和初始症狀可能與涵蓋的範例不同。但是,根本原因可以是且通常如本文檔所述。必須驗證配置和方案是否滿足網路部署中出現此條件的變數。