在 BGP VPLS 网络中,中转路由器必须确定有效负载,以便进行负载平衡的散列计算。在解析 MPLS 封装数据包进行散列处理时,如果目标地址 MAC 的第一个半位分别为 0x4 或 0x6,则中转路由器可能会错误地将以太网有效负载计算为 IPv4 或 IPv6 有效负载。这种误报会导致伪线上数据包传递无序。配置 BGP VPLS PE 路由器以请求其他 BGP VPLS 边缘 (VE) 路由器在标签堆栈和 MPLS 有效负载之间插入控制字,可以避免此问题。
警告:
如果尝试在包含不支持控制字的 VE 路由器的 VPLS 网络中设置控制字,则伪线将不会启动。为确保伪线启动,请确保 VPLS 网络中的所有 VE 路由器都支持控制字的存在。
在 BGP VPLS 网络中配置对控制字的支持之前,请确保路由器满足以下要求:
要将 VE 路由器配置为在标签堆栈和 MPLS 有效负载之间预期一个控制字,请执行以下作:
- 在配置模式的层次结构级别上
[edit routing-instances] ,为指定路由实例的 VPLS 协议进行设置 control-word 。
[edit routing-instances]
user@host# set routing-instance-name protocols vpls control-word
例如:
[edit routing-instances]
user@host# set vpls1 protocols vpls control-word
- 如果在 MX 系列路由器上设置基于 Trio 的 MPC,请
control-word 设置为 no-ether-pseudowire 从哈希密钥中省略以太网伪线上的 IP 有效负载。
[edit forwarding-options]
user@host# set enhanced-hash-key family mpls no-ether-pseudowire
- 验证配置。
[edit routing-instances]
user@host# show
vpls1 {
protocols {
vpls {
control-word;
}
}
}
[edit forwarding-options]
user@host# show
enhanced-hash-key {
family mpls {
no-ether-pseudowire;
}
}
- 在 BGP VPLS 网络中的每台 VE 路由器上重复此配置。
- 运行
show vpls connections instance routing-instance-name extensive 以验证伪线是否存在控制字。
例如:
user@host# show vpls connections instance vpls1 extensive
Layer-2 VPN connections:
Legend for connection status (St)
EI -- encapsulation invalid NC -- interface encapsulation not CCC/TCC/VPLS
...
PF -- Profile parse failure PB -- Profile busy
Legend for interface status
Up -- operational
Dn -- down
Instance: vpls1
...
connection-site Type St Time last up # Up trans
1 rmt Up May 21 10:08:34 2013 2
Remote PE: 192.0.2.0, Negotiated control-word: Yes