在 BGP VPLS 网络中,传输路由器必须确定进行哈希计算的有效负载,以实现负载平衡。对 MPLS 封装的数据包进行散列分析时,如果目标地址 MAC 的第一个部分分别0x4或0x6,则中继路由器可能会将以太网有效负载计算为 IPv4 或 IPv6 有效负载。这种误报可能导致通过伪线进行无序数据包交付。通过配置 BGP VPLS PE 路由器以请求其他 BGP VPLS 边缘 (VE) 路由器在标签堆栈和 MPLS 有效负载之间插入控制字,可以避免此问题。
警告:
如果您尝试在 VPLS 网络中设置一个控制字,其中包含不支持控制字的 VE 路由器,则伪线不会出现。为了确保伪线出现,请确保 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 系列路由器上设置
control-word
基于 Trio 的 MPC,则设置为 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