BGP 路由政策概览
本指南简要介绍了 Cloud Router 边界网关协议 (BGP) 路由政策。
借助 BGP 路由政策,您可以设置规则来过滤 BGP 路由或修改 BGP 路由属性。您可以将 BGP 路由政策应用于入站和出站 BGP 路由。可以使用通用表达式语言 (CEL) 来定义要应用于 BGP 路由的 BGP 路由政策。
您可以将 BGP 路由政策应用于 BGP 会话的 Cloud Router 路由器上的已知路由或通告路由。BGP 路由政策与基于政策的路由相互独立,后者通过分配基于示例来源地址(不一定基于目标地址)的下一个跃点路由来应用于 Virtual Private Cloud 网络。如需了解详情,请参阅基于政策的路由。
什么是 BGP 路由政策?
BGP 路由政策定义为一个有序的术语列表。每个术语都按您指定的顺序进行评估,并且当路由与该术语匹配时,会同时包含条件和相应操作。特定 BGP 路由政策只能单向应用,对于已知路由为入站,对于通告路由为出站,但不能同时应用两者。但是,BGP 路由政策可以应用于 Cloud Router 路由器上的多个 BGP 对等方。
BGP 路由政策应用场景
您可以使用 BGP 路由政策来控制 BGP 路由通告给其他 BGP 对等方或导入到 VPC 路由表之前接受、拒绝或修改哪些 BGP 路由。
以下是 BGP 路由政策的示例应用场景:
修改最佳首选 BGP 路由:您可以使用 BGP 路由政策来修改最佳首选 BGP 路由,这对于影响流量通过网络采用的路径很有用。例如,您可以使用 BGP 路由政策,通过更改 BGP MED 属性的值,帮助确保来自特定对等方的 BGP 路由优于其他 BGP 路由。
过滤不需要的 BGP 路由:您可以使用 BGP 路由政策来过滤不需要的已知路由,或避免将特定路由通告给 BGP 对等方。这有助于防止路由循环或通过非预期路径发送流量的路由。例如,您可以使用 BGP 路由政策来过滤子网中的前缀。
实现流量工程目标:您可以使用 BGP 路由政策来实现特定的流量工程目标。如需影响流量分配,请在路由的 AS-PATH 前面附加一个或多个值。例如,对于前缀
192.168.2.0/24
,Cloud Router 路由器会从两个对等方获知前缀,但会从每个对等方获知不同的 AS-PATH 值。因此,peer1
可能会提供 AS-PATH 值[1010]
,而peer2
可能会提供 AS-PATH 值[2020]
。使用 BGP 路由政策时,您可以选择向 AS-PATH 值的前面添加一个或多个值。
BGP 路由政策的应用方式
可以将 BGP 路由政策应用于 Cloud Router 路由器上的 BGP 配置。每个 BGP 对等方应用了零个或多个路由导入和导出政策。导入路由政策适用于入站路由,而导出路由政策适用于出站路由。
下图显示了入站路由的路由导入政策,以及出站路由的路由导出政策:
下面介绍了 Cloud Router 路由器在应用 BGP 路由政策时遵循的一般规则:
BGP 路由政策按您列出的顺序进行评估。
每个 BGP 路由政策中的术语都按指定的优先级顺序进行评估。
术语可以修改 BGP 路由。后续术语可以修改由前一术语创建的 BGP 路由。
评估在 BGP 路由被接受或舍弃时结束。如果评估了所有政策和术语,并且未丢弃路由,则 BGP 路由会被接受。
在 BGP 路由政策的单一实践中,不会针对路由评估术语两次。
BGP 路由政策评估默认设置为失败开启。换句话说,在 BGP 路由政策评估期间,系统会接受未被明确舍弃的路由。您无法直接更改此行为,但可以创建一个“丢弃所有”政策,并将其应用于上一个对等连接,从而创建一个失败关闭 BGP 路由政策。
下图展示了系统如何评估针对某个路线应用的一组政策:
BGP 社区和 Cloud Router
社区值是一个 32 位字段,分为两个 16 位部分。通常,该值的前 16 位会对社区源自的网络的自治系统 (AS) 编号进行编码,但 Cloud Router 不强制执行此惯例。该值的第二个 16 位对由原始 AS 分配的唯一编号进行编码。
BGP 路由政策可以匹配标准 BGP 社区属性并对其执行操作。BGP 路由政策无法匹配或修改扩展社区属性。
Cloud Router 路由选择流程不会对前缀使用 BGP 社区属性。例如,它不支持 NO_EXPORT
或 NO_ADVERTISE
BGP 社区。
导入 BGP 路由政策后,Cloud Router 会从学到的路由中移除 BGP 社区,这意味着 Cloud Router 不会重新通告社区,也就是说,Cloud Router 会将社区视为非传递属性。BGP 社区只能用于影响 Cloud Router 入站匹配政策。您可以添加、移除或替换通告路由上的 BGP 社区,以影响对等路由器的操作。
由于 Cloud Router 无法识别已知社区,因此您必须为 BGP 已知社区使用字面量值,例如为 NO_EXPORT
使用 65535:65281
,或为 NO_ADVERTISE
使用 65535:65282
。
BGP 路由政策资源之间的关系
每个 Cloud Router 路由器都会维护自己的 BGP 对等方和 BGP 路由政策列表。属于特定 Cloud Router 路由器资源的 BGP 对等方列表可以按名称引用 BGP 路由政策。
只要父级 Cloud Router 路由器存在,您就可以创建、修改和删除 BGP 路由政策。
与其他 Cloud Router 路由器功能的交互
以下部分介绍了 BGP 路由政策如何与其他 Cloud Router 路由器功能进行交互。
- 自定义通告路由
- 导出 BGP 路由政策可以在自定义通告路由通告给 BGP 对等方之前舍弃或修改这些路由。BGP 路由政策无法匹配或修改收到的自定义路由。
- 前缀限制
Cloud Router 路由器从对等方接受的前缀限制为 5,000 个。如果对等方通告的前缀超过 5,000 个,则 Cloud Router 路由器会重置 BGP 会话。
在应用 BGP 路由政策之前,系统会对入站路由应用前缀限制,因此使用 BGP 路由政策不会更改此行为。
- 子网
导出 BGP 路由政策可以在 Virtual Private Cloud 子网路由通告给 BGP 对等方之前过滤或修改这些路由。
- 中转路由
BGP 路由政策可以修改转接路由。
Cloud Router 不遵循
NO_EXPORT
和NO_ADVERTISED
BGP 社区的行为。