一种实现私有虚拟局域网的方法和系统的制作方法

文档序号:7720022阅读:102来源:国知局
专利名称:一种实现私有虚拟局域网的方法和系统的制作方法
技术领域
本发明涉及以太网网络通信安全技术,尤其涉及一种实现私有虚拟局域网的方法
和系统。
背景技术
为了提高以太网网络通信的安全性,将用户之间的报文隔离开,而提出私有虚拟 局域网(PVLAN)技术来解决这个问题。在PVLAN的概念中,交换机端口有三种不同安全级别 的类型隔离端口 (Isolated port),团体端口 (Community port),混合端口 (Promiscuous port)。 隔离端口只能和混合端口通信,不能与团体端口进行交换,也不能与其他隔离端 口进行交换;团体端口不仅可以和混合端口通信,还可以和团体端口通信,但是不能与隔离 端口进行交换;混合端口收到的数据可以发往虚拟局域网(VLAN)内任何端口,即混合端 口、隔离端口或团体端口。 PVLAN是第2层的安全机制,对于保证接入网络的数据通信的安全性非常有效,处 于隔离端口之下的用户只能与自己的默认网关连接,而与PVLAN内的其他网关没有任何交 互。由于传统的第2层的安全隔离需要为每个用户分配一个VLAN和互联网协议(IP)子网, PVLAN达到了节省VLAN和IP子网的目的,同时提供了具备第2层数据通信安全性的连接。 此外,PVLAN功能可以保证同一个VLAN中的隔离端口相互之间不能通信,细分了广播域,可 以有效抑制VLAN中广播对用户的相互影响。 引入了 PVLAN的概念后,VLAN中成员端口都具有PVLAN属性,默认为混合端口 。 当一个VLAN所有成员端口都为混合端口时,任意端口之间都可以通信,PVLAN就成为普通 VLAN。所以PVLAN是对VLAN的扩展,普通VLAN可以看作所有成员端口都为混合端口时 PVLAN的特例。 PVLAN增加了网络设备在第2层转发的处理复杂性,为实现PVLAN,网络设备需要 在转发处理过程中增加端口的隔离属性表。端口的隔离属性表记录了 VLAN各成员端口之 间的转发关系,具体实现方法是每个VLAN中的每个成员端口都保存一个与该端口隔离和 /或与该端口不隔离的端口集合。从VLAN成员端口接收数据帧后,进行查表,即进行基于 媒体访问控制(MAC)表、组播转发表、VLAN表的查表后,得到出端口集合,再根据该数据帧 的入端口的隔离属性表进行隔离处理,即在查表得到的出端口集合中,去除与该数据帧的 入端口隔离的端口。 然而,由于网络设备的一个端口可以属于多个VLAN,所以端口隔离属性表的条目 数量非常惊人,完全实现基于VLAN的PVLAN是很困难的。目前,绝大多数网络设备选择了 一种简化的PVLAN实现,方法为只基于端口进行PVLAN端口隔离属性的设置。这种作法实 现的是一种只与数据帧入端口和出端口有关的PVLAN,端口隔离属性表的条目数量大为减 少,而且转发处理效率较高。但是,存在的问题是,如果端口属性设置为隔离端口 ,那么这个 端口的所有VLAN的数据帧都是隔离属性的,无法做到端口与VLAN的精确隔离。

发明内容
有鉴于此,本发明的主要目的在于提供一种实现私有虚拟局域网的方法和系统,降低了 PVLAN转发处理的复杂程度,同时,还提高了 PVLAN应用的灵活性。
为达到上述目的,本发明的技术方案是这样实现的 本发明实现的一种实现私有虚拟局域网的方法,在网络设备中,通过在VLAN表中
增加PVLAN实例索引表项,将每个VLAN绑定到一个PVLAN实例;该方法还包括 在网络设备的一个端口接收到数据帧后,进行查表,得到出端口集合;通过PVLAN实例索引表项得到数据帧所属VLAN绑定的PVLAN实例号,依据数据帧
的入端口的端口号,在PVLAN实例号对应的PVLAN实例的端口隔离属性表中,得到相应的端
口的允许转发端口集合,与出端口集合进行交集运算,按照得到的交集所对应的端口号,进
行数据帧的转发。 上述方案中,所述PVLAN实例为用户根据每个VLAN的端口隔离属性预先创建的,具体为将具有相同端口隔离属性的VLAN创建一个PVLAN实例,每个PVLAN实例有一组端口隔离属性表,该表以端口号为索引,每一表项的内容为该端口的允许转发端口集合。
上述方案中,所述进行查表具体为进行基于MAC表、组播转发表、VLAN表的查表。
上述方案中,所述出端口集合采用出端口位图表示,具体为按照转发的出端口的端口号构造一个位图,将端口号对应的位置为1。 上述方案中,所述允许转发端口集合采用端口隔离位图表示,具体为将允许转发
的端口的端口号对应的位置为1 ,不允许转发的端口的端口号对应的位置为0。
上述方案中,所述与出端口集合进行交集运算具体为将得到的端口隔离位图与
出端口位图按照端口号进行逻辑与运算,其中,只存在端口隔离位图或出端口位图中的端
口号经过运算后,对应的位为0。 上述方案中,所述与出端口集合进行交集运算之后,没有得到交集时,该方法进一步包括网络设备丢弃数据帧。
本发明实现的一种实现私有虚拟局域网的装置,该装置包括 绑定模块,用于在VLAN表中增加PVLAN实例索引表项,将每个VLAN绑定到一个
PVLAN实例; 出端口集合模块,用于在网络设备的一个端口接收到数据帧后,进行查表,得到出端口集合; 允许转发端口集合模块,用于在网络设备的一个端口接收到数据帧后,根据绑定模块的绑定关系,得到数据帧所属VLAN绑定的PVLAN实例号,依据数据帧的入端口的端口号,在对应的PVLAN实例的端口隔离属性表中得到相应的端口的允许转发端口集合;
运算模块,用于将允许转发端口集合与出端口集合进行交集运算,并把运算结果传送给转发模块; 转发模块,用于按照运算结果中允许转发端口集合与出端口集合的交集所对应的端口号,进行数据帧的转发。 上述方案中,所述装置进一步包括丢弃模块,用于丢弃数据帧。 上述方案中,所述转发模块进一步用于在发现运算结果中允许转发端口集合与出端口集合没有交集时,通知丢弃模块。 本发明提供了一种实现私有虚拟局域网的方法和系统,在网络设备中,通过在VLAN表中增加PVLAN实例索引表项,将每个VLAN绑定到一个PVLAN实例;在网络设备的一个端口接收到数据帧后,进行查表,得到出端口集合;通过PVLAN实例索引表项得到PVLAN实例号,依据数据帧的入端口的端口号,在PVLAN实例号对应的PVLAN实例的端口隔离属性表中,得到相应的端口的允许转发端口集合,与出端口集合进行交集运算,按照得到的交集所对应的端口号,进行数据帧的转发;如此,将现有的基于VLAN的PVLAN的端口隔离属性表,减为基于少数的PVLAN实例的端口隔离属性表,降低了端口隔离处理的复杂度;同时,比现有的基于端口的PVLAN的端口隔离属性的设置更加灵活,可以使不同的VLAN有不同的端口隔离属性的设置,提高了第2层交换的安全性。


图1为本发明实现的私有虚拟局域网的方法的流程示意 图2为本发明中将每个VLAN绑定到一个PVLAN实例的示意 图3为本发明实现私有虚拟局域网的装置的结构示意图。
具体实施例方式
本发明的基本思想是在网络设备中,通过在VLAN表中增加PVLAN实例索引表项,将每个VLAN绑定到一个PVLAN实例;在网络设备的一个端口接收到数据帧后,进行基于MAC表、组播转发表、VLAN表的查表,得到出端口集合;并通过PVLAN实例索引表项得到数据帧所属VLAN绑定的PVLAN实例号,依据数据帧的入端口的端口号,在PVLAN实例号对应的PVLAN实例的端口隔离属性表中,得到相应的端口的允许转发端口集合,与出端口集合进行交集运算,按照得到的交集所对应的端口号,进行数据帧的转发。 其中,所述PVLAN实例就是将具有相同端口隔离属性的VLAN作为一个集合,共用一个端口隔离属性表;每个PVLAN实例有一组端口隔离属性表,以网络设备的端口号为端口隔离属性表的索引,端口隔离属性表的内容为各个端口接收到数据帧后允许转发的端口集合,称为允许转发端口集合。 下面通过附图及具体实施例对本发明再做进一步的详细说明。
本发明实现的私有虚拟局域网的方法,如图1所示,该方法包括以下几个步骤
步骤IOI :在网络设备中,创建多个PVLAN实例,通过在VLAN表中增加PVLAN实例索引表项,将每个VLAN绑定到一个PVLAN实例; 具体的,如图2所示,在网络设备中,用户根据每个VLAN的端口隔离属性,预先创建多个PVLAN实例,即针对具有相同端口隔离属性的VLAN创建一个PVLAN实例,其他的VLAN创建独立的PVLAN实例,每个PVLAN实例有一组端口隔离属性表,该表以端口号为索弓l ,每一表项的内容为该端口的允许转发端口集合;通过在VLAN表中增加一个PVLAN实例索引表项,PVLAN实例索引表项中的PVLAN实例号对应所述创建的PVLAN实例,这样就将每个VLAN绑定到一个PVLAN实例了 。 步骤102 :在网络设备的一个端口接收到数据帧后,进行基于MAC表、组播转发表、VLAN表的查表,得到出端口集合;
具体的,对于以太网交换设备,数据帧按照交换规则可能进行单播、组播和广播的
处理流程,在网络设备一个端口接收到数据帧后,按照现有技术,先进行查表,即进行基于
MAC表、组播转发表、VLAN表的查表;再根据查表结果得到数据帧转发的出端口,数据帧转
发的出端口可能是0个、1个或多个,将转发的出端口表示为出端口集合; 在本实施例中,为逻辑运算方便,所述出端口集合,用一个位图数据结构表示;一
般的,按照转发的出端口的端口号构造一个位图,将端口号对应的位,置为l,得到的位图作
为出端口位图; 本文中,所述接收到数据帧的端口也称为数据帧的入端口 。 步骤103 :通过PVLAN实例索引表项,得到数据帧所属VLAN绑定的PVLAN实例号,依据数据帧的入端口的端口号,在对应的PVLAN实例的端口隔离属性表中得到相应的端口的允许转发端口集合; 具体的,根据数据帧所属VLAN的VLAN号,通过VLAN表中的PVLAN实例索引表项,得到数据帧所属VLAN绑定的PVLAN实例号,依据数据帧的入端口的端口号,在PVLAN实例号对应的PVLAN实例的端口隔离属性表中,得到相应的端口的允许转发端口集合;
在本实施例中,为逻辑运算方便,所述允许转发端口集合采用端口隔离位图表示,表明根据端口的PVLAN属性已经设置的端口隔离关系;一般的,在端口隔离位图中,0表示隔离,1表示不隔离,将允许转发的端口的端口号对应的位,置为1,不允许转发的端口的端口号对应的位,置为O ;比如某个端口在PVLAN实例中的PVLAN属性为隔离端口,那么端口隔离位图中所有混合端口的端口号对应位为1,所有隔离端口和团体端口的端口号对应位为0 ;相似地,如果某个端口在PVLAN实例中的PVLAN属性为混合端口 ,那么其对应得端口隔离位图全部为l,即全部不隔离。 步骤104 :将允许转发端口集合与出端口集合进行交集运算,按照得到的交集所对应的端口号,进行数据帧的转发; 具体的,在本实施例中,将得到的端口隔离位图与出端口位图按照端口号进行逻辑与运算,其中,只存在端口隔离位图或出端口位图中的端口号经过运算后,对应的位为O ;在运算之后,得到新的位图,按照新的位图中端口隔离位图与出端口位图的交集、即位为1所对应的端口号,进行数据帧的转发; 进一步的,在本步骤中,运算之后没有得到交集时,即在本实施例中,新的位图中端口号对应的位全部为0时,表明没有端口可以发送数据帧,网络设备丢弃数据帧。
基于上述方法,本发明还提供了实现私有虚拟局域网的系统,如图3所示,该系统包括绑定模块31、出端口集合模块32、允许转发端口集合模块33、运算模块34、转发模块35 ;其中, 绑定模块31,用于在VLAN表中增加PVLAN实例索引表项,PVLAN实例索引表项中的PVLAN实例号对应PVLAN实例,将每个VLAN绑定到一个PVLAN实例;
出端口集合模块32,用于在网络设备的一个端口接收到数据帧后,进行基于MAC表、组播转发表、VLAN表的查表,得到出端口集合; 允许转发端口集合模块33,用于在网络设备的一个端口接收到数据帧后,根据绑定模块的绑定关系,即通过PVLAN实例索引表项,得到数据帧所属VLAN绑定的PVLAN实例号,依据数据帧的入端口的端口号,在对应的PVLAN实例的端口隔离属性表中得到相应的
7端口的允许转发端口集合; 运算模块34,用于将允许转发端口集合与出端口集合进行交集运算,并把运算结果传送给转发模块35 ; 转发模块35,用于按照运算结果中允许转发端口集合与出端口集合的交集所对应的端口号,进行数据帧的转发; 进一步的,所述装置还包括丢弃模块36,用于丢弃数据帧; 进一步的,所述转发模块35还用于在发现运算结果中允许转发端口集合与出端口集合没有交集时,通知丢弃模块36。 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
一种实现私有虚拟局域网的方法,其特征在于,在网络设备中,通过在虚拟局域网(VLAN)表中增加私有虚拟局域网(PVLAN)实例索引表项,将每个VLAN绑定到一个PVLAN实例;该方法还包括在网络设备的一个端口接收到数据帧后,进行查表,得到出端口集合;通过PVLAN实例索引表项得到数据帧所属VLAN绑定的PVLAN实例号,依据数据帧的入端口的端口号,在PVLAN实例号对应的PVLAN实例的端口隔离属性表中,得到相应的端口的允许转发端口集合,与出端口集合进行交集运算,按照得到的交集所对应的端口号,进行数据帧的转发。
2. 根据权利要求1所述的方法,其特征在于,所述PVLAN实例为用户根据每个VLAN的端口隔离属性预先创建的,具体为将具有相同端口隔离属性的VLAN创建一个PVLAN实例,每个PVLAN实例有一组端口隔离属性表,该表以端口号为索引,每一表项的内容为该端口的允许转发端口集合。
3. 根据权利要求1所述的方法,其特征在于,所述进行查表具体为进行基于媒体访问控制(MAC)表、组播转发表、VLAN表的查表。
4. 根据权利要求1所述的方法,其特征在于,所述出端口集合采用出端口位图表示,具体为按照转发的出端口的端口号构造一个位图,将端口号对应的位置为1。
5. 根据权利要求4所述的方法,其特征在于,所述允许转发端口集合采用端口隔离位图表示,具体为将允许转发的端口的端口号对应的位置为l,不允许转发的端口的端口号对应的位置为O。
6. 根据权利要求5所述的方法,其特征在于,所述与出端口集合进行交集运算具体为将得到的端口隔离位图与出端口位图按照端口号进行逻辑与运算,其中,只存在端口隔离位图或出端口位图中的端口号经过运算后,对应的位为0。
7. 根据权利要求1所述的方法,其特征在于,所述与出端口集合进行交集运算之后,没有得到交集时,该方法进一步包括网络设备丢弃数据帧。
8. —种实现私有虚拟局域网的装置,其特征在于,该装置包括绑定模块,用于在VLAN表中增加PVLAN实例索引表项,将每个VLAN绑定到一个PVLAN实例;出端口集合模i央,用于在网络设备的一个端口接收到数据帧后,进行查表,得到出端口隹A .朱口 ;允许转发端口集合模块,用于在网络设备的一个端口接收到数据帧后,根据绑定模块的绑定关系,得到数据帧所属VLAN绑定的PVLAN实例号,依据数据帧的入端口的端口号,在对应的PVLAN实例的端口隔离属性表中得到相应的端口的允许转发端口集合;运算模块,用于将允许转发端口集合与出端口集合进行交集运算,并把运算结果传送给转发模块;转发模块,用于按照运算结果中允许转发端口集合与出端口集合的交集所对应的端口号,进行数据帧的转发。
9. 根据权利要求8所述的装置,其特征在于,所述装置进一步包括丢弃模块,用于丢弃数据帧。
10. 根据权利要求9所述的装置,其特征在于,所述转发模块进一步用于在发现运算结果中允许转发端口集合与出端口集合没有交集时,通知丢弃模块。
全文摘要
本发明公开了一种实现私有虚拟局域网的方法,在网络设备中,通过在虚拟局域网(VLAN)表中增加私有虚拟局域网(PVLAN)实例索引表项,将每个VLAN绑定到一个PVLAN实例;在网络设备的一个端口接收到数据帧后,进行查表,得到出端口集合;通过PVLAN实例索引表项得到PVLAN实例号,依据数据帧的入端口的端口号,在PVLAN实例号对应的PVLAN实例的端口隔离属性表中,得到相应的端口的允许转发端口集合,与出端口集合进行交集运算,按照得到的交集所对应的端口号,进行转发;本发明同时还公开了一种实现私有虚拟局域网的装置;从而在降低了PVLAN转发处理的复杂程度的同时,提高了PVLAN应用的灵活性。
文档编号H04L12/46GK101707545SQ20091023745
公开日2010年5月12日 申请日期2009年11月6日 优先权日2009年11月6日
发明者张海峰 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1