0%

BGP 路由协议

BGP 路由协议

BGP 路由选择策略

对于同一个目的地址,路由器会收到多个路径,BGP 对这些路径进行选择分类,决定最终的路由选择

  • Available:可用路径
    • 所有合法的可用路径
  • Best:最佳路径
    • 通过 BGP 最佳路由选择策略,选出来的唯一一个路由,作为最佳路由
  • Select:选择路径
    • 在 BGP 最佳路由选择策略中,前 8 步都与 Best Path 属性相同的路径
    • 这些 Select Path 将会加入路由表,实现 BGP 负载均衡

BGP 最佳路由选择策略

当路由器收到到同一个目的地址的多个 Available Path,BGP 最佳路由选择策略从中选出一条 Best Path。

以下是 BGP 最佳路径选择策略,按比较顺序排列:

  1. 优选权重(Weight)最高的路径
  2. 优选本地优先级(Local Preference)最高的路径
  3. 优选起本地生成的路径
    • 本地内部生成的路由优先级高于从外部学到的路由
    • 本地生成的路由,即通过network命令或aggregate命令手动注入的路由
  4. 优选 AS Path 长度最短的路径
    • AS Path:一个路由经过的自治系统(AS)序列
    • 优先级比较 AS Path 长度,而非 AS Path 本身
      • 路径 1 的 AS Path:65005 65004 65003
      • 路径 2 的 AS Path:65006 65003
      • 只比较两者的长度,路径 1 长度为 3,路径 2 长度为 2,优选路径 2
  5. 优选 Origin Type 优先级最高的路径
    • Origin Type 用于表示路由来源类型,共有三种:
      • IGP:内部网关协议,Internal Gateway Protocol
      • EGP:外部网关协议,Exterior Gateway Protocol
      • Incomplete:不确定来源
    • 优先级 IGP > EGP > Incomplete
  6. 优选 MED 最小的路径
    • MED,Multi-Exit Discriminator,多出口鉴别,只在两个 AS 之间交换,不会传到第三个 AS
    • 两个 AS 之间可能有多条链路连接,MED 用于决定选择那条链路
    • MED 默认值:0
  7. 优选邻居路由器类型为 eBGP 先于 iBGP
    • eBGP,external BGP,外部 BGP,不同 AS 之间的 BGP
    • iBGP,internal BGP,内部 BGP,相同 AS 内部的 BGP
    • 优选 eBGP 路由器,即优选跨 AZ 路径,到达这一步比较的路由,如同时有 eBGP 和 iBGP 路径,iBGP 路径是经过了内部转发再到 eBGP 路由器的绕行路径,所以优选直接到 eBGP 路由器的路径
  8. 优选到 BGP next hop 的 IGP 度量值最小的路径
    • IGP metric,内部路由度量值,在第七步中选择 iBGP 才需要比较步骤,否则跳过
    • IGP 越小,则去该下一跳的开销越小
    • 到该步如存在多个路径条件都相同,则 BGP 负载均衡
  9. 优选来自 Route ID 最小的路由器的路径
  10. 优选 Cluster List 最短的路径
  11. 优选来自 IP 地址最小的 Neighbor 的路径

BGP 负载均衡

BGP Multipath 允许给一个目的地址加载多个 BGP 路径到 IP 路由表,这些路由实现 BGP 负载均衡。这不影响上步中的 Best Path 的选择,依旧从多个路径中选择一条路径作为 Best Path。在此基础之上,可以选取多个路径作为 Select Path,一同加入路由表,实现多路径负载均衡。

  • Select Path 在路由选择策略中的前 8 步必须与 Best Path 完全相同,即有相同的 Weight、Local Preference、AS Path length、Origin Type、MED、eBGP/iBGP、IGP Metric
  • Best Path 必然包含在 Select Path 中
  • maximum-paths 设置 BGP 最多允许的 Select Path 数量,如果设置为 1,则 Select Path 只能有一个,也就是 Best Path

参考