CN111107081B - 基于dpdk的多进程dns服务方法和系统 - Google Patents

基于dpdk的多进程dns服务方法和系统 Download PDF

Info

Publication number
CN111107081B
CN111107081B CN201911302744.8A CN201911302744A CN111107081B CN 111107081 B CN111107081 B CN 111107081B CN 201911302744 A CN201911302744 A CN 201911302744A CN 111107081 B CN111107081 B CN 111107081B
Authority
CN
China
Prior art keywords
server
dns
dpdk
data processing
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911302744.8A
Other languages
English (en)
Other versions
CN111107081A (zh
Inventor
陈政璋
袁立志
田晓辉
毛伟
邢志杰
李晓逸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
INTERNET DOMAIN NAME SYSTEM BEIJING ENGINEERING RESEARCH CENTER
Shenzhen Wangji Technology Co ltd
Original Assignee
Shenzhen Wangji Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Wangji Technology Co ltd filed Critical Shenzhen Wangji Technology Co ltd
Priority to CN201911302744.8A priority Critical patent/CN111107081B/zh
Publication of CN111107081A publication Critical patent/CN111107081A/zh
Application granted granted Critical
Publication of CN111107081B publication Critical patent/CN111107081B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于DPDK的多进程DNS服务方法和系统,其中,该方法包括:将从网卡接收的DNS请求报文信息发送给位于用户态的DPDK数据处理平面;DPDK数据处理平面根据不同的协议类型分别进行不同处理;将DPDK数据处理平面转发的的DNS请求报文信息解析,其中,对所述DNS请求报文信息的解析根据协议类型采用权威服务器处理、缓存服务器处理及递归服务器处理三种分离的处理模式。本发明所公开的方法及系统,能够避免数据在内核态和用户台之间的往返拷贝,且可以灵活的根据业务场景提供不同的DNS服务能力,满足高性能、高灵活度的业务场景需求。

Description

基于DPDK的多进程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数据处理平面根据不同的协议类型分别进行不同处理;
将DPDK数据处理平面转发的的DNS请求报文信息解析,其中,对所述DNS请求报文信息的解析根据协议类型采用权威服务器处理、缓存服务器处理及递归服务器处理三种处理模式。
进一步地,所述DPDK数据处理平面基于轮询机制收发包,对于为UDP类型的包,通过DPDK Ring转发给权威服务器处理,对于其他类型的包通过DPDK的KNI接口重新注入操作系统的协议栈。
进一步地,对于UDP类型的包,DNS服务器进行如下处理:
权威服务器如果查询匹配到权威服务器的区数据,通过DPDK Ring应答给数据处理平面的主进程,数据处理平面的主进程负责将应答包发送出去;若不匹配,则转给缓存进程继续处理;
缓存服务器收到权威服务器转发的DNS请求报文后,如果查询匹配到缓存服务器中的缓存数据,通过DPDK Ring应答给数据处理平面的主进程,数据处理平面主进程负责将应答包发送出去;若不匹配,转给递归服务器继续处理;
递归服务器则按照递归进程负责迭代查询。
进一步地,对于非UDP类型的包,DNS服务器进行如下处理:
若收到内核层通过socket发送的非UDP数据包,则由递归服务器进行递归查询,包括对外部和本机内部的迭代查询,得到最终应答后通过socket将应答包发送出去,数据处理平面通过KNI获取操作系统协议栈中的应答包,并发送至物理网卡。
进一步地,数据处理平面对接收到的DNS请求报文信息进行分析,过滤出UDP数据包后转发给DNS服务解析模块,等待DNS服务解析模块的应答报文;对过滤出非UDP数据包通过KNI重新注入操作系统的协议栈。
进一步地,所述方法还包括:权威服务器处理、缓存服务器处理及递归服务器可通过启动多个实例的方式,或者更具业务特点停止指定的某服务器处理,为其它服务器保留更多的硬件资源。
进一步地,对实例数量的调整,可通过手动调整,或者机器动态调整。DNS服务解析模块采用了权威、缓存和递归三个模块分离的方案,每个模块为单独的服务进程。可根据业务特点和性能瓶颈点,动态新增/删除指定服务模块的进程实例数量,或者关闭特定服务实例为其它模块预留更多硬件资源足。
基于本发明的另一构思,还提供了一种基于DPDK的多进程DNS服务的系统,该系统包括:
DPDK数据处理平面,在用户态工作,用于从网卡接收DNS请求报文信息并进行数据包筛选,根据数据包类型进行不同的处理;
DNS服务解析模块,在用户态工作,将DPDK数据处理平面转发的DNS请求报文信息进行解析,其中,DNS服务解析模块中采用了权威、缓存和递归三种可分离的工作模式。
进一步地,所述DNS服务解析模块包括:权威服务器、缓存服务器及递归服务器,其中,对于接收到的为UDP类型的包,DNS服务解析模块进行如下处理:
权威服务器如果查询匹配到权威服务器的区数据,通过DPDK Ring应答给数据处理平面的主进程,数据处理平面的主进程负责将应答包发送出去;若不匹配,则转给缓存进程继续处理;
缓存服务器收到权威服务器转发的DNS请求报文后,如果查询匹配到缓存服务器中的缓存数据,通过DPDK Ring应答给数据处理平面的主进程,数据处理平面主进程负责将应答包发送出去;若不匹配,转给递归服务器继续处理;
递归服务器则按照递归进程负责迭代查询。
进一步地,所述系统还包括服务监控模块,根据每个服务的进程自身的业务压力,动态新增或删除指定服务器进程的实例数量。本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述任一项所述的方法的步骤。
与现有技术相比,本发明所公开的一种基于DPDK的多进程DNS服务的方法和系统,具有如下技术效果:
1、DPDK数据处理平面位于用户态,它接收的是直接来自网卡的请求报文,数据报文的处理也在DPDK中完成,避开了在原来的在内核层的各个协议栈的处理,避免了之前两次访问内存带来的开销,有效解决了内核协议栈处理性能较低的问题,DNS服务解析模块负责接收并回应来自DPDK数据处理平台和内核的DNS请求报文。
2、本发明对于UDP DNS数据包,通过DPDK轮询方式,绕开了内核中协议栈对DNS报文的处理,减少了开销,对于TCP DNS数据包,仍使用原来的方法进行解析。
3、本发明将权威、缓存和递归服务器模块进行模块分离,模块之间通过DPDK Ring进行通信,提升多进程间通信的性能和处理性能。
4、本发明根据业务特点停止指定的服务模块(如纯递归环境,无需启动权威进程),为其它模块预留更多硬件资源,提供满足业务场景的最佳性能。
5、本发明的各服务器进程实例数量可调整,既支持手动调整,也支持动态调整功能,开启了动态调整后,服务监控模块会监控每个服务进程自身的业务压力,根据硬件资源的使用情况来动态新增/删除指定服务进程的实例数量,保证具体业务场景的最佳解析性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中基于DPDK的多进程DNS服务系统的结构示意图。
图2为本发明实施例中基于DPDK的多进程DNS服务方法的步骤图。
图3为本发明实施例中DNS UDP数据包在基于DPDK的多进程DNS服务系统中的解析流程图。
图4为本发明实施例中DNS TCP数据包在基于DPDK的多进程DNS服务系统中的解析流程图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
参照图1所示,本发明实施例公开了一种基于DPDK的多进程DNS服务的方法,该系统包括:
网络接口卡,模拟信号进入网卡后,会进行模数转换操作,写入网卡缓存,然后直接将DNS请求报文发送给位于用户态的DPDK数据处理平面。
DPDK数据处理平面,在用户态工作,从网卡直接接收DNS请求报文信息,并进行数据包筛选,将DNS UDP包转发给DNS服务解析模块,其他类型的包通过KNI重新注入操作系统协议栈,并且,通过KNI获取系统协议栈中的TCP应答报文并发送给物理网卡。DPDK是用于快速数据包处理的一组库和驱动程序。它主要在Linux用户态环境中运行。在内核看来,DPDK就是一个普通的用户态进程,它的编译、连接和加载方式和普通程序没有什么两样。DPDK数据处理平面位于用户态,它接收的是直接来自网卡的请求报文,数据报文的处理也在DPDK中完成,避开了在原来的在内核层的各个协议栈的处理,避免了之前两次访问内存带来的开销。有效解决了内核协议栈处理性能较低的问题。DPDK使用了轮询而不是中断来处理数据包。在收到数据包时,经DPDK重载的网卡驱动不会通过中断通知CPU,而是直接将数据包存入内存,交付应用层软件通过DPDK提供的接口来直接处理,这样节省了大量的CPU中断时间和内存拷贝时间。
DNS服务解析模块,在用户态工作,具体用于将数据处理平面转发的DNS请求报文信息进行解析服务。其中,DNS服务解析模块中采用了权威、缓存和递归分离的方案。DNS服务解析模块负责接收并回应来自DPDK数据处理平面和内核的DNS请求报文。
具体来说,所述DNS服务解析模块包括:权威服务器、缓存服务器及递归服务器,它们分别进行不同的处理操作,其中,对于接收到的为UDP类型的包,DNS服务解析模块进行如下处理:
DPDK数据处理平面将DNS UDP请求报文通过DPDK Ring首先发送至权威服务器,权威服务器如果查询匹配到权威服务器的区数据,通过DPDK Ring应答给数据处理平面的主进程,数据处理平面的主进程负责将应答包发送出去;若不匹配,则转给缓存进程继续处理;其中,DPDK Ring提供对一种特殊的链表队列的管理,具有先进先出、定长、无锁、并发入/出队等特性。该功能使得工作更快,实现简单,适用于块数据的入/出队,让多个进程间的通信变得十分简单。DNS权威服务器保存着域名空间中部分区域的数据。如果DNS服务器负责管辖一个或多个区域时,称此DNS服务器为这些区域的权威服务器。根权威DNS或者二级权威服务器中的资源记录标记被指定为区域权威服务器的DNS服务器。通过资源记录中列出服务器,其他服务器就认为它是该区域的权威服务器。这意味着在NS资源记录中指定的任何服务器都被其他服务器当作权威的来源,并且能肯定应答区域内所含名称的查询。
缓存服务器收到权威服务器转发的DNS请求报文后,如果查询匹配到缓存服务器中的缓存数据,通过DPDK Ring应答给数据处理平面的主进程,数据处理平面主进程负责将应答包发送出去;若不匹配,转给递归服务器继续处理;缓存服务器就是存放频繁访问内容的服务器,缓存指的是将需要频繁访问的网络内容存放在离用户较近、访问速度更快的系统中,以提高内容访问速度。
递归服务器则按照递归进程负责迭代查询。递归服务器在正常情况下,初始的时候里面没有任何域名解析数据,里面所有的域名解析数据都来自于它到权威解析服务器的查询结果,一旦查询完毕,递归服务器就会根据TTL时间在本地形成一条缓存记录,并为用户提供DNS解析的查询服务,这是递归服务器的功能。
本发明通过将权威、缓存和递归模块进行模块分离,模块之间通过DPDK Ring进行通信,提升多进程间通信的性能和处理性能。
首先,通过DPDK Ring接收缓存进程转发过来的查询,得到最终应答后,通过DPDKRing返回给缓存进程,缓存进程更新本地缓存信息后,通过DPDK Ring应答给Dataplane主进程,Dataplane主进程负责将应答包发送出去。
其次,若收到内核层通过socket发送的非UDP数据包,则进行递归查询,包括对外部权威和本机权威的迭代查询,得到最终应答后通过socket将应答包发送出去。
本发明实施例中的服务系统还包括服务监控模块,连接DNS服务解析模块,监控权威服务器、缓存服务器及递归服务器的业务进程,根据每个服务的进程自身的业务压力和硬件资源的使用情况,动态新增或删除指定服务器进程的实例数量,保证具体业务场景的最佳解析性能。在具体操作下,也可以根据业务特点停止指定的服务模块(如纯递归环境,无需启动权威进程),为其它模块预留更多硬件资源,提供满足业务场景的最佳性能。
参照图2所示,为本发明的基于DPDK的多进程DNS服务方法的的工作原理,该方法包含步骤:
201、数据处理平面Dataplane从NIC网口获取DNS请求报文,报文的获取基于轮询的机制;
202、数据处理平面Dataplane首先对报文进行分析,并判断请求报文是否为UDP数据包;
203、数据处理平面Dataplane过滤出UDP数据包后转发给DNS服务解析模块,等待DNS服务解析模块的应答报文;
204、DNS服务解析模块收到DNS请求报文后生成相关应答报文,并发送给数据处理平面;
205、数据处理平面接收到DNS服务解析模块的应答报文后,将报文返回发送给客户端。
其中,在步骤202中,当过滤出非UDP数据包,则进行如下步骤:
206、通过KNI重新注入操作系统的协议栈。
207、非UDP数据包在系统核内经过网络协议栈处理后,再次通过socket回到用户层的DNS服务解析模块,等待应答报文;
208、DNS服务解析模块生成应答报文后,通过socket发送回操作系统协议栈;
209、数据处理平面Dataplane通过KNI从协议栈读取相应的应答报文;
210、将读取的应答报文发送至物理网卡;
对于来自网卡的不同DNS请求报文(UDP DNS/TCP DNS)的具体处理方法不同。其中,对于UDP DNS数据包,通过DPDK轮询方式,绕开了内核中协议栈对DNS报文的处理,减少了开销。对于TCP DNS数据包,仍使用原来的方法进行解析。
同时,权威、缓存、递归进程都可以通过启动多实例的方式,来提升本模块的处理性能。在具体操作下,也可以根据业务特点停止指定的服务模块(如纯递归环境,无需启动权威进程),为其它模块预留更多硬件资源,提供满足业务场景的最佳性能。
进一步地,进程实例数量的调整,既可手动调整,也可动态调整功能,开启了动态调整后,服务监控模块会监控每个服务进程自身的业务压力,根据硬件资源的使用情况来动态新增/删除指定服务进程的实例数量,保证具体业务场景的最佳解析性能。
参照图3所示,当DNS服务解析模块收到的为UDP类型时,DNS UDP数据包到达DNS服务解析模块后的处理流程的具体如下:
步骤一:客户端的DNS访问请求从物理网卡,基于DPDK轮询机制收发包,UDP数据包直接到达数据处理平面。
步骤二:基于DPDK轮询机制收发包,UDP数据包通过DPDK Ring转发给权威进程处理;
步骤三:权威服务模块如果查询到匹配数据,通过DPDK Ring应答给Dataplane主进程;否则就转给缓存进程继续处理;
步骤四:缓存服务模块如果查询到匹配数据,通过DPDK Ring应答给Dataplane主进程;否则就转给递归进程继续处理;
步骤五:通过DPDK Ring接收缓存进程转发过来的查询,通过外部与内部权威迭代查询得到最终应答后,通过DPDK Ring返回给缓存进程;
步骤六:缓存进程更新本地缓存信息后,通过DPDK Ring应答给Dataplane主进程,Dataplane主进程负责将应答包发送出去。
本发明将权威、缓存和递归模块进行模块分离,模块之间通过DPDK Ring进行通信,提升多进程间通信的性能和处理性能。
参照图4所示,当DNS服务解析模块收到的为TCP类型时,DNS TCP数据包在基于DPDK的多进程DNS服务系统中的实施例,该方法包含步骤。
步骤一:来自客户端的原始DNS请求包从物理网卡进入用户层DPDK数据处理平面,Dataplane将TCP包通过KNI重新注入操作系统的协议栈;
步骤二:递归服务模块通过socket接收KNI重新注入协议栈的DNS TCP请求;
步骤三:递归服务模块经过内部和对外迭代查询,得到最终应答后通过socket将应答包发送回操作系统协议栈。
步骤四:Dataplane数据处理平面通过KNI获取操作系统协议栈中的TCP应答包,并发送至物理网卡;
本实施例中,DNS TCP数据包没有绕开内核操作系统协议栈的处理,但不同的是,由于本发明将DNS解析服务模块分离为权威、缓存和递归三个服务进程,从而使得TCP数据包只在递归进程中处理。并且最终DNS TCP应答数据包由Dataplane发送到物理网卡,过程中只有Dataplane与物理网卡进行通信。通过上述所有流程设的计减小了开销、提高了效率,提升多进程间通信的性能和处理性能。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种基于DPDK的多进程DNS服务方法,其特征在于,所述方法包括:
将从网卡接收的DNS请求报文信息发送给位于用户态的DPDK数据处理平面;
DPDK数据处理平面根据不同的协议类型分别进行不同处理;
将DPDK数据处理平面转发的的DNS请求报文信息解析,其中,对所述DNS请求报文信息的解析根据协议类型采用权威服务器处理、缓存服务器处理及递归服务器处理三种分离的处理模式;其中,
对于UDP类型的包,DNS服务器进行如下处理:
权威服务器如果查询匹配到权威服务器的区数据,应答给数据处理平面的主进程,数据处理平面的主进程负责将应答包发送出去;若不匹配,则转给缓存进程继续处理;
缓存服务器收到权威服务器转发的DNS请求报文后,如果查询匹配到缓存服务器中的缓存数据,应答给数据处理平面的主进程,数据处理平面主进程负责将应答包发送出去;若不匹配,转给递归服务器继续处理;
递归服务器则按照递归进程负责迭代查询;
对于非UDP类型的包,DNS服务器进行如下处理:
若收到内核层通过socket发送的非UDP数据包,则由递归服务器进行递归查询,得到最终应答后通过socket将应答包发送出去,数据处理平面获取操作系统协议栈中的应答包,并发送至物理网卡。
2.根据权利要求1所述的方法,其特征在于,所述DPDK数据处理平面基于轮询机制收发包,对于为UDP类型的包,通过DPDKRing转发给权威服务器处理,对于其他类型的包通过DPDK的KNI接口重新注入操作系统的协议栈。
3.根据权利要求2所述的方法,其特征在于,对于UDP类型的包,权威服务器或缓存服务器均通过DPDKRing应答给数据处理平面的主进程。
4.根据权利要求1所述的方法,其特征在于,所述递归查询包括对外部和本机内部的迭代查询。
5.根据权利要求1所述的方法,其特征在于,数据处理平面对接收到的DNS请求报文信息进行分析,过滤出UDP数据包后转发给DNS服务解析模块,等待DNS服务解析模块的应答报文;对过滤出非UDP数据包通过KNI重新注入操作系统的协议栈。
6.根据权利要求1~4任一权利要求书所述的方法,其特征在于,所述方法还包括:权威服务器处理、缓存服务器处理及递归服务器可通过启动多个实例的方式,或者根据业务特点停止指定的某服务器处理,为其它服务器保留更多的硬件资源。
7.根据权利要求6所述的方法,其特征在于,对实例数量的调整,可通过手动调整,或者机器动态调整。
8.一种基于DPDK的多进程DNS服务系统,其特征在于,所述系统包括:
DPDK数据处理平面,在用户态工作,用于从网卡接收DNS请求报文信息并进行数据包筛选,根据数据包类型进行不同的处理;
DNS服务解析模块,在用户态工作,将DPDK数据处理平面转发的DNS请求报文信息进行解析,其中,DNS服务解析模块中采用了权威、缓存和递归三种可分离的工作模式;其中,
所述DNS服务解析模块包括:权威服务器、缓存服务器及递归服务器,其中,对于接收到的为UDP类型的包,DNS服务解析模块进行如下处理:
权威服务器如果查询匹配到权威服务器的区数据,应答给数据处理平面的主进程,数据处理平面的主进程负责将应答包发送出去;若不匹配,则转给缓存进程继续处理;
缓存服务器收到权威服务器转发的DNS请求报文后,如果查询匹配到缓存服务器中的缓存数据,应答给数据处理平面的主进程,数据处理平面主进程负责将应答包发送出去;若不匹配,转给递归服务器继续处理;
递归服务器则按照递归进程负责迭代查询;
对于接收到的为非UDP类型的包,DNS服务解析模块进行如下处理:
若收到内核层通过socket发送的非UDP数据包,则由递归服务器进行递归查询,得到最终应答后通过socket将应答包发送出去,数据处理平面获取操作系统协议栈中的应答包,并发送至物理网卡。
9.根据权利要求8所述的系统,其特征在于,所述系统还包括服务监控模块,根据每个服务的进程自身的业务压力,动态新增或删除指定服务器进程的实例数量。
CN201911302744.8A 2019-12-17 2019-12-17 基于dpdk的多进程dns服务方法和系统 Active CN111107081B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911302744.8A CN111107081B (zh) 2019-12-17 2019-12-17 基于dpdk的多进程dns服务方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911302744.8A CN111107081B (zh) 2019-12-17 2019-12-17 基于dpdk的多进程dns服务方法和系统

Publications (2)

Publication Number Publication Date
CN111107081A CN111107081A (zh) 2020-05-05
CN111107081B true CN111107081B (zh) 2022-01-11

Family

ID=70422570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911302744.8A Active CN111107081B (zh) 2019-12-17 2019-12-17 基于dpdk的多进程dns服务方法和系统

Country Status (1)

Country Link
CN (1) CN111107081B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111800401B (zh) * 2020-06-28 2023-05-23 腾讯科技(深圳)有限公司 业务报文的防护方法、装置、系统和计算机设备
CN111817915B (zh) * 2020-06-30 2022-04-01 武汉虹旭信息技术有限责任公司 一种基于dpdk的协议解析系统
CN112689004A (zh) * 2020-12-18 2021-04-20 互联网域名系统北京市工程研究中心有限公司 基于dpdk的dns透明代理方法及系统
CN112788158A (zh) * 2020-12-25 2021-05-11 互联网域名系统北京市工程研究中心有限公司 基于dpdk的dns发包系统
CN112787937A (zh) * 2021-01-21 2021-05-11 深圳市中网信安技术有限公司 报文转发方法及终端设备、计算机存储介质
CN114401245B (zh) * 2021-12-22 2024-03-22 上海网基科技有限公司 实现高性能dns服务的方法、装置、计算机设备和存储介质
CN114944996B (zh) * 2022-07-27 2022-09-30 北京立华莱康平台科技有限公司 一种数据采集方法、装置及计算机可读介质
CN115934361B (zh) * 2023-02-01 2023-06-23 天翼云科技有限公司 本地域名系统服务器的优化方法及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185936A (zh) * 2011-06-23 2011-09-14 上海牙木通讯技术有限公司 一种基于linux操作系统的DNS服务系统和方法
CN103957289A (zh) * 2014-05-12 2014-07-30 中国科学院计算机网络信息中心 一种基于复杂网络上的dnssec解析方法
CN105162900A (zh) * 2015-09-25 2015-12-16 中国互联网络信息中心 一种多节点协作的域名解析和缓存方法及系统
CN105262851A (zh) * 2015-09-16 2016-01-20 互联网域名系统北京市工程研究中心有限公司 一种基于多策略的dns转发方法及系统
CN106209852A (zh) * 2016-07-13 2016-12-07 成都知道创宇信息技术有限公司 一种基于dpdk的dns拒绝服务攻击防御方法
CN108449444A (zh) * 2018-03-29 2018-08-24 江苏省未来网络创新研究院 区域数据传输方法、自循环域名解析系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185936A (zh) * 2011-06-23 2011-09-14 上海牙木通讯技术有限公司 一种基于linux操作系统的DNS服务系统和方法
CN103957289A (zh) * 2014-05-12 2014-07-30 中国科学院计算机网络信息中心 一种基于复杂网络上的dnssec解析方法
CN105262851A (zh) * 2015-09-16 2016-01-20 互联网域名系统北京市工程研究中心有限公司 一种基于多策略的dns转发方法及系统
CN105162900A (zh) * 2015-09-25 2015-12-16 中国互联网络信息中心 一种多节点协作的域名解析和缓存方法及系统
CN106209852A (zh) * 2016-07-13 2016-12-07 成都知道创宇信息技术有限公司 一种基于dpdk的dns拒绝服务攻击防御方法
CN108449444A (zh) * 2018-03-29 2018-08-24 江苏省未来网络创新研究院 区域数据传输方法、自循环域名解析系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向安全分析的大规模网络下的DNS流量还原系统;文奕,陈兴蜀,曾雪梅,罗永刚;《技术研究》;20190531;第77-83页 *

Also Published As

Publication number Publication date
CN111107081A (zh) 2020-05-05

Similar Documents

Publication Publication Date Title
CN111107081B (zh) 基于dpdk的多进程dns服务方法和系统
US8972547B2 (en) Method and apparatus for dynamically configuring virtual internet protocol addresses
US5884313A (en) System and method for efficient remote disk I/O
US7987266B2 (en) Failover in proxy server networks
US6163812A (en) Adaptive fast path architecture for commercial operating systems and information server applications
US20130044754A1 (en) Method, apparatus and system for acquiring media access control address
CN110768994B (zh) 一种基于dpdk技术的提高sip网关性能的方法
US20050163123A1 (en) Method and apparatus for implementing a MAC address pool for assignment to a virtual interface aggregate
CN111371920A (zh) Dns前端解析方法及系统
JP2002169694A (ja) ネットワーク上のpxeクライアントにdhcpサーバを介してブート・サーバを自動的に割り当てる方法とシステム
CN109729187B (zh) 一种代理通信方法、系统、装置及存储介质
JP2003163689A (ja) ネットワーク連携情報処理システムおよびその複数負荷分散機間のアクセス移動方法
WO2014023003A1 (zh) 控制数据传输的方法、装置和系统
CN109088957B (zh) Nat规则管理的方法、装置和设备
CN109525518B (zh) 一种基于fpga的ip报文网络地址转换方法及装置
CN111010460A (zh) 域名解析方法和装置
CN114640716A (zh) 一种基于快速网络路径的云网络缓存加速系统和方法
CN117240935A (zh) 基于dpu的数据平面转发方法、装置、设备及介质
US11652755B1 (en) Adaptive telemetry using cooperative selective summarization metric reporting
US8442939B2 (en) File sharing method, computer system, and job scheduler
CN112165537B (zh) 一种用于ping回复的虚拟IP的方法
CN111541624A (zh) 空间以太网缓存处理方法
CN114422469B (zh) IPv4/IPv6流量智能调度方法、装置和调度系统
CN107615259A (zh) 一种数据处理方法及系统
CN111586040B (zh) 高性能网络数据接收方法及其系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20211214

Address after: 518001 710 Ludan building, No. 1011 Binhe Road, Ludan village community, Guiyuan street, Luohu District, Shenzhen, Guangdong Province

Applicant after: Shenzhen Wangji Technology Co.,Ltd.

Address before: Room 322, building 1, yard 3, Xingke south 2nd Street, Yanqi Economic Development Zone, Huairou District, Beijing

Applicant before: INTERNET DOMAIN NAME SYSTEM BEIJING ENGINEERING RESEARCH CENTER

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240529

Address after: 518001 710 Ludan building, No. 1011 Binhe Road, Ludan village community, Guiyuan street, Luohu District, Shenzhen, Guangdong Province

Patentee after: Shenzhen Wangji Technology Co.,Ltd.

Country or region after: China

Patentee after: INTERNET DOMAIN NAME SYSTEM BEIJING ENGINEERING RESEARCH CENTER

Address before: 518001 710 Ludan building, No. 1011 Binhe Road, Ludan village community, Guiyuan street, Luohu District, Shenzhen, Guangdong Province

Patentee before: Shenzhen Wangji Technology Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right