zoukankan      html  css  js  c++  java
  • 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地址最小的对等体发来的路由

  • 相关阅读:
    openmp 循环并行化循环嵌套内部无法并行
    c++:strcat潜在的错误不报告
    script php / phpfpm /
    webserver waf / WAF 2.0 / ASERVER/1.2.9
    web test LoadRunner FTP / vsftpd / vsftp / WebUploader 0.1.5 / shangchuan
    my ReadTravel_Singapore / singapore / xinjiapo / lvyou / travel
    OS Security var_log_secure / services / port
    EF操作数据库的步骤和一些简单操作语句
    (大快人心,必须转啊)中国体操男队完美逆转卫冕 日本申诉成功获银牌
    [置顶] 【C/C++学习】之一、指针和引用的区别
  • 原文地址:https://www.cnblogs.com/PBDragon/p/13203543.html
Copyright © 2011-2022 走看看