基于FRR全面解析BGP协议(六):BGP路由优选

##BGP路由优选

当BGP设备学习到去往同一个目的网络(包括网段和掩码)的多条BGP路由(路径)时,设备将这些路由都装载到BGP路由表,并在这些条目中进行路由优选,最终决策出最优(Best)的路由,将该BGP路由加载到全局路由表中,作为数据转发的依据 。当存在多路径时,BGP只会将其选择出来的最优路由通告给其他对等体。

BGP定义了一系列路由优选规则,从而使得设备能够在多条路由中选择出最优的路由。 BGP在选择路由时严格按照先后顺序比较路由的属性,如果通过当前的属性就可以选出最优路由,BGP将不再进行后面的比较。由于BGP的选路规则与BGP路径属性相关,而通过路由策略可以调整路径属性,这就使得BGP拥有了十分灵活的路由操控能力。

  1. 优选具有最大Weight的路由

    FRR通过neighbor PEER weight WEIGHT命令可以为对等体设置默认的路由权重,权重高的路由将被优选。

  2. 优选具有最大Local_Preference的路由

    Local_Preference会在IBGP对等体之间传递,不会再EBGP对等体传递,参考Local-Preference

  3. 优选起源于本地的路由

    在其他条件相同的情况下,本地生成的路由优先级高于从邻居学来的路由。本地生成的路由包括

    • 静态路由static
    • 汇总路由aggregates
    • 重发布路由redistributed
    • network引入的路由
  4. 优选AS_Path最短的路由

    AS_Path长度最短的路由将被优选,AS_Path长度计算有以下规则:

    • AS_Set的长度为1,无论AS_Set中包括多少AS号,长度都当做1来计算。

    • AS_confed_seq和AS_confed_set类型默认不参与AS_Path长度计算,除非使用命令bgp bestpath as-path confed。

  5. Origin(IGP > EGP > Incomplete)

    根据路径属性Origin来优选路由,IGP > EGP > Incomplete

  6. 优选MED最小的路由

    MED(Multi Exit Discriminator)是一种度量值,MED属性值越小则BGP路由越优。一般情况下,BGP设备只比较来自同一AS(不同对等体)路由的MED属性值。可以通过配置命令来允许BGP比较来自不同AS的路由的MED属性值。执行bgp always-compare-med命令后,系统将比较来自不同AS中的对等体相同前缀路由的MED值。

  7. 优选EBGP对等体所通告的路由

    EBGP对等体通告的路由优先级高于IBGP

  8. 优选到Next_Hop的IGP度量值最小的路由

    IGP度量值又叫IGP cost,指的是到达某个路由所指的目的地址的代价。cost一般是由OSPF引入,OSPF的cost默认值是10。

  9. BGP路由负载分担

    大型网路中,到达同一目的地通常会存在多条有效BGP路由,设备只会优选一条最优的BGP路由,将
    该路由加载到路由表中使用,并且只将最优路由发布给对等体,这一特点往往会造成很多流量负载不均衡的情况。 通过配置BGP负载分担,可以使得设备同时将多条等价的BGP路由加载到路由表,实现流量负载均衡,减少网络拥塞。值得注意的是,尽管配置了BGP负载分担,设备依然只会在多条到达同一目的地的BGP路由中优选一条路由,并只将这条路由通告给其他对等体。BGP负载分担默认不使能,需要通过命令bgp bestpath as-path multipath-relax来使能。对于IBGP对等体,只要开启BGP路由负载分担,向其他IBGP对等体通告路由时,总是使能next-hop-self选项。

  10. 优选已被选择的路由

    当收到两条前置条件一样的路由,优先选择已有被优选通告的路由,这样可以避免出现路由振荡。如果配置了bgp bestpath compare-routerid则忽略这个优选规则。

  11. 优选Router-ID最小的BGP对等体发来的路由

    如果配置了反射器,则使用ORIGINATOR_ID代替Router-ID来进行比较。

  12. 优选Cluster_List最短的路由

    Cluster_List属性参考路由反射器Cluster_List

  13. 优选Peer-IP地址最小的对等体发来的路由

    Peer-IP指的是通过neighbor命令配置对等体时所指定的IP地址。Peer-IP值越小,路由将被优先选择。

你可能感兴趣的:(FRR)