具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供一种路由通告的方法,该方法可以应用于如图1所示的NG-MVPN网络场景,该方法可以由RR设备或组播数据接收端PE设备执行,在本发明实施例中以组播数据接收端PE设备为例进行说明,如图2所示,该方法流程具体包括:
101、获取待接收私网组播路由的PE设备的VRF Route Import属性。
在网络部署的过程中,PE设备之间通过发送VPN路由建立邻居关系。其中,组播数据发送端PE设备向组播数据接收端PE设备发送的VPN路由中携带有VRF Route Import属性。通过VRF Route Import属性可以确定唯一的PE设备,各组播数据发送端PE设备对应的VRF Route Import属性不同。因此,可以将VRF Route Import属性作为组播数据发送端PE设备的标识。
组播数据接收端PE设备接收到组播数据发送端PE设备发送的VPN路由后,将VPN路由中携带的VRF Route Import属性添加至私网组播路由中。之后,进行私网组播路由通告。因此,在本发明实施例中,可以从私网组播路由中获取待接收私网组播路由的组播数据发送端PE设备的VRF Route Import属性。
102、在过滤表中查找VRF Route Import属性。
在本发明实施例中,组播数据接收端PE设备配置有过滤表,该过滤表用于存储组播数据发送端PE设备发送的VPN路由的VRF Route Import属性。也就是说,过滤表中存储的VRF Route Import属性对应的PE设备,是组播数据发送端PE设备。
在现有技术中,组播数据接收端PE设备将私网组播路由通告给所有邻居PE设备。邻居PE设备在接收到私网组播路由通告后,查找私网组播路由通告所携带的VRF RouteImport属性。如果邻居PE设备在私网组播路由携带的VRF Route Import属性中找到自身对应的VRF Route Import属性,则使用该私网组播路由;否则,丢弃该私网组播路由。这一私网组播路由通告的过程属于在接收端过滤。
在本发明实施例中,组播数据接收端PE设备获取私网组播路由携带的VRF RouteImport属性,并在过滤表中查找VRF Route Import属性。如果组播数据接收端PE设备在过滤表中找到了VRF Route Import属性,则将私网组播路由发送至VRF Route Import属性对应的邻居PE设备;否则,不将私网组播路由发送至VRF Route Import属性对应的邻居PE设备。这一私网组播路由通告的过程属于在发送端过滤。
103、如果过滤表中存在VRF Route Import属性,则将私网组播路由发送至VRFRoute Import属性对应的邻居PE设备。
如果过滤表中存在VRF Route Import属性,则说明该VRF Route Import属性对应的邻居PE设备是组播数据发送端PE设备。由于组播数据发送端PE设备需要使用私网组播路由,因此,将私网组播路由发送至该VRF Route Import属性对应的邻居PE设备,有助于建立组播转发表项(S,G),并非浪费网络资源。
本发明实施例提供的路由通告的方法,相比较于现有技术中将私网组播路由通告给服务提供商骨干网中其他所有的PE设备,本发明通过在过滤表中查找邻居PE设备的VRFRoute Import属性,将私网组播路由只通告给组播数据发送端PE设备。由于NG-MVPN中仅组播数据接收端PE设备才使用私网组播路由,本发明从发送端过滤私网组播路由与现有技术从接收端过滤私网组播路由相比,能够避免发送大量无效私网组播路由通告,减少了网络资源的浪费,减轻了组播数据接收端PE设备的负荷,因此,本发明能够解决私网组播路由通告过程中RR设备或者组播数据接收端PE设备的负荷较大,以及网络资源浪费的问题。
为了适应网络的变化,在本发明实施例的一个实现方式中,可以通过添加、删除等操作维护过滤表。因此,在如图2所示的实现方式的基础上,还可以实现为如图3所示的实现方式。其中,在执行步骤102在过滤表中查找VRF Route Import属性之前,还可以执行步骤104至步骤106:
104、接收邻居PE设备发送的VPN路由。
由于组播数据发送端PE设备发送的VPN路由中携带有VRF Route Import属性,而组播数据接收端PE设备发送的VPN路由中不携带VRF Route Import属性。因此,当从邻居PE设备接收到VPN路由之后,可以根据VPN路由中是否携带有VRF Route Import属性,来确定发送该VPN路由的邻居PE设备是否为组播数据发送端PE设备。
105、如果VPN路由中携带有VRF Route Import属性,则将VRF Route Import属性存储至过滤表中。
当VPN路由中携带有VRF Route Import属性时,说明发送该VPN路由的邻居PE设备是组播数据发送端PE设备,将该VRF Route Import属性存储至过滤表中,以便于组播数据源接收端PE设备根据过滤表确定私网组播路由的通告对象。
106、将VRF Route Import属性的数量加一个计数单位值。
同一个组播数据发送端PE设备的VRF Route Import属性相同。由于邻居PE设备之间可以多次发送VPN路由,每发送一次VPN路由,相当于建立了一个VPN通道。也就意味着,组播数据接收端PE设备可能会多次接收到同一个组播数据发送端PE设备发送的VPN路由。因此,在本发明实施例中,组播数据接收端PE设备可以每接收到一次组播数据发送端PE设备发送的VPN路由,就将该组播数据发送端PE设备对应的VRF Route Import属性的数量加一个计数单位值。
在本发明实施例中,VRF Route Import属性的数量,可以用计数器来记录,计数器的计数单位可以设置为1,也可以设置为大于1的数,只要每次增加或者减少计数器记录的数量采用相同的计数单位即可。
在本发明实施例的一个实现方式中,在如图2所示的实现方式的基础上,还可以实现为如图4所示的实现方式。其中,在执行步骤102在过滤表中查找VRF Route Import属性之前,还可以执行步骤107至步骤110:
107、接收邻居PE设备发送的VPN路由删除消息。
当从邻居PE设备接收到VPN路由删除消息时,将该删除消息对应的VPN路由携带的VRF Route Import属性从过滤表中删除。考虑到PE设备之间可能建立有多个VPN通道。如果组播数据接收端PE设备与某个邻居PE设备之间的VPN通道是唯一的,当组播数据接收端PE设备接收到邻居PE设备发送的VPN路由删除消息后,组播数据接收端PE设备与该邻居PE设备之间不再有VPN通道;否则,组播数据接收端PE设备与该邻居PE设备之间仍然存在VPN通道。
108、确定VRF Route Import属性的数量是否为加了一个计数单位值。如果是,则执行步骤109;否则,执行步骤110。
109、从过滤表中删除邻居PE设备对应的VRF Route Import属性。
110、将邻居PE设备对应的VRF Route Import属性的数量减一个计数单位值。
需要说明的是,为了高效处理VRF Route Import属性的添加、删除和查询等操作,在本发明实施例中可以采用形如图5所示的二叉树建立过滤表,在图5中最下层的节点可以表示为000、001、010、011、100、101、110和111。VRF Route Import属性占用64比特位,因此过滤表可以设计成深度为64的二叉树。每个比特位的取值为0或1,在本发明实施例中,可以使用比特位的取值来决定左右子树。过滤表中每个VRF Route Import属性对应二叉树的一个节点,每个节点上设计一个计数器,该计数器记录的数量与该节点对应的VRF RouteImport属性的数量相等。这样一来,携带VRF Route Import属性的VPN路由的添加、删除可以转化为向过滤表添加、删除VRF Route Import属性,以及增加、减少计数器记录的数量。计数器的计数单位可以设置为1,也可以设置为大于1的数,只要每次增加或者减少计数器记录的数量采用相同的计数单位即可。
本发明实施例提供的路由通告的方法,相比较于现有技术中将私网组播路由通告给服务提供商骨干网中其他所有的PE设备,本发明在解决私网组播路由通告过程中RR设备或者组播数据接收端PE设备的负荷较大,以及网络资源浪费的问题的基础上,根据接收到的VPN路由以及VPN路由删除消息,完成过滤表的维护,使得组播数据接收端PE设备能够根据过滤表将私网组播路由仅通告给组播数据发送端PE设备。
为了增加灵活性,在本发明实施例的一个实现方式中,可以由用户对过滤表是否生效进行配置。因此,在如图2所示的实现方式的基础上,还可以实现为如图6所示的实现方式。其中,在执行步骤101从私网组播路由中获取邻居PE设备的VRF Route Import属性之前,还可以执行步骤111:
111、确定过滤表是否处于激活状态。如果是,则执行步骤101;否则,执行步骤112。
112、将私网组播路由发送至所有的邻居PE设备。
本发明实施例提供的路由通告的方法,在过滤表处于激活状态时向过滤表中存在的VRF Route Import属性对应的邻居PE设备发送私网组播路由,从而解决私网组播路由通告过程中RR设备或者组播数据接收端PE设备的负荷较大,以及网络资源浪费的问题。在过滤表处于未激活状态时,向所有邻居PE设备发送私网组播路由,使得过滤表不可用时仍然能够成功通告私网组播路由。
本发明实施例提供一种路由通告的装置20,该装置20可以用于执行如图2、3、4和6所示的任意一套方法流程,如图7所示,该装置20包括:
获取单元201,用于获取待接收私网组播私网组播路由的服务提供商网络边缘PE设备的虚拟路由转发表路由导入VRF Route Import属性。
查找单元202,用于在过滤表中查找获取单元201获取的VRF Route Import属性,过滤表用于存储组播数据发送端PE设备发送的虚拟专用网络VPN路由的VRF Route Import属性。
发送单元203,用于当查找单元202在过滤表中找到VRF Route Import属性时,将私网组播路由发送至VRF Route Import属性对应的邻居PE设备。
在本发明实施例的一个实现方式中,装置20包括:
接收单元204,用于接收邻居PE设备发送的VPN路由。
计数单元205,用于当接收单元204接收的VPN路由中携带有VRF Route
Import属性时,将VRF Route Import属性存储至过滤表中,并将VRF RouteImport属性的数量加一个计数单位值。
在本发明实施例的一个实现方式中,接收单元204,还用于接收邻居PE设备发送的VPN路由删除消息。
计数单元205,还用于将邻居PE设备对应的VRF Route Import属性的数量减一个计数单位值。
在本发明实施例的一个实现方式中,其特征在于,计数单元205具体用于:
确定VRF Route Import属性的数量是否为加了一个计数单位值;
如是,从过滤表中删除邻居PE设备对应的VRF Route Import属性;
否则,将邻居PE设备对应的VRF Route Import属性的数量减一个计数单位值。
在本发明实施例的一个实现方式中,装置20还包括:
确定单元206,用于确定过滤表的是否处于激活状态;
获取单元201,还用于当确定单元206确定过滤表处于激活状态时,从私网组播路由中获取邻居PE设备的VRF Route Import属性;
发送单元203,还用于当确定单元206确定过滤表处于未激活状态时,将私网组播路由发送至所有的邻居PE设备。
本发明实施例提供的路由通告的装置,相比较于现有技术中将私网组播路由通告给服务提供商骨干网中其他所有的PE设备,本发明通过在过滤表中查找邻居PE设备的VRFRoute Import属性,将私网组播路由只通告给组播数据发送端PE设备。由于NG-MVPN中仅组播数据接收端PE设备才使用私网组播路由,本发明从发送端过滤私网组播路由与现有技术从接收端过滤私网组播路由相比,能够避免发送大量无效私网组播路由通告,减少了网络资源的浪费,减轻了组播数据接收端PE设备的负荷,因此,本发明能够解决私网组播路由通告过程中RR设备或者组播数据接收端PE设备的负荷较大,以及网络资源浪费的问题。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:Read-Only Memory,ROM)或随机存储记忆体(英文:RandomAccess Memory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。