【技术实现步骤摘要】
一种VPN路由学习方法和装置
本申请涉及通信
,尤其涉及一种VPN路由学习方法和装置。
技术介绍
MPLS(MultiProtocolLabelSwitching,多协议标签交换)L3VPN(Layer3VirtualPrivateNetwork,虚拟专用网络)是一种三层VPN技术,PE(ProviderEdge,服务提供商网络边缘)设备之间可以利用MP-BGP(MultiprotocolBorderGatewayProtocol,多协议边界网关协议)消息来传递VPN路由,并通过RT(RouteTarget,路由目标)属性控制VPN路由的发布和接收。其中,RT属性可以包括ERT(ExportRouteTarget,出口路由目标)和IRT(ImportRouteTarget,入口路由目标)。每个PE设备均配置VPN实例与ERT、IRT的对应关系,本端PE设备发布VPN路由时,将VPN实例的ERT添加到VPN路由。对端PE设备在接收到VPN路由后,将VPN路由携带的ERT与本地的每个VPN实例的IRT进行比较,并根据比较结果确定是否将该VPN路由学习到该VPN实 ...
【技术保护点】
一种VPN路由学习方法,其特征在于,应用于网络设备,包括:接收待学习的VPN路由,并从所述VPN路由中获取到RT集合,所述RT集合包括至少一个RT属性;通过所述RT集合中的每个RT属性查询映射结构,得到所述RT集合对应的VPN实例;在所述映射结构中,针对RT属性维护VPN实例集合,所述VPN实例集合包括至少一个VPN实例;将所述VPN路由学习到得到的每个VPN实例的路由表中。
【技术特征摘要】
1.一种VPN路由学习方法,其特征在于,应用于网络设备,包括:接收待学习的VPN路由,并从所述VPN路由中获取到RT集合,所述RT集合包括至少一个RT属性;通过所述RT集合中的每个RT属性查询映射结构,得到所述RT集合对应的VPN实例;在所述映射结构中,针对RT属性维护VPN实例集合,所述VPN实例集合包括至少一个VPN实例;将所述VPN路由学习到得到的每个VPN实例的路由表中。2.根据权利要求1所述的方法,其特征在于,所述映射结构包括链表结构、数组结构、bitmap结构。3.根据权利要求2所述的方法,其特征在于,若所述映射结构为bitmap结构,所述通过所述RT集合中的每个RT属性查询映射结构,得到所述RT集合对应的VPN实例的过程,具体包括:获取所述RT集合中的每个RT属性对应的bitmap结构;所述bitmap结构中的每个比特位对应一个VPN实例,且每个比特位为第一标识或者第二标识;将每个RT属性对应的bitmap结构合并为一个遍历bitmap;在合并过程中,第一标识与第一标识的合并结果为第一标识,第一标识与第二标识的合并结果为第一标识,第二标识与第二标识的合并结果为第二标识;从所述遍历bitmap中获取第一标识所在的比特位;将获取的比特位对应的VPN实例确定为所述RT集合对应的VPN实例。4.根据权利要求3所述的方法,其特征在于,所述获取所述RT集合中的每个RT属性对应的bitmap结构之前,所述方法还包括:在为VPN实例配置RT属性时,判断是否存在与该RT属性对应的bitmap结构;如果是,在该bitmap结构中,将与该VPN实例对应的比特位设置为第一标识;如果否,则为该RT属性生成一个bitmap结构,并在生成的该bitmap结构中,将与该VPN实例对应的比特位设置为第一标识;其中,bitmap结构中的各比特位的初始值为第二标识,所述第一标识表示RT属性与VPN实例具有对应关系,所述第二标识表示RT属性与VPN实例不具有对应关系。5.根据权利要求3所述的方法,其特征在于,所述从所述遍历bitmap中获取第一标识所在的比特位的过程,具体包括:每次从所述遍历bitmap中读取M个比特位的数值,M为大于1的正整数;若读取的数值为第二标识,则进行下一次读取;若读取的数值不是第二标识,针对当前读取的M个比特位,依次读取每个比特位,将取值为第一标识的比特位记录到缓存中,并进行下一次读取;在读取过程结束后,从所述缓存读取为第一标识的比特位。6.根据权利要求3所述的方法,其特征在于,所述从所述遍历bitmap中获取第一标识所在的比特位的过程,具体包括:将所述遍历bitmap转换为行程长度编码结构;在所述行程长度编码结构中,奇数位的取值表示遍历bitmap中连续为第一标识的比特位数量,偶数位的取值表示遍历bitmap中连续为第二标识的比特位数量,或者,奇数位的取值表示遍历bitmap中连续为第二标识的比特位数量,偶数位的取值表示遍历bitmap中连续为第一标识的比特位数量;从所述行程长度编码结构中获取第一标识所在的比特位。7.根据权利要求1至6任一项所述的方法,其特征在于,所述接收待学习的VPN路由,并从所述VPN路由中获取到RT集合之后,所述方法还包括:查询是否存在与所述RT集合对应的存储结构;如果是,将所述VPN路由存储到所述RT集合对应的存储结构;如果否,为所述RT集合创建存储结构,并将所述VPN路由存储到创建的存储结构;所述将所述VPN路由学习到得到的每个VPN实例的路由表中的过程,具体包括:在得到所述RT集合对应的VPN实例后,将所述RT集合对应的存储结构中的所有VPN路由,学习到所述RT集合对应的每个VPN实例的路由表。8....
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。