重写传出数据包的所有三个标签的 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;
}
}
}