论文部分内容阅读
摘要:普通的VLAN中的一个VLAN ID域只有12位,仅能表示4K个VLAN,现在城域网的规模越来越大,用户越来越多,4K个VLAN显得捉襟見肘,所以QinQ技术应运而生。QinQ技术,标准是基于IEEE 802.1ad,具体实现是将用户私网VLAN Tag封装在运营商网络的VLAN Tag里面,这样以太网帧携带了两层VLAN Tag穿越运营商的骨干网。在运营商网络中传输,只根据外层的VLAN Tag传播,用户自带的VLAN Tag被屏蔽,同时VLAN ID数量也达到了4096×4096个。
关键词:VLAN ID;QinQ技术;IEEE 802.1ad
中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2018)21-0073-04
Abstract: VLAN ID in the ordinary VLAN is only 12 bits, which can only represent 4K VLAN. Now the scale of metropolitan area network is bigger and bigger, the users is more and more, the 4K VLAN appears to be overstretched, so QinQ technology arises at the historic moment. The QinQ technology is based on IEEE 802.1ad. The specific implementation is to encapsulate user private network VLAN Tag in the VLAN Tag of public network, so Ethernet frame carries two layers of VLAN Tag across the backbone network of operators. Transmission in the public network, only according to the outer layer of VLAN Tag propagation, the user’s own VLAN Tag is shielded, and the number of VLAN ID also reached 4096 * 4096.
Key words: VLAN ID; QinQ technology;IEEE 802.1ad
1 引言
随着以太网技术在运营商网络的大量使用,之前的802.1Q VLAN对用户进行隔离和标识有很大的限制,因为普通的VLAN ID域是12位的,仅能表示4K个VLAN,这时可以使用QinQ技术,将用户私网VLAN Tag封装在运营商网络的VLAN Tag里面,这样可以大大减少运营商的VLAN的消耗,节约资源。
2 QinQ技术
QinQ技术,也称为VLAN堆叠,是指在原来的VLAN标签外面再加一层或者多层VLAN标签,将用户私网VLAN Tag(CVLAN)封装在运营商网络的VLAN Tag(SVLAN)里面,这样以太网帧携带了两层VLAN Tag穿越运营商的骨干网。在运营商网络中传输,只根据外层的VLAN Tag(SVLAN)传播,从而为用户提供一种比较简单的2层VPN隧道。其实大部分应用场合下只是加上一层外部的运营商网络的VLAN Tag。
如图1,运营商网络边缘接入设备成为PE:Provider Edge,用户网络边缘接入设备成为CE:Customer Edge,连接用户网络的端口称为UNI端口,连接服务器提供商网络的端口被称为NNI端口。
在双标签VLAN中,UNI端口类型是Access类型,需要在UNI端口使能QinQ功能,并且为每一个用户分配一个Provider-ID。当报文从CE1到达PE1时,由于使用了QinQ功能,PE1的UNI端口将为用户加上一层VLAN Tag,其VLAN ID就是分配给该用户的Provider-ID。以后该报文在运营商网络中转发时仅在Provider-ID对应的VLAN中进行,且全程携带两层VLAN Tag,用户网络的VLAN信息对于运营商来说是透明的。当报文到达PE2,从PE2上的客户端转发给CE2之前,外层VLAN Tag被剥离,CE2接收到得报文内容与CE1发送的报文完全一样。PE1和PE2之间的运营商网络对于用户来说,其作用就是提供了一条可靠的二层链路,相当于组建了简单的二层VPN。
IEEE802.1ad标准描述了以太网实现S C的方式,其中S(Service)代表运营商的信息,C(Customer)代表客户信息。双标签有两种实现方式:一种是基于端口的,另一种是灵活的(这里是用基于MAC的)。
双标签的报文,就是在802.1Q报文的外面又封装了一层标签,多了4个字节,这4个字节的含义和802.1Q Tag的含义相同,只是TPID值不一样,802.1ad协议明确规定了用户和运营商报文的TPID值,从而可以简单地区分用户报文和运营商报文,协议规定内层用户报文的TPID的值为0x8100,外层运营商报文的TPID的值为0x88a8。
2.1双标签的解析
VLAN Tag解析的任务就是确定数据帧的Tag类型。VLAN Tag解析的分为入口解析和出口解析。入口解析判断报文带的是什么类型的Tag,出口解析决定出去的报文中的TPID的值要添加或修改成什么值。
2.1.1入口解析
如果入口(ingress)帧有一个Tag,帧的12~13字节一定是TPID,如果有两个Tag,帧的16~17字节也是TPID。如果帧只有12~13字节匹配Outer TPID,那么该帧就是SOT,如果只有12~13字节匹配Inner TPID,那么该帧就是SIT,如果两者都不匹配,就是UT,都匹配就是DT。 2.1.2出口解析
出口解析中用的Outer TPID和Inner TPID来源于寄存器的设置,用户可以配置Outer TPID值(0x88a8),Inner TPID值默认为0x8100。具体是否添加,还得看源端口和目的端口的属性。
3 设计与实现
根据源端口和目的端口的属性,这里数据通路分4种情况
1) UNI ->NNI,即用户网络到运营商网络。
根据源端口和目的端口的组网属性,如果是UNI口入,NNI口出,添加运行商标签。
2) NNI->UNI,运营商网络到用户网络。
根据源端口和目的端口的组网属性,如果是NNI口入,UNI口出,去掉运行营标签。
3) UNI->UNI,即用户网络到即用户网络。
根据源端口和目的端口的组网属性,如果是UNI口入,UNI口出,则帧保持不变。
4) NNI->NNI,运营商网络到运营商网络。
根据源端口和目的端口的组网属性,如果是NNI口入,NNI口出,则帧保持不变。
3.1基于端口的QinQ
基于端口的双标签,就是当源端口接收到用户网络的帧时,添加的Tag域的VID和Pri来源于Port表,每个交换机的端口都对应一张表根据交换机在组网的拓扑结构中的位置,每个端口的属性应该是定义好的,比如:port0连接的是用户网络,则port0的端口属性就是UNI,port1连接的是运营商网络,则port1的端口属性就是NNI。当交换芯片使用了QinQ功能,如果port0收到帧,转发给port1,则在交换芯片上加上S-TAG(运营商的标签)。S-TAG里的VID和PRI的值是根据源端口port0对应的Port表查表得到的。Port表如表1。
3.2基于MAC的QinQ
基于MAC的双标签和基于端口的双标签,行为基本上一致,只是S-TAG的来源不同。它是通过帧的SA查找转发表得到:
4 实现与验证
4.1基于端口的QinQ的验证
配置QinQ模式寄存器选择基于端口的QinQ功能。
4.1.1 UNI ->NNI
用户网络到运营商网络,需要添加运行商标签。
源端口port1连接的是用户网络,接收到的帧是不含运营商标签(S-TAG)的。如图:
转发的目的端口port3连接的是运营商网络,则在原来的SA和0x0800之间添加了4个字节的运营商标签0x88a8_e011,
4.1.2 NNI->UNI
运营商网络到用户网络,去掉运营商标签。
源端port2口连接的是运营商网络,收到的帧是含运营商标签(S-TAG)的即0x88a8_aa00。如图:
转发的目的端口port4连接的是用户网络,帧转发给用户网络时要掉运营商标签,即去掉了0x88a8_aa00,如图:
4.1.3 UNI->UNI
用户网络到用户网络,则帧保持不变。源端口port1连接的是用户网络,如图:
转发的目的端口port4连接的是用户网络,则帧保持不变,如图:
4.1.4 NNI->NNI
运营商网络到运营商网络,则帧保持不变。
源端口port2连接的是运营商网络,收到的帧是含运营商标签(S-TAG)的即0x88a8_aa00。如图:
转发的目的端口port6连接的是运营商网络,则帧保持不变,如图:
4.2基于MAC的QinQ的验证
配置QinQ模式寄存器选择基于MAC的QinQ功能。
4.2.1 UNI ->NNI
用户网络到运营商网络,需要添加运行商标签。
源端口配port1连接的是用户网络,接收到的帧是不含运营商标签(S-TAG)的只包含了一个用户标签(C-TAG)。如图:
转发的目的端口port3连接的是运营商网络,则在原来的SA和用户标签(C-TAG)之间添加了4个字节的运营商标签0x88a8_e011,如图:
4.2.2 NNI->UNI
运营商网络到用户网络,去掉运营商标签。
源端口port2连接的是运营商网络,收到的帧是含运营商标签(S-TAG)和用户标签(C-TAG)的,即0x88a8_aa00和0x8100_aa55。如图:
转发的目的端口port4连接的是用户网络,帧转发给用户网络时要掉运营商标签,即去掉了0x88a8_aa00如图:
4.2.3 UNI->UNI
用户网络到用户网络,则帧保持不变。源端口port1连接的是用户网络,接收到的帧是不含运营商标签(S-TAG)的只包含了一个用户标签(C-TAG即0x8100_aa00)如图:
转发的目的端口port4连接的是用户网络,则帧保持不变,如图:
4.2.4 NNI->NNI
运营商网络到运营商网络,则帧保持不变。
源端口port2连接的是运营商网络,收到的帧是含运营商标签(S-TAG)和用户标签(C-TAG)的,即0x88a8_aa00和0x8100_aa55。如图:
转发的目的端口port6連接的是运营商网络,则帧保持不变,如图:
5 结论
QinQ技术的使用,使得网络的互联变得更加灵活,实现也简单,维护成本也比较低,而且和现有的网络完全兼容。QinQ的双层标签可以是不同的业务,这样可以也实现对运营商和用户提供不同的隧道和QoS服务。
参考文献:
[1] 王达.华为交换机学习指南[M].北京:人民邮电出版社,2013.
[2] 薛文莲.基于双层标签的VLAN交换技术的研究[D].北京:北京邮电大学,2013.
[3] IEEE,Std802.1ad,2006Edition,IEEE Standards for Local and Metropolitan Area.
【通联编辑:代影】
关键词:VLAN ID;QinQ技术;IEEE 802.1ad
中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2018)21-0073-04
Abstract: VLAN ID in the ordinary VLAN is only 12 bits, which can only represent 4K VLAN. Now the scale of metropolitan area network is bigger and bigger, the users is more and more, the 4K VLAN appears to be overstretched, so QinQ technology arises at the historic moment. The QinQ technology is based on IEEE 802.1ad. The specific implementation is to encapsulate user private network VLAN Tag in the VLAN Tag of public network, so Ethernet frame carries two layers of VLAN Tag across the backbone network of operators. Transmission in the public network, only according to the outer layer of VLAN Tag propagation, the user’s own VLAN Tag is shielded, and the number of VLAN ID also reached 4096 * 4096.
Key words: VLAN ID; QinQ technology;IEEE 802.1ad
1 引言
随着以太网技术在运营商网络的大量使用,之前的802.1Q VLAN对用户进行隔离和标识有很大的限制,因为普通的VLAN ID域是12位的,仅能表示4K个VLAN,这时可以使用QinQ技术,将用户私网VLAN Tag封装在运营商网络的VLAN Tag里面,这样可以大大减少运营商的VLAN的消耗,节约资源。
2 QinQ技术
QinQ技术,也称为VLAN堆叠,是指在原来的VLAN标签外面再加一层或者多层VLAN标签,将用户私网VLAN Tag(CVLAN)封装在运营商网络的VLAN Tag(SVLAN)里面,这样以太网帧携带了两层VLAN Tag穿越运营商的骨干网。在运营商网络中传输,只根据外层的VLAN Tag(SVLAN)传播,从而为用户提供一种比较简单的2层VPN隧道。其实大部分应用场合下只是加上一层外部的运营商网络的VLAN Tag。
如图1,运营商网络边缘接入设备成为PE:Provider Edge,用户网络边缘接入设备成为CE:Customer Edge,连接用户网络的端口称为UNI端口,连接服务器提供商网络的端口被称为NNI端口。
在双标签VLAN中,UNI端口类型是Access类型,需要在UNI端口使能QinQ功能,并且为每一个用户分配一个Provider-ID。当报文从CE1到达PE1时,由于使用了QinQ功能,PE1的UNI端口将为用户加上一层VLAN Tag,其VLAN ID就是分配给该用户的Provider-ID。以后该报文在运营商网络中转发时仅在Provider-ID对应的VLAN中进行,且全程携带两层VLAN Tag,用户网络的VLAN信息对于运营商来说是透明的。当报文到达PE2,从PE2上的客户端转发给CE2之前,外层VLAN Tag被剥离,CE2接收到得报文内容与CE1发送的报文完全一样。PE1和PE2之间的运营商网络对于用户来说,其作用就是提供了一条可靠的二层链路,相当于组建了简单的二层VPN。
IEEE802.1ad标准描述了以太网实现S C的方式,其中S(Service)代表运营商的信息,C(Customer)代表客户信息。双标签有两种实现方式:一种是基于端口的,另一种是灵活的(这里是用基于MAC的)。
双标签的报文,就是在802.1Q报文的外面又封装了一层标签,多了4个字节,这4个字节的含义和802.1Q Tag的含义相同,只是TPID值不一样,802.1ad协议明确规定了用户和运营商报文的TPID值,从而可以简单地区分用户报文和运营商报文,协议规定内层用户报文的TPID的值为0x8100,外层运营商报文的TPID的值为0x88a8。
2.1双标签的解析
VLAN Tag解析的任务就是确定数据帧的Tag类型。VLAN Tag解析的分为入口解析和出口解析。入口解析判断报文带的是什么类型的Tag,出口解析决定出去的报文中的TPID的值要添加或修改成什么值。
2.1.1入口解析
如果入口(ingress)帧有一个Tag,帧的12~13字节一定是TPID,如果有两个Tag,帧的16~17字节也是TPID。如果帧只有12~13字节匹配Outer TPID,那么该帧就是SOT,如果只有12~13字节匹配Inner TPID,那么该帧就是SIT,如果两者都不匹配,就是UT,都匹配就是DT。 2.1.2出口解析
出口解析中用的Outer TPID和Inner TPID来源于寄存器的设置,用户可以配置Outer TPID值(0x88a8),Inner TPID值默认为0x8100。具体是否添加,还得看源端口和目的端口的属性。
3 设计与实现
根据源端口和目的端口的属性,这里数据通路分4种情况
1) UNI ->NNI,即用户网络到运营商网络。
根据源端口和目的端口的组网属性,如果是UNI口入,NNI口出,添加运行商标签。
2) NNI->UNI,运营商网络到用户网络。
根据源端口和目的端口的组网属性,如果是NNI口入,UNI口出,去掉运行营标签。
3) UNI->UNI,即用户网络到即用户网络。
根据源端口和目的端口的组网属性,如果是UNI口入,UNI口出,则帧保持不变。
4) NNI->NNI,运营商网络到运营商网络。
根据源端口和目的端口的组网属性,如果是NNI口入,NNI口出,则帧保持不变。
3.1基于端口的QinQ
基于端口的双标签,就是当源端口接收到用户网络的帧时,添加的Tag域的VID和Pri来源于Port表,每个交换机的端口都对应一张表根据交换机在组网的拓扑结构中的位置,每个端口的属性应该是定义好的,比如:port0连接的是用户网络,则port0的端口属性就是UNI,port1连接的是运营商网络,则port1的端口属性就是NNI。当交换芯片使用了QinQ功能,如果port0收到帧,转发给port1,则在交换芯片上加上S-TAG(运营商的标签)。S-TAG里的VID和PRI的值是根据源端口port0对应的Port表查表得到的。Port表如表1。
3.2基于MAC的QinQ
基于MAC的双标签和基于端口的双标签,行为基本上一致,只是S-TAG的来源不同。它是通过帧的SA查找转发表得到:
4 实现与验证
4.1基于端口的QinQ的验证
配置QinQ模式寄存器选择基于端口的QinQ功能。
4.1.1 UNI ->NNI
用户网络到运营商网络,需要添加运行商标签。
源端口port1连接的是用户网络,接收到的帧是不含运营商标签(S-TAG)的。如图:
转发的目的端口port3连接的是运营商网络,则在原来的SA和0x0800之间添加了4个字节的运营商标签0x88a8_e011,
4.1.2 NNI->UNI
运营商网络到用户网络,去掉运营商标签。
源端port2口连接的是运营商网络,收到的帧是含运营商标签(S-TAG)的即0x88a8_aa00。如图:
转发的目的端口port4连接的是用户网络,帧转发给用户网络时要掉运营商标签,即去掉了0x88a8_aa00,如图:
4.1.3 UNI->UNI
用户网络到用户网络,则帧保持不变。源端口port1连接的是用户网络,如图:
转发的目的端口port4连接的是用户网络,则帧保持不变,如图:
4.1.4 NNI->NNI
运营商网络到运营商网络,则帧保持不变。
源端口port2连接的是运营商网络,收到的帧是含运营商标签(S-TAG)的即0x88a8_aa00。如图:
转发的目的端口port6连接的是运营商网络,则帧保持不变,如图:
4.2基于MAC的QinQ的验证
配置QinQ模式寄存器选择基于MAC的QinQ功能。
4.2.1 UNI ->NNI
用户网络到运营商网络,需要添加运行商标签。
源端口配port1连接的是用户网络,接收到的帧是不含运营商标签(S-TAG)的只包含了一个用户标签(C-TAG)。如图:
转发的目的端口port3连接的是运营商网络,则在原来的SA和用户标签(C-TAG)之间添加了4个字节的运营商标签0x88a8_e011,如图:
4.2.2 NNI->UNI
运营商网络到用户网络,去掉运营商标签。
源端口port2连接的是运营商网络,收到的帧是含运营商标签(S-TAG)和用户标签(C-TAG)的,即0x88a8_aa00和0x8100_aa55。如图:
转发的目的端口port4连接的是用户网络,帧转发给用户网络时要掉运营商标签,即去掉了0x88a8_aa00如图:
4.2.3 UNI->UNI
用户网络到用户网络,则帧保持不变。源端口port1连接的是用户网络,接收到的帧是不含运营商标签(S-TAG)的只包含了一个用户标签(C-TAG即0x8100_aa00)如图:
转发的目的端口port4连接的是用户网络,则帧保持不变,如图:
4.2.4 NNI->NNI
运营商网络到运营商网络,则帧保持不变。
源端口port2连接的是运营商网络,收到的帧是含运营商标签(S-TAG)和用户标签(C-TAG)的,即0x88a8_aa00和0x8100_aa55。如图:
转发的目的端口port6連接的是运营商网络,则帧保持不变,如图:
5 结论
QinQ技术的使用,使得网络的互联变得更加灵活,实现也简单,维护成本也比较低,而且和现有的网络完全兼容。QinQ的双层标签可以是不同的业务,这样可以也实现对运营商和用户提供不同的隧道和QoS服务。
参考文献:
[1] 王达.华为交换机学习指南[M].北京:人民邮电出版社,2013.
[2] 薛文莲.基于双层标签的VLAN交换技术的研究[D].北京:北京邮电大学,2013.
[3] IEEE,Std802.1ad,2006Edition,IEEE Standards for Local and Metropolitan Area.
【通联编辑:代影】