System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及服务器,尤其涉及一种网络地址转换方法以及计算设备。
技术介绍
1、在网络通信中,通常存在私有网络与公共网络之间的通信,在这种情况下,通过需要利用到网络地址转换(network address translation,简称nat)技术,以将私有的地址信息转换为公共的地址信息,从而在私有网络和公共网络之间进行通信。目前,网络地址转换技术所采用的方式是通过iptables实现或者ipvs+iptables实现,在这些方式下,报文需要经过内核协议栈的netfilter框架中所有转发流程,在这些转发流程中通常会涉及大量的匹配流程,从而导致网络地址转换消耗较长的时间,进而使得报文的转发效率较低。因此,如何提高报文的转发效率成为当前研究热点。
技术实现思路
1、本申请实施例提供了一种网络地址转换方法以及计算设备,可以提高报文的转发效率。
2、第一方面,本申请实施例提供了一种网络地址转换方法,可包括:
3、基于ebpf xdp从第一网络接口中获取待发送的第一报文,并解析所述第一报文得到第一网络通信参数;
4、基于预设的网络地址转换关系,将所述第一网络通信参数转换为第二网络通信参数;其中,所述预设的网络地址转换映射关系基于ebpf map生成;
5、将第二报文通过xdp重定向的第二网络接口发送;其中,所述第二报文为将所述第一报文中的第一网络通信参数替换为所述第二网络通信参数后的报文。
6、在此实现方式中,可以直接利用ebpf ma
7、在一种可行的实现方式中,所述网络地址转换关系包括:第一预设网络通信参数以及与每个第一预设网络通信参数对应的第二预设网络通信参数;所述基于预设的网络地址转换关系,将所述第一网络通信参数转换为第二网络通信参数,可包括:
8、将所述第一网络通信参数与所述网络地址转换关系中的所述第一预设网络通信参数进行匹配;
9、若存在与所述第一网络通信参数匹配的第一预设网络通信参数,则将与所述第一网络通信参数匹配的第一预设网络通信参数对应的所述第二预设网络通信参数作为第二网络通信参数。
10、在此实现方式中,可以直接利用预设的网络地址转换关系来对报文进行网络地址转换,跳过了传统方案中需匹配iptables转发规则表等复杂流程,降低了网络地址转换的复杂度,从而也可以提高网络地址转换的转换效率,进而提升报文的转发效率。
11、在一种可行的实现方式中,所述第一网络通信参数包括所述第一报文的源ip地址、目标ip地址、源端口号和目标端口号;
12、所述第一预设网络通信参数包括第一源ip地址、第一目标ip地址、第一源端口号和第一目标端口号;
13、所述第二预设网络通信参数包括第二源ip地址、第二目标ip地址、第二源端口号和第二目标端口号。
14、在此实现方式中,可以在网络地址转换关系中设置地址与端口之间的映射关系,以便于后续在进行网络地址转换时,可以直接基于该映射关系实现网络地址转换,以有效缩短地址和端口的匹配时间以及转换时间。
15、在一种可行的实现方式中,所述第一网络通信参数包括所述第一报文的源ip地址、目标ip地址、源端口号、目标端口号和传输协议;
16、所述第一预设网络通信参数包括第一源ip地址、第一目标ip地址、第一源端口号、第一目标端口号和第一传输协议;
17、所述第二预设网络通信参数包括第二源ip地址、第二目标ip地址、第二源端口号和第二目标端口号和第二传输协议;其中,所述第一传输协议和所述第二传输协议相同。
18、在此实现方式中,还可以在网络地址转换关系中设置需进行网络地址转换的报文的传输协议,以便于在报文的跨网络访问中,避免出现不必要的网络地址转换操作,从而提高报文的转发效率。
19、在一种可行的实现方式中,还可包括:
20、若不存在与所述第一网络通信参数匹配的第一预设网络通信参数,基于操作系统内核中的转发协议栈将所述第一网络通信参数转换为所述第二网络通信参数;
21、通过所述第二网络接口发送第二报文。
22、在此实现方式中,在不能利用本申请实施例所提出的方式进行网络地址转换的情况下,还可以继续使用传统的方式就进行网络地址转换并进行后续的报文转发操作,以保证报文可以实现正常的跨网络访问。
23、在一种可行的实现方式中,所述网络地址转换关系还包括:网络入接口与网络出接口之间的接口映射关系;所述将第二报文通过xdp重定向的第二网络接口发送之前,还可包括:
24、将所述第一网络接口与所述接口映射关系中的网络入接口进行匹配;
25、若存在与所述第一网络接口匹配的网络入接口,则将与所述第一网络接口匹配的网络入接口对应的网络出接口作为第二网络接口。
26、在此实现方式中,可以基于网络地址转换关系中的接口映射关系确定出第二报文对应的网络出接口,以便于可以直接将第二报文通过xdp重定向该网络出接口,进行跨网络访问。
27、在一种可行的实现方式中,在基于预设的网络地址转换关系,将所述第一网络通信参数转换为第二网络通信参数之前,还可包括:
28、获取在用户态预先配置的网络地址转换关系;
29、基于所述网络地址转换关系更新操作系统内核中已存在的网络地址转换关系。
30、在此实现方式中,在用户态完成网络地址转换关系的设置之后,可以及时对操作系统内核中的网络地址转换关系进行更新,以保证操作系统内核中的网络地址转换关系为最新的数据,也可以保证在当前存在网络地址转换需求时,可以从网络地址转换关系中查询到所需的信息,从而提高网络地址转换的可靠性以及准确性。
31、在一种可行的实现方式中,在基于ebpf xdp从第一网络接口中获取待发送的第一报文之前,还可包括:
32、确定操作系统内核是否存在ebpf xdp对应的程序;
33、若操作系统内核存在ebpf xdp对应的程序,则启动ebpf xdp对应的程序;
34、确定所述ebpf xdp对应的程序是否正常加载;
35、若所述ebpf xdp对应的程序正常加载,则触发执行基于ebpf xdp从第一网络接口中获取待发送的第一报文的步骤。
36、在此实现方式中,可以在进行网络地址转换之前,检测操作系统内核中网络地址转换所需的ebpf xdp对应的程序是否存在以及是否可以正常加载,以保证在后续的网络地址转换操作中可以正常调用该ebpf xdp对应的程序,进而保证网络地址转换的可靠性。
37、在一种可行的实现方式中,所述网络地址转换关系是本文档来自技高网...
【技术保护点】
1.一种网络地址转换方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述网络地址转换关系包括:第一预设网络通信参数以及与每个第一预设网络通信参数对应的第二预设网络通信参数;
3.根据权利要求2所述的方法,其特征在于,所述第一网络通信参数包括所述第一报文的源IP地址、目标IP地址、源端口号和目标端口号;
4.根据权利要求2所述的方法,其特征在于,所述第一网络通信参数包括所述第一报文的源IP地址、目标IP地址、源端口号、目标端口号和传输协议;
5.根据权利要求2-4任一项所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1-5任一项所述的方法,其特征在于,所述网络地址转换关系还包括:网络入接口与网络出接口之间的接口映射关系;
7.根据权利要求1-6任一项所述的方法,其特征在于,在基于预设的网络地址转换关系,将所述第一网络通信参数转换为第二网络通信参数之前,所述方法还包括:
8.根据权利要求1-7任一项所述的方法,其特征在于,在基于eBPF XDP从第一网络接口中获取
9.根据权利要求1-8任一项所述的方法,其特征在于,所述网络地址转换关系是通过命令行或配置文件的形式确定。
10.一种计算设备,其特征在于,所述计算设备包括存储器和处理器;
...【技术特征摘要】
1.一种网络地址转换方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述网络地址转换关系包括:第一预设网络通信参数以及与每个第一预设网络通信参数对应的第二预设网络通信参数;
3.根据权利要求2所述的方法,其特征在于,所述第一网络通信参数包括所述第一报文的源ip地址、目标ip地址、源端口号和目标端口号;
4.根据权利要求2所述的方法,其特征在于,所述第一网络通信参数包括所述第一报文的源ip地址、目标ip地址、源端口号、目标端口号和传输协议;
5.根据权利要求2-4任一项所述的方法,其特征在于,所述方法还包括:
6.根据权利要...
【专利技术属性】
技术研发人员:吴林峰,
申请(专利权)人:超聚变数字技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。