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