HCIE(BGP屬性以及選路)

BGP屬性特點—概述

BGP路由屬性是一套參數,它是對路由的進一步的描述

  • 公認必遵
  1. 所有BGP路由器都能識別,且必須存在在Update消息中
  2. 如果缺少這種屬性,路由信息就會錯誤
  • 公認任意
  1. 所有BGP路由器都可以識別,但不要求必須存在於Update消息中
  2. 即就算缺少這類屬性,路由信息也不會出錯
  • 可選過渡
  1. 在BGP對等之間具有可傳遞的屬性
  2. BGP路由器可以不支持此屬性,但它任然會接收這類屬性,並傳遞給其他對等體
  • 可選非過渡
  1. 如果BGP路由器不支持此屬性,則相應的這類屬性會被忽略,且不會傳遞給其他對等體

常用的屬性類別如下所示:

  • Origin 爲公認必遵屬性
  • As-path 爲公認必遵屬性
  • Next-hop 爲公認必遵屬性
  • Local-pref 爲公認任意屬性
  • community 爲可選過渡屬性
  • MED 爲可選非過渡屬性
  • Originator_ID 爲可選非過渡屬性
  • Cluster_list 爲可選非過渡屬性

BGP屬性特點—Origin

Origin屬性用來定義路徑信息的來源,該屬性爲公認必遵

  • IGP
    通過路由器始發AS的IGP得到的路由信息,如通過network命令注入BGP的路由
    標識符爲 “i”
  • EGP
    通過EGP得到的路由信息
    標識符爲 “e”
  • Incomplete
    通過其他方式學習到的路由信息,如通過import-route 命令注入BGP的路由
    標識符爲 “?”

優先級:
IGP>EGP>IncompleteI>e>?

BGP屬性特點—PrefVal

協議首選值(PreVal)是華爲設備的特有屬性,該屬性僅在本地有效,不會傳遞給BGP鄰居。因爲協議首選值是人爲主動設置的,代表本地用戶的意願,因而在BGP進行選路時會優先比較協議首選值
在這裏插入圖片描述
在BGP進行選路時會優先比較協議首選值。默認情況下均爲0,該值越大越優先

BGP屬性特點—As-path

As-path屬性按矢量順序記錄某條路由從本地到目的地所要經過的所有AS編號。該屬性爲公認必遵
As-path屬性可以當作BGP選路的參考屬性之一,As-path長度越短越優先。此外,當BGP路由器從EBGP對等體接受路由時,如果發現As-path列表中有本地AS號,則不接收該路由,從而避免了As間的路由環路

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

BGP屬性特點—Next_hop

Next_hop屬性記錄了路由的下一跳信息,該屬性爲公認必遵
在這裏插入圖片描述
Next_hop屬性記錄了路由的下一跳信息。BGP的下一跳屬性和IGP的有所不同,不一定就是鄰居設備的IP地址。通常情況下,Next_hop屬性遵循下面的規則:

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

BGP屬性特點—Local_pref

Local_pre屬性表明BGP路由器的優先級,該值越大越優先,默認爲100,該屬性爲公認任意
該屬性在IBGP鄰居間可以傳播,不通告給其他As。它表明路由器的BGP優先級
在這裏插入圖片描述
Local_pref值在IBGP鄰居間可以傳遞,故對於上圖,有六種方法可以讓As100去10.0.0.0/24走R2

  1. 修改R2本地默認Local_pref值爲200
  2. 在R2的EBGP接口入向通過route-policy 修改10.0.0.0/24的Local_pref爲200
  3. 在R2的IBGP接口出向通過route-policy 修改10.0.0.0/24的Local_pref爲200
  4. 在R1的IBGP接口入向通過route-policy 修改10.0.0.0/24的Local_pref爲200
  5. 修改R3本地默認Local_pref值爲80
  6. 在R3的EBGP接口入向通過route-policy 修改10.0.0.0/24的Local_pref爲80

注: 在R1的IBGP接口出向修改Local_pref值爲200不可以,因爲這樣不能改變R1的選路;同樣的,在R3的IBGP接口出向修改Local_pref值爲80也不可以,因爲這樣不能改變R3的選路

BGP屬性特點—MED

MED屬性類似於IGP的cost值,被用於AS間的路由選路,默認值爲0;該屬性爲可選非過渡
MED屬性僅在相鄰兩個As之間傳遞,收到此屬性的As一方不會再將其通告給任何其他第三方As;MED值可以在相鄰的AS的IBGP間傳遞
默認MED只能⽤於倆個AS之間選路,如果⽤於多個需要開啓MED的多AS選路
在這裏插入圖片描述


在這裏插入圖片描述
在上圖中通過R4或者R5的MED來影響R1選擇一條路徑去到10.1.1.0/24網段是不可以的,因爲R4和R5是屬於不同的As,不能通過本As的MED影響到別的As的選路,如果可以的話,那互聯網中任何一個AS的MED值的改動都可能引起互聯網的震盪


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

BGP屬性特點—Atomic_aggregate和Aggregator

當BGP路由器向外宣告彙總路由時,會丟失路由信息(As_path、next_hop等),彙總的發起者只會將自己的As號放入As_path,聚合前的As信息都會丟失。這樣會使得路由變得不準確

  • Atomic_aggregate屬性
    該屬性可以警告下游路由器出現了路徑的丟失。彙總時總是會把這個屬性放進彙總後路由的Update消息中。任何下游路由器將彙總路由宣告給其他路由器時,會傳遞這條路由器的這個屬性
  • Aggregator屬性
    彙總時會自動的出現該屬性。它包括髮出彙總路由的BGP路由器的As號以及Router_ID,從而提供了執行彙總的地點信息。Atomic_aggregate屬性是告知出現了路由信息的丟失而Aggregator屬性是說明了彙總路由是從哪裏來的

BGP屬性特點—community

團體屬性(community)用於標識具有相同特徵的BGP路由,該屬性爲可選過渡
該屬性用來簡化路由策略的應用和降低維護管理的難度,利用團體屬性可以使多個As中的一組BGP這杯共享相同的策略。團體是一個路由屬性,在BGP對等體之間傳遞,且不受AS的限制。BGP設備在將帶有團體屬性的路由發佈給其它對等體之前,可以先改變此路由原有的團體屬性。
團體屬性分爲

  • 自定義團體屬性
  • 公共團體屬性
  1. Internet
  2. No_Advertise
  3. No_Export
  4. No_Export_Subconfed

團體屬性用一組4字節爲單位的列表來表示,格式有:

  • aa:nn
    aa和nn的取值範圍都是0~65535
  • 團體號
    取值範圍是0~65535
    標準協議中定義:0~65535和4294901760~4294967295是預留的

公認團體屬性

  • Internet
    默認情況下,所有的路由都屬於Internet團體。具有該屬性的路由可以被通告給所有的BGP對等體
  • No_Advertise
    具有此屬性的路由在收到後,不能被通告給任何其他的BGP對等體
  • No_Export
    具有此屬性的路由在收到後,不能被髮布到本地AS之外。如果使用了聯盟,則不能被髮布到聯盟之外,但可以發佈給聯盟中的其他As
  • No_Export_Subconfed
    具有此屬性的路由在收到後,不能被髮布到本地As之外,也不能發佈到聯盟中的其他子As

BGP屬性特點—Originator_ID和Cluster_list

Originator_ID和Cluster_list是在路由反射器中使用,用來防止路由選擇環路,爲可選非過渡屬性

  • Originator_ID—用於集羣內的防環
    是本地AS中路由發起者的路由器ID。如果路由發起者在接收到路由的originator-id中發現了自己的RID,就知道產生了環路,於是忽略該路由條目,它提供在AS內的防環作用,它由第一個RR創建,並且不被後續的RR修改。它只應在IBGP對等體那裏接收到,在RR上originator-id用來替代路由選擇過程中的router-ID。它應該是這些路由器的router-id:在本地AS始發路由的BGP宣告者的router-id;如果是從EBGP學到的就是最初學到那個條目的路由器(本AS內邊界路由器)的router-id(它一定是本AS內路由器的router-id)
  • Cluster_list—用於集羣間的防環
    是路由經過的路由反射器的簇ID(默認RR的router-ID)的一個列表,如果路由反射器接收到的路由的cluster-List中發現了自己的本地簇ID,就知道產生了環路,於是忽略該路由條目。

BGP路由計算—選路規則

在這裏插入圖片描述
注: 選路規則並不是從上至下逐一匹配,可能會隔條匹配

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