对介质访问控制地址学习进行策略管理的方法技术

技术编号:3546480 阅读:167 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种对交换设备的介质访问控制地址学习进行策略管理的方法,该方法包括以下步骤:第一次检测到MAC地址冲突时,启动第一记时器和计数器,如果在第一预定时间内,计数器超过预定数量,则将所述交换设备转换为不允许MAC地址学习的状态,并启动第二记时器;在第二预定时间的时间期间,保持所述交换设备的不允许MAC地址学习的状态;当超过第二预定时间的时间期间时,将所述交换设备转换为允许MAC地址学习的状态。本发明专利技术能够降低MAC地址冲突时CPU的利用率,同时又不影响交换设备的MAC地址学习功能。

【技术实现步骤摘要】
对介质访问控制地址学习进行策略管理的方法
本专利技术涉及一种在交换设备上对MAC(Media Access Controller,介质访问控制)地址学习进行策略管理的方法。
技术介绍
随着网络应用的日益普及和网络规模日益庞大,互联网上需要传送的信息量大大增加。对于以太网交换机来说,二层转发所依据的就是MAC地址,MAC地址是存放在MAC地址表中的,通过对MAC地址的学习、更新、老化删除等操作,维护MAC地址表的正确性,从而实现以太网交换机的二层转发功能。以太网交换机的MAC地址学习的是SMAC(源介质访问控制)地址学习,SMAC地址的学习就是从进入以太网交换机端口的以太网帧中提取出SMAC地址字段,将其插入到MAC地址表中。SMAC地址学习的目的是为了二层转发时寻址使用。SMAC地址学习可以生成MAC地址表,当以太网帧进入以太网交换机的端口进行二层转发需要寻找对应的出端口时,根据此以太网帧的目的MAC地址在MAC地址表中进行查找,如果在MAC地址表中找到该MAC地址,则寻址成功,以太网帧就会被转发到对应的出端口。当交换机学习到新的SMAC地址之后,可采用哈希(Hash)算法作为MAC地址学习算法对该SMAC地址进行运算,并将运算结果作为MAC地址表中的地址,将SMAC地址插入到MAC地址表中该地址所在的位置。虽然SMAC地址是唯一的,但由于MAC地址表空间有限,不同的SMAC地址经过哈希变换之后得出的结果,即存放地址可能会出现相等的情况,也就是说,会有多个不同的SMAC地址要插入到MAC地址表的某一个相同的位置上,这将会造成冲突。当一个新的SMAC地址由于MAC地址表中的相关位置已存在不同于该SMAC地址的值时,则称之为发生了一次MAC地址冲突。MAC地址学习缺省是由设备的硬件完成的,由硬件完成的工作不需要CPU(中央处理器)的干预。但当设备启动某些服务时,如启用限制端口的MAC-->地址最大学习个数这个功能,就必须加入CPU的干预,此时就必须将MAC地址学习由硬件完成变为由软件完成。当以太网帧进入以太网交换机端口时,会进行MAC地址学习,即当以太网交换机的MAC地址表中不存在这个SMAC地址时,就把该以太网帧中的SMAC地址插入到交换机的MAC地址表中,当这项工作由CPU来完成时,就会使CPU进行一次插表操作,当大量的具有不同SMAC地址的以太网帧源源不断地进入以太网交换机的某一个端口时,其中一部分SMAC地址会由于MAC地址冲突使其无法被插入到MAC地址表中,从而导致具有相同SMAC地址的以太网帧陆续进入端口后,还需要对该SMAC地址进行插表操作,如此反复,最终造成CPU一直在进行MAC地址学习,导致CPU利用率过高。CPU利用率过高就会造成以太网交换机对其它进程调度和运行的延迟、无法及时处理其它以太网帧等很多弊端。最终将导致正常运转的协议由于CPU超时不予处理而造成网络动荡或中断,令生成树翻转,造成网络广播风暴、令路由协议握手超时,造成路由震荡。总之,CPU过忙会严重影响网络的稳定和各种协议的正常运转。而如果令CPU不再进行MAC地址的学习,就会造成以太网交换机的端口停止了MAC地址学习功能,势必会破坏MAC表的正确性,影响以太网交换机的二层转发功能。
技术实现思路
本专利技术所要解决的技术问题是,提供一种对介质访问控制地址学习进行策略管理的方法,该方法在交换设备上使用,其能够降低MAC地址冲突时CPU的利用率,同时又不影响交换设备的MAC地址学习功能。为了解决上述技术问题,本专利技术采用的技术方案是,一种对介质访问控制地址学习进行策略管理的方法,该方法在交换设备上使用并包括以下步骤:a)在存储器上定义并初始化第一记时器、第二记时器和计数器;b)当所述交换设备接收到数据包,并检测到第一预定次数的MAC地址冲突后,启动第一记时器和计数器以记录预定时间期间发生MAC地址冲突的次数;c)判断第一记时器是否超时以及计数器是否超过预定数量;d)如果第一记时器在第一预定时间的时间期间,计数器超过预定数量,则将所述交换设备转换为不允许MAC地址学习的状态,并启动第二记时器;-->e)判断第二记时器是否超时;f)当第二记时器超过第二预定时间时,将所述交换设备转换为允许MAC地址学习的状态;此外,在步骤c)的判断中,如果第一记时器在未超过第一预定时间的时间期间,计数器不超过预定数量,则保持所述交换设备的允许MAC地址学习的状态;如果第一记时器超过第一预定时间并且计数器不超过预定数量,则将第一记时器和计数器清零,并保持所述交换设备的允许MAC地址学习的状态。此外,在步骤e)的判断中,如果第二记时器未超过第二预定时间,则保持所述交换设备的不允许MAC地址学习的状态;如果第二记时器超过第二预定时间,则将第一记时器、第二记时器和计数器清零。所述的交换设备可以是以太网交换机。另外,所述第一预定次数可以为一次,即第一次检测到MAC地址冲突后启动第一记时器和计数器。本专利技术能够实现以下技术效果:在大量发生MAC地址冲突的情况下,可降低交换设备的CPU的利用率,可以使CPU利用率在极端情况下的100%降低至60%,同时,此方法能有效保证交换设备对SMAC的地址学习功能,令MAC地址学习深度和MAC地址学习速度不受任何影响,不影响交换设备的二层转发功能。附图说明附图是本专利技术的对交换设备的MAC地址学习进行策略管理的方法的流程图。具体实施方式下面将结合附图和实施例对本专利技术进行详细的说明。首先在MAC地址学习模块中定义一个状态机SML,用于表示以太网交换机当前是否允许进行MAC地址学习。SML值为suspend表示允许进行MAC地址学习;SML值为delay表示不允许进行MAC地址学习。SML初始值为suspend,即允许进行MAC地址学习。定义计数器SMN,表示MAC地址冲突发生的次数,SMN初始值为0,即没有MAC地址冲突发生。定义第一记-->时器SMS,表示从SMN的值变为1的时刻起经过的时间长,即第一次MAC地址冲突发生后允许MAC地址学习的状态持续的时间,SMS初始值为0。定义MAX_SMS为SMS的最大值,即SMS的取值范围为0到MAX_SMS,MAX_SMS大于0。定义MAX_SMN为MAC地址冲突次数,即SMN的最大值,表示设备单位时间内所允许的最大地址冲突次数,MAX_SMN大于0且小于交换机MAC地址表的最大地址存储数量。定义第二记时器SMD,表示从SML从suspend变为delay的时刻起经过的时间长,即不允许进行MAC地址学习的状态持续的时间,SMD初始值为0。定义MAX_SMD为SMD的最大值,即SMD的取值范围为0到MAX_SMD。将以上数值初始化并存储在存储器中。当SML状态为suspend时表示当前没有发生MAC地址冲突,或MAC地址冲突次数在MAX_SMS时间段内没有超过所允许的MAC地址冲突次数最大值MAX_SMN,此时仍可以继续进行MAC地址学习;SML状态为delay时表示当前存在MAC地址冲突并且MAC地址冲突次数在MAX_SMS时间段内已经超过所允许的冲突最大值MAX_SMN,此时不能进行MAC地址学习。如附图所示,在交换机启动MAC地址学习功能前,首先初始化相关变量:SML=suspend本文档来自技高网
...

【技术保护点】
一种对介质访问控制地址学习进行策略管理的方法,该方法在交换设备上使用,其特征在于:该方法包括以下步骤:a)在存储器上定义并初始化第一记时器、第二记时器和计数器;b)当所述交换设备接收到数据包,并检测到第一预定次数的MAC地址 冲突后,启动第一记时器和计数器以记录预定时间期间发生MAC地址冲突的次数;c)判断第一记时器是否超时以及计数器是否超过预定数量;d)如果第一记时器在第一预定时间的时间期间,计数器超过预定数量,则将所述交换设备转换为不允许MA C地址学习的状态,并启动第二记时器;e)判断第二记时器是否超时;f)当第二记时器超过第二预定时间时,将所述交换设备转换为允许MAC地址学习的状态。

【技术特征摘要】
1、一种对介质访问控制地址学习进行策略管理的方法,该方法在交换设备上使用,其特征在于:该方法包括以下步骤:a)在存储器上定义并初始化第一记时器、第二记时器和计数器;b)当所述交换设备接收到数据包,并检测到第一预定次数的MAC地址冲突后,启动第一记时器和计数器以记录预定时间期间发生MAC地址冲突的次数;c)判断第一记时器是否超时以及计数器是否超过预定数量;d)如果第一记时器在第一预定时间的时间期间,计数器超过预定数量,则将所述交换设备转换为不允许MAC地址学习的状态,并启动第二记时器;e)判断第二记时器是否超时;f)当第二记时器超过第二预定时间时,将所述交换设备转换为允许MAC地址学习的状态。2、如权利要求1所述的方法,其特征在于还包括以下步骤:在步骤c)的判断中,如果第一记时器在未超过第一预定时间的时间期间,计...

【专利技术属性】
技术研发人员:秦琳
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1