一种集中式mac地址学习的控制方法

文档序号:9931202阅读:670来源:国知局
一种集中式mac地址学习的控制方法
【技术领域】
[0001]本发明涉及通信技术领域,具体涉及一种集中式mac地址学习的控制方法。
【背景技术】
[0002] 随着现代网络的发展,二层VPN(Virtual Private Network虚拟专用网络)技术的 普及使用,现代高端路由设备对二层VPN业务mac地址学习和控制功能提出了更高的要求, 能否高效、准确的进行mac地址学习,以及能否对mac学习过程和mac表项进行有效的控制显 得尤为重要。
[0003] 在传统的路由设备中,mac学习主要由业务卡的NP(Network Processor网络处理 器)芯片完成,NP芯片检测到\^11^(>;[1'1:皿1?1';[¥3丨6]^111361^;[06虚拟专用局域网业务)实例 收到源mac地址未知的报文后,由NP内置的微码程序将该报文源mac地址、vlanid、接收端口 等信息写入本地mac表,同时将这些信息广播到路由设备中的其他业务板卡进行板卡间mac 表项的同步。
[0004] 虽然上述典型的学习方式能够快速的进行mac地址学习,但同时也存在诸多限制:
[0005] 1.学习报文丢失后不能提供补偿学习机制,漏学后无法恢复;
[0006] 2.单盘上电或重启后,本盘mac表无法与设备同步;
[0007] 3.由于mac表分散到各单盘,且由硬件维护,不便于集中管理维护。

【发明内容】

[0008] 本发明所要解决的技术问题是传统mac学习方式难于管理、无法上电同步、板间同 步以及mac学习过程中信令丢失造成漏学,且不能提供补偿学习的问题。
[0009] 为了解决上述技术问题,本发明所采用的技术方案是提供一种集中式mac地址学 习的控制方法,包括:
[0010] mac地址的集中学习控制方式为:
[0011] 业务卡将所有未知mac地址上报至主控卡进行集中学习;主控卡根据配置的mac地 址学习限制条件判断未知mac地址是否学习 mac地址,主控卡为需要进行学习的未知mac地 址分配唯一age表项索引ageid,并将该未知mac地址插入本地mac地址表和ageid_to_mac映 射表,再通过mac地址学习消息将未知mac地址对应表项同步广播至设备中所有业务卡; [00 12] mac地址老化机制为:
[0013]主控卡每隔一个预设时间段后收集一次每个业务卡的age表,根据收集的age表判 定mac地址表中的每一个mac地址是否需要老化,并将判定结果发送至对应业务卡,所述业 务卡根据收到的判定结果删除老化的mac地址。
[0014] 在上述方法中,所述主控卡中维护一个age id资源池,该age id资源池中存有age表 中所有未被mac地址使用的age表项索引;
[0015] 同时,主控卡维护各vlan、vp学习到的mac地址数量计数器和mac地址学习限制条 件配置。
[0016] 在上述方法中,在设备的主控卡和业务卡上都设有mac地址表、age表和ageid_to_ mac映射表,其中,mac地址表中每个表项的活跃状态使用age表中一个表项记录,age表项索 弓lageid表示在age表中每个表项的索引;ageid_to_mac映射表每个表项存储一个mac地址 转发信息,该表使用age表项索引ageid作为索引;
[0017]对于age表,每完成一次老化过程,各个业务卡将本地NP中的age表各表项清0;当 业务卡处理VPLS业务报文时,在本地mac地址表中查找与vpls业务报文源mac地址和VPLS ID都一致的表项,若查找到该表项,NP从mac表中获取ageid,并将age表中与该ageid对应表 项设置为1。
[0018] 在上述方法中,mac地址老化机制通过使用"2T"方式控制不活跃mac地址老化; "2T"方式为:
[0019] 每隔预设时间T主控卡发起老化命令,收集所有业务卡的age表,当连续2T时间内 mac地址对应age id在age表中对应表项都为0时,在mac地址表中删除该mac地址,并为对应 ageid生成age老化控制字;
[0020] 如上所述,依次为age表中每个ageid生成2bit的age老化控制字,再将age老化控 制字封装后通过age表控制消息广播至设备内所有业务卡,每个业务卡利用在ageid_to_ mac映射表中ageid与mac表项--对应的关系和每个age id对应的age老化控制字来控制本 地mac地址的增、删操作。
[0021] 在上述方法中,所述age表控制消息由MINM_HEAD、MSG_TYPE、SEQ_NO以及AGE_BIT_ ARRAY字段组成,其中,
[0022] MINM_HEAD为线卡间通信包头;
[0023] MSG_TYPE代表消息类型;
[0024] SEQ_N0为消息序号,最高位置1表示此消息为最后一个老化控制消息;
[0025] AGE_BIT_ARRAY为与ageid对应mac地址表的表项控制状态,每个ageid对应的控制 状态占用2bit位宽;控制状态包括:
[0026] 00/01表示ageid已被使用,不删除对应mac地址;
[0027] 10表示ageid已被使用,删除mac地址;
[0028] 11表示ageid未被使用。
[0029] 在上述方法中,主控卡下发每个age表中所有ageid的age老化控制字,不同ageid 的age老化控制字按ageid从低到高依次存储于AGE_BIT_ARRAY中,每个消息能够存放4096 个ageid的age老化控制字;
[0030]当age表的age老化控制字容量超过4096个时,使用多个age表控制消息依次按序 发送所有ageid的age老化控制字;对应的,业务卡依次接收所有age表控制消息,并依次检 查所有ageid的age老化控制字,将age老化控制字为10的age id对应的mac地址从mac地址表 中删除。
[0031]在上述方法中,若所述业务卡收到ageid的age老化控制字为00或者01,而本地 ageid_to_mac映射表显示该ageid未使用时,则判断本地mac地址表中表项缺失;
[0032]当业务卡本地mac地址表中表项缺失时,该业务卡使用补偿学习请求消息将缺失 表项对应的ageid发送至主控卡;主控卡通过补偿学习应答消息将缺失表项发送给发送请 求的业务卡;
[0033] 当业务卡本地mac地址表中表项存在多条缺失时,该业务卡将多个ageid封装进一 个补偿学习请求消息,一个补偿学习请求消息最多同时请求256个ageid的表项缺失;当主 控卡收到的补偿学习请求消息包含多个ageid时,主控卡将多个mac地址表项封装在一个补 偿学习应答消息中,一个补偿学习应答消息最多支持封装32个mac地址表项。
[0034] 在上述方法中,当业务报文进入设备时,
[0035] 在每个业务卡上,业务报文的处理包括以下步骤:
[0036]步骤111、业务卡的NP接收到业务报文;
[0037]步骤112、判断接收到的业务报文是否为mac地址学习消息,如果是执行步骤113; 否则,执行步骤115;
[0038] 步骤113、将mac地址学习消息中的mac地址、age表项索弓丨、虚拟接口索弓丨、vpls索 引信息写入NP的mac地址表中;
[0039] 步骤114、驱动层根据mac地址学习消息生成ageid_to_mac映射表,然后结束本次 程序;
[0040] 步骤115、判断是否为普通vpls业务报文,如果是执行步骤116;否则进入其他业务 处理流程;
[0041 ] 步骤116、在本地mac地址表中查找与vpls业务报文源mac地址和VPLS ID都一致的 表项,如果查找到匹配表项,如果查到对应mac地址,执行步骤117;否则,执行步骤118; [0042] 步骤117、更新age表,NP从mac地址表中获取命中mac地址表项使用的ageid,并在 age表中将与该ageid对应的表项值设置为1;
[0043] 步骤118、使用目的mac地址和vpls索引查找mac地址表,如果查询到对应mac地址, 执行步骤119;否则,执行步骤120;
[0044]步骤119、按照查找到的mac地址表项中指示的出口发送报文,结束本次程序;
[0045]步骤120、vp 1 s内洪泛该报文,结束本次程序;
[0046] 在主控卡上,业务报文的处理包括以下步骤:
[0047] 步骤121、主控卡判断报文是否为mac地址学习消息,如果是,执行步骤123;否则, 执行步骤122;
[0048]步骤122、将报文转发给其他模块处理;
[0049] 步骤123、获取mac地址学习消息中新的mac地址、虚拟接口索引、vpls索引信息;
[0050] 步骤124、主控卡判断设备在该vpls、vp上学习 mac地址数量是否超过mac地址学习 限制条件配置,如果没有超过,执行步骤125;否则,丢弃消息;
[0051 ] 步骤125、主控卡为新的mac地址申请ageid,并将新的mac地址、ageid、虚拟接口索 弓丨、vpls索引信息插入本地mac地址表和ageid_to_mac映射表;
[0052] 步骤126、主控卡组建mac地址学习消息,组播发送至设备内业务卡;
[0053] 步骤127、业务卡收到mac地址学习消息后将mac地址、ageid、虚拟接口索引、vp 1 s 索引信息插入mac地址表和ageid_to_mac映射表。
[OOM] 在上述方法中,mac地址老化机制在主控卡上进行mac地址老化处理具体包括以下 步骤:
[0055]步骤211、每一个隔预设时间T,主控卡在设备内业务卡广播老化开始消息,发起老 化流程;
[0056]步骤212、主控卡接收每个业务卡age表上报消息,并存储每个age表;
[0057]步骤213、主控卡判断是否所有业务卡都已上报完整age表,若是,则执行步骤215; 否则执行步骤214;
[0058]步骤214、判断age表收集计
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1