基于流分类的以太网数据帧vlan双层标签处理装置和方法

文档序号:7708543阅读:471来源:国知局

专利名称::基于流分类的以太网数据帧vlan双层标签处理装置和方法
技术领域
:本发明涉及数据通讯领域,主要是涉及到端到端以太网数据帧双层VLAN(VirtualLocalAreaNetwork,虚拟局域网)标签基于不同协议字IS:的灵活处理装置和方法。
背景技术
:随着以太网技术在运营商网络中的大量部署,利用传统的802.1QVLAN标签对用户进行隔离和标识受到很大限制,因为传统意义上的802.1QVLAN标签域只有12个比特,仅能表示4K个VLAN,对于城域以太网中需要标识的大量用户无法满足需求,于是双层标签技术应运而生。双层标签是在原有的802.1QVLAN标签报文的基础上又增加一层VLAN标签,使VLAN数量增加到4Kx4K,如图1所示。将用户私网VLAN标签封装在公网VLAN标签中,使报文带着两层VLAN标签穿越运营商的骨干网络,在公网中只根据外层VLAN标签传播,私网VLAN标签被屏蔽,这样,不仅对数据流进行了区分,而且由于私网VLAN标签净皮透明传送,不同的用户VLAN标签可以重复使用,只需要外层VLAN标签的在公网上唯一即可,实际上也扩大了可利用的VLAN标签数量。随着城域以太网的发展以及运营商精细化运作的要求,双层标签又有了进一步的发展,它的内外层标签可以代表不同的信息,如内层标签代表用户,外层标签代表业务。双层VLAN标签报文带着双层标签穿越运营商网络,内层标签透明传送,也是一种简单、实用的VPN技术,因此它又可以作为核心网络分组数据在城域以太网网络中的延伸,最终形成端到端的VPN技术。封装外层VLAN标签有两种方法,一种是标准双层标签封装,即基于端口打外层标签的,该端口下所有的用户数据统一封装一个共同的VLAN标签,在实际应用中局限性太大,另外一种是灵活双层标签封装方法,既可以根据一些特性对用户数据进行流分类,然后不同的类别封装不同的外层VLAN标签。传统双层标签技术简单的说就是基于端口打外层VLAN标签,这种技术在汇聚交换机上采用是不合适的,因为传统双层标签技术不支持对VLAN进行业务分类,传统双层标签技术基于端口会对所有上行来报文都打上相同外层VLAN标签,对于多种业务不能按VLAN进行区分,送到不同的上行端口,也就不支持按VLAN业务实施QoS。
发明内容本发明的目的在于,解决现有双层标签技术基于端口对所有上行报文都打上相同外层VLAN标签,对于多种业务不能按VLAN进行区分的技术问题。为达到上述目的,本发明提供一种基于流分类的以太网数据帧VLAN双层标签处理装置,包括一VLAN双层标签处理控制器和多个端口,其中,所述VLAN双层标签处理控制器包括一报文类型判断模块、一掩码模块、一规则匹配模块、一标签处理模块和一全局控制寄存模块;所述掩码模块内存储一过滤掩码表;所述规则匹配模块内存储一规则表,提供标签字段的操作规则;所述全局控制寄存模块设有一端口全局TPID寄存模块,所述端口全局TPID寄存模块存储本地端口全局TPID;数据报文通过所述端口进入所述VLAN双层标签处理控制器,所述报文类型判断模块接收数据包,根据所述本地端口全局TPID的值判断数据包标签类型,对数据包分类,将分类的数据包送入所述掩码模块;所述掩码模块根据所述规则表的敏感字节的位置提取信息,与所述掩码表的表项做掩码操作,将结果送入所述规则匹配模块;所述规则匹配模块查询所述规则表的表项,结合数据包的类型和规则的优先级选择最终的匹配结果,获得标签处理规则;所述标签处理模块根据标签处理规则进行标签操作。本发明提供一种基于流分类的以太网数据帧VLAN双层标签处理方法,包括以下步骤,步骤a,数据报文从所述端口进入所述VLAN双层标签处理控制器;步骤b,所述报文类型判断模块对数据报文进行报文标签类型判断,所述掩码模块和规则匹配模块进行数据包协议字段规则匹配,将数据报文进行流分类;步骤c,所述标签处理模块完成对规则匹配后的数据报文流进行标签操作。本发明的有益效果在于,本发明是基于不同协议字段的流分类标签处理技术,在接收端口对数据报文根据需要使用VLAN双层标签处理控制器的规则表进行流分类;灵活地根据流分类的结果选择是否打外层(运营商)VLAN标签、打上何种外层(运营商)VLAN标签;区别报文类别的方式可以根据用户VLAN标签、MAC地址、IP协议、IP源地址、IP目的地址、优先级、或应用程序的端口号等协议字段信息实施灵活双层标签分类操作,再将匹配上的不同流分类进行各自独立的操作。本发明主要思想是对于报文先进行流分类,然后根据不同的用户需要给不同的流实施内外层VLAN标签操作,可以添加内外层VLAN标签,也可以修改内外VLAN标签;然后还可以在上行端口进行选择性的剥去内外层VLAN标签,这种操作可以发生在不同的端口上,更增加了双层标签技术的灵活性。图1为双层VLAN的MAC帧格式;图2为双层标签处理控制器模块图3为基于流分类的以太网数据帧VLAN双层标签处理方法步骤图4为对数据报文进行标签类型判断的步骤;图5为进行数据报文协议字段规则匹配的流程图6为标签处理模块实现标签操作的流程图。附图标记说明IO-VLAN双层标签处理控制器;ll-报文类型判断模块;12-掩码模块;13-规则匹配模块;14-全局控制寄存模块;15-标签处理模块;16-端口全局TPID寄存模块;17-VLAN过滤模块;2-上行端口;3-下行端口。具体实施例方式本发明实现了一种可以根据数据帧中不同协议字段区分数据流,并依据不同流分类规则对相应的数据包做不同内外层VLAN标签处理的装置和方法。为了叙述方便,本发明对内外层VLAN标签作如下规定将最靠近MAC地址头的VLAN标签称为外层标签,远离MAC地址头的VLAN标签称为内层标签。以下的实施例中,内层标签又称为用户标签(CTAG),外层标签又称为运营商标签(STAG)。如图2所示,所述标签处理装置包括VLAN双层标签处理控制器IO和多个端口,所述端口为上行端口2或者下4亍端口3。VLAN双层标签处理控制器10由报文类型判断模块11、掩码模块12、规则匹配模块13、全局控制寄存模块14、标签处理一莫块15和VLAN过滤才莫块17组成。其中,报文类型判断模块ll对接收到的数据包进行标签类型判断;掩码模块12中存储有过滤掩码(QQTag—ProMask)表,包括二层掩码表(表1)和三层掩码表(表3),用每条过滤掩码掩码包中一定的域;规则匹配模块13中存储有规则(QQTag—ProRule)表(表5),用于判断掩码得到的数据包是否匹配相应的过滤规则,从中获取标签字段的操作规则,对CPRI、CVID、SPRI、SVID标签字段做变换、去掉和添加等操作。运营商可以对规则表项(表6)、规则表项中的二层过滤项(表7)和三层过滤项(表9)进行设定,以规定不同标签字段的操作规则。全局控制寄存模块14存储有全局规则控制表(表ll),全局规则控制表项的内容在表12中说明。全局规则控制表可设置为"使能"和"不使能"两种状态。当全局控制寄存模块14不使能时,则对数据报文做透传处理。当全局控制模块使能,则从全局规则控制表项(表12)中获取标签字段的操作规则。全局控制寄存模块14还包括端口全局TPID(G-TPID)寄存模块16,端口全局TPID(G-TPID)寄存模块16中存储的是本地端口全局TPID,运营商可以设定本地端口全局TPID的数值,在本实施例中,运营商可将本地端口全局TPID设置为0X8100或0X9100。标签处理模块15实现的标签操作种类主要有以下几种1.透传数据包,对标签不进行任何操作;2.根据流分类增加内层(用户)、外层(运营商)标签ID;3.根据流分类修改内层(用户)、外层(运营商)ID;4.根据流分类修改数据包PRI协议字段;5.根据流分类剥离内层(用户)、外层(运营商)标签。VLAN双层标签处理控制器IO与上行端口2或者下行端口3连接。数据包经过上行端口2或下行端口3进入VLAN双层标签处理控制器10。上行端口2与VLAN过滤模块17连接。VLAN过滤模块17对从上行端口2进入的数据报文进行VLAN过滤,防止用户私接,实现用户业务精绑定和准确定位;由报文类型判断模块11接收数据包,根据本地端口全局TPID的值判断数据包标签类型,分为双标签(包含运营商标签STAG,用户标签CTAG)、运营商标签(只包含STAG)、用户标签(只包含CTAG)、无标签(不含TAG)以及错包五种。并将分类的数据包送入掩码模块12。掩码模块12根据数据包标签类型提取规则(QQTag—ProRule)表(表5)规定的敏感字节的位置并提取信息。将提取出来的信息与过滤掩码(QQTag_ProMask)表(表1和表3)的掩码项做掩码操作,得到四组结果。将掩码结果送入规则匹配模块13。规则匹配模块13查询规则表项(表6),并结合数据包的类型和规则的优先级选择最终的匹配结果,获得标签处理规则。如果匹配规则不存在且缺省全局控制寄存模块14使能,则从全局控制寄存模块14的全局规则控制表项(表12)获取标签处理规则。标签处理模块15根据获取的标签处理规则,进行标签操作,如添加、剥离、变换和不做任何操作。将完成标签操作的数据包发送到上行端口2或者下行端口3输出。首先,运营商设定端口全局TPID(G-TPID)寄存模块16中存储的本地端口全局TPID的数值,可设置为0X8100或0X9100。并设置规则匹配才莫块13中存储的规则表项(表6)、规则表项中的二层过滤项(表7)和三层过滤项(表9)的内容,设置全局控制寄存模块14存储的全局规则控制表项(表12)的内容。如图3所示,所述标签处理方法包括以下步骤步骤1,数据报文从端口进入VLAN双层标签处理控制器10,VLAN过滤模块17对从上行端口2进入的数据报文进行VLAN过滤,防止用户私接,实现用户业务精绑定和准确定位;步骤2,所述报文类型判断模块11对数据报文进行标签类型判断,所述掩码模块12和规则匹配模块13进行数据包协议字段规则匹配,来对其进行以下的包分类匹配,将数据包进行流分类1.才艮据端口的运营商VLAN,用户VLAN区间分流;2.根据数据报文的协议号分流;3.根据报文的目标或源IP地址分流;4.根据内层VLAN标签的区间分流;步骤3,所述标签处理模块15对于完成规则表匹配后的流进行以下的标签操作1.添加外层(运营商)VLAN标签,将内层(用户)VLAN封装在外层(运营商)VLAN中,根据外层(运营商)VLAN进行业务分类上行;2.修改VLAN标签,不论是单层标签或者是双层标签报文,一旦匹配可以将内层(用户)或者外层(运营商)标签修改成用户需要的任意VLAN标签;3.支持各种QoS变化包括根据内层(用户)VLAN标签设置外层标签COS值;根据内层(用户)标签COS向外层(运营商)标签COS映射、向DSCP映射、向本地优先级映射,根据内层(用户)、外层(运营商)标签实现不同QoS等;4.支持报文透传功能。如图4所示,上述步骤2中,报文类型判断模块11对数据报文进行标签类型判断的步骤为,根据本地端口全局TPID的值和数据流的上下行方向,判断数据报文为有效数据包和错包,有效数据包为双标签、单层运营商标签、单层用户标签和无标签。具体步骤如下步骤201,对当前数据包按照字节偏移量提取双标签位置的字节信息,将外层标签位置的字节信息与本地端口全局TPID的值比较,如果内容一致执行步骤202,如果不一致执行步骤206。步骤202,判断本地端口全局TPID的值是否为0X8100,如果是则执行步骤203,如果不是,则执行步骤205。步骤203,判断内层标签位置的字节信息是否是0X8100,如果是表示当前数据包为双层标签数据包,然后执行步骤209,如果不是则执行步骤204。步骤204,判断当前端口是上行端口还是下行端口,如果是上行端口表示当前数据包为单层用户标签数据包,如果是下行端口表示当前数据包为单层运营商标签数据包,然后执行步骤209。步骤205,判断内层标签位置的字节信息是否是0X8100,如果是表示当前数据包为双层标签数据包,如果不是表示当前数据包为单层运营商标签数据包,然后执行步骤209。步骤206,判断外层标签位置的字节信息内容是否为0X8100,如果是则执行步骤207,如果不是,则执行步骤208。步骤207,判断内层标签位置的字节信息是否是0X8100,如果是,表示当前数据包为错误数据包,如果不是,表示当前数据包为单层用户标签数据包,然后执行步骤209。步骤208,判断内层标签位置的字节信息是否是0X8100,如果是,表示当前数据包为错误数据包,如果不是,表示当前数据包为无标签数据包,然后执行步骤209。通过以上处理流程,数据包类型可以分为双标签(包含运营商标签STAG,用户标签CTAG)、单层运营商标签(只包含STAG)、单层用户标签(只包含CTAG)、无标签(不含TAG)以及错包五种,其中错包将不进行查规则表操作,并采用全局控制寄存模块14的默认操作。其它的数据包类型均需要进行查规则表项(表6)操作或直接采用全局控制寄存模块14中存储的全局规则控制表项(表12)的默认操作。如图5所示,上述步骤2中,进行数据包协议字段规则匹配的步骤为标签处理模块15从规则表或全局控制寄存模块14存储的全局规则控制表获取规则,进行标签操作,具体步骤如下步骤209,所述掩码模块12根据数据包标签类型,确定提取规则匹配模块中存储的规则表(表5)规定的敏感字节的位置,并提取信息;步骤210,所述掩码模块12将提取出来的信息与掩码模块中存储的过滤掩码(QQTag—ProMask)表的掩码项#支掩码操作得到掩码结果;VLAN双层标签处理控制器掩码表为通过L2/L3一FLAG—Mask位来标识本掩码表是二层掩码表(表1),还是三层掩码表(表3)。表l二层包掩码表<table>tableseeoriginaldocumentpage10</column></row><table>二层掩码项il明如下表2二掩码表项说明<table>tableseeoriginaldocumentpage11</column></row><table>表3三层掩码表<table>tableseeoriginaldocumentpage11</column></row><table>三层掩码表项说明如下:表4三层掩码表项说明<table>tableseeoriginaldocumentpage11</column></row><table>表1和表3可以为端口提供4组不同的掩码规则,可以对4类不同的流,即报文类型判断模块11对数据报文进行标签类型判断得到的双标签(包含运营商标签STAG,用户标签CTAG)、运营商标签(只包含STAG)、用户标签(只包含CTAG)、无标签(不含TAG)4种类型的数据流进行区分,精确匹配。步骤211,所述规则匹配模块13将掩码操作的结果结合数据报文类型进行规则查找,查询VLAN双层标签处理控制器规则表(表5)的规则表项(表6),进行优先级比较,得到最终的规则查找结果。表5规则表<table>tableseeoriginaldocumentpage12</column></row><table>本表有1K条目,表项说明如下:表6纟见则表项<table>tableseeoriginaldocumentpage12</column></row><table><table>tableseeoriginaldocumentpage13</column></row><table>其中FILTER条目会根据L2/L3_FLAG位的值来标识本过滤项是二层过滤项还是三层过滤项。<table>tableseeoriginaldocumentpage13</column></row><table>1:L30:L2DES—MAC[47:0]目的MAC地址ETYPE[15:0]以太网协议类型CPRI[3:0]CustomerPRISPRI[3:0JServicePRICVLANJUP[11:0]CustomerVLANID上限CVLAN—DN[11:0]CustomerVLANID下限14三层过滤项表9三层过滤项<table>tableseeoriginaldocumentpage15</column></row><table>步骤212,所述规则匹配模块13判断匹配规则是否存在,如果匹配规则存在,则执行步骤213;如果匹配规则不存在,则执行步骤215;步骤213,所述规则匹配模块13判断本匹配规则是否有效,如果无效则执行步骤214;如果有效则执行步骤3;步骤214,不做任何操作,所述VLAN双层标签处理控制器10做透传处理;步骤215,判断全局控制寄存模块14是否使能,如果不使能,则执行步骤216;如果使能,根据全局控制寄存模块14内存储的全局规则控制表项(表12)获得规则,执行步骤3;步骤216,全局控制寄存模块14不做任何操作,设备进行透传处理。<table>tableseeoriginaldocumentpage16</column></row><table><table>tableseeoriginaldocumentpage17</column></row><table>如图6所示,上述步骤3中,标签处理模块15实现标签操作的步骤为,步骤301,所述标签处理模块15从规则表或全局控制寄存模块获取规则;步骤302,所述标签处理模块15检查接收当前数据包的端口PORTBITMAP(端口位图)位是否打开,如果打开,则执行步骤304,如果没有打开,则执行步骤303;步骤303,所述标签处理模块15对数据包不做任何操作直接透传;步骤304,所述标签处理模块15检测TPID_EN(TPID使能)位是否有效,如果有效,则执行步骤305,否则,执行步骤306;_表13G-TPID全局寄存器_<table>tableseeoriginaldocumentpage17</column></row><table>步骤305,从G-TPID全局寄存器16中提取本地端口全局TPID值(表13所示)替换当前数据包的TPID值;步骤306,保留现有的TPID值;步骤307,所迷标签处理模块15根据规则表中匹配规则项CPRI(用户PRI协议字段),CVID(用户CVID协议字段),SPRI(运营商PRI协议字段),SVID(运营商VID协议字段)的设置对CPRI、CVID、SPRI、SVID标签字段做相应的添加、剥离、变换操作;ACTION[1:0]为00不做任何操作;ACTION[1:0]为01变换操作;ACTION[1:0]为IO剥离操作;ACTION[1:0]为11添加操作。通过以上实施方式的描述,本领域技术人员可以清楚地了解到,本发明是基于不同协议字段的流分类标签处理技术,在接收端口对数据报文根据需要使用VLAN双层标签处理控制器的规则表进行流分类;灵活地根据流分类的结果选择是否打外层(运营商)VLAN标签、打上何种外层(运营商)VLAN标签;区别才艮文类别的方式可以才艮据用户VLAN标签、MAC地址、IP协i义、IP源地址、IP目的地址、优先级、或应用程序的端口号等协议字段信息实施灵活双层标签分类操作,再将匹配上的不同流分类进行各自独立的操作。主要思想是对于报文先进行流分类,然后根据不同的用户需要给不同的流实施内外层VLAN标签操作,可以添加内外层VLAN标签,也可以修改内外VLAN标签;然后还可以在上行端口进行选择性的剥去内外层VLAN标签,这种操作可以发生在不同的端口上,更增加了双层标签技术的灵活性。在本发明双层标签处理方法对数据报文进行标签类型判断的步骤中,对外层VLAN标签为0X8100和0X9100数据报文都可进行处理,因此本装置可与不同厂家的设备进行对接。以上对本发明的描述是说明性的,而非限制性的,本专业技术人员理解,在权利要求限定的精神与范围之内可对其进行许多修改、变化或等效,但是它们都将落入本发明的保护范围内。权利要求1.一种基于流分类的以太网数据帧VLAN双层标签处理装置,其特征在于,所述标签处理装置包括一VLAN双层标签处理控制器和多个端口,其中,所述VLAN双层标签处理控制器包括一报文类型判断模块、一掩码模块、一规则匹配模块、一标签处理模块和一全局控制寄存模块;所述掩码模块内存储一过滤掩码表;所述规则匹配模块内存储一规则表,提供标签字段的操作规则;所述全局控制寄存模块设有一端口全局TPID寄存模块,所述端口全局TPID寄存模块存储本地端口全局TPID;数据报文通过所述端口进入所述VLAN双层标签处理控制器,所述报文类型判断模块接收数据包,根据所述本地端口全局TPID的值判断数据包标签类型,对数据包分类,将分类的数据包送入所述掩码模块;所述掩码模块根据所述规则表的敏感字节的位置提取信息,与所述掩码表的表项做掩码操作,将结果送入所述规则匹配模块;所述规则匹配模块查询所述规则表的表项,结合数据包的类型和规则的优先级选择最终的匹配结果,获得标签处理规则;所述标签处理模块根据标签处理规则进行标签操作。2.如权利要求1所述的基于流分类的以太网数据帧VLAN双层标签处理装置,其特征在于,所述标签处理模块进行的标签操作为添加、剥离、变换,或不做任何操作。3.如权利要求1所述的基于流分类的以太网数据帧VLAN双层标签处理装置,其特征在于,所述全局控制寄存模块存储有一全局规则控制表,提供标签字段的操作规则。4.如权利要求1所述的基于流分类的以太网数据帧VLAN双层标签处理装置,其特征在于,所述装置包括一VLAN过滤模块,防止用户私接,实现用户业务精绑定和准确定位。5.如权利要求1所述的基于流分类的以太网数据帧VLAN双层标签处理装置,其特征在于,所述端口为上行端口或者下行端口。6.—种基于流分类的以太网数据帧VLAN双层标签处理方法,应用于如权利要求1所述的标签处理装置,其特征在于,所述标签处理方法包括以下步骤,步骤a,数据报文从所述端口进入所述VLAN双层标签处理控制器;步骤b,所述报文类型判断模块对数据报文进行报文标签类型判断,所述掩码模块和规则匹配模块进行数据包协议字段规则匹配,将数据报文进行流分类;步骤c,所述标签处理模块完成对规则匹配后的数据报文流进行标签操作。7.如权利要求6所述的基于流分类的以太网数据帧VLAN双层标签处理方法,其特征在于,所述步骤b中,对数据报文进行标签类型判断的步骤为,根据本地端口全局TPID的值和数据流的上下行方向,判断数据报文为有效数据包和错包,所述有效数据包为双标签、单层运营商标签、单层用户标签和无标签。8.如权利要求7所述的基于流分类的以太网数据帧VLAN双层标签处理方法,其特征在于,所述步骤c中,所述标签处理模块从所述规则表或所述全局控制寄存模块存储的全局规则控制表获取规则,进行标签操作。9.如权利要求7所述的基于流分类的以太网数据帧VLAN双层标签处理方法,其特征在于,在所述步骤a之前,先设定端口全局TPID寄存模块中存储的本地端口全局TPID的数值,并设置所述规则匹配模块中存储的规则表的表项,设置所述全局控制寄存模块存储的全局规则控制表的表项。全文摘要本发明为一种基于流分类的以太网数据帧VLAN双层标签处理装置和方法,所述标签处理装置包括一VLAN双层标签处理控制器和多个端口,其中,所述VLAN双层标签处理控制器由一报文类型判断模块、一规则表、一掩码模块、一规则匹配模块、一标签处理模块和一全局控制寄存模块。所述标签处理方法为,首先数据报文从所述端口进入所述VLAN双层标签处理控制器,然后所述报文类型判断模块对数据报文进行报文标签类型判断,所述掩码模块和规则匹配模块进行数据包协议字段规则匹配,将数据报文进行流分类,最后所述标签处理模块完成对规则匹配后的数据报文流进行标签操作。文档编号H04L29/06GK101567854SQ200910143758公开日2009年10月28日申请日期2009年5月26日优先权日2009年5月26日发明者范其蓬申请人:武汉烽火网络有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1