防止mac地址欺骗的方法

文档序号:7957085阅读:176来源:国知局
专利名称:防止mac地址欺骗的方法
技术领域
本发明涉及数据通讯领域,具体地说,涉及一种防止MAC地址欺骗的方法。
背景技术
IEEE802.3标准规定,在一个标准的以太网MAC帧中,有目的MAC地址和源MAC地址,长度都是6个字节,图1为标准的以太网MAC帧格式,其中Destination Address目的MAC地址,6BytesSource Address 源MAC地址,6BytesLength/type数据长度或报文类型,2BytesDATA 以太网帧承载的数据域FCS帧校验序列目的MAC地址用以标识以太网帧要被送到哪台物理设备去,源MAC地址用以标识以太网帧是由哪台物理设备发出的。目的MAC地址的第一个bit位(第一个字节的最低bit位)表示目的MAC地址是单播地址还是组播地址,如果是0,表示目的MAC地址是单播地址,如果是1,表示目的MAC地址是组播地址。
如果以太网帧的目的MAC地址是单播MAC地址,以太网帧在进入设备后,设备会根据以太网帧的目的MAC地址和VLAN ID(Virtual LAN ID)来查找MAC地址转发表项,如果找到,则根据转发表项中的端口号,将以太网帧从这个端口转发出去,如果没有找到,则会将以太网帧在这个VLAN内的所有端口进行广播。
IEEE 802.1Q(Virtual Bridged Local Area Networks)规定了以太网中VLAN的实现方式。在标准的以太网帧的源MAC地址之后增加一个4字节的802.1Q标签,图2为标准的802.1Q帧格式,802.1Q标签包含2个字节的标签协议标识(TPID,Tag Protocol Identifier)和两个字节的标签控制信息(TCI,TagControl Information)。TPID取值为十六进制的8100,用于标识该以太帧为802.1Q标签的以太网帧;TCL的详细内容如图3所示,其中VID(VLAN ID,VLANIdentifier)是一个12位的域,标识不同的VLAN,取值为0~4095,用于区别4096个VLAN。每个支持802.1Q协议的设备发送出来的数据报文都会包含这个域,以指明自己所属的VLAN。
如果设备收到一个不带802.1Q标签的以太网帧,会按照端口(或按照源MAC地址或报文协议类型等)来增加802.1Q的标签;如果收到带有802.1Q标签的以太网帧,不对以太网帧做任何修改。在收到以太网帧后,设备会增加相应的转发表项,将以太网帧的源MAC地址、VLAN ID和端口号记录下来,这叫做MAC地址的学习,以太网MAC地址转发表项的基本格式如图4所示。
源MAC地址在学习之前,设备会根据源MAC地址和VLAN ID查找MAC地址转发表项,如果找到相同的表项,并且端口号不同,会根据新的端口号来更新转发表项,这叫做站点转移(station movement)。如果没有找到相同的表项,会增加一个新的转发表项。MAC地址转发表项可以分为静态MAC地址转发表项和动态MAC地址转发表项,静态MAC地址转发表项只能手工配置到设备中,不能进行站点转移,即静态MAC地址转发表项的端口号不能根据以太网帧从不同端口进入进行自动更新,而动态MAC地址可以进行站点转移,即动态MAC地址转发表项的端口号可以根据以太网帧从不同端口进入进行自动更新,动态MAC地址可以在一定时间内老化,即会被网络交换芯片删除。
网络交换芯片的端口属性中通常会支持多种MAC地址的学习状态,常用的是MAC地址可以自动学习和站点转移,还可以将端口另外设置成学习受控状态端口不会自动学习MAC地址,如果以太网帧中的源MAC地址在这个端口上不存在,硬件不转发这个以太网帧,并送交CPU系统。
由于在接入设备中,端口可以分为上行端口和用户端口,上行端口是指与上行设备相连的端口,上行设备通常是指三层交换机或BAS(Broadband AccessServer,宽带接入服务器),用户端口是指与用户计算机或其它二、三层交换机相连的端口。在上行端口可以学习到上行设备的MAC地址,在用户端口可以学习到用户设备的MAC地址,用户设备发送的以太网帧,目的MAC地址是上行设备的MAC地址,这样的以太网帧到达设备以后,设备会查找MAC地址转发表项,因为上行设备MAC地址转发表项中的端口号是上行端口,所以太网帧会被设备从上行端口转发出去,如图5所示。
如果用户设备1的MAC地址与上行设备的MAC地址相同,或者用户设备1恶意仿冒上行设备的MAC地址,这时上行设备的MAC地址就会在用户端口1学习到,用户设备2发送的到上行设备的以太网帧,就会错误地被转发到用户端口1,从而造成用户设备2无法向上行设备发送以太网帧,用户设备2无法正常上网,如图6所示。
同时,上行设备的MAC地址进行站点转移时,设备不会通知CPU系统进行处理,所以无法检测出哪些用户设备仿冒上行设备的MAC地址。
而且现有技术中对于普通芯片不支持MAC地址冲突检测的情况,通常的做法是在上行端口配置静态MAC地址,所述MAC地址是上行设备的MAC地址;如果有多个VLAN存在,需要在每个VLAN中配置一个静态MAC地址。当从用户端口进入的以太网帧的源MAC地址与上行设备MAC地址相同时,因为上行端口已配置了静态的MAC地址,所以这样的MAC地址不会发生站点转移。
但现有技术有以下缺点(1)因为静态配置需要先知道上行设备的MAC地址,在不知道上行设备MAC地址情况下,无法实现静态配置;(2)当有多个VLAN存在时,需要在每个VLAN中配置静态MAC地址,配置复杂;(3)设置静态MAC地址只能限制MAC地址的站点转移,无法检测到是哪个端口发生MAC地址冲突。

发明内容
鉴上所述,本发明提供的防止MAC地址欺骗的方法和装置,解决了现有技术中的在上行端口配置静态MAC地址时需要知道上行设备的MAC地址,配置复杂;以及MAC地址站点转移时不通知CPU进行处理的问题。
本发明提供的一种防止MAC地址欺骗的方法,包括A.将用户端口设置成学习受控状态;B.以太网帧从用户端口进入时,检查在MAC地址转发表中是否存在与以太网帧中的源MAC地址和VLAN ID相同的表项,存在时,将该以太网帧转送给CPU系统进行处理,进一步判断该表项中的端口是否是上行端口,来防止MAC地址欺骗。
该方法还进一步包括CPU系统收到以太网帧后,检测出MAC地址转发表中的该表项记录的端口不是上行端口,CPU系统对MAC地址转发表进行更新;否则,证明该以太网帧拥有的是非法的MAC地址,不对MAC地址转发表进行更新。
其中所述的CPU系统对MAC地址转发表进行的更新是指CPU系统将在MAC地址转发表中更新与该以太网帧中的源MAC地址和VLAN ID相同的MAC地址转发表项中的端口号更新为该以太网帧进入的用户端口号。
该方法还包括根据记录下所述非法的MAC地址和端口信息生成端口访问控制列表。
还进一步包括将所述的MAC地址和端口信息通过人机界面输出或通知网络管理系统。
利用本发明,能解决因为MAC地址欺骗或MAC地址重复引起的用户设备无法向上行设备发送以太网帧的问题。通过在相同MAC地址出现在不同用户端口的用户设备上时,防止用户端口之间的MAC地址任意转移,来避免上行设备发往用户设备的以太网帧转发到错误的用户端口上。
同时进一步地在检测到用户端口有和上行设备相同的MAC地址时,可以记录发生恶意攻击的用户端口号,以及进行恶意攻击的时间。
进一步可以通过CPU系统人机界面和网络管理系统及时通知用户,为快速检测出哪些用户端口在进行恶意攻击提供保证。


图1为以太网MAC帧示意图;图2为带有802.1Q标签的以太网帧示意图;图3为802.1Q标签中的标签控制信息TCL部分示意图;图4以太网MAC地址转发表项示意图;图5为用户端口以太网帧正确转发到上行端口示意图及其MAC地址转发表项;图6为用户端口以太网帧错误转发到其它端口示意图及其MAC地址转发表项;图7为本发明的实施例中MAC地址欺骗检测流程图;具体实施方式
本发明的核心思想是将设备中的用户端口设置成不自动学习MAC地址的状态,即设置为学习受控状态。当以太网帧从上行端口进入,进行MAC地址学习时,不做任何检查,MAC地址可以正常学习到上行端口或站点转移(从用户端口转移到上行端口);但当以太网帧从用户端口进入时,先检查以太网帧中的源MAC地址在这个端口上是否存在,如果不存在,硬件不转发这个以太网帧,但送交给CPU系统处理。
下面结合图示,利用实例对本发明的以太网帧从用户端口进入时的处理过程进行具体说明,如图7所示步骤1以太网帧从用户端口USER_PORT1进入;步骤2根据以太网帧中的源MAC地址和VLAN ID查找MAC地址转发表MAC_TABLE,确认是否存在与该以太网帧的源MAC地址和VLAN ID都相同的MAC地址转发表项;如果不存在与该以太网帧的源MAC地址和VLAN ID都相同的MAC地址转发表项,此时不会存在MAC地址欺骗的可能,则转入步骤3,在MAC地址转发表MAC_TABLE中增加这一新的MAC地址转发表项,表项中的MAC地址和VLAN ID是以太网帧中的源MAC地址和VLAN ID,表项中的端口号是以太网帧进入的用户端口USER_PORT1;如果存在与该以太网帧的源MAC地址和VLAN ID都相同的MAC地址转发表项,则转入步骤4,进一步判断该表项中记录的端口号是否与该以太网帧进入的端口USER_PORT1相同;步骤5如果该表项中记录的端口号与以太网帧进入的端口USER_PORT1相同,说明该以太网帧是正常的,转发所述太网帧,流程结束。
步骤6如果该表项中记录的端口号与以太网帧进入的端口不相同,因为端口处于学习受控状态,此时不会发生站点转移,会将该以太网帧送交CPU系统处理,并且网络交换芯片不会转发这个以太网帧;步骤7CPU系统收到以太网帧后,检验与该太网帧中的源MAC地址和VLAN ID相同的所述MAC地址转发表项中记录的端口号是否是上行端口;步骤8如果不存在一条与该太网帧中的源MAC地址和VLAN ID相同的MAC地址转发表项中记录的端口号是上行端口,表明从用户端口进入的以太网帧中,源MAC地址是合法的,CPU系统将更新MAC地址转发表中与该太网帧中的源MAC地址和VLAN ID相同的MAC地址转发表项,即将该表项中的端口号更新为以太网帧进入的用户端口USER_PORT1,然后转发所述太网帧,流程结束。
步骤9如果存在一条与该太网帧中的源MAC地址和VLAN ID相同的MAC地址转发表项中记录的端口号是上行端口,说明从用户端口USER_PORT1进入的以太网帧中的源MAC地址与上行设备的MAC地址重复,是非法的MAC地址;
步骤10CPU系统将发生MAC地址欺骗的端口号记录到数据库中,并记录进行MAC地址欺骗的时间,格式如下

用户可以通过人机界面或网络管理系统查询发生MAC地址欺骗的端口号及发生的时间。
CPU系统在记录发生MAC地址欺骗的端口号时,也可以将发生MAC地址欺骗的端口号和相应的MAC地址转发表项通过人机界面打印出来,并主动上报网络管理系统。
步骤11CPU系统在发生MAC欺骗的端口,设置访问控制列表ACL(access control list),访问控制列表按源MAC地址进行匹配,动作类型是禁止,也就是禁止从用户端口进入源MAC地址是上行设备的以太网帧,保护CPU系统。访问控制列表的格式如下表所示

因为可以存储的访问控制列表的数量是有限的,如果非法用户较多,可能会被用完,所以系统必须定时删除访问控制列表。当访问控制列表用完时,将发生MAC地址欺骗的端口关闭,不允许再有报文从这个端口进入,以保护CPU系统。
同时本设备支持多个上行端口的情况,如果设备有多个上行端口,需要同时对多个上行端口进行检查判断。本方案不但可以检测用户设备与上行设备的MAC地址重复,而且可以检测用户设备之间的MAC地址重复,在步骤(7)中,CPU系统在检查MAC地址转发表项时,端口号可以不仅检查上行端口号,而且还检查是否是其它用户端口。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种防止MAC地址欺骗的方法,其特征在于,包括A.将用户端口设置成学习受控状态;B.以太网帧从用户端口进入时,检查在MAC地址转发表中是否存在与以太网帧中的源MAC地址和VLAN ID都相同的表项,存在时,将该以太网帧转送给CPU系统进行处理,进一步判断该表项中的端口是否是上行端口,来防止MAC地址欺骗。
2.根据权利要求1所述的方法,其特征在于,还包括步骤B中,CPU系统收到以太网帧后,检测出MAC地址转发表中的该表项记录的端口不是上行端口,CPU系统对MAC地址转发表进行更新;否则,认为该以太网帧拥有的是非法的MAC地址,不对MAC地址转发表进行更新。
3.根据权利要求1所述的方法,其特征在于,步骤B中,当在MAC地址转发表中以太网帧中的源MAC地址和VLAN ID在所述用户端口的表项不存在时,在MAC地址转发表中添加该表项。
4.根据权利要求2所述的方法,其特征在于,步骤B中,所述的CPU系统对MAC地址转发表进行的更新是指CPU系统将在MAC地址转发表中更新与该以太网帧中的源MAC地址和VLAN ID相同的MAC地址转发表项中的端口号更新为该以太网帧进入的用户端口号。
5.根据权利要求2所述的方法,其特征在于,步骤B中,CPU系统根据所述非法的MAC地址和端口信息记录并生成端口访问控制列表。
6.根据权利要求2所述的方法,其特征在于,还包括将所述的MAC地址和端口信息通过人机界面输出或通知网络管理系统。
全文摘要
本发明公开的防止MAC地址欺骗的方法,包括将用户端口设置成学习受控状态;以太网帧从用户端口进入时,检查在MAC地址转发表中是否存在与以太网帧中的源MAC地址和VLAN ID相同的表项,存在时,将该以太网帧转送给CPU系统进行处理,进一步判断该表项中的端口是否是上行端口,来防止MAC地址欺骗;利用本发明,能解决因为MAC地址欺骗或MAC地址重复引起的用户设备无法向上行设备发送以太网帧的问题,同时在检测到用户端口有和上行设备相同的MAC地址时,可以记录发生恶意攻击的用户端口号,以及进行恶意攻击的时间,并可以通过CPU系统人机界面和网络管理系统及时通知用户,为快速检测出哪些用户端口在进行恶意攻击提供保证。
文档编号H04L9/00GK101043356SQ20061006082
公开日2007年9月26日 申请日期2006年5月19日 优先权日2006年5月19日
发明者马书雷, 潘晶 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1