路由策略术语中的操作

路由策略中的每个术语都可以包含一个 then 语句,该语句定义如果路由与术语中的 和 from to 语句中的所有条件匹配时要采取的操作:

您可以在以下层级包含此语句:

  • [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 列出了流控制操作。您可以指定其中一个操作以及追踪操作,也可以指定一个或多个操作路由特征的操作(请参阅 配置操作路由特征的操作)。

表 1:流控制操作

流控制操作

描述

accept

接受路由并将其传播。接受路由后,不会评估路由策略中的其他条款,也不会评估其他路由策略。

default-action accept

接受并覆盖协议固有的任何操作。这是一个非终止策略操作。

reject

拒绝路由,也不要传播。路由被拒绝后,不会评估路由策略中的其他条款,也不会评估其他路由策略。

default-action reject

拒绝并覆盖协议固有的任何操作。这是一个非终止策略操作。

next term

跳至并评估同一路由策略中的下一个术语。将跳过语句中 then 指定的任何接受或拒绝操作。语句中 then 操作路由特征的任何操作都将应用于路由。

next term 如果发生匹配且您未指定流控制操作,则为默认控制操作。

注意:

在 Junos OS 演化版上, next term 不能显示为操作的最后一个术语。不支持指定为操作但未配置任何匹配条件的 next term 过滤器术语。

next policy

跳至并评估下一个路由策略。将跳过语句中 then 指定的任何接受或拒绝操作。语句中 then 操作路由特征的任何操作都将应用于路由。

next policy 是默认控制操作 如果发生匹配,则未指定流控制操作,并且当前路由策略中没有其他术语。

sr-te-template

分段路由流量工程 (SR-流量工程) 模板,适用于 PCE 启动的 LSP。

配置操作路由特征

您可以指定 表 2 中列出的一个或多个操作来操作路由特征。

表 2:操作路由特征的操作

行动

描述

add-path send-count path-count

(仅限 BGP)允许向播发前缀子 add-path 集的目标发送最多 20 个 BGP 路径。

as-path-prepend as-path

(仅限 BGP)在 AS 路径的开头附加一个或多个 AS 编号。如果指定多个 AS 编号,请用引号 (“ ”) 将编号括起来。将本地 AS 编号添加到路径之后,将添加 AS 编号。此操作只会将 AS 编号添加到 AS 序列,而不是 AS 集。如果现有 AS 路径以联合体序列或集开头,则附加的 AS 编号将放置在联合体序列中。否则,附加的 AS 编号将放置在非联合体序列中。有关更多信息,请参阅 了解如何将 AS 编号前置到 BGP AS 路径。

您可以指定 RFC 4893、 四字节 AS 编号空间的 BGP 支持以及 Junos OS 早期版本中支持的 2 字节 AS 编号中定义的 AS 编号。

as-path-expand last-as count n

(仅限 BGP)提取现有 AS 路径中的最后一个 AS 编号,并将该 AS 编号附加到 AS 路径 n 时间的开头,其中 n 是从 1 到 32 的数字。

在将本地 AS 编号添加到路径之前,先添加 AS 编号。此操作只会将 AS 编号添加到 AS 序列,而不是 AS 集。如果现有 AS 路径以联合体序列或集开头,则附加的 AS 编号将放置在联合体序列中。否则,附加的 AS 编号将放置在非联合体序列中。此选项通常用于非 IBGP 导出策略。

注意:

可以为 count 值提交 null 配置,如果是这样,Junos 会将 null 转换为 1 计数而不是 0 计数,或者不允许提交。让您的 as-path-expand 计数等于 1 的效果是这样的 AS 路径 更长,因此不太可取。建议显式设置 as-path-expand 计数,或删除未使用的设置,以避免任何意外行为。

assisted-replication replicator-ip replicator-ip (strict | fallback-replicator-ip fallback-replicator-ip)

(仅限具有优化子网间组播 [OISM] 的辅助复制 [AR])在运行 OISM 的 EVPN 网络中启用 AR 叶设备,以确定性地将组播流引导到特定的 AR 复制器设备。(可选)包括以下选项strict,以仅将匹配流严格转发到首选指定的 AR 复制器。或者,您可以添加一个回退 AR 复制器地址,以便在首选 AR 复制器发生故障时使用。有关详细信息,请参阅辅助复制(确定性 AR 复制器策略操作)。

bgp-output-queue-priority

(仅限 BGP)设置用于此路由的输出优先级队列。有 17 个优先级输出队列:一个优先级最高的加急队列,以及 16 个编号队列,其中 1 是最低优先级,16 是最高优先级。

class class-name

(仅限服务等级 [CoS])将指定的服务等级参数应用于安装到路由表中的路由。有关更多信息,请参阅 Junos OS 路由设备服务等级用户指南。

color preference color2 preference

将首选项值设置为指定值。和color2首color选项值比 和 preference preference2 操作中指定的值更精细。颜色值可以是 0 到 4,294,967,295 (232 – 1) 范围内的数字。数字越小表示路线越优选。

如果使用操作设置 color 了优先级,则该值是 Junos OS 内部的,不是传递的。

color (add | subtract) number color2 (add | subtract) number

按指定量更改颜色首选项值。如果加法运算导致的值大于 4,294,967,295 (232 – 1),则该值将设置为 232 – 1。如果减法运算导致的值小于 0,则该值将设置为 0。如果在进行加法或减法操作时尚未设置属性值,则无论指定的金额如何,属性值都默认为 0。如果对值为 0 的属性执行添加,则添加的数字将成为生成的属性值。

community (+ | add) [ names ]

(仅限 BGP)将指定的社区添加到路由中的社区集中。有关更多信息,请参阅 了解 BGP 社区、扩展社区和大型社区作为路由策略匹配条件。

community (– | delete) [ names ]

(仅限 BGP)从路由中的社区集中删除指定的社区。有关更多信息,请参阅 了解 BGP 社区、扩展社区和大型社区作为路由策略匹配条件。

community (= | set) [ names ]

(仅限 BGP)将路由中的任何社区替换为指定的社区。有关更多信息,请参阅 了解 BGP 社区、扩展社区和大型社区作为路由策略匹配条件。

cos-next-hop-map map-name

在转发表中设置基于 CoS 的下一跳映射。

damping name

(仅限 BGP)将指定的布线阻尼参数应用于布线。这些参数覆盖默认阻尼参数。此操作仅在导入策略中有用,因为阻尼参数会影响路由表中路由的状态。

要应用阻尼参数,您必须启用 BGP 抖动阻尼,如路由 设备的 Junos OS 路由协议库中所述,并且必须创建指定的参数列表,如 使用路由策略抑制 BGP 路由抖动中所述。

destination-class destination-class-name

根据数据包中的目标地址,维护通过网络的路由的数据包计数。您可以执行以下操作:

  • 通过配置路由策略来配置组目标前缀。

  • 将该路由策略应用于具有相应目标类的转发表。

  • 通过在层次结构级别包含destination-class-usage[edit interfaces interface-name unit logical-unit-number family inet accounting]语句,在一个或多个接口上启用数据包计数(请参阅路由设备 Junos OS 服务等级用户指南)。

  • 使用以下命令之一查看输出: show interfaces destination-class (all | destination-class-name logical-interface-name)、 show interfaces interface-name extensive或 show interfaces interface-name statistics (请参阅 CLI 资源管理器)。

  • 要根据源地址配置数据包计数,请使用此表中所述的 source-class 语句。

external type metric

为 OSPF 导出的路由设置外部度量类型。您必须指定关键字 type。

forwarding-class forwarding-class-name

根据数据包中的目标地址和源地址创建包含数据包的转发类。您可以执行以下操作:

  • 通过配置路由策略来配置组前缀。

  • 将该路由策略应用到具有相应转发类的转发表。

  • 使用此表中定义的 destination-class 或 source-class 操作中所述的过程,在一个或多个接口上启用数据包计数。

install-nexthop <strict> lsp lsp-name

在一组相等的 LSP 下一跃点中选择要安装在转发表中的下一跃点。使用转发表的导出策略指定要用于所需路由的 LSP 下一跃点。指定启用 strict 严格模式的选项,该模式检查策略中指定的任何 LSP 下一跃点是否已启动。如果指定的 LSP 下一跃点均未启动,则策略将安装丢弃下一跃点。

install-to-fib

覆盖默认 BGP 路由策略。有关更多信息,请参阅 示例:覆盖 PTX 系列数据包传输路由器上的默认 BGP 路由策略。

load-balance consistent-hash

(仅限 BGP)为一个或多个 IP 地址指定一致的负载平衡。当一个或多个下一跃点路径发生故障时,此功能将保留流与等价多路径 (ECMP) 组中路径的关联性。仅重定向非活动路径的流量。映射到保持活动状态的服务器的流量将保持维护。

您可以在内核路由表 (KRT) 导出策略中为通过具有多个网关的 Flex 路由配置文件解析的路由启用一致的负载平衡。该策略适用于将流量定向到 Flex 路由 IP 地址,以保持流量关联性。请谨慎使用 KRT 策略,仅允许使用特定前缀,并避免在数据包转发引擎中出现不良结果。

load-balance symmetric-consistent-hash

启用对称一致散列,以支持与静态路由的一致散列,并通过正向和反向的关联源 IP 和目标 IP 负载平衡哈希密钥实现对称负载平衡。

在任播 IP 上应用一致散列的场景中,该 IP 用于对通过静态路由向上游和下行方向的 ECMP 服务器组获知的流量进行负载均衡。由于预期来自客户的所有流量都应到达同一 ECMP 服务器,因此只有源 IP 用于在一个方向上创建负载均衡散列,而目标 IP 用于在相反方向上创建负载均衡散列。

load-balance destination-ip-only

仅根据目标 IP 地址计算负载平衡哈希。这样,服务提供商就可以在每个订阅者感知的环境中将流量定向到特定的内容服务器。

load-balance per-packet

(仅用于导出到转发表)在转发表中安装所有下一跃点地址,并让转发表执行每个数据包的负载平衡。此策略操作允许您优化跨多个路径的 VPLS 流量。更多信息,请参阅 配置按数据包负载均衡。

load-balance per-prefix

覆盖 BGP 的默认按数据包负载平衡路由策略。有关更多信息,请参阅 示例:覆盖 PTX 系列数据包传输路由器上的默认 BGP 路由策略。

load-balance source-ip-only

仅根据源 IP 地址计算负载平衡哈希。这样,服务提供商就可以在每个订阅者感知的环境中将流量定向到特定的内容服务器。

local-preference value

(仅限 BGP)设置BGP本地优先级 (LOCAL_PREF) 属性。优先级值可以是 0 到 4,294,967,295 (2、32 – 1) 范围内的数字。

local-preference (add | subtract) number

按指定量更改本地优先级值。如果加法运算导致的值大于 4,294,967,295 (232 – 1),则该值将设置为 232 – 1。如果减法运算导致的值小于 0,则该值将设置为 0。如果在进行加法或减法操作时尚未设置属性值,则无论指定的金额如何,属性值都默认为 0。如果对值为 0 的属性执行添加,则添加的数字将成为生成的属性值。

对于 BGP,如果属性值未知,则在应用路由策略之前将其初始化为 100。

map-to-interface (interface-name | self)

设置 map-to-interface 类似于现有量度或标记操作的值。该 map-to-interface 操作要求您指定以下选项之一:

  • 逻辑接口(例如,ge-0/0/0.0)。逻辑接口可以是组播当前支持的任何接口,包括 VLAN 接口和聚合以太网接口。

    注意:

    如果将物理接口指定为 ( map-to-interface 例如,ge-0/0/0),则会将值 .0 追加到物理接口以创建逻辑接口。

  • 关键字 self.关键字指定 self 组播数据包与控制数据包在同一接口上发送,并且不发生映射。

如果没有匹配的术语,则不会发送任何组播数据包。

metric metric metric2 metric metric3 metric metric4 metric

设置指标。您最多可以指定四个度量值,从(对于第一个度量值)开始 metric , metric2一直到 、 metric3和 metric4。

(仅限 BGP) metric 对应于 MED, metric2 如果 BGP 下一跃点通过其他路由器环路,则对应于 IGP 指标。

metric (add | subtract) number metric2 (add | subtract) number metric3 (add | subtract) number metric4 (add | subtract) number

按指定的量更改量度值。如果加法运算导致的值大于 4,294,967,295 (232 – 1),则该值将设置为 232 – 1。如果减法运算导致的值小于 0,则该值将设置为 0。如果在进行加法或减法操作时尚未设置属性值,则无论指定的金额如何,属性值都默认为 0。如果对值为 0 的属性执行添加,则添加的数字将成为生成的属性值。

metric expression (metric multiplier x offset a | metric2 multiplier y offset b)

根据 和 metric2的metric当前值计算指标。

此策略操作使用表达式的结果覆盖指标属性的当前值

((x * 指标) + a) + ((y * 指标 2) + b)

其中 metric 和 metric2 是当前输入值。公制乘数的范围限制为八位有效数字。

metric (igp | minimum-igp) site-offset

(仅限 BGP)按指定的负或正偏移量更改度量 (MED) 值。此操作仅在外部 BGP (EBGP) 导出策略中有用。

next-hop (address | discard | next-table table-name | peer-address | reject | self)

设置下一跳地址。当播发协议为BGP时,只有当任何第三方下一跳可以播发时,才能设置下一跳;也就是说,当您使用 IBGP 或 EBGP 联合体时。

如果指定 self,则下一跃点地址将替换为本地路由设备的某个地址。广告协议决定要使用的地址。当播发协议为 BGP 时,此地址将设置为用于 BGP 邻接的本地 IP 地址。路由设备无法安装将自身作为下一跃点的路由。

如果指定 peer-address,下一跃点地址将替换为对等方的 IP 地址。此选项仅在导入策略中有效。BGP 主要用于强制对播发路由使用对等方的 IP 地址,仅当下一跃点是播发路由设备或其他直接连接的路由设备时,此选项才有意义。

如果指定 discard,则下一跃点地址将替换为丢弃下一跃点。

如果指定 next-table,则路由设备将在指定的表中执行转发查找。

如果使用该next-table操作,则配置必须包含一个术语限定符,该限定符指定与操作中next-table指定的表不同的表。换句话说,语句中的from术语限定符必须排除操作中的next-table表。在以下示例中,第一个术语包含rib vrf-customer2.inet.0作为匹配条件。该操作在不同的路由表中指定下一跃点。 vrf-customer1.inet.0第二个术语通过在匹配条件vrf-customer2.inet.0中使用和在操作中来rib vrf-customer1.inet.0执行相反的next-table操作。

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;
    }
}

如果指定 reject,则下一跃点地址将替换为拒绝下一跃点。

origin value

(仅限 BGP)将 BGP 源属性设置为以下值之一:

  • igp— 路径信息源自本地 AS。

  • egp— 路径信息源自其他 AS。

  • incomplete—通过其他方式学习的路径信息。

p2mp-lsp-root

为基于多点 LDP (M-LDP) 的点对多点标签交换路径 (LSP) 设置入口根节点。有关更多信息,请参阅 示例:为点对多点 LSP 配置多点 LDP 带内信令。

preference preference preference2 preference

设置首选项值。您可以指定主要优先级值 (preference) 和辅助优先级值 (preference2)。优先级值可以是 0 到 4,294,967,295 (2、32 – 1) 范围内的数字。数字越小表示路线越优选。使用导入策略将 的 preference2 值设置为允许的最高值 4,294,967,295 时,Junos OS 会将此值重置为 -1。如果设置为 preference2 大于 (231 – 1) 的数字,则重置为负值。

要指定更细粒度的首选项值,请参阅此表中的和colorcolor2操作。

如果使用操作设置 preference 首选项,则新首选项仍与路由关联。新的优先级是 Junos OS 内部的,不是传递的。

preference (add | subtract) number preference2 (add | subtract) number

按指定量更改首选项值。如果加法运算导致的值大于 4,294,967,295 (232 – 1),则该值将设置为 232 – 1。如果减法运算导致的值小于 0,则该值将设置为 0。如果在进行加法或减法操作时尚未设置属性值,则无论指定的金额如何,属性值都默认为 0。如果对值为 0 的属性执行添加,则添加的数字将成为生成的属性值。

priority (low | medium | high)

(仅限 OSPF 导入)为 OSPF 导入策略中包含的前缀指定优先级。通过 OSPF 获知的前缀会根据分配给前缀的优先级安装在路由表中。首先安装分配优先级 high 的前缀,而分配优先级 low 的前缀将最后安装。

注意:

OSPF 导入策略只能用于设置优先级或过滤 OSPF 外部路由。如果应用了导致对非外部路由执行终止操作的 reject OSPF 导入策略, reject 则该操作将被忽略,并且仍会接受路由。

source-class source-class-name

根据源地址维护通过网络的路由的数据包计数。您可以执行以下操作:

  • 通过配置路由策略来配置组源前缀。

  • 将该路由策略应用到具有相应源类的转发表。

  • 通过在source-class-usage interface-name层次结构级别包含[edit interfaces logical-unit-number unit family inet accounting]语句,在一个或多个接口上启用数据包计数。此外,在带有 or output 语句的input语句后source-class-usage面,定义源类使用 (SCU) 监控的流量到达和离开的入站和出站接口(或为两者定义一个接口)。完整的语法是 [edit interfaces interface-name unit family inet accounting source-class-usage (input | output | input output) unit-number]。

  • 使用以下命令之一查看输出: show interfaces interface-name source-class source-class-name、 或 show interfaces interface-name extensiveshow interfaces interface-name statistics (请参阅 CLI 资源管理器)。

  • 要根据目标地址配置数据包计数,请使用此表中所述的 destination-class 语句。

  • 有关详细的源类使用示例配置,请参阅示例 :将源和目标前缀分组到转发类中。

注意:

配置策略操作语句时,您只能为每个匹配路由配置一个源类。换句话说,不能将多个源类应用于同一路由。

ssm-source [ addresses ];

为特定于源的组播 (SSM) 策略指定一个或多个 IPv4 或 IPv6 源地址

ssm-source [ addresses ];

为特定于源的组播 (SSM) 策略指定一个或多个 IPv4 或 IPv6 源地址。

tag tag tag2 tag

设置标记值。您可以指定两个标记字符串: tag (对于第一个字符串)和 tag2 (第二个字符串)。这些值是路由器的本地值。

  • 对于 OSPF 路由,该 tag 操作会在 OSPF 外部链路状态通告 (LSA) 数据包中设置 32 位标记字段。

  • 对于 IS-IS 路由,该 tag 操作会在 IS-IS IP 前缀类型长度值 (TLV) 中设置 32 位标志。

  • 对于 RIPv2 路由,操作将 tag 设置路由标记社区。不支持该 tag2 选项。

tag (add | subtract) number tag2 (add | subtract) number

按指定量更改标记值。如果加法运算导致的值大于 4,294,967,295 (232 – 1),则该值将设置为 232 – 1。如果减法运算导致的值小于 0,则该值将设置为 0。如果在进行加法或减法操作时尚未设置属性值,则无论指定的金额如何,属性值都默认为 0。如果对值为 0 的属性执行添加,则添加的数字将成为生成的属性值。

validation-state

配置 BGP 源验证后,将路由前缀的验证状态设置为有效、无效或未知。

路由验证数据库包含路由源授权 (ROA) 记录,用于将路由前缀映射到预期的始发自治系统 (AS)。这样可以防止意外播发无效路由。

请参阅 了解 BGP 的源验证。

在路由策略中配置默认操作

该 default-action 语句将覆盖协议固有的任何操作。此操作也是非终止的,因此可以在终止策略之前评估各种策略条款。您可以指定默认操作(或 accept reject),如下所示:

生成的操作由协议或最后一个匹配的策略术语设置。

示例:在路由策略中配置默认操作

配置基于三个策略术语匹配路由的路由策略。如果路由与第一个术语匹配,则附加某个公共组标记。如果路由匹配两个单独的术语,则会附加两个社区标记。如果路由与任何条款都不匹配,则路由将被拒绝(协议的默认操作)。请注意,条款 hub 和 spoke 是互斥的。

在路由策略中配置最终操作

除了使用命名术语中的语句指定 then 操作外,您还可以使用未命名术语中的语句指定 then 操作,如下所示:

记录与路由策略术语的匹配项

如果指定跟踪操作,则匹配项将记录到跟踪文件中。要设置跟踪文件,您必须在 global traceoptions 语句中指定以下元素:

  • 跟踪文件名

  • policy 语句中的 flag 选项

以下示例使用跟踪文件名 policy-log:

此操作不会影响路由策略评估期间的流控制。

如果指定跟踪操作的术语还指定流控制操作,则该术语的名称将记录在跟踪文件中。如果术语仅指定跟踪操作,则会记录单词 <default>。

为路由列表中的路由配置单独的操作

如果在语句中 from 指定路由列表,则对于列表中的每个路由,可以指定要直接对该单个路由执行的操作,而不包含语 then 句。有关更多信息,请参阅了解路由 策略匹配条件中使用的路由过滤器。

特定于平台的行为

使用 功能资源管理器 确认平台和版本对特定功能的支持。

使用下表查看平台的特定于平台的行为:

平台

差异

MX 系列路由器

load-balance consistent-hash 适用于配备模块化端口集中器 (MPC) 的 MX 系列路由器。

load-balance symmetric-consistent-hash 适用于基于 AFT 的 MX 系列路由器。

QFX 系列路由器

load-balance consistent-hash 适用于 QFX10000。

PTX 系列路由器

install-to-fib 仅适用于 PTX 系列路由器。

load-balance per-prefix 仅适用于 PTX 系列路由器。