一种删除mac地址的方法及装置的制作方法

文档序号:7660645阅读:185来源:国知局
专利名称:一种删除mac地址的方法及装置的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种删除MAC地址的方法及装置。
背景技术
路由器、交换机等交换设备是通信领域中常见的基本设备。现有技术中 交换设备处理MAC (MediaAccess Controller,々某介访问控制)地址的方式包 括硬件处理和软件处理。硬件处理即为通过硬件方式中对硬件MAC表中存储 的MAC地址进行处理。软件处理即为通过软件方式对软件MAC表中的MAC
的备份。例如,交换设备对MAC地址进行删除时,需要同时进行硬件删除和 软件删除。其中软件删除MAC地址需要交换设备对MAC地址进行查找逐个 删除,也就需要CPU (Central Processing Unit,中央处理器)的干预,交换设 备每查找并软件删除一个MAC地址,CPU就要干预一次,当交换设备一次 性删除大量的MAC地址时,需要CPU进行多次干预,花费的时间较长,因 此也就无法满足一些业务在时间性能方面的高要求。
例如,RRPP ( Rapid Ring Protection Protocol ,快速环网保护协议)就是 对时间有严格要求的一种业务。RRPP是一个专门应用于以太网环的链路层协 议,在以太网环完整时能够防止数据环路引起的广播风暴,而当以太网环上 一条链路断开时能迅速启用备份链路以恢复环网上各个节点之间的通信通 路。RRPP突出的优势就在于能够进行快速拓朴收敛,并因此而在众多环网中 得到广泛应用。而为了保证RRPP的快速拓朴收敛,就需要交换设备在端口上 能快速切换MAC地址,当网络拓朴发生变化时,需要交换设备在非常短的时 间内,如50ms(毫秒),删除掉端口上的所有学习到的动态MAC地址。但是 现有4支术中,交换设备通过软件方式逐个删除端口上学习到的动态MAC地址, 会造成MAC地址的删除速度慢,当有大量MAC地址需要删除时,所花费的时
间就比较长,无法满足RRPP对交换设备的时间性能要求。并且通过软件方式 删除大量动态MAC地址时,会在某一个时间段内一直占用CPU资源,造成CPU 繁忙,影响其他业务的调度。

发明内容
本发明提供了 一种删除MAC地址的方法及装置,以解决现有技术中交换 设备删除MAC地址时速度慢,所需时间长和造成CPU繁忙的问题。
本发明提供了 一种删除媒介访问控制MAC地址的方法,应用于包括硬件 MAC表和软件MAC表的交换设备中,所述方法包括
在硬件MAC表中删除与输入条件对应的动态MAC地址;
遍历软件MAC表,并与删除前硬件MAC表进行比较,将所述硬件MAC
所述遍历软件MAC表,将硬件MAC表中不存在的动态MAC地址从软 件MAC表中删除具体包括
遍历所述软件MAC表中的所有动态MAC地址,并对应查找所述硬件 MAC表;
如果所述动态MAC地址在所述硬件MAC表中不存在,则将所述动态 MAC地址从所述软件MAC表中删除;如果所述动态MAC地址在所述石更件 MAC表中存在,则不{故处理。
在所述遍历软件MAC表的过程中,如果接收到源MAC地址未知的报文, 则对所述源MAC地址进行学习。
所述对源MAC地址进行学习具体包括
查找所述软件MAC表中是否存在所述源MAC地址;
如果存在,则根据所述报文携带的输入条件信息对所述软件MAC表中所 述源MAC地址对应的输入条件信息进行更新,并将更新后的所述源MAC地 址和端口信息添加到所述硬件MAC表中;
如果不存在,则在所述软件MAC表和硬件MAC表中添加所述源MAC 地址和输入条件信息。
所述输入条件为指定端口或指定虚拟局域网VLAN中所有端口。 本发明还提供了 一种删除MAC地址的装置,应用于包括硬件MAC表和
软件MAC表的交换设备中,包括
硬件删除单元,用于在硬件MAC表中删除与输入条件对应的动态MAC
地址;
软件删除单元,用于遍历软件MAC表,并与删除前硬件MAC表进行比除。
所述软件删除单元具体包括
动态MAC地址遍历子单元,用于遍历所述软件MAC表中的所有动态 MAC地址,并对应查找所述硬件MAC表;
动态MAC地址删除子单元,用于所述动态MAC地址在所述硬件MAC 表中不存在时,将所述动态MAC地址从所述软件MAC表中删除。
所述装置还包括MAC地址学习单元,用于在所述遍历软件MAC表的过 程中,接收到源MAC地址未知的报文时,对所述源MAC地址进行学习。
所述MAC地址学习单元还包括
MAC地址查找子单元,用于查找所述软件MAC表中是否存在所述源 MAC地址;
输入条件信息更新子单元,用于所述软件MAC表中存在所述源MAC地 址时,根据所述报文携带的输入条件信息对所述软件MAC表中所述源MAC 地址对应的输入条件信息进行更新;
信息添加子单元,用于所述软件MAC表中存在所述源MAC地址时,将 更新后的所述源MAC地址和输入条件信息添加到所述硬件MAC表中;所述 软件MAC表中不存在所述源MAC地址时,在所述软件MAC表和硬件MAC 表中添加所述源MAC地址和输入条件信息。
所述输入条件为指定端口或指定VLAN中所有端口 。
与现有技术相比,本发明具有以下优点
本发明实施例中,在删除MAC地址时,先进行石更件删除,再进行软件删
除,缩短了删除MAC地址所需的时间,从而能够满足业务在时间性能方面的 要求。


图1是本发明一种删除MAC地址的方法流程图; 图2是本发明实施例一的删除MAC地址方法流程图; 图3是本发明实施例二的学习MAC地址方法流程图; 图4是本发明一种删除MAC地址的装置结构示意图。
具体实施例方式
本发明的核心思想是,在删除动态MAC地址时,先对硬件MAC表中的 动态MAC地址进行删除,再遍历软件MAC表,对软件MAC表中的动态 MAC地址进行删除,缩短了删除MAC地址所需的时间,从而能够满足业务 在时间性能方面的要求。
下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述 如图l所示,图1是本发明一种删除MAC地址的方法流程图,包括以下 步骤
步骤sl01,在硬件MAC表中删除与输入条件对应的动态MAC地址。当 业务需要空换设备按照输入备件对萄
时,该5U夹iiC脊^^更1干MAU衣T尸/f卄乍君的町胜 一次性全部删除,但是对于软件MAC表中的动态MAC地址不喉支任何操作, 继续保存该软件MAC表中对应端口的动态MAC地址。该输入条件为指定端 口或指定VLAN (Virtual Local Area Network,虚拟局域网)中所有端口或该 交换i殳备的所有端口。
步骤sl02,遍历软件MAC表,并与删除前硬件MAC表进行比较,将硬
中,删除硬件MAC表中对应指定端口或指定VLAN的动态MAC地址即可达 到业务对交换设备进行动态MAC地址删除的要求,但是交换设备为了使软件
MAC表中存储的MAC地址信息和硬件MAC表中存储的MAC地址信息同 步,需要根据硬件MAC表中的MAC地址信息对软件MAC表中的MAC地 址信息进行更新。因此,交换设备对软件MAC表中的所有动态MAC地址进 行遍历,并对应查找硬件MAC表,如果查找到软件MAC表中的某个动态 MAC地址在硬件MAC表中不存在,则说明该动态MAC地址已从硬件MAC 表中删除,交换设备将该动态MAC地址从软件MAC表中删除;如果查找到
上述本发明的实施例中,将硬件删除动态MAC地址的操作和软件删除动 态MAC地址的操作分开进行,也即先一次性删除硬件MAC表中对应指定端 口或指定VLAN的动态MAC地址,达到业务对交换设备时间性能方面的要 求,再逐步更新软件MAC表中的动态MAC地址信息。相比现有技术中硬件 删除MAC地址和软件删除MAC地址同时进行,具有更短的动态MAC地址 删除时间。
下面以具体业务RRPP为例对本发明删除MAC地址的方法做进一 步详细 说明。RRPP是一个专门应用于以太网环的链路层协议,在以太网环完整时能 够防止数据环路? 1起的广播风暴,而当以太网环上一条链路断开时能迅速启 用备份链路以恢复环网上各个节点之间的通信通路。在实际应用中通过软件 方式存储动态MAC地址的软件MAC表称为Shadow,该方法具体包括以下 步骤
步骤s201, RRPP模块下发删除动态MAC地址的指令,该指令中包括输 入条件。以太网环链路的切换必然会改变网络的拓朴结构,当网络的拓朴结 构发生变化时,要求对交换设备某些端口或VLAN上原来学习到的MAC地 址进行删除,RRPP模块会下发删除指定端口或指定VLAN下动态MAC地址 的指令。
步骤s202,交换设备在硬件中一次性删除该输入条件所对应的所有动态 MAC地址,但保持Shadow中的MAC地址不变。交换设备通过硬件寄存器 一次性将指定端口或指定VLAN上所有硬件属性为动态的MAC地址删除掉, 但是保持Shadow中的MAC地址不变。
步骤s203,交换设备遍历Shadow中的所有动态MAC地址,查看动态 MAC地址在硬件中是否存在,如果存在,则不做任何处理;否则,转到步骤 s204。
步骤s204,交换设备查找到Shadow中的某个MAC地址在硬件中不存在, 则删除Shadow中的对应MAC地址。
上述本发明的实施例中,RRPP要求交换设备硬件删除动态MAC地址后, 能够快速恢复工作,而该交换设备在硬件删除动态MAC地址后进行软件删除 MAC地址的过程需要一定的时间,因此该交换设备在软件删除MAC地址的 同时需要恢复工作接收报文。由于网络拓朴结构发生变化,因此该交换设备 会接收到源MAC地址未知的报文,交换设备需要对新的MAC地址进行学习。 该交换设备学习MAC地址的过程如图3所示,包括以下步骤
步骤s301 ,交换设备接收到源MAC地址未知的报文,准备学习源MAC 地址。交换设备接收到报文后,查找该报文携带的源MAC地址为未知,也即 硬件MAC表中没有与该源MAC地址对应的表项,则交换设备需要对该新的 MAC地址进行学习。
步骤s302,交换设备在Shadow中查找该源MAC地址是否存在,如果存 在,则更新Shadow中该MAC地址所对应的输入条件信息,并将更新后的 MAC地址和输入条件信息添加到硬件中;否则,转到步骤s303。
交换设备在Shadow中查找到该源MAC地址的对应表项,说明该源MAC 地址为交换设备原来学习过的MAC地址;但是硬件MAC表中不存在该源 MAC地址的对应表项,则说明交换设备在网络拓朴结构发生变化时将该源 MAC地址删除掉了,由于网络拓朴结构发生了变化,因此该源MAC地址对 应的端口或VLAN信息可能也发生了改变,交换设备根据所接收报文中携带 的端口或VLAN信息,对Shadow中存储的该源MAC地址对应的端口或 VLAN信息进行更新,并将更新后的MAC地址以及对应的端口或VLAN信 息添加到硬件中。如此,即可在交换设备遍历Shadow删除该源MAC地址之 前,更新Shadow中的该源MAC地址相关信息,并添加到石更件中,从而避免 了交换设备遍历Shadow时将该源MAC地址删除掉,之后则需要重新学习的 问题。
步骤s303, Shadow中不存在该源MAC地址,则在Shadow中和硬件中 都添加该源MAC地址及对应的端口或VLAN信息。Shadow中不存在该源 MAC地址,则说明该源MAC地址为新的MAC地址,交换设备需要将该源 MAC地址及对应的端口信息或VLAN添加到Shadow和硬件中。
本发明还提供了一种删除MAC地址的装置,如图4所示,该装置包括 硬件删除单元100、软件删除单元200和MAC地址学习单元300。硬件删除 单元100,用于在硬件MAC表中删除输入条件对应的所有动态MAC地址, 该输入条件为指定端口或指定VLAN,其中,该指定端口也可为交换i殳备的 所有端口。软件删除单元200,连接硬件删除单元100,用于遍历软件MAC 表,并与删除前硬件MAC表进行比较,将硬件MAC表中不存在的动态MAC 地址从软件MAC表中删除。MAC地址学习单元300,连接软件删除单元200, 用于在遍历软件MAC表的过程中,接收到源MAC地址未知的报文时,对源 MAC地址进行学习。该删除MAC地址的装置进行动态MAC地址删除时, 先由硬件删除单元100对指定端口或指定VLAN在硬件中所对应的动态MAC 进行一次性删除,再由软件删除单元200进行软件MAC表的遍历,删除软件 MAC表中的相应动态MAC地址,在软件删除的过程中,如果设备接收到源 MAC地址未知的才艮文,则通过MAC地址学习单元300对该源MAC地址进 行学习。
其中,软件删除单元200包括动态MAC地址遍历子单元201和动态 MAC地址删除子单元202。动态MAC地址遍历子单元201,用于遍历软件 MAC表中的所有动态MAC地址,并对应查找硬件MAC表。动态MAC地址 删除子单元202,连接动态MAC地址遍历子单元201 ,用于查找到软件MAC 表中的MAC地址在硬件MAC表中不存在时,将该MAC地址从软件MAC 表中删除。
其中,MAC地址学习单元300包括MAC地址查找子单元301 、输入条 件信息更新子单元302和信息添加子单元303。 MAC地址查找子单元301, 用于查找软件MAC表中是否存在源MAC地址。输入条件信息更新子单元
302,连接MAC地址查找子单元301,用于软件MAC表中存在源MAC地址 时,根据报文携带的输入条件信息对软件MAC表中源MAC地址对应的输入 条件信息进行更新。信息添加子单元303,连接MAC地址查找子单元301和 输入条件信息更新子单元302,用于软件MAC表中存在源MAC地址时,将 更新后的源MAC地址和输入条件信息添加到硬件MAC表中,软件MAC表 中不存在源MAC地址时,在软件MAC表和硬件MAC表中添加源MAC地 址和输入条件信息。
综上所述,本发明实施例在删除MAC地址时,先对硬件MAC表中的动 态MAC地址进行删除,再遍历软件MAC表,对软件MAC表中的动态MAC 地址进行删除,缩短了删除MAC地址所需的时间,从而能够满足业务在时间 性能方面的要求。本发明实施例中的交换设备包括路由器、交换机等可实现 数据转发的网络交换设备,并且本发明实施例的删除MAC方法只针对动态 MAC地址,对于静态MAC地址不做任何处理。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发 明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件, 但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案
该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算 机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实 施例的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普 通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润 饰,这些改进和润饰也应^L为本发明的保护范围。
权利要求
1、一种删除媒介访问控制MAC地址的方法,应用于包括硬件MAC表和软件MAC表的交换设备中,其特征在于,所述方法包括在硬件MAC表中删除与输入条件对应的动态MAC地址;遍历软件MAC表,并与删除前硬件MAC表进行比较,将所述硬件MAC表中不存在的所述动态MAC地址从所述软件MAC表中删除。
2、 如权利要求1所述删除MAC地址的方法,其特征在于,所述遍历软 件MAC表,将硬件MAC表中不存在的动态MAC地址从软件MAC表中删 除具体包括遍历所述软件MAC表中的所有动态MAC地址,并对应查找所述硬件 MAC表;如果所述动态MAC地址在所述硬件MAC表中不存在,则将所述动态 MAC地址/人所述软件MAC表中删除;如果所述动态MAC地址在所述石更件 MAC表中存在,则不做处理。
3、 如权利要求1所述删除MAC地址的方法,其特征在于,在所述遍历 软件MAC表的过程中,如果接收到源MAC地址未知的才艮文,则对所述源 MAC地址进行学习。
4、 如权利要求3所述删除MAC地址的方法,其特征在于,所述对源 MAC地址进行学习具体包括查找所述软件MAC表中是否存在所述源MAC地址;如果存在,则根据所述报文携带的输入条件信息对所述软件MAC表中所 述源MAC地址对应的输入条件信息进行更新,并将更新后的所述源MAC地 址和端口信息添加到所述石更件MAC表中;如果不存在,则在所述软件MAC表和硬件MAC表中添加所述源MAC 地址和输入条件信息。
5、 如权利要求1至4中任一项所述删除MAC地址的方法,其特征在于, 所述输入条件为指定端口或指定虛拟局域网VLAN中所有端口 。
6、 一种删除MAC地址的装置,应用于包括硬件MAC表和软件MAC表 的交换i殳备中,其特征在于,包括硬件删除单元,用于在硬件MAC表中删除与输入条件对应的动态MAC 地址;软件删除单元,用于遍历软件MAC表,并与删除前硬件MAC表进行比除。
7、 如权利要求6所述删除MAC地址的装置,其特征在于,所述软件删 除单元具体包括动态MAC地址遍历子单元,用于遍历所述软件MAC表中的所有动态 MAC地址,并对应查找所述硬件MAC表;动态MAC地址删除子单元,用于所述动态MAC地址在所述硬件MAC 表中不存在时,将所述动态MAC地址从所述软件MAC表中删除。
8、 如权利要求6所述删除MAC地址的装置,其特征在于,所述装置还 包括MAC地址学习单元,用于在所述遍历软件MAC表的过程中,接收到源 MAC地址未知的净艮文时,对所述源MAC地址进行学习。
9、 如权利要求8所述删除MAC地址的装置,其特征在于,所述MAC 地址学习单元还包括MAC地址查找子单元,用于查找所述软件MAC表中是否存在所述源 MAC地址;输入条件信息更新子单元,用于所述软件MAC表中存在所述源MAC地 址时,根据所述报文携带的输入条件信息对所述软件MAC表中所述源MAC 地址对应的输入条件信息进行更新;信息添加子单元,用于所述软件MAC表中存在所述源MAC地址时,将 更新后的所述源MAC地址和输入条件信息添加到所述硬件MAC表中;所述 软件MAC表中不存在所述源MAC地址时,在所述软件MAC表和硬件MAC 表中添加所述源MAC地址和输入条件信息。
10、 如权利要求6至9中任一项所述删除MAC地址的装置,其特征在于, 所述输入条件为指定端口或指定VLAN中所有端口 。
全文摘要
本发明提供了一种删除MAC地址的方法,包括在硬件MAC表中删除输入条件对应的动态MAC地址;遍历软件MAC表,并与删除前硬件MAC表进行比较,将硬件MAC表中不存在的MAC地址从软件MAC表中删除。本发明还提供了一种删除MAC地址的设备,在删除MAC地址时,先进行硬件删除,再进行软件删除,缩短了删除MAC地址所需的时间,从而能够满足业务在时间性能方面的要求。
文档编号H04L29/12GK101115017SQ200710146400
公开日2008年1月30日 申请日期2007年9月10日 优先权日2007年9月10日
发明者吕志勇, 琳 秦, 郑上闽 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1