BGP協議 路徑屬性


一、BGP路徑屬性

  當BGP協議被路由器更新給其對等體時,BGP協議會攜帶多種路徑屬性值(Path Attributes)一並傳遞給對等體。BGP的路徑屬性將影響BGP路由優選,這使得BGP路由策略能力異常強大。

 

二、路徑屬性分類

  (1)公認屬性Well-Known

    公認必遵屬性Well-known mandatory

    公認自由決定屬性Well-known discretionary

  (2)可選屬性Optional

    可選傳遞的Optional non-transitive

    可選非傳遞的Optional non-transitive

  

 

三、Preferred-Value

  Preferred-Value只能在路由器本地配置,而且只影響本設備的路由優選。該屬性不會傳播給任何BGP對等體。

  路由器本地始發的BGP路由默認的Preferred-Value為0,從其他BGP對等體學習到的路由默認Preferred-Value也為0,相當於路由的權重值,取值范圍:0~65535;該值越大,則路由越優先。

 

四、Local_Preference

  也即本地優先級屬性,是公認自決屬性,用於告訴AS中的路由器,哪條路徑是離開AS的首選路徑。

  Local_Preference屬性值越大則BGP路由越優。缺省的Local_Preference值為100。

  該屬性只能被傳遞給IBGP對等體,而不能傳遞給EBGP對等體。

 

  注:Local_Preference注意事項

  如果在EBGP對等體間收到的路由的路徑屬性中攜帶了Local_Preference,則會觸發Notifacation報文,造成會話中斷;

  可以在AS邊界路由器上使用Import方向的策略來修改Local_Preference屬性值,也就是在收到路由之后,在本地為路由賦予Local_Preference。

  使用bgp default local-preference命令修改缺省Local_Preference值,該值缺省為100。

  路由器在向其EBGP對等體發送路由更新時,不能攜帶Local_Preference屬性,但是對方接收路由之后,會在本地為這條路由賦一個缺省Local_Preference值(100),然后再將路由傳遞給自己的IBGP對等體。

 

五、AS_Path

  該屬性為公認必遵屬性,是前往目標網絡的路由經過的AS號列表,確保路由在EBGP對等體之間傳遞無環,也作為路由優選的衡量標准之一。

  路由在被通告給EBGP對等體時,路由器會在該路由的AS_Path中追加上本地的AS號,路由被通告給IBGP對等體時,AS-path不會發生改變。

  

  AS_Path的四種類型

  AS_SET:一個去往特定目的地所經路徑上的無序AS號列表

  AS_SEQENCE:一個有序的AS號列表

  AS_CONFED_SEQUENCE:一個去往特定目的地所經路徑上的有序AS 號列表,其用法與AS_SEQUENCE完全一樣,區別在於該列表中的AS號屬於本地聯邦中的AS。

  AS_CONFED_SET:一個去往特定目的地所經路徑上的無序AS號列表,其用方法與AS_SET完全一樣,區別在於列表中的AS號屬於本地聯邦中的AS。

 

六、 Origin

  該屬性為公認必遵屬性,它標識了BGP路由的起源。如下表所示,根據路由被引入BGP的方式不同,存在三種類型的Origin。

  

  當去往同一個目的地存在多條不同Origin屬性的路由時,在其他條件都相同的情況下,BGP將按如Origin的下順序優選路由:IGP > EGP > Incomplete。

 

七、MED

  MED(MultiExitDiscriminator)是可選非傳遞屬性,是一種度量值,用於向外部對等體指出進入本AS的首選路徑,即當進入本AS的入口有多個時,AS可以使用MED動態地影響其他AS選擇進入的路徑。

  MED屬性值越小則BGP路由越優。

  MED主要用於在AS之間影響BGP的選路。MED被傳遞給EBGP對等體后,對等體在其AS內傳遞路由時,攜帶該MED值,但將路由傳遞給其EBGP對等體時,缺省不會攜帶MED屬性。

 

  MED的一些注意事項:

  缺省情況下,路由器只比較來自同一相鄰AS的BGP路由的MED值,也就是說如果去往同一個目的地的兩條路由來自不同的相鄰AS,則不進行MED值的比較。

  一台BGP路由器將路由通告給EBGP對等體時,是否攜帶MED屬性,需要根據以下條件進行判斷(不對EBGP對等體使用策略的情況下):

    如果該BGP路由是本地始發(本地通過network或import-route命令引入)的,則缺省攜帶MED屬性發送給EBGP對等體。

    如果該BGP路由是從其他BGP對等體學習過來的,那么將該路由通告給EBGP對等體時不攜帶MED。

  在IBGP對等體之間傳遞路由時,MED值會被保留並傳遞,除非部署了策略,否則MED值在傳遞過程中不發生改變也不會丟失。MED不會跨AS傳遞

 

八、Next_Hop

  該屬性是一個公認必遵屬性,用於指定到達目標網絡的下一跳地址

  當路由器學習到BGP路由后,需對BGP路由的Next_Hop屬性值進行檢查,該屬性值(IP地址)必須在本地路由可達,如果不可達,則這條BGP路由不可用。

  在EBGP及IBGP對等體的場景中,Next_Hop的缺省操作是存在差異的。

  

九、Community  

  屬性為可選傳遞屬性,是一種路由標記,用於簡化路由策略的執行,可以將某些路由分配一個特定的Community屬性值,之后就可以基於Community值而不是網絡號/掩碼信息來抓取路由並執行相應的策略了。

  Community屬性值長度為32個比特,也就是4個字節可使用兩種形式呈現,一是單個十進制整數格式,二是AA:NN格式,其中AA表示AS號,NN是自定義的編號

  

  Community值:no-advertise

  如果路由器收到一條攜帶Community屬性的BGP路由,且其中包含no-advertise屬性值,那么該條路由將不能再傳遞給任何其他BGP對等體

  Community值:no-export

  如果路由器收到一條攜帶Community屬性的BGP路由,且其中包含no-export屬性值,那么該條路由將不能再傳遞給任何其他EBGP對等體(聯邦EBGP對等體除外)

  Community值:no-export-subconfed

  如果路由器收到一條攜帶Community屬性的BGP路由,且其中包含no-export-subconfed屬性值,那么該條路由將不能再傳遞給任何其他EBGP對等體(包括聯邦EBGP對等體)

 

十、BGP路由優選規則

  1.優選具有最大Preferred-Value的路由

  2.優選具有最大Local_Preference的路由
  3.優選起源於本地的路由
  4.優選AS_Path最短的路由
  5.Origin(IGP > EGP > Incomplete)
  6.優選MED最小的路由
  7.優選EBGP對等體所通告的路由
  8.優選到Next_Hop的IGP度量值最小的路由
  9.BGP路由負載分擔
  10.優選Cluster_List 最短的路由
  11.優選Router-ID最小的BGP對等體發來的路由
  12.優選Peer-IP地址最小的對等體發來的路由


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM