BGP路由聚合產生的問題[ensp][華爲][BGP路由協議][路由聚合]

該實驗在華爲模擬器ensp內完成。

目錄

​1、自動聚合

2、手工聚合

 


  • BGP路由聚合分爲兩種,一種爲自動聚合,一種爲手工聚合。
  • IPV4支持自動聚合、手工聚合,IPV6只支持手工聚合,以下主要研究IPV4路由聚合。

 

如圖所示拓撲,R5上存在三條外部路由,分別爲1.1.1.0/24、1.1.2.0/24、1.1.3.0/24,R4存在一條外部路由爲1.1.0.0/24。R5、R4、R8分別爲R6的EBGP鄰居。再R5、R4設備上分別引入路由,在BGP路由表上可查看到。就此拓撲研究自動聚合與手工聚合,以及手工聚合產生的問題。

自動聚合配置過程:

使用較少,因爲只能聚合爲主類路由,匹配前綴過長造成地址浪費。前提必須將路由通告import引入,才能進行自動聚合。在R5BGP視圖下開啓自動聚合,在R6上查看聚合路由。

 

自動聚合前

 

自動聚合後,發現全部聚合了主類路由。

 

 

手工聚合配置過程:

在R5BGP視圖下手工聚合路由,在R6、R8上查看BGP路由表信息。

[R1-bgp]aggregate 1.1.0.0 22< detail-suppressed > <as-set>

#將路由聚合爲1.1.0.0 22位的路由 <抑制明細路由的發送> <顯示明細路由的AS號>

 

1、不加detail-suppressed則會多路由條目 不會減少路由表大小

2、不加as-set可能存在潛在的環路問題(因爲手工聚合後AS-PATH的丟失,可能會回傳路由),將抑制明細路由的AS號放到聚合中傳遞。若as-set來自不同的路由器,則會出現不同的AS-PATH度量類型。

 

可以發現,即使手工聚合了但還是存在R5引入的明細路由,這是爲什麼呢?

 

EBGP鄰居收到明細路由,可以根據收到的路由直接查找明細,這樣避免了環路的產生,但是會增加路由表大小,我們做路由聚合的目的就是爲了減小路由表大小,可是如果去掉明細路由則可能會出現環路問題,爲什麼會產生環路問題?

 

 

環路問題的出現:在OSPF、ISIS、BGP也可能出現此問題,缺省路由互指也會導致此問題。RTB查詢路由表中沒有的路由,通過缺省路由查詢將數據包發送給鄰居。RTA同樣也沒有此路由,但是前提做過聚合,在聚合路由中存在此路由,又重新發給RTB,環路形成。所以手工聚合尤其是靜態,在路由器進行聚合時加上去往NULL0的路由。

手工聚合可能會帶來環路問題,所以在手工聚合的時候需要加一個去往NULL0的路由(多稱爲垃圾桶、黑洞),若出現上述問題,直接將路由扔到垃圾桶裏。

所以手工聚合尤其是靜態,在路由器進行聚合時加上去往NULL0的路由。(BGP 會自動生成NULL0路由,而OSPF不會)

 

 

 

 

R6(注意此處不是R5)配置手工聚合時,加上detail-suppressed選項。過濾明細路由。

手工聚合後發現,AS-PATH少了300,而且會發送三個update包,區分不同的路由,將相似路由放進同一個包裏。手工聚合後會出現AS屬性的丟失,也可能會出現環路問題爲什麼會出現這種問題呢?

 

若R5 R8鏈路之間連接,建立EBGP鄰居,在R8收到1.1.0.0 22 位路由的時候,因爲丟失了AS300的AS-PATH,所以會將此路由回傳,R5也必定會接收,因爲AS-PATH中沒有AS300,此時形成AS間環路。

但是由於BGP配置手工聚合後會默認產生一條NULL路由,所以在根本上防止了這種環路問題的出現。

 

在加上as-set後,生成具有AS-SET的路由。這樣就不會出現AS-PATH丟失問題。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章