目的在实际组网中,用户经常利用运营商提供的专线来构建自己的二层网络,这使同一用户私网的不同分支可能分布在运营商公网的两侧。如图13-1所示,用户A的网络分为网络1和网络2,二者通过运营商网络相连接。当网络1和网络2中共同运行某种二层协议(如MSTP协议)时,要求网络1和网络2中的二层协议报文能够穿越运营商网络,以完成二层协议的计算(如生成树的计算)。通常二层协议报文的目的MAC都是一样的,例如MSTP协议,其协议报文是BPDU报文,目的MAC均是0180-C200-0000。因此,当用户网络的二层协议报文到达运营商网络的PE设备时,PE不能识别该二层协议报文是来自用户网络还是来运营商网络,都会把收到的二层协议报文发送给CPU进行处理,完成生成树计算。
这样用户网络1的设备就和PE1完成了生成树计算功能,而不是和用户网络2的设备完成生成树计算。用户网络1的二层协议报文无法穿越运营商网络到达用户网络2中。
图13-1 二层协议在ISP网络透明传输
为了解决上述问题,就要求在运营商网络中能够透传用户网络的二层协议报文,过程如下:- PE1收到CE1发来的二层协议报文后,将二层协议报文的目的MAC地址替换成一个特定的组播MAC地址,然后在运营商网络中进行转发。
- 运营商网络另一端的PE2收到报文,还原报文的目的MAC地址后,将报文发送给CE2。
二层协议透明传输原理描述介绍二层协议透明传输的实现原理。
如图13-2所示,PE设备的每个接口只连接了一个用户网络,且所有的用户网络不属于同一个LAN,PE设备需要区分该二层协议报文来自哪一个用户LAN。LAN-A的二层协议报文必须被转发到其他LAN-A的用户网络中,而不能被转发到其它的用户网络中,并且还要避免该二层协议报文被运营商网络设备处理。
图13-2 二层协议透明传输
针对这种场景,要求二层协议报文在骨干网络中透明传输,即传输过程中达到以下要求:
同一个用户网络的所有分支都能收到其他分支的二层协议报文。
用户网络的二层协议报文不能被骨干网设备的CPU处理。
不同客户网络中的二层协议报文必须隔离,不能互相影响。
配置二层协议透明传输,可以解决上面问题,过程如下:骨干网设备PE1收到用户网络的二层协议报文,根据配置的特殊组播目的MAC和二层协议的映射关系,将该二层协议报文的标准组播目的MAC地址修改为指定的组播目的MAC地址。
修改MAC后的二层报文在骨干网内部的节点上按照普通的二层报文转发,用户网络的二层协议报文正常地穿越骨干网络。
用户网络的二层协议报文到达骨干网设备的出节点设备PE2时,再次根据设备上配置的特殊组播目的MAC和二层协议的映射关系,将该报文的组播目的MAC地址还原成二层协议的标准组播MAC地址,然后再转发到用户侧。
二层协议透明传输应用场景介绍二层协议透明传输的应用场景。
如图13-3所示,CE1、CE2为用户A的私网位于不同地域的边缘设备,分别通过PE1、PE2接入运营商网络。用户A的网络中因存在冗余链路,采用MSTP协议破除二层网络中的环路。但是,当CE发送的MSTP协议报文到达PE时,由于PE无法识别该报文来自用户网络还是运营商网络,因此会将其上送给CPU进行处理。这样,用户网络A与运营商网络的二层协议计算将相互影响,用户网络就无法独立完成二层协议的计算。
可在PE设备上提供对接入用户的二层协议报文的透明传输处理,此时MSTP协议报文不会上送PE设备的CPU处理,从而避免PE设备参与生成树计算。
图13-3 二层协议透明传输组网图