1. 程式人生 > >BGP路徑屬性之next-hop 實驗分析

BGP路徑屬性之next-hop 實驗分析

BGP路徑屬性之next-hop

作用: 去往目的路由下一跳AS的路由器的IP地址

特徵:

①從EBGP鄰居學習到的路由會傳遞給我的EBGP鄰居,下一跳改變,為自己

②從EBGP鄰居學習到的路由會傳遞給我的IBGP鄰居,下一跳不變,還是EBGP鄰居,需要使用next-hop-self改變

③從IBGP鄰居學習到的路由不會再傳遞給我的IBGP鄰居(水平分割)

④從IBGP鄰居學習到的路由會傳遞給我的EBGP鄰居,下一跳改變,為自己

 


 

實驗具體分析

①從EBGP鄰居學習到的路由會傳遞給我的EBGP鄰居,下一跳改變,為自己

檢視R1的bgp database

R1#show ip bgp

   Network          Next Hop            Metric LocPrf Weight Path
r> 6.6.6.6/32       6.6.6.6                  0             0 6 i

可以看到來自R6的路由6.6.6.6/32的Next Hop為6.6.6.6

 

檢視R2的bgp database

R2#show ip bgp

   Network          Next Hop            Metric LocPrf Weight Path
*> 6.6.6.6/32       1.1.1.1                                0 1 6 i

經過R1轉發後,R2收到的路由6.6.6.6/32的Next Hop為1.1.1.1

 

②從EBGP鄰居學習到的路由會傳遞給我的IBGP鄰居,下一跳不變,還是EBGP鄰居,需要使用next-hop-self改變

R2從EBGP鄰居學習到的路由會傳遞給IBGP鄰居R3,但是Next Hop不變,仍然為R2

R2的database在上面有檢視過

 

檢視R3的database

R3#show ip bgp

   Network          Next Hop            Metric LocPrf Weight Path
* i6.6.6.6/32       1.1.1.1                  0    100      0 1 6 i

可以看到路由6.6.6.6/32的Next Hop仍為1.1.1.1,沒有改成R2的route-id 2.2.2.2

這樣造成的問題是R3想給6.6.6.6/32傳送資料時,找不到下一跳,無法通訊

 

所以需要在R2修改與R3鄰居的路由屬性Next Hop為next-hop-self

這樣R2從EBGP學習到的路由轉發給IBGP鄰居,會將Next Hop改為自己的

R2(config-router)#neighbor 3.3.3.3 next-hop-self

 

再檢視R3的database

R3#show ip bgp

   Network          Next Hop            Metric LocPrf Weight Path
* i6.6.6.6/32       2.2.2.2                0    100      0 1 6 i

可以看到路由6.6.6.6/32的Next Hop修改成R2

 

③從IBGP鄰居學習到的路由不會再傳遞給我的IBGP鄰居(水平分割)

檢視R4的database

R4#show ip 

   Network          Next Hop            Metric LocPrf Weight Path
 

可以看到R4並沒有收到路由6.6.6.6/32,這是因為BGP的水平分割導致的,

即R3從IBGP鄰居R2學習到的路由6.6.6.6/32不會再傳遞給它的IBGP鄰居R4。

 

解決方法:使用路由反射route reflector  用來打破BGP水平分割原則

此實驗R3為路由反射的服務端,R2,R4位路由反射的客戶端

服務端R3接收到客戶端R2的路由會傳遞給客戶端R4

R3(config-router)#nei 2.2.2.2 route-reflector-client

R3(config-router)#nei 4.4.4.4 route-reflector-client 

 

再檢視R4的database

R4#show ip bgp  

   Network          Next Hop            Metric LocPrf Weight Path
*>i6.6.6.6/32       2.2.2.2                  0    100      0 1 6 i

可以看到使用路由反射打破BGP水平分割後,R4可以接收到路由6.6.6.6/32

並且Next Hop為2.2.2.2,這是因為R3是通過路由反射傳遞路由條目,

路由反射不會改變BGP的路由屬性Next Hop

 

當然解決BGP水平分割的問題不止路由反射,也可以使用其他方法來解決:

>>>BGP全互聯

>>>MPLS/VPN

>>>路由聯邦

 

④從IBGP鄰居學習到的路由會傳遞給我的EBGP鄰居,下一跳改變,為自己

R4從IBGP鄰居學習到的路由6.6.6.6/32會傳遞給它的EBGP鄰居R5,下一跳改變,為自己

檢視R5的database

R5#show ip bgp

   Network          Next Hop            Metric LocPrf Weight Path
*> 6.6.6.6/32       4.4.4.4                                0 234 1 6 i

可以看到R5能接收到來自R4的路由6.6.6.6/32並且Next Hop為4.4.4.4

點選檢視更多BGP路徑屬性!