基于DPDK下的NAT转发数据的方法技术

技术编号:23088221 阅读:53 留言:0更新日期:2020-01-11 02:15
本发明专利技术公开了一种基于DPDK下的NAT转发数据的方法,包括如下步骤:A)将收包线程绑定到收包核上,将转换线程绑定到转换核上;B)收包核读取一个网卡的报文,执行报文的收包线程;收包线程包括:与交换机建立邻居,接收并匹配规则,以及维护进站方向跳转表和出站方向跳转表;C)执行报文的转发线程;转发线程包括:本地回源IP地址的维护,修改回源IP地址、目的IP地址、回源端口和目的端口,链表的建立与维护,以及报文转发。实施本发明专利技术的基于DPDK下的NAT转发数据的方法,具有以下有益效果:简化了报文处理流程,最大限度的读取网卡的报文,可以避免runt‑to‑dead模式下导致网卡丢包的问题。

The method of NAT forwarding data based on dpdk

【技术实现步骤摘要】
基于DPDK下的NAT转发数据的方法
本专利技术涉及报文转发领域,特别涉及一种基于DPDK下的NAT转发数据的方法。
技术介绍
在进行报文转发时,当前的方案一般是NAT模块,配置完成调度器的收发队列及对应的端口,并设置好对应的NAT规则表、使用DPDK模块记录调度器接收到数据包的源目IP和端口,基于源目IP和端口进行哈希计算得到数据包的哈希值,根据哈希值遍历NAT规则表,查询NAT规则表中是否存在对应哈希值的内部服务器的IP和端口信息;若存在,则基于NAT规则表对源目IP进行替换,并将数据包发送给对应服务器,述NAT中不存在对应所述哈希值的内部服务器的IP和端口信息,则根据配置选择适合的服务器,并将数据包发送至该服务器,并记录该服务器与客户端的通信信息至NAT规则表并更新NAT规则表。传统全局的NAT规则表不可避免的要使用到锁,可以避免runt-to-dead模式下,因为处理流程复杂导致网卡丢包的问题。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述缺陷,提供一种简化了报文处理流程,最大限度的读取网卡的报文,可以避免runt-to-dead模式下导致网卡丢包的问题的基于DPDK下的NAT转发数据的方法。本专利技术解决其技术问题所采用的技术方案是:构造一种基于DPDK下的NAT转发数据的方法,包括如下步骤:A)将收包线程绑定到收包核上,将转换线程绑定到转换核上;B)所述收包核读取一个网卡的报文,执行报文的收包线程;所述收包线程包括:与交换机建立邻居,接收并匹配规则,以及维护进站方向跳转表和出站方向跳转表;C)执行报文的转发线程;所述转发线程包括:本地回源IP地址的维护,修改回源IP地址、目的IP地址、回源端口和目的端口,链表的建立与维护,以及报文转发。在本专利技术所述的基于DPDK下的NAT转发数据的方法中,所述步骤B)进一步包括:B1)读取网卡的报文信息;B2)判断是否是进包报文,如是,执行步骤B3);否则,执行步骤B6);B3)根据IP+port信息计算hash值,执行步骤B4);B3')初始化和高防IP地址转发规则变化时间同步更新,执行步骤B4);B4)匹配进站方向跳转表;B5)判断是否匹配上,如是,执行步骤B10);否则,执行步骤B9);B6)根据IP地址计算hash值,执行步骤B7);B6')初始化与各个转发核的本地回源IP地址变更时同步更新,执行步骤B7);B7)匹配出站方向跳转表;B8)判断是否匹配上,如是,执行步骤B10);否则,执行步骤B9);B9)确认是非法报文,将所述报文丢弃;B10)将所述报文发送给对应的转发线程。在本专利技术所述的基于DPDK下的NAT转发数据的方法中,与交换机建立邻居的具体流程如下:B1")NAT启动;B2")所述NAT配置bonding信息;所述bonding信息包括网卡ID和互联IP;B3")申请内存池,全部初始化对应网卡的ARPrequest报文,执行步骤B4")或步骤B8");B4")判断所述NAT是否收到所述ARP报文,如是,执行步骤B5");否则,执行步骤B6");B5")构造ARPreply报文,执行步骤B8");B6")判断设定时间内是否没收到任何报文,如是,执行步骤B7");否则,执行步骤B5");B7")从内存池申请所述ARP报文,执行步骤B8");B8")将所述ARPreply报文或ARP报文发送到对应网卡。在本专利技术所述的基于DPDK下的NAT转发数据的方法中,所述设定时间为10s。在本专利技术所述的基于DPDK下的NAT转发数据的方法中,所述步骤C)进一步包括:C1)读取消息列表的报文;C2)判断是否是第一次请求,如是,执行步骤C4);否则,执行步骤C3);C3)获取链表,并获取IP+port信息,执行步骤C11);C4)进行规则匹配;C5)判断是否匹配上,如是,执行步骤C7);否则,执行步骤C6);C6)丢弃所述报文;C7)选择源站IP地址和端口;C8)获取转发核的本地回源IP地址;C9)计算回源端口;C10)建立链表;C11)修改报文;C12)发送报文。在本专利技术所述的基于DPDK下的NAT转发数据的方法中,所述报文中含有4元组信息。实施本专利技术的基于DPDK下的NAT转发数据的方法,具有以下有益效果:由于本专利技术使用了DPDK环境下用户态直接获取网卡报文,直接操作报文,跳过了协议栈处理,简化了报文处理流程,将报文的处理分成了两个步骤,采用特定的算法,把报文转发处理分到多个核心处理,每个核心仅关心本核心的报文,多个核心并行处理,并不存在多核间的耦合,不需要锁的操作,同时收包核心只做了收包和分发两个动作,可以最大限度的读取网卡的报文,可以避免runt-to-dead模式下,因为处理流程复杂导致网卡丢包的问题,因此本专利技术简化了报文处理流程,最大限度的读取网卡的报文,可以避免runt-to-dead模式下导致网卡丢包的问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术基于DPDK下的NAT转发数据的方法一个实施例中的流程图;图2为所述实施例中报文收包和转发的示意图;图3为所述实施例中含有4元组信息的报文收包和转发的示意图;图4为所述实施例中收包核读取一个网卡的报文,执行报文的收包线程的具体流程图;图5为所述实施例中与交换机建立邻居的具体流程图;图6为所述实施例中执行报文的转发线程的具体流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在本专利技术基于DPDK下的NAT转发数据的方法实施例中,该基于DPDK下的NAT转发数据的方法的流程图如图1所示。图1中,该基于DPDK下的NAT转发数据的方法包括如下步骤:步骤S01将收包线程绑定到收包核上,将转换线程绑定到转换核上:本步骤中,利用线程的亲和性,把线程绑定到对应的核上,具体而言,将收包线程绑定到收包核上,将转换线程绑定到转换核上。步骤S02收包核读取一个网卡的报文,执行报文的收包线程:本步骤中,每个收包核读取一个网卡的报文(数据包),报文从哪个进包口进入NAT,经NAT处理后就从该进包口发送报文出去。报文在NAT内部经过两个线程,分本文档来自技高网...

【技术保护点】
1.一种基于DPDK下的NAT转发数据的方法,其特征在于,包括如下步骤:/nA)将收包线程绑定到收包核上,将转换线程绑定到转换核上;/nB)所述收包核读取一个网卡的报文,执行报文的收包线程;所述收包线程包括:与交换机建立邻居,接收并匹配规则,以及维护进站方向跳转表和出站方向跳转表;/nC)执行报文的转发线程;所述转发线程包括:本地回源IP地址的维护,修改回源IP地址、目的IP地址、回源端口和目的端口,链表的建立与维护,以及报文转发。/n

【技术特征摘要】
1.一种基于DPDK下的NAT转发数据的方法,其特征在于,包括如下步骤:
A)将收包线程绑定到收包核上,将转换线程绑定到转换核上;
B)所述收包核读取一个网卡的报文,执行报文的收包线程;所述收包线程包括:与交换机建立邻居,接收并匹配规则,以及维护进站方向跳转表和出站方向跳转表;
C)执行报文的转发线程;所述转发线程包括:本地回源IP地址的维护,修改回源IP地址、目的IP地址、回源端口和目的端口,链表的建立与维护,以及报文转发。


2.根据权利要求1所述的基于DPDK下的NAT转发数据的方法,其特征在于,所述步骤B)进一步包括:
B1)读取网卡的报文信息;
B2)判断是否是进包报文,如是,执行步骤B3);否则,执行步骤B6);
B3)根据IP+port信息计算hash值,执行步骤B4);
B3')初始化和高防IP地址转发规则变化时间同步更新,执行步骤B4);
B4)匹配进站方向跳转表;
B5)判断是否匹配上,如是,执行步骤B10);否则,执行步骤B9);
B6)根据IP地址计算hash值,执行步骤B7);
B6')初始化与各个转发核的本地回源IP地址变更时同步更新,执行步骤B7);
B7)匹配出站方向跳转表;
B8)判断是否匹配上,如是,执行步骤B10);否则,执行步骤B9);
B9)确认是非法报文,将所述报文丢弃;
B10)将所述报文发送给对应的转发线程。


3.根据权利要求1所述的基于DPDK下的NAT转发数据的方法,其特征在于,与交换机建立邻居的具体流程如下:
B1")NAT启动;
...

【专利技术属性】
技术研发人员:严克剑
申请(专利权)人:广东网堤信息安全技术有限公司
类型:发明
国别省市:广东;44

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

1