一种面向虚拟专用网络的路由转发方法

文档序号:34538371发布日期:2023-06-27 14:09阅读:49来源:国知局
一种面向虚拟专用网络的路由转发方法

本发明涉及虚拟路由转发领域,具体涉及一种面向虚拟专用网络的路由转发方法。


背景技术:

1、随着互联网的发展,用于主干互联的核心路由器的接口速率已经达到了千兆比特每秒级别,这一速率要求核心路由器每秒转发几百万乃至上千万个以上的分组。高性能低空间的路由表项索引技术,是实现高速分组转发的关键技术。

2、传统的路由表项索引技术需要实现对输入ip地址的最长前缀匹配,而在虚拟路由转发场景下,不仅要考虑最长前缀匹配,还要对给定的虚拟专用网络(vpn)进行完全匹配,从而导致路由表表项规格剧增,对查表性能和内存空间开销带来了更大的挑战。

3、1.二叉前缀树

4、用二叉前缀树结构来表示每个路由规则中的ip前缀是一个常用的方法,通过ip前缀中每一位比特的值来决定树的分支,当ip前缀的某位比特为0时向左生成树分支,为1时向右生成树分支。给定表1中的路由匹配规则,所对应的二叉前缀树如图1所示,图1中有5个节点存储了下一跳信息,分别为a,b,c,d,e,每个下一跳信息所在的二叉前缀树分支的路径按二叉前缀树的生成规则可分别表示为1,000,011,0,111。当输入某个ip地址进行路由查找时,会通过构建的二叉前缀树沿着对应的二叉前缀树分支进行检索,直到找到最长匹配的前缀。

5、表1 ip路由规则表

6、

7、存在问题:(1)ip前缀匹配过程需要多次的指针追踪,性能较差;(2)每个节点需要2个指针,空间消耗较高。

8、2.树位图

9、树位图在二叉前缀树的基础上,将每个节点内索引的步长扩展到k比特,并通过内部位图和外部位图分别实现节点内ip前缀的查找和树的遍历。

10、如图2所示,每个节点索引3比特,以图2中左侧的方框为例,左侧方框内的子树表示为如右框所示的数位图结构。图2中左侧方框内子树有7个节点,其中存储了下一跳信息a的节点和存储了下一跳信息d的节点按层次遍历的次序分别为第3和第2,可通过右侧方框中的内部位图0110000进行索引,而下一跳信息a和d对应存储在右侧方框中的数组中;左侧方框中该子树下有8个分支,按从左到右的次序,其中第1,第4和第8个分支不为空,因此可通过右侧方框中的外部位图10010001来表示哪些分支不为空。

11、当查询某个前缀时,首先通过每个树位图节点中的外部位图一直向下遍历直到达到叶子节点,然后在节点内通过内部位图判断是否有匹配的前缀,若存在直接返回,否则向上回溯并检索节点内的内部位图。

12、存在问题:ip前缀匹配过程中可能会回溯访问过的内部节点,最坏情况下会一直回溯访问到根节点。

13、3.压缩前缀树(poptrie)

14、为了进一步提升路由查找的效率,poptrie通过将前缀项进行叶推,避免查询过程中的回溯,并且通过子节点位图来区分叶子节点和内部节点;对于叶推过程中产生重复的下一跳信息,poptrie会通过叶子节点位图进行压缩存储。

15、如果一个节点n2的父节点是节点n1,则称n2是n1的分支节点;如果n2不是任何节点的父节点,则称n2为叶子节点,所有不是叶子节点的节点均为内部节点。

16、叶推是指将所有内部节点的下一跳信息推送给其子树上没有下一跳的叶节点,使得只有叶子节点包括下一跳信息。

17、如图3中左侧所示的二叉前缀树,以每个节点索引2比特为例,将二叉前缀树中存储下一跳信息a和d的节点叶推到图3中左侧的方框中,也即二叉前缀树的第3层;经过叶推后,二叉前缀树中方框内对应的poptrie节点下一跳信息ddaa存储到图3中间的数组中,对应的子节点位图为1101,表示左侧方框中第1,第2和第4个节点存在分支。进一步地,将图3中间的数组中连续相同的下一跳信息进行压缩,ddaa压缩表示为图3右侧的数组中的da,并通过叶子节点位图1010进行索引,1010表示第1位出现新的下一跳信息d,第3位出现新的下一跳信息a。

18、poptrie进一步将前几层的poptrie节点直接叶推到直接表所在层,加速路由查找,如图4所示,图4左侧中具有3层poptrie节点的树结构可通过叶推转换为直接表和1层poptrie节点的结构。

19、在进行前缀匹配时,poptrie先通过直接指向技术直接定位到poptrie的直接表层,然后从直接表层检索;节点内通过子节点位图判断是否为叶子节点,若是则通过叶子节点位图得到对应的下一跳信息,否则继续向下遍历poptrie节点。

20、存在问题:直接表在多vpn场景下会占用大量的额外内存。

21、4.网络虚拟化

22、网络虚拟化有助于降低硬件成本,使计算资源的可管理性更简单。虚拟化的主要目标是有效利用网络资源,通过虚拟路由和转发技术,在实际的物理设备上,创建了多个不同的vpn实例,每个vpn拥有各自独立路由转发表项。因此,在多vpn路由的场景下,不仅要考虑最长前缀匹配,还有对给定的vpn进行完全匹配。

23、现有技术的一个通用方案是对每个vpn构建各自独立的字典树trie,并且每个vpn内部会通过叶推将字典树trie的前t层直接存入直接表层来加速路由查找,如图5所示,对于vpn0,vpn1,vpn2,...,vpnn,每个vpn对应一个直接表,并且每个直接表下有多个字典树trie。但这种方案在多vpn场景下,若t较大,直接表的内存占用过高(例如t=16,vpn=4096时,直接表占用约38.4g),t较小,就发挥不了性能加速的作用。

24、综上所述,当前路由表项索引技术存在以下问题:(1)空间开销较高,poptrie使用叶推技术(将索引节点下推到下层节点)加速表项匹配需要约38.4gb的额外空间;(2)转发效率低,树位图不采用叶推技术的设计每秒仅能转发几百万个分组。


技术实现思路

1、为解决上述问题,本发明提供一种面向虚拟专用网络的路由转发方法。

2、所述面向虚拟专用网络的路由转发方法,根据输入的目的地址查找目的地址的路由下一跳信息,所述目的地址包括虚拟专用网络标识和ip地址,所述面向虚拟专用网络的路由转发方法包括以下步骤:

3、步骤一,将基于虚拟专用网络标识和ip前缀的路由规则中ip前缀长度不超过s的路由规则进行叶推处理,,得到叶推后的路由规则r;

4、步骤二,基于路由规则r为ip前缀超过s的路由规则构建字典树trie,字典树trie中包括多个节点,每个字典树trie的节点使用n个比特位作索引,每个节点内存储m比特的子节点位图和m比特的叶子节点位图,,子节点位图中每个比特b代表比特b对应的节点在下一层是否存在分支节点,叶子节点位图存储每个叶子节点所代表的目的地址对应路由下一跳信息的索引;

5、步骤三,生成初步索引数据,每条初步索引数据data的键key由虚拟专用网络标识和ip前缀按规则生成,判断键key在路由规则r中能否匹配多条路由规则,如能,则初步索引数据data的值value为描述键key对应的多条路由规则的字典树trie的根节点指针;如否,则初步索引数据data的值value为键key对应的目的地址根据路由规则r得到的路由下一跳信息;

6、步骤四,将初步索引数据data进行哈希处理,得到哈希表;

7、步骤五,将输入的目的地址按照键key的生成规则和哈希处理的规则生成查询标识;

8、步骤六,根据查询标识去哈希表查询,如果查询无结果,则返回路由信息不存在;如果查询结果为路由下一跳信息,则返回查询到的路由下一跳信息;如果查询结果为一个字典树trie的根节点指针,则在根节点指针对应的字典树trie进行检索,并返回检索到的路由下一跳信息。

9、进一步的,步骤三中每条初步索引数据data的键key由虚拟专用网络标识和ip前缀按规则生成的过程,具体包括:

10、从初步索引数据data代表的路由规则中取出虚拟专用网络标识part1和ip前缀;

11、定义虚拟专用网络标识的固定长度为l1,使用l1位字符表示虚拟专用网络标识part1;

12、将ip前缀的前s位取出作为part2;

13、将part1和part2组合生成键key。

14、进一步的,步骤四具体包括:

15、预先设定一个素数p,将键key对素数p进行取余运算得到余数remainder,将键key对素数p进行除法运算,得到商quotient;

16、将键key的商quotient和键key对应的值value组成哈希索引数据;

17、将具有相同的余数remainder的键key对应的哈希索引数据组成链表,将所述链表的头指针存入到构建出的桶bucket中;

18、所有的桶bucket以数组形式存储,构建成哈希表。

19、优选的,所述将具有相同的余数remainder的键key对应的哈希索引数据组成链表的过程,具体包括:

20、将具有相同的余数remainder的键key对应的哈希索引数据组成链表;

21、每个链表的节点最多存储k条哈希索引数据;

22、每个链表的节点node存储节点node中的哈希索引数据的数量。

23、优选的,步骤五具体包括:

24、将输入的目的地址按照键key的生成规则生成查询中间键;

25、将查询中间键对素数p进行取余和除法运算,得到查询标识的余数remainder和查询标识的商quotient。

26、进一步的,步骤六中所述根据查询标识去哈希表查询的过程,具体指使用simd计算方法根据查询标识去哈希表查询。

27、进一步的,通过对哈希表和字典树trie做并发控制,使对哈希表和字典树trie的写操作不会阻塞读操作。

28、优选的,基于读拷贝更新技术对哈希表做并发控制。

29、优选的,基于比较交换技术对字典树trie做并发控制。

30、本技术实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

31、在多vpn的路由转发场景下,本发明路由转发效率高,并且显著降低了表项索引所占用的存储空间。

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