路由策略术语中的操作
路由策略中的每个术语都可以包含一个 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]
如果术语没有 from and to 语句,则所有路由都被视为匹配,并且操作将应用于所有路由。有关 and to 语from句的信息,请参阅路由策略匹配条件。
您可以在语句中 then 指定一个或多个操作。有三种类型的操作:
流控制操作,影响是接受还是拒绝路由,以及是否评估下一期限或路由策略。
操纵路由特性的操作。
跟踪操作,记录路由匹配。
注意:指定操作路由特征的操作时,更改将发生在源路由的副本中。源路由本身不会更改。只有在将路由导入路由或从路由表导出后,操作的效果才可见。要在应用路由策略之前查看源路由,请使用命令
show route receive-protocol。要在应用导出策略后查看路由,请使用命令show route advertised-protocol。在策略评估期间,源路由副本中的特征始终会在评估操作后立即更改。但是,在策略评估完成之前,路由不会复制到路由表或路由协议。
该 then 语句可选。如果省略它,将发生以下情况之一:
评估路由策略中的下一个术语(如果存在)。
如果路由策略中没有更多术语,则评估下一个路由策略(如果存在)。
如果没有更多术语或路由策略,则将执行默认策略指定的接受或拒绝操作。有关更多信息,请参阅 默认路由策略。
以下部分讨论这些操作:
配置流控制操作
表 1 列出了流控制操作。您可以指定其中一个操作以及追踪操作,也可以指定一个或多个操作路由特征的操作(请参阅 配置操作路由特征的操作)。
流控制操作 |
描述 |
|---|---|
|
接受路由并将其传播。接受路由后,不会评估路由策略中的其他条款,也不会评估其他路由策略。 |
|
接受并覆盖协议固有的任何操作。这是一个非终止策略操作。 |
|
拒绝路由,也不要传播。路由被拒绝后,不会评估路由策略中的其他条款,也不会评估其他路由策略。 |
|
拒绝并覆盖协议固有的任何操作。这是一个非终止策略操作。 |
|
跳至并评估同一路由策略中的下一个术语。将跳过语句中
注意:
在 Junos OS 演化版上, |
|
跳至并评估下一个路由策略。将跳过语句中
|
|
分段路由流量工程 (SR-流量工程) 模板,适用于 PCE 启动的 LSP。 |
配置操作路由特征
您可以指定 表 2 中列出的一个或多个操作来操作路由特征。
行动 |
描述 |
|---|---|
|
|
(仅限 BGP)允许向播发前缀子 |
|
|
(仅限 BGP)在 AS 路径的开头附加一个或多个 AS 编号。如果指定多个 AS 编号,请用引号 (“ ”) 将编号括起来。将本地 AS 编号添加到路径之后,将添加 AS 编号。此操作只会将 AS 编号添加到 AS 序列,而不是 AS 集。如果现有 AS 路径以联合体序列或集开头,则附加的 AS 编号将放置在联合体序列中。否则,附加的 AS 编号将放置在非联合体序列中。有关更多信息,请参阅 了解如何将 AS 编号前置到 BGP AS 路径。 您可以指定 RFC 4893、 四字节 AS 编号空间的 BGP 支持以及 Junos OS 早期版本中支持的 2 字节 AS 编号中定义的 AS 编号。 |
|
|
(仅限 BGP)提取现有 AS 路径中的最后一个 AS 编号,并将该 AS 编号附加到 AS 路径 在将本地 AS 编号添加到路径之前,先添加 AS 编号。此操作只会将 AS 编号添加到 AS 序列,而不是 AS 集。如果现有 AS 路径以联合体序列或集开头,则附加的 AS 编号将放置在联合体序列中。否则,附加的 AS 编号将放置在非联合体序列中。此选项通常用于非 IBGP 导出策略。
注意:
可以为 count 值提交 null 配置,如果是这样,Junos 会将 null 转换为 1 计数而不是 0 计数,或者不允许提交。让您的 |
|
|
(仅限具有优化子网间组播 [OISM] 的辅助复制 [AR])在运行 OISM 的 EVPN 网络中启用 AR 叶设备,以确定性地将组播流引导到特定的 AR 复制器设备。(可选)包括以下选项 |
|
|
(仅限 BGP)设置用于此路由的输出优先级队列。有 17 个优先级输出队列:一个优先级最高的加急队列,以及 16 个编号队列,其中 1 是最低优先级,16 是最高优先级。 |
|
|
(仅限服务等级 [CoS])将指定的服务等级参数应用于安装到路由表中的路由。有关更多信息,请参阅 Junos OS 路由设备服务等级用户指南。 |
|
|
将首选项值设置为指定值。和 如果使用操作设置 |
|
|
按指定量更改颜色首选项值。如果加法运算导致的值大于 4,294,967,295 (232 – 1),则该值将设置为 232 – 1。如果减法运算导致的值小于 0,则该值将设置为 0。如果在进行加法或减法操作时尚未设置属性值,则无论指定的金额如何,属性值都默认为 0。如果对值为 0 的属性执行添加,则添加的数字将成为生成的属性值。 |
|
|
(仅限 BGP)将指定的社区添加到路由中的社区集中。有关更多信息,请参阅 了解 BGP 社区、扩展社区和大型社区作为路由策略匹配条件。 |
|
|
(仅限 BGP)从路由中的社区集中删除指定的社区。有关更多信息,请参阅 了解 BGP 社区、扩展社区和大型社区作为路由策略匹配条件。 |
|
|
(仅限 BGP)将路由中的任何社区替换为指定的社区。有关更多信息,请参阅 了解 BGP 社区、扩展社区和大型社区作为路由策略匹配条件。 |
|
|
在转发表中设置基于 CoS 的下一跳映射。 |
|
|
(仅限 BGP)将指定的布线阻尼参数应用于布线。这些参数覆盖默认阻尼参数。此操作仅在导入策略中有用,因为阻尼参数会影响路由表中路由的状态。 要应用阻尼参数,您必须启用 BGP 抖动阻尼,如路由 设备的 Junos OS 路由协议库中所述,并且必须创建指定的参数列表,如 使用路由策略抑制 BGP 路由抖动中所述。 |
|
|
根据数据包中的目标地址,维护通过网络的路由的数据包计数。您可以执行以下操作:
|
|
|
为 OSPF 导出的路由设置外部度量类型。您必须指定关键字 |
|
|
根据数据包中的目标地址和源地址创建包含数据包的转发类。您可以执行以下操作:
|
|
|
在一组相等的 LSP 下一跃点中选择要安装在转发表中的下一跃点。使用转发表的导出策略指定要用于所需路由的 LSP 下一跃点。指定启用 |
|
|
覆盖默认 BGP 路由策略。有关更多信息,请参阅 示例:覆盖 PTX 系列数据包传输路由器上的默认 BGP 路由策略。 |
|
|
(仅限 BGP)为一个或多个 IP 地址指定一致的负载平衡。当一个或多个下一跃点路径发生故障时,此功能将保留流与等价多路径 (ECMP) 组中路径的关联性。仅重定向非活动路径的流量。映射到保持活动状态的服务器的流量将保持维护。 您可以在内核路由表 (KRT) 导出策略中为通过具有多个网关的 Flex 路由配置文件解析的路由启用一致的负载平衡。该策略适用于将流量定向到 Flex 路由 IP 地址,以保持流量关联性。请谨慎使用 KRT 策略,仅允许使用特定前缀,并避免在数据包转发引擎中出现不良结果。 |
|
|
启用对称一致散列,以支持与静态路由的一致散列,并通过正向和反向的关联源 IP 和目标 IP 负载平衡哈希密钥实现对称负载平衡。 在任播 IP 上应用一致散列的场景中,该 IP 用于对通过静态路由向上游和下行方向的 ECMP 服务器组获知的流量进行负载均衡。由于预期来自客户的所有流量都应到达同一 ECMP 服务器,因此只有源 IP 用于在一个方向上创建负载均衡散列,而目标 IP 用于在相反方向上创建负载均衡散列。 |
|
|
仅根据目标 IP 地址计算负载平衡哈希。这样,服务提供商就可以在每个订阅者感知的环境中将流量定向到特定的内容服务器。 |
|
|
(仅用于导出到转发表)在转发表中安装所有下一跃点地址,并让转发表执行每个数据包的负载平衡。此策略操作允许您优化跨多个路径的 VPLS 流量。更多信息,请参阅 配置按数据包负载均衡。 |
|
|
覆盖 BGP 的默认按数据包负载平衡路由策略。有关更多信息,请参阅 示例:覆盖 PTX 系列数据包传输路由器上的默认 BGP 路由策略。 |
|
|
仅根据源 IP 地址计算负载平衡哈希。这样,服务提供商就可以在每个订阅者感知的环境中将流量定向到特定的内容服务器。 |
|
|
(仅限 BGP)设置BGP本地优先级 (LOCAL_PREF) 属性。优先级值可以是 0 到 4,294,967,295 (2、32 – 1) 范围内的数字。 |
|
|
按指定量更改本地优先级值。如果加法运算导致的值大于 4,294,967,295 (232 – 1),则该值将设置为 232 – 1。如果减法运算导致的值小于 0,则该值将设置为 0。如果在进行加法或减法操作时尚未设置属性值,则无论指定的金额如何,属性值都默认为 0。如果对值为 0 的属性执行添加,则添加的数字将成为生成的属性值。 对于 BGP,如果属性值未知,则在应用路由策略之前将其初始化为 100。 |
|
|
设置
如果没有匹配的术语,则不会发送任何组播数据包。 |
|
|
设置指标。您最多可以指定四个度量值,从(对于第一个度量值)开始 (仅限 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 联合体时。 如果指定 如果指定 如果指定 如果指定 如果使用该 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 外部路由。如果应用了导致对非外部路由执行终止操作的 |
|
|
根据源地址维护通过网络的路由的数据包计数。您可以执行以下操作:
注意:
配置策略操作语句时,您只能为每个匹配路由配置一个源类。换句话说,不能将多个源类应用于同一路由。 |
|
|
为特定于源的组播 (SSM) 策略指定一个或多个 IPv4 或 IPv6 源地址 |
|
|
为特定于源的组播 (SSM) 策略指定一个或多个 IPv4 或 IPv6 源地址。 |
|
|
设置标记值。您可以指定两个标记字符串:
|
|
|
按指定量更改标记值。如果加法运算导致的值大于 4,294,967,295 (232 – 1),则该值将设置为 232 – 1。如果减法运算导致的值小于 0,则该值将设置为 0。如果在进行加法或减法操作时尚未设置属性值,则无论指定的金额如何,属性值都默认为 0。如果对值为 0 的属性执行添加,则添加的数字将成为生成的属性值。 |
|
|
配置 BGP 源验证后,将路由前缀的验证状态设置为有效、无效或未知。 路由验证数据库包含路由源授权 (ROA) 记录,用于将路由前缀映射到预期的始发自治系统 (AS)。这样可以防止意外播发无效路由。 请参阅 了解 BGP 的源验证。 |
在路由策略中配置默认操作
该 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; } }
记录与路由策略术语的匹配项
如果指定跟踪操作,则匹配项将记录到跟踪文件中。要设置跟踪文件,您必须在 global traceoptions 语句中指定以下元素:
跟踪文件名
policy语句中的flag选项
以下示例使用跟踪文件名 policy-log:
[edit]
routing-options {
traceoptions {
file “policy-log";
flag policy;
}
}
此操作不会影响路由策略评估期间的流控制。
如果指定跟踪操作的术语还指定流控制操作,则该术语的名称将记录在跟踪文件中。如果术语仅指定跟踪操作,则会记录单词 <default>。
为路由列表中的路由配置单独的操作
如果在语句中 from 指定路由列表,则对于列表中的每个路由,可以指定要直接对该单个路由执行的操作,而不包含语 then 句。有关更多信息,请参阅了解路由 策略匹配条件中使用的路由过滤器。
特定于平台的行为
使用 功能资源管理器 确认平台和版本对特定功能的支持。
使用下表查看平台的特定于平台的行为:
| 平台 |
差异 |
|---|---|
| MX 系列路由器 |
|
| QFX 系列路由器 |
|
| PTX 系列路由器 |
|