CN101702679B - 基于虚拟局域网的报文处理方法及交换设备 - Google Patents

基于虚拟局域网的报文处理方法及交换设备 Download PDF

Info

Publication number
CN101702679B
CN101702679B CN2009102248509A CN200910224850A CN101702679B CN 101702679 B CN101702679 B CN 101702679B CN 2009102248509 A CN2009102248509 A CN 2009102248509A CN 200910224850 A CN200910224850 A CN 200910224850A CN 101702679 B CN101702679 B CN 101702679B
Authority
CN
China
Prior art keywords
port
message
forwarding table
list item
isolated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2009102248509A
Other languages
English (en)
Other versions
CN101702679A (zh
Inventor
高兴福
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Star Net Communication Co Ltd
Original Assignee
Fujian Star Net Communication Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujian Star Net Communication Co Ltd filed Critical Fujian Star Net Communication Co Ltd
Priority to CN2009102248509A priority Critical patent/CN101702679B/zh
Publication of CN101702679A publication Critical patent/CN101702679A/zh
Application granted granted Critical
Publication of CN101702679B publication Critical patent/CN101702679B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

本发明公开了一种基于虚拟局域网的报文处理方法,包括:对从非隔离端口接收的报文,查询第一地址转发表处理;对从隔离端口接收的报文,查询第二地址转发表处理;其中从非隔离端口接收到源地址为新地址的报文时,将包括源地址、接收端口及设置的转发行为信息的表项,添加到第一地址转发表,并将该表项复制到第二地址转发表;在从隔离端口接收到源地址为新地址的报文时,将包括源地址、接收端口及设置的转发行为信息的表项,添加到第二地址转发表并将其复制到第一地址转发表,之后将第二地址转发表中该表项中的转发行为修改为丢弃行为。本发明不需要独立资源和独立控制模块支持,通过直接查询地址转发表的方式实现了隔离技术在报文传输中的应用。

Description

基于虚拟局域网的报文处理方法及交换设备
技术领域
本发明涉及以太网交换技术领域,具体涉及一种基于虚拟局域网(VirtualLocal Area Network,VLAN)的报文处理方法及交换设备。
背景技术
随着网络的迅速发展,用户对于网络数据通信的安全性提出了更高的要求,要求保证网络用户通信的相对安全性,诸如防范黑客攻击、控制病毒传播等。在协议栈每个层中,都有相应的防止攻击的技术。由于数据链路层(也称第二层)存在广播、组播、泛洪等现象,容易造成带宽浪费及被用于攻击等,因此提出了利用虚拟局域网VLAN(Virtual Local Area Network)技术解决这些问题。传统的解决方法是给每个用户分配一个VLAN和相关的IP子网,通过使用VLAN,每个客户被从第二层隔离开,可以防止相应的恶意行为和信息探听。然而,这种分配每个客户单一VLAN和IP子网的模型造在可扩展性方面具有很大的局限。这些局限主要有:交换机固有的VLAN数目的限制,根据802.1Q协议规定,VLAN的标识号ID在报文中用12bit表示,最多只有4094个可用;配置繁杂,需配置众多VLAN同端口的关系,再配置相应的IP地址和网关,以及相关联的路由等配置。
针对这些局限,在报文传输时出现了一些端口隔离技术,如基于虚拟局域网的私有虚拟局域网PVLAN(Private VLAN)、保护端口、用户端口隔离等。这些技术具体特性不全相同,但其共同点都是让指定的部分端口相互间第二层不能通信。如图1所示为普通小区的网络连接图,其中PC1到PC5都在同一个VLAN中,交换机1、交换机2和交换机3相互间连接采用汇聚端口TRUNKPORT,TRUNK PORT用在不同的交换机之间进行连接,以保证在跨越多个交换机上建立的同一个VLAN的成员能够相互通讯,具体为通过让从TRUNK
PORT输出的报文携带802.1Q TAG实现。标准网以太帧中具有标签Tag字段,Tag字段包括发送方所在VLAN的ID号VID,当报文通过交换机的时候,交换机根据Tag字段的VID来识别发送方所在的VLAN,使同一个VLAN的成员能够相互通讯。路由器起到小区网络跟互联网间的网管作用。在没有使用端口隔离技术情况下,所有PC都能互现进行二层通信。但启用隔离VLAN后,所有PC间两两不能二层通信。这样,让指定的部分端口相互间不能通信解决VLAN数目限制,以及VLAN增多引发的其它一系列问题。
私有虚拟局域网PVLAN中包括主VLAN(Virtual Local Area Network)和隔离VLAN(Virtual Local Area Network),主VLAN下的端口属于非隔离端口,非隔离端口不仅包括混杂端口(Promiscuous Port),还包括汇聚端口TRUNKPORT,非隔离可以互相通信,也可以与隔离端口通信;隔离VLAN下的端口属于隔离端口,隔离端口间互相不能通信。
一台PC机在交换机会有一个对应的端口号,但交换机的一个端口号下面可能对应多台PC机。报文从入端口进入交换机后,交换机会将报文按它自己的存储格式存储,并且会在它的格式中补上报文的入端口(该PC机对应的端口)。通过查找报文的目的MAC地址,查找地址转发表FDB找到该报文的出端口,那么就可以转发了。支持隔离VLAN的交换机中,设置有隔离端口表,该隔离端口表中表项包括以下内容:端口号、端口所在VLAN的ID号VID及是否为隔离端口等。报文在转发之前,通过查询预先设置的隔离端口表,以报文中携带的VLAN标识号VID和入端口结合为索引,确定报文是从隔离端口传输过来的还是从非隔离端口传输过来的,以报文的出端口为索引,确定报文是要转发到隔离端口还是非隔离端口,从而能确定是否可以向出端口转发。只有入端口和出端口都是隔离端口时,才不转发。
为了达到高速转发,这种隔离端口表一般建立在交换机芯片内部。如专利号为的200710098270.0公开的一种基于虚拟局域网的端口隔离方法中,在接入端口建立过滤表,过滤表保存该接入端口属于哪些隔离VLAN,及对应的上链口有哪些。通过源端口为索引,找出指定源端口输入的报文只可以往哪些端口转发。这就是绝大部分交换机实现端口隔离技术所采用的方案,这类方案需要独立的资源和独立的控制模块支持,独立的资源少者几十个表项,多则几十K个表项,每个表项几个字节到几十个字节。因此现有的隔离技术需要硬件支持-采用支持独立端口隔离技术的交换机芯片,而由于支持隔离技术的交换机芯片只是部分厂家才有,所以限制了隔离技术的应用。
发明内容
本发明提供一种基于虚拟局域网的报文处理方法及交换设备,不需要独立的资源和独立的控制模块支持,可以通过直接查询地址转发表的方式实现了隔离技术在报文传输中的应用。
本发明一种基于虚拟局域网的报文处理方法,包括:
交换节点从端口接收报文并判断接收端口是否为非隔离端口;
如果是,则对从非隔离端口接收的报文,查询第一地址转发表对报文进行相应处理,确定接收的报文的源地址未在第一地址转发表及第二地址转发表中时,将包括接收的报文的源地址、接收端口及设置的转发行为信息的表项,添加到第一地址转发表,并将该表项复制到第二地址转发表;
如果否,则对从隔离端口接收的报文,查询所述第二地址转发表对报文进行相应处理,确定接收到的报文的源地址未在所述第一地址转发表及第二地址转发表中时,将包括接收的报文的源地址、接收端口及设置的转发行为信息的表项,添加到第二地址转发表,并将该表项复制到第一地址转发表,之后将第二地址转发表中该表项中的转发行为修改为丢弃行为。
本发明还提供了一种基于虚拟局域网的交换设备,该交换设备包括:
端口属性确定单元,用于确定接收报文的端口是否为非隔离端口;
第一构建单元,用于在从非隔离端口接收到源地址未在第一地址转发表及第二地址转发表的报文时,将包括接收报文中源地址、接收报文的端口及设置的转发行为信息的表项,添加到第一地址转发表,并将该表项复制到第二地址转发表;
第二构建单元,在从隔离端口接收到源地址未在第一地址转发表及第二地址转发表的报文时,将包括接收报文中源地址、接收报文的端口及设置的转发行为信息的表项,添加到第二地址转发表,并将该表项复制到第一地址转发表,之后将第二地址转发表中该表项中的转发行为修改为丢弃行为;
第一处理单元,用于对从非隔离端口接收的报文,查询所述第一构建单元所构建的第一地址转发表对报文进行相应处理;
第二处理单元,用于对从隔离端口接收的报文,查询所述第二构建单元所构建的第二地址转发表对报文进行相应处理。
本发明有益效果如下:通过本发明提出的地址转发表建立机制,对从不同端口接收的报文查询对应不同的地址转发表,达到控制知名报文在隔离端口间的隔离效果,且不影响非隔离端口同隔离端口之间的通信,不需要独立的资源和独立的控制模块支持的情况下,实现了隔离技术在报文传输中的应用;由于采用直接查询地址转发表就可以进行报文处理,不需要像现有技术那样再到交换机芯片内的隔离端口数据库检索端口属性,节省了报文处理的时间,在交换机同时处理多个报文时效果尤为明显。
附图说明
图1为现有小区网络连接示意图;
图2为本发明实施例中基于虚拟局域网的报文处理方法流程图;
图3为本发明实施例中第二泛洪端口表的构建方式之一的方法流程图;
图4为本发明实施例中第二泛洪端口表的构建方式之二的方法流程图;
图5为本发明实施例中第二泛洪端口表的构建方式之三的方法流程图;
图6为本发明实施例中为从隔离端口接收的组播报文配置指定组播组的流程图;
图7为本发明实施例中基于虚拟局域网的交换设备结构框图。
具体实施方式
下面结合附图和实施例,对本发明提出的基于虚拟局域网的报文处理方法及交换设备进一步说明。
现有基于虚拟局域网VLAN(Virtual Local Area Network)的交换节点(交换机)内一般具有地址转发表(也称转发数据库FDB(forwarding database)),交换机采用MAC(Media Access Control,介质访问控制)地址学习机制建立地址转发表,具体过程为:交换机从它的所有端口接收报文,在报文中的源MAC地址没有在FDB中出现时,将包括报文中的源MAC地址、接收报文的端口信息的表项添加到FDB中,FDB表包括多个表项,在FDB中查找报文的目的MAC地址所匹配的表项,将报文从该匹配的表项中的端口转发出去,若没有匹配表项,采用泛洪转发方式将报文转发到除源地址对应端口外的其它所有端口。基于现有的地址转发表建立及报文查表转发机制,本发明在不影响其他功能,不增加硬件资源的情况下实现端口隔离技术。本发明提供一种基于虚拟局域网的报文处理方法,该方法中交换节点从端口接收报文并判断接收端口是否为非隔离端口内,对从非隔离端口接收的报文,查询第一地址转发表FDB对报文进行相应处理;对从隔离端口接收的报文,查询第二地址转发表对报文进行相应处理;所述第一地址转发表和第二地址转发表,由交换节点通过如下方式构建:
对于从非隔离端口接收的报文,确定接收的报文的源地址未在第一地址转发表及第二地址转发表中时,将包括接收报文中源地址、接收报文的端口及设置的转发行为信息的表项,添加到第一地址转发表,并将该表项复制到第二地址转发表;
对于从隔离端口接收的报文,确定接收到的报文的源地址未在所述第一地址转发表及第二地址转发表中时,将包括接收报文中源地址、接收报文的端口及设置的转发行为信息的表项,添加到第二地址转发表,并将该表项复制到第一地址转发表,之后将第二地址转发表中该表项中的转发行为修改为丢弃行为。
如前所述,主VLAN下的端口属于非隔离端口,非隔离端口不仅包括混杂端口(Promiscuous Port),还包括汇聚端口TRUNK PORT,非隔离可以互相通信,也可以与隔离端口通信;隔离VLAN下的端口属于隔离端口,隔离端口间互相不能通信。由于隔离端口属于隔离VLAN,非隔离端口属于主VLAN,因此,在从非隔离端口接收到源地址未在第一地址转发表及第二地址转发表中的报文时,触发主VLAN进行地址学习,学习到的内容为包括接收报文中源地址、接收报文的端口及设置的转发行为信息的表项,主VLAN将学习到内容添加到第一地址转发表,主VLAN还将学习的内容复制一份到第二地址转发表中;在从隔离端口接收到源地址未在第一地址转发表及第二地址转发表中的报文时,触发隔离VLAN进行地址学习,学习到的内容为包括接收报文中源地址、接收报文的端口及设置的转发行为信息的表项,隔离VLAN在将学习到内容复制一份到第一地址转发表后,会对学习到内容进一步处理:将学习的内容中的转发行为修改为丢弃行为,再将修改的学习内容添加到第二地址转发表,这就意味着隔离VLAN学习到的MAC地址命中的行为MAC_CMD是丢弃行为,不同于被复制到主VLAN第一地址转发表中的转发行为,这样就达到如下预期:
从隔离端口输入目的MAC是另一个隔离端口下对应的MAC地址的报文,本实施例中隔离端口的缺省VLAN ID是隔离VLANID,因此会查询第二地址转发表中隔离VLAN学习到的与目的MAC所匹配查询表项信息,若能查询到所匹配的表项信息,在单播时该匹配表项中信息包括丢弃行为,所以报文被丢弃,达到隔离端口间不能互相通信的预期。
从隔离端口输入目的MAC(MACDA)是非隔离端口下对应的MAC地址的报文,会查询第二地址转发表中与目的MAC所匹配的表项,由于非隔离端口的缺省VLANID是主VLANID,若能查询到所匹配的表项,此报文的MACDA在第二地址转发表中所匹配的一定是从第一地址转发表复制到第二地址转发表中的表项,在单播时该匹配表项中信息包括转发行为,所以报文可被转发,达到隔离端口可以同非隔离端口通信的预期。
从非隔离端口输入MACDA是隔离端口下对应的MAC地址的报文,会查询第一地址转发表中与MACDA所匹配的表项,由于隔离端口的缺省VLANID是隔离VLANID,若能查询到所匹配的表项,此报文的MACDA在第一地址转发表中所匹配的一定是从第二地址转发表复制到第一地址转发表中的表项,在单播时该匹配表项中信息包括并没有被修改为丢弃行为而是转发行为,所以报文可被转发,达到非隔离端口可同隔离端口通信的预期。
从非隔离端口输入MACDA是非隔离端口下对应的MAC地址的报文,会查询第一地址转发表中与MACDA所匹配的表项,若能查询到所匹配的表项,在单播时该匹配表项中信息包括转发行为,所以报文可被转发,达到非隔离端口可同非隔离端口通信的预期。
因此,通过本发明提出的基于虚拟局域网的报文处理方法,当报文从隔离端口输入时,若目的端口是非隔离端口,也能被正确按知名报文转发,而不泛洪;同样报文从非隔离端口输入,若目的端口是隔离端口,也能被正确按知名报文转发,而不泛洪。
依照本发明的实施例一中,用户配置主VLAN的标识为VLAN100,隔离VLAN的标识为VLAN110,预先设置主VLAN下的非隔离端口列表和隔离VLAN下的隔离端口列表,交换机接收到报文进行处理时,由于接收的报文可能为知名报文,也可能为未知名报文,本文所指知名报文为报文的目的MAC地址在FDB表中的报文,未知名报文是指该报文的目的MAC地址不在FDB表中的报文,在接收到知名报文,按查询的地址转发表中匹配表项信息进行相应处理,本实施例中在接收到未知名报文时,采用泛洪转发方式进行转发,为达到效果,在第一地址转发表中未查找到与接收报文中的目的地址所匹配的表项时,定位到包括交换节点内所有端口的第一泛洪端口表;将该报文以泛洪方式从所述第一泛洪端口表中所包括的端口转发出去;在第二地址转发表中未查找到与接收报文中的目的地址所匹配的表项时,定位到只包括交换节点内的非隔离端口的第二泛洪端口表;将该报文以泛洪方式从所述第二泛洪端口表中所包括的端口转发出去。
这样,报文从隔离端口输入时,由于隔离端口的缺省VLANID是隔离VLAN,因此会使用隔离VLAN绑定的第二泛洪端口表转发报文,即只有非隔离端口。而非隔离端口的缺省VLANID是主VLANID,主VLAN绑定的第一泛洪端口表包括所有端口,因此其泛洪范围是缺省的VLAN的所有端口成员,即包含隔离端口和非隔离端口。
如图2所示,本实施例中基于虚拟局域网的报文处理方法包括以下步骤:
步骤S 100,交换节点接收到报文时,首先判断接收报文的端口的端口属性,若该端口为非隔离端口,同时执行步骤S101’和步骤S201’,若该端口为隔离端口,同时执行步骤S101、S201和步骤S301;
本实施例中确定接收报文的端口的端口属性可以采用如下方法:
在接收报文为携带Tag字段的报文,可以利用报文中Tag字段的VID确定接收报文的端口所属的VLAN,在接收报文为没有Tag字段的报文时(UNTAG模式),根据预先设置的接收报文的端口绑定的VLAN标识,如隔离端口的缺省VID是110,但非隔离端口缺省VID是100,从而确定接收报文的端口所属VLAN,利用接收报文的端口及该端口所属VLAN,查询预先设置的主VLAN下的非隔离端口列表和隔离VLAN下的隔离端口列表;
在端口所属VLAN与主VLAN相匹配时,且端口出现在非隔离端口列表中时,确定该端口为非隔离端口;
在端口所属VLAN与隔离VLAN相匹配时,且端口出现在隔离端口列表中时,确定该端口为隔离端口。
本实施例以非隔离端口和隔离端口的输出规则都是不带TAG模式(UNTAG模式)的报文为例进行后面步骤的叙述。
步骤S101’,在第一地址转发表中FDB1查找与接收报文中的目的MAC地址所匹配的表项;
步骤S102’,判断是否查找到与接收报文的目的MAC地址所匹配的表项,若查找到匹配表项,执行步骤S103’,若未查找到匹配表项,执行步骤S104’;
步骤S103’,根据匹配表项中的信息如判断其命中的是转发行为还是丢弃行为,对报文进行相应的转发或丢弃处理,进行转发处理时,将报文从匹配表项中的端口转发出去,从而完成知名报文从非隔离端口到隔离端口的通信;
步骤S104’,在没有匹配表项的情况下,说明该报文为未知名报文,因此采用泛洪方式转发,通过查询第一泛洪端口表,将报文泛洪到缺省VLAN的所有端口,完成从非隔离端口接收的未知名报文到缺省VLAN的泛洪转发。
步骤S201’,判断从非隔离端口接收的报文中的源MAC地址是否为新MAC地址,本实施例所指新MAC地址为第一地址转发表FDB1和第二地址转发表FDB2中均为出现的MAC地址,若不是新MAC地址,结束,若为新MAC地址,执行步骤S202’;
步骤S202’,触发主VLAN进行MAC地址学习,具体为:
将包括源地址未在第一地址转发表及第二地址转发表中的报文中新MAC地址、接收报文的端口及设置的转发行为信息的表项,添加到FDB1,并将该表项复制到FDB2,完成此次地址学习。
步骤S101,在第二地址转发表中FDB2查找与接收报文中的目的MAC地址所匹配的表项;
步骤S102,判断是否查找到与接收报文的目的MAC地址所匹配的表项,若查找到匹配表项,执行步骤S103,若未查找到匹配表项,执行步骤S104;
步骤S103,根据匹配表项中的信息如判断其命中的是转发行为还是丢弃行为,对报文进行相应的转发或丢弃处理,进行转发处理时,将报文从匹配表项中的端口转发出去;
步骤S104,在没有匹配表项的情况下,说明该报文为未知名报文,因此采用泛洪方式转发,通过查询第二泛洪端口表,将报文泛洪到缺省VLAN的所有非隔离端口,完成从隔离端口接收的未知名报文到缺省VLAN的隔离端口的泛洪转发。
步骤S201,判断从隔离端口接收的报文中的源MAC地址是否为新MAC地址,若不是新MAC地址,结束,若为新MAC地址,执行步骤S202’;
步骤S202,触发隔离VLAN进行MAC地址学习,具体为:
将包括源地址未在第一地址转发表及第二地址转发表中的报文中新MAC地址、接收报文的端口及设置的转发行为信息的表项,添加到FDB2,并将该表项复制到FDB1,然后对FDB2中该表项中转发行为修改为丢弃行为,完成此次地址学习。
步骤S301,由于该端口为隔离端口,所以在第二泛洪端口表DB2中出现了该隔离端口的情况下,将该隔离端口从第二泛洪端口表DB2删除。
本发明采用通过新的地址转发表学习机制,达到控制知名报文在隔离端口间的隔离效果。再复用泛洪转发表(泛洪指将某个接口收到的数据流向该广播域的其它接口分发出去),控制未知名报文在隔离端口间的隔离效果。
本实施例中第二泛洪端口表的构建方式如图3所示,
步骤S31,接收报文并判断接收报文的端口的端口属性,若该端口为隔离端口,执行步骤S32,否则,结束;
步骤S32,判断是否为第一个隔离端口,即判断是否第一次从隔离端口接收到报文,若是,执行步骤S33,若不是,说明第二泛洪端口表已存在,执行步骤S34,;
步骤S33,说明还未建立第二泛洪端口表,交换点内存在隔离端口,需要为从隔离端口传输过来的报文重新建立第二泛洪端口表,为第二泛洪端口表设置一个表项ID,初始时构建包括交换节点内所有端口的第二泛洪端口表;
步骤S34,建立第二泛洪端口表与隔离VLAN的FDB2的绑定关系,如将将表项ID作为泛洪标识写入隔离VLAN的FDB2的泛洪端口位表ID字段。使得从隔离端口接收的未知名报文查询泛洪端口位表ID字段定位到第二泛洪端口表;
步骤S35,将该隔离端口从第二泛洪端口表中删除。这是为了让第二泛洪端口表中,最终都只有非隔离端口。
此实施方式是泛洪范围控制的最佳方案,要求硬件能支持基于VLAN重新指定泛洪范围(VLAN的泛洪范围通常是VLAN的所有成员端口)。还可以采用如图4所示的实施方式。
步骤S41,接收报文并判断接收报文的端口的端口属性,若该端口为隔离端口,执行步骤S42,否则,结束;
步骤S42,判断是否为第一个隔离端口,即判断是否第一次从隔离端口接收到报文,若是,执行步骤S43,若不是,说明第二泛洪端口表已存在,执行步骤S45;
步骤S43,说明还未建立第二泛洪端口表,交换点内存在隔离端口,需要为从隔离端口传输过来的报文重新建立第二泛洪端口表,为第二泛洪端口表设置一个表项ID,初始时构建包括交换节点内所有端口的第二泛洪端口表;
步骤S44,申请一个用于匹配隔离VLAN内所有报文的流策略表项,并建立流策略表项与第二泛洪端口表的绑定关系,设置利用流策略重定向到泛洪端口位表。
这样,未知名报文从隔离端口输入时,会查找流策略表,由于流策略表项的VLANID等于报文的输入VLANID,因此报文被重定向到第二泛洪端口表,进行分发。而从非隔离端口输入的报文,不会命中流策略表的表项,因此还是按缺省行为处理,即泛洪到VLAN的所有端口成员
步骤S45,将该隔离端口从第二泛洪端口表中删除。这是为了让第二泛洪端口表中,最终都只有非隔离端口。再将流策略表项应用到隔离端口。
此实施方式对硬件也有一定要求,即要求硬件支持流策略,并置流策略能够重定向分发到多个端口。为使方案更具通用性,还可以采用图5所示的实施方式。
步骤S51,接收报文并判断接收报文的端口的端口属性,若该端口为隔离端口,执行步骤S52,否则,结束;
步骤S52,判断是否为第一个隔离端口,即判断是否第一次从隔离端口接收到报文,若是,执行步骤S53,若不是,说明第二泛洪端口表已存在,执行步骤S55;
步骤S53,说明交换点内存在隔离端口,需要为从隔离端口传输过来的报文进行泛洪控制,设置指定隔离VLAN内的未知名报文交由中央处理单元处理,此实施方式中,本发明所指的第二泛洪端口表中的端口不是存储在硬件中的,而是由中央处理单元根据预先设置的主VLAN下的非隔离端口列表和隔离VLAN下的隔离端口列表,在从隔离端口接收到报文时以软件方式确定的;
步骤S54,将从隔离端口接收的未知名报文交由中央处理单元CPU处理。
步骤S55,由CPU运行的软件,根据输入报文的VLANID,查找预先设置隔离VLAN下的隔离端口列表,确定其泛洪转发的范围。分发到同广播域的非隔离端口。
这样,从非隔离端口输入的报文,在第一地址转发表中没有匹配的表项时,会被分发到VLAN的所有端口成员。而从隔离端口输入的报文,只分发到隔离VLAN中非隔离端口。
以上三种泛洪控制方式,都是要达到控制从隔离端口输入的报文,若在FDB1和FDB2中没有命中任何表项,则其泛洪范围不包含隔离端口。而从非隔离端口输入的报文,其泛洪范围还是VLAN的所有端口。
依照本发明的实施例二中,交换机接收的报文多为单播报文,采用本发明实施例一所提供的基于虚拟局域网的方法,可以实现对单播报文的知名报文及未知名报文的正确转发,实现了端口隔离技术。但是,在一些交换机,所接收的报文,既有单播报文,也有组播报文,为解决组播报文的正确转发,本实施例中所提供的基于虚拟局域网的方法中:
在构建所述第二地址转发表时,在从隔离端口接收到携带新MAC地址的源地址未在第一地址转发表及第二地址转发表中的报文时,还包括判断该隔离端口是否为定位到指定组播组的指定端口的步骤,若不是,则按实施例一所提供的方法进行地址学习,若是指定端口,则转去执行以下步骤:将包括接收报文中源地址、接收报文的端口、设置的组播转发行为及指定组播组信息的表项添加到第二地址转发表,并将该表项复制到第一地址转发表,之后将第二地址转发表中该表项中指定组播组中出现的隔离端口删除,保持组播转发行为不变。如图6所示,为本实施例中为端口属性是隔离端口的指定端口配置指定组播组的过程,包括:
步骤S61,从预配置到指定组播中的端口中逐个取出一个端口;
步骤S62,配置过程中判断该端口是否为隔离端口,若是隔离端口,将该隔离丢弃,执行步骤S64,若为非隔离端口,执行步骤S63;
步骤S63,将该端口配置到指定组播中;
步骤S64,判断是否配置完毕,若没有,转去执行步骤S61,否则结束;
本实施例中在从非隔离端口接收到携带新MAC地址的报文时,判断出该非隔离端口为定位到指定组播组的指定端口时,将包括接收报文中源地址、接收报文的端口、设置的组播转发行为及指定组播组信息的表项添加到第一地址转发表,并将该表项复制到第二地址转发表。
这样可以达到,组播报文从非隔离端口输入时,由于非隔离端口的端口缺省VLANID是主VLANID,因此组播报文的目的MAC地址在FDB1查找后命中的是主VLAN中的组播MAC地址表项,从而能够分发到隔离端口。而从隔离端口输入时,由于隔离端口的端口缺省VLANID是隔离VLANID,因此命中的是隔离VLAN中的组播MAC地址表项,只有非隔离带端口。
单播和组播地址表,共用交换机硬件上同一个FDB,另外,表项中还可以包括其他信息,如MAC地址对应的VID等,如表1所示,本实施例中的FDB1或FDB2的格式为:
表1地址转发表
Figure G2009102248509D00141
FDB的表项一般包括:MAC_ADDR,代表48bit的MAC地址;VID,VLAN的ID号,即MAC地址代表的终端所属VLAN的ID号;MAC_CMD,被报文目的MAC地址查找命中的行为;SRC_PORT,MAC地址对应的端口号,只对单播地址有效;MULTIPLE,多播复制标志,当表项中端口为定位到指定组播组的指定端口时,报文需要被复制到指定组播组多个端口时,此标志被置为真;MGTI(multiple group table index,多播复制端口表id),MULTIPLE为真时,此字段才有意义。如表1所示,在采用隔离技术时,对于单播,只有入端口和出端口都是隔离端口时,MAC_CMD为丢弃行为,在多播时,MAC_CMD为转发行为。
依照本发明的实施例三中,提供一种基于虚拟局域网的交换设备,如图7所示,该交换设备包括:端口属性确定单元,用于确定接收报文的端口是否为非隔离端口;第一构建单元,用于在从非隔离端口接收到源地址未在第一地址转发表及第二地址转发表的报文时,将包括接收报文中源地址、接收报文的端口及设置的转发行为信息的表项,添加到第一地址转发表,并将该表项复制到第二地址转发表;第二构建单元,在从隔离端口接收到源地址未在第一地址转发表及第二地址转发表的报文时,将包括接收报文中源地址、接收报文的端口及设置的转发行为信息的表项,添加到第二地址转发表,并将该表项复制到第一地址转发表,之后将第二地址转发表中该表项中的转发行为修改为丢弃行为;第一处理单元,用于对从非隔离端口接收的报文,查询所述第一构建单元所构建的第一地址转发表对报文进行相应处理;第二处理单元,用于对从隔离端口接收的报文,查询所述第二构建单元所构建的第二地址转发表对报文进行相应处理。
优选地,所述第一处理单元包括:第一查找单元,用于对从非隔离端口接收的报文,在所述第一构建单元所构建的第一地址转发表中,查找与接收报文中的目的地址所匹配的表项;第一确定单元,用于利用所述第一查找单元所查找的所匹配的表项中信息,确定将报文转发或丢弃及转发时所对应的端口。
所述第二处理单元包括:第二查找单元,用于对从隔离端口接收的报文,在所述第二构建单元所构建的第二地址转发表中,查找与接收报文中的目的地址所匹配的表项;第二确定单元,用于利用所述第二查找单元所查找的所匹配的表项中信息,确定将报文转发或丢弃及转发时所对应的端口。
为达到对未知名报文的泛洪控制,该交换设备还包括:第三构建单元,用于构建包括该交换设备的所有端口的第一泛洪端口表;第四构建单元,用于构建仅包括该交换设备的内非隔离端口的第二泛洪端口表;第一泛洪转发单元,用于在所述第一查找单元未查找到与接收报文中的目的地址所匹配的表项时,定位到所述第三构建单元所构建的第一泛洪端口表,将该报文以泛洪方式从所述第一泛洪端口表中所包括的端口转发出去;第二泛洪转发单元,用于在所述第二查找单元未查找到与接收报文中的目的地址所匹配的表项时,定位到所述第四构建单元所构建的第二泛洪端口表,将该报文以泛洪方式从所述第二泛洪端口表中所包括的端口转发出去。
为实现对组播报文的组播转发,该交换设备还包括:组播判断单元,用于在从隔离端口接收到所述源地址未在第一地址转发表及第二地址转发表中的报文时,判断该隔离端口是否为定位到指定组播组的指定端口,若不是,交由所述第二构建单元进行第二地址转发表构建,若是,则交由第五构建单元进行第二地址转发表构建;所述第五构建单元,用于将包括接收报文中源地址、接收报文的端口、设置的组播转发行为及指定组播组信息的表项添加到第二地址转发表,并将该表项复制到第一地址转发表,之后将第二地址转发表中该表项中指定组播组中出现的隔离端口删除,保持组播转发行为不变。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (13)

1.一种基于虚拟局域网的报文处理方法,其特征在于:
交换节点从端口接收报文并判断接收端口是否为非隔离端口;
如果是,则对从非隔离端口接收的报文,查询第一地址转发表对报文进行相应处理,确定接收的报文的源地址未在第一地址转发表及第二地址转发表中时,将包括接收的报文的源地址、接收端口及设置的转发行为信息的表项,添加到第一地址转发表,并将该表项复制到第二地址转发表;
如果否,则对从隔离端口接收的报文,查询所述第二地址转发表对报文进行相应处理,确定接收到的报文的源地址未在所述第一地址转发表及第二地址转发表中时,将包括接收的报文的源地址、接收端口及设置的转发行为信息的表项,添加到第二地址转发表,并将该表项复制到第一地址转发表,之后将第二地址转发表中该表项中的转发行为修改为丢弃行为。
2.如权利要求1所述的方法,其特征在于,所述交换节点判断接收端口是否为非隔离端口,具体包括:
交换节点确定接收报文的端口所属VLAN;
交换节点利用接收报文的端口及该端口所属VLAN,查询预先设置的主VLAN下的非隔离端口列表和隔离VLAN下的隔离端口列表;
在端口所属VLAN与主VLAN相匹配时,且端口出现在非隔离端口列表中时,确定该端口为非隔离端口;
在端口所属VLAN与隔离VLAN相匹配时,且端口出现在隔离端口列表中时,确定该端口为隔离端口。
3.如权利要求2所述的方法,其特征在于,交换节点确定接收报文的端口所属VLAN,具体包括:
在接收的报文中携带VLAN标识时,根据报文中携带的VLAN标识,确定接收报文的端口所属VLAN;
在接收的报文中不携带VLAN标识时,根据预先设置的接收报文的端口绑定的VLAN标识,确定接收报文的端口所属VLAN。
4.如权利要求1~3任一所述的方法,其特征在于,所述查询第一地址转发表对从非隔离端口接收的报文进行相应处理,具体包括:
所述交换节点在第一地址转发表中查找与接收报文中的目的地址所匹配的表项;
利用所匹配的表项中信息,确定将报文转发或丢弃,及转发时所对应的端口;
所述查询第二地址转发表对从隔离端口接收的报文进行相应处理,具体包括:
所述交换节点在第二地址转发中查找与接收报文中的目的地址所匹配的表项;
利用所匹配的表项中信息,确定将报文转发或丢弃,及转发时所对应的端口。
5.如权利要求4所述的方法,其特征在于,
所述交换节点在第一地址转发表中未查找到与接收报文中的目的地址所匹配的表项时,定位到包括交换节点内所有端口的第一泛洪端口表;
将该报文以泛洪方式从所述第一泛洪端口表中所包括的端口转发出去;
所述交换节点在第二地址转发表中未查找到与接收报文中的目的地址所匹配的表项时,定位到只包括交换节点内的非隔离端口的第二泛洪端口表;
将该报文以泛洪方式从所述第二泛洪端口表中所包括的端口转发出去。
6.如权利要求5所述的方法,其特征在于,
所述第二泛洪端口表采用如下方式构建:
在交换节点第一次从隔离端口接收到报文时,构建包括交换节点内所有端口的第二泛洪端口表,并将该隔离端口从所述第二泛洪端口表中删除;
之后交换节点每次从隔离端口接收到报文时,在该隔离端口出现在所述第二泛洪端口表中的情况下,将其从所述第二泛洪端口表中删除。
7.如权利要求5所述的方法,其特征在于,
定位到所述第二泛洪端口表采用如下方式:
所述第二地址转发表中还包括泛洪标识号,通过建立所述泛洪标识号与第二泛洪端口表之间的绑定关系,在第二地址转发表中未查找到所匹配的表项时,由第二地址转发表中的所述泛洪标识号定位到第二泛洪端口表;
或采用如下方式:
通过申请一个用于匹配隔离VLAN内所有报文的流策略表项,并建立流策略表项与第二泛洪端口表的绑定关系,在第二地址转发表中未查找到所匹配的表项时,由所述流策略表项重定向到第二泛洪端口表。
8.如权利要求5所述的方法,其特征在于,
所述第二泛洪端口表中的端口,由交换节点内的中央处理单元根据预先设置的主VLAN下的非隔离端口列表和隔离VLAN下的隔离端口列表来确定;
定位到所述第二泛洪端口表的方式为:
在第二地址转发表中未查找到所匹配的表项时,通过将报文交由交换节点内的中央处理单元,由所述中央处理单元定位到第二泛洪端口表。
9.如权利要求1所述的方法,其特征在于,
对从隔离端口接收的报文,确定接收到的报文的源地址未在所述第一地址转发表及第二地址转发表中,且进一步确定该隔离端口为定位到指定组播组的指定端口时,转去执行以下步骤:
将包括接收报文中源地址、接收报文的端口、设置的组播转发行为及指定组播组信息的表项添加到第二地址转发表,并将该表项复制到第一地址转发表,之后将第二地址转发表中该表项中指定组播组中出现的隔离端口删除,保持组播转发行为不变。
10.一种基于虚拟局域网的交换设备,其特征在于,该交换设备包括:
端口属性确定单元,用于确定接收报文的端口是否为非隔离端口;
第一构建单元,用于在从非隔离端口接收到源地址未在第一地址转发表及第二地址转发表的报文时,将包括接收报文中源地址、接收报文的端口及设置的转发行为信息的表项,添加到第一地址转发表,并将该表项复制到第二地址转发表;
第二构建单元,在从隔离端口接收到源地址未在第一地址转发表及第二地址转发表的报文时,将包括接收报文中源地址、接收报文的端口及设置的转发行为信息的表项,添加到第二地址转发表,并将该表项复制到第一地址转发表,之后将第二地址转发表中该表项中的转发行为修改为丢弃行为;
第一处理单元,用于对从非隔离端口接收的报文,查询所述第一构建单元所构建的第一地址转发表对报文进行相应处理;
第二处理单元,用于对从隔离端口接收的报文,查询所述第二构建单元所构建的第二地址转发表对报文进行相应处理。
11.如权利要求10所述的交换设备,其特征在于,
所述第一处理单元包括:
第一查找单元,用于对从非隔离端口接收的报文,在所述第一构建单元所构建的第一地址转发表中,查找与接收报文中的目的地址所匹配的表项;
第一确定单元,用于利用所述第一查找单元所查找的所匹配的表项中信息,确定将报文转发或丢弃及转发时所对应的端口;
所述第二处理单元包括:
第二查找单元,用于对从隔离端口接收的报文,在所述第二构建单元所构建的第二地址转发表中,查找与接收报文中的目的地址所匹配的表项;
第二确定单元,用于利用所述第二查找单元所查找的所匹配的表项中信息,确定将报文转发或丢弃及转发时所对应的端口。
12.如权利要求11所述的交换设备,其特征在于,该交换设备还包括:
第三构建单元,用于构建包括该交换设备的所有端口的第一泛洪端口表;
第四构建单元,用于构建仅包括该交换设备的非隔离端口的第二泛洪端口表;
第一泛洪转发单元,用于在所述第一查找单元未查找到与接收报文中的目的地址所匹配的表项时,定位到所述第三构建单元所构建的第一泛洪端口表,将该报文以泛洪方式从所述第一泛洪端口表中所包括的端口转发出去;
第二泛洪转发单元,用于在所述第二查找单元未查找到与接收报文中的目的地址所匹配的表项时,定位到所述第四构建单元所构建的第二泛洪端口表,将该报文以泛洪方式从所述第二泛洪端口表中所包括的端口转发出去。
13.如权利要求10所述的交换设备,其特征在于,该交换设备还包括:
组播判断单元,用于在从隔离端口接收到源地址未在第一地址转发表及第二地址转发表中的报文时,判断该隔离端口是否为定位到指定组播组的指定端口时,若不是,交由所述第二构建单元进行第二地址转发表构建,若是,则交由第五构建单元进行第二地址转发表构建;
所述第五构建单元,用于将包括接收报文中源地址、接收报文的端口、设置的组播转发行为及指定组播组信息的表项添加到第二地址转发表,并将该表项复制到第一地址转发表,之后将第二地址转发表中该表项中指定组播组中出现的隔离端口删除,保持组播转发行为不变。
CN2009102248509A 2009-11-26 2009-11-26 基于虚拟局域网的报文处理方法及交换设备 Active CN101702679B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102248509A CN101702679B (zh) 2009-11-26 2009-11-26 基于虚拟局域网的报文处理方法及交换设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102248509A CN101702679B (zh) 2009-11-26 2009-11-26 基于虚拟局域网的报文处理方法及交换设备

Publications (2)

Publication Number Publication Date
CN101702679A CN101702679A (zh) 2010-05-05
CN101702679B true CN101702679B (zh) 2011-11-02

Family

ID=42157574

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102248509A Active CN101702679B (zh) 2009-11-26 2009-11-26 基于虚拟局域网的报文处理方法及交换设备

Country Status (1)

Country Link
CN (1) CN101702679B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105391641A (zh) * 2014-09-03 2016-03-09 中兴通讯股份有限公司 一种专用网络内消息转发方法及装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102480485B (zh) * 2010-11-30 2014-09-24 杭州华三通信技术有限公司 实现同一vlan内端口跨设备隔离的系统、方法和交换设备
CN103138990A (zh) * 2013-03-12 2013-06-05 无锡城市云计算中心有限公司 云计算网络下的虚拟机管理方法和云计算网络管理装置
CN104065552B (zh) * 2014-06-26 2017-06-23 福建星网锐捷网络有限公司 一种数据传输方法及设备
CN105376168B (zh) * 2014-08-25 2019-06-11 深圳市中兴微电子技术有限公司 一种负载均衡的方法与装置
CN104734953B (zh) * 2015-03-24 2019-07-23 福建星网锐捷网络有限公司 基于vlan实现报文二层隔离的方法、装置及交换机
CN105591897B (zh) * 2015-11-16 2018-12-11 新华三技术有限公司 Trill网络的mac地址同步方法及装置
CN105592089B (zh) * 2015-12-29 2018-11-27 中国银联股份有限公司 一种云计算下的租户安全隔离方法
CN106789921A (zh) * 2016-11-28 2017-05-31 成都广达新网科技股份有限公司 一种支持vlan内成员端口隔离的交换方法及交换机
CN107547336B (zh) * 2017-05-15 2020-11-06 新华三技术有限公司 一种认证端口加入授权vlan的方法及装置
CN108418907B (zh) * 2018-05-24 2021-05-07 新华三技术有限公司 Ip地址分配方法及装置
CN111030911B (zh) * 2018-10-09 2022-04-22 中车株洲电力机车研究所有限公司 列车网络系统及用于其的终端设备接入管理方法
CN112311737A (zh) * 2019-07-31 2021-02-02 中兴通讯股份有限公司 一种流量隔离方法、装置及设备、存储介质
CN111556102B (zh) * 2020-04-14 2023-02-28 深圳震有科技股份有限公司 一种数据通道建立方法、以太网交换机及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105391641A (zh) * 2014-09-03 2016-03-09 中兴通讯股份有限公司 一种专用网络内消息转发方法及装置

Also Published As

Publication number Publication date
CN101702679A (zh) 2010-05-05

Similar Documents

Publication Publication Date Title
CN101702679B (zh) 基于虚拟局域网的报文处理方法及交换设备
CN101616014B (zh) 一种实现跨虚拟专用局域网组播的方法
CN101127681B (zh) 绑定服务器mac地址和上行端口的方法和装置
JP3791621B2 (ja) バーチャルネットワークシステムのキャリアネットワークおよび該キャリアネットワークの通信ノード
CN101674249B (zh) 运营商骨干桥pbb流量转发的方法及设备
EP1924030B1 (en) A multicast supported virtual local area network switching system and a method thereof
CN101877671B (zh) 镜像报文的发送方法、交换芯片及以太网路由器
CN101286990B (zh) 二层组播的转发方法和装置
CN100411390C (zh) 一种邻居发现的实现方法
CN100531138C (zh) 运营商边界节点、虚拟专用局域网服务通信方法及系统
CN103227843A (zh) 一种物理链路地址管理方法及装置
CN100583801C (zh) 一种动态建立组播虚拟局域网域的方法、系统及交换设备
CN100407704C (zh) 媒体接入控制层地址的动态学习方法
CN103139037A (zh) 用于实现灵活的虚拟局域网的方法和装置
CN101133605A (zh) 对基于mac的表执行扩展查找
CN102859973A (zh) 一种地址解析的方法,装置和系统
CN105262667A (zh) Overlay网络中控制组播传输的方法、装置
CN102158421A (zh) 创建三层接口的方法及单元
CN101257447A (zh) 一种负载分担的方法、系统及路由装置
CN103763207A (zh) 软件定义网络中的带内控制连接建立方法及设备
CN103581022B (zh) Mac地址的查找转发方法和装置
CN101326770A (zh) 帧处理方法以及帧处理设备
CN100563205C (zh) 隔离用户虚拟局域网的实现方法及其应用的网络设备
CN104125128A (zh) Linux软桥支持VLAN的方法
CN102209035B (zh) 流量转发方法及转发设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant