二层协议透明传输的基本原理
工作流程
1.在骨干网的用户接入侧替换原始二层协议报文的组播目的MAC地址为特定的组播MAC地址。(修改源组播MAC地址)
2.修改MAC地址后的报文在骨干网中根据配置的透明传输方式决定是否对报文进行处理。(查看骨干网透传规则)
3.当该二层协议报文到达出节点时,通过匹配设备上配置的特殊组播目的MAC和二层协议的映射关系,将报文的组播目的MAC还原成该二层协议标准的组播目的MAC地址,并根据配置的透明传输方式决定是否处理该报文。(转换找出映射关系,还原组播MAC地址,查看转发规则)
透明传输的规则
1.同一个用户网络的所有分支都能收到其他分支的二层协议报文。
2.用户网络的二层协议报文不能被骨干网设备的CPU处理。
3.不同客户网络中的二层协议报文必须隔离,不能互相影响。
透明传输的方式
1.基于接口的二层协议透明传输。
2.基于VLAN的二层协议透明传输。
3.基于QinQ的二层协议透明传输。
基于接口的二层协议透明传输
图1 基于接口的二层协议透明传输
如图1所示,PE设备的每个接口只连接了一个用户网络,且所有的用户网络不属于同一个LAN。若此时用户网络发送到PE的二层协议报文(BPDU)不带VLAN标签,PE设备需要区分该二层协议报文来自哪一个用户LAN。LAN-A的二层协议报文必须被转发到其他LAN-A的用户网络中,而不能被转发到其它的用户网络中,并且还要避免该二层协议报文被运营商网络设备处理。
针对这种场景,有两种处理方式:
· 修改骨干网内设备可以识别的缺省二层协议组播MAC地址为其他的组播MAC地址。这种方式只适用于STP/RSTP/MSTP协议,相关配置命令为bpdu-tunnel stp bridge role provider。
1. 配置骨干网内所有设备的角色为provider。这样骨干网络二层协议发出的BPDU报文的组播目的MAC变为01-80-C2-00-00-08。
2. 配置用户网络内所有的设备角色为customer。这样用户网络二层协议发出的BPDU报文的组播目的MAC为01-80-C2-00-00-00。
3. 在骨干网设备上,连接相同的用户网络的接口加入到同一个VLAN中。骨干网设备接收到用户网络的二层协议报文后,根据接口的缺省VLAN,为该报文打上对应的VLAN ID。
4. 骨干网设备(provider类型)不再认为该报文为二层协议的BPDU报文,不把该报文发送到CPU进行处理,而是根据接口的缺省VLAN ID选择对应的二层隧道来转发该二层协议报文。
5. 用户网络的二层协议报文在二层骨干网内部的节点上按照普通的二层报文转发,正常地穿越骨干网络。
6. 用户网络的二层协议报文到达骨干网设备的出节点设备时,报文同样被转发到用户侧,不做任何修改。
· 替换来自用户网络的原始二层协议报文的组播MAC地址为指定组播MAC地址。这种方式适用于所有类型的二层协议透明传输。
1. 在骨干网设备上,连接相同的用户网络的接口加入到同一个VLAN中。骨干网设备收到用户网络的二层协议报文,因为不同的协议报文有不同的目的MAC地址,因此设备可识别出该报文属于哪种二层协议的报文(如STP协议的BPDU报文),根据接口的缺省VLAN,给该报文打上对应的VLAN ID。
2. 骨干网设备根据配置的特殊组播目的MAC和二层协议的映射关系,将该二层协议报文的标准组播目的MAC地址修改为指定的组播目的MAC地址。
3. 修改MAC后的二层报文在骨干网内部的节点上按照普通的二层报文转发,用户网络的二层协议报文正常地穿越骨干网络。
4. 用户网络的二层协议报文到达骨干网设备的出节点设备时,再次根据设备上配置的特殊组播目的MAC和二层协议的映射关系,将该报文的组播目的MAC地址还原成二层协议的标准组播MAC地址,然后再转发到用户侧。
基于VLAN的二层协议透明传输
图2 基于VLAN的二层协议透明传输
在多数情况下,PE都是作为汇聚设备存在,如图2所示,PE1的汇聚接口上同时收到来自LAN-A、LAN-B的报文。为了区分这两个不同的用户网络,CE发送到PE的二层协议报文就必须携带VLANID,其中,LAN-A的VLAN ID为200,LAN-B的VLAN ID为100。为保证LAN-A的二层协议报文被转发到其他LAN-A的用户网络中,而不被转发到LAN-B的用户网络中,并且还要避免该二层协议报文被运营商网络设备处理。可在PE设备上配置基于VLAN的二层协议透明传输,二层协议报文会通过二层隧道,穿越骨干网络。
与基于接口的二层协议透明传输类似,针对这种场景,也有两种处理方式:
· 修改骨干网内设备可以识别的缺省二层协议组播MAC地址为其他的组播MAC地址。这种方法只适用于STP/RSTP/MSTP协议,相关配置命令为bpdu-tunnel stp bridge role provider。
1. 配置骨干网内所有设备的角色为provider。这样骨干网络二层协议发出的BPDU报文的组播目的MAC变为01-80-C2-00-00-08,而不是01-80-C2-00-00-00。
2. 配置用户网络内所有的设备角色为customer。这样用户网络二层协议发出的BPDU报文的组播目的MAC为01-80-C2-00-00-00。
3. 配置用户网络设备发送到骨干网的二层协议报文带有指定的VLAN ID。
4. 配置骨干网设备能够识别带有VLAN ID的二层协议报文,并允许这些VLAN ID通过。
5. 骨干网设备(provider类型):不再认为该报文为二层协议的BPDU报文,不把该报文发送到CPU进行处理,而是根据接口允许通过的VLAN范围,选择对应的二层隧道来转发该二层协议报文。
6. 用户网络的二层协议报文在二层骨干网内部的节点上按照普通的二层报文转发,正常地穿越骨干网络。
7. 用户网络的二层协议报文到达骨干网设备的出节点设备时,报文同样被转发到用户侧,不做任何修改。
· 替换来自用户网络的原始二层协议报文的组播MAC地址为指定组播MAC地址。这种方式适用于所有类型的二层协议透明传输。
1. 配置用户网络设备发送到骨干网的二层协议报文带有指定的VLAN ID。
2. 配置骨干网设备能够识别带有VLAN ID的二层协议报文,并允许这些VLAN ID通过。
3. 骨干网设备根据配置的特殊组播目的MAC和二层协议的映射关系,将该二层协议报文的标准组播目的MAC地址修改为指定的组播目的MAC地址。
4. 修改MAC后的二层报文在骨干网内部的节点上按照普通的二层报文转发,用户网络的二层协议报文正常地穿越骨干网络。
5. 用户网络的二层协议报文到达骨干网设备的出节点设备时,再次根据设备上配置的特殊组播目的MAC和二层协议的映射关系,将该报文的组播目的MAC地址还原成二层协议的标准组播MAC地址,然后再转发到用户侧。
基于QinQ的二层协议透明传输
当接入大量用户网络时,如果仍采用上述的基于VLAN的方式透明传输二层协议报文,那么就需要使用大量的运营商VLAN ID,造成VLAN ID资源的紧张。此时,可以在骨干网络内部使用QinQ方式来转发用户的二层协议报文。
QinQ协议是基于IEEE 802.1Q技术的一种二层隧道协议。通过在802.1Q标签报文的基础上再增加一层802.1Q的标签头来达到扩展VLAN空间的功能,从而实现私网VLAN在公网透明传输。
图3 基于QinQ的二层协议透明传输
如图3所示,PE的汇聚接口上配置基于QinQ的二层协议透明传输功能,根据用户网络来分配不同的外层Tag。
1. 配置用户网络设备发送到骨干网的二层协议报文带有指定的VLAN ID。
2. 在骨干网入节点设备的接口上,使能二层协议透明传输和QinQ功能。
3. 骨干网设备根据用户VLAN ID,为二层协议报文分配不同的外层Tag,即公网中的VLAN ID。
4. 骨干网设备根据不同的外层Tag,选择不同的二层隧道,二层协议报文在层骨干网内部的节点上按照普通的二层报文转发。
5. 在骨干网出节点设备的接口上,同样使能二层协议透明传输和QinQ功能。
6. 骨干网出节点设备去掉外层Tag,并根据内层用户VLAN ID,把二层协议报文转发到相应的用户网络中。
PE收到VLAN为100~199的二层协议报文,为该报文打上外层VLAN20,然后在骨干网络中传输;PE收到VLAN为200~299的二层协议报文,为该报文打上外层VLAN30,然后在骨干网络中传输。这样既能实现不同用户网络的二层协议报文在骨干网络中的透明传输,又可以节约运营商的VLAN。