BGP修改NEXT HOP下一跳屬性值的幾種方法

2021-06-20 21:37:49 字數 2518 閱讀 9396

1.通過next-hop-self可以變更next-hop屬性

上圖r5更新給ebgp鄰居r2 bgp路由5.5.5.0時,next_hop=192.168.25.5,該屬性將一直跟隨本條bgp路由在as234中傳遞,這時對於r4、r3來說,並不知道如何前往192.168.25.5,因此5.5.5.0的路由無法正常裝入路由表。解決方法之一是r2在igp路由中注入25.0這條外部路由,另乙個方法是r2對其ibgp鄰居使用next-hop-self,修改這條字首的next_hop屬性。

next_hop on shared media(在共享介質上的運作)

routerb將路由100.100.100.0/24傳遞給a,next_hop為10.1.123.2;

routera將路由100.100.100.0/24傳遞給c,此時next_hop保持不變;

如果路由器收到某條bgp路由,該路由的next_hop位址值與該路由器的介面ip(更新源)同屬乙個網段,那麼該條路由的next_hop位址將保持不變並傳遞給它的(這個相同網段上的)bgp鄰居,這個其實是一種優化機制,但是這種機制在nbma環境中是否有問題呢?

next_hop on nmba network

仍然看上圖,中間的網路如果不是廣播多路訪問網路,而是乙個幀中繼網路,那麼就要注意,c收到的路由,next_hop為10.1.123.2,那麼如果c路由器上沒有到該ip的pvc,就會出問題,所以這點要考慮進去。

2.通過route-map修改bgp路由next_hop屬性值

bgp的鄰居關係如圖所示,r1-r2建立基於loopback的ibgp鄰居關係。r2-r3建立基於直連線口的ebgp鄰居關係。那麼在預設情況下,r1通告給r2的路由11.0/24下一跳屬性值為1.1.1.1,也就是r1的更新源ip,而r2將路由更新給ebgp鄰居r3時,路由的nh變成了10.1.23.2、

r2上增加配置

access-list 1 permit 11.11.11.0

route-map test permit 10

match ip address 1

set ip next-hop 10.1.23.99

router bgp 12

neighbor 10.1.23.3 route-map test out

通過在r2上部署out方向的route-map,可以修改傳遞給r3的bgp路由的next_hop屬性值,當然上面的範例設定的10.1.23.99沒有任何意義,純粹是乙個測試而已。

3.關於bgp next-hop-unchanged特性

(承上一小節)另乙個可以影響bgp next_hop屬性值的特性是bgp next-hop-unchanged特性。

首先這條命令只能對多跳ebgp peer配置,所以上圖中,r2及r3需建立基於loopback的ebgp鄰居關係,形成multihop ebgp peer。 

在r2收到ibgp peer傳來的路由11.0/24,其next_hop屬性值為1.1.1.1,如過r2上在bgp程序中使用neighbor 3.3.3.3 next-hop-unchanged配置,那麼r2將bgp路由傳遞給ebgp鄰居r3時,路由的next_hop屬性值將不會發生變化。

再進一步做個測試,現在把拓撲環境變更一下:

r1-r2之間變成了ebgp鄰居了,基於直連線口建立ebgp鄰居關係;

r2-r3之間仍然是基於loopback建立的多跳ebgp鄰居關係;

現在r1傳來的路由,在r2上next_hop屬性值為10.1.12.1,那麼預設情況下r2將路由再傳給r3時,路由的next_hop屬性值修改為2.2.2.2也就是r2的更新源ip。

如果此刻在r2上配置neighbor 3.3.3.3 next-hop-unchanged,我們發現命令無效,r2通告給r3的路由next_hop屬性值還是會變,不會保留10.1.12.1。

因此我得出的結論是,bgp 的neighbor next-hop-unchanged命令,首先只能對多跳ebgp鄰居配置,其次,它只在將本地的ibgp路由傳遞給自己的ebgp多跳鄰居時才會生效。

BGP鄰居特性及下一跳如何建立 學習筆記

兩台路由器執行bgp建立任何鄰居之前,會先互動tcp的三個報文 三次握手做完之後建成乙個基於tcp的 通道,基於通道就開始鄰居關係建立,只用互動乙個open報文 主要包括路由信的身份標識 router id 如果一台路由器竟執行bgp又執行ospf建議給兩個程序分配相同的router id 然後你還...

配置靜態路由的下一跳使用出站介面和下一跳IP的差別

在配置靜態路由時,下一跳可以使用下一路由器的ip位址,也可以使用本路由器的出站介面。在點對點的網路中,兩者可能沒有什麼差別,但在乙太網中,兩者有很大差別。在乙太網中,兩個相鄰介面之間的通訊是依靠mac位址。相鄰介面通訊時,需要知道對方的mac位址,根據mac位址,將通訊資料轉換成資料幀後交付給網路,...

字母跳一跳

題目 有一無限長的迴圈字母表,任意輸入乙個字母,按照規定時刻進行跳轉,每個時刻跳轉規定的步數,最後顯示跳轉後得到的字母 include using namespace std int main char i word 輸入字母 int i k,i t,n 跳轉步數k,時間t,組數n cin n ch...