BGP 路由协议
BGP 路由选择策略
对于同一个目的地址,路由器会收到多个路径,BGP 对这些路径进行选择分类,决定最终的路由选择
- Available:可用路径
- 所有合法的可用路径
- Best:最佳路径
- 通过 BGP 最佳路由选择策略,选出来的唯一一个路由,作为最佳路由
- Select:选择路径
- 在 BGP 最佳路由选择策略中,前 8 步都与 Best Path 属性相同的路径
- 这些 Select Path 将会加入路由表,实现 BGP 负载均衡
BGP 最佳路由选择策略
当路由器收到到同一个目的地址的多个 Available Path,BGP 最佳路由选择策略从中选出一条 Best Path。
以下是 BGP 最佳路径选择策略,按比较顺序排列:
- 优选权重(Weight)最高的路径
- 优选本地优先级(Local Preference)最高的路径
- 优选起本地生成的路径
- 本地内部生成的路由优先级高于从外部学到的路由
- 本地生成的路由,即通过
network
命令或aggregate
命令手动注入的路由
- 优选 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
- 路径 1 的 AS Path:
- 优选 Origin Type 优先级最高的路径
- Origin Type 用于表示路由来源类型,共有三种:
- IGP:内部网关协议,Internal Gateway Protocol
- EGP:外部网关协议,Exterior Gateway Protocol
- Incomplete:不确定来源
- 优先级 IGP > EGP > Incomplete
- Origin Type 用于表示路由来源类型,共有三种:
- 优选 MED 最小的路径
- MED,Multi-Exit Discriminator,多出口鉴别,只在两个 AS 之间交换,不会传到第三个 AS
- 两个 AS 之间可能有多条链路连接,MED 用于决定选择那条链路
- MED 默认值:0
- 优选邻居路由器类型为 eBGP 先于 iBGP
- eBGP,external BGP,外部 BGP,不同 AS 之间的 BGP
- iBGP,internal BGP,内部 BGP,相同 AS 内部的 BGP
- 优选 eBGP 路由器,即优选跨 AZ 路径,到达这一步比较的路由,如同时有 eBGP 和 iBGP 路径,iBGP 路径是经过了内部转发再到 eBGP 路由器的绕行路径,所以优选直接到 eBGP 路由器的路径
- 优选到 BGP next hop 的 IGP 度量值最小的路径
- IGP metric,内部路由度量值,在第七步中选择 iBGP 才需要比较步骤,否则跳过
- IGP 越小,则去该下一跳的开销越小
- 到该步如存在多个路径条件都相同,则 BGP 负载均衡
- 优选来自 Route ID 最小的路由器的路径
- 优选 Cluster List 最短的路径
- 优选来自 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