一种mac地址学习方法及装置制造方法

文档序号:7775480阅读:122来源:国知局
一种mac地址学习方法及装置制造方法
【专利摘要】本发明实施例提供一种MAC地址学习方法及装置,该方法包括:交换设备确定自身通过任一端口收到的终端发来的报文中携带的MAC地址,是否在预设的不可抢占式MAC表中,在确定为否,且不可抢占式MAC表中的MAC地址数未达到设定数值时,将其添到可抢占式MAC表中,在确定报文为DHCP报文时,转发报文且监测终端与DHCP服务器的交互过程,并在监测到DHCP服务器为终端成功分配IP地址后时,将MAC地址作为合法MAC地址添到不可抢占式MAC表中,这两个表中的MAC地址总数不大于设定数值。本发明通过改变MAC地址学习机制,对MAC地址进行识别,以在MAC地址泛洪时,使交换机不受攻击并保证合法终端正常使用网络。
【专利说明】—种MAC地址学习方法及装置
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种MAC地址学习方法及装置。
【背景技术】
[0002]媒体访问控制(Media Access Control, MAC)地址,也称为硬件地址,是识别局域网中网络设备节点例如终端的标识,在网络底层的物理传输过程中,通过MAC地址可以实现不同网络设备之间的通信。
[0003]以太网是当今现有局域网采用的最通用的通信协议标准,以太网中进行数据传输的过程如下:以太网交换机根据接收到的终端发来的报文中携带的MAC地址,将报文转发到特定端口 ;这样一来,交换机必须记住对应端口的相关信息,这个信息通常存储在MAC表中,交换机通过MAC地址学习的方式来填充MAC表。
[0004]具体地,交换机在接收到该终端发来的报文之后,通过检查所接收到的报文中携带的MAC地址是否在MAC表中,如果检查出不在MAC表中,则学习该MAC地址,即创建一条MAC地址与端口互联的记录,对于此条记录,交换机学习到的这个MAC地址通常具有生存时间(即MAC地址的老化时间),如果交换机在老化时间内没有重新学习到该MAC地址,这意味着MAC表中的这条记录已到期,从MAC表中删除。
[0005]需要说明的是,交换机对MAC地址的学习通常采用先收到先学习的方式,即不可抢占模式,如果交换机的MAC表已学满,那么,后续收到的报文不再进行MAC地址学习。
[0006]由于交换机的MAC表中MAC地址的容量是有限的,当局域网中存在攻击者时,攻击者利用交换机对MAC地址的学习功能,使交换机遭受大量的MAC地址的攻击;例如,向交换机发送大量不同MAC地址的报文,即以MAC地址进行泛洪,导致MAC表很快被学满,进而导致到达目的端口和来自未知地址的业务将被泛洪到交换机的所有端口,从而引起网络性能的明显下降;另外,如果攻击者保持非法MAC地址的泛洪,最后交换机学习到的所有较早的合法MAC地址由于老化将过期,导致所有合法的业务将被淹没;由此,从性能和安全这两个角度来看,MAC地址的泛洪攻击将会对网络造成重大影响。
[0007]针对上述情况,目前通常采用下述方式解决:
[0008]第一种方式,静态配置MAC地址,即,关闭交换机的MAC地址自动学习功能,收集交换机的各个端口下接入的终端的合法MAC地址,然后,根据收集的合法MAC地址,建立各个端口与各自接入的终端的MAC地址的对应关系。
[0009]第二种方式:动态学习MAC地址,即,限制交换机的单个端口上学习MAC地址的数量,由于MAC地址的泛洪攻击一般是从某个固定的端口进行攻击,因此通过限制单个端口的地址表容量,防止一个端口进来的攻击源把MAC地址表占满,以保证其他端口的正常运行。
[0010]从上述解决方式可以看出,不管采用哪种方式,均在一定程度上避免了 MAC地址泛洪的问题,但是,如果采用第一种方式的话,需要人工进行静态配置,人力资源消耗较大,且在终端的位置改变或者更换时,均需要手工修改MAC表,操作不方便;如果采用第二种方式的话,虽然对交换机的单个端口上学习MAC地址的数量进行了限制,但并不知晓MAC表中各个端口对应的MAC地址是合法终端发出的,还是攻击者发出的,这样一来,在某个端口被攻击者攻击时,此端口下可学习的MAC地址数仍然很快学满,从而导致此端口下的合法终端无法正常使用网络。

【发明内容】

[0011]本发明实施例提供了 一种MAC地址学习方法及装置,用以解决现有采用静态配置MAC地址导致操作不方便,且动态学习MAC地址在MAC地址泛洪时无法保证合法终端正常使用网络的问题。
[0012]基于上述问题,本发明实施例提供的一种MAC地址学习方法,包括:
[0013]交换设备确定自身通过任一端口接收到的终端发来的报文中携带的MAC地址,是否在预设的不可抢占式MAC表中,所述不可抢占式MAC表用于存储通过每个端口学习到的合法MAC地址;
[0014]若否,在确定出所述不可抢占式MAC表中的MAC地址数未达到设定数值时,将所述MAC地址添加到预设的可抢占式MAC表中,并确定所述报文是否为动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)报文,所述可抢占式MAC表用于存储通过每个端口学习到的疑似非法MAC地址,且与所述不可抢占式MAC表中的MAC地址总数不大于所述设定数值;
[0015]在确定出所述报文为DHCP报文时,将其转发,并监测所述终端与DHCP服务器的交互过程,在监测到DHCP服务器为所述终端成功分配IP地址后,将所述MAC地址作为合法MAC地址添加到所述不可抢占式MAC表中。
[0016]本发明实施例提供的一种MAC地址学习装置,包括:
[0017]接收模块,用于通过所述装置的任一端口接收终端发来的携带有MAC地址的报文;
[0018]确定模块,用于确定所述接收模块接收到的所述报文中携带的MAC地址,是否在预设的不可抢占式MAC表中;在确定为否时,确定所述不可抢占式MAC表中的MAC地址数是否达到设定数值;以及在确定出未达到所述设定数值时,确定所述报文是否为DHCP报文,所述不可抢占式MAC表用于存储所述装置通过每个端口学习到的合法MAC地址;
[0019]添加模块,用于在所述确定模块确定出未达到所述设定数值时,将所述MAC地址添加到预设的可抢占式MAC表中;以及在监测模块监测到DHCP服务器为所述终端成功分配IP地址后,将所述MAC地址添加到所述不可抢占式MAC表中,所述可抢占式MAC表用于存储所述装置通过每个端口学习到的疑似非法MAC地址,且与所述不可抢占式MAC表中的MAC地址总数不大于所述设定数值;
[0020]转发模块,用于在所述确定模块确定出所述报文为DHCP报文时,转发所述报文;
[0021]监测模块,用于在所述确定模块确定出所述报文为DHCP报文时,监测所述终端与所述DHCP服务器的交互过程。
[0022]本发明实施例的有益效果包括:
[0023]本发明实施例提供的MAC地址学习方法及装置,在该方法中,交换设备确定自身通过任一端口接收到的终端发来的报文中携带的MAC地址,是否在预设的不可抢占式MAC表中,在确定为否,且确定出不可抢占式MAC表中的MAC地址数未达到设定数值时,将MAC地址添加到预设的可抢占式MAC表中,再确定报文是否是DHCP报文;在确定为是时,转发报文且监测终端与DHCP服务器的交互过程,并在监测到DHCP服务器为终端成功分配IP地址后,将MAC地址作为合法MAC地址添加到不可抢占式MAC表中,并且不可抢占式MAC表和可抢占式MAC表中的MAC地址总数不大于设定数值。本发明实施例无需人工逐一绑定MAC地址,操作起来较方便,并且通过对交换设备的各端口的MAC地址数量进行限制,创建区分报文的不可抢占式MAC表和可抢占式MAC表,来实现在MAC地址泛洪的情况下,交换机上各端口下的不可抢占式MAC表保持稳定,不会被砸满,同时保证了各端口下的合法终端均可正常获取到IP地址,即能够正常使用网络。
【专利附图】

【附图说明】
[0024]图1为本发明实施例提供的MAC地址学习方法的流程图;
[0025]图2为本发明实施例提供的局域网架构示意图;
[0026]图3为本发明实施例提供的MAC地址学习装置的结构图。
【具体实施方式】
[0027]下面结合说明书附图,对本发明实施例提供的一种MAC地址学习方法及装置的【具体实施方式】进行说明。
[0028]本发明实施例提供的MAC地址学习方法,如图1所示,具体包括以下步骤:
[0029]SlOl:交换设备确定自身通过任一端口接收到的终端发来的报文中携带的MAC地址,是否在预设的不可抢占式MAC表中,若是,执行步骤S102 ;否则,执行步骤S103 ;
[0030]在这里,上述不可抢占式MAC表主要用于存储交换设备通过每个端口学习到的合法MAC地址;
[0031]S102:转发报文;
[0032]S103:确定不可抢占式MAC表中的MAC地址数是否达到设定数值,若是,执行步骤S104 ;否则,执行步骤S105 ;
[0033]S104:丢弃报文;
[0034]S105:将MAC地址添加到预设的可抢占式MAC表中,并确定报文是否为DHCP报文;若是,执行步骤S106 ;否则,执行步骤S104 ;
[0035]在这里,上述可抢占式MAC表用于存储交换设备通过每个端口学习到的疑似非法MAC地址,且与上述不可抢占式MAC表中的MAC地址总数不大于设定数值,此设定数值主要是用于限制每个端口下不可抢占式MAC表和可抢占式MAC表中MAC地址数量之和,以避免MAC地址泛洪;
[0036]S106:转发报文,并监测终端与DHCP服务器的交互过程,在监测到DHCP服务器为终端成功分配IP地址后,将MAC地址作为合法MAC地址添加到不可抢占式MAC表中。
[0037]在本发明实施例中,在交换设备的各个端口下预设的不可抢占式MAC表和可抢占式MAC表中,不仅存储了相应的MAC地址,还存储有接收相应地址对应的终端发来报文的端口,以便后续进行报文转发。
[0038]进一步地,上述不可抢占式MAC表中MAC地址的学习方式采用不可抢占模式,也就是说,在不可抢占式MAC表中交换设备学习到的MAC地址数量达到上述设定数值的情况下,这意味着不可抢占式MAC表已学满,不再学习新的MAC地址,此时可抢占式MAC表是空的;上述可抢占式MAC表中MAC地址的学习方式采用可抢占模式,也就是说,在可抢占式MAC表中交换设备学习到的MAC地址数量也达到上述设定数值的情况下,这意味着可抢占式MAC表已学满,此时不可抢占式MAC表是空的(即还未学习到合法MAC地址),在这种情况下,继续学习MAC地址,并将学习到MAC地址添加到可抢占式MAC表中,即抢占可抢占式MAC表中最早学习到的MAC地址。
[0039]需要说明的是,上述设定数值可根据实际网络运行情况来确定,例如设定数值为4,当然,还可以是其他数值;本发明实施例通过此设定数值,来实现对交换设备的各个端口下的MAC地址总数进行限制,以避免某个端口出现MAC地址泛洪时,影响其他端口的运行。
[0040]换言之,不可抢占式MAC表和可抢占式MAC表中的MAC地址总和不会超过每个端口下预先设置的可学习MAC地址的总数(即上述设定数值),并且,不可抢占式MAC表优先占用可抢占式MAC表,例如,交换设备的某端口下设置的MAC地址总数为4个,在某个时刻,不可抢占式MAC表和可抢占式MAC表中的MAC地址数的比值为3:1,这代表二者的MAC地址总和已达到4个,在这种情况下,如果交换设备再学习到一个MAC地址,是添加到不可抢占式MAC表中的,那么,此时,需删除可抢占式MAC表中最早学习到的MAC地址,这样,二者的MAC地址数的比值变为4:0,即不可抢占式MAC表是优先占用MAC表的。
[0041]具体地,在上述步骤S105中,不可抢占式MAC表中的MAC地址数还未达到设定数值,这就意味着不可抢占式MAC表中的合法MAC地址还没有学满,对于上述报文中携带的MAC地址来说,经交换设备判断,它不在不可抢占式MAC表中,这说明还未对它的合法性进行相关认证,这时将其学习到可抢占式MAC表中,再执行后续流程。
[0042]进一步地,本发明实施例之所以执行上述步骤S105-S106,主要是因为,交换设备是通过监测DHCP服务器为终端动态分配IP地址的交互过程,来验证MAC地址的合法性的,因此,需要判定上述报文是否为DHCP报文,以及需要监测终端与DHCP服务器的交互过程。
[0043]在这里,终端与DHCP服务器的交互过程为:终端通过其接入的交换机发送DHCPDiscover报文,以在局域网中寻找DHCP服务器;DHCP服务器接收到DHCP Discover报文后,通过交换机向终端发送DHCP Offer报文;终端通过交换机向DHCP服务器发送DHCPRequest报文,即正式向DHCP服务器请求分配已提供的IP地址;DHCP服务器接收到DHCPRequest报文后,通过交换机返回DHCP ACK报文,即确认终端的请求,为之分配。
[0044]需要说明的是,上述DHCP Offer报文中可携带有预分配给终端的IP地址、终端的MAC地址、域名信息以及IP地址的使用时间等。这样,如果交换设备监测到DHCP服务器为终端成功分配IP地址,这说明MAC地址是合法MAC地址,即对应的终端是合法终端;如果监测到DHCP服务器未为终端分配IP地址,这说明DHCP服务器确认失败,也就意味着此MAC地址不是合法MAC地址,即对应的终端不是合法终端。
[0045]进一步地,在上述步骤S106中,交换设备将MAC地址作为合法MAC地址添加到不可抢占式MAC表中,即可认为此终端是合法终端,后续如果接收到该终端发来的报文,不用区分是哪种类型的报文,直接执行转发操作,从而保证了合法终端正常使用网络。
[0046]优选地,在本发明实施例中,交换设备还可执行下述流程:
[0047]如果确定出MAC地址在不可抢占式MAC表中,且在MAC地址的最新老化时间内监测到DHCP服务器为终端成功续租已分配的IP地址,则根据续租已分配的IP地址的时间,更新最新老化时间;
[0048]如果确定出MAC地址在不可抢占式MAC表中,且在MAC地址的最新老化时间内监测到DHCP服务器未为终端续租IP地址,则删除MAC地址。
[0049]需要说明的是,上述流程中的最新老化时间,可以是DHCP服务器首次为终端分配IP地址的使用时间,具体可从DHCP服务器发送的DHCP ACK报文中获得;也可以是DHCP服务器为终端续租已分配IP地址的使用时间,具体可从DHCP服务器发送的续租响应报文中获得。
[0050]这样一来,交换设备可通过定时器监测MAC地址的最新老化时间,如果在这段时间内,交换设备监测到终端通过自身向DHCP服务器发送了续租(DHCP Request)报文,并且收到了 DHCP服务器返回给终端的携带有续租时间的DHCP ACK报文,这意味着DHCP服务器同意终端续租,此时,交换设备就根据此DHCP ACK报文中的续租时间,更新最新老化时间。
[0051]相应地,如果这段时间已到,交换设备还未收到终端发来的DHCP Request报文,或者未收到DHCP服务器发来的相应DHCP ACK报文的话,这说明终端可能不需要为之分配IP地址,或者终端已离开网络(例如终端的网线已拔出或者已关机),还或者是禁用了终端自动获取IP地址的功能,在这种情况下,交换设备执行上述删除操作。
[0052]优选地,在本发明实施例中,交换设备还可执行下述流程:在确定出不可抢占式MAC表中的MAC地址数达到设定数值时,丢弃报文。
[0053]在上述流程中,不可抢占式MAC表中的MAC地址数达到设定数值,这就意味着交换设备通过接收上述报文的端口已经学满合法MAC地址,在这种情况下,如果交换设备已确定出上述报文中携带的MAC地址不在不可抢占式MAC表中,那么,交换设备就将此报文视为MAC地址泛洪攻击报文,不再学习报文中的MAC地址,直接进行丢弃处理,从而避免因MAC地址泛洪导致MAC表很快被非法MAC地址学满的问题。
[0054]下面结合下述实施例对上述MAC地址学习方法进行详细说明:
[0055]如图2所示,假设局域网中包括交换机201、终端例如PC202、PC203、PC204、PC205、PC206和DHCP服务器207,且交换机201的0/1端口下接入PC202、PC203、PC204和PC205,这4台PC均运行DHCP协议,从DHCP服务器动态获取IP地址,假设0/1端口下PC202、PC203、PC204和PC205的MAC地址分别为:
[0056]PC202:0000.0000.0001 ;
[0057]PC203:0000.0000.0002 ;
[0058]PC204:0000.0000.0003 ;
[0059]PC205:0000.0000.0004。
[0060]假设交换机201的0/1端口下设置的MAC地址总数为4,即上述设定数值为4,这样0/1端口上最多能够学习到4个MAC地址,不会对交换机201造成MAC地址泛洪攻击。
[0061]默认情况下,0/1端口下没有学习到MAC地址,即不可抢占式MAC表和可抢占式MAC表均为空。
[0062]这样,当PC202启机后,通过交换机201向DHCP服务器207发送申请IP地址的DHCP Discover报文,交换机201收到此报文后,确定出报文中携带的MAC地址不在不可抢占式MAC表中,并且,当前不可抢占式MAC表为空,这时,将MAC地址作为疑似非法MAC地址添加到可抢占式MAC表中;假设此时PC202被攻击者攻击不断发出MAC地址变化的各种类型报文,例如包括二层报文、IP报文、ARP报文、DHCP报文等。例如以MAC地址为
0000.1111.0001开始递增的各种类型报文,在这种情况下,交换机201确定出这些报文中携带的MAC地址均不在不可抢占式MAC表中,这时,交换机201仅转发其中的DHCP报文,此时不可抢占式MAC表为空,可抢占式MAC表如下表1所示:
[0063]
【权利要求】
1.一种媒体访问控制MAC地址学习方法,其特征在于,包括: 交换设备确定自身通过任一端口接收到的终端发来的报文中携带的MAC地址,是否在预设的不可抢占式MAC表中,所述不可抢占式MAC表用于存储通过每个端口学习到的合法MAC地址; 若否,在确定出所述不可抢占式MAC表中的MAC地址数未达到设定数值时,将所述MAC地址添加到预设的可抢占式MAC表中,并确定所述报文是否为动态主机配置协议DHCP报文,所述可抢占式MAC表用于存储通过每个端口学习到的疑似非法MAC地址,且与所述不可抢占式MAC表中的MAC地址总数不大于所述设定数值; 在确定出所述报文为DHCP报文时,将其转发,并监测所述终端与DHCP服务器的交互过程,在监测到DHCP服务器为所述终端成功分配IP地址后,将所述MAC地址作为合法MAC地址添加到所述不可抢占式MAC表中。
2.如权利要求1所述的方法,其特征在于,还包括: 交换设备在确定出所述MAC地址在所述不可抢占式MAC表中时,转发所述报文。
3.如权利要求1或2所述的方法,其特征在于,还包括: 交换设备在确定出所述报文不为DHCP报文时,丢弃所述报文。
4.如权利要求3所述的方法,其特征在于,还包括: 如果交换设备确定出所述MAC地址在所述不可抢占式MAC表中,且在所述MAC地址的最新老化时间内监测到所述DHCP服务器为所述终端成功续租已分配的IP地址,则根据续租已分配的IP地址的时间,更新所述最新老化时间; 如果交换设备确定出所述MAC地址在`所述不可抢占式MAC表中,且在所述MAC地址的最新老化时间内监测到所述DHCP服务器未为所述终端续租IP地址,则删除所述MAC地址。
5.如权利要求3所述的方法,其特征在于,还包括: 交换设备在确定出所述不可抢占式MAC表中的MAC地址数达到设定数值时,丢弃所述报文。
6.一媒体访问控制MAC地址学习装置,其特征在于,包括: 接收模块,用于通过所述装置的任一端口接收终端发来的携带有MAC地址的报文; 确定模块,用于确定所述接收模块接收到的所述报文中携带的MAC地址,是否在预设的不可抢占式MAC表中;在确定为否时,确定所述不可抢占式MAC表中的MAC地址数是否达到设定数值;以及在确定出未达到所述设定数值时,确定所述报文是否为动态主机配置协议DHCP报文,所述不可抢占式MAC表用于存储所述装置通过每个端口学习到的合法MAC地址; 添加模块,用于在所述确定模块确定出未达到所述设定数值时,将所述MAC地址添加到预设的可抢占式MAC表中;以及在监测模块监测到DHCP服务器为所述终端成功分配IP地址后,将所述MAC地址作为合法MAC地址添加到所述不可抢占式MAC表中,所述可抢占式MAC表用于存储所述装置通过每个端口学习到的疑似非法MAC地址,且与所述不可抢占式MAC表中的MAC地址总数不大于所述设定数值; 转发模块,用于在所述确定模块确定出所述报文为DHCP报文时,转发所述报文; 监测模块,用于在所述确定模块确定出所述报文为DHCP报文时,监测所述终端与所述DHCP服务器的交互过程。
7.如权利要求6所述的装置,其特征在于,所述转发模块,还用于在所述确定模块确定出所述MAC地址在所述不可抢占式MAC表中时,转发所述报文。
8.如权利要求6或7所述的装置,其特征在于,该装置,还包括: 丢弃模块,用于在所述确定模块确定出所述报文不为DHCP报文时,丢弃所述报文。
9.如权利要求8所述的装置,其特征在于,该装置,还包括更新模块和删除模块, 所述更新模块,用于在所述确定模块确定出所述MAC地址在所述不可抢占式MAC表中,且所述监测模块在所述MAC地址的最新老化时间内监测到所述DHCP服务器为所述终端成功续租已分配的IP地址时,根据续租已分配的IP地址的时间,更新所述最新老化时间; 所述删除模块,用于在所述确定模块确定出所述MAC地址在所述不可抢占式MAC表中,且所述监测模块在所述MAC地址的最新老化时间内监测到所述DHCP服务器未为所述终端续租IP地址时,删除所述MAC地址。
10.如权利要求8所述的装置,其特征在于,所述丢弃模块,还用于在所述确定模块确定出所述不 可抢占式MAC表中的MAC地址数达到设定数值时,丢弃所述报文。
【文档编号】H04L29/12GK103595638SQ201310538075
【公开日】2014年2月19日 申请日期:2013年11月4日 优先权日:2013年11月4日
【发明者】陈勇 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1