1、QinQ技术QinQ技术1 QinQ的产生背景 IEEE802.1Q中定义的 VLAN Tag域中只有 12个比特位用于表示 VLAN ID, 所以设备最多可以支持 4094 个 VLAN。在实际应用中,尤其是在城域网中,需要大量的VLAN来隔离用户,4094个 VLAN远远不能满足需求。 2 QinQ的作用及原理 设备提供的端口 QinQ特性是一种简单、灵活的二层 VPN技术,它通过在运营商网络边缘设备上为用户的私网报文封装外层 VLAN Tag,使报文携带两层 VLAN Tag穿越运营商的骨干网络(公网)。 在公网中,设备只根据外层 VLAN Tag 对报文进行转发,并将报文的源 MAC
2、地址表项学习到外层 Tag所在 VLAN的MAC地址表中,而用户的私网 VLAN Tag在传输过程中将被当作报文中的数据部分来进行传输。 QinQ特性使得运营商可以用一个VLAN为含有多个VLAN的用户网络服务。如 图 1所示,用户网络A的私网VLAN为VLAN 110,用户网络B的私网VLAN为VLAN 120。 运营商为用户网络A分配的VLAN为VLAN 3, 为用户网络B分配的VLAN为VLAN 4。当用户网络A的带VLAN Tag的报文进入运营商网络时,报文外面会被封装上一层VLAN ID为 3的VLAN Tag;当用户网络B的带VLAN Tag的报文进入运营商网络时,报文外面会被封装
3、上一层VLAN ID为 4的VLAN Tag。这样,不同用户网络的报文在公网传输时被完全分开,即使两个用户网络的VLAN范围存在重叠,在公网传输时也不会产生混淆。3 QinQ 报文格式图2 QinQ报文格式图QinQ报文有固定的格式,就是在802.1Q的标签之上再打一层802.1Q标签,QinQ报文比正常的802.1Q报文多四个字节。 另外,对于QinQ报文的ETYPE值(TPID),不同的厂家有不同的设置,默认的0x8100,有些厂家采用0x9100,为了实现互通,有些设备支持基于端口的QinQ协议配置,即用户可以在设备端口上设置QinQ protocol 0x9100(该值可以由用户任意指
4、定),这样端口就会将报文外层VLAN tag中的ETYPE值替换为0x9100再进行发送,从而使发送到其他设备端口的QinQ报文可以被设备识别。4 基本 QinQ 基本 QinQ是基于端口方式实现的。开启端口的基本 QinQ功能后,当该端口接收到报文,设备会为该报文打上本端口缺省 VLAN的 VLAN Tag。如果接收到的是已经带有 VLAN Tag的报文,该报文就成为双 Tag的报文;如果接收到的是不带 VLAN Tag的报文,该报文就成为带有端口缺省 VLAN Tag的报文。5 灵活 QinQ灵活 QinQ 是对 QinQ 的一种更灵活的实现,它是基于端口与 VLAN 相结合的方式实现的。
5、除了能实现所有基本 QinQ 的功能外,对于同一个端口接收的报文还可以根据不同的 VLAN做不同的动作,可以实现以下功能: 为具有不同内层 VLAN ID的报文添加不同的外层 VLAN Tag。指定外层标签的802.1p 优先级(可否根据内层映射待确定)指定外层标签的TPID6 区别基本的QinQ是以物理端口来划分用户或用户网络,当多个不同用户以不同的VLAN接入到同一个端口时则无法区分用户,在运营商接入环境中往往需要根据用户的应用和接入地点(设备)来区分用户,基于这种应用产生了灵活的QinQ.对于上行数据,基本的QinQ是对整个端口的数据不做区分,同等对待,全部封装外层标签,灵活QinQ只是
6、对特定的符合条件的数据流封装外层标签处理,匹配更精细,能够根据VLAN区分用户或用户网络,组网更灵活。对于下行数据,两者的处理没有区别。灵活QinQ还可以通过用户报文的其他特征来实现业务区分,打上不同的外层标签,我们现在不支持这种实现。7 VLAN Tag的 TPID值可调功能TPID(Tag Protocol Identifier,标签协议标识)是 VLAN Tag中的一个字段,用于表示 VLAN Tag的协议类型,IEEE 802.1Q协议规定该字段的取值为 0x8100。 IEEE802.1Q协议定义的以太网帧的VLAN Tag结构如 图 3所示。设备可以根据 TPID 值来识别报文中是
7、否携带对应的 VLAN Tag:当端口收到报文时,根据配置的 TPID 值与报文中相应的字段进行比较,如果二者一致,则表示报文中携带相应的 VLAN Tag。 另外, 不同厂商的设备可能将QinQ报文外层VLAN Tag的TPID字段设为不同的值。为了和这些设备兼容,用户可以自行配置该 TPID的值,使得发送到公网中的 QinQ报文携带的 TPID值与其他厂商相同,就可以实现与其他厂商的设备互通。 由于TPID字段在以太网报文中所处位置与不带VLAN Tag的报文中协议类型字段所处位置相同,为避免网络中报文转发和接收造成混乱,不允许用户将TPID值配置为表 1中列举的常用协议类型值。我们现在的
8、系统选用的芯片只支持全局设置TPID的值。不支持基于端口配置TPID。8 灵活QinQ应用8.1 网络拓扑8.2 配置说明选取EETH其中一个端口与GE一个端口,作为业务组成员,GE上实现QINQ功能,UNI口为EETH,NNI口为GE端口,SVLAN=100,匹配10的数据流进行增减标签操作,在配置端口加入vlan时,需要将UNI侧端口以untagged方式加入SVLAN, NNI侧端口以tagged方式加入SVLAN,即此处需要配置VLAN100中EETH为untagged.,GE口为tagged。为什么?8.3 上行数据行为背板到GE的数据,匹配CVLAN的,会加上一个外层SVLAN标签
9、,其他数据透传(行为不受QinQ的影响)EETH入口数据背板数据GE出口数据说明CVLANSVLANCVLANSVLANCVLANSVLANEETH PVID=10untagged无10无10100EETH能够转发VLAN10的数据10无10无10100EETH能够转发VLAN10的数据100无不通不通不通不通EETH不能转发VLAN100的数据100无100无EETH能够转发VLAN100的数据N(!10!100)无不通不通不通不通EETH不能够转发VLAN:N的数据N无不通不通EETH能够转发VLAN:N的数据GE不能转发VLAN:N的数据N无N无EETH能够转发VLAN:N的数据GE能够
10、转发VLAN:N的数据补充说明:GE口必须是TAGGED方式属于VLAN100,EETH必须是UNTAGGED方式属于VLAN100入口数据,如果有多个VLAN标签时,此处的CVLAN值为最外层标签的值,后面的标签看成数据如果EETH的入口PVID不为10时,untagged的数据到背板的数据会带上相应的PVID,后面直接参考上表即可8.4 下行数据行为外层标签为SLVAN的数据会被剥掉该标签到背板,其他数据透传(行为不受QinQ的影响)。GE入口数据背板数据EETH出口数据说明CVLANSVLANCVLANSVLANCVLANSVLANEETH PVID=101010010无10无EETH能
11、够转发VLAN10的数据1010010无untagged无EETH出口配置剥掉VLAN10标签N(!10)100N无不通不通EETH不转发VLAN:N的数据N(!10)100N无N无EETH转发VLAN:N的数据无100无无无无EETH能够转发untagged的数据N或者无M(!100)不通不通不通不通GE不能转发VLAN:M的数据N或者无M(!100)NM(!100)不通不通EETH不转发VLAN:M的数据N或者无M(!100)NM(!100)NM(!100)EETH转发VLAN:M的数据补充说明:GE口必须是TAGGED方式属于VLAN100,EETH必须是UNTAGGED方式属于VLAN100入口数据外层VLAN标签为SVLAN,后面无标签则认为CVLAN为untagged,有作为CVLAN标签,2层标签以外的标签作为数据看待。EETH如果配置为可以剥掉背板过来的数据的VLAN标签,则出口数据为untagged9不同数据包在服务商边界交换机中的处理方式 Tagged包由UNI端口进入时的情况Untagged包由UNI端口进入时的情况SPVLAN tagged包由NNI端口进入的情况Double tagged包由NNI端口进入的情况10 参考文档QinQ测试结果杨军QinQ技术介绍H3CQinQ技术白皮书HWQinQ特性需求说明书.doc
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1