一种PVLAN MAC地址表、PVLAN中MAC地址学习方法及其系统
技术领域
本发明涉及计算机网络通讯技术领域,尤其涉及一种PVLAN MAC地址表、PVLAN中MAC地址学习方法及其系统。
背景技术
私有VLAN(Private VLAN,简称PVLAN)是一种VLAN特性,在PVLAN的概念中,交换机端口有三种类型:隔离端口(Isolated port),团体端口(Community port),主端口(Primary port);它们分别对应不同的VLAN类型:隔离端口属于隔离PVLAN(Isolated PVLAN),团体端口属于团体PVLAN(Community PVLAN),而代表一个Private VLAN整体的是主PVLAN(Primary PVLAN),前面两类VLAN需要和它绑定在一起,同时它还包括主端口。在隔离PVLAN中,隔离端口只能和主端口通信,彼此不能交换流量;在团体PVLAN中,团体端口不仅可以和主端口通信,而且彼此也可以交换流量。主端口与路由器或第三层交换设备的接口相连,它收到的流量可以发往隔离端口和团体端口。PVLAN的应用对于保证接入网络的数据通信的安全性是非常有效的,用户只需与自己的默认网关连接,一个PVLAN不需要多个VLAN和IP子网就提供了具备第二层数据通信安全性的连接,所有的用户都接入PVLAN,从而实现了所有用户与默认网关的连接,而与PVLAN内的其他用户没有任何访问。PVLAN功能可以保证同一个VLAN中的各个端口相互之间不能通信,但可以穿过Trunk端口,这样即使同一VLAN中的用户,相互之间也不会受到广播的影响。在PVLAN功能的使用中,对于端口中收到数据流量时需要学习MAC地址,正确学习这些MAC地址才能保证流量按照PVLAN功能进行转发,减少网络中流量的泛洪,尽量保证 流量进行已知单播转发。
发明内容
为了克服现有技术中的缺陷和不足,本发明提出一种PVLAN MAC地址表、一种PVLAN中MAC地址学习方法和及其系统。
本发明公开一种PVLAN MAC地址表,所述PVLAN MAC地址表包括端口号、MAC地址和VLAN;
所述PVLAN MAC地址表中,端口类型为隔离端口的,所述MAC地址记录的VLAN字段为所述端口关联的主PVLAN;
所述PVLAN MAC地址表中,端口类型为主端口的,分别包含有VLAN字段为所述端口绑定的主PVLAN的记录、VLAN字段为所述端口关联的团体PVLAN的记录和VLAN字段为所述端口关联的隔离PVLAN的记录;
所述PVLAN MAC地址表中,端口类型为团体端口的,分别包含有VLAN字段为所述端口绑定的团体PVLAN的记录和VLAN字段为所述端口关联的主PVLAN的记录。
本发明还提出了一种PVLAN中MAC地址学习方法,该方法基于上述PVLANMAC地址表,包括:
S1、在交换设备上配置PVLAN属性,将所述PVLAN的团体PVLAN和隔离PVLAN绑定到主PVLAN上,将各端口绑定到所述端口所属的PVLAN中;
S2、当交换设备收到用户数据报文时,获取端口号和所述数据报文的源MAC地址,依据所述端口号和所述配置的PVLAN属性获得所述端口的类型;
S3、依据所述端口的类型进行如下操作:
若所述端口是主端口,依据所述配置的PVLAN属性,获取所述端口绑定的主PVLAN、所述端口关联的团体PVLAN和所述端口关联的隔离PVLAN,将所述端 口号、所述源MAC地址、主PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的团体PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的隔离PVLAN写入MAC地址表中;
若所述端口是团体端口,依据所述配置的PVLAN属性,获取所述端口绑定的团体PVLAN和所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口所在的团体PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中;
若所述端口是隔离端口,依据所述配置的PVLAN属性,获取所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中。
或者,所述步骤S3替换为:
S31、判断所述端口是否是隔离端口,若是,则执行步骤S34,否则执行步骤S32;
S32、依据所述配置的PVLAN属性,获取所述端口绑定的PVLAN,将所述端口号、所述源MAC地址、所述端口绑定的PVLAN写入MAC地址表中,执行步骤S33;
S33、遍历所述MAC地址表,对所述MAC地址表中每条MAC地址记录进行如下操作:获取所述MAC地址记录的VLAN,依据所述配置的PVLAN属性判断所述VLAN的类型,
当所述VLAN的类型为主PVLAN,依据所述配置的PVLAN属性查找所述主PVLAN关联的团体PVLAN和关联的隔离PVLAN,将所述MAC地址记录的VLAN信息分别替换为所述关联的团体PVLAN或所述关联的隔离PVLAN添加到MAC地址表中;
当所述VLAN的类型为团体PVLAN,依据所述配置的PVLAN属性查找所述团体PVLAN关联的主PVLAN,将所述MAC地址记录的VLAN信息替换为所述关联的主PVLAN添加到MAC地址表中,结束;
S34、依据所述配置的PVLAN属性,获取所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中。
或者,步骤S34之后返回步骤S33。
进一步地,步骤S33所述遍历所述MAC地址表之前还包括,判定MAC复制定时器计时是否达到预设阈值,若是则执行步骤S33,否则MAC复制定时器继续计时,其中所述MAC复制定时器为所述交换设备中专门用于MAC地址复制的计时器件。
或者,所述步骤S3替换为:
S361、判断所述交换设备的MAC学习方式是否为定时学习方式,若是则执行步骤S363,否则执行步骤S362;
S362、依据所述端口的类型进行如下操作:
若所述端口是主端口,依据所述配置的PVLAN属性,获取所述端口绑定的主PVLAN、所述端口关联的团体PVLAN和所述端口关联的隔离PVLAN,将所述端口号、所述源MAC地址、主PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的团体PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的隔离PVLAN写入MAC地址表中;
若所述端口是团体端口,依据所述配置的PVLAN属性,获取所述端口绑定的团体PVLAN和所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口所在的团体PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中;
若所述端口是隔离端口,依据所述配置的PVLAN属性,获取所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中,结束;
S363、判断所述端口是否是隔离端口,若是,则执行步骤S366,否则执行步骤S364;
S364、依据所述配置的PVLAN属性,获取所述端口绑定的PVLAN将,所述端口号、所述源MAC地址、所述端口绑定的PVLAN写入MAC地址表中,执行步骤S365;
S365、遍历所述MAC地址表,对所述MAC地址表中每条MAC地址记录进行如下操作:获取所述MAC地址记录的VLAN,依据所述配置的PVLAN属性判断所述VLAN的类型,
当所述VLAN的类型为主PVLAN,依据所述配置的PVLAN属性查找所述主PVLAN关联的团体PVLAN和关联的隔离PVLAN,将所述MAC地址记录的VLAN信息分别替换为所述关联的团体PVLAN或所述关联的隔离PVLAN添加到MAC地址表中;
当所述VLAN的类型为团体PVLAN,依据所述配置的PVLAN属性查找所述团体PVLAN关联的主PVLAN,将所述MAC地址记录的VLAN信息替换为所述关联的主PVLAN添加到MAC地址表中,结束;
S366、依据所述配置的PVLAN属性,获取所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中。
或者,所述步骤S366之后返回步骤S365。
进一步地,步骤S365之前还包括,判定MAC复制定时器计时是否达到预设阈值,若是则执行步骤S365,否则MAC复制定时器继续计时,其中所述MAC复制 定时器为所述交换设备中专门用于MAC地址复制的计时器件。
本发明还提出了一种PVLAN中MAC地址学习系统,该系统基于如权利要求1所述的PVLAN MAC地址表,包括:
系统配置模块,用于在交换设备上配置PVLAN属性,将所述PVLAN的团体PVLAN和隔离PVLAN绑定到主PVLAN上,将各端口绑定到所述端口所属的PVLAN中;用于依据所述端口号和所述配置的PVLAN属性获得所述端口的类型;用于依据所述配置的PVLAN属性,获取主端口绑定的主PVLAN、关联的团体PVLAN和关联的隔离PVLAN,获取团体端口绑定的团体PVLAN和关联的主PVLAN,获取隔离端口关联的主PVLAN;
非定时学习模块,包括隔离端口MAC学习模块、团体端口MAC学习模块和主端口MAC学习模块,与所述配置模块连接,当交换设备收到用户数据报文时,用于获取端口号和所述数据报文的源MAC地址,依据所述端口号和所述系统配置模块配置的PVLAN属性获得所述端口的类型,依据所述端口类型调用对应的端口MAC学习模块进行MAC地址学习;若所述端口是主端口,调用主端口MAC学习模块进行MAC地址学习,若所述端口是团体端口,调用团体端口MAC学习模块进行MAC地址学习,若所述端口是隔离端口,调用隔离端口MAC学习模块进行MAC地址学习;
主端口MAC学习模块,用于依据所述系统配置模块配置的PVLAN属性,获取所述端口绑定的主PVLAN、所述端口关联的团体PVLAN和所述端口关联的隔离PVLAN,将所述端口号、所述源MAC地址、主PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的团体PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的隔离PVLAN写入MAC地址表中;
团体端口MAC学习模块,用于依据所述系统配置模块配置的PVLAN属性, 获取所述端口绑定的团体PVLAN和所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口所在的团体PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中;
隔离端口MAC学习模块,用于依据所述系统配置模块配置的PVLAN属性,获取所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中。
本发明供了另一种PVLAN中MAC地址学习系统,该系统基于如前所述的PVLAN MAC地址表,包括:
系统配置模块,用于在交换设备上配置PVLAN属性,将所述PVLAN的团体PVLAN和隔离PVLAN绑定到主PVLAN上,将各端口绑定到所述端口所属的PVLAN中;用于依据端口号和所述配置的PVLAN属性获得所述端口的类型;用于依据所述配置的PVLAN属性,获取主端口绑定的主PVLAN、关联的团体PVLAN和关联的隔离PVLAN,获取团体端口绑定的团体PVLAN和关联的主PVLAN,获取隔离端口关联的主PVLAN;
定时学习模块,与所述配置模块连接,包括隔离端口学习模块、非隔离端口学习模块和关联学习模块,当所述端口为隔离端口时,用于调用隔离端口学习模块进行MAC地址学习,当所述端口为非隔离端口时,用于调用非隔离端口学习模块进行MAC地址学习后调用关联学习模块进行MAC地址学习;
隔离端口学习模块,用于依据所述配置的PVLAN属性,获取所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中;
非隔离端口学习模块,用于依据所述配置的PVLAN属性,获取所述端口绑定的PVLAN,将所述端口号、所述源MAC地址、所述端口绑定的PVLAN写入MAC地 址表中;
关联学习模块,遍历所述MAC地址表,对所述MAC地址表中每条MAC地址记录进行如下判断:获取所述MAC地址记录的VLAN,依据所述配置的PVLAN属性判断所述VLAN的类型,
当所述VLAN的类型为主PVLAN,依据所述配置的PVLAN属性查找所述主PVLAN关联的团体PVLAN和关联的隔离PVLAN,将所述MAC地址记录的VLAN信息分别替换为所述关联的团体PVLAN或所述关联的隔离PVLAN添加到MAC地址表中;
当所述VLAN的类型为团体PVLAN,依据所述配置的PVLAN属性查找所述团体PVLAN关联的主PVLAN,将所述MAC地址记录的VLAN信息替换为所述关联的主PVLAN添加到MAC地址表中。
进一步地,所述隔离端口学习模块还用于调用关联学习模块进行MAC地址学习。
进一步地,所述定时学习模块还包括MAC复制定时器,当所述MAC复制定时器计时达到预设阈值时启运所述关联学习模块工作。
本发明还提供了一种PVLAN中MAC地址学习系统,该系统基于如前所述的PVLAN MAC地址表,包括:
系统配置模块,用于在交换设备上配置PVLAN属性,将所述PVLAN的团体PVLAN和隔离PVLAN绑定到主PVLAN上,将各端口绑定到所述端口所属的PVLAN中;用于依据端口号和所述配置的PVLAN属性获得所述端口的类型;用于依据所述配置的PVLAN属性,获取主端口绑定的主PVLAN、关联的团体PVLAN和关联的隔离PVLAN,获取团体端口绑定的团体PVLAN和关联的主PVLAN,获取隔离端口关联的主PVLAN;
非定时学习模块,包括隔离端口MAC学习模块、团体端口MAC学习模块和主端口MAC学习模块,与所述配置模块连接,当所述交换设备的MAC学习方式为非定时学习方式,调用该非定时学习模块进行MAC地址学习,当交换设备收到用户数据报文时,获取端口号和所述数据报文的源MAC地址,依据所述端口号和所述系统配置模块配置的PVLAN属性获得所述端口的类型,依据所述端口类型调用对应的端口MAC学习模块进行MAC地址学习;若所述端口是主端口,调用主端口MAC学习模块进行MAC地址学习,若所述端口是团体端口,调用团体端口MAC学习模块进行MAC地址学习,若所述端口是隔离端口,调用隔离端口MAC学习模块进行MAC地址学习;
主端口MAC学习模块,用于依据所述系统配置模块配置的PVLAN属性,获取所述端口绑定的主PVLAN、所述端口关联的团体PVLAN和所述端口关联的隔离PVLAN,将所述端口号、所述源MAC地址、主PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的团体PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的隔离PVLAN写入MAC地址表中;
团体端口MAC学习模块,用于依据所述系统配置模块配置的PVLAN属性,获取所述端口绑定的团体PVLAN和所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口所在的团体PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中;
隔离端口MAC学习模块,依据所述系统配置模块配置的PVLAN属性,获取所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中。
定时学习模块,与所述配置模块连接,包括隔离端口学习模块、非隔离端口学习模块和关联学习模块,当所述交换设备的MAC学习方式为定时学习方 式,调用该定时学习模块进行MAC地址学习,当所述端口为隔离端口时,调用隔离端口学习模块进行MAC地址学习,当所述端口为非隔离端口时,调用非隔离端口学习模块进行MAC地址学习后调用关联学习模块进行MAC地址学习;
隔离端口学习模块,依据所述配置的PVLAN属性,获取所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中;
非隔离端口学习模块,否则依据所述配置的PVLAN属性,获取所述端口绑定的PVLAN,将所述端口号、所述源MAC地址、所述端口绑定的PVLAN写入MAC地址表中;
关联学习模块,遍历所述MAC地址表,对所述MAC地址表中每条MAC地址记录进行如下判断:获取所述MAC地址记录的VLAN,依据所述配置的PVLAN属性判断所述VLAN的类型,
当所述VLAN的类型为主PVLAN,依据所述配置的PVLAN属性查找所述主PVLAN关联的团体PVLAN和关联的隔离PVLAN,将所述MAC地址记录的VLAN信息分别替换为所述关联的团体PVLAN或所述关联的隔离PVLAN添加到MAC地址表中;
当所述VLAN的类型为团体PVLAN,依据所述配置的PVLAN属性查找所述团体PVLAN关联的主PVLAN,将所述MAC地址记录的VLAN信息替换为所述关联的主PVLAN添加到MAC地址表中。
进一步地,所述隔离端口学习模块还用于调用关联学习模块进行MAC地址学习。
进一步地,所述定时学习模块还包括MAC复制定时器,当所述MAC复制定时器计时达到预设阈值时启运所述关联学习模块工作。
本发明通过设计一种新的MAC地址表:PVLAN MAC地址表,包括端口号、MAC地址和VLAN,通过一条记录来学习每个隔离端口,通过两条记录来学习每个团体端口,通过三条记录来学习每个主端口,本发明实现了几种新的PVLANMAC地址表的地址的学习方法,将PVLAN中的MAC地址正确学习到相应的PVLANMAC地址表中,使PVLAN中的端口流量尽量走已知单播转发流程,提高了网络中的转发性能和安全性。
附图说明
图1为本发明实施例一所述PVLAN MAC地址表存储方法的系统示意图;
图2为本发明实施例二所述PVLAN中MAC地址学习方法流程图;
图3为本发明实施例三所述PVLAN中MAC地址学习方法流程图;
图4为本发明实施例五所述PVLAN中MAC地址学习系统结构框图;
图5为本发明实施例六所述PVLAN中MAC地址学习系统结构框图;
图6为本发明实施例七所述PVLAN中MAC地址学习系统结构框图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以详细说明。
实施例一
本实施例公开了一种PVLAN MAC地址表,所述PVLAN MAC地址表包括端口号、MAC地址和VLAN。所述PVLAN MAC地址表中,端口类型为隔离端口的,所述MAC地址记录的VLAN为所述端口关联的主PVLAN;所述PVLAN MAC地址表中,端口类型为主端口的,分别包含有VLAN为所述端口绑定的主PVLAN的记录、VLAN为所述端口关联的团体PVLAN的记录和VLAN为所述端口关联的隔离PVLAN的记录;所述PVLAN MAC地址表中,端口类型为团体端口的,分别包含有VLAN 为所述端口绑定的团体PVLAN的记录和VLAN为所述端口关联的主PVLAN的记录。
图1为本实施例所述PVLAN MAC地址表存储方法的系统示意图,如图1所示,以太网交换机A为一台网关接入交换设备,交换机上使能PVLAN功能,配置VLAN100为主PVLAN,VLAN200为团体PVLAN,VLAN300为隔离PVLAN,VLAN200和VLAN300绑定到VLAN100,端口Ethernet1/1和Ethernet1/2划到VLAN200中,端口Ethernet1/3和Ethernet1/4划到VLAN300中,端口Ethernet1/5划到VLAN100中。
端口和PVLAN之间的关系如下表所示:
端口号 |
PVLAN ID |
配置VLAN |
实际属于VLAN |
Ethernet 1/1 |
200 |
200 |
100,200 |
Ethernet 1/2 |
200 |
200 |
100,200 |
Ethernet 1/3 |
300 |
300 |
100 |
Ethernet 1/4 |
300 |
300 |
100 |
Ethernet 1/5 |
100 |
100 |
100,200,300 |
端口Ethernet1/1下联用户1,端口Ethernet1/2下联用户2,端口Ethernet1/3下联用户3,端口Ethernet1/4下联用户4,端口Ethernet1/5上联服务器,当用户有数据流量经过交换机A时,交换机学习用户的MAC地址,根据配置的私有VLAN信息,本实施例所述的PVLAN MAC地址表下表所示:
根据MAC地址表,用户1和用户2属于同一个团体PVLAN,它们的数据报文携带的VLAN信息为VLAN200,VLAN中有端口Ethernet1/1、Ethernet1/2和Ethernet1/5,用户1的未知单播或者广播数据可以直接二层转发到用户2和服务器,已知单播数据直接转发到相应的端口,减少了广播流量的转发。用户3和用户4在同一个隔离的VLAN300中,他们的数据报文携带的VLAN信息为VLAN300,VLAN仅中有端口Ethernet1/5,用户3的数据流量不能直接转发给用户4,隔离PVLAN中的用户的数据只能直接二层转发给服务器,隔离PVLAN中的用户很好的隔离了广播流量,提高了网络安全性。
实施例二
图2为本实施例所述PVLAN中MAC地址学习方法流程图,如图2所示,本实施例所述PVLAN中MAC地址学习方法包括:
S201、在交换设备上配置PVLAN属性,将团体PVLAN和隔离PVLAN绑定到主PVLAN上,将各端口绑定到该端口所属的PVLAN中;
S202、当交换设备收到用户数据报文,获取端口号和源MAC地址,获取端 口类型;
当交换设备收到用户数据报文时,获取端口号和所述数据报文的源MAC地址,依据所述端口号和所述配置的PVLAN属性获得所述端口的类型。
S203、判断端口类型是否是主端口,若是则执行步骤S204,否则执行步骤S205;
S204、获取端口绑定的主PVLAN、关联的团体PVLAN和关联的隔离PVLAN,将端口号、源MAC地址、主PVLAN写入MAC地址表中,将端口号、源MAC地址、端口关联的团体PVLAN写入MAC地址表中,将端口号、源MAC地址、端口关联的隔离PVLAN写入MAC地址表中,结束;
若所述端口是主端口,依据所述配置的PVLAN属性,获取所述端口绑定的主PVLAN、所述端口关联的团体PVLAN和所述端口关联的隔离PVLAN,将所述端口号、所述源MAC地址、主PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的团体PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的隔离PVLAN写入MAC地址表中;
S205、判断端口类型是否是团体端口,若是则执行步骤S206,否则执行步骤S207;
S206、获取端口绑定的团体PVLAN和端口关联的主PVLAN,将端口号、源MAC地址、端口所在的团体PVLAN写入MAC地址表中,将端口号、源MAC地址、端口关联的主PVLAN写入MAC地址表中;
若所述端口是团体端口,依据所述配置的PVLAN属性,获取所述端口绑定的团体PVLAN和所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口所在的团体PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中。
S207、获取端口关联的主PVLAN将端口号、源MAC地址、端口关联的主PVLAN写入MAC地址表中。
若所述端口是隔离端口,依据所述配置的PVLAN属性,获取所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中。
实施例三
图3为本实施例所述PVLAN中MAC地址学习方法流程图,如图3所示,本实施例所述PVLAN中MAC地址学习方法包括:
S301、在交换设备上配置PVLAN属性,将团体PVLAN和隔离PVLAN绑定到主PVLAN上,将各端口绑定到该端口所属的PVLAN中;
S302、当交换设备收到用户数据报文,获取端口号和源MAC地址,获取端口类型;
当交换设备收到用户数据报文时,获取端口号和所述数据报文的源MAC地址,依据所述端口号和所述配置的PVLAN属性获得所述端口的类型。
S303、判断端口类型是否是隔离端口,若是则执行步骤S304,否则执行步骤S305;
S304、获取端口绑定的PVLAN,将端口号、源MAC地址、端口绑定的PVLAN写入MAC地址表中,结束;
依据所述配置的PVLAN属性,获取所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中。执行完本步骤后结束,或者,执行步骤S306。
S305、获取端口关联的主PVLAN,将端口号、源MAC地址、端口关联的主PVLAN写入MAC地址表中;
依据所述配置的PVLAN属性,获取所述端口绑定的PVLAN,将所述端口号、所述源MAC地址、所述端口绑定的PVLAN写入MAC地址表中,执行步骤S306。
S306、当MAC复制定时器计时达到预设阈值,遍历MAC地址表,对MAC地址表中每条MAC地址记录进行MAC复制操作;
当VLAN的类型为主PVLAN,将MAC地址记录的VLAN信息分别替换为端口关联的团体PVLAN和隔离PVLAN添加到MAC地址表中当VLAN的类型为团体PVLAN,将MAC地址记录的VLAN信息替换为端口关联的主PVLAN添加到MAC地址表中。
本步骤之前还可包括:判定MAC复制定时器计时是否达到预设阈值,若是则执行本步骤。其中所述MAC复制定时器为所述交换设备中专门用于MAC地址复制的计时器件。
本步骤具体为:遍历所述MAC地址表,对所述MAC地址表中每条MAC地址记录进行如下操作:获取所述MAC地址记录的VLAN,依据所述配置的PVLAN属性判断所述VLAN的类型,当所述VLAN的类型为主PVLAN,依据所述配置的PVLAN属性查找所述主PVLAN关联的团体PVLAN和关联的隔离PVLAN,将所述MAC地址记录的VLAN信息分别替换为所述关联的团体PVLAN或所述关联的隔离PVLAN添加到MAC地址表中;当所述VLAN的类型为团体PVLAN,依据所述配置的PVLAN属性查找所述团体PVLAN关联的主PVLAN,将所述MAC地址记录的VLAN信息替换为所述关联的主PVLAN添加到MAC地址表中,结束。
实施例四
本实施例所述PVLAN中MAC地址学习方法包括实施例二的方法和实施例三的方法,具体方案为:在交换设备上配置PVLAN属性后,当所述交换机上接收到数据报文时,通过读取所述交换机上的配置判断所述交换设备的MAC学习方式是否为定时学习方式,若是则采用实施例三的方式,否则采用实施例二的方 式,其具体实现方式详见实施例二和实施例三,在此不作赘述。
实施例五
图4为本实施所述PVLAN中MAC地址学习系统结构框图,如图4所示,本实施例所述的PVLAN中MAC地址学习系统包括:
系统配置模块401,用于在交换设备上配置PVLAN属性,将所述PVLAN的团体PVLAN和隔离PVLAN绑定到主PVLAN上,将各端口绑定到所述端口所属的PVLAN中;用于依据所述端口号和所述配置的PVLAN属性获得所述端口的类型;用于依据所述配置的PVLAN属性,获取主端口绑定的主PVLAN、关联的团体PVLAN和关联的隔离PVLAN,获取团体端口绑定的团体PVLAN和关联的主PVLAN,获取隔离端口关联的主PVLAN。
非定时学习模块402,包括隔离端口MAC学习模块4021、团体端口MAC学习模块4022和主端口MAC学习模块4023,与所述系统配置模块401连接,当交换设备收到用户数据报文时,用于获取端口号和所述数据报文的源MAC地址,依据所述端口号和所述系统配置模块401配置的PVLAN属性获得所述端口的类型,依据所述端口类型调用对应的端口MAC学习模块进行MAC地址学习;若所述端口是主端口,用于调用主端口MAC学习模块进行MAC地址学习,若所述端口是团体端口,用于调用团体端口MAC学习模块进行MAC地址学习,若所述端口是隔离端口,用于调用隔离端口MAC学习模块进行MAC地址学习。
主端口MAC学习模块4023,依据所述系统配置模块401配置的PVLAN属性,获取所述端口绑定的主PVLAN、所述端口关联的团体PVLAN和所述端口关联的隔离PVLAN,将所述端口号、所述源MAC地址、主PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的团体PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的隔离PVLAN写入MAC地址表 中。
团体端口MAC学习模块4022,用于依据所述系统配置模块401配置的PVLAN属性,获取所述端口绑定的团体PVLAN和所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口所在的团体PVLAN写入MAC地址表中,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中。
隔离端口MAC学习模块4021,用于依据所述系统配置模块401配置的PVLAN属性,获取所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中。
实施例六
图5为本实施例所述PVLAN中MAC地址学习系统结构框图,如图5所示,本实施例所述的PVLAN中MAC地址学习系统包括:
系统配置模块501,用于在交换设备上配置PVLAN属性,将所述PVLAN的团体PVLAN和隔离PVLAN绑定到主PVLAN上,将各端口绑定到所述端口所属的PVLAN中;用于依据端口号和所述配置的PVLAN属性获得所述端口的类型;用于依据所述配置的PVLAN属性,获取主端口绑定的主PVLAN、关联的团体PVLAN和关联的隔离PVLAN,获取团体端口绑定的团体PVLAN和关联的主PVLAN,获取隔离端口关联的主PVLAN。
定时学习模块502,与所述系统配置模块501连接,包括隔离端口学习模块5021、非隔离端口学习模块5022和关联学习模块5023,当所述端口为隔离端口时,用于调用隔离端口学习模块5021进行MAC地址学习,当所述端口为非隔离端口时,用于调用非隔离端口学习模块5022进行MAC地址学习后调用关联学习模块5023进行MAC地址学习。
进一步地,所述定时学习模块还包括MAC复制定时器,当所述MAC复制定 时器计时达到预设阈值时启运所述关联学习模块工作。
隔离端口学习模块5021,用于依据所述配置的PVLAN属性,获取所述端口关联的主PVLAN,将所述端口号、所述源MAC地址、所述端口关联的主PVLAN写入MAC地址表中。
进一步地,所述隔离端口学习模块还用于调用关联学习模块进行MAC地址学习。
非隔离端口学习模块5022,用于依据所述配置的PVLAN属性,获取所述端口绑定的PVLAN,将所述端口号、所述源MAC地址、所述端口绑定的PVLAN写入MAC地址表中。
关联学习模块5023,用于依次把各端口相关的MAC地址记录添加到PVLANMAC地址表中,添加的条件为:遍历所述MAC地址表,对所述MAC地址表中每条MAC地址记录进行如下判断:获取所述MAC地址记录的VLAN,依据所述配置的PVLAN属性判断所述VLAN的类型,当所述VLAN的类型为主PVLAN,依据所述配置的PVLAN属性查找所述主PVLAN关联的团体PVLAN和关联的隔离PVLAN,将所述MAC地址记录的VLAN信息分别替换为所述关联的团体PVLAN或所述关联的隔离PVLAN添加到MAC地址表中,当所述VLAN的类型为团体PVLAN,依据所述配置的PVLAN属性查找所述团体PVLAN关联的主PVLAN,将所述MAC地址记录的VLAN信息替换为所述关联的主PVLAN添加到MAC地址表中。
实施例七
图6为本实施例所述PVLAN中MAC地址学习系统结构框图,如图6所示,本实施例所述PVLAN中MAC地址学习系统包括:系统配置模块601,非定时学习模块602和定时学习模块606。
系统配置模块601,与实施例六所述的系统配置模块501相同,在此不作赘 述。
系统配置模块601配置PVLAN属性后,当所述交换机上接收到数据报文时,通过读取所述交换机上的配置决定所述交换设备是调用非定时学习模块602还是调用定时学习模块603进行MAC地址学习。
非定时学习模块602,包括团体端口MAC学习模块6021、主端口MAC学习模块6022和隔离端口MAC学习模块6023,与实施例五所述的非定时学习模块402相同,在此不作赘述。
定时学习模块603,包括隔离端口MAC学习模块6031、非隔离端口MAC学习模块6032和关联学习模块6033,与实施例六所述的定时学习模块502相同,在此不作赘述。
进一步地,所述定时学习模块603还包括MAC复制定时器,当所述MAC复制定时器计时达到预设阈值时启运所述关联学习模块工作。
进一步地,所述隔离端口学习模块还可用于调用关联学习模块进行MAC地址学习。
本发明实施例一通过设计一种新的MAC地址表:PVLAN MAC地址表,包括端口号、MAC地址和VLAN,通过一条记录来学习每个隔离端口,通两条记录来学习每个团体端口,通过三条记录来学习每个主端口,能够实现使PVLAN中的端口流量尽量走已知单播转发流程,提高了网络中的转发性能和安全性。本发明实施例二至实施例七实现了几种新的PVLAN MAC地址表的地址的学习方法,将PVLAN中的MAC地址正确学习到相应的PVLAN MAC地址表中。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。