一种提高FDB同步效率的方法、装置、设备及介质与流程

摘要: 本技术涉及通信,尤其涉及一种提高fdb同步效率的方法、装置、设备及介质。背景技术:1、在数据中心及园区网络中,为提高端口密度和系统可靠性,通常采用分布式机箱式交...
一种提高FDB同步效率的方法、装置、设备及介质与流程

本技术涉及通信,尤其涉及一种提高fdb同步效率的方法、装置、设备及介质。

背景技术:

1、在数据中心及园区网络中,为提高端口密度和系统可靠性,通常采用分布式机箱式交换机或将多台独立交换机通过堆叠端口互联形成单一逻辑设备的堆叠系统。在该类系统中,每块线卡或每台成员设备均配置独立的交换芯片,各芯片本地维护转发数据库(forwarding database,fdb),用于根据目的mac地址及vlan信息决策报文出端口。从用户视角来看,整个系统应表现为一台逻辑交换机,因此任一端口学习到的mac地址必须在系统内所有芯片的fdb中保持一致,否则将导致流量黑洞或异常泛洪。

2、为保持分布式设备或堆叠系统中各芯片fdb一致,现有技术通常依赖控制平面集中管理。整机重启时,各成员独立完成启动,先启动的成员通过硬件自学习将用户侧报文的源mac地址写入本设备fdb;待全部成员就绪后,由主控单元通过软件rpc对各成员fdb进行全量收集、比对和差异下发。当新板卡或新堆叠成员加入时,同样由主控单元通过软件rpc将既有fdb表项全量或增量同步至新成员,并由cpu逐条下发至交换芯片。

3、然而,现有技术方案在整机重启时,各成员设备启动时序不一致,先启动的成员已从用户侧学习mac地址并写入硬件fdb,而后启动的成员因互联端口尚未就绪,无法通过硬件自学习同步获取该fdb表项,导致fdb同步效率低下。

技术实现思路

1、本技术提供了一种提高fdb同步效率的方法、装置、设备及介质,能够提高fdb同步效率。

2、为达到上述目的,本技术采用如下技术方案:

3、第一方面,本技术提供了一种提高fdb同步效率的方法,包括:

4、接收主控单元在检测到整机重启流程开始时下发的第一控制指令;

5、根据所述第一控制指令,关闭本设备的用户业务端口、互联端口的收发使能;

6、完成本设备的引导及交换芯片初始化,并向所述主控单元上报本地就绪状态;

7、接收所述主控单元下发的第二控制指令,所述第二控制指令为所述主控单元在确定全部成员就绪且系统拓扑稳定后下发;

8、根据所述第二控制指令,开启所述用户业务端口、互联端口的收发使能;

9、在端口的收发使能开启后,通过互联端口接收来自其他成员转发的未知单播报文,并根据所述未知单播报文中的源mac地址和入端口信息进行硬件转发数据库fdb自学习,以完成本设备与其他成员设备之间的fdb同步。

10、可选的,所述方法还包括:

11、当检测到有新板卡或新堆叠成员作为新成员与本设备链路连通后,读取本设备硬件fdb中的各表项,获取各表项中的mac地址、vlan标识及出端口映射信息;

12、将读取到的各表项中的mac地址、vlan标识及出端口映射信息封装为芯片堆叠同步报文;

13、将所述芯片堆叠同步报文通过指向所述新成员的互联端口发送至所述新成员,以使新成员将芯片堆叠同步报文中的fdb表项写入本地硬件fdb。

14、可选的,所述方法还包括:

15、在预设时间窗口内,统计通过所述互联端口接收到的未知单播报文的数量,若所述数量低于数量阈值,则向所述主控单元上报拓扑异常信息。

16、可选的,所述根据所述未知单播报文中的源mac地址和入端口信息进行硬件转发数据库fdb自学习,包括:

17、查询本设备硬件fdb中是否已存在包含所述源mac地址的表项;

18、若不存在包含所述源mac地址的表项,则将所述源mac地址、所述入端口信息及所述未知单播报文所属的vlan标识关联写入本设备硬件fdb,得到新的fdb表项,并将所述新的fdb表项标记为动态表项。

19、可选的,所述方法还包括:

20、为所述动态表项启动老化定时器,当所述老化定时器超时时,将所述动态表项从本设备硬件fdb中删除。

21、可选的,所述方法还包括:

22、解析所述未知单播报文的报文头,判断所述报文头中是否携带堆叠同步标识;

23、若报文头中携带所述堆叠同步标识,则从所述未知单播报文中提取源mac地址进行硬件fdb自学习;

24、若报文头中不携带所述堆叠同步标识,则禁止从所述未知单播报文中提取源mac地址进行硬件fdb自学习。

25、可选的,所述方法还包括:

26、将通过本设备的用户业务端口接收到的数据报文中的源mac地址,与已存储的本地mac地址白名单进行匹配;

27、若匹配失败,则禁止将数据报文中的源mac地址写入硬件fdb。

28、第二方面,本技术提供了一种提高fdb同步效率的装置,包括:

29、接收模块,用于接收主控单元在检测到整机重启流程开始时下发的第一控制指令;

30、处理模块,用于根据所述第一控制指令,关闭本设备的用户业务端口、互联端口的收发使能;完成本设备的引导及交换芯片初始化,并向所述主控单元上报本地就绪状态;

31、接收模块,用于接收所述主控单元下发的第二控制指令,所述第二控制指令为所述主控单元在确定全部成员就绪且系统拓扑稳定后下发;

32、学习模块,用于根据所述第二控制指令,开启所述用户业务端口、互联端口的收发使能;在端口的收发使能开启后,通过互联端口接收来自其他成员转发的未知单播报文,并根据所述未知单播报文中的源mac地址和入端口信息进行硬件转发数据库fdb自学习,以完成本设备与其他成员设备之间的fdb同步。

33、第三方面,本技术提供了一种计算设备,包括存储器和处理器;

34、其中,在所述存储器中存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令;当所述指令被所述处理器执行时,使得所述计算设备执行如第一方面中任一项所述的方法。

35、第四方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行如第一方面中任一项所述的方法。

36、由上述技术方案可知,本技术至少具有如下有益效果:

37、在整机重启过程中,通过关闭用户业务端口和互联端口的收发使能,防止先启动完成的成员设备提前从用户侧学习mac地址并写入硬件fdb,同时避免在系统拓扑尚未稳定时各成员之间产生无效或干扰性的互联通信;待系统内全部成员设备完成引导及芯片初始化且拓扑稳定后,再统一开启用户业务端口和互联端口的收发使能,此时各成员设备的互联端口均已可达,来自于其他成员转发的未知单播报文能够通过互联端口到达本设备,各成员设备通过硬件fdb自学习同时完成表项同步,无需主控单元通过软件rpc进行全量收集、比对和差异下发,缩短了整机重启后fdb的收敛时间,提高了fdb同步效率。

38、此外,在新成员加入时,通过芯片sdk或api批量读取本设备硬件fdb中的各表项,并通过交换芯片的硬件发包功能将封装后的芯片堆叠同步报文经由互联端口发送至新成员,使新成员将同步报文中的fdb表项写入本地硬件fdb,fdb同步过程在芯片硬件层面完成,避免了控制平面cpu通过软件rpc逐条同步表项所导致的耗时过长问题,降低了cpu占用率,提高了新成员加入时的fdb同步效率。

39、应当理解的是,本技术中对技术特征、技术方案、有益效果或类似语言的描述并不是暗示在任意的单个实施例中可以实现所有的特点和优点。相反,可以理解的是对于特征或有益效果的描述意味着在至少一个实施例中包括特定的技术特征、技术方案或有益效果。因此,本说明书中对于技术特征、技术方案或有益效果的描述并不一定是指相同的实施例。进而,还可以任何适当的方式组合本实施例中所描述的技术特征、技术方案和有益效果。本领域技术人员将会理解,无需特定实施例的一个或多个特定的技术特征、技术方案或有益效果即可实现实施例。在其他实施例中,还可在没有体现所有实施例的特定实施例中识别出额外的技术特征和有益效果。