生成组播转发表项的方法和接入网关与流程

文档序号:23426164发布日期:2020-12-25 11:56阅读:293来源:国知局
生成组播转发表项的方法和接入网关与流程

本申请涉及通信领域,并且更具体地,涉及一种生成组播转发表项的方法和接入网关。



背景技术:

目前,规模化、虚拟化、云计算已成为数据中心的发展方向,并且,数据中心为适应更大的业务量并降低维护成本,逐渐向大二层技术及虚拟化迁移。作为三层网络虚拟化(networkvirtualizationoverlays,nvo3)技术之一的虚拟扩展局域网(virtualextensiblelocalareanetwork,vxlan)技术具有很强的适应性,为数据中心提供了良好的解决方案。

vxlan技术将已有的物理网络作为下层(underlay)网络,在其上构建出虚拟的二层或三层网络,即上层(overlay)网络。上层网络通过封装技术,利用下层网络提供的三层转发路径,实现用户报文在不同站点间传递。

在vxlan网络中,为了提高可靠性,用户经常会部署多个边界网关进行备份及负载分担,以保证一个边界网关故障时流量可以及时切换到另一个边界网关上,避免业务中断。vxlan中的多个边界网关设置不同的vxlan隧道端点(virtualtunnelendpoint,vtep)互联网协议(internetprotocol,ip)地址,当组播用户点播组播节目时,该多个边界网关都可以转发组播源发送的组播报文,导致vxlan网络中会传输多份相同的组播报文,且接入网关会收到并向组播用户转发多份相同的组播报文,造成网络资源的浪费。



技术实现要素:

本申请提供一种生成组播转发表项的方法和接入网关,可以提高vxlan网络的带宽资源利用率和接入网关的处理能力,避免了组播用户收到多包流量问题。

第一方面,提供了一种生成组播转发表项的方法,应用在包括接入网关、第一边界网关和第二边界网关的网络中,所述第一边界网关和所述第二边界网关对应同一组播源,所述方法包括:所述接入网关接收来自所述第一边界网关的第一组播报文,根据所述第一组播报文生成第一组播转发表项;所述第一组播转发表项包括所述第一边界网关的地址以及组播源的信息;所述接入网关接收来自所述第二边界网关的第二组播报文,所述第二组播报文包括所述第二边界网关的地址以及所述组播源的信息,所述第二组播报文和所述第一组播报文对应同一个组播源;所述接入网关确定通过所述第一边界网关到达所述组播源的第一路径,以及确定通过所述第二边界网关到达所述组播源的第二路径;所述接入网关根据所述第一路径和所述第二路径确定到达所述组播源的最优路径;所述接入网关根据所述最优路径生成所述组播源的转发表项。

接入网关在接收到来自第一边界网关的第一组播报文,会生成第一组播报文对应的第一组播转发表项,该第一组播转发表项包括第一边界网关的地址和组播源的信息;接入网关接收来自第二边界网关的第二组播报文,该第二组播报文包括第二边界网关的地址以及组播源信息;由于第一边界网关和第二边界网关对应同一个组播源,即第一组播报文和第二组播报文来自于同一个组播源,且第一组播报文的组播源信息和第一组播转发表项中对应的组播源信息一致,因此,接入网关确定通过第一边界网关到达组播源的第一路径,即组播源将第一组播报文经由第一边界网关转发至接入网关的路径;接入网关还确定通过第二边界网关到达组播源的第二路径,即组播源将第二组播报文经由第二边界网关转发至接入网关的路径;并根据第一路径和第二路径确定接入网关到达组播源的最优路径,接入网关根据最优路径生成组播源的转发表项,从而接入网关根据组播源的转发表项进行组播报文转发,仅转发通过最优路径接收的组播报文,避免了组播用户收到多份相同的组播报文,同时也提高了vxlan网络的带宽资源利用率。

结合第一方面,在一种可能的实现方式中,所述接入网关根据所述最优路径生成所述组播源的转发表项包括:当所述第一路径为所述最优路径时,将所述第一组播转发表项作为所述组播源的转发表项;当所述第二路径为所述最优路径时,根据所述第二边界网关的信息更新所述第一组播转发表项,得到第二组播转发表项,将所述第二组播转发表项作为所述组播源的转发表项,其中,所述第二组播转发表项包括所述第二边界网关的地址以及所述组播源的信息。

其中,所述第二边界网关的信息用于指示所述第二边界网关的地址。所述组播源的信息可以包括组播组的标识和/或组播源的标识,其中,所述组播组的标识可以用于指示组播组的地址;所述组播源的标识可以用于指示组播源的地址。

当第一路径为最优路径时,组播源转发表项即是第一组播转发表项;当第二路径为最优路径时,接入网关需要根据第二边界网关的信息更新第一组播转发表项,即接入网关将转发的第二组播报文的经由的第二边界网关的信息更新第一组播转发表项,得到第二组播转发表项作为组播源的转发表项。在来自同一个组播源转发的组播报文至接入网关时,接入网关将通过最优路径的组播报文携带的第二边界网关的信息去更新接入网关处的组播转发表项,从而可以提高vxlan网络的带宽资源利用率。

结合第一方面,在一种可能的实现方式中,当所述第一路径为所述最优路径时,所述方法还包括:所述接入网关丢弃所述第二组播报文;所述接入网关向所述第二边界网关发送通知消息,所述通知消息用于通知所述第二边界网关停止向所述接入网关转发所述组播源的组播报文。

当第一路径为最优路径时,接入网关丢弃接入网关接收的第二组播报文,并通知第二边界网关停止向接入网关转发组播源的组播报文,从而提高了接入网关的处理能力,避免了接入网关向组播用户转发多份组播报文。

结合第一方面,在一种可能的实现方式中,当所述第二路径为所述最优路径时,所述方法还包括:所述接入网关向所述第一边界网关发送通知消息,所述通知消息用于通知所述第一边界网关停止向所述接入网关转发所述组播源的组播报文。

当第二路径为最优路径时,接入网关通知第一边界网关停止向接入网关转发组播源的组播报文,从而可以避免接入网关收到来自多个边界网关的组播报文,提高了vxlan网络的带宽资源利用率、接入网关的处理能力。

结合第一方面,在一种可能的实现方式中,所述接入网关根据所述第一路径和所述第二路径确定到达所述组播源的最优路径包括:所述接入网关获取所述第一边界网关的地址和所述第二边界网关的地址;所述接入网关根据所述第一边界网关的地址和所述第二边界网关的地址的大小确定所述最优路径。

接入网关根据第一边界网关的地址和第二边界网关的地址来从经过第一边界网关的第一路径和经过第二边界网关的第二路径中确定出最优路径,从而可以以便后续根据最优路径来确定组播源的转发表项,提高了vxlan网络的带宽资源利用率。

第二方面,提供了一种接入网关,所述接入网关所在的网络还包括第一边界网关和第二边界网关,所述第一边界网关和所述第二边界网关对应同一组播源,所述接入网关包括用于实现所述第一方面及其各实现方式中的方法的功能模块。所述功能模块可以通过硬件,软件或硬件与软件结合的方式实现。

第三方面,提供了一种网络系统,包括第二方面以及第二方面中任一种可能实现方式中所述的接入网关以及至少两个边界网关。

第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,所述计算机程序代码被网络设备运行时,使得所述网络设备执行上述第一方面以及第一方面中任一种可能实现方式中所述的方法。

需要说明的是,上述计算机程序代码可以全部或者部分存储在第一存储介质上,其中第一存储介质可以与处理器封装在一起的,也可以与处理器单独封装,本申请实施例对此不作具体限定。

第五方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,所述程序代码包括用于执行上述第一方面以及第一方面中任一种可能实现方式中所述的方法。

第六方面,提供了一种芯片系统,用于实现上述第一方面或者第一方面中任一种可能的设计中的方法所涉及的功能,例如,生成,接收,发送,或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存上述的第一网关设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

附图说明

图1是为本申请实施例提供的生成组播转发表项的方法的应用环境示意图。

图2是本申请实施例提供的一种生成组播转发表项的方法200的示意性流程图。

图3是组播报文的一种格式示意图。

图4是报文由组播源引流到组播用户时,报文的一种格式示意图。

图5是接入网关在接收到组播报文后进行转发的示意图。

图6为本申请一个实施例提供的接入网关的示意性框图。

图7为本申请另一个实施例提供的接入网关的示意性框图。

具体实施方式

为了便于理解本申请实施例,在介绍本申请实施例之前,先作出以下几点说明。

第一,在本申请实施例中,“指示”可以包括直接指示和间接指示,也可以包括显式指示和隐式指示。将某一信息(如下文所述的第一指示信息)所指示的信息称为待指示信息,则具体实现过程中,对待指示信息进行指示的方式有很多种,例如但不限于,可以直接指示待指示信息,如待指示信息本身或者该待指示信息的索引等。也可以通过指示其他信息来间接指示待指示信息,其中该其他信息与待指示信息之间存在关联关系。还可以仅仅指示待指示信息的一部分,而待指示信息的其他部分则是已知的或者提前约定的。例如,还可以借助预先约定(例如协议规定)的各个信息的排列顺序来实现对特定信息的指示,从而在一定程度上降低指示开销。

第二,在下文示出的实施例中第一、第二以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。例如,区分不同的报文等。

第三,本申请实施例中涉及的“协议”可以是指通信领域的标准协议,例如可以包括lte协议、nr协议以及应用于未来的通信系统中的相关协议,本申请对此不做限定。

第四,本申请实施例中涉及的“多个”是指两个或两个以上。“以下一项(个)或多项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b和c中的至少一项(个)或多项(个),可以表示:a,或b,或c,或a和b,或a和c,或b和c,或a、b和c,其中a,b,c可以是单个,也可以是多个。下面将结合附图详细说明本申请实施例提供的方法。

下面将结合附图,对本申请中的技术方案进行描述。

如图1所示,为本申请实施例提供的生成组播转发表项的方法的应用环境示意图。图1所述应用环境包括远端网络101和本地网络102。其中,远端网络101可以包括服务器1和路由器1。本地网络102包括接入层和核心层。本地网络102的接入层包括多个接入设备,又称为叶子设备(leaf)。其中,连接本地设备的接入设备称为接入网关,例如,接入网关1、接入网关2、接入网关3和接入网关4。连接远端网络101的接入设备称为边界网关,例如,边界网关1和边界网关2。图1中,边界网关1和边界网关2形成连接远端网络101的等价多路径。核心层包括多个骨干设备(spine),例如,骨干设备1和骨干设备2。本地设备通过所述本地网络102访问远端网络101,获取远端网络101提供的服务。例如,远端网络101中的服务器1为组播源设备,本地设备可以通过本地网络102获取该组播源设备提供的组播服务。

当本地网络102为vxlan时,每个接入设备被配置为vtep,用于为非vxlan报文添加vxlan封装或将vxlan报文解封装,骨干设备1和骨干设备2不感知vxlan隧道,只作为vxlan报文的骨干设备。接入网关之间通过边界网关协议(bordergatewayprotocol,bgp)以太网虚拟专用网络(ethernetvirtualprivatenetwork,evpn)方式建立vxlan隧道,通过私网路由实现不同接入网关连接的本地设备间的三层互通。

在远端网络101提供组播服务的场景下,接入网关与边界网关之间使能协议无关组播(protocolindependentmulticast,pim)及因特网组管理协议(internetgroupmanagementprotocol,igmp),接入网关之间配置bgp组播虚拟专用网(multicastvirtualprivatenetwork,mvpn)邻居。接入网关和边界网关均配置相同的环回(loopback)ip地址作为静态交汇点(rendezvouspoint,rp),接入网关和边界网关通过相同的静态ip地址在vxlan域内形成任播(anycast)rp。

首先,远端网络101中的服务器1发布所述组播源的信息,该组播源的信息指示组播源地址和该组播源提供的组播服务,该组播服务包括组播组标识。路由器1根据该组播组源的信息封装pim注册(register)报文。路由器1向边界网关(边界网关1或边界网关2)发送该pim注册报文,边界网关通过bgp协议将该组播源的信息通知给所述vxlan中其他接入设备(包括接入网关和边界网关)。当本地设备(例如,ue1和ue2)点播所述组播服务时,本地设备发送igmp报告到所述本地设备的接入网关,该接入网关根据该igmp报告生成确定组播组信息(s,g),其中,s指示组播源的地址,g指示组播组标识。然后,接入网关将该组播组信息(s,g)通过bgp协议发送给组播源侧的边界网关,边界网关再向路由器1发起组播组加入请求,并且,根据路由器1返回的允许该接入网关加入该组播组的响应消息更新组播转发表(multicastforwardinginformationbase,mfib),并将接收的该组播组对应的组播流量转发给该接入网关。

如图1所示,在vxlan网络中,为了提高可靠性,用户经常会部署多个边界网关进行备份及负载分担,且该多个边界网关设置不同的vtepip地址,以保证一个边界网关故障时流量可以及时切换到另一个边界网关上,避免业务中断。由于该多个边界网关都可以接收组播源发送的组播报文并向接入网关转发,导致一个接入网关会收到多份相同的组播报文。例如,当路由器1通过等价多路径(equal-costmulti-path,ecmp)方式连接边界网关1和边界网关2时,当本地设备点播组播组时,该两个边界网关可以都向组播源获取该组播组对应的组播报文,导致接入网关会收到两份组播报文。

又例如,当路由器1通过非等价多路径(non-ecmp)方式连接边界网关1和边界网关2时,若组播源最初通过边界网关1与路由器1之间的链路发送组播报文,那么,在边界网关1与路由器1之间的链路出现故障或者边界网关1出现故障时,组播源经路由器1发送的组播报文只能通过边界网关2来转发给接入网关,接入网关只会接收到一份组播报文。在边界网关1与路由器1之间的链路恢复正常或者边界网关1恢复正常的情况下,如果路由器1通往边界网关2的组播转发表中尚未进行pim剪枝(prune),而路由器1通往边界网关1的组播转发表已生成,此时接入网关也会收到两份组播报文。

两份组播报文在vxlan网络中传输,浪费了vxlan网络的带宽资源和接入网关的处理能力。因此,有必要提供一种方法,解决图1所示vxlan网络中的多包问题。

图2所示是本申请实施例提供的一种生成组播转发表项的方法200的示意性流程图,该网络是上层虚拟扩展局域网vxlan,该方法200应用在包括接入网关和第一边界网关和第二边界网关的网络中,其中,第一边界网关和第二边界网关对应同一组播源。如图2所示,该方法200可以包括步骤210至步骤250。下面详细说明方法200中的各个步骤。可选地,该方法200可适用于互联网协议第4版(internetprotocolversion4,ipv4)的报文在ipv4网络中传输。或者,该方法200也可适用于互联网协议第6版(internetprotocolversion6,ipv6)的报文在ipv4网络中传输。或者,该方法200也可适用于ipv4的报文在ipv6网络中传输。或者,该方法200也可适用于ipv6的报文在ipv6网络中传输。

步骤210,接入网关接收来自第一边界网关的第一组播报文,根据第一组播报文生成第一组播转发表项;该第一组播转发表项包括第一边界网关的地址以及组播源的信息。

可选地,上述第一组播报文可以由两部分报文组成:外层报文和内层报文。其中,外层报文可以是vxlan单播封装,外层报文也可以是vxlan组播封装;内层报文是组播报文。

如图3所示,是组播报文的一种格式示意图。该组播报文包括两部分,即虚拟扩展局域网封装(外层)部分和原以太帧(内层)部分。

其中,虚拟扩展局域网分装部分可以包括6小部分组成,该6小部分依次分别为:

第1小部分:外层目地媒体访问控制(mediaaccesscontrol,mac)地址,即组播mac地址,其可以根据vxlan隧道组播组ip映射而成;

第2小部分:外层源mac地址,该外层源mac地址是每一跳路由设备自身的mac地址;

第3小部分:外层源ip地址,也即vtep的ip地址;

第4小部分:外层目地ip地址,vxlan隧道组播源ip地址;

第5小部分:用户数据报协议(userdatagramprotocol,udp),可以包括:1源udp端口号,该源udp端口号是根据哈希(hash)动态生成的;2vxlan保留的udp目地端口号,默认值为4789;

第6小部分:虚拟扩展局域网头,可以包括虚拟扩展局域网标识(vxlannetworkidentifier,vni),当前标准中用24比特表示,最大支持16m。

原以太帧部分包括:1内层目地mac地址,为组播mac地址,根据组播源组播ip映射而成;2内层源mac地址,可以是组播源mac地址,也可以是vxlan网关mac地址;3内层原始报文源ip地址,即组播源ip地址;4内层原始报文目地ip地址,组播源ip地址。

可选地,第一边界网关的地址可以是第一边界网关的mac地址;或者,第一边界网关的地址可以是第一边界网关所配置的vtep的ip地址。

可选地,接入网关可以根据第一组播报文的内层源mac地址,确定第一组播报文由组播源转发至接入网关时经由的边界网关的地址,即可确定第一组播报文的内层源mac地址即为第一边界网关的地址。或者,接入网关可以根据第一组播报文的外层的vtep的ip地址,确定第一组播报文由组播源转发至接入网关时经由的边界网关的vtep的ip地址,即可确定第一组播报文的vtep的ip地址即为第一边界网关的地址。从而接入网关可以确定第一组播报文是来自于第一边界网关转发的组播报文。

可选地,上述第一组播转发表项中的组播源的信息可以理解为第一组播报文的组播组标识和/或第一组播报文的组播源标识。其中,第一组播报文的组播组的标识可以用于指示第一组播报文的组播组的地址,该第一组播报文的组播组的地址可以用于指示第一组播报文的组播组的ip地址或者第一组播报文的组播组的mac地址;第一组播报文的组播源标识可以用于指示第一组播报文的组播源的地址,该第一组播报文的组播源的地址可以用于指示第一组播报文的组播源的ip地址或者第一组播报文的组播源的mac地址。可选地,第一组播报文的内层源ip地址可以是组播源的ip地址。

上述组播组的标识可以理解为用户所点播的组播服务的标识。上述组播源的标识可以理解为提供用户所点播的组播服务的设备的标识。例如,该组播服务可以是用户点播的中央一套的节目,提供用户点播的中央一套节目的组播源可以是中央电视台。又例如,该组播服务可以是用户点播的陕西一套的节目,提供用户点播的陕西一套节目的组播源可以是陕西电视台。

可选地,上述第一组播报文的组播源可以是接入网关根据第一组播报文中的内层报文的中的组播源的地址和组播组的地址来确定。

可选地,上述第一组播转发表项还可以包括第一组播报文的内层组ip地址,第一组播报文的内层源端口号、第一组播报文的目的端口号、第一组播报文的虚拟可扩展局域网标识vni或第一组播报文的内层目地媒体访问控制mac地址。

步骤220,接入网关接收来自第二边界网关的第二组播报文,该第二组播报文包括第二边界网关的地址以及组播源的信息,第一组播报文和第二组播报文对应同一个组播源。

可选地,上述第二组播报文包括的组播源的信息可以理解为第二组播报文的组播组标识和/或第二组播报文的组播源标识。其中,第二组播报文的组播组的标识可以用于指示第二组播报文的组播组的地址,该第二组播报文的组播组的地址可以用于指示第二组播报文的组播组的ip地址或者第二组播报文的组播组的mac地址;第二组播报文的组播源标识可以用于指示第二组播报文的组播源的地址,该第二组播报文的组播源的地址可以用于指示第二组播报文的组播源的ip地址或者第二组播报文的组播源的mac地址。可选地,第二组播报文的内层源ip地址可以是组播源的ip地址。

可选地,接入网关可以根据第二组播报文的内层源mac地址,确定第二组播报文由组播源转发至接入网关时经由的边界网关的地址,即可确定第二组播报文的内层源mac地址即为第二边界网关的地址。或者,接入网关可以根据第二组播报文的外层的vtep的ip地址,确定第二组播报文由组播源转发至接入网关时经由的边界网关的vtep的ip地址,即可确定第二组播报文的vtep的ip地址即为第二边界网关的地址。从而接入网关可以确定第二组播报文是来自于第二边界网关转发的组播报文。

可选地,第一组播报文和第二组播报文对应同一个组播源可以理解为同一个组播源将第一组播报文和第二组播报文分别发送给接入网关,而第一组播报文与第二组播报文由同一个组播源发送到接入网关的路径是不一样的。例如,第一组播报文的转发路径可以为第二组播报文的转发路径可以为

可选地,接入网关接收第二组播报文的时刻可以晚于接入网关接收第一组播报文的时刻,接入网关也可以是同一时刻接收第二组播报文和第一组播报文。

可选地,接入网关可以在转发第一组播报文之后接收第二组播报文;或者,接入网关也可以在未转发第一组播报文的情况下,接收该第二组播报文。

步骤230,接入网关确定通过第一边界网关到达组播源的第一路径,以及确定通过第二边界网关到达组播源的第二路径。

可选地,上述第一路径可以理解为组播源向接入网关发送第一组播报文的路径。上述第二路径可以理解为组播源向接入网关发送第二组播报文的路径。

可选地,接入网关也可以根据第一组播报文的内层源mac地址,确定第一组播报文由组播源转发至接入网关时经由的边界网关的地址,即可确定第一组播报文的内层源mac地址即为第一边界网关的地址。即接入网关可确定第一路径为组播源→第一边界网关→接入网关。接入网关可以根据第二组播报文的内层源mac地址,确定第二组播报文由组播源转发至接入网关时经由的边界网关的地址,即可确定第二组播报文的内层源mac地址即为第二边界网关的地址。即接入网关可确定第二路径为组播源→第二边界网关→接入网关。

步骤240,接入网关根据第一路径和第二路径确定到达组播源的最优路径。

接入网关可以通过以下两种方式来根据第一路径和第二路径确定到达组播源的最优路径。

方式1

首先,接入网关获取第一边界网关的地址和第二边界网关的地址,其中,第一边界网关的地址可以是第一边界网关的mac地址,或者,该第一边界网关的地址也可以是第一边界网关的vtep的ip地址。第二边界网关的地址可以是第二边界网关的mac地址,或者,该第二边界网关的地址也可以是第二边界网关的vtep的ip地址。接入网关可以根据第一组播报文的内层源mac地址,获取第一边界网关的地址。接入网关可以根据第二组播报文的内层源mac地址,获取第二边界网关的地址。其次,接入网关确定接入网关根据第一边界网关的地址和第二边界网关的地址的大小确定最优路径。接入网关可以将第一边界网关的地址和第二边界网关的地址中相应的边界网关地址较小的一方,确定为最优边界网关,接入网关再根据通过该最优边界网关达到组播源的路径,将该路径确定为最优路径。如果第一边界网关的地址比第二边界网关的地址小,则接入网关将第一边界网关作为最优边界网关,并将组播源通过第一边界网关的第一路径确定为最优路径;如果第一边界网关的地址比第二边界网关的地址大,则接入网关将第二边界网关作为最优边界网关,并将组播源通过第二边界网关的第二路径确定为最优路径。

方式2

通信协议中规定了第一映射表,该第一映射表包括组播源将组播报文转发至接入网关的多条路径的优先级顺序,接入网关根据第一路径、第二路径和第一映射表可以得到第一路径和第二路径的优先级顺序,且接入网关将第一路径和第一路径中优先级较高的路径确定为最优路径。

步骤250,接入网关根据最优路径生成组播源的转发表项。可选地,当第一路径为最优路径时,将第一组播转发表项作为组播源的转发表项;当第二路径为最优路径时,根据第二边界网关的信息更新第一组播转发表项,得到第二组播转发表项,将第二组播转发表项作为组播源的转发表项。

其中,第二边界网关的信息用于指示第二边界网关的地址,即接入网关将第一组播转发表项中的第一边界网关的地址用第二边界网关的地址替换,对第一组播转发表项进行更新,形成第二组播转发表项,将第二组播转发表项作为组播源的转发表项,其中,第二组播转发表项可以包括第二边界网关的地址以及组播源的信息。

可选地,当第一路径为最优路径时,接入网关丢弃第二组播报文;接入网关向第二边界网关发送通知消息,该通知消息用于通知第二边界网关停止向接入网关转发组播源的组播报文;当第二路径为最优路径时,接入网关向第一边界网关发送通知消息,该通知消息用于通知第一边界网关停止向接入网关转发组播源的组播报文。如果接入网关此时未转发第一组播报文时,接入网关丢弃第一组播报文。

可选地,由于第一边界网关和第二边界网关对应同一组播源,则组播源通过第一边界网关发送的第一组播报文的内层组ip地址与组播源通过第二边界网关发送的第二组播报文的内层组ip地址相同;或者,组播源通过第一边界网关发送的第一组播报文的内层源端口号与组播源通过第二边界网关发送的第二组播报文的内层源端口号相同;或者,组播源通过第一边界网关发送的第一组播报文的目的端口号与组播源通过第二边界网关发送的第二组播报文的目的端口号相同;或者,组播源通过第一边界网关发送的第一组播报文的虚拟可扩展局域网标识vni与组播源通过第二边界网关发送的第二组播报文的虚拟可扩展局域网标识vni相同;或者,组播源通过第一边界网关发送的第一组播报文的内层目地媒体访问控制mac地址与组播源通过第二边界网关发送的第二组播报文的内层目地媒体访问控制mac地址相同。

因此,当第一路径为最优路径时,接入网关丢弃第二组播报文,并通知第二边界网关停止向接入网关转发该组播源的组播报文,接入网关将第一组播转发表项作为组播源的转发表项,进行组播报文的转发;当第二路径为最优路径时,接入网关通知第一边界网关停止向接入网关转发该组播源的组播报文,接入网关并将第一组播转发表项中的第一边界网关的地址用第二边界网关的地址替换,对第一组播转发表项进行更新,无需更改第一组播转发表项的其他内容,对第一组播转发表项进行更新,形成第二组播转发表项,将第二组播转发表项作为组播源的转发表项,进行组播报文的转发,仅转发通过最优路径接收的组播报文,避免了组播用户收到多份相同的组播报文,同时也提高了vxlan网络的带宽资源利用率。

可选地,接入网关根据最优路径生成组播源的转发表项之后,还可以执行以下步骤一至步骤五。

步骤一,接入网关接收组播报文,该组播报文包括组播源的信息。

步骤二,接入网关根据组播源的转发表项,确定目标组播索引(multicastindex,mcid)。

其中,组播源的转发表项中还包括mcid,该mcid与组播源的转发表项中的内层源mac地址(组播源的mac地址)或最优路径对应的vtep的ip地址的对应。

可选地,组播源的转发表项可以包括mcid与内层源mac地址(组播源的mac地址)或最优路径对应的vtep的ip地址的对应关系。或者,组播源的转发表项中也可以包括mcid的索引与内层源mac地址(组播源的mac地址)的索引或最优路径对应的vtep的ip地址的索引的对应关系。是在ipv6的场景下,通过将ipv6地址(16字节)转换为较小的字段索引值(例如,可以是4字节),从而可以较大的节省芯片转发表的资源。

步骤三,接入网关根据目标mcid,查找目标私网组播转发表,该目标私网组播转发表包括目标mcid与出端口的对应关系。

步骤四,接入网关根据目标私网组播转发表,获取与目标mcid对应的出端口。

步骤五,接入网关根据该出端口,向目标组播终端设备转发该组播报文。例如,如图4所示,是组播报文(以下简称为报文)由组播源发送到组播用户时,报文经不同设备处理后的格式示意图。服务器1为组播源,且服务器1的ip地址为10.10.10.10,内层组播组ip地址为225.0.2.2。报文在vxlan网络中传输时的vni是1000,外层组播组的ip地址为225.0.8.8。服务器1将报文1发送给边界网关,报文1中,第一层(0100-5e00-0202)是vxlan组播组映射的mac地址,第二层(服务器1mac)是服务器1的mac地址,第三层(10.10.10.10)是服务器1的ip地址,第四层(225.0.2.2)是组播源组播ip地址,第五层为该报文1传输的数据。边界网关1的vetp为1.1.1.1,报文1到达边界网关1后,边界网关1需要通过端口1和报文1中的组播源ip地址和vtep的ip地址查找边界网关1处的私网组播转发表(multicastforwardinginformationbase,mfib),根据获取的vxlan组播隧道出口进行报文1的复制,并将报文1进行封装从隧道出端口转发,其中报文1为组播报文,报文1经边界网关1进行vxlan封装后的报文为报文2,其中报文2包括两部分内层报文(如图4中虚线部分所示)和外层报文(如图4中实线部分所示),该报文2可以是组播报文也可以是单播报文,内层报文的格式与报文1的格式类型,指示将报文1中的第二层替换为边界网关的mac地址,外层报文中第一层(0100-5e00-0808)为vxlan组播组映射的mac地址,第二层(vetp1mac)为边界网关的mac地址,第三层(1.1.1.1)为边界网关的vetp地址,第四层(225.0.8.8)为组播组ip地址,将vni添加到外层报文中。骨干设备1收到报文2后,根据接三层入端口、组播源ip地址和组播源组播ip地址查找骨干设备1处的公网mfib,将组播出端口转发报文2,即转发与骨干设备1连接的接入网关1和接入网关2,且骨干设备1在将报文2进行转发时,将报文2中外层报文的第二层替换为骨干设备1的mac地址形成报文3,其中,该报文3可以是组播报文也可以是单播报文。如图5所示,为接入网关1在接收到3时的操作示意图。接入网关1接收到报文3时,判断vxlan组播报文3的合法有效性,通过报文3中的外层组播源ip地址和外层vetp的ip地址查找接入网关1处的公网mfib表,找到与报文3外层报文对应的mcid1,并根据mcid1查找公网组播转发表,找到与mcid1对应的出端口1,再通过内部环回后查找vxlan隧道解封装表,进行vxlan组播报文3解封装,获取内层组播报文(如图4中报文3中虚线部分),根据如图5中方式a(外层的vetp的ip地址、虚拟扩展局域网标识、内层源ip地址和内层组播源ip地址)、方式b(外层的vetp的ip地址、虚拟扩展局域网标识和内层组播源ip地址)、方式c(虚拟扩展局域网标识、内层源mac地址、内层源ip地址和内层组播源ip地址)或方式d(虚拟扩展局域网标识、内层源mac地址和内层组播源ip地址)查找私网mfib表,并找到与报文3内层组播报文对应的mcid2,并根据mcid2查找私网私网组播转发表表,找到与mcid对应的出端口2,并将报文3内层组播报文中的第二层替换为接入网关1的mac地址后形成报文4,其中,报文4是组播报文,根据对应的出端口2将报文4转发给相应的组播用户。

图4以组播报文为例说明了本申请实施例中不同设备处理报文的过程。本申请实施例提供的上述方法,还可以用于处理未知单播或者广播报文。

可选地,本申请实施例所应用的网络中可以包括多个边界网关,该多个边界网关可以对应同一个组播源,该多个边界网关也可以对应不同的组播源,第一边界网关和第二边界网关是对应同一个组播源的多个边界网关中的任意边界网关,当该网络中与第一边界网关和/或第二边界网关对应同一组播源的其他边界网关向接入网关发送组播报文时,上述方法200同样适用,这里不再赘述。

应理解,在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

以上,结合图2至图5详细说明了本申请实施例的生成组播转发表项以及使用组播转发表项的过程,以下,结合图6和图7详细说明本申请实施例的网关。

图6是本申请实施例提供的一种接入网关600的示意图。该接入网关600所在的网络还包括第一边界网关和第二边界网关,所述第一边界网关和所述第二边界网关对应同一组播源。该接入网关600可以应用于图1所述的网络架构中,例如可以是图1所示的网络架构中的接入网关1,第一边界网关可以是边界网关1,第二边界网关可以是边界网关2。如图6所示,接入网关700可以包括第一收发模块610,第二收发模块620以及处理模块630。

第一收发模块610,用于接收来自所述第一边界网关的第一组播报文。处理模块630用于根据所述第一组播报文生成第一组播转发表项;所述第一组播转发表项包括所述第一边界网关的地址以及组播源的信息。

第二收发模块620,用于接收来自所述第二边界网关的第二组播报文,所述第二组播报文包括所述第二边界网关的地址以及所述组播源的信息,所述第二组播报文和所述第一组播报文对应于同一个组播源。

处理模块630还用于:确定通过所述第一边界网关到达所述组播源的第一路径,以及确定通过所述第二边界网关到达所述组播源的第二路径;根据所述第一路径和所述第二路径确定到达所述组播源的最优路径;根据所述最优路径生成所述组播源的转发表项。

可选地,所述处理模块630还用于当所述第一路径为所述最优路径时,将所述第一组播转发表项作为所述组播源的转发表项;当所述第二路径为所述最优路径时,根据所述第二边界网关的信息更新所述第一组播转发表项,得到第二组播转发表项,将所述第二组播转发表项作为所述组播源的转发表项,其中,所述第二组播转发表项包括所述第二边界网关的地址以及所述组播源的信息。

可选地,当所述第一路径为所述最优路径时,所述处理模块630还丢弃所述第二组播报文;所述第二收发模块620还用于向所述第二边界网关发送通知消息,所述通知消息用于通知所述第二边界网关停止向所述接入网关转发所述组播源的组播报文。

可选地,当所述第二路径为所述最优路径时,所述第一收发模块610还向所述第一边界网关发送通知消息,所述通知消息用于通知所述第一边界网关停止向所述接入网关转发所述组播源的组播报文。

可选地,所述处理模块630还获取所述第一边界网关的地址和所述第二边界网关的地址;根据所述第一边界网关的地址和所述第二边界网关的地址的大小确定所述最优路径。

进一步的,该接入网关600还可以包括存储模块。该存储模块730用于存储第一收发模块610、第二收发模块620和处理模块630执行的指令。第一收发模块610、第二收发模块620、处理模块630以及存储模块730相互耦合。

图7是本申请提供的另一种接入网关700的示意图。该接入网关所在的网络还包括第一边界网关和第二边界网关,所述第一边界网关和所述第二边界网关对应同一组播源。该接入网关700可以应用于图1所示的网络架构中,例如可以是图1所示的网络架构中的接入网关1,第一边界网关可以是边界网关1,第二边界网关可以是边界网关2。接入网关700用于执行方法200中接入网关所执行的操作。如图7所示,接入网关700可以包括处理器710,与所述处理器710耦合连接的存储器720以及至少一个通信接口730。处理器710可以是中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np)或者cpu和np的组合。处理器710还可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。处理器710还可以包括上述种类的处理器的组合。处理器710可以是指一个处理器,也可以包括多个处理器。存储器720可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储器也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom),快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器720还可以包括上述种类的存储器的组合。存储器720可以是指一个存储器,也可以包括多个存储器。在一个实施方式中,存储器720中存储有计算机可读指令,所述计算机可读指令可以包括多个软件模块,例如收发模块721,处理模块722。处理器710执行各个软件模块后可以按照各个软件模块的指示进行相应的操作。在本实施例中,一个软件模块所执行的操作实际上是指处理器710根据所述软件模块的指示而执行的操作。处理器710执行存储器720中的计算机可读指令后,可以按照所述计算机可读指令的指示,执行接入网关可以执行的全部操作。例如,接入网关在与图2对应的实施例中执行的操作。

本申请所提供的接入网关可以是路由器,交换机等网络设备,也可以是实现上述各方法实施例中相关功能的线卡或者芯片,本申请对此不作具体限定。接入网关中的处理器和存储器可以解耦,分别设置在不同的物理设备上,通过有线或者无线的方式连接来实现该处理器和存储器的各自的功能,以支持该系统实现上述实施例中的各种功能。或者,该处理器和存储器也可以耦合在同一个设备上。

本申请实施例还提供了一种网络系统,包括图6或者图7所对应的实施例中的接入网关,用与执行图2对应的实施例中方法200。上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

在本申请中可能出现的对各种消息/信息/网关/系统/操作/流程/等各类客体进行了赋名,可以理解的是,这些具体的名称并不构成对相关客体的限定,所赋名称可随着场景,语境或者使用习惯等因素而变更,对本申请中技术术语的技术含义的理解,应主要从其在技术方案中所体现/执行的功能和技术效果来确定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1