一种IPv6子网的路由匹配方法与流程

文档序号:34685137发布日期:2023-07-05 22:21阅读:56来源:国知局
一种IPv6子网的路由匹配方法与流程

本发明涉及数据通信中的路由转发领域,尤其是涉及一种ipv6子网路由匹配方法。


背景技术:

1、近年来,随着ipv6网络的快速推进,云计算的虚拟网络也需要部署ipv6协议栈。基于软转发实现的虚拟云网络中,ipv6地址前缀长度高达128位,进行子网场景匹配路由转发时,数据结构和匹配方法是影响查表性能、转发性能的关键因素。

2、虚拟云网络中,常见的ipv6子网路由匹配方法如下:1)内核采用二叉树的结构,任意路由转发需要高达上百次的查找,性能很低;2)部分开源框架设计,采用哈希散列结构,通过遍历所有前缀逐一查找,也需要几十次的o(1)查找,性能较低。

3、综上所述,在ipv6子网路由匹配过程中,由于前缀长度扩大,查找次数普遍增多,极大降低查找性能,无法保证转发性能和网络高带宽需要。


技术实现思路

1、有鉴于此,本发明提出一种ipv6子网路由匹配方法,采用哈希散列表表结构,将前缀以8为步长划分为16段,每段实现o(1)查找;通过链表记录已配置的前缀段的起始掩码,将掩码按照由长到短进行链表排序,查找时顺序遍历,由此进一步减少查表次数,提高转发性能;重新设计表项结构,通过动态分配哈希散列表和前缀位图的设计,解决vpc子网表级扩展带来的内存开销大的问题。

2、第一方面,本发明提供一种ipv6子网路由匹配方法,其特征在于,所述方法包括以下步骤:

3、s1,在哈希表中匹配掩码128的主机路由,匹配结束后返回索引值,判断索引值是否为0,若是,则执行步骤s2,否则执行步骤s3;

4、s2,顺序遍历掩码链表,继续使用更短掩码进行查找,若匹配成功执行步骤s3,否则执行步骤s4;

5、s3,结束路由查找,按照路由下一跳信息转发报文;

6、s4,对报文进行丢包处理。

7、进一步的,所述匹配掩码128的主机路由,包括,用掩码mask和ip进行hash值计算,hash(ip&mask),如果hash值没有匹配到对应的hash桶entry,则将索引值赋值为0,否则将索引值赋值为entry->index。

8、进一步的,,所述步骤s2中,所述掩码链表中仅存储已配置的掩码,且只记录掩码所在前缀段的起始掩码;路由配置过程中,将掩码在插入链表时进行排序,按掩码由长到短的顺序依次插入。

9、进一步的,所述步骤s2包含以下子步骤:

10、s21,用掩码和ip进行hash计算,将计算所得hash值与hash桶entry进行匹配查找,若匹配失败则将索引值赋值为0并进入步骤s23,否则将索引值赋值为entry->index并进入步骤s22;

11、s22,先取起始掩码对应路由的索引,再进一步查找此掩码段中是否配置最长掩码的ip,如果配置了最长掩码的ip,则更新路由索引,返回索引值;

12、s23,判断索引是否为0,若是则执行s4,否则执行s3。

13、第二方面,本发明提供一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间通信;

14、所述存储器用于存放至少一可执行程序,所述可执行程序使所述处理器执行前述ipv6子网路由匹配方法对应的操作。

15、本发明提出的ipv6子网路由匹配方法,通过重新设计数据结构布局和匹配查找方法,具有以下优点和效果:

16、1、本发明提出的方法主结构为哈希表,内存轻量,易于海量表级扩展,可灵活应用于vpc子网场景;

17、2、本发明提出的方法将前缀以8为步长划分前缀段,每个前缀段路由o(1)查找,对比任意前缀遍历场景,提升了16倍查表性能;

18、3、本发明提出的方法,设计掩码链表记录已配置的掩码,且只需标识掩码对应的起始前缀,查表过程减少了无效掩码的匹配过程,进一步减少了查表次数,对比顺序匹配方式,进一步提升6倍查表性能。

19、4、本发明提出的方法中,每个前缀段中的段内前缀所覆盖的ip路由索引,是基于前缀配置进行动态分配的,提高了内存利用率,节省了内存开销。



技术特征:

1.一种ipv6子网路由的匹配方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的方法,其特征在于,所述匹配掩码128的主机路由,包括,用掩码mask和ip进行hash值计算,如果hash值没有匹配到对应的hash桶entry,则将索引值赋值为0,否则将索引值赋值为entry->index。

3.根据权利要求1所述的方法,其特征在于,所述步骤s2中,所述掩码链表中仅存储已配置的掩码,且只记录掩码所在前缀段的起始掩码;路由配置过程中,将掩码在插入链表时进行排序,按掩码由长到短的顺序依次插入。

4.根据权利要求3所述的方法,其特征在于,所述步骤s2包含以下子步骤:

5.根据权利要求1所述的方法,其特征在于,所述哈希表项结构具体参数为:

6.根据权利要求5所述的方法,其特征在于,所述前缀段划分方法为:在划分时,以8为步长,将前缀128划分段;ipv6地址被划分为16段,即ipv6[16];当前缀小于128时,每个段内前缀会分别覆盖ipv6[prefix/8]的范围。

7.根据权利要求1所述的方法,其特征在于,所述步骤s1之前,还包括哈希散列表预配置;所述预配置包括表项添加/更新流程,以及表项删除流程。

8.根据权利要求7所述的方法,其特征在于,所述表项添加/更新流程,包括:

9.根据权利要求7所述的方法,其特征在于,所述表项删除流程,包括:

10.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;


技术总结
本发明提出一种IPv6子网路由匹配方法,采用哈希散列表结构,将前缀以8为步长划分为16段,每段实现O(1)查找;通过链表记录已配置的前缀段的起始掩码,并将掩码按照由大到小排序,查找时顺序遍历,由此进一步减少查表次数,提高转发性能;重新设计表项结构,通过动态分配哈希散列表和前缀位图的设计,解决VPC子网表级扩展带来的内存开销大的问题。

技术研发人员:王敬瑞,胡瑞华
受保护的技术使用者:天翼云科技有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1