BGP的屬性問題

屬性分類:

公認必遵:BGP路由器都可以識別並且攜帶,如果缺少這類屬性,路由信息就會出錯。

公認任意:BGP路由器都可以識別但是可能不會攜帶,就算缺少這類屬性,路由信息也不會出錯。

可選過渡:在BGP對等體之間可以傳遞的屬性,BGP路由器可以不支持,但會傳遞給其他對等體

可選非過渡:如果BGP路由器可以識別該屬性,會遵守該屬性進行選路並傳遞給對等體;如果BGP路由器不支持此屬性,這類屬性會被忽略且不會傳遞給BGP對等體。


屬性特點:BGP的路由屬性是一套參數,它是對路由的進一步描述,使得BGP能夠對路由進行過濾和選擇。

對於傳遞的屬性,入向設置屬性可以影響本地及鄰居,出向設置屬性不會影響本地。

1、Origin

公認必遵,用來定義路徑信息的來源信息,標記路由是怎樣成爲BGP路由的。

IGP:通過始發AS的IGP通過network宣告到BGP中的路由信息,標識爲“i”

EGP:通過EGP得到的,標識爲“e”

Incomplete:通過其他方式學習到的,例:通過import-route命令注入BGP,標識爲“?”

注:通過IGP宣告的具有最高的優先級;EGP優先級次之,Incomplete優先級最低。

2、AS-path

公認必遵,按矢量順序記錄路由的路徑,離開AS區域時記錄AS編號。該屬性可以當做BGP選路的參考屬性之一,AS_Path長度越短越優先。此外,當BGP路由器從EBGP對等體接收路由時,如果發現AS_Path列表中有本AS號,則不接收該路由,從而避免了AS間的路由環路。

當BGP Speaker本地通告一條路由時 :
      當BGP Speaker將這條路由通告到其他AS時,便會將本地AS號添加在AS_ Path列表中,並通過Update消息通告給鄰居路由器。
      當BGP Speaker將這條路由通告到本地AS時,便會在Update消息中創建一個空的AS_ Path列表。
當BGP Speaker傳播從其他BGP Speaker的Update消息中學習到的路由時:
      當BGP Speaker將這條路由通告到其他AS時,便會把本地AS編號添加在AS_ Path列表的最前面(最左面)。收到此路由的BGP路由器根據AS_ Path屬性就可以知道去目的地址所要經過的AS.離本地AS最近的相鄰AS號排在前面,其他AS號按順序依次排列。
      當BGP Speaker將這條路由通告到本地AS時,不會改變這條路由相關的AS. Path屬性。

如上圖所示,AS100會從兩個方向收到AS300中的10.0.0.0/24的路由條目,從AS300出來的路由條目和經過AS400後的條目;AS100就會收下AS_Path短的路徑, 在AS100中通告10.0.0.0/24時該屬性不會改變,在其他條件相同的前提下,AS100中的BGP會選擇從R3到達R4。

總結:帶有本地AS號的路由,拒絕接收(防環);AS編號少的路由優於AS編號多的路由(選路)。

3、Next_hop

公認必遵,記錄路由的下一跳信息。

BGP Speaker將本地始發路由發佈給IBGP對等體時,會把該路由信息的下一跳屬性設置爲本地與對端建立BGP鄰居關係的接口地址。
BGP Speaker在向EBGP對等體發佈某條路由時,會把該路由信息的下一跳屬性設置爲本地與對端建立BGP鄰居關係的接口地址。
BGP Speaker在向IBGP對等體發佈從EBGP對等體學來的路由時,並不改變該路由信息的下一跳屬性。

注:記錄的是連接地址(connect地址)

       EBGP鄰居在傳遞時,會更新這一屬性爲EBGP鄰居的connect地址。

       IBGP鄰居之間傳遞時不會更新這一屬性,通過next-hop-local的命令來更新屬性。

個人感覺這個屬性之所以這樣設計也是爲了在AS內部防止環路,對比RIP的環路我們就不難理解,環路的主要原因就是因爲在傳遞路由的過程中將下一跳改爲本地,再經過一系列的傳遞,根本不知道這條路由的源頭在哪,這時就極易出環,所以爲了防止環路,IBGP鄰居不更改這一屬性。


4、Local-pref

公認任意用於選路的屬性該值越大越優,表明路由器的BGP優先級。作用於本地所在的AS域內,IBGP鄰居可以傳遞,不通告給其他AS。

當BGP路由器通過不同的IBGP對等體得到目的地址相同但是下一跳不同的多條路由時,將優選Local_Pref屬性較高的路由,缺省情況下爲100。

干涉選路:讓AS100的域內,從R2路由器去AS400。

修改本地Local-pref:將R2改大,或將R3的改小。(這樣會修改本地所有路由屬性,不推薦)

在接口上修改:通過route-policy修改10.0.0.0的R2的入向和出向、R2到R1的入向上改大Local-pref屬性。R3的EBGP接口入向通過route-policy改小Local-pref的屬性。不能修改R1到R3的出向,原因是不能影響R1自己的選路。

沒有干涉的情況,R2會選擇EBGP R4的路徑去到達10.0.0.0/24的網段;R3會選擇R5到達10.0.0.0/24的網段。

5、ATOMIC_Aggregate

公認任意

當某一臺BGP Router做BGP路由彙總時,會丟失掉那些細路由的所有AS_Path詳細信息,而只將做了彙總的那臺BGP 路由器所在的AS號填入AS_Path的AS_SEQUENCE中, 只要有做BGP彙總都會產生這個警告屬性,這個屬性其實只是用來做警告的作用,用來警告下游BGP鄰居,收到的是一條彙總路由。


6、Aggregator

可選傳遞

在做BGP彙總的那臺路由器上,可以指定這個屬性,用來指示在哪裏做了彙總;通常這個屬性的值由做BGP彙總的那臺路由器的RID和所在的AS號來標識;用來告知後續的路由器。

總結:ATOMIC_AGGREGATE屬性是用來警告說這條路由是BGP彙總路由;而AGGREGATOR屬性是用來指示在哪個地方、哪個點上做了BGP彙總。

7、Community

可選傳遞

本質是一種標記,默認華爲設備也不傳遞社團屬性,故使用社團屬性時,必須定義傳遞性。

標準格式:一個值X

擴展格式:兩個值AA:NN

前兩個字節表示自主系統號AA,

後面兩個字節用來標識這個Community NN

公認的子屬性:

Internet:傳播不受限。

no-advertise:接收到的條目中若存在該社團屬性,將不再傳遞該路由

no-export:接收到的條目若存在該社團屬性,將不傳遞給下一個AS

no-export-subconfed:接收到的條目若存在該社團屬性,將不傳遞給下一個小AS。 


8、MED

可選非過渡,IBGP之間可以傳播;用於兩個AS之間的路由選擇, MED可以影響AS之間的選路(僅限兩個AS之間),小優,默認0

拓撲描述

R1和R2將網段10.0.0.0/24傳遞給各 自的EBGP鄰居R3和R4 , R3和R4在其他條件相同的情況下,優先選擇MED值較低的路徑,即均選擇經由R1訪問網絡10.0.0.0/24。 

當一個運行BGP的設備通過不同的EBGP對等體( EBGP對等體需屬於同一AS )得到目的地址相同但下一跳不同的多條路由時,在其它條件相同的情況下,將優先選擇MED值較小者作爲最佳路由。

MED屬性僅在相鄰兩個AS之間傳遞,收到此屬性的AS方不會再將其通告給任何其他第三方AS。MED屬性可以手動配置,如果路由沒有配置MED屬性, BGP選路時將該路由的MED值按缺省值0來處理。

9、Originator_ID 和 Cluster_list

這兩個屬性的屬性種類都是可選非過渡的,並且都是供路由反射器RR(Route Reflector)環境中使用的——而且作用都是用來防止環路的產生。

其中Originator_ID屬性的值是該AS中始發該路由條目的路由器的RID。 如果某臺BGP 路由器收到一條路由條目更新,且這個更新中的Originator_ID是它自己的RID,那麼它就知道發生了路由環路,並忽略這個更新的內容!

Originator_ID屬性是爲了防止經過路由反射器的反射而出環,給路由條目加一個初始的路由器RID。

Cluster_lsit 屬性的值是該路由條目所經過的一系列RR簇ID的序號!如果某臺RR收到了一條路由條目更新,並且更新中的Cluster_ID中發現了自己的RR簇ID,就證明有環路產生,並忽略這個更新的內容;如果沒有,則接收並繼續發射路由,同時追加自己的Cluster_ID。

 Cluster_lsit屬性是爲了防止在路由反射器之間反射形成的環路。

10、Weight(或PrefVal

可選非過渡

(1)weight

權重值:Cisco私有屬性,不傳播,僅在本地生效,隻影響本地路由器的選路。默認本地產生的路由權重值爲32768,其他爲0。

(2)PrefVal

協議首選值;華爲私有屬性,可選非過渡,該屬性僅在本地有效。人爲主動設置,僅代表本地意願。默認爲0,越大越優。

注:在調用的相關策略時候只能在入方向上調用,因爲此屬性只能影響本地,不會傳遞給鄰居。

選路規則:

當到達同一目的地存在多條路由時,BGP依照如下策略順序進行路由選擇:

  1. 如果此路由的下一跳不可達,忽略此路由;下一跳必須可達。
  2. 優選協議首選值(PrefVal)最高的路由。
  3. 優選本地優先級(Local_Pref)最高的路由。
  4. 優選手動聚合、自動聚合路由、network命令引入的路由、import-route命令引入的路由、從對等體學習的路由。
  5. 優選AS路徑最短的路由。
  6. 比較Origin屬性,依稀選Origin類型爲IGP、EGP、Incomplete的路由。
  7. 優選MED值最小的路由。
  8. 優選從EBGP鄰居學來的路由(EBGP路由優先級高於IBGP路由)
  9. 優選到下一跳IGP Metric較小的路由。
  10. 優選Cluster_List最短的路由。
  11. 優選Router ID最小的路由器發佈的路由。
  12. 比較對等體的IP address,優選從具有較小IP地址的對等體學來的路由。

負載分擔:當到達同一目的地址存在多條等價路由時,可以通過BGP等價負載分擔實現均衡流量的目的。條件:BGP選路規則中“到下一跳的IGP Metric這條規則”之前所有需要比較的屬性完全相同。

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