BGP 路由政策属性参考文档

本页面展示了将通用表达式语言 (CEL) 用于 Cloud Router 路由器的 BGP 路由政策示例。

匹配属性

下表介绍了适用于 BGP 路由政策的匹配属性:

属性

说明

communities

归因于 BGP 路由的社区列表

destination

BGP 路由的 IP 范围

匹配操作

下表介绍了适用于 BGP 路由政策的匹配操作:

操作

说明

communities.matchesEvery(65001:1234)

如果社群是列表 65001:1234 的超集,则返回 true。

community_value 是一个 32 位字段,分为两个 16 位部分。通常,该值的前 16 位会对社区源自的网络的自治系统 (AS) 编号进行编码,但 Cloud Router 不强制执行此惯例。该值的第二个 16 位对由原始 AS 分配的唯一编号进行编码。

仅限导入。

destination == '192.168.0.0/24'

如果 BGP 路由与 192.168.0.0/24 匹配(完全匹配),则返回 true

destination != '192.168.0.0/24'

如果 BGP 路由与 192.168.0.0/24 不匹配(完全匹配),则返回 true

destination.inAnyRange(r)

如果 BGP 路由在 r 范围内(其中 r 为以下任一项),则返回 true

  • 带有 CIDER 编码前缀的字符串,例如 192.168.0.0/24
  • prefix() 返回的抽象类型,或者您可以对 prefix() 调用的其中一种 fluent 方法,例如 longer()
  • 一个异构列表,其中每个元素必须是上述任一值。

可使用 ! 否定。

prefix('192.168.0.0/24')

返回表示与 destination.inAnyRange() 搭配使用的 CIDR 范围 192.168.0.0/24 的前缀对象。

prefix('192.168.0.0/24').longer()

返回一个前缀范围对象,该对象是 prefix() 的副本,其范围的结束值设置为输入前缀的每个地址系列的最大值(/32/128),范围的起始值设置为输入前缀的长度加 1。

prefix().orLonger()

返回一个前缀范围对象,该对象是 prefix() 的副本,其范围的结束值设置为输入前缀的每个地址系列的最大值(/32/128)。

prefix().lengthRange(20, 30)

返回一个前缀范围对象,该对象是 prefix() 的副本,其范围的起始值设置为 /20,结束值设置为 /30。

prefix().upTo(30)

返回一个前缀范围对象,该对象是 prefix() 的副本,其范围结束值设置为输入前缀的 /30。

x || y

如果 xytrue,则返回 true

xy 必须是使用 communitiesdestination 属性的布尔表达式。

根据 || (OR) 运算的规则,所有条件实际上都是零个或零个以上通过 OR 连接的 destination 匹配运算。

(D0 || D1 || ... || Dm)

下表举例说明了如何使用 prefix 构建复杂的正则表达式(对比某些路由器供应商):

Cloud Router Cisco Juniper 说明

'192.168.0.1'

192.168.0.1

192.168.0.1

与前缀 192.168.0.1/32 完全匹配

'192.168.0.0/24'

prefix('192.168.0.0/24')

192.168.0.0/24

192.168.0.0/24 exact

与前缀 192.168.0.0/24 完全匹配

prefix('192.168.0.0/24').longer()

192.168.0.0/24 ge 25 le 32

192.168.0.0/24 longer

192.168.0.0/25 中的范围与 192.168.0.0/32 匹配

prefix('192.168.0.0/24').orLonger()

192.168.0.0/24 le 32

192.168.0.0/24 orlonger

192.168.0.0/24 中的范围与 192.168.0.0/32 匹配

prefix('192.168.0.0/24').lengthRange(25, 30)

192.168.0.0/24 ge 25 le 30

192.168.0.0/24 prefix-length-range /25-/30

192.168.0.0/25 中的范围与 192.168.0.0/30 匹配

prefix('192.168.0.0/24').upTo(30)

192.168.0.0/24 le 30

192.168.0.0/24 up to /30

192.168.0.0/24 中的范围与 192.168.0.0/30 匹配

操作属性

下表介绍了适用于 BGP 路由政策的操作属性:

属性

说明

限制

asPath

BGP 路由更新遍历的 AS 编号列表

导出和导入

communities

路由的社区列表

仅导出

med

路由的多路径退出判别器 (MED)

导出和导入

操作

下表介绍了适用于 BGP 路由政策的操作:

操作

说明

限制

accept()

接受 BGP 路由,并停止对 BGP 路由政策或术语(包括此后的任何操作)的进一步评估。

drop()

过滤掉 BGP 路由,并停止对 BGP 路由政策或术语(包括此后的任何操作)的进一步评估。

nextPolicy()

停止执行此 BGP 路由政策中的其余术语(包括此术语之后的任何操作),并继续执行下一个应用的 BGP 路由政策(如果有)。

asPath.prependSequence([1, 2, 3])

将 AS 编号列表作为序列附加到 AS-PATH 属性前面。

参数必须是 32 位范围内的整数。

communities.add(65001:1234)

将社区值添加到社区列表中。

社区值可以是单个社区,也可以是列表。

Cloud Router 会忽略任何属于映射到以下 Google 拥有的 ASN 的专用社区的值:

6432、15169、16550、16591、19448、19527、22859、26910、32381、36039、36384、36385、36492、55023

仅导出

communities.remove(65001:1234)

从社区列表中移除社区值。

社区值可以是单个社区,也可以是列表。

Cloud Router 会忽略任何属于映射到以下 Google 拥有的 ASN 的专用社区的值:

6432、15169、16550、16591、19448、19527、22859、26910、32381、36039、36384、36385、36492、55023

仅导出

communities.replaceAll(65001:1234)

将社区列表替换为社区值,该值可以为空。

Cloud Router 会忽略任何属于映射到以下 Google 拥有的 ASN 的专用社区的值:

6432、15169、16550、16591、19448、19527、22859、26910、32381、36039、36384、36385、36492、55023

仅导出

med.set(12345)

将 MED 设置为 12345