System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种内核态conntrack转发加速方法技术_技高网

一种内核态conntrack转发加速方法技术

技术编号:40966530 阅读:4 留言:0更新日期:2024-04-18 20:47
本发明专利技术涉及一种内核态conntrack转发加速方法,属于数据通信技术领域,该方法包括:控制器将DNAT/SNAT规则下发到对应的NAT网关;NAT网关生成iptables规则编排,并对一条流的建连包进行转发;将conntrack记录同步到bpf map;当网卡收到网络包后,进行ip地址修改和快速路径的转发;当bpf模块收到tcp FIN/RST标记的网络包时,对bpf map进行处理;定期遍历检查bpf map entry有效时间,进行刷新与清理处理。可以提供一种热插拔的、能兼容iptables/ipvs等现有linux有状态转发的加速方案,能够解决内核态NAT网关LVS等有状态网元实例转发瓶颈,在网络包最接近驱动的底层进行处理,减少提升转发效率,降低cpu资源消耗。

【技术实现步骤摘要】

本专利技术属于数据通信,尤其涉及一种内核态conntrack转发加速方法


技术介绍

1、在linux内核态实现nat转发的常规方案包括netfilter方案和dpdk方案。

2、netfilter方案使用netfilter框架,方案简单且成熟,但在大连接高并发场景中,netfilter的性能已经成为瓶颈,大量软中断消耗cpu资源,导致丢包等问题。

3、dpdk方案则是一种在高性能网络中的常用方案,它可以在用户态进行网络数据处理,避免了内核态的数据处理开销。但是,dpdk对硬件环境、资源预分配等有一定的要求,对于kubernetes容器网络的支持不友好,而且相比netfilter/conntrack,后期的维护也需要投入更多的成本

4、在初期性能要求不高时,或者在边缘云这种资源不太充裕、网络节点和计算节点混跑的环境中,云网关通常会选择使用轻量的iptables/netfilter的方式来开发提供nat网关和负载均衡转发的能力,开发周期和维护成本相对较低。但在大连接高并发场景中,netfilter的性能已经成为瓶颈,大量软中断消耗cpu资源,导致丢包等问题。

5、随着业务的发展,对网络性能有更高的需求,要寻求一种高性能的解决方案。为了平滑迁移升级,需要同时兼容原有的内核态转发方案,并支持容器网络,而dpdk的使用条件相对苛刻,方案无法满足兼容性要求。

6、现有技术中,也有基于bpf的实现nat转发的案例,例如cilium作为一个优秀的容器网络方案,基于bpf实现了snat和负载均衡,但也仅使用与kubernetes网络体系,暂未提供完备的网元实现,也不能满足对原有网元无损迁移的需求。


技术实现思路

1、鉴于以上现有技术的不足,专利技术的目的在于提供一种内核态conntrack转发加速方法。该方法可以提供一种热插拔的、能兼容iptables/ipvs等现有linux有状态转发的加速方案,能够解决内核态nat网关lvs等有状态网元实例转发瓶颈,在网络包最接近驱动的底层进行处理,减少提升转发效率,降低cpu资源消耗。

2、本专利技术提出了一种内核态conntrack转发加速方法,包括:

3、s1,控制器将dnat/snat规则下发到对应的nat网关;

4、s2,nat网关根据dnat/snat规则,生成iptables规则编排,并对一条流的建连包进行转发,生成established和assused状态的conntrack记录;

5、s3,用户态ct状态同步程序监听netfilter ct状态变更事件,并将established和assused状态的conntrack记录同步到bpf map;

6、s4,为网卡挂载bpf模块,当网卡收到网络包后,进行ip地址修改和快速路径的转发;

7、s5,当bpf模块收到tcp fin/rst标记的网络包时,对bpf map进行处理;

8、s6,用户态ct同步程序定期遍历检查bpf map entry有效时间,进行刷新与清理处理。

9、进一步地,s2中nat网关根据dnat/snat规则,生成iptables规则编排,并对一条流的建连包进行转发,生成established和assused状态的conntrack记录具体包括:

10、s201、nat网关根据dnat/snat规则,生成iptables规则编排;

11、s202、nat网关根据iptables的nat规则,对一条流的建连包进行转发;

12、s203、生成established和assused状态的conntrack记录。

13、进一步地,s3中用户态ct状态同步程序监听netfilter ct状态变更事件,并将established和assused状态的conntrack记录同步到bpf map具体包括:

14、s301、用户态ct状态同步程序监听netfilter ct状态变更事件;

15、s302、逐步进行是否tcp和是否udp判断;

16、s303、在是tcp时进行是否established状态的判断,并在是udp时进行是否assused状态的判断;

17、s304、将established和assused状态的conntrack记录同步到bpf map。

18、进一步地,s304中将established和assused状态的conntrack记录同步到bpf map具体包括:

19、s3041、将established和assused状态的conntrack记录转换为ct entry和反向ctentry;

20、s3042、将ct entry和反向ct entry记录到bpf map中。

21、进一步地,s4中为网卡挂载bpf模块,当网卡收到网络包后,进行ip地址修改和快速路径的转发具体包括:

22、s401、为网卡挂载bpf模块;

23、s402、当网卡收到网络包后,bpf模块查找conntrack map,根据entry进行ip地址修改和快速路径的转发。

24、进一步地,s402中当网卡收到网络包后,bpf模块查找conntrack map,根据entry进行ip地址修改和快速路径的转发具体包括:

25、s4021、网卡接收网络包;

26、s4022、通过五元组在bpf map中查找ct entry记录;

27、s4023、判断是否存在ct entry记录;

28、s4024、在存在ct entry记录时,判断是否为fin/rst标记的tcp报文;

29、s4025、在ct entry记录为fin/rst标记的tcp报文时,根据entry进行ip地址修改和快速路径的转发。

30、进一步地,s4025中在ct entry记录为fin/rst标记的tcp报文时,根据entry进行ip地址修改和快速路径的转发具体包括:

31、s40251、在ct entry记录为fin/rst标记的tcp报文时,走ct加速通道,根据entry修改ip包地址/端口;

32、s40252、调用bpf redirect接口转发;

33、s40253、更新bpf map entry最近使用时间。

34、进一步地,s5中当bpf模块收到tcp fin/rst标记的网络包时,对bpf map进行处理具体包括:

35、s501、当bpf模块收到tcp fin/rst标记的网络包时,对bpf map中对应记录进行清理;

36、s502、上送到netfilter处理;

37、s503、兼容netfilter conntrack状态变更的逻辑,对netfilter逻辑无侵入。<本文档来自技高网...

【技术保护点】

1.一种内核态conntrack转发加速方法,其特征在于,包括:

2.根据权利要求1所述的一种内核态conntrack转发加速方法,其特征在于,S2中NAT网关根据DNAT/SNAT规则,生成iptables规则编排,并对一条流的建连包进行转发,生成ESTABLISHED和ASSUSED状态的conntrack记录具体包括:

3.根据权利要求1所述的一种内核态conntrack转发加速方法,其特征在于,S3中用户态CT状态同步程序监听netfilter ct状态变更事件,并将ESTABLISHED和ASSUSED状态的conntrack记录同步到bpf map具体包括:

4.根据权利要求3所述的一种内核态conntrack转发加速方法,其特征在于,S304中将ESTABLISHED和ASSUSED状态的conntrack记录同步到bpf map具体包括:

5.根据权利要求1所述的一种内核态conntrack转发加速方法,其特征在于,S4中为网卡挂载bpf模块,当网卡收到网络包后,进行ip地址修改和快速路径的转发具体包括:

>6.根据权利要求5所述的一种内核态conntrack转发加速方法,其特征在于,S402中当网卡收到网络包后,bpf模块查找conntrack map,根据entry进行ip地址修改和快速路径的转发具体包括:

7.根据权利要求6所述的一种内核态conntrack转发加速方法,其特征在于,S4025中在ct entry记录为FIN/RST标记的TCP报文时,根据entry进行ip地址修改和快速路径的转发具体包括:

8.根据权利要求1所述的一种内核态conntrack转发加速方法,其特征在于,S5中当bpf模块收到tcp FIN/RST标记的网络包时,对bpf map进行处理具体包括:

9.根据权利要求1所述的一种内核态conntrack转发加速方法,其特征在于,S6中用户态CT同步程序定期遍历检查bpf map entry有效时间,进行刷新与清理处理具体包括:

10.根据权利要求1所述的一种内核态conntrack转发加速方法,其特征在于,S602中判断是否过期,并对活跃的entry联动刷新netfilter conntrack超时时间保活,对过期entry进行清理具体包括:

...

【技术特征摘要】

1.一种内核态conntrack转发加速方法,其特征在于,包括:

2.根据权利要求1所述的一种内核态conntrack转发加速方法,其特征在于,s2中nat网关根据dnat/snat规则,生成iptables规则编排,并对一条流的建连包进行转发,生成established和assused状态的conntrack记录具体包括:

3.根据权利要求1所述的一种内核态conntrack转发加速方法,其特征在于,s3中用户态ct状态同步程序监听netfilter ct状态变更事件,并将established和assused状态的conntrack记录同步到bpf map具体包括:

4.根据权利要求3所述的一种内核态conntrack转发加速方法,其特征在于,s304中将established和assused状态的conntrack记录同步到bpf map具体包括:

5.根据权利要求1所述的一种内核态conntrack转发加速方法,其特征在于,s4中为网卡挂载bpf模块,当网卡收到网络包后,进行ip地址修改和快速路径的转发具体包括:

6.根据权利要求5所...

【专利技术属性】
技术研发人员:范日明罗云鹤黄松钦翟云箭舒泽瑾杨丰嘉李彤张红亮
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1