[发明专利]基于DPDK的多进程DNS服务方法和系统有效
申请号: | 201911302744.8 | 申请日: | 2019-12-17 |
公开(公告)号: | CN111107081B | 公开(公告)日: | 2022-01-11 |
发明(设计)人: | 陈政璋;袁立志;田晓辉;毛伟;邢志杰;李晓逸 | 申请(专利权)人: | 深圳网基科技有限公司 |
主分类号: | H04L69/22 | 分类号: | H04L69/22;H04L69/18;H04L61/4511 |
代理公司: | 北京市万慧达律师事务所 11111 | 代理人: | 黄玉东 |
地址: | 518001 广东省深圳市罗湖区桂*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 dpdk 进程 dns 服务 方法 系统 | ||
本发明公开了一种基于DPDK的多进程DNS服务方法和系统,其中,该方法包括:将从网卡接收的DNS请求报文信息发送给位于用户态的DPDK数据处理平面;DPDK数据处理平面根据不同的协议类型分别进行不同处理;将DPDK数据处理平面转发的的DNS请求报文信息解析,其中,对所述DNS请求报文信息的解析根据协议类型采用权威服务器处理、缓存服务器处理及递归服务器处理三种分离的处理模式。本发明所公开的方法及系统,能够避免数据在内核态和用户台之间的往返拷贝,且可以灵活的根据业务场景提供不同的DNS服务能力,满足高性能、高灵活度的业务场景需求。
技术领域
本发明属于计算机技术领域,具体涉及一种基于DPDK的多进程DNS服务方法和系统。
背景技术
DNS服务可以看作对主机信息的查询和应答服务。该查询应答采用典型的CS模型。客户端发起DNS请求,查询某主机的信息。DNS服务器收到该请求后生成携带主机IP地址等信息并返回给客户端。客户端进一步使用DNS服务器返回信息进行查询并获取相应服务,DNS的出现能够使人们不用记住服务器的IP地址,就可以方便地访问互联网,整个查询及访问的过程称为域名解析。
通常的DNS服务运行在网络模型中的应用层,工作流程包括如下步骤:
1、从客户端获得的DNS请求报文,首先到达物理层的网卡驱动模块,网卡驱动模块将DNS请求报文转发给数据链路层,该过程在核内进行。
2、位于数据链路层的数据帧处理模块接收网卡驱动转发的DNS请求报文,并添加该报文相应的逻辑网络设备信息,并将信息发送给网络层,该过程在核内进行。
3、网络层的IP报文处理模块将IP报文解成传输层可以理解的TCP/UDP包等,并将处理后的报文递送给传输层,该过程在核内进行。
4、传输层根据报文端口信息查找注册的服务程序,经UDP报文处理模块将报文交付给应用层。由于报文要从内核层转移到应用层,所以要对整个报文拷入内存。
5、DNS请求报文到达应用层后,DNS服务处理模块生成DNS应答报文并原路回传。在回传的过程中,需要进行用户层到内核的第二次拷贝。
6、经过传输层、网络层、链路层和物理层的传输,最终应答报文到达客户端。
其中,网络模型中的传输层、网络层、数据链路层和物理层属于系统内核,应用层属于系统应用层面。
客户端的DNS请求报文需要经过网卡驱动模块、数据帧处理模块等多个Linux内核模块才到应用层的DNS服务处理模块。反过来,DNS服务处理模块产生的DNS应答报文也需要经过多个模块才能发送出去。而且数据在从内核到应用层和从应用层到内核的两个过程中,不可避免地进行两次内存拷贝,大大降低了DNS的服务效率。
因此,如何避免数据在内核态和用户台之间的往返拷贝,且可以灵活的根据业务场景提供不同的DNS服务能力,以满足高性能、高灵活度的业务场景需求,便成为了目前亟待解决的问题。
发明内容
基于现有技术的上述缺陷,本发明的目的是提供一种基于DPDK的多进程DNS服务的方法及系统,避免数据在内核态和用户台之间的往返拷贝,且可以灵活的根据业务场景提供不同的DNS服务能力,以满足高性能、高灵活度的业务场景需求。
本发明采用的技术方案如下:
一种基于DPDK的多进程DNS服务的方法,所述方法包括:
将从网卡接收的DNS请求报文信息发送给位于用户态的DPDK数据处理平面;
DPDK数据处理平面根据不同的协议类型分别进行不同处理;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳网基科技有限公司,未经深圳网基科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911302744.8/2.html,转载请声明来源钻瓜专利网。