實驗拓撲
實驗需求1.設備互聯地址如圖所示;所有設備開設Loopback0口,該接口IP地址為x.x.x.x/32,其中x為設備編號。Loopback0的IP地址作為OSPF RouterID以及LSR ID、LDP傳輸地址。
2.R1、R2、R3、R4運行OSPF,通告直連接口及Loopback0。注意R1不能在OSPF中通告192.168.1.0/24路由,R4也不能在OSPF中通告192.168.2.0/24路由。
3.R1及R4基于Loopback0口建立iBGP鄰居關系;R1將直連路由192.168.1.0/24通告進BGP,R4將直連路由192.168.2.0/24通告進BGP,R2及R3不運行BGP。
4.通過部署MPLS,使得PC1與PC2能夠互通。
實驗步驟及配置1.完成設備接口、OSPF和BGP的配置:
R1的配置如下:
完成接口IP地址的配置:
[R1]interfaceGigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0]ipaddress12.1.1.124
[R1]interfaceGigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]ipaddress192.168.1.25424
[R1]interfaceloopback0
[R1-Loopback0]ipaddress1.1.1.132
配置OSPF:
[R1]ospf1router-id1.1.1.1
[R1-ospf-1]area0
[R1-ospf-1-0.0.0.0]network12.1.1.00.0.0.255
[R1-ospf-1-0.0.0.0]network1.1.1.10.0.0.0
配置BGP:
[R1]bgp100
[R1-bgp]peer4.4.4.4as-number100
[R1-bgp]peer4.4.4.4connect-interfaceLoopback0
[R1-bgp]network192.168.1.024
R2的配置如下:
完成接口IP地址的配置:
[R2]interfaceGigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0]ipaddress12.1.1.224
[R2]interfaceGigabitEthernet0/0/1
[R2-GigabitEthernet0/0/1]ipaddress23.1.1.224
[R2]interfaceloopback0
[R2-Loopback0]ipaddress2.2.2.232
配置OSPF:
[R2]ospf1router-id2.2.2.2
[R2-ospf-1]area0
[R2-ospf-1-0.0.0.0]network12.1.1.00.0.0.255
[R2-ospf-1-0.0.0.0]network23.1.1.00.0.0.255
[R2-ospf-1-0.0.0.0]network2.2.2.20.0.0.0
R3的配置如下:
完成接口IP地址的配置:
[R3]interfaceGigabitEthernet0/0/0
[R3-GigabitEthernet0/0/0]ipaddress23.1.1.324
[R3]interfaceGigabitEthernet0/0/1
[R3-GigabitEthernet0/0/1]ipaddress34.1.1.324
[R3]interfaceloopback0
[R3-Loopback0]ipaddress3.3.3.332
配置OSPF:
[R3]ospf1router-id3.3.3.3
[R3-ospf-1]area0
[R3-ospf-1-0.0.0.0]network23.1.1.00.0.0.255
[R3-ospf-1-0.0.0.0]network34.1.1.00.0.0.255
[R3-ospf-1-0.0.0.0]network1.1.1.10.0.0.0
R4的配置如下:
完成接口IP地址的配置:
[R4]interfaceGigabitEthernet0/0/0
[R4-GigabitEthernet0/0/0]ipaddress34.1.1.424
[R4]interfaceGigabitEthernet0/0/1
[R4-GigabitEthernet0/0/1]ipaddress192.168.2.25424
[R4]interfaceloopback0
[R4-Loopback0]ipaddress4.4.4.432
配置OSPF:
[R4]ospf1router-id4.4.4.4
[R4-ospf-1]area0
[R4-ospf-1-0.0.0.0]network34.1.1.00.0.0.255
[R4-ospf-1-0.0.0.0]network4.4.4.40.0.0.0
配置BGP
[R1]bgp100
[R1-bgp]peer1.1.1.1as-number100
[R1-bgp]peer1.1.1.1connect-interfaceLoopback0
[R1-bgp]network192.168.2.024
完成上述配置后,當PC1去ping PC2時,肯定是無法ping通的,數據包的轉發過程如下:

雖然R1已經通過BGP從R4學習到192.168.2.0/24的路由,PC1訪問PC2的數據包被R1轉發給了R2,但是由于R2沒有運行BGP,而OSPF域中又沒有關于192.168.2.0/24的路由,因此報文在R2處被丟包,這就是典型的BGP路由黑洞問題。其實之所以不在R2、R3上運行BGP,是因為BGP承載的路由前綴數量往往非常龐大,此舉可以極大的降低R2、R3的設備資源消耗,但是卻也帶來了路由黑洞問題。
利用MPLS能夠解決上述問題,我們在R1、R2、R3、R4上激活MPLS及LDP:

從而構建一個MPLS網絡。
R1的配置增加如下:
[R1]mplslsr-id1.1.1.1#配置MPLSLSRID
[R1]mpls#全局激活MPLS
[R1-mpls]quit
[R1]mplsldp#全局激活LDP
[R1-mpls-ldp]quit
[R1]InterfaceGigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0]mpls#在接口上激活MPLS
[R1-GigabitEthernet0/0/0]mplsldp#在接口上激活LDP
R2的配置增加如下:
[R2]mplslsr-id2.2.2.2
[R2]mpls
[R2-mpls]quit
[R2]mplsldp
[R2-mpls-ldp]quit
[R2]InterfaceGigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0]mpls
[R2-GigabitEthernet0/0/0]mplsldp
[R2]InterfaceGigabitEthernet0/0/1
[R2-GigabitEthernet0/0/1]mpls
[R2-GigabitEthernet0/0/1]mplsldp
R3的配置增加如下:
[R3]mplslsr-id3.3.3.3
[R3]mpls
[R3-mpls]quit
[R3]mplsldp
[R3-mpls-ldp]quit
[R3]InterfaceGigabitEthernet0/0/0
[R3-GigabitEthernet0/0/0]mpls
[R3-GigabitEthernet0/0/0]mplsldp
[R3]InterfaceGigabitEthernet0/0/1
[R3-GigabitEthernet0/0/1]mpls
[R3-GigabitEthernet0/0/1]mplsldp
R4的配置增加如下:
[R4]mplslsr-id4.4.4.4
[R4]mpls
[R4-mpls]quit
[R4]mplsldp
[R4-mpls-ldp]quit
[R4]InterfaceGigabitEthernet0/0/0
[R4-GigabitEthernet0/0/0]mpls
[R4-GigabitEthernet0/0/0]mplsldp
現在,我們遇到的問題,是R2及R3由于沒有運行BGP,因此他們無法學習到BGP路由192.168.1.0/24及192.168.2.0/24,因此在他們這出現了路由黑洞。此處通過利用標簽棧,可以解決192.168.1.0/24及192.168.2.0/24網絡通信的問題。當PC1訪問PC2時,IP數據包先是送到R1,如果這個IP數據包被R1壓入一層MPLS標簽,而這個標簽正好又是R2能理解、能處理的,不就能解決這個問題么?那么壓入的標簽值是多少?其實完全可以走4.4.4.4這條LSP,因此標簽值就用4.4.4.4這條FEC的標簽。
實際上,在R1上查看BGP路由 192.168.2.0/24能夠發現該路由的下一跳就是4.4.4.4。而4.4.4.4此刻在LFIB表中已經有條目,因此去往192.168.2.0/24的IP數據包能夠使用4.4.4.4這條LSP來走。

PC1去訪問192.168.2.1這臺主機,IP報文先是被送到R1,R1通過查看路由表發現下一跳是4.4.4.4,將數據包壓入4.4.4.4對應的標簽值1026,然后把數據包發給R2。R2將標簽1026置換成1028然后將數據包送到R3,R3將標簽彈出,將IP報文轉發給R4。這里有個細節需要注意,那就是在華為的設備上,缺省情況下,R1在查去往192.168.2.0/24的路由時會發現下一跳是4.4.4.4,而4.4.4.4非直連,又會進一步將下一跳遞歸得到10.1.12.2,然后將IP數據包轉發給R2,而不會壓標簽。為了讓R1遞歸到LSP,要配置一條命令來打開這個開關:route recursive-lookup tunnel。

如此一來PC1就能夠ping 通PC2了。
審核編輯:郭婷
-
接口
+關注
關注
33文章
8961瀏覽量
153268 -
BGP
+關注
關注
0文章
85瀏覽量
15608
原文標題:如何解決 BGP 路由黑洞問題?MPLS可是一把利劍!
文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
多線BGP技術通過哪幾種方式提升網絡穩定性?
MPLS與傳統路由的優勢
高防BGP多線云服務器全面測評
如何遠程登錄路由器

磁極是如何解決磁集成產品電磁干擾的?

路由偏好,提升網絡性能新路徑

華為設備中的BGP命令詳解
ESP8266發送幾幀數據會提示“ESPCONN_IF”錯誤如何解決?
如何解決4G工業路由器常見問題?

評論