重写传出数据包的所有三个标签的 EXP 位
在提供商间、运营商的运营商和复杂的流量工程场景中,有时有必要使用交换-推送或三次推送操作,在下一跃点上推送三个标签。
默认情况下,在 M 系列路由器和 EX 系列交换机上,配置交换推送和三推送操作时,不会重写传出数据包的顶部 MPLS EXP 标签。在 M 系列路由器上,您可以重写传出数据包的所有三个标签的 EXP 位,从而维护传入 MPLS 或非 MPLS 数据包的 CoS。
当软件执行交换-推送操作且未配置重写时,所有三个标签的 EXP 字段均与旧标签中相同。如果配置了 EXP 重写,则底部两个标签的 EXP 位将被表条目覆盖。即使重写,顶层标签的 EXP 设置也会保留。
要对所有传入的 MPLS 数据包推送三个标签,请将语句 exp-swap-push-push default
包含在 [edit class-of-service interfaces interface-name unit logical-unit-number rewrite-rules]
层次结构级别:
[edit class-of-service interfaces interface-name unit logical-unit-number rewrite-rules] exp-swap-push-push default;
当软件执行推式推送操作时,如果未配置重写,则底部两个标签的 EXP 字段为零。如果配置了 EXP 重写,则底部两个标签的 EXP 字段将用表条目的重写值重写。插入顶部标签的 EXP 字段,并显示 Qn+PLP 值。无论是否配置了重写,此 Qn 都通过多域分类器(如果存在)反映最终分类。
exp-push-push-push
出口接口上的和exp-swap-push-push
配置不会使用 IQ 或 IQ2 PIC 上的 Qn+PLP 值重写顶部标签的 EXP 字段。
要对传入的非 MPLS 数据包推送三个标签,请将语句exp-push-push-push default
[edit class-of-service interfaces interface-name unit logical-unit-number rewrite-rules]
包含在层次结构级别:
[edit class-of-service interfaces interface-name unit logical-unit-number rewrite-rules] exp-push-push-push default;
这些配置会应用默认的 MPLS EXP 重写表,如 重写 MPLS 和 IPv4 数据包标头中所述。您可以配置这些操作,并使用自定义表覆盖默认的 MPLS EXP 重写表。有关编写和应用自定义重写表的更多信息,请参阅 配置重写规则 和 将重写规则应用于输出逻辑接口。
使用三标签堆栈时,如果配置中不包含 exp-swap-push-push default
或 exp-push-push-push default
语句,则顶层标签的 EXP 位将设置为零。
示例:重写传出数据包的所有三个标签的 EXP 位
配置交换推送操作,并使用自定义表覆盖默认重写表:
[edit class-of-service] forwarding-classes { queue 0 be; queue 1 ef; queue 2 af; queue 3 nc; } interfaces { so-1/1/3 { unit 0 { rewrite-rules { exp exp_rew; # Apply custom rewrite table exp-swap-push-push default; } } } } rewrite-rules { exp exp_rew { forwarding-class be { loss-priority low code-point 000; loss-priority high code-point 100; } forwarding-class ef { loss-priority low code-point 001; loss-priority high code-point 101; } forwarding-class af { loss-priority low code-point 010; loss-priority high code-point 110; } forwarding-class nc { loss-priority low code-point 011; loss-priority high code-point 111; } } }