QinQ在MSAP中的设计与实现

2012-06-25 07:03肖萍萍
电视技术 2012年9期
关键词:内层外层以太网

徐 蓓,肖萍萍

(武汉邮电科学研究院,湖北 武汉 430074)

随着NGN/3G的大规模部署,运营商开始希望能够在数据接入网上承载更加多样化的业务,来降低运营成本。但是随着用户数量的大规模增加和业务类型的多样化,传统的VLAN技术由于受VLAN数量的影响,已经不能满足业务发展的需求,为了满足在传统的接入网上承载具有不同QoS需求的业务,实现数据接入网具有有效的业务识别和业务隔离,QinQ技术应运而生,该技术对VLAN(Virtual Local Area Network)数量进行了有效扩展,可以支持4096×4096的规模,进而有效解决现阶段VLAN技术中遇到的瓶颈[1]。

1 MSAP的介绍

MSAP(多业务接入平台)是定位于城域网边缘接入层,基于成熟的SDH技术,融合其他各种接入技术的综合平台,汲取了SDH传输平台中组网灵活、维护方便、保护可靠等优点,通过EOS(Ethernet Over SDH)将成熟的SDH技术渗透到以太网应用中,从而实现以太网业务安全可靠的传送并有效保证运营商接入层网络具备较强的可持续发展能力和IP业务支撑能力。MSAP可以通过点对点透传、L2汇聚+透传和以太共享环这3种方式处理以太网业务,其中汇聚加透传是指MSAP可以在系统内部提供2层交换功能,即在用户的业务接口与传输网链路之间,提供基于以太网数据链路层的交换,并可以通过对各个用户接口划分VLAN的方式实现业务隔离,再将不同类型业务汇聚后的数据流通过点到点透传至MSTP网的终结点,从而实现数据业务的转发。

2 QinQ原理

2.1 帧结构

VLAN(虚拟局域网)可以根据用户不同需求将局域网设备从逻辑上划分为一个个功能相对独立的网段,而与设备的物理位置无关[2]。VLAN的规范由IEEE 802.1Q(后简称802.1Q)协议规定,它在普通的以太网帧格式(如图1所示)的基础上增加了4 byte用来表示IEEE 802.1Q的标签,如图2所示,802.1Q标签中的前2 byte表示标签协议标识(Tag Protocol Identifier,TPID),由于帧长度和类型小于0x8100,所以当MAC目的地址后面的字节是8100就能表明此数据包并非普通的以太网数据帧,而是带802.1Q标签的数据帧。后2 byte表示标签控制信息(Tag Control Information TCI),其中priorityzhe3位表示帧的优先级,一共有23种优先级,用户可以针对不同业务的重要性设置不同的优先级别[3]。VLAN Identified(vlanid)是一个12位域,一共212个[4]。QinQ的数据帧有固定的格式,在802.1Q的标签之上再打一层标签,QinQ的数据帧比802.1Q的标签帧多4 byte,如图3所示。在双层VLAN标签的以太网帧中,内层VLAN标签的TPID根据不同厂家,有不同的取值。

2.2 按端口划分VLAN

802.1 Q协议定义了基于端口的VLAN模型,根据对数据包标签的不同处理将端口的链路类型分为3种,即Access,Trunk 和 Hybrid[7]。

Access类型的端口只能属于1个VLAN,一般定义它的pvid值就是该端口的vlanid,当该端口接收到不带VLAN标示的数据包后,则在该数据包打上pvid的标签,当端口转发数据包时,剥离标签,因此从Access端口出去的数据包都是不带外层标签的,由于计算机端口不能识别标签,所以一般用于连接计算机的端口。

Trunk类型的端口可以属于多个VLAN,其默认的pvid为1,其pvid也可设置为端口所在VLAN的vlanid。当接收不带VLAN的数据包时,将数据包打上默认pvid标签,在Trunk端口发送数据包时,不剥离标签,直接进行转发;当接收到带VLAN的数据包时,会识别数据包中带的VLAN是否跟该端口所标示的VLAN一致,如果是一致的则进行数据转发,如果不一致将丢弃该数据包。由于从Trunk端口出去的数据包都是带标签的,一般用于交换机之间的连接端口。

Hybrid类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的数据包,其默认的pvid为1,当接收不带标签的数据包时,将数据包打上默认pvid标签,其与Trunk端口的区别在于,当Hybrid端口发送数据包时,可以通过不同的设置选择是否解标签,所以Hybrid端口既可以接计算机也可以接交换机。

3 QinQ在MASP中的实现方案

3.1 设计方案

在MSAP中业务卡由于本身局限性无法实现QinQ技术的情况下,通过对汇聚卡实现QinQ,将业务卡向汇聚卡汇聚,在汇聚卡的千兆网口实现双层标签的输出。由于业务卡无法识别双层标签数据包,所以必须保证双标签经过汇聚卡后,解掉外层标签。

本文主要是基于Marvell6095来驱动和实现灵活的QinQ。QinQ技术的封装大致分为两类,一类是基于端口的QinQ,通过对交换芯片端口的设置,完成不同的端口选择加标或者去标;另一类是基于数据流的QinQ,顾名思义就是不局限于端口的设置,而是根据不同业务的数据包进行不同的设置[8]。本文是业务卡通过端口向GE卡汇聚实现QinQ,因此采用的是基于端口的QinQ。

业务卡通过机框的背板总线向汇聚卡作向上汇聚(如图4所示),不同槽号业务卡的MII口汇聚到Marvell6095不同的百兆口,最后汇聚业务通过Marvell6095的千兆口输出。业务卡通过交叉连接盘配置业务、接SDH设备,再经过E1协转和光纤收发器将2M业务接到用户端,用户端接电脑时业务端口模式用Access,接交换机时端口模式用Trunk。具体实现步骤如图5所示。

1)针对汇聚卡的两个千兆口设置QinQ使能。由于汇聚卡的千兆口是与MSTP设备对接,针对不同的需求,用户可能需要两个千兆口对应不同的业务,一个是双层标签,一个是单层标签。

2)设置端口保护,千兆口业务量大,一旦链路发生问题,后果较严重,用户可以根据需要设置端口保护,一旦设置保护后,当一个端口的业务出现问题,另外一个端口仍然可以正常工作,设置端口保护后,两个千兆口的VLAN设置和QinQ设置自动保持一致。

3)业务盘的MII上联口加入内层标签,汇聚盘的百兆口和千兆口既要加入内层标签又要加入外层标签,且百兆口和千兆口加入外层标签时的模式不同,以保证从千兆口输出的数据包是双层标签,从百兆口出去的数据包是单层标签。

3.2 伪代码

调用Marvell6095提供的API函数根据用户设置外层标签还是外层标签,对端口做不同设置。

调用Marvell6095芯片的API函数设置内层标签:

调用Marvell6095的API函数设置外层标签:

4 以太网测试仪抓包验证

以太网测试仪抓包验证截图如图6~图11所示。

5 小结

QinQ技术的出现,不仅解决了传统802.1Q VLAN数量紧缺的问题,而且大大减少VLAN规划复杂性和标签的占用,通过对内层标签和外层标签的设置,对业务进行区分并分流,最终保证不同业务的QoS[4]。本实现方案已成功运用在作者所属单位的MSAP_622设备中。

本文的创新点:1)在设备本身不具备QinQ功能的情况下,通过创新设计实现QinQ;2)在实现QinQ的基础上,通过提供QinQ使能和端口保护,保证满足不同用户的多样需求。

[1]胡逾峰.QinQ技术的原理及在上海电信的应用[J].计算机与信息技术,2007(3):27-28.

[2]王军,林其伟.基于以太网的宽带接入技术[J].电视技术,2003,27(5):23-25.

[3]边永涛.灵活QinQ技术在校园网中的设计与实现[J].微计算机信息,2010(4):125-126.

[4]董喜明.QinQ技术在城域以太网组网中的应用[J].计算机工程与科学,2005(6):18-20.

[5]IEEE802.1Q,Local and metropolitan area network virtual bridged local area network[S].1998.

[6]IEEE802.1Q,Local and metropolitan area network virtual bridged local area network[S].2006.

[7]边永涛,左明.QinQ模式下标签透传的设计与实现[J].计算机工程与设计,2010(19):4158-4160.

[8]刘琪.基于Marvell芯片的全灵活QinQ的驱动及研究[J].计算机与现代化,2011(3):92-94.

猜你喜欢
内层外层以太网
一种溶液探测传感器
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
悬浮花盆
复合函数求单调区间的数形结合方法
谈实时以太网EtherCAT技术在变电站自动化中的应用
真实写作:作为核心素养的学科价值
一种购物袋
一种90W高功率以太网供电系统的设计
专题Ⅱ 物质构成的奥秘
浅谈EPON与工业以太网在贵遵高速公路中的应用