边界网关动态路由
边界网关上的动态路由即是 BGP。您在网关与邻居路由器之间建立对等关系 — 邻居可以是另一个 VPC 的边界网关,也可以是另一云平台的路由端点 — 双方交换前缀。您广播的路由向外发出;对等方广播的路由则以动态路由的形式到达您的 VPC 路由表,并可自动转发。
其价值在于双方均能适应变化。对等方新增一个子网并广播,该前缀即出现在您的 VPC 路由表中,无需您修改云端配置。会话断开时,该会话所承载的前缀将自动撤销。
您在云侧可控制的内容
为边界网关配置 BGP 时,您需要做出三方面决策:
与谁建立对等 — 互联链路、VLAN、对端 ASN 及可选密码。
向外广播什么 — 对等方可以学习到您 VPC 的哪些子网、路由或 CIDR。
学习到的前缀采用何种路由模式 — 区域传播还是全局传播。参见路由模式。
BGP 会话本身的机制由平台负责处理。
建立对等关系
在 Console 中,对于已挂载到 VPC 的边界网关,您可以添加 BGP 邻居。需要指定:
VLAN ID — 互联链路的 VLAN。
对端 AS 号。
可选的 BGP 密码。
链路类型和带宽。
会话建立后,网关即可进行前缀交换。
控制广播内容
您不会自动广播所有内容。对于每个边界网关,您需要选择以下其中一种模式:
宣告所有可见子网。 所挂载 VPC 中的每个子网都会被广播。之后新增的子网也会自动广播。适合简单场景;当您不希望所有子网都被暴露时,此方式存在风险。
宣告自定义路由。 当只需要将特定的 VPC 路由对对等方可见时,您选择要广播的路由 ID。
宣告自定义 CIDR 地址段。 您列出要广播的特定 CIDR。其他内容不会发出。这是最安全的默认方式:您只广播您明确想要广播的内容。
按子网选择。 您逐一开启或关闭每个子网的广播。适用于"全部"范围过大,但允许子网列表变动频繁、手动维护 CIDR 列表较为繁琐的场景。
请选择满足需求的最严格模式。广播了不该广播的前缀 — 尤其是与对端地址空间重叠的前缀 — 可能造成路由环路或导致对等方丢弃流量。
您学习到的内容
对等方广播的路由以动态路由的形式到达 VPC 路由表。从转发角度看,它们与其他路由条目无异:目标前缀、下一跳(边界网关)、优先级。
需要了解的行为:
撤销是自动的。 对等方停止广播某个前缀,该前缀即从路由表中移除。BGP 会话完全断开时,该会话学习到的所有前缀均被撤销。
最长前缀匹配仍然有效。 学习到的
/24会覆盖匹配该/24的更粗粒度路由。向其他区域的传播取决于模式。 在区域模式下,学习到的前缀仅保留在本地区域的路由表中。在全局模式下,该前缀会通过 Zenlayer 的私有骨干网传播至 VPC 所覆盖的每个区域。参见路由模式。
常见控制要点
保持广播显式化。 使用已宣告的 CIDR、选定的路由或按子网选择,控制对等方从您这里学习到的内容。
选择区域或全局传播。 区域模式将学习到的前缀保留在本地区域。全局模式通过私有骨干网将学习到的前缀发送至其他可达区域。
避免对等路由重叠。 如果两个对等方广播同一前缀,路由选择在运维上将难以推断。优先使用不重叠的广播,或有意为之并记录在案。
动态路由无法解决的问题
地址重叠。 如果对等两侧都配置了广播
10.0.0.0/16,BGP 会毫不犹豫地从两侧广播该路由。路由行为将与预期不符;请先规划好地址空间。传输层故障。 BGP 假设底层传输正常工作。如果私有链路不稳定,BGP 会话也会随之抖动,路由表将持续震荡。请先修复传输层,再依赖 BGP。
上线前的检查项
您的 ASN 与对端 ASN 不同。 两端使用相同 ASN 需要额外配置,且通常不是您想要的结果。
前缀列表是显式的。 在生产对等中,不要依赖"所有子网"广播方式,除非您已审计过子网列表。
在演练测试中验证 VPC 路由表是否正确。 建立会话,检查学习到的路由,在将生产工作负载路由至该对等之前,验证流量是否正常。
您的对等方清楚预期是什么。 在安排割接之前,就广播前缀和 ASN 达成一致。当双方都清楚"正确"应是什么样子时,BGP 故障排查会快得多。
最后更新于