Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

重写 MPLS 和 IPv4 数据包标头

您可以同时对 MPLS 和 IPv4 数据包标头应用重写规则。这允许您在 LSP 入口处初始化 MPLS、EXP 和 IP 优先级位。您可以根据流量是 VPN 还是非 VPN 来配置不同的重写规则。

运行 Junos OS 演化版的设备不支持对 VPN 和非 VPN 流量使用不同的重写规则。

1 显示了默认的 MPLS EXP 重写规则。

表 1:默认 MPLS EXP 重写规则

转发类

丢失优先级

MPLS EXP 重写值

best-effort

low

000

best-effort

high

001

expedited-forwarding

low

010

expedited-forwarding

high

011

assured-forwarding

low

100

assured-forwarding

high

101

network-control

low

110

network-control

high

111

默认情况下,IP 优先级重写规则会更改服务类型 (ToS) 字节的前三位,而保留最后三位不变。此默认行为仅适用于在提供商边缘 (PE) 路由器上为具有 IPv4 有效负载的 MPLS 数据包配置的重写规则。在中转路由器 (P) 上,在外部 MPLS 报头中设置 EXP 位时,我们不会更改内部 IPv4 报头和有效负载。

要覆盖默认 MPLS EXP 重写表并同时重写 MPLS 和 IPv4 数据包标头,请在[edit class-of-service interfaces interface-name unit logical-unit-number rewrite-rules exp rewrite-rule-name]层级包含以下protocol语句:

protocol 语句定义应用指定重写规则的 MPLS 数据包类型和数据包标头。MPLS 数据包可以是标准 MPLS 数据包,也可以是带有 IPv4 有效负载的 MPLS 数据包。使用以下选项指定 MPLS 数据包的类型:

  • mpls-any- 将重写规则应用于 MPLS 数据包,并将 CoS 值写入 MPLS 报头。

  • mpls-inet-both- 将 CoS 值应用于提供商边缘 (PE) 路由器上 VPN 数据包的 MPLS 和 IPv4 报头。在核心路由器上,此选项仅重写 MPLS 标头,不会重写内部 IPv4 有效负载中的 CoS 位。

  • mpls-inet-both-non-vpn- 将重写规则应用于具有 IPv4 有效负载的非 VPN MPLS 数据包。将 CoS 值应用于提供商边缘 (PE) 路由器上非 VPN 数据包的 MPLS 和 IPv4 报头。在核心路由器上,此选项仅重写 MPLS 标头,不会重写内部 IPv4 有效负载中的 CoS 位。

Junos OS 演化版仅支持选项 mpls-any 。运行 Junos OS 演化版的设备不支持对 VPN 和非 VPN 流量使用不同的重写规则。

在 MX 系列路由器上,通过将独立的 DSCP 或 IPv4 优先级重写规则和 EXP 重写规则附加到同一核心接口,可以同时执行 DSCP 和 EXP 重写。因此,当 MPLS 核心上的入口提供商边缘 (PE) 路由器接收数据包时,您可以重写这两个代码点(DSCP 和 EXP)。

使用重写规则映射覆盖默认值的替代方法是配置默认数据包标头重写映射,如 应用默认重写规则中所述。

默认情况下,IP 优先级重写规则会更改 ToS 字节的前三位,而保留最后三位不变。此默认行为不可配置。默认行为适用于通过在[edit class-of-service rewrite-rules]层次结构级别包含inet-precedence语句来配置的规则。默认行为也适用于为具有 IPv4 有效负载的 MPLS 数据包配置的重写规则。您可以通过在[edit class-of-service interfaces interface-name unit logical-unit-number rewrite-rules exp rewrite-rule-name protocol]层次结构级别包含mpls-inet-bothmpls-inet-both-non-vpn 选项来配置这些类型的重写规则。

示例:重写 MPLS 和 IPv4 数据包标头

配置重写表并以各种方式应用它们以实现以下结果:

  • 对于接口 et-3/1/0,根据有效负载的协议,将三个 EXP 重写表应用于数据包:

    • 在接口 et-3/1/0 上进入 LSP 的 IPv4 数据包 (VPN) 将使用 rewrite table exp-inet-table中的值进行初始化。如果此路由器仅充当提供商边缘路由器,则会将相同的 3 位值写入 IP 优先级和 MPLS EXP 位字段。对于过渡路由器,3 位值仅写入 MPLS EXP 位。

    • 在接口 et-3/1/0 上进入 LSP 的 IPv4 数据包(非 VPN)将使用 rewrite table rule-non-vpn中的值进行初始化。如果此路由器仅充当提供商边缘路由器,则会将相同的 3 位值写入 IP 优先级和 MPLS EXP 位字段。对于过渡路由器,3 位值仅写入 MPLS EXP 位。

    • 在接口 et-3/1/0 上进入 LSP 的非 IPv4 数据包将使用 rewrite 表 rule1中的值进行初始化,并仅写入 MPLS EXP 报头字段。该语句 exp rule1 的结果与 exp rule1 protocol mpls

  • 对于接口 et-3/1/0,通过非 LSP 层传输的 IPv4 数据包将使用 IP 优先级重写表 rule2中的值进行初始化。

  • 对于接口 et-3/1/1,进入 LSP 的 IPv4 数据包将使用 EXP 重写表 exp-inet-table中的值进行初始化。如果此路由器仅充当提供商边缘路由器,则会将相同的 3 位值写入 IP 优先级和 MPLS EXP 位字段。对于过渡路由器,3 位值仅写入 MPLS EXP 位。

  • 对于接口 et-3/1/1,IPv4 第 3 层类型以外的 MPLS 数据包也使用表 exp-inet-table中的值进行初始化。对于带有 IPv4 有效负载的 VPN MPLS 数据包,CoS 值将写入 MPLS 和 IPv4 报头。对于不带 IPv4 有效负载的 VPN MPLS 数据包,CoS 值仅写入 MPLS 报头。请注意,仅当路由器充当提供商边缘路由器时,才会重写 IPv4 标头。

示例:同时 DSCP 和 EXP 重写

同时配置 DSCP 和 EXP 重写规则,如下所示:

  1. 配置 CoS。

  2. 在接口上配置 EXP 重写规则。

  3. 在接口上配置 IPv4 重写规则。

  4. 在接口上配置 IPv4 重写规则,并将其应用于进入 MPLS 隧道的数据包。

  5. 使用 show interfaces 命令验证配置。

在上面的示例中,有两种不同的 IPv4 优先级重写规则: rule2rule3rule2 会影响 IPv4 到 IPv4 的流量,并 rule3 影响 IPv4 到 MPLS 的流量。