本技术涉及网络,特别是涉及一种三层组播方法、网络设备及装置。
背景技术:
1、网络设备通过组播技术能够实现组播流量的单点发送多点接收,从而实现网络中一点到多点的高效数据传输,进而节省网络带宽,降低网络负载。因此组播技术在在线直播、网络电视、远程教育、远程医疗、实时视频会议等场景中能够起到重要的作用。
2、相关技术中,为了实现组播流量的转发,网络设备在通过目标入接口接收到属于目标组播组的组播流量后,首先需要生成平台表项。该平台表项与目标入接口和目标组播组对应,用于转发通过目标入接口接收的,属于目标组播组的组播流量。
3、然而,由于网络设备底层硬件的存储资源有限,在网络设备处理大量组播流量时,需要向底层硬件下发大量的mll(multicast linked list,组播链表)。网络设备底层硬件可能无法容纳所有mll,导致mll下发失败,进而影响组播流量的转发。
技术实现思路
1、本技术实施例的目的在于提供一种三层组播方法、网络设备及装置,以在生成并下发mll时节省网络设备底层硬件的存储资源。具体技术方案如下:
2、第一方面,本技术实施例提供了一种三层组播方法,所述方法包括:
3、在接收到组播流量后,将对应相同的出接口且属于不同组播组的多个组播流量划分至同一组播流量组;
4、针对每一组播流量组,生成并向底层驱动模块下发一条第一组播链表mll,以使所述底层驱动模块根据自身接收到的第一mll将该组播流量组中的组播流量转发至与该第一mll对应的出接口,其中,所述第一mll中记录的出接口字段指示该组播流量组中的组播流量对应的出接口,所述第一mll中记录的组播组地址字段指示该组播流量组中全部组播流量所属组播组的地址。
5、本技术的一个实施例中,在所述针对每一组播流量组,生成并向底层驱动模块下发一条第一组播链表mll之后,还包括:
6、针对每一组播流量组,根据该组播流量组对应的第一mll生成并向所述底层驱动模块下发最长前缀匹配lpm表项,其中,所述lpm表项中的下一跳索引值指向该第一mll。
7、本技术的一个实施例中,在通过三层虚拟局域网vlan接口接收组播流量的情况下,所述将对应相同的出接口且属于不同组播组的多个组播流量划分至同一组播流量组,包括:
8、针对接口类型为三层vlan接口的入接口,将通过单个入接口接收的、对应相同的出接口且属于不同组播组的多个组播流量划分至同一组播流量组;
9、针对每一组播流量组,所生成的第一mll中记录的入接口字段指示该组播流量组中的全部组播流量对应的入接口。
10、本技术的一个实施例中,在通过路由接口或路由聚合接口接收组播流量的情况下,所述将对应相同的出接口且属于不同组播组的多个组播流量划分至同一组播流量组,包括:
11、针对接口类型为路由接口或路由聚合接口的入接口,将通过所有入接口接收的、对应相同的出接口且属于不同组播组的多个组播流量划分至同一组播流量组;
12、针对每一组播流量组,所生成的第一mll中记录的入接口字段指示该组播流量组中的全部组播流量对应的入接口。
13、本技术的一个实施例中,所述方法还包括:
14、在接收到目标组播流量之后,确定所述目标组播流量对应的目标出接口;
15、判断所述底层驱动模块中是否存在第二mll,其中,所述第二mll中记录的出接口字段指示所述目标出接口;
16、若存在第二mll,则生成第三mll,其中,所述第三mll中记录的出接口字段指示所述目标出接口,所述第三mll中记录的组播组地址字段指示所述目标组播流量所属组播组的地址;
17、根据所述第三mll,更新所述底层驱动模块中的所述第二mll。
18、第二方面,本技术实施例提供了一种网络设备,所述网络设备包括存储器,收发机,处理器:
19、存储器,用于存储计算机程序;收发机,用于在所述处理器的控制下收发数据;处理器,用于读取所述存储器中的计算机程序并执行以下操作:
20、在接收到组播流量后,将对应相同的出接口且属于不同组播组的多个组播流量划分至同一组播流量组;
21、针对每一组播流量组,生成并向底层驱动模块下发一条第一组播链表mll,以使所述底层驱动模块根据自身接收到的第一mll将该组播流量组中的组播流量转发至与该第一mll对应的出接口,其中,所述第一mll中记录的出接口字段指示该组播流量组中的组播流量对应的出接口,所述第一mll中记录的组播组地址字段指示该组播流量组中全部组播流量所属组播组的地址。
22、本技术的一个实施例中,在所述针对每一组播流量组,生成并向底层驱动模块下发一条第一组播链表mll之后,所述处理器还用于执行以下操作:
23、针对每一组播流量组,根据该组播流量组对应的第一mll生成并向所述底层驱动模块下发最长前缀匹配lpm表项,其中,所述lpm表项中的下一跳索引值指向该第一mll。
24、本技术的一个实施例中,在通过三层虚拟局域网vlan接口接收组播流量的情况下,所述将对应相同的出接口且属于不同组播组的多个组播流量划分至同一组播流量组,具体包括:
25、针对接口类型为三层vlan接口的入接口,将通过单个入接口接收的、对应相同的出接口且属于不同组播组的多个组播流量划分至同一组播流量组;
26、针对每一组播流量组,所生成的第一mll中记录的入接口字段指示该组播流量组中的全部组播流量对应的入接口。
27、本技术的一个实施例中,在通过路由接口或路由聚合接口接收组播流量的情况下,所述将对应相同的出接口且属于不同组播组的多个组播流量划分至同一组播流量组,具体包括:
28、针对接口类型为非路由接口或路由聚合接口的入接口,将通过所有入接口接收的、对应相同的出接口且属于不同组播组的多个组播流量划分至同一组播流量组;
29、针对每一组播流量组,所生成的第一mll中记录的入接口字段指示该组播流量组中的全部组播流量对应的入接口。
30、本技术的一个实施例中,所述处理器还用于执行以下操作:
31、在接收到目标组播流量之后,确定所述目标组播流量对应的目标出接口;
32、判断所述底层驱动模块中是否存在第二mll,其中,所述第二mll中记录的出接口字段指示所述目标出接口;
33、若存在第二mll,则生成第三mll,其中,所述第三mll中记录的出接口字段指示所述目标出接口,所述第三mll中记录的组播组地址字段指示所述目标组播流量所属组播组的地址;
34、根据所述第三mll,更新所述底层驱动模块中的所述第二mll。
35、第三方面,本技术实施例提供了一种三层组播装置,所述装置包括:
36、流量划分模块,用于在接收到组播流量后,将对应相同的出接口且属于不同组播组的多个组播流量划分至同一组播流量组;
37、mll下发模块,用于针对每一组播流量组,生成并向底层驱动模块下发一条第一组播链表mll,以使所述底层驱动模块根据自身接收到的第一mll将该组播流量组中的组播流量转发至与该第一mll对应的出接口,其中,所述第一mll中记录的出接口字段指示该组播流量组中的组播流量对应的出接口,所述第一mll中记录的组播组地址字段指示该组播流量组中全部组播流量所属组播组的地址。
38、本技术的一个实施例中,所述装置还包括:
39、lpm下发模块,用于针对每一组播流量组,根据该组播流量组对应的第一mll生成并向所述底层驱动模块下发最长前缀匹配lpm表项,其中,所述lpm表项中的下一跳索引值指向该第一mll。
40、本技术的一个实施例中,在通过三层虚拟局域网vlan接口接收组播流量的情况下,所述流量划分模块,具体用于:
41、在接收到组播流量后,针对接口类型为三层vlan接口的入接口,将通过单个入接口接收的、对应相同的出接口且属于不同组播组的多个组播流量划分至同一组播流量组;
42、针对每一组播流量组,所生成的第一mll中记录的入接口字段指示该组播流量组中的全部组播流量对应的入接口。
43、本技术的一个实施例中,在通过路由接口或路由聚合接口接收组播流量的情况下,所述流量划分模块,具体用于:
44、在接收到组播流量后,针对接口类型为路由接口或路由聚合接口的入接口,将通过所有入接口接收的、对应相同的出接口且属于不同组播组的多个组播流量划分至同一组播流量组;
45、针对每一组播流量组,所生成的第一mll中记录的入接口字段指示该组播流量组中的全部组播流量对应的入接口。
46、本技术的一个实施例中,所述装置还包括:
47、出接口确定模块,用于在接收到目标组播流量之后,确定所述目标组播流量对应的目标出接口;
48、mll判断模块,用于判断所述底层驱动模块中是否存在第二mll,其中,所述第二mll中记录的出接口字段指示所述目标出接口;
49、mll生成模块,用于若存在第二mll,则生成第三mll,其中,所述第三mll中记录的出接口字段指示所述目标出接口,所述第三mll中记录的组播组地址字段指示所述目标组播流量所属组播组的地址;
50、mll更新模块,用于根据所述第三mll,更新所述底层驱动模块中的所述第二mll。
51、第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。
52、第五方面,本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一所述方法。
53、本发明实施例有益效果:
54、本技术实施例提供的方案中,网络设备在接收到组播流量后,首先对比各组播流量对应的出接口。将对应相同的出接口且属于不同组播组的多个组播流量划分至同一组播流量组。并针对每一组播流量组,为该组播流量组中的组播流量共同生成一条mll。也就是本技术实施例中针对同一组播流量组中的多个组播流量,只生成一条mll。与相关技术中针对每一组播流量都要生成一条mll相比,本技术实施例提供的方案可以合并mll,从而节省mll占用的底层硬件的存储资源,进而降低mll下发失败的可能性。