CN105721315A - 一种集中式mac地址学习的控制方法 - Google Patents
一种集中式mac地址学习的控制方法 Download PDFInfo
- Publication number
- CN105721315A CN105721315A CN201610209042.5A CN201610209042A CN105721315A CN 105721315 A CN105721315 A CN 105721315A CN 201610209042 A CN201610209042 A CN 201610209042A CN 105721315 A CN105721315 A CN 105721315A
- Authority
- CN
- China
- Prior art keywords
- mac address
- age
- ageid
- message
- main control
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/08—Learning-based routing, e.g. using neural networks or artificial intelligence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种集中式mac地址学习的控制方法,包括:业务卡将所有未知mac地址上报至主控卡进行集中学习;主控卡根据配置的mac地址学习限制条件判断未知mac地址是否学习mac地址,主控卡为需要进行学习的未知mac地址分配唯一age表项索引ageid,并将该未知mac地址插入本地mac地址表和ageid_to_mac映射表,再通过mac地址学习消息将未知mac地址对应表项同步广播至设备中所有业务卡;主控卡每隔一个预设时间段后收集一次每个业务卡的age表,根据收集的age表判定mac地址表中的每一个mac地址是否需要老化,并将判定结果发送至对应业务卡,所述业务卡根据收到的判定结果删除老化的mac地址。本发明不仅可以灵活控制mac学习过程,而且提高了mac学习的稳定性与容错能力。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种集中式mac地址学习的控制方法。
背景技术
随着现代网络的发展,二层VPN(VirtualPrivateNetwork虚拟专用网络)技术的普及使用,现代高端路由设备对二层VPN业务mac地址学习和控制功能提出了更高的要求,能否高效、准确的进行mac地址学习,以及能否对mac学习过程和mac表项进行有效的控制显得尤为重要。
在传统的路由设备中,mac学习主要由业务卡的NP(NetworkProcessor网络处理器)芯片完成,NP芯片检测到VPLS(VirtualPrivateLanService虚拟专用局域网业务)实例收到源mac地址未知的报文后,由NP内置的微码程序将该报文源mac地址、vlanid、接收端口等信息写入本地mac表,同时将这些信息广播到路由设备中的其他业务板卡进行板卡间mac表项的同步。
虽然上述典型的学习方式能够快速的进行mac地址学习,但同时也存在诸多限制:
1.学习报文丢失后不能提供补偿学习机制,漏学后无法恢复;
2.单盘上电或重启后,本盘mac表无法与设备同步;
3.由于mac表分散到各单盘,且由硬件维护,不便于集中管理维护。
发明内容
本发明所要解决的技术问题是传统mac学习方式难于管理、无法上电同步、板间同步以及mac学习过程中信令丢失造成漏学,且不能提供补偿学习的问题。
为了解决上述技术问题,本发明所采用的技术方案是提供一种集中式mac地址学习的控制方法,包括:
mac地址的集中学习控制方式为:
业务卡将所有未知mac地址上报至主控卡进行集中学习;主控卡根据配置的mac地址学习限制条件判断未知mac地址是否学习mac地址,主控卡为需要进行学习的未知mac地址分配唯一age表项索引ageid,并将该未知mac地址插入本地mac地址表和ageid_to_mac映射表,再通过mac地址学习消息将未知mac地址对应表项同步广播至设备中所有业务卡;
mac地址老化机制为:
主控卡每隔一个预设时间段后收集一次每个业务卡的age表,根据收集的age表判定mac地址表中的每一个mac地址是否需要老化,并将判定结果发送至对应业务卡,所述业务卡根据收到的判定结果删除老化的mac地址。
在上述方法中,所述主控卡中维护一个ageid资源池,该ageid资源池中存有age表中所有未被mac地址使用的age表项索引;
同时,主控卡维护各vlan、vp学习到的mac地址数量计数器和mac地址学习限制条件配置。
在上述方法中,在设备的主控卡和业务卡上都设有mac地址表、age表和ageid_to_mac映射表,其中,mac地址表中每个表项的活跃状态使用age表中一个表项记录,age表项索引ageid表示在age表中每个表项的索引;ageid_to_mac映射表每个表项存储一个mac地址转发信息,该表使用age表项索引ageid作为索引;
对于age表,每完成一次老化过程,各个业务卡将本地NP中的age表各表项清0;当业务卡处理VPLS业务报文时,在本地mac地址表中查找与vpls业务报文源mac地址和VPLSID都一致的表项,若查找到该表项,NP从mac表中获取ageid,并将age表中与该ageid对应表项设置为1。
在上述方法中,mac地址老化机制通过使用“2T”方式控制不活跃mac地址老化;“2T”方式为:
每隔预设时间T主控卡发起老化命令,收集所有业务卡的age表,当连续2T时间内mac地址对应ageid在age表中对应表项都为0时,在mac地址表中删除该mac地址,并为对应ageid生成age老化控制字;
如上所述,依次为age表中每个ageid生成2bit的age老化控制字,再将age老化控制字封装后通过age表控制消息广播至设备内所有业务卡,每个业务卡利用在ageid_to_mac映射表中ageid与mac表项一一对应的关系和每个ageid对应的age老化控制字来控制本地mac地址的增、删操作。
在上述方法中,所述age表控制消息由MINM_HEAD、MSG_TYPE、SEQ_NO以及AGE_BIT_ARRAY字段组成,其中,
MINM_HEAD为线卡间通信包头;
MSG_TYPE代表消息类型;
SEQ_NO为消息序号,最高位置1表示此消息为最后一个老化控制消息;
AGE_BIT_ARRAY为与ageid对应mac地址表的表项控制状态,每个ageid对应的控制状态占用2bit位宽;控制状态包括:
00/01表示ageid已被使用,不删除对应mac地址;
10表示ageid已被使用,删除mac地址;
11表示ageid未被使用。
在上述方法中,主控卡下发每个age表中所有ageid的age老化控制字,不同ageid的age老化控制字按ageid从低到高依次存储于AGE_BIT_ARRAY中,每个消息能够存放4096个ageid的age老化控制字;
当age表的age老化控制字容量超过4096个时,使用多个age表控制消息依次按序发送所有ageid的age老化控制字;对应的,业务卡依次接收所有age表控制消息,并依次检查所有ageid的age老化控制字,将age老化控制字为10的ageid对应的mac地址从mac地址表中删除。
在上述方法中,若所述业务卡收到ageid的age老化控制字为00或者01,而本地ageid_to_mac映射表显示该ageid未使用时,则判断本地mac地址表中表项缺失;
当业务卡本地mac地址表中表项缺失时,该业务卡使用补偿学习请求消息将缺失表项对应的ageid发送至主控卡;主控卡通过补偿学习应答消息将缺失表项发送给发送请求的业务卡;
当业务卡本地mac地址表中表项存在多条缺失时,该业务卡将多个ageid封装进一个补偿学习请求消息,一个补偿学习请求消息最多同时请求256个ageid的表项缺失;当主控卡收到的补偿学习请求消息包含多个ageid时,主控卡将多个mac地址表项封装在一个补偿学习应答消息中,一个补偿学习应答消息最多支持封装32个mac地址表项。
在上述方法中,当业务报文进入设备时,
在每个业务卡上,业务报文的处理包括以下步骤:
步骤111、业务卡的NP接收到业务报文;
步骤112、判断接收到的业务报文是否为mac地址学习消息,如果是执行步骤113;否则,执行步骤115;
步骤113、将mac地址学习消息中的mac地址、age表项索引、虚拟接口索引、vpls索引信息写入NP的mac地址表中;
步骤114、驱动层根据mac地址学习消息生成ageid_to_mac映射表,然后结束本次程序;
步骤115、判断是否为普通vpls业务报文,如果是执行步骤116;否则进入其他业务处理流程;
步骤116、在本地mac地址表中查找与vpls业务报文源mac地址和VPLSID都一致的表项,如果查找到匹配表项,如果查到对应mac地址,执行步骤117;否则,执行步骤118;
步骤117、更新age表,NP从mac地址表中获取命中mac地址表项使用的ageid,并在age表中将与该ageid对应的表项值设置为1;
步骤118、使用目的mac地址和vpls索引查找mac地址表,如果查询到对应mac地址,执行步骤119;否则,执行步骤120;
步骤119、按照查找到的mac地址表项中指示的出口发送报文,结束本次程序;
步骤120、vpls内洪泛该报文,结束本次程序;
在主控卡上,业务报文的处理包括以下步骤:
步骤121、主控卡判断报文是否为mac地址学习消息,如果是,执行步骤123;否则,执行步骤122;
步骤122、将报文转发给其他模块处理;
步骤123、获取mac地址学习消息中新的mac地址、虚拟接口索引、vpls索引信息;
步骤124、主控卡判断设备在该vpls、vp上学习mac地址数量是否超过mac地址学习限制条件配置,如果没有超过,执行步骤125;否则,丢弃消息;
步骤125、主控卡为新的mac地址申请ageid,并将新的mac地址、ageid、虚拟接口索引、vpls索引信息插入本地mac地址表和ageid_to_mac映射表;
步骤126、主控卡组建mac地址学习消息,组播发送至设备内业务卡;
步骤127、业务卡收到mac地址学习消息后将mac地址、ageid、虚拟接口索引、vpls索引信息插入mac地址表和ageid_to_mac映射表。
在上述方法中,mac地址老化机制在主控卡上进行mac地址老化处理具体包括以下步骤:
步骤211、每一个隔预设时间T,主控卡在设备内业务卡广播老化开始消息,发起老化流程;
步骤212、主控卡接收每个业务卡age表上报消息,并存储每个age表;
步骤213、主控卡判断是否所有业务卡都已上报完整age表,若是,则执行步骤215;否则执行步骤214;
步骤214、判断age表收集计时器是否超时,若超时,则执行步骤215,否则执行步骤212;
步骤215、主控卡判定在上次老化决策与本次老化决策存储的age表中值都为0的ageid对应的mac地址为需要删除的mac地址;
步骤216、主控卡从本地mac地址表中删除判定结果为需要删除的mac地址,将ageid_to_mac映射表中ageid对应表项设置为无效,释放对应ageid进入age资源池;
步骤217、主控卡为每个age表中每个ageid生成age老化控制字;
步骤218、主控卡使用age老化表控制字组建age表控制消息,并向设备内对应的业务卡广播;
mac地址老化机制在业务卡上进行mac地址老化处理具体包括以下步骤:
步骤221、每个业务卡接收老化流程消息;
步骤222、判断接收到的消息类型是age表控制消息还是请求age表消息,如果是age表控制消息,执行步骤224;否则,执行步骤223;
步骤223、每个业务卡获取各自age表,并组建age表上报消息,发送主控卡,然后执行步骤221;
步骤224、提取消息中的age老化控制字,并依次保存;
步骤225、判断是否为最后一个age表控制消息,如果是,执行步骤226;否则执行步骤221;
步骤226、判断是否有age表控制消息丢失,如果有,执行步骤227;否则,执行步骤228;
步骤227、向主控卡发送重新发送缺失消息请求,然后执行步骤221;
步骤228、业务卡依次遍历age老化控制字,并根据对每个ageid的控制状态,对与该ageid对应的mac地址表项进行相应操作;
步骤229、判断age老化控制字是否遍历结束,如果结束,执行步骤230;否则,执行步骤228;
步骤230、每个业务卡清空各自NP中的age表,将所有表项内容置0;
步骤231、结束流程。
在上述方法中,在设备中还设有一个备用主控卡;
当主控卡工作正常时,备用主控卡维护与主控卡相同的mac地址表、age表和ageid资源池,其中,维护mac地址表和age表的方式与业务卡相同;
当主控卡出现故障时,备用主控卡直接取代主控卡进行学习、老化、控制,主控卡和备用主控卡将mac地址表、age表存储在内存中。
本发明将业务卡需要学习的mac地址信息发送至主控卡集中处理,由主控卡再进行统一的学习判定、分配age表资源后在本地生成mac表,并将新增表项或删除表项广播至设备内所有业务卡,再由线卡将新增表项插入转发表中用于数据转发决策,这种通过主控卡对各个业务卡mac地址学习的集中控制处理,不仅实现了学习边同步的方式,使系统可以灵活控制mac学习过程,而且提高了mac学习的稳定性与容错能力,满足了更多的设备应用场景。
附图说明
图1为本发明中在每个业务卡上,业务报文的处理流程图;
图2为本发明中在每个主控卡上,业务报文的处理流程图;
图3为本发明中mac地址老化机制在主控卡上进行mac地址老化处理的流程图;
图4为本发明中mac地址老化机制在业务卡上进行mac地址老化处理的流程图。
具体实施方式
在本发明中,根据功能主要将设备线卡分为主控卡和业务卡两类,主控卡用于mac地址收集、mac地址学习判断、设备线卡间表项同步、mac地址老化判定、同步信息下发等功能;业务卡用于完成上电同步、未知mac地址上报、表项状态维护与上报等功能;本发明为了保证在主控卡启动或故障时系统能不间断工作,还设有一个备用主控卡,它是主控卡的差错冗余备份,当主控卡工作正常时,备用主控卡维护与主控卡相同的mac地址表、age表和ageid资源池,即备用主控卡收到mac学习消息时进行mac地址学习,收到老化控制消息时对mac表进行老化,与主控卡保持完全一致;当主控卡出现故障时,备用主控卡能够直接取代主控卡进行学习、老化、控制等功能。
在设备的每个线卡上都设有mac地址表、age表和ageid_to_mac映射表,其中,mac地址表中每个表项的活跃状态使用age表中一个表项记录,age表项索引表示在age表中每个表项的索引;ageid_to_mac映射表每个表项存储一个mac地址转发信息,该表使用age表项索引ageid作为索引;主控卡和备用主控卡中mac地址表、age表、ageid_to_mac映射表均存储于内存中,无需下发至硬件表项,不参与数据转发;业务卡中mac地址表、age表存储于NP硬件表项中,ageid_to_mac映射表存储于内存中。
下面结合说明书附图和具体实施例对本发明做出详细的说明。
本发明提供的一种集中式mac地址学习的控制方法,包括以下步骤:
mac地址的集中学习控制方式为:
业务卡将所有未知mac地址上报至主控卡进行集中学习;主控卡根据配置的mac地址学习限制条件判断每个未知mac地址是否学习mac地址,主控卡为需要进行mac地址学习的未知mac地址分配全设备唯一age表索引ageid,并将该未知mac地址作为新mac地址插入本地mac地址表和ageid_to_mac映射表,再通过mac地址学习消息将新mac地址对应表项同步广播至备用主控卡和设备中所有业务卡。
在本发明中,主控卡中维护一个ageid资源池,表示age表中所有未被mac地址使用的ageid;主控卡进行mac地址学习时为需要学习的每个mac地址分配一个未被使用的ageid,以便记录mac地址活跃状态;并且主控卡还维护各vlan、vp学习到的mac地址数量计数器和mac地址学习限制条件配置,用于对新收到mac地址的学习判定。
mac地址老化机制为:
主控卡每隔一个预设时间段后收集一次每个业务卡的age表,根据收集的age表判定mac地址表中的每一个mac地址是否需要老化,并将判定结果发送至对应业务卡,每个业务卡根据收到的判定结果删除老化的mac地址,如果有备用主控卡,还需将判定结果发送至备用主控卡,备用主控卡根据收到的判定结果删除老化的mac地址。
在本发明中,mac地址老化机制通过使用“2T”方式控制不活跃mac地址老化,即每隔预设时间T主控卡发起老化命令,收集所有业务卡的age表(mac地址活跃状态信息),完成一次老化过程,当连续2T时间内某个mac地址对应ageid在age表中对应表项都为0(不活跃)时,在mac地址表中删除该mac地址,并为对应ageid生成2bit的age老化控制字;与上述方法相同,依次为age表中每个ageid生成2bit的age老化控制字,再将age老化控制字封装后通过age表控制消息广播至设备内备用主控卡和所有业务卡,备用主控卡和每个业务卡利用在ageid_to_mac映射表中ageid与mac表项一一对应的关系和每个ageid对应的age老化控制字来控制本地mac地址的增、删操作。
对于age表而言,每完成一次老化过程,各个业务卡将本地NP中的age表各表项清0,使NP能够重新记录下一个“T”周期内mac地址表中各个mac地址的活跃状态,当业务卡处理VPLS业务报文时,在本地mac地址表中查找与vpls业务报文源mac地址和VPLSID都一致的表项,若查找到该表项,NP从mac表中获取ageid,并将age表中与该ageid对应表项设置为1,表示该mac地址本周期内活跃。
在本发明中,age表控制消息由MINM_HEAD、MSG_TYPE、SEQ_NO以及AGE_BIT_ARRAY字段组成,age表控制消息实格式如下:
其中,
MINM_HEAD为线卡间通信包头;
MSG_TYPE代表消息类型;
SEQ_NO为消息序号,最高位置1表示此消息为最后一个老化控制消息;
AGE_BIT_ARRAY为与ageid对应mac地址表的表项控制状态,每个ageid对应的控制状态占用2bit位宽;控制状态包括:
00/01表示ageid已被使用,不删除对应mac地址;
10表示ageid已被使用,删除mac地址;
11表示ageid未被使用。
本发明的主控卡下发每个age表中所有ageid的age老化控制字,不同ageid的age老化控制字按ageid从低到高依次存储于AGE_BIT_ARRAY中;每个消息能够存放4096个ageid的age老化控制字;当一个age表的age老化控制字容量超过4096个时,使用多个age表控制消息依次按序发送所有ageid的age老化控制字;对应的,各个业务卡和备用主控卡依次接收所有age表控制消息,并依次检查所有ageid的age老化控制字,并且通过age表控制消息中SEQ_NO和age老化控制字在负载中的相对位置计算各age老化控制字对应的ageid,将age老化控制字为10的ageid对应的mac地址从mac地址表中删除;主控卡和备用主控卡删除mac地址时回收该地址使用的ageid,并放入ageid资源池。
本发明的业务卡收到源mac地址未知的vpls业务报文时,首先由NP(网络处理器芯片)将报文头、vpid和vid等信息发送至主控卡,主控卡收到该未知报文消息后进行学习判定。当mac地址被判定为需要学习时,主控卡不仅要从ageid资源池中分配一个ageid,还要将mac地址和vpid、vid等信息存入本地mac地址表,同时同步广播至设备内业务卡和备用主控卡,业务卡收到学习报文后将mac地址的信息存入NP的mac地址表中,业务卡使用本地NP中保存的mac地址表进行数据的转发控制。
在本发明中,每个业务卡和备用主控卡通过age表的age老化控制字与本地age表使用情况的依次对比是否一致,能够判断本地mac地址表中是否缺失表项,当业务卡或备用主控卡发现某个ageid对应的age老化控制字为00/01,而在而本地ageid_to_mac映射表中无法查找到使用该ageid的mac地址表项,则表明本地mac地址表中表项缺失,该业务卡或备用主控卡使用补偿学习请求消息将缺失表项对应的ageid发送至主控卡;主控卡通过补偿学习应答消息将缺失mac地址表的表项重新发送给发送请求的业务卡或备用主控卡。
当业务卡或备用主控卡本地mac地址表存在多条缺失表项时,业务卡或备用主控卡将多个ageid封装进一个补偿学习请求消息,以减少业务卡或备用主控卡与主控卡通信次数,一个补偿学习请求消息最多同时请求256个ageid的缺失表项;当主控卡收到的补偿学习请求消息包含多个ageid时,主控卡将多个mac地址表项封装至一个补偿学习应答消息中;一个补偿学习应答消息最多支持封装32个mac地址表项。
在本发明中,业务卡或备用主控卡上电启动完成后,由于业务卡或备用主控卡的mac地址表为空,数据业务无法正常转发,因此,业务卡或备用主控卡向主控卡发送同步请求消息,主控卡收到同步请求消息后通过同步消息将mac地址表内的全部表项依次组包单播发送至同步请求消息的业务卡或备用主控卡;每个同步消息最大包含50个mac地址表项。
并且为了防止同步请求消息丢失导致同步失败的问题,业务卡或备用主控卡使用定时重发方式发送同步请求消息,每隔3秒发送一个同步请求消息,直到它接收到主控卡回复的同步消息为止;而当主控卡回复的同步消息丢失导致业务卡或备用主控卡mac地址表不完整时,业务卡或备用主控卡即可使用补偿学习的方式获得完整的mac地址表。
下面结合具体实施例对mac地址的集中学习控制方式和mac地址老化机制两个方面进行具体说明。
如图1、图2所示,当业务报文进入设备时,mac地址的集中学习控制方式在业务卡和主控卡上分别对业务报文进行了处理,具体如下:
如图1所示,在每个业务卡上,业务报文的处理包括以下步骤:
步骤111、业务卡的NP接收到业务报文;
步骤112、判断接收到的业务报文是否为mac地址学习消息,如果是执行步骤113;否则执行步骤115;
步骤113、将mac地址学习消息中的mac地址、age表项索引、虚拟接口索引、vpls索引信息写入NP的mac地址表中;
步骤114、驱动层根据mac地址学习消息生成ageid_to_mac映射表,然后结束本次程序;
步骤115、判断是否为普通vpls业务报文,如果是执行步骤116;否则进入其他业务处理流程;
步骤116、在本地mac地址表中查找与vpls业务报文smac+VPLSID(报文的源mac地址和vpls索引)都一致的表项,如果查找到匹配表项,执行步骤117;否则,执行步骤118;
步骤117、更新age表(mac地址活跃状态表),NP从ageid_to_mac映射表与命中mac地址所在表项中获取对应ageid,并在age表中将与该ageid对应的2bit位表项值设置为1,标识该mac地址活跃;
步骤118、使用dmac+vid(报文的目的mac地址和vpls索引)查找mac地址表,并判断是否查询到对应mac地址,如果成功查询到,执行步骤119;否则,执行步骤120;
可见,在本发明中业务卡在收到主控卡下发的mac地址学习消息后将mac地址插入NP的mac地址表中,用于业务转发决策;NP收到vpls业务报文时,通过使用smac和vid查找mac地址表,用于刷新mac地址活跃状态;通过使用dmac和vid查找mac地址表,用于决策如何转发该报文。
步骤119、按照查找到的mac地址表项中指示的出口发送报文,结束本次程序;
步骤120、vpls内洪泛该报文,结束本次程序。
如图2所示,在主控卡上(或者备用主控卡),业务报文的处理包括以下步骤:
步骤121、主控卡判断报文是否为mac地址学习消息,如果是,执行步骤123;否则,执行步骤122;
步骤122、将报文转发给其他模块处理;
步骤123、获取mac地址学习消息中新的mac地址、虚拟接口索引、vpls索引信息;
步骤124、主控卡判断设备在该vlan、vp上学习mac地址数量是否超过mac地址学习限制条件配置,如果没有超过,执行步骤125;否则,执行步骤;
步骤125、主控卡为新的mac地址申请ageid,并将新的mac地址、ageid、虚拟接口索引、vpls索引等信息插入本地mac地址表和ageid_to_mac映射表;
步骤126、主控卡组建mac地址学习消息,组播发送至设备内各业务卡;
步骤127、业务卡收到mac地址学习消息后将mac地址、ageid、虚拟接口索引、vpls索引等信息插入mac地址表和ageid_to_mac映射表。
为实现对mac地址表项资源的循环利用,本发明通过mac地址老化机制对不活跃mac地址的进行删除和资源的回收,如图3、图4所示,本发明的mac地址老化机制在主控卡和业务卡分别进行了mac地址老化处理,具体如下:
如图3所述,mac地址老化机制在主控卡上进行mac地址老化处理具体包括以下步骤:
步骤211、每一个隔预设时间T,主控卡在设备内业务卡广播老化开始消息,发起老化流程;
步骤212、主控卡接收每个业务卡age表上报消息,并存储每个age表;
步骤213、主控卡判断是否所有业务卡都已上报完整age表,若是,则执行步骤215;否则执行步骤214;
步骤214、判断age表收集计时器是否超时,若超时,则执行步骤215,否则执行步骤212;
步骤215、主控卡判定在上次老化决策与本次老化决策存储的age表中值都为0的ageid对应的mac地址为需要删除的mac地址;
步骤216、主控卡从本地mac地址表中删除判定结果为需要删除的mac地址,将ageid_to_mac映射表中ageid对应表项设置为无效,释放对应ageid进入age资源池;
步骤217、主控卡为每个age表中每个ageid生成age老化控制字;
步骤218、主控卡使用age老化表控制字组建age表控制消息,并向设备内对应的业务卡广播。
如图4所示,mac地址老化机制在业务卡上进行mac地址老化处理具体包括以下步骤:
步骤221、每个业务卡接收老化流程消息;
步骤222、判断接收到的消息类型是age表控制消息还是请求age表消息,执行步骤224;否则,执行步骤223;
步骤223、每个业务卡获取各自age表,并组建age表上报消息,发送个主控卡,然后执行步骤221;
步骤224、提取消息中的age老化表控制字,并依次保存;
步骤225、判断是否为最后一个age表控制消息,如果是,执行步骤226;否则执行步骤221;
步骤226、判断是否有age表控制消息丢失,如果有,执行步骤227;否则,执行步骤228;
步骤227、向主控卡发送重新发送缺失消息请求,然后执行步骤221;
步骤228、业务卡依次遍历age老化控制字,并根据对每个ageid的控制状态,对与该ageid对应的mac地址表项进行相应操作;
在本发明中,若ageid,控制状态为00,但本地ageid_to_mac映射表显示该ageid未用,则表明本地mac学习时消息丢失,进入mac地址学习补偿流程;
若ageid控制状态为10,通过ageid_to_mac映射表找到mac地址表项,在驱动程和NP中删除该表项;
若ageid控制状态为11,但本地ageid_to_mac映射表显示ageid已被使用,则表明本地mac地址表错误,通过ageid_to_mac映射表找到mac地址,在驱动程和NP中删除该表项;
步骤229、判断age老化控制字是否遍历结束,如果结束,执行步骤230;否则,执行步骤228;
步骤230、每个业务卡清空各自NP中的age表,将所有表项内容置0;
步骤231、结束流程。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种集中式mac地址学习的控制方法,其特征在于,包括:
mac地址的集中学习控制方式为:
业务卡将所有未知mac地址上报至主控卡进行集中学习;主控卡根据配置的mac地址学习限制条件判断未知mac地址是否学习mac地址,主控卡为需要进行学习的未知mac地址分配唯一age表项索引ageid,并将该未知mac地址插入本地mac地址表和ageid_to_mac映射表,再通过mac地址学习消息将未知mac地址对应表项同步广播至设备中所有业务卡;
mac地址老化机制为:
主控卡每隔一个预设时间段后收集一次每个业务卡的age表,根据收集的age表判定mac地址表中的每一个mac地址是否需要老化,并将判定结果发送至对应业务卡,所述业务卡根据收到的判定结果删除老化的mac地址。
2.如权利要求1所述的方法,其特征在于,所述主控卡中维护一个ageid资源池,该ageid资源池中存有age表中所有未被mac地址使用的age表项索引;
同时,主控卡维护各vlan、vp学习到的mac地址数量计数器和mac地址学习限制条件配置。
3.如权利要求2所述的方法,其特征在于,在设备的主控卡和业务卡上都设有mac地址表、age表和ageid_to_mac映射表,其中,mac地址表中每个表项的活跃状态使用age表中一个表项记录,age表项索引ageid表示在age表中每个表项的索引;ageid_to_mac映射表每个表项存储一个mac地址转发信息,该表使用age表项索引ageid作为索引;
对于age表,每完成一次老化过程,各个业务卡将本地NP中的age表各表项清0;当业务卡处理VPLS业务报文时,在本地mac地址表中查找与vpls业务报文源mac地址和VPLSID都一致的表项,若查找到该表项,NP从mac表中获取ageid,并将age表中与该ageid对应表项设置为1。
4.如权利要求3所述的方法,其特征在于,mac地址老化机制通过使用“2T”方式控制不活跃mac地址老化;“2T”方式为:
每隔预设时间T主控卡发起老化命令,收集所有业务卡的age表,当连续2T时间内mac地址对应ageid在age表中对应表项都为0时,在mac地址表中删除该mac地址,并为对应ageid生成age老化控制字;
如上所述,依次为age表中每个ageid生成2bit的age老化控制字,再将age老化控制字封装后通过age表控制消息广播至设备内所有业务卡,每个业务卡利用在ageid_to_mac映射表中ageid与mac表项一一对应的关系和每个ageid对应的age老化控制字来控制本地mac地址的增、删操作。
5.如权利要求4所述的方法,其特征在于,所述age表控制消息由MINM_HEAD、MSG_TYPE、SEQ_NO以及AGE_BIT_ARRAY字段组成,其中,
MINM_HEAD为线卡间通信包头;
MSG_TYPE代表消息类型;
SEQ_NO为消息序号,最高位置1表示此消息为最后一个老化控制消息;
AGE_BIT_ARRAY为与ageid对应mac地址表的表项控制状态,每个ageid对应的控制状态占用2bit位宽;控制状态包括:
00/01表示ageid已被使用,不删除对应mac地址;
10表示ageid已被使用,删除mac地址;
11表示ageid未被使用。
6.如权利要求5所述的方法,其特征在于,主控卡下发每个age表中所有ageid的age老化控制字,不同ageid的age老化控制字按ageid从低到高依次存储于AGE_BIT_ARRAY中,每个消息能够存放4096个ageid的age老化控制字;
当age表的age老化控制字容量超过4096个时,使用多个age表控制消息依次按序发送所有ageid的age老化控制字;对应的,业务卡依次接收所有age表控制消息,并依次检查所有ageid的age老化控制字,将age老化控制字为10的ageid对应的mac地址从mac地址表中删除。
7.如权利要求5所述的方法,其特征在于,若所述业务卡收到ageid的age老化控制字为00或者01,而本地ageid_to_mac映射表显示该ageid未使用时,则判断本地mac地址表中表项缺失;
当业务卡本地mac地址表中表项缺失时,该业务卡使用补偿学习请求消息将缺失表项对应的ageid发送至主控卡;主控卡通过补偿学习应答消息将缺失表项发送给发送请求的业务卡;
当业务卡本地mac地址表中表项存在多条缺失时,该业务卡将多个ageid封装进一个补偿学习请求消息,一个补偿学习请求消息最多同时请求256个ageid的表项缺失;当主控卡收到的补偿学习请求消息包含多个ageid时,主控卡将多个mac地址表项封装在一个补偿学习应答消息中,一个补偿学习应答消息最多支持封装32个mac地址表项。
8.如权利要求5所述的方法,其特征在于,当业务报文进入设备时,
在每个业务卡上,业务报文的处理包括以下步骤:
步骤111、业务卡的NP接收到业务报文;
步骤112、判断接收到的业务报文是否为mac地址学习消息,如果是执行步骤113;否则,执行步骤115;
步骤113、将mac地址学习消息中的mac地址、age表项索引、虚拟接口索引、vpls索引信息写入NP的mac地址表中;
步骤114、驱动层根据mac地址学习消息生成ageid_to_mac映射表,然后结束本次程序;
步骤115、判断是否为普通vpls业务报文,如果是执行步骤116;否则进入其他业务处理流程;
步骤116、在本地mac地址表中查找与vpls业务报文源mac地址和VPLSID都一致的表项,如果查找到匹配表项,执行步骤117;否则,执行步骤118;
步骤117、更新age表,NP从mac地址表中获取命中mac地址表项使用的ageid,并在age表中将与该ageid对应的表项值设置为1;
步骤118、使用目的mac地址和vpls索引查找mac地址表,如果查询到对应mac地址,执行步骤119;否则,执行步骤120;
步骤119、按照查找到的mac地址表项中指示的出口发送报文,结束本次程序;
步骤120、vpls内洪泛该报文,结束本次程序;
在主控卡上,业务报文的处理包括以下步骤:
步骤121、主控卡判断报文是否为mac地址学习消息,如果是,执行步骤123;否则,执行步骤122;
步骤122、将报文转发给其他模块处理;
步骤123、获取mac地址学习消息中新的mac地址、虚拟接口索引、vpls索引信息;
步骤124、主控卡判断设备在该vpls、vp上学习mac地址数量是否超过mac地址学习限制条件配置,如果没有超过,执行步骤125;否则,丢弃消息;
步骤125、主控卡为新的mac地址申请ageid,并将新的mac地址、ageid、虚拟接口索引、vpls索引信息插入本地mac地址表和ageid_to_mac映射表;
步骤126、主控卡组建mac地址学习消息,组播发送至设备内业务卡;
步骤127、业务卡收到mac地址学习消息后将mac地址、ageid、虚拟接口索引、vpls索引信息插入mac地址表和ageid_to_mac映射表。
9.如权利要求5所述的方法,其特征在于,mac地址老化机制在主控卡上进行mac地址老化处理具体包括以下步骤:
步骤211、每一个隔预设时间T,主控卡在设备内业务卡广播老化开始消息,发起老化流程;
步骤212、主控卡接收每个业务卡age表上报消息,并存储每个age表;
步骤213、主控卡判断是否所有业务卡都已上报完整age表,若是,则执行步骤215;否则执行步骤214;
步骤214、判断age表收集计时器是否超时,若超时,则执行步骤215,否则执行步骤212;
步骤215、主控卡判定在上次老化决策与本次老化决策存储的age表中值都为0的ageid对应的mac地址为需要删除的mac地址;
步骤216、主控卡从本地mac地址表中删除判定结果为需要删除的mac地址,将ageid_to_mac映射表中ageid对应表项设置为无效,释放对应ageid进入age资源池;
步骤217、主控卡为每个age表中每个ageid生成age老化控制字;
步骤218、主控卡使用age老化表控制字组建age表控制消息,并向设备内对应的业务卡广播;
mac地址老化机制在业务卡上进行mac地址老化处理具体包括以下步骤:
步骤221、每个业务卡接收老化流程消息;
步骤222、判断接收到的消息类型是age表控制消息还是请求age表消息,如果是age表控制消息,执行步骤224;否则,执行步骤223;
步骤223、每个业务卡获取各自age表,并组建age表上报消息,发送主控卡,然后执行步骤221;
步骤224、提取消息中的age老化控制字,并依次保存;
步骤225、判断是否为最后一个age表控制消息,如果是,执行步骤226;否则执行步骤221;
步骤226、判断是否有age表控制消息丢失,如果有,执行步骤227;否则,执行步骤228;
步骤227、向主控卡发送重新发送缺失消息请求,然后执行步骤221;
步骤228、业务卡依次遍历age老化控制字,并根据对每个ageid的控制状态,对与该ageid对应的mac地址表项进行相应操作;
步骤229、判断age老化控制字是否遍历结束,如果结束,执行步骤230;否则,执行步骤228;
步骤230、每个业务卡清空各自NP中的age表,将所有表项内容置0;
步骤231、结束流程。
10.如权利要求8或9所述的方法,其特征在于,在设备中还设有一个备用主控卡;
当主控卡工作正常时,备用主控卡维护与主控卡相同的mac地址表、age表和ageid资源池,其中,维护mac地址表和age表的方式与业务卡相同;
当主控卡出现故障时,备用主控卡直接取代主控卡进行学习、老化、控制,主控卡和备用主控卡将mac地址表、age表存储在内存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610209042.5A CN105721315B (zh) | 2016-04-06 | 2016-04-06 | 一种集中式mac地址学习的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610209042.5A CN105721315B (zh) | 2016-04-06 | 2016-04-06 | 一种集中式mac地址学习的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105721315A true CN105721315A (zh) | 2016-06-29 |
CN105721315B CN105721315B (zh) | 2018-11-23 |
Family
ID=56160043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610209042.5A Active CN105721315B (zh) | 2016-04-06 | 2016-04-06 | 一种集中式mac地址学习的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105721315B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107124346A (zh) * | 2017-05-09 | 2017-09-01 | 烽火通信科技股份有限公司 | 动态分配虚端口vpls转发防错方法及系统 |
CN107332774A (zh) * | 2017-06-09 | 2017-11-07 | 烽火通信科技股份有限公司 | 一种vpls中基于软硬件协同进行mac地址学习的方法 |
CN107819684A (zh) * | 2016-09-12 | 2018-03-20 | 南京中兴新软件有限责任公司 | 同步处理方法及装置 |
CN108307001A (zh) * | 2018-04-28 | 2018-07-20 | 深圳市风云实业有限公司 | Mac地址老化方法、装置及电子设备 |
CN108512949A (zh) * | 2018-03-23 | 2018-09-07 | 烽火通信科技股份有限公司 | 一种mac地址同步方法及系统 |
CN108900405A (zh) * | 2018-06-25 | 2018-11-27 | 烽火通信科技股份有限公司 | 基于vsi、端口的vpls mac地址表回显方法及系统 |
CN109525681A (zh) * | 2017-09-19 | 2019-03-26 | 中兴通讯股份有限公司 | Mac地址学习方法、线卡及分布式设备 |
CN111309471A (zh) * | 2018-12-11 | 2020-06-19 | 迈普通信技术股份有限公司 | 数据处理方法、装置及分布式系统 |
CN111355823A (zh) * | 2020-02-17 | 2020-06-30 | 杭州迪普科技股份有限公司 | Mac地址表项的老化处理方法和装置 |
CN113824631A (zh) * | 2021-09-10 | 2021-12-21 | 烽火通信科技股份有限公司 | 报文转发方法、装置、通信设备及存储介质 |
CN113949658A (zh) * | 2021-10-25 | 2022-01-18 | 迈普通信技术股份有限公司 | 表项处理方法、系统、装置、电子设备及存储介质 |
CN114125078A (zh) * | 2021-09-02 | 2022-03-01 | 杭州迪普信息技术有限公司 | 一种mac地址学习的方法及装置 |
CN114338595A (zh) * | 2021-12-31 | 2022-04-12 | 山石网科通信技术股份有限公司 | 报文的分布式处理方法、装置、存储介质及处理器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1976195A1 (en) * | 2007-03-30 | 2008-10-01 | Lucent Technologies Inc. | Method and apparatus for Mac address learning |
CN101488862A (zh) * | 2009-02-23 | 2009-07-22 | 中兴通讯股份有限公司 | 分布式以太网交换机及其内部的mac地址维护方法 |
CN101656676A (zh) * | 2009-09-18 | 2010-02-24 | 杭州华三通信技术有限公司 | 一种媒体访问控制mac地址表项更新方法和装置 |
CN102045200A (zh) * | 2010-12-24 | 2011-05-04 | 武汉烽火网络有限责任公司 | 分布式交换机mac地址表项有条件同步的方法 |
CN103209130A (zh) * | 2013-04-22 | 2013-07-17 | 杭州华三通信技术有限公司 | 一种同步mac地址表项的方法及转发芯片 |
-
2016
- 2016-04-06 CN CN201610209042.5A patent/CN105721315B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1976195A1 (en) * | 2007-03-30 | 2008-10-01 | Lucent Technologies Inc. | Method and apparatus for Mac address learning |
CN101488862A (zh) * | 2009-02-23 | 2009-07-22 | 中兴通讯股份有限公司 | 分布式以太网交换机及其内部的mac地址维护方法 |
CN101656676A (zh) * | 2009-09-18 | 2010-02-24 | 杭州华三通信技术有限公司 | 一种媒体访问控制mac地址表项更新方法和装置 |
CN102045200A (zh) * | 2010-12-24 | 2011-05-04 | 武汉烽火网络有限责任公司 | 分布式交换机mac地址表项有条件同步的方法 |
CN103209130A (zh) * | 2013-04-22 | 2013-07-17 | 杭州华三通信技术有限公司 | 一种同步mac地址表项的方法及转发芯片 |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107819684A (zh) * | 2016-09-12 | 2018-03-20 | 南京中兴新软件有限责任公司 | 同步处理方法及装置 |
CN107124346A (zh) * | 2017-05-09 | 2017-09-01 | 烽火通信科技股份有限公司 | 动态分配虚端口vpls转发防错方法及系统 |
WO2018205541A1 (zh) * | 2017-05-09 | 2018-11-15 | 烽火通信科技股份有限公司 | 动态分配虚端口vpls转发防错方法及系统 |
CN107332774A (zh) * | 2017-06-09 | 2017-11-07 | 烽火通信科技股份有限公司 | 一种vpls中基于软硬件协同进行mac地址学习的方法 |
CN107332774B (zh) * | 2017-06-09 | 2019-12-03 | 烽火通信科技股份有限公司 | 一种vpls中基于软硬件协同进行mac地址学习的方法 |
CN109525681A (zh) * | 2017-09-19 | 2019-03-26 | 中兴通讯股份有限公司 | Mac地址学习方法、线卡及分布式设备 |
CN108512949A (zh) * | 2018-03-23 | 2018-09-07 | 烽火通信科技股份有限公司 | 一种mac地址同步方法及系统 |
CN108512949B (zh) * | 2018-03-23 | 2021-05-07 | 烽火通信科技股份有限公司 | 一种mac地址同步方法及系统 |
CN108307001A (zh) * | 2018-04-28 | 2018-07-20 | 深圳市风云实业有限公司 | Mac地址老化方法、装置及电子设备 |
CN108900405A (zh) * | 2018-06-25 | 2018-11-27 | 烽火通信科技股份有限公司 | 基于vsi、端口的vpls mac地址表回显方法及系统 |
CN108900405B (zh) * | 2018-06-25 | 2020-12-29 | 烽火通信科技股份有限公司 | 基于vsi、端口的vpls mac地址表回显方法及系统 |
CN111309471A (zh) * | 2018-12-11 | 2020-06-19 | 迈普通信技术股份有限公司 | 数据处理方法、装置及分布式系统 |
CN111309471B (zh) * | 2018-12-11 | 2024-02-09 | 迈普通信技术股份有限公司 | 数据处理方法、装置及分布式系统 |
CN111355823A (zh) * | 2020-02-17 | 2020-06-30 | 杭州迪普科技股份有限公司 | Mac地址表项的老化处理方法和装置 |
CN111355823B (zh) * | 2020-02-17 | 2023-04-07 | 杭州迪普科技股份有限公司 | Mac地址表项的老化处理方法和装置 |
CN114125078A (zh) * | 2021-09-02 | 2022-03-01 | 杭州迪普信息技术有限公司 | 一种mac地址学习的方法及装置 |
CN113824631B (zh) * | 2021-09-10 | 2023-04-07 | 烽火通信科技股份有限公司 | 报文转发方法、装置、通信设备及存储介质 |
CN113824631A (zh) * | 2021-09-10 | 2021-12-21 | 烽火通信科技股份有限公司 | 报文转发方法、装置、通信设备及存储介质 |
CN113949658A (zh) * | 2021-10-25 | 2022-01-18 | 迈普通信技术股份有限公司 | 表项处理方法、系统、装置、电子设备及存储介质 |
CN114338595A (zh) * | 2021-12-31 | 2022-04-12 | 山石网科通信技术股份有限公司 | 报文的分布式处理方法、装置、存储介质及处理器 |
CN114338595B (zh) * | 2021-12-31 | 2024-02-02 | 山石网科通信技术股份有限公司 | 报文的分布式处理方法、装置、存储介质及处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN105721315B (zh) | 2018-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105721315A (zh) | 一种集中式mac地址学习的控制方法 | |
CN102333028B (zh) | 一种分层式二层虚拟专用网发送报文的方法及通信设备 | |
CN101815107B (zh) | 一种以太环网中管理地址的方法、系统以及设备 | |
CN101714932B (zh) | 一种用于irf堆叠设备的mad检测方法及装置 | |
CN107016087B (zh) | 基于哨兵模型的层级数据库高可用系统 | |
CN101519078B (zh) | 综合监控系统多区域数据同步方法 | |
CN101459534B (zh) | 一种树状网络的网络拓扑收集方法和网络设备 | |
CN100490418C (zh) | 一种基于虚拟局域网的数据交换方法及设备 | |
CN104135539A (zh) | 数据存储方法、sdn控制器和分布式网络存储系统 | |
CN105812264B (zh) | 多路并行的mac地址学习和地址查找的装置及方法 | |
US20120195308A1 (en) | Communication processing apparatus and address learning method | |
CN104378232A (zh) | 主备集群组网模式下的脑裂发现、恢复方法及装置 | |
CN103546315B (zh) | 一种dhcp服务器的备份系统、方法及设备 | |
CN104506372B (zh) | 一种实现主备服务器切换的方法及系统 | |
CN112134796B (zh) | 一种实现流量切换的方法、装置及系统 | |
WO2016124105A1 (zh) | 一种媒体接入控制地址学习方法、设备和系统 | |
CN101834781B (zh) | 一种聚合端口的介质访问控制地址保活装置及方法 | |
CN104113609A (zh) | 一种mac地址发布的方法和设备 | |
CN108140035A (zh) | 分布式系统的数据库复制方法及装置 | |
CN109215326A (zh) | 一种并行抄表方法和装置 | |
CN110351139B (zh) | 一种电能质量管理系统多机主备实现方法 | |
CN109189549A (zh) | 虚拟机迁移方法及装置 | |
CN110213359B (zh) | 一种基于d2d的车联网组网数据推送系统和方法 | |
CN102638408A (zh) | 拓扑变化报文的发送方法、刷新转发表的方法及装置 | |
CN104243304A (zh) | 非全连通拓扑结构的数据处理方法、设备和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |