路由策略术语中的操作
路由策略中的每个术语都可以包含一个 语句,该语句定义当路由与术语中 和 语句中的所有条件匹配时要执行的操作:then
from
to
then { actions; }
您可以在以下层次结构级别包含此语句:
[edit policy-options policy-statement policy-name term term-name]
[edit logical-systems logical-system-name policy-options policy-statement policy-name term term-name]
如果术语没有 and 语句,则认为所有路由都匹配,并且操作适用于所有路由。from
to
有关 和 语句的信息,请参阅 路由策略匹配条件。from
to
路由策略匹配条件
您可以在语句中 指定一个或多个操作。then
有三种类型的操作:
流控制操作,影响是接受还是拒绝路由,以及是否评估下一个术语或路由策略。
操纵路由特征的操作。
跟踪操作,用于记录路由匹配项。
注:指定操作路由特征的操作时,更改将发生在源路由的副本中。源路由本身不会更改。只有在将路由导入到路由表中或从路由表中导出路由后,操作的效果才可见。要在应用路由策略之前查看源路由,请使用 命令。
show route receive-protocol
要在应用导出策略后查看路由,请使用 命令。show route advertised-protocol
在策略评估期间,源路由副本中的特征始终在评估操作后立即更改。但是,在策略评估完成之前,路由不会复制到路由表或路由协议。
该 语句是可选的。then
如果省略它,则会发生下列情况之一:
路由策略中的下一个术语(如果存在)将被评估。
如果路由策略中没有更多术语,则评估下一个路由策略(如果存在)。
如果没有更多术语或路由策略,则执行默认策略指定的接受或拒绝操作。有关更多信息,请参阅 默认路由策略。默认路由策略
以下各节讨论这些操作:
配置流控制操作
表 1 列出了流控制操作。您可以指定其中一个操作以及跟踪操作,也可以指定一个或多个操作路由特征的操作(请参见 )。配置操纵路由特征的操作
流控制操作 |
Description |
---|---|
|
接受路由并传播它。接受路由后,不会评估路由策略中的其他术语,也不会评估其他路由策略。 |
|
接受并覆盖协议固有的任何操作。这是一个非终止策略操作。 |
|
拒绝路由,不要传播它。路由被拒绝后,不会评估路由策略中的其他术语,也不会评估其他路由策略。 |
|
拒绝并覆盖协议固有的任何操作。这是一个非终止策略操作。 |
|
跳到并评估同一路由策略中的下一个术语。将跳过语句中 指定的任何接受或拒绝操作。
注:
在 Junos OS 演化版上, 不能显示为操作的最后一个术语。 |
|
跳到并评估下一个路由策略。将跳过语句中 指定的任何接受或拒绝操作。
|
SR-TE-模板 |
分段路由流量工程 (SR-TE) 模板,适用于 PCE 发起的 LSP。 |
配置操纵路由特征的操作
您可以指定中 列出的一个或多个操作来操作路由特征。表 2
操作 |
Description |
---|---|
|
(仅限 BGP)允许向播发前缀子 集的目标发送最多 20 个 BGP 路径。 |
|
(仅限 BGP)在 AS 路径的开头附加一个或多个 AS 编号。如果指定多个 AS 编号,请用引号 (“ ”) 将这些数字括起来。AS 编号将在本地 AS 编号添加到路径之后添加。此操作仅将 AS 编号添加到 AS 序列,而不添加到 AS 集。如果现有 AS 路径以联合序列或联合序列集开头,则附加的 AS 编号将放置在联合序列中。否则,附加的 AS 编号将放置在非联合序列中。有关更多信息,请参阅 了解将 AS 编号前置到 BGP AS 路径。了解将 AS 编号前置到 BGP AS 路径 在 Junos OS 9.1 及更高版本中,您可以指定 RFC 4893 中定义的 4 字节 AS 编号、 BGP 对四字节 AS 编号空间的支持以及早期版本的 Junos OS 支持的 2 字节 AS 编号。 |
|
(仅限 BGP)提取现有 AS 路径中的最后一个 AS 编号,并将该 AS 编号附加到 AS 路径 时间的开头,其中 1 到 32 之间的数字。 AS 编号是在将本地 AS 编号添加到路径之前添加的。此操作仅将 AS 编号添加到 AS 序列,而不添加到 AS 集。如果现有 AS 路径以联合序列或联合序列集开头,则附加的 AS 编号将放置在联合序列中。否则,附加的 AS 编号将放置在非联合序列中。此选项通常用于非 IBGP 导出策略。 注:
从 Junos OS 17.3 版开始,可以为计数值提交空配置,如果是这样,Junos 会将空值转换为 1 计数而不是 0 计数,或禁止提交。使计数 等于 1 的效果是,这样的 as 路径 更长,因此不太可取。 |
bgp-output-queue-priority |
(仅限 BGP)设置用于此路由的输出优先级队列。有 17 个优先输出队列:一个优先级最高的加速队列,以及 16 个编号队列,其中 1 是最低优先级,16 是最高优先级。 |
|
(仅限服务等级 [CoS])将指定的服务等级参数应用于安装在路由表中的路由。有关详细信息,请参阅 Junos OS 路由设备服务等级用户指南。https://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/cos/config-guide-cos.html |
|
将首选项值设置为指定的值。和首选项值比和操作中指定的值更细粒度。 如果使用操作设置 首选项,则该值是 Junos OS 的内部值,不会传递。 |
|
按指定量更改颜色首选项值。如果加法运算产生的值大于 4,294,967,295 (232 – 1),则该值设置为 232 – 1。如果减法运算导致值小于 0,则该值设置为 0。如果在加法或减法操作时尚未设置属性值,则无论指定的数量如何,属性值都将默认为 0。如果对值为 0 的属性执行加法,则添加的数字将成为生成的属性值。 |
|
(仅限 BGP)将指定的社区添加到路由中的社区集。有关更多信息,请参阅 了解 BGP 社区、扩展社区和大型社区作为路由策略匹配条件。将 BGP 社区、扩展社区和大型社区理解为路由策略匹配条件 |
|
(仅限 BGP)从路由中的社区集中删除指定的社区。有关更多信息,请参阅 了解 BGP 社区、扩展社区和大型社区作为路由策略匹配条件。将 BGP 社区、扩展社区和大型社区理解为路由策略匹配条件 |
|
(仅限 BGP)将路径中的任何社区替换为指定的社区。有关更多信息,请参阅 了解 BGP 社区、扩展社区和大型社区作为路由策略匹配条件。将 BGP 社区、扩展社区和大型社区理解为路由策略匹配条件 |
|
在转发表中设置基于 CoS 的下一跳映射。 |
|
(仅限 BGP)将指定的路由阻尼参数应用于路由。这些参数将覆盖默认阻尼参数。此操作仅在导入策略中有用,因为阻尼参数会影响路由表中路由的状态。 要应用阻尼参数,必须按照路由 设备的 Junos OS 路由协议库中所述启用 BGP 抖动阻尼,并且必须按照 使用路由策略抑制 BGP 路由抖动中所述创建参数的命名列表。https://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/config-guide-routing/index.html使用路由策略抑制 BGP 路由抖动 |
|
根据数据包中的目标地址维护通过网络的路由的数据包计数。您可以执行以下操作:
|
|
设置 OSPF 导出的路由的外部指标类型。必须指定关键字 。 |
|
根据数据包中的目标地址和源地址创建包含数据包的转发类。您可以执行以下操作:
|
|
在转发表中安装一组相等的 LSP 下一跃点中的下一跃点。使用转发表的导出策略指定要用于所需路由的 LSP 下一跃点。指定启用严格模式的选项,该模式检查策略中指定的任何 LSP 下一跃点是否已启动。 |
|
仅适用于 PTX 系列路由器,请覆盖默认 BGP 路由策略。更多信息,请参见 示例:覆盖 PTX 系列数据包传输路由器上的默认 BGP 路由策略。 |
|
(仅限 BGP)对于带有模块化端口集中器 (MPC) 的 MX 系列路由器以及仅适用于QFX10000交换机,请为一个或多个 IP 地址指定一致的负载平衡。当一个或多个下一跃点路径发生故障时,此功能可保留流与等价多路径 (ECMP) 组中路径的关联性。仅重定向非活动路径的流。映射到保持活动状态的服务器的流将得到维护。 |
|
仅根据目标 IP 地址计算负载平衡哈希。这允许服务提供商将流量定向到每个订阅者感知环境中的特定内容服务器。 |
|
(仅用于导出到转发表)在转发表中安装所有下一跃点地址,并让转发表执行按数据包的负载平衡。此策略操作允许您优化跨多个路径的 VPLS 流量。有关更多信息,请参阅 配置按数据包负载均衡。Configuring Per-Packet Load Balancing |
|
仅适用于 PTX 系列路由器,请覆盖 BGP 的默认每数据包负载平衡路由策略。更多信息,请参见 示例:覆盖 PTX 系列数据包传输路由器上的默认 BGP 路由策略。 |
|
仅根据源 IP 地址计算负载平衡哈希。这允许服务提供商将流量定向到每个订阅者感知环境中的特定内容服务器。 |
|
(仅限 BGP)设置 BGP 本地首选项 (LOCAL_PREF) 属性。首选项值可以是介于 0 到 4,294,967,295 (232 – 1) 之间的数字。 |
|
按指定量更改本地首选项值。如果加法运算产生的值大于 4,294,967,295 (232 – 1),则该值设置为 232 – 1。如果减法运算导致值小于 0,则该值设置为 0。如果在加法或减法操作时尚未设置属性值,则无论指定的数量如何,属性值都将默认为 0。如果对值为 0 的属性执行加法,则添加的数字将成为生成的属性值。 对于 BGP,如果属性值未知,则会在应用路由策略之前将其初始化为 100。 |
|
设置 类似于现有指标或标记操作的值。
如果没有匹配的术语,则不会发送组播数据包。 |
|
设置指标。您最多可以指定四个衡量指标值,从 (对于第一个衡量指标值)开始,一直以 、 和 开头。 (仅限 BGP) 对应于 MED,并且 对应于 IGP 指标(如果 BGP 下一跃点通过另一个路由器循环)。 |
|
按指定量更改指标值。如果加法运算产生的值大于 4,294,967,295 (232 – 1),则该值设置为 232 – 1。如果减法运算导致值小于 0,则该值设置为 0。如果在加法或减法操作时尚未设置属性值,则无论指定的数量如何,属性值都将默认为 0。如果对值为 0 的属性执行加法,则添加的数字将成为生成的属性值。 |
|
根据 和 的当前值计算指标。 此策略操作使用表达式的结果覆盖指标属性的当前值 ((x * 公制) + a) + ((y * 公制2) + b) 其中 和 是当前输入值。 |
|
(仅限 BGP)按指定的负偏移量或正偏移量更改指标 (MED) 值。此操作仅在外部 BGP (EBGP) 导出策略中有用。 |
|
设置下一跃点地址。当播发协议为 BGP 时,只有当任何第三方下一跳都可以播发时,才能设置下一跳;也就是说,当您使用 IBGP 或 EBGP 联合时。 如果指定 ,下一跃点地址将替换为本地路由设备的地址之一。 如果指定 ,下一跃点地址将替换为对等方的 IP 地址。 如果指定 ,下一跃点地址将替换为丢弃的下一跃点。 如果指定 ,路由设备将在指定的表中执行转发查找。 如果使用操作,则配置必须包含一个术语限定符,该限定符指定与操作中指定的表不同的表。 term 1 { from { protocol bgp; rib vrf-customer2.inet.0; community customer; } then { next-hop next-table vrf-customer1.inet.0; } } term 2 { from { protocol bgp; rib vrf-customer1.inet.0; community customer; } then { next-hop next-table vrf-customer2.inet.0; } } 如果指定 ,下一跃点地址将替换为拒绝下一跃点。 |
|
(仅限 BGP)将 BGP 源属性设置为以下值之一:
|
|
为基于多点 LDP (M-LDP) 的点对多点标签交换路径 (LSP) 设置入口根节点。更多信息,请参见 示例:为点对多点 LSP 配置多点 LDP 带内信令。 |
|
设置首选项值。您可以指定主首选项值 () 和辅助首选项值 ()。 要指定更细粒度的首选项值,请参阅 此表中的和 操作。 如果为操作设置 首选项,则新首选项仍与路由关联。 |
|
按指定量更改首选项值。如果加法运算产生的值大于 4,294,967,295 (232 – 1),则该值设置为 232 – 1。如果减法运算导致值小于 0,则该值设置为 0。如果在加法或减法操作时尚未设置属性值,则无论指定的数量如何,属性值都将默认为 0。如果对值为 0 的属性执行加法,则添加的数字将成为生成的属性值。 |
|
(仅限 OSPF 导入)为 OSPF 导入策略中包含的前缀指定优先级。通过 OSPF 获知的前缀将根据分配给前缀的优先级安装在路由表中。优先级分配的前缀首先安装,优先级分配的前缀最后安装。 注:
OSPF 导入策略只能用于设置优先级或过滤 OSPF 外部路由。如果应用的 OSPF 导入策略导致 对非外部路由执行终止操作,则会忽略该 操作,并且无论如何都会接受该路由。 |
|
根据源地址维护通过网络的路由的数据包计数。您可以执行以下操作:
注:
配置策略操作语句时,只能为每个匹配路由配置一个源类。换句话说,不能将多个源类应用于同一路由。 |
|
为特定于源的组播 (SSM) 策略指定一个或多个 IPv4 或 IPv6 源地址 |
|
为特定于源的组播 (SSM) 策略指定一个或多个 IPv4 或 IPv6 源地址。 |
|
设置标签值。您可以指定两个标签字符串: (对于第一个字符串)和 (第二个字符串)。
|
|
按指定量更改标签值。如果加法运算产生的值大于 4,294,967,295 (232 – 1),则该值设置为 232 – 1。如果减法运算导致值小于 0,则该值设置为 0。如果在加法或减法操作时尚未设置属性值,则无论指定的数量如何,属性值都将默认为 0。如果对值为 0 的属性执行加法,则添加的数字将成为生成的属性值。 |
|
配置 BGP 源验证后,将路由前缀的验证状态设置为有效、无效或未知。 路由验证数据库包含路由源授权 (ROA) 记录,用于将路由前缀映射到预期的始发自治系统 (AS)。这可以防止意外播发无效路由。 请参阅 了解 BGP 的源验证。https://www.juniper.net/documentation/en_US/junos/topics/topic-map/bgp_origin_validation.html |
在路由策略中配置默认操作
该 语句将覆盖协议固有的任何操作。default-action
此操作也是非终止的,因此可以在终止策略之前评估各种策略术语。您可以指定默认操作 或 ,如下所示:accept
reject
[edit] policy-options { policy-statement policy-name { term term-name { from { family family-name; match-conditions; policy subroutine-policy-name; prefix-list name; route-filter destination-prefix match-type <actions>; source-address-filter source-prefix match-type <actions>; } to { match-conditions; policy subroutine-policy-name; } then { actions; default-action (accept | reject); } } } }
生成的操作由协议或匹配的最后一个策略术语设置。
示例:在路由策略中配置默认操作
配置基于三个策略术语匹配路由的路由策略。如果路由与第一个术语匹配,则会附加某个社区标签。如果路由与两个单独的术语匹配,则会附加两个社区标签。如果路由与任何条款都不匹配,则会被拒绝(协议的默认操作)。请注意,这两个术语 是 互斥的。hub
spoke
[edit] policy-options { policy-statement test { term set-default { then default-action reject; } term hub { from interface ge-2/1/0.5; then { community add test-01-hub; default-action accept; } } term spoke { from interface [ ge-2/1/0.1 ge-2/1/0.2 ]; then { community add test-01-spoke; default-action accept; } } term management { from protocol direct; then { community add management; default-action accept; } } } }
在路由策略中配置最终操作
除了使用命名术语中的语句指定操作外,还可以使用未命名术语中的语句指定操作,如下所示:then
then
[edit] policy-options { policy-statement policy-name { term term-name { from { family family-name; match-conditions; policy subroutine-policy-name; prefix-list name; route-filter destination-prefix match-type <actions>; source-address-filter source-prefix match-type <actions>; } to { match-conditions; policy subroutine-policy-name; } then { actions; } } then action; } }
日志记录与路由策略术语匹配
如果指定跟踪操作,则匹配项将记录到跟踪文件中。要设置跟踪文件,必须在全局 语句中指定以下元素:traceoptions
跟踪文件名
语句中的 选项
policy
flag
下面的示例使用跟踪 文件名 :policy-log
[edit] routing-options { traceoptions { file “policy-log"; flag policy; } }
此操作不会影响路由策略评估期间的流控制。
如果指定跟踪操作的术语也指定了流控制操作,则该术语的名称将记录在跟踪文件中。如果术语仅指定跟踪操作,则会记录单词 <>。default
为路由列表中的路由配置单独的操作
如果在语句中 指定路由列表,则对于列表中的每个路由,您可以指定要直接对该单个路由执行的操作,而无需包含 语句。from
then
有关更多信息,请参阅了解路由 策略匹配条件中使用的路由过滤器。了解用于路由策略匹配条件的路由过滤器