Peers=Neighbors
EBGP是不同的AS間建立的鄰居關系,通常EBGP通過直連建立鄰居關系
IBGP是相同的AS内的建立的BGP關系,鄰居之間不必要通過直連建立鄰居關系,一般通過loopback建立鄰居關系。
BGP組網拓撲:
R2 R3 R4屬于AS200 , 我們配置IBGP鄰居:
R2到R4,完成IGP-EIGRP(目标使環回口路由可達)
R2和R4建立IBGP鄰居關系,此處使用sopf,建立完成後R2和R4互相學到loopback地址,我們R2和R4建立IBGP鄰居關系:
R2(config)#router bgp 200
R2(config-router)#neighbor 44.1.1.1 remote-as 200
R4(config)#router bgp 200
R4(config-router)#neighbor 22.1.1.1 remote-as 200
配置完後我們發現BGP鄰居關系為IDLE狀态,debug查看默認R2用的物理之間出接口與R4 lo 建立鄰居關系無法建立重置。
我們需要配置R2的建立BGP鄰居關系的源為lo0
同時我們也需要把R4配置lo0 為源,否則某種場景下也會出現問題。
R4(config)#router bgp 200
R4(config-router)#neighbor 22.1.1.1 update-source lo 0
我們在R2可以學到R1的11.1.1.1 的路由:
我們在R4無法學到R1的11.1.1.1 的路由,我們對比下R2和R4的BGP數據庫。
R4沒有>最優的路由
最優(沒有過濾):
下一跳: 必須可達(即在路由表中出現)
同步: 和IGP的同步,此條件默認滿足
此時我們發現R4沒有到下一跳12.1.1.1 的路由,因此BGP路由表沒有學到11.1.1.1的路由
此時我們可以R2的ospf引入直連路由,讓R4學到12.1.1.1的路由
R2(config)#route-map conn
R2(config-route-map)#match interface serial 1/0
R2(config)#router ospf 110
R2(config-router)#redistribute connected route-map conn
此時我們可以在R4路由表學到12.1.1.1的路由,BGP路由表可以學到11.1.1.1的有效路由:
以上這種方法不常用,我們常用的是下面這種方法next-hop-self,下一跳為自己,R2進行配置改完後我們R4查看路由表下一跳為R2自己22.1.1.1
R2(config)#router ospf 110
R2(config-router)#no redistribute connected route-map conn
R2(config-router)#no redistribute connected subnets
R2(config)#router bgp 200
R2(config-router)#neighbor 44.1.1.1 next-hop-self ---針對IBGP鄰居把下一跳改為本設備的更新源
同時路由表下一跳變為22.1.1.1:
查看CEF:
我們再把R5配置下:
R5#show run | s bgp
router bgp 300
bgp log-neighbor-changes
network 55.1.1.1 mask 255.255.255.255 -----BGP network精準匹配掩碼
neighbor 45.1.1.4 remote-as 200
R4查看BGP數據庫:
此時下一跳也是45.1.1.5,因此在R2同樣是學不到這條路由,因此我們需要針對R4的IBGP鄰居改變下一跳為本設備R4。
R4(config)#router bgp 200
R4(config-router)#neighbor 22.1.1.1 next-hop-self
我們在R2查看到達55.1.1.1的下一跳變為44.1.1.1(R4 lo)
此時我們在R5和R1 都能通過BGP學到對方的lo0 路由,但是我們發現R5 ping R1 是沒法ping通的,此時R3出現了路由黑洞,R3之前我們沒有配置任何的BGP。
R5#ping 11.1.1.1 source lo 0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 11.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 55.1.1.1
.....
R5數據到達R4,R4到達了R3(通過CEF查看下一跳到達R3)
R4#show ip cef 11.1.1.1 detail
11.1.1.1/32, epoch 0, flags [rib only nolabel, rib defined all labels]
recursive via 22.1.1.1
nexthop 34.1.1.3 Ethernet0/2
然後我們在R3查看路由表沒有發現到11.1.1.1的路由:
為了使R3得到11.1.1.1 的路由,我們使用之前學過的路由重分布,R2通過EBGP已經學到11.1.1.1的路由R2上bgp引入ospf就可讓R3學到11.1.1.1的路由:
R2(config)#router ospf 110
R2(config-router)#redistribute bgp 200 subnets
此時我們在R3可以學到11.1.1.1的路由:
雖然R3學到路由但是我們從R5ping 11.1.1.1是仍然沒法ping通的,因為R3沒有55.1.1.1的路由。
R5#ping 11.1.1.1 source lo 0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 11.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 55.1.1.1
.....
Success rate is 0 percent (0/5)
我們在R4上也進行重分布:
R4(config)#router os 110
R4(config-router)#redistribute bgp 200 subnets
此時我們在R3都能學到R1 和 R5 lo0 路由:
此時我們可以在R5 ping通R1的lo0 11.1.1.1:
路由黑洞:我們可以跨設備更新路由表,但是R3沒有運行BGP,R3是路由黑洞(沒有得到路由)。
IP 逐跳轉發(hop-by-hop),每台設備都需要有路由表。
該方案可以作為臨時的解決方案,更優的解決方案下期繼續分享。
歡迎關注和轉發,更多精彩内容下期繼續分享!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!