CN110365811B - 一种mac地址学习限制方法、装置及设备 - Google Patents

一种mac地址学习限制方法、装置及设备 Download PDF

Info

Publication number
CN110365811B
CN110365811B CN201910663232.8A CN201910663232A CN110365811B CN 110365811 B CN110365811 B CN 110365811B CN 201910663232 A CN201910663232 A CN 201910663232A CN 110365811 B CN110365811 B CN 110365811B
Authority
CN
China
Prior art keywords
mac
cpu
switching chip
mac address
chip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910663232.8A
Other languages
English (en)
Other versions
CN110365811A (zh
Inventor
吴海振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN201910663232.8A priority Critical patent/CN110365811B/zh
Publication of CN110365811A publication Critical patent/CN110365811A/zh
Application granted granted Critical
Publication of CN110365811B publication Critical patent/CN110365811B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Abstract

本申请提出一种MAC地址学习限制方法、装置及设备,所述网络设备搭载了CPU和交换芯片;其中,所述交换芯片的端口的MAC地址学习功能处于关闭状态;该方法利用网络设备中的CPU与交换芯片的交互,实现CPU对交换芯片中MAC表项数量的监控,并使CPU根据MAC表项的数量与预设阈值的比较情况学习或暂停学习MAC地址;从而在网络设备中建立MAC地址学习限制机制。

Description

一种MAC地址学习限制方法、装置及设备
技术领域
本申请涉及计算机领域,尤其涉及一种MAC地址学习限制方法、装置及设备。
背景技术
网络设备通常会从接收到的报文中学习报文特征来创建MAC地址表项,并基于学习到的MAC地址表项创建MAC地址表存储于该设备内部。当该设备接受到报文时,判断该报文是否命中上述MAC地址表中任一表项,如果命中,则转发该报文。
在实际应用中,如果网络设备中没有限制学习的MAC地址表项数量,网络设备将不断的学习MAC地址,从而填满MAC地址表。一旦MAC地址表被填满,可能会导致网络设备在转发报文时匹配报文的效率变低,影响设备转发报文的性能。
发明内容
有鉴于此,本申请提出一种MAC地址学习限制方法,应用于网络设备,所述网络设备搭载了CPU和交换芯片;所述方法包括:
所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值;
如果检测到所述交换芯片中存储的MAC表项的数量小于预设阈值,所述CPU开启所述交换芯片的端口的报文重定向功能,以使所述交换芯片的端口在接收到的报文未命中任一MAC表项后,将该报文上送至所述CPU,由所述CPU学习该报文的报文特征生成对应的MAC表项,并将该MAC表项下发至所述交换芯片进行存储;
如果检测到所述交换芯片中存储的MAC表项的数量不小于所述预设阈值,所述CPU关闭所述交换芯片的端口的报文重定向功能。
在示出的一种实施方式中,所述交换芯片的端口不支持MAC地址学习功能;或者,所述交换芯片的端口的MAC地址学习功能处于持续关闭状态。
在示出的一种实施方式中,所述CPU维护了用于实时记录所述MAC地址表项数量的计数器;
所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值,包括:
所述CPU周期性获取所述计数器记录的数值,并检测该数值是否小于所述预设阈值。
在示出的一种实施方式中,所述交换芯片包括回调函数;所述CPU维护了用于实时记录所述MAC地址表项数量的计数器,包括:
当所述交换芯片存储的MAC地址表项增加或减少时,所述CPU根据所述回调函数获取增加或减少的MAC地址表项的数量;
所述CPU基于该数量更新所述计数器。
在示出的一种实施方式中,所述预设阈值为动态预设阈值;所述方法还包括:
获取用户配置的MAC地址学习限制数量;
基于所述MAC地址学习限制数量更新所述预设阈值。
在示出的一种实施方式中,在所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值之前,还包括:
检查所述交换芯片的端口的MAC地址学习功能是否处于关闭状态;
如果未关闭,所述CPU关闭所述交换芯片的端口的MAC地址学习功能。
本申请还提供一种MAC地址学习限制装置,应用于网络设备,所述网络设备搭载了CPU和交换芯片;其中,所述交换芯片的端口的MAC地址学习功能处于关闭状态;所述装置包括:
检测模块,用于所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值;
学习模块,用于如果检测到所述交换芯片中存储的MAC表项的数量小于预设阈值,所述CPU开启所述交换芯片的端口的报文重定向功能,以使所述交换芯片的端口在接收到的报文未命中任一MAC表项后,将该报文上送至所述CPU,由所述CPU学习该报文的报文特征生成对应的MAC表项,并将该MAC表项下发至所述交换芯片进行存储;
如果检测到所述交换芯片中存储的MAC表项的数量不小于所述预设阈值,所述CPU关闭所述交换芯片的端口的报文重定向功能。
在示出的一种实施方式中,所述交换芯片的端口不支持MAC地址学习功能;或者,所述交换芯片的端口的MAC地址学习功能处于持续关闭状态。
在示出的一种实施方式中,所述CPU维护了用于实时记录所述MAC地址表项数量的计数器模块;所述检测模块具体用于:
所述CPU周期性获取所述计数器记录的数值,并检测该数值是否小于所述预设阈值。
在示出的一种实施方式中,所述交换芯片包括回调函数;所述CPU维护了用于实时记录所述MAC地址表项数量的计数器,包括:
当所述交换芯片存储的MAC地址表项增加或减少时,所述CPU根据所述回调函数获取增加或减少的MAC地址表项的数量;
所述CPU基于该数量更新所述计数器。
在示出的一种实施方式中,所述预设阈值为动态预设阈值;所述装置还包括:
更新预设阈值模块,用于获取用户配置的MAC地址学习限制数量;基于所述MAC地址学习限制数量更新所述预设阈值。
在示出的一种实施方式中,所述装置还包括:
检查模块,用于在所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值之前,检查所述交换芯片的端口的MAC地址学习功能是否处于关闭状态;如果未关闭,所述CPU关闭所述交换芯片的端口的MAC地址学习功能。
本申请还提供一种MAC地址学习限制网络设备,所述网络设备包括,交换芯片、存储器、CPU及存储在存储器上并可在CPU上运行的计算机程序,其中,所述CPU执行所述程序时实现如下方法:
所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值;
如果检测到所述交换芯片中存储的MAC表项的数量小于预设阈值,所述CPU开启所述交换芯片的端口的报文重定向功能,以使所述交换芯片的端口在接收到的报文未命中任一MAC表项后,将该报文上送至所述CPU,由所述CPU学习该报文的报文特征生成对应的MAC表项,并将该MAC表项下发至所述交换芯片进行存储;
如果检测到所述交换芯片中存储的MAC表项的数量不小于所述预设阈值,所述CPU关闭所述交换芯片的端口的报文重定向功能。
在以上技术方案中,由于网络设备的CPU可以在软件层面检测交换芯片中存储的MAC表项的数量,并在检测到交换芯片中存储的MAC地址表项的数量小于的限制阈值时,控制交换芯片将收到的报文重定向至CPU,由CPU基于该报文学习MAC表项,并将学习到的MAC表项下发至交换芯片,直到交换芯片中存储的MAC表项的数量不小于MAC地址表项的限制阈值时停止MAC地址学习,从而实现了在软件层面对交换芯片中存储的MAC地址进行MAC地址学习限制,可以在网络设备的转发芯片不支持MAC地址学习限制功能时,仍然可以使网络设备具有MAC地址学习限制功能。
附图说明
图1为本说明书示出的一种MAC地址学习限制方法的实施流程图;
图2为本说明书示出的一种保证交换芯片中的MAC表项数量与预设阈值相同的方法的实施流程图;
图3为本发明示出的MAC地址学习限制装置结构图;
图4为本发明示出的一种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表项的实际数量可能会大于上述上限阈值;在这种情况下,该交换芯片可以删除相应数量的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地址学习限制方法,应用于网络设备。该方法利用网络设备中的CPU在软件层面对交换芯片中存储的MAC地址进行MAC地址学习限制,可以在网络设备的转发芯片不支持MAC地址学习限制功能时,仍然可以使网络设备具有MAC地址学习限制功能。。
请参见图1,图1为本说明书示出的一种MAC地址学习限制方法的实施流程图。
如图1所示,此方法应用于网络设备中,该网络设备搭载了CPU与交换芯片,该方法包括:
S101,所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值;所述CPU可以启动一个线程运行一个定时任务,定时任务周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值;
如果检测到所述交换芯片中存储的MAC表项的数量小于预设阈值,S102,所述CPU开启所述交换芯片的端口的报文重定向功能,以使所述交换芯片的端口在接收到的报文未命中任一MAC表项后,将该报文上送至所述CPU,由所述CPU学习该报文的报文特征生成对应的MAC表项,并将该MAC表项下发至所述交换芯片进行存储;
在此需要说明的是,一方面,上述交换芯片的端口的报文重定向功能可以按照一定的规律筛选报文,并将筛选出的报文上送至CPU。例如,本实施例中,将交换芯片的端口接收到的报文与交换芯片中存储的MAC表项进行匹配,如果该报文未匹配中任一MAC,则将该报文上送CPU。
另一方面,本实施例中,在所述CPU将生成的MAC表项下发至所述交换芯片进行存储后,如果所述CPU检测所述交换芯片中存储的MAC表项的数量仍然小于上述预设阈值,可以重复执行上述学习MAC表项的步骤,直至所述CPU检测到所述交换芯片中存储的MAC表项的数量不小于上述预设阈值时,可以执行S103;
如果检测到所述交换芯片中存储的MAC表项的数量不小于所述预设阈值,S103,所述CPU关闭所述交换芯片的端口的报文重定向功能。
此步骤中,所述CPU关闭所述交换芯片的端口的报文重定向功能之后,上述交换芯片的端口可以在接收到的报文未命中任一MAC表项后丢弃该报文;或者,可以在接收到的报文命中任一MAC表项后转发该报文,在此不作限定。
在以上技术方案中,由于网络设备的CPU可以在软件层面检测交换芯片中存储的MAC表项的数量,并在检测到交换芯片中存储的MAC地址表项的数量小于的限制阈值时,控制交换芯片将收到的报文重定向至CPU,由CPU基于该报文学习MAC表项,并将学习到的MAC表项下发至交换芯片,直到交换芯片中存储的MAC表项的数量不小于MAC地址表项的限制阈值时停止MAC地址学习,从而实现了在软件层面对交换芯片中存储的MAC地址进行MAC地址学习限制,可以在网络设备的转发芯片不支持MAC地址学习限制功能时,仍然可以使网络设备具有MAC地址学习限制功能。
由上述技术方案可知,由于学习MAC表项是由所述CPU完成的,因此,所述网络设备的交换芯片的端口可以不支持MAC地址学习功能;但是,如果所述交换芯片的端口支持MAC地址学习功能,在CPU开始学习MAC地址前,该功能应处于持续关闭状态。在本发明示出的一实施例中,为了确保在CPU开始学习MAC地址前,交换芯片的端口学习MAC地址功能处于持续关闭状态,可以在CPU开始学习MAC地址前,检查该交换芯片的端口的MAC地址学习功能是否处于关闭状态,如果未关闭,则CPU关闭该交换芯片的端口的MAC地址学习功能,并开始学习MAC地址。需要说明的是,CPU学习MAC地址的过程可以参照上一实施例,在此不作赘述。
在本发明示出的一实施例中,提出了一种CPU获取交换芯片中MAC表项数量的方法。
实现时,在CPU中维护了用于实时记录所述MAC地址表项数量的计数器;CPU可以通过读取计数器记录的数值,获取交换芯片中的MAC表项数量。
需要说明的是,为了保证CPU实时更新计数器,在交换芯片中的MAC地址表项发生变化时,CPU需要根据回调函数来获取增加或减少的MAC表项的数量,从而相应地更新上述计数器以使该计数器记录准确的MAC表项数量。
当然,引起交换芯片中的MAC表项数量发生变化的条件不同,触发回调函数的方式也不相同。例如,由于交换芯片中的MAC地址老化机制或者出现MAC漂移情形导致MAC表项数量发生变化时,硬件会自动触发回调函数;由于用户自行添加静态MAC地址表项,则需CPU通过执行软件命令触发回调函数,在此不进行限定。
在本发明示出的一实施例中,上述预设阈值(预先在网络设备中设置的MAC地址学习限制数量阈值)可以是动态预设阈值。当用户配置了新的MAC地址学习限制数量时,网络设备的CPU可以基于上述MAC地址学习限制数量更新上述预设阈值。
进一步地,如果预设阈值发生变化,为了保证交换芯片中的MAC表项数量与预设阈值相同,本发明提出了一种根据预设阈值的变化情况,增加或减少MAC表项数量的方法,具体如下:
如果上述预设阈值增加,则CPU开启上述交换芯片的端口的报文重定向功能,以使CPU学习MAC地址,并当CPU检测到上述交换芯片中存储的MAC表项的数量达到上述预设阈值,关闭上述交换芯片的端口的报文重定向功能以暂停CPU学习MAC地址,从而保证交换芯片中的MAC表项数量与增加后的预设阈值相同;
如果上述预设阈值减少,CPU获取上述预设阈值减少的数值,并按照所述MAC表项的生成时间从前到后或从后到前删除数量为所述数值的MAC表项,从而保证交换芯片中的MAC表项数量与减少后的预设阈值相同。
需要说明的是,获取MAC表项的生成先后顺序的方式有很多,例如,在交换芯片中维护的MAC表项中记录每一条表项的生成时间,此时,CPU通过每条表项记录的内容可以获取MAC表项的生成先后顺序;或者,在交换芯片中维护的MAC表项中记录序号,当接收到CPU下发的MAC表项时,记录序号1,当再次接收到CPU下发的MAC表项时,记录序号为2,以此类推,CPU通过比较序号的大小可以获取MAC表项的生成先后顺序,在此不作限定。
在本发明示出的一实施例中,提出了另一种在预设阈值减少时,保证交换芯片中的MAC表项数量与预设阈值相同的方法。请参见图2,图2为本说明书示出的一种保证交换芯片中的MAC表项数量与预设阈值相同的方法的实施流程图。
如图2所示,此方法应用在网络设备中,当预设阈值(预先在网络设备中设置的MAC地址学习限制数量阈值)减少时,S201,获取当前MAC表项数量,并将该数量记录为待删除表项数量;
S202,确定上述待删除表项数量是否大于0,如果是,S203删除所述动态MAC地址表中的一条MAC地址表项,将上述待删除项数量减1;
S204,获取MAC表项数量,并确定该数量是否小于上述减少后的预设阈值;
如果是,S205,所述CPU开启所述交换芯片的端口的报文重定向功能,以使所述交换芯片的端口在接收到的报文未命中任一MAC表项后,将该报文上送至所述CPU,由所述CPU学习该报文的报文特征生成与对应的MAC表项,并将该MAC表项下发至所述交换芯片进行存储;
如果检测到所述交换芯片中存储的MAC表项的数量不小于所述预设阈值,S206,所述CPU关闭所述交换芯片的端口的报文重定向功能;
如果上述待删除表项数量等于0,暂停删除表项以保证交换芯片中的MAC表项数量与预设阈值相同。
在以上技术方案中,由于网络设备的CPU可以在软件层面检测交换芯片中存储的MAC表项的数量,并在检测到交换芯片中存储的MAC地址表项的数量小于的限制阈值时,控制交换芯片将收到的报文重定向至CPU,由CPU基于该报文学习MAC表项,并将学习到的MAC表项下发至交换芯片,直到交换芯片中存储的MAC表项的数量不小于MAC地址表项的限制阈值时停止MAC地址学习,从而实现了在软件层面对交换芯片中存储的MAC地址进行MAC地址学习限制,可以在网络设备的转发芯片不支持MAC地址学习限制功能时,仍然可以使网络设备具有MAC地址学习限制功能。
相应于上面的方法实施例,本申请还提供一种MAC地址学习限制装置300,应用于网络设备。请参照图3,图3为本发明示出的MAC地址学习限制装置结构图,所述装置包括:
检测模块310,用于所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值;
学习模块320,用于如果检测到所述交换芯片中存储的MAC表项的数量小于预设阈值,所述CPU开启所述交换芯片的端口的报文重定向功能,以使所述交换芯片的端口在接收到的报文未命中任一MAC表项后,将该报文上送至所述CPU,由所述CPU学习该报文的报文特征生成对应的MAC表项,并将该MAC表项下发至所述交换芯片进行存储;
如果检测到所述交换芯片中存储的MAC表项的数量不小于所述预设阈值,所述CPU关闭所述交换芯片的端口的报文重定向功能。
在示出的一种实施方式中,所述交换芯片的端口不支持MAC地址学习功能;或者,所述交换芯片的端口的MAC地址学习功能处于持续关闭状态。
在示出的一种实施方式中,所述CPU维护了用于实时记录所述MAC地址表项数量的计数器模块;所述检测模块具体用于:
所述CPU周期性获取所述计数器记录的数值,并检测该数值是否小于所述预设阈值。
在示出的一种实施方式中,所述交换芯片包括回调函数;所述CPU维护了用于实时记录所述MAC地址表项数量的计数器,包括:
当所述交换芯片存储的MAC地址表项增加或减少时,所述CPU根据所述回调函数获取增加或减少的MAC地址表项的数量;
所述CPU基于该数量更新所述计数器。
在示出的一种实施方式中,所述预设阈值为动态预设阈值;所述装置还包括:
更新预设阈值模块,用于获取用户配置的MAC地址学习限制数量;基于所述MAC地址学习限制数量更新所述预设阈值。
在示出的一种实施方式中,所述装置还包括:
检查模块,用于在所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值之前,检查所述交换芯片的端口的MAC地址学习功能是否处于关闭状态;如果未关闭,所述CPU关闭所述交换芯片的端口的MAC地址学习功能。
本申请MAC地址学习限制装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本发明示出的一种MAC地址学习限制装置所在网络设备的硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的网络设备通常根据该网络设备的实际功能,还可以包括其他硬件,对此不再赘述。
如图4,所述网络设备包括:交换芯片、存储器、CPU及存储在存储器上并可在CPU上运行的计算机程序,其中,所述CPU执行所述程序时实现如下方法:
所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值;
如果检测到所述交换芯片中存储的MAC表项的数量小于预设阈值,所述CPU开启所述交换芯片的端口的报文重定向功能,以使所述交换芯片的端口在接收到的报文未命中任一MAC表项后,将该报文上送至所述CPU,由所述CPU学习该报文的报文特征生成对应的MAC表项,并将该MAC表项下发至所述交换芯片进行存储;
如果检测到所述交换芯片中存储的MAC表项的数量不小于所述预设阈值,所述CPU关闭所述交换芯片的端口的报文重定向功能。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (11)

1.一种MAC地址学习限制方法,应用于网络设备,其特征在于,所述网络设备搭载了CPU和交换芯片;所述方法包括:
所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值;
如果检测到所述交换芯片中存储的MAC表项的数量小于预设阈值,所述CPU开启所述交换芯片的端口的报文重定向功能,以使所述交换芯片的端口在接收到的报文未命中任一MAC表项后,将该报文上送至所述CPU,由所述CPU学习该报文的报文特征生成对应的MAC表项,并将该MAC表项下发至所述交换芯片进行存储;
如果检测到所述交换芯片中存储的MAC表项的数量不小于所述预设阈值,所述CPU关闭所述交换芯片的端口的报文重定向功能;
所述预设阈值为动态预设阈值;
所述方法还包括:
获取用户配置的MAC地址学习限制数量;
基于所述MAC地址学习限制数量更新所述预设阈值;
检测交换芯片中存储的MAC表项的数量是否与更新后的阈值相同;
如果检测到所述交换芯片中存储的MAC表项的数量小于更新后的阈值,所述CPU开启所述交换芯片的端口的报文重定向功能,学习MAC地址,保证交换芯片中的MAC表项数量与更新后的阈值相同;
如果检测到所述交换芯片中存储的MAC表项的数量大于更新后的阈值,按照所述MAC表项的生成时间,从前到后或从后到前删除MAC表项,保证交换芯片中的MAC表项数量与更新后的阈值相同。
2.根据权利要求1所述的方法,其特征在于,所述交换芯片的端口不支持MAC地址学习功能;或者,所述交换芯片的端口的MAC地址学习功能处于持续关闭状态。
3.根据权利要求1所述的方法,其特征在于,所述CPU维护了用于实时记录所述MAC地址表项数量的计数器;
所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值,包括:
所述CPU周期性获取所述计数器记录的数值,并检测该数值是否小于所述预设阈值。
4.根据权利要求3所述的方法,其特征在于,所述交换芯片包括回调函数;所述CPU维护了用于实时记录所述MAC地址表项数量的计数器,包括:
当所述交换芯片存储的MAC地址表项增加或减少时,所述CPU根据所述回调函数获取增加或减少的MAC地址表项的数量;
所述CPU基于该数量更新所述计数器。
5.根据权利要求1所述的方法,其特征在于,在所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值之前,还包括:
检查所述交换芯片的端口的MAC地址学习功能是否处于关闭状态;
如果未关闭,所述CPU关闭所述交换芯片的端口的MAC地址学习功能。
6.一种MAC地址学习限制装置,应用于网络设备,其特征在于,所述网络设备搭载了CPU和交换芯片;其中,所述交换芯片的端口的MAC地址学习功能处于关闭状态;所述装置包括:
检测模块,用于所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值;
学习模块,用于如果检测到所述交换芯片中存储的MAC表项的数量小于预设阈值,所述CPU开启所述交换芯片的端口的报文重定向功能,以使所述交换芯片的端口在接收到的报文未命中任一MAC表项后,将该报文上送至所述CPU,由所述CPU学习该报文的报文特征生成对应的MAC表项,并将该MAC表项下发至所述交换芯片进行存储;
如果检测到所述交换芯片中存储的MAC表项的数量不小于所述预设阈值,所述CPU关闭所述交换芯片的端口的报文重定向功能;
所述装置还包括:
更新预设阈值模块,用于获取用户配置的MAC地址学习限制数量;基于所述MAC地址学习限制数量更新所述预设阈值;
检测交换芯片中存储的MAC表项的数量是否与更新后的阈值相同;
如果检测到所述交换芯片中存储的MAC表项的数量小于更新后的阈值,所述CPU开启所述交换芯片的端口的报文重定向功能,学习MAC地址,保证交换芯片中的MAC表项数量与更新后的阈值相同;
如果检测到所述交换芯片中存储的MAC表项的数量大于更新后的阈值,按照所述MAC表项的生成时间,从前到后或从后到前删除MAC表项,保证交换芯片中的MAC表项数量与更新后的阈值相同。
7.根据权利要求6所述的装置,其特征在于,所述交换芯片的端口不支持MAC地址学习功能;或者,所述交换芯片的端口的MAC地址学习功能处于持续关闭状态。
8.根据权利要求6所述的装置,其特征在于,所述CPU维护了用于实时记录所述MAC地址表项数量的计数器模块;所述检测模块具体用于:
所述CPU周期性获取所述计数器记录的数值,并检测该数值是否小于所述预设阈值。
9.根据权利要求8所述的装置,其特征在于,所述交换芯片包括回调函数;所述CPU维护了用于实时记录所述MAC地址表项数量的计数器,包括:
当所述交换芯片存储的MAC地址表项增加或减少时,所述CPU根据所述回调函数获取增加或减少的MAC地址表项的数量;
所述CPU基于该数量更新所述计数器。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
检查模块,用于在所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值之前,检查所述交换芯片的端口的MAC地址学习功能是否处于关闭状态;如果未关闭,所述CPU关闭所述交换芯片的端口的MAC地址学习功能。
11.一种MAC地址学习限制网络设备,其特征在于,所述网络设备包括,交换芯片、存储器、CPU及存储在存储器上并可在CPU上运行的计算机程序,其中,所述CPU执行所述程序时实现如下方法:
所述CPU周期性检测所述交换芯片中存储的MAC表项的数量是否小于预设阈值;
如果检测到所述交换芯片中存储的MAC表项的数量小于预设阈值,所述CPU开启所述交换芯片的端口的报文重定向功能,以使所述交换芯片的端口在接收到的报文未命中任一MAC表项后,将该报文上送至所述CPU,由所述CPU学习该报文的报文特征生成对应的MAC表项,并将该MAC表项下发至所述交换芯片进行存储;
如果检测到所述交换芯片中存储的MAC表项的数量不小于所述预设阈值,所述CPU关闭所述交换芯片的端口的报文重定向功能;
所述预设阈值为动态预设阈值;
所述方法还包括:
获取用户配置的MAC地址学习限制数量;
基于所述MAC地址学习限制数量更新所述预设阈值;
检测交换芯片中存储的MAC表项的数量是否与更新后的阈值相同;
如果检测到所述交换芯片中存储的MAC表项的数量小于更新后的阈值,所述CPU开启所述交换芯片的端口的报文重定向功能,学习MAC地址,保证交换芯片中的MAC表项数量与更新后的阈值相同;
如果检测到所述交换芯片中存储的MAC表项的数量大于更新后的阈值,按照所述MAC表项的生成时间,从前到后或从后到前删除MAC表项,保证交换芯片中的MAC表项数量与更新后的阈值相同。
CN201910663232.8A 2019-07-22 2019-07-22 一种mac地址学习限制方法、装置及设备 Active CN110365811B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910663232.8A CN110365811B (zh) 2019-07-22 2019-07-22 一种mac地址学习限制方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910663232.8A CN110365811B (zh) 2019-07-22 2019-07-22 一种mac地址学习限制方法、装置及设备

Publications (2)

Publication Number Publication Date
CN110365811A CN110365811A (zh) 2019-10-22
CN110365811B true CN110365811B (zh) 2022-03-01

Family

ID=68220809

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910663232.8A Active CN110365811B (zh) 2019-07-22 2019-07-22 一种mac地址学习限制方法、装置及设备

Country Status (1)

Country Link
CN (1) CN110365811B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112838993B (zh) * 2019-11-22 2022-11-11 武汉神州数码云科网络技术有限公司 一种实现mac vlan动态下发的方法
CN112350945B (zh) * 2021-01-08 2021-04-06 南京易科腾信息技术有限公司 Mac地址学习方法、网关设备及存储介质
CN114125078A (zh) * 2021-09-02 2022-03-01 杭州迪普信息技术有限公司 一种mac地址学习的方法及装置
CN115086254B (zh) * 2022-06-06 2023-11-28 上海华信长安网络科技有限公司 一种多台交换机堆叠系统下mac表项同步的方法和装置
CN115118681B (zh) * 2022-06-22 2023-05-30 烽火通信科技股份有限公司 一种软硬件相结合配置mac地址条目的方法、系统和装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004193821A (ja) * 2002-12-10 2004-07-08 Fujitsu Ltd ブリッジ装置およびブリッジ装置のアドレス学習方法
CN1829188A (zh) * 2005-03-01 2006-09-06 杭州华为三康技术有限公司 对介质访问控制地址学习进行策略管理的方法
CN101098291A (zh) * 2006-06-29 2008-01-02 中兴通讯股份有限公司 在接入设备上防止介质访问控制地址表扰乱的方法
CN101645904A (zh) * 2009-09-09 2010-02-10 中兴通讯股份有限公司 一种降低交换机中央处理器使用率的方法的装置
CN101764753A (zh) * 2009-12-28 2010-06-30 中兴通讯股份有限公司 一种实现交换机端口mac地址防迁移的方法及装置
US7796590B1 (en) * 2006-02-01 2010-09-14 Marvell Israel (M.I.S.L.) Ltd. Secure automatic learning in ethernet bridges
CN106330652A (zh) * 2015-06-30 2017-01-11 中兴通讯股份有限公司 交换机虚拟局域网中mac地址的学习方法及装置
CN106603736A (zh) * 2015-10-20 2017-04-26 中兴通讯股份有限公司 Mac地址处理方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1315297C (zh) * 2003-07-12 2007-05-09 华为技术有限公司 通信设备中定时处理表项的方法及其装置
US9727508B2 (en) * 2009-04-27 2017-08-08 Intel Corporation Address learning and aging for network bridging in a network processor
US9509602B2 (en) * 2011-10-25 2016-11-29 Dell Products L.P. Limiting MAC address learning on access network switches
CN103957166B (zh) * 2014-05-06 2018-02-09 迈普通信技术股份有限公司 终端接入数量控制方法和系统
CN107332773B (zh) * 2016-04-29 2020-01-10 华为技术有限公司 一种学习arp表项的方法及ptn设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004193821A (ja) * 2002-12-10 2004-07-08 Fujitsu Ltd ブリッジ装置およびブリッジ装置のアドレス学習方法
CN1829188A (zh) * 2005-03-01 2006-09-06 杭州华为三康技术有限公司 对介质访问控制地址学习进行策略管理的方法
US7796590B1 (en) * 2006-02-01 2010-09-14 Marvell Israel (M.I.S.L.) Ltd. Secure automatic learning in ethernet bridges
CN101098291A (zh) * 2006-06-29 2008-01-02 中兴通讯股份有限公司 在接入设备上防止介质访问控制地址表扰乱的方法
CN101645904A (zh) * 2009-09-09 2010-02-10 中兴通讯股份有限公司 一种降低交换机中央处理器使用率的方法的装置
CN101764753A (zh) * 2009-12-28 2010-06-30 中兴通讯股份有限公司 一种实现交换机端口mac地址防迁移的方法及装置
CN106330652A (zh) * 2015-06-30 2017-01-11 中兴通讯股份有限公司 交换机虚拟局域网中mac地址的学习方法及装置
CN106603736A (zh) * 2015-10-20 2017-04-26 中兴通讯股份有限公司 Mac地址处理方法及装置

Also Published As

Publication number Publication date
CN110365811A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
CN110365811B (zh) 一种mac地址学习限制方法、装置及设备
US11509534B2 (en) Collection of error packet information for network policy enforcement
US10686658B1 (en) Incremental update of the data plane of a hardware forwarding element
JP5088162B2 (ja) フレーム伝送装置およびループ判定方法
US10305813B2 (en) Socket management with reduced latency packet processing
CN106302179B (zh) 一种管理索引表的方法及装置
US9282115B1 (en) Systems and methods for detecting cache-poisoning attacks in networks using service discovery protocols
US9846710B2 (en) Systems and methods for increasing the scalability of software-defined networks
Chen et al. The case for making tight control plane latency guarantees in SDN switches
WO2017067476A1 (zh) Mac地址处理方法及装置
CN110022227A (zh) 业务处理方法、装置、设备及存储介质
WO2018177437A1 (zh) 路径探测
CN110535861B (zh) 一种识别syn攻击行为中统计syn包数量的方法及装置
CN108566344B (zh) 一种报文处理方法和装置
CN112565297A (zh) 一种报文控制方法及装置
CN112367257A (zh) 路由通告方法及装置
WO2012163233A1 (zh) 环回检测方法及装置
CN105939345A (zh) 协议表项定时器的管理方法及装置
EP3920475A1 (en) Memory management method and apparatus
US20170373928A1 (en) Computer-readable recording medium, information processing apparatus, and vm switching method
US9871869B2 (en) Multi-level ager rings for tracking session life cycle
CN111865716A (zh) 一种端口拥塞检测方法、装置、设备及机器可读存储介质
WO2018006786A1 (zh) 转发表项访问
CN110912760B (zh) 链路状态检测方法和装置
US20220210065A1 (en) Kernel space based capture using intelligent packet selection paradigm and event output storage determination methodology

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant