BGP VPLS 控制字概述
在 BGP VPLS 网络中,中转路由器必须确定有效负载,以便进行负载平衡的散列计算。在解析 MPLS 封装数据包进行散列处理时,如果目标地址 MAC 的第一个半位分别为 0x4 或 0x6,则中转路由器可能会错误地将以太网有效负载计算为 IPv4 或 IPv6 有效负载。这种误报会导致伪线上数据包传递无序。配置 BGP VPLS 边缘 (VE) 路由器以请求其他 BGP VE 路由器在标签堆栈和 MPLS 有效负载之间插入控制字,可避免此问题。
通过在标签堆栈与遍历 VPLS 的数据包的第 2 层标头之间插入控制字,可以确保目标地址 MAC 的第一个半字节为 0,从而防止数据包被识别为 IPv4 或 IPv6 数据包。所有 VE 路由器都应希望传入数据包包含控制字。
BGP 用于在 VE 路由器之间协商对控制字的支持。使用该 control-word 参数配置 VE 路由器,以指示接收带有控制字的数据包的首选项。通过设置控制字,VE 路由器期望所有标有 VPLS 标签的帧都包含控制字。当远程 VE 路由器通告其 NLRI 时,如果在其上也设置了控制字,则伪线的两端都支持控制字,并且控制字应出现在两个方向到达 VE 路由器的数据包中。
如果 VE 路由器没有控制字集,那么具有控制字集的 VE 路由器将表现得好像没有控制字的 VE 路由器既不能发送也不能接受包含控制字的 BGP VPLS 数据包。