本发明涉及网络通信,尤其涉及一种mac表项回滚同步学习方法及设备。
背景技术:
1、多机箱链路聚合(multi-chassis lag,mlag)技术是一种跨设备的链路聚合技术,mlag的主设备和备设备通过peerlink链路互相同步mac、igmp、arp等协议表项,保持两台mlag设备的协议表项相同。mlag主设备和备设备以完全相同的信息和状态与被接入的设备进行跨设备链路聚合协商。被接入的设备可以将两台mlag设备当成一台设备来建立链路聚合关系。这种跨设备的链路聚合机制可以作为一个逻辑的链路聚合组,实现多台设备间的链路聚合。
2、由于mlag主设备和备设备在跨设备链路聚合环境中属于同一台设备,所以二者的mac表项必须保持一致,现有的方法就是任意一台mlag设备跨设备链路聚合组学习到一条新的mac地址表项,会立即将该mac表项封装进mlag同步报文并通过peerlink链路发送给对端mlag设备。对端mlag设备解析该同步报文中的mac表项内容并将该mac表项写入本地mac地址表中。同时为了增加mac同步的可靠性,mlag主设备和备设备还有定时同步机制,每隔一段时间会定时将本地所有的mac表项同步给对端mlag设备,从而进一步保证mlag设备mac表项的一致性。
3、但上述现有方案存在以下缺点:
4、1,如果本端设备在发送mac同步报文过程中出错而失败,或对端设备在收到mac同步报文并写入本地mac地址表的过程中出错而失败,都会导致mlag两端mac表项不一致。
5、2,如果设备有大量的mac表项需要定时同步,对peerlink链路的同步通道会造成拥塞,轻则导致丢包,重则导致整个peerlink连接断开,使整个mlag协议出现异常。
6、因此,目前的mlag主/备设备的mac表项同步方法的可靠性较差,且容易造成peerlink链路的拥塞,导致mlag协议出现异常。
技术实现思路
1、本发明实施例提供了一种mac表项回滚同步学习方法及设备,用于解决如下技术问题:目前的mlag主/备设备的mac表项同步方法的可靠性较差,且容易造成peerlink链路的拥塞,导致mlag协议出现异常。
2、本发明实施例采用下述技术方案:
3、一方面,本发明实施例提供了一种mac表项回滚同步学习方法,方法包括:
4、mlag设备将学习到的新增mac地址与第一原因标签封装为mlag同步报文,发送给对端mlag设备;其中,所述mlag设备为主设备时,所述对端mlag设备为备设备,所述mlag设备为备设备时,所述对端mlag设备为主设备;
5、若发送报文失败,所述mlag设备将所述新增mac地址写入本地的第一同步对象表中,并启动第一定时器;
6、在第一定时器超时后,所述mlag设备将所述第一同步对象表中的待同步对象全部发送给对端mlag设备,并在发送成功后将所述待同步对象在所述第一同步对象表中删除。
7、在一种可行的实施方式中,mlag设备将学习到的新增mac地址与第一原因标签封装为mlag同步报文,发送给对端mlag设备,具体包括:
8、mlag设备通过跨设备聚合口收到mac业务流量报文后,触发mac学习操作,并将学习到的新增mac地址写入本地mac地址表中;
9、若地址写入成功,则将所述新增mac地址以及第一原因标签封装进mlag同步报文,并通过peerlink链路发送到所述对端mlag设备。
10、在一种可行的实施方式中,若发送报文失败,所述mlag设备将所述新增mac地址写入本地的第一同步对象表中,并启动第一定时器,具体包括:
11、所述mlag设备如果发送mac同步报文时失败,则重新发送,直至发送预设次数后若仍未发送成功,则将所述新增mac地址写入所述mlag设备本地的第一同步对象表pending_sync中暂存,并启动预设时长的第一定时器timer_sync。
12、在一种可行的实施方式中,在第一定时器超时后,所述mlag设备将所述第一同步对象表中的待同步对象全部发送给对端mlag设备,并在发送成功后将所述待同步对象在所述第一同步对象表中删除,具体包括:
13、在所述第一定时器超时后,所述mlag设备遍历本地第一同步对象表pending_sync中的所有mac地址表项,并将遍历到的mac地址表项与第一原因标签作为待同步对象,通过peerlink链路全部发送给对端mlag设备;
14、将成功发送的mac地址表项在所述mlag设备本地的第一同步对象表pending_sync中删除。
15、另一方面,本发明实施例还提供了一种mac表项回滚同步学习方法,方法包括:
16、mlag设备根据接收到的mlag同步报文中的原因标签,将所述mlag同步报文中的新增mac地址写入本地mac地址表;其中,所述mlag设备为主设备时,所述对端mlag设备为备设备,所述mlag设备为备设备时,所述对端mlag设备为主设备;
17、若写入本地失败,所述mlag设备生成第二原因标签,并与所述新增mac地址封装为新的mlag同步报文,回传给对端mlag设备;
18、若回传报文失败,所述mlag设备将所述新增mac地址写入本地的第二同步对象表中,并启动第二定时器;
19、在第二定时器超时后,所述mlag设备将所述第二同步对象表中的待同步对象全部发送给所述对端mlag设备,并在发送成功后将所述待同步对象在所述第二同步对象表中删除。
20、在一种可行的实施方式中,mlag设备根据接收到的mlag同步报文中的原因标签,将所述mlag同步报文中的新增mac地址写入本地mac地址表,具体包括:
21、所述mlag设备解析接收到的同步报文中携带的mac地址以及原因标签;
22、若所述原因标签为第一原因标签,则将所述mac地址作为新增mac地址写入本地mac地址表;
23、若所述原因标签为第二原因标签,且所述mac地址在所述mlag设备的本地mac地址表中已存在,则将所述mac地址存入本地的第一同步对象表pending_sync中,等待第一定时器下一次超时再重新发送给对端mlag设备。
24、在一种可行的实施方式中,若写入本地失败,所述mlag设备生成第二原因标签,并与所述新增mac地址封装为新的mlag同步报文,回传给对端mlag设备,具体包括:
25、若所述新增mac地址写入本地mac地址表失败,所述mlag设备生成第二原因标签,并将所述新增mac地址与第二原因标签封装为新的mlag同步报文,并通过peerlink链路回传给对端mlag设备。
26、在一种可行的实施方式中,若回传报文失败,所述mlag设备将所述新增mac地址写入本地的第二同步对象表中,并启动第二定时器,具体包括:
27、所述mlag设备若在发送新的mac同步报文时失败,则重新发送,直至发送预设次数后若仍未发送成功,则将所述新增mac地址写入所述mlag设备本地的第二同步对象表pending_unsync中暂存,并启动预设时长的第二定时器timer_unsync。
28、在一种可行的实施方式中,在第二定时器超时后,所述mlag设备将所述第二同步对象表中的待同步对象全部发送给所述对端mlag设备,并在发送成功后将所述待同步对象在所述第二同步对象表中删除,具体包括:
29、在所述第二定时器超时后,所述mlag设备遍历本地第二同步对象表pending_unsync中的所有mac地址表项,并将遍历到的mac地址表项与第二原因标签作为待同步对象,通过peerlink链路全部发送给对端mlag设备;
30、将成功发送的mac地址表项在所述mlag设备本地的第二同步对象表pending_sync中删除;
31、若所述mlag设备本地mac地址表中的任一个或多个mac地址表项被删除,则将本地的第一同步对象表以及第二同步对象表中对应的mac地址表项同步删除;同时,通知对端mlag设备将本地的第一同步对象表以及第二同步对象表中对应的mac地址表项也同步删除。
32、最后,本发明实施例还提供了一种mac表项回滚同步学习设备,所述设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有能够被所述至少一个处理器执行的指令,以使所述至少一个处理器能够执行:
33、将学习到的新增mac地址与第一原因标签封装为mlag同步报文,发送给对端mlag设备;其中,所述mlag设备为主设备时,所述对端mlag设备为备设备,所述mlag设备为备设备时,所述对端mlag设备为主设备;
34、若发送报文失败,将所述新增mac地址写入本地的第一同步对象表中,并启动第一定时器;在第一定时器超时后,将所述第一同步对象表中的待同步对象全部发送给对端mlag设备,并在发送成功后将所述待同步对象在所述第一同步对象表中删除;
35、根据接收到的mlag同步报文中的原因标签,将所述mlag同步报文中的新增mac地址写入本地mac地址表;若写入本地失败,生成第二原因标签,并与所述新增mac地址封装为新的mlag同步报文,回传给对端mlag设备;
36、若回传报文失败,将所述新增mac地址写入本地的第二同步对象表中,并启动第二定时器;在第二定时器超时后,将所述第二同步对象表中的待同步对象全部发送给所述对端mlag设备,并在发送成功后将所述待同步对象在所述第二同步对象表中删除。
37、与现有技术相比,本发明实施例提供的mac表项回滚同步学习方法及设备,具有如下有益效果:
38、本发明设计了一种高效可靠的mac表项回滚同步学习方法及设备,在主/备设备进行mac学习实时同步的过程中采用二次定时重传以及回滚同步机制,在写入失败或回传失败时均通过定时器进行重传以及回滚同步,保证了mac同步的可靠性。实现了mlag主设备和备设备的mac表项始终保持一致。
39、另外,为解决mac定时全量同步容易造成peerlink通信通道拥塞的问题,本发明采用定时pending表同步机制,分批进行mac同步,有效缓解了peerlink通道的通信负担。
1.一种mac表项回滚同步学习方法,其特征在于,所述方法包括:
2.根据权利要求1所述的一种mac表项回滚同步学习方法,其特征在于,mlag设备将学习到的新增mac地址与第一原因标签封装为mlag同步报文,发送给对端mlag设备,具体包括:
3.根据权利要求1所述的一种mac表项回滚同步学习方法,其特征在于,若发送报文失败,所述mlag设备将所述新增mac地址写入本地的第一同步对象表中,并启动第一定时器,具体包括:
4.根据权利要求1所述的一种mac表项回滚同步学习方法,其特征在于,在第一定时器超时后,所述mlag设备将所述第一同步对象表中的待同步对象全部发送给对端mlag设备,并在发送成功后将所述待同步对象在所述第一同步对象表中删除,具体包括:
5.一种mac表项回滚同步学习方法,其特征在于,所述方法包括:
6.根据权利要求5所述的一种mac表项回滚同步学习方法,其特征在于,mlag设备根据接收到的mlag同步报文中的原因标签,将所述mlag同步报文中的新增mac地址写入本地mac地址表,具体包括:
7.根据权利要求5所述的一种mac表项回滚同步学习方法,其特征在于,若写入本地失败,所述mlag设备生成第二原因标签,并与所述新增mac地址封装为新的mlag同步报文,回传给对端mlag设备,具体包括:
8.根据权利要求5所述的一种mac表项回滚同步学习方法,其特征在于,若回传报文失败,所述mlag设备将所述新增mac地址写入本地的第二同步对象表中,并启动第二定时器,具体包括:
9.根据权利要求5所述的一种mac表项回滚同步学习方法,其特征在于,在第二定时器超时后,所述mlag设备将所述第二同步对象表中的待同步对象全部发送给所述对端mlag设备,并在发送成功后将所述待同步对象在所述第二同步对象表中删除,具体包括:
10.一种mac表项回滚同步学习设备,其特征在于,所述设备包括:
