CN102185936B - 一种基于linux操作系统的DNS服务系统和方法 - Google Patents

一种基于linux操作系统的DNS服务系统和方法 Download PDF

Info

Publication number
CN102185936B
CN102185936B CN 201110172449 CN201110172449A CN102185936B CN 102185936 B CN102185936 B CN 102185936B CN 201110172449 CN201110172449 CN 201110172449 CN 201110172449 A CN201110172449 A CN 201110172449A CN 102185936 B CN102185936 B CN 102185936B
Authority
CN
China
Prior art keywords
dns
processing module
internal memory
response message
data
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
CN 201110172449
Other languages
English (en)
Other versions
CN102185936A (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.)
Yamu Technology Co.,Ltd.
Original Assignee
SHANGHAI YAMU COMMUNICATION 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 SHANGHAI YAMU COMMUNICATION TECHNOLOGY Co Ltd filed Critical SHANGHAI YAMU COMMUNICATION TECHNOLOGY Co Ltd
Priority to CN 201110172449 priority Critical patent/CN102185936B/zh
Publication of CN102185936A publication Critical patent/CN102185936A/zh
Application granted granted Critical
Publication of CN102185936B publication Critical patent/CN102185936B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及计算机技术,特别涉及一种基于linux操作系统的DNS服务系统和方法。本发明实施例中,将DNS服务处理模块放在内核的数据链路层,数据帧处理模块在收到网卡驱动模块转发的DNS请求报文时存入内存,并调用内核的DNS服务处理模块处理,DNS服务处理模块生成DNS响应报文并将保存到另一个内存中,然后调用数据帧处理模块从另一个内存中读取DNS响应报文放入网卡驱动模块的发送队列中发送给客户端。由于数据帧处理模块和DNS服务处理模块都位于内核的数据链路层中,省去了其他内核模块的处理,同时避免了数据从内核到应用层和从应用层到内核的两次内存拷贝,从而提高了DNS服务的处理效率。

Description

一种基于linux操作系统的DNS服务系统和方法
技术领域
本发明涉及计算机技术,特别涉及一种基于linux操作系统的DNS服务系统和方法。
背景技术
从静态角度,DNS(Domain Name System,域名系统)可以理解为一个分布式数据库。数据库的管理员负责授权给他的那部分数据的维护。该数据是对某些主机相关信息的记录,如主机名、别名、IP地址、email路由等。从动态角度,DNS可以理解为对主机信息的查询和应答服务。该查询应答采用典型的CS模型。客户端发起DNS请求,查询某主机的信息。服务器收到该请求后产生携带主机IP地址等信息的应答,返回给客户端。客户端进一步使用查询到的信息从主机获得相应服务,从而能够使人们不用去记住服务器的IP地址,就可以方便地访问互联网,这个过程通常称为域名解析。
现有的DNS服务均运行在操作系统的应用层,在OSI(Open SystemInterconnection,开放系统网络互连)七层网络模型中,划归在第7层,即应用层。
现有的DNS服务处理模块的工作流程包括如下步骤:
1、在需要提供DNS服务时向操作系统申请打开一个UDP(User DatagramProtocol,用户数据包协议)类型套接字(socket);
2、绑定socket的目的IP为本机的所有IP地址,本机可以有一个或多个IP地址;
3、绑定socket的目的端口为53,端口53为现有标准规定的DNS服务端口;
4、监听该socket,接收客户端发送的数据;
5、接收到客户端发送的DNS请求报文时提供DNS服务;
6、向客户端返回DNS应答报文,其中携带客户端需要查询的主机IP地址;
7、返回步骤4,继续监听该socket。
如图1所示,为DNS服务处理模块进行业务处理时的数据处理流程示意图,其中,OSI七层网络模型中的传输层、网络层、数据链路层和物理层属于系统内核,其他会话层表示层和应用层属于系统应用层面。
网卡设置在物理层,用于监听53端口,接收用户客户端发送的数据,如果网卡设置“混杂模式”,网卡收到DNS请求报文后会将该报文放入内存并以硬件中断形式通知数据链路层的数据帧处理模块。如果网卡未设置“混杂模式”,将检查报文的目标MAC地址,只有目标MAC地址符合本网卡的MAC地址,网卡才会将该报文放入内存并以硬件中断形式通知数据链路层的数据帧处理模块,否则就丢弃该报文。
处于数据链路层的数据帧处理模块构造内核所有模块处理报文所需的结构体,并添加该报文相应的逻辑网络设备信息,然后交给网络层。
网络层包含了很多处理模块,主要包括路由模块、Netfilter框架及插件和IP报文处理模块。路由模块根据报文的源IP和目标IP做路由选择,或是传送到上层,或是将报文往下发送到其他机器,或是丢弃该报文。Netfilter框架及插件是一个网络层的框架,提供了对IP报文的操作接口。基于Netfilter框架及插件可以较为方便地开发插件,直接处理IP报文。如果Netfilter框架及插件配置了很多插件,这里将消耗大量的时间。IP报文处理模块将IP报文解成传输层能理解的TCP包、UDP包等。处理完后,报文将递送给传输层。
传输层的处理相对简单。端口注册进程匹配模块根据报文端口信息查找注册的服务程序,经UDP报文处理模块将报文交给运行在应用层的服务程序,该报文在表示层和会话层被透传。由于报文要从内核层转移到应用层,所以这里最大的性能消耗就是将整个报文做一次内存拷贝。
DNS请求报文送到应用层对应的DNS服务处理模块后,DNS服务处理模块进行业务处理,然后生成一个DNS应答报文,将DNS应答报文逐级往下递送。
同样地,报文交给传输层的时候,又将做一次整个报文的内存拷贝,从应用层拷贝到内核层。传输层封装上UDP包头后交给网络层。网络层封装IP包头,netfilter框架及插件再一次做IP报文处理,路由模块根据IP包头里所示的目标IP地址进行路由选择和网卡选择,然后交给物理层。物理层调用网卡驱动模块,将DNS应答报文从内存写入网卡,发送指令让网卡发送该DNS应答报文到网络上,通过网络传输最终被发送DNS请求报文的客户端接收。
从上述过程可见,客户端的DNS请求报文需要经过网卡驱动模块、数据帧处理模块、Netfilter框架及插件、路由模块、端口注册进程匹配等多个Linux内核模块才到应用层的DNS服务处理模块。反过来,DNS服务处理模块产生的DNS应答报文,需要经过端口注册进程匹配、路由模块、Netfilter框架及插件、网卡驱动模块等,才能发送出去。而且数据在从内核到应用层和从应用层到内核的两个过程中,不可避免地进行两次内存拷贝。所有这些降低了服务效率。
发明内容
本发明实施例提供一种基于linux操作系统的DNS服务系统和方法,用以提高DNS服务的处理效率。
一种基于linux操作系统的DNS服务系统,包括:
网卡驱动模块,用于在物理层中将网卡从客户端接收的DNS请求报文转发给数据链路层;以及从发送队列中读取DNS响应报文并发送给客户端;
数据帧处理模块,用于在数据链路层接收所述网卡驱动模块转发的DNS请求报文,将DNS请求报文保存到第一内存中,并输出第一内存地址信息;以及根据获得的第二内存的地址信息,将保存在第二内存中的DNS响应报文放入网卡驱动模块的发送队列中;
DNS服务处理模块,用于根据数据帧处理模块转发的第一内存地址信息,对第一内存中保存的DNS请求报文进行DNS业务处理,生成DNS响应报文,并将DNS响应报文保存至第二内存中,以及将第二内存对应的第二内存地址信息发送给数据帧处理模块。
较佳的,所述网卡驱动模块,具体用于通过调用数据帧处理模块中的第一数据处理函数将所述DNS请求报文转发给数据链路层的数据帧处理模块;
所述数据帧处理模块,具体用于生成包含所述DNS请求报文的第一数据结构体,将第一数据结构存放保存到第一内存中,并通过调用钩子内核函数,将第一内存地址信息转发给DNS服务处理模块。
较佳的,所述DNS服务处理模块,具体用于生成包含DNS响应报文的第二数据结构体,将第二数据结构存放保存到第二内存中,并通过调用数据帧处理模块中的第二数据处理函数,将第二内存地址信息转发给数据帧处理模块。
其中,所述第一数据处理函数为netif_receive_skb内核函数,所述钩子内核函数为netif_receive_skb内核函数中的packet_frame_handle钩子内核函数,该packet_frame_handle钩子内核函数被调用后,将第一内存的地址信息传输给内核中的DNS服务处理模块;
所述第二数据处理函数为dev_queue_xmit内核函数,所述dev_queue_xmit内核函数函数被调用后,完成如下操作:根据第二内存的地址信息,从第二内存中获得DNS响应报文;为DNS响应报文选择发送队列;将DNS响应报文加在选择的发送队列中。
一种用于上述系统中的DNS服务方法,包括:
步骤一、网卡驱动模块在物理层中将网卡从客户端接收的DNS请求报文转发给数据链路层;
步骤二、数据帧处理模块在数据链路层接收所述网卡驱动模块转发的DNS请求报文,将DNS请求报文和保存到第一内存中,并将第一内存地址信息发送给DNS服务处理模块;
步骤三、DNS服务处理模块根据第一内存地址信息,对第一内存中保存的DNS请求报文进行DNS业务处理,生成DNS响应报文,并将DNS响应报文保存至第二内存中,以及将第二内存对应的第二内存地址信息发送给数据帧处理模块;
步骤四、数据帧处理模块根据获得的第二内存的地址信息,将保存在第二内存中的DNS响应报文放入网卡驱动模块的发送队列中;
步骤五、网卡驱动模块从发送队列中读取DNS响应报文并发送给客户端。
本发明实施例提供的技术方案中,将DNS服务处理模块放在内核的数据链路层,数据帧处理模块在收到网卡驱动模块转发的DNS请求报文时,将DNS请求报文存入内存,并调用内核的DNS服务处理模块处理内存中保存的DNS请求报文,DNS服务处理模块根据DNS请求报文请求的内容,获得查询结果,生成DNS响应报文,并将DNS响应报文保存到另一个内存中,然后调用数据帧处理模块,数据帧处理模块从另一个内存中读取DNS响应报文放入网卡驱动模块的发送队列中,由网卡驱动模块将DNS响应报文发送给客户端。在上述处理过程中,由于数据帧处理模块和DNS服务处理模块都位于内核的数据链路层中,省去了其他内核模块的处理,同时避免了数据从内核到应用层和从应用层到内核的两次内存拷贝,从而提高了DNS服务的处理效率。
附图说明
图1为背景技术中DNS服务处理模块进行DNS服务处理时的数据处理流程示意图;
图2为本发明实施例提供的基于linux操作系统的DNS服务系统结构框图;
图3为本发明实施例提供的DNS服务方法流程示意图。
具体实施方式
现有基于Linux内核态的DNS服务处理模块运行在应用层,导致DNS服务的效率很低,本发明实施例提供的技术方案中,将DNS服务处理模块放在内核的数据链路层,数据帧处理模块在收到网卡驱动模块转发的DNS请求报文时,将DNS请求报文存入内存,并调用内核的DNS服务处理模块处理内存中保存的DNS请求报文,DNS服务处理模块根据DNS请求报文请求的内容,获得查询结果,生成DNS响应报文,并将DNS响应报文保存到另一个内存中,然后调用数据帧处理模块,数据帧处理模块从另一个内存中读取DNS响应报文放入网卡驱动模块的发送队列中,由网卡驱动模块将DNS响应报文发送给客户端。在上述处理过程中,由于数据帧处理模块和DNS服务处理模块都位于内核的数据链路层中,省去了其他内核模块的处理,同时避免了数据从内核到应用层和从应用层到内核的两次内存拷贝,从而提高了DNS服务的处理效率。
现有技术中,网卡驱动模块通过调用数据帧处理模块中的数据处理函数对数据进行处理,数据处理函数例如netif_receive_skb内核函数,netif_receive_skb内核函数被调用后,执行如下功能:
1.将DNS请求报文写入skb数据结构体里;
2.申请第一内存保存skb数据结构体;
3.调用handle_bridge处理桥报文,进一步调用handle_macvlan处理vlan;
4.最后将保存skb数据结构体的第一内存地址信息送给上一层的网络层处理。
而在本发明实施例中,应该执行如下功能:
1.将DNS请求报文写入skb数据结构体里;
2.申请第一内存保存skb数据结构体;
3.将第一内存的地址信息传输给内核中的DNS服务处理模块,触发DNS服务处理模块进行DNS业务处理。
上述第三个功能可以通过在netif_receive_skb内核函数中新增一个钩子内核函数来实现,例如packet_frame_handle钩子内核函数,在netif_receive_skb内核函数被调用并生成数据结构体,申请第一内存保存skb数据结构体后,调用packet_frame_handle钩子内核函数,并将第一内存地址信息输入给packet_frame_handle钩子内核函数,packet_frame_handle钩子内核函数被调用后,将第一内存地址信息作为变量发送给DNS服务处理模块,触发DNS服务处理模块根据第一内存的地址信息进行业务处理。
本发明实施例中,DNS服务处理模块根据第一内存的地址信息,读取保存在第一内存中的DNS请求报文,进行DNS业务处理后,生成包含DNS响应报文,并将DNS响应报文存放在申请的第二内存中,触发数据处理模块发送DNS响应报文。一种具体的是实现方式可以是:DNS服务处理模块生成包含DNS响应报文的skb数据结构体,申请第二内存保存生成的skb数据结构体,进一步触发数据帧处理模块发送该DNS响应报文,该过程也可以在数据帧处理模块中新增一个具有数据处理功能的函数来完成,例如新增dev_queue_xmit内核函数,DNS服务处理模块将第二内存的地址信息作为变量输入给dev_queue_xmit内核函数,以触发数据帧处理模块发送DNS响应报文,dev_queue_xmit内核函数被调用后,完成如下操作:
1.根据第二内存的地址信息,从第二内存中获得DNS响应报文,如果DNS响应报文超过长度限制,还要进行分包处理;
2.计算DNS响应报文并填写到包中,如果需要分包,则分别计算每一个数据分包的校验值并填写到分包中;
3.为DNS响应报文或者每一个数据分包选择发送队列;
4.将DNS响应报文或者每一个数据分包加在选择的发送队列之后。
而网卡驱动模块从各个发送队列中获取数据并发送,这个过程和现有技术的处理完全一样,这里不再详细描述。
基于上述原理,如图2所示,本发明实施例首先提供一种基于linux操作系统的DNS服务系统,包括:
网卡驱动模块201,用于在物理层中将网卡从客户端接收的DNS请求报文转发给数据链路层;以及从发送队列中读取DNS响应报文并发送给客户端;
数据帧处理模块202,用于在数据链路层接收网卡驱动模块201转发的DNS请求报文,将DNS请求报文保存到第一内存中,并输出第一内存地址信息;以及根据获得的第二内存的地址信息,将保存在第二内存中的DNS响应报文放入网卡驱动模块201的发送队列中;
DNS服务处理模块203,用于根据数据帧处理模块转发的第一内存地址信息,对第一内存中保存的DNS请求报文进行DNS业务处理,生成DNS响应报文,并将DNS响应报文保存至第二内存中,以及将第二内存对应的第二内存地址信息发送给数据帧处理模块201。
一种在图2所示系统中实现的DNS服务方法如图3所示,主要包括如下步骤:
步骤301、网卡驱动模块在物理层中将网卡从客户端接收的DNS请求报文转发给数据链路层;
步骤302、数据帧处理模块在数据链路层接收网卡驱动模块转发的DNS请求报文,将DNS请求报文保存到第一内存中,并将第一内存地址信息发送给DNS服务处理模块;
步骤303、DNS服务处理模块根据第一内存地址信息,对第一内存中保存的DNS请求报文进行DNS业务处理,生成DNS响应报文,并将DNS响应报文和保存至第二内存中,以及将第二内存对应的第二内存地址信息发送给数据帧处理模块;
步骤304、数据帧处理模块根据获得的第二内存的地址信息,将保存在第二内存中的DNS响应报文放入网卡驱动模块的发送队列中;
步骤305、网卡驱动模块从发送队列中读取DNS响应报文,并发送客户端。
其中,网卡驱动模块201,通过调用数据帧处理模块中的第一数据处理函数将DNS请求报文转发给数据链路层的数据帧处理模块;
数据帧处理模块,生成包含DNS请求报文的第一数据结构体,将第一数据结构存放保存到第一内存中,并通过调用钩子内核函数,将第一内存地址信息转发给DNS服务处理模块。
其中,DNS服务处理模块,生成包含DNS响应报文的第二数据结构体,将第二数据结构存放保存到第二内存中,并通过调用数据帧处理模块中的第二数据处理函数,将第二内存地址信息转发给数据帧处理模块。
本发明实施例中,第一数据处理函数为netif_receive_skb内核函数,钩子内核函数为netif_receive_skb内核函数中的packet_frame_handle钩子内核函数,该packet_frame_handle钩子内核函数被调用后,将第一内存的地址信息传输给内核中的DNS服务处理模块;
第二数据处理函数为dev_queue_xmit内核函数,dev_queue_xmit内核函数函数被调用后,完成如下操作:根据第二内存的地址信息,从第二内存中获得DNS响应报文;为DNS响应报文选择发送队列;将DNS响应报文加在选择的发送队列之后。
本发明实施例中,第一数据结构体和/或第二数据结构体为skb数据结构体。
本发明实施例中,DNS服务处理模块是专门针对DNS开发的内核模块,运行在Linux内核态。在OSI七层网络模型中,该模块运行在第二层,即数据链路层。DNS服务处理模块根据客户端的请求,产生相应的DNS应答报文,并调用dev_queue_xmit内核函数将DNS应答报文发送出去。
为实现本发明,在Linux内核中修改代码,将业务代码内核化。通过修改Linux内核代码,在数据帧处理函数中增加钩子内核函数,使得数据可以在数据链路层送给内核的DNS服务处理模块,从而将DNS服务处理逻辑移到内核态。
本发明实施例中,需要修改Linux内核,增加数据链路层的钩子,并新增Linux内核模块,即DNS业务处理模块,配合该钩子内核函数,在数据链路层对DNS请求报文进行处理。相对于现有的DNS服务软件,本发明实施例提供的技术效率高,安全性强,受Linux内核制约小,功能扩展性好。同等业务模型下,相同的硬件环境,本架构的性能是比现有架构的20-40倍。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (9)

1.一种基于linux操作系统的DNS服务系统,其特征在于,包括: 
网卡驱动模块,用于在物理层中将网卡从客户端接收的DNS请求报文转发给数据链路层;以及从发送队列中读取DNS响应报文并发送给客户端; 
数据帧处理模块,用于在数据链路层接收所述网卡驱动模块转发的DNS请求报文,将DNS请求报文保存到第一内存中,并输出第一内存地址信息;以及根据获得的第二内存的地址信息,将保存在第二内存中的DNS响应报文放入网卡驱动模块的发送队列中; 
DNS服务处理模块,用于根据数据帧处理模块转发的第一内存地址信息,对第一内存中保存的DNS请求报文进行DNS业务处理,生成DNS响应报文,并将DNS响应报文保存至第二内存中,以及将第二内存对应的第二内存地址信息发送给数据帧处理模块。 
2.如权利要求1所述的系统,其特征在于: 
所述网卡驱动模块,具体用于通过调用数据帧处理模块中的第一数据处理函数将所述DNS请求报文转发给数据链路层的数据帧处理模块; 
所述数据帧处理模块,具体用于生成包含所述DNS请求报文的第一数据结构体,将第一数据结构存放保存到第一内存中,并通过调用钩子内核函数,将第一内存地址信息转发给DNS服务处理模块。 
3.如权利要求2所述的系统,其特征在于: 
所述DNS服务处理模块,具体用于生成包含DNS响应报文的第二数据结构体,将第二数据结构存放保存到第二内存中,并通过调用数据帧处理模块中的第二数据处理函数,将第二内存地址信息转发给数据帧处理模块。 
4.如权利要求3所述的系统,其特征在于,所述第一数据处理函数为netif_receive_skb内核函数,所述钩子内核函数为netif_receive_skb内核函数中的packet_frame_handle钩子内核函数,该packet_frame_handle钩子内核函数被调用后,将第一内存的地址信息传输给内核中的DNS服务处理模块; 
所述第二数据处理函数为dev_queue_xmit内核函数,所述dev_queue_xmit内核函数函数被调用后,完成如下操作:根据第二内存的地址信息,从第二内存中获得DNS响应报文;为DNS响应报文选择发送队列;将DNS响应报文加在选择的发送队列中。 
5.一种如权利要求1所述系统中的DNS服务方法,其特征在于,包括: 
步骤一、网卡驱动模块在物理层中将网卡从客户端接收的DNS请求报文转发给数据链路层; 
步骤二、数据帧处理模块在数据链路层接收所述网卡驱动模块转发的DNS请求报文,将DNS请求报文保存到第一内存中,并将第一内存地址信息发送给DNS服务处理模块; 
步骤三、DNS服务处理模块根据第一内存地址信息,对第一内存中保存的DNS请求报文进行DNS业务处理,生成DNS响应报文,并将DNS响应报文保存至第二内存中,以及将第二内存对应的第二内存地址信息发送给数据帧处理模块; 
步骤四、数据帧处理模块根据获得的第二内存的地址信息,将保存在第二内存中的DNS响应报文放入网卡驱动模块的发送队列中; 
步骤五、网卡驱动模块从发送队列中读取DNS响应报文并发送给客户端。 
6.如权利要求5所述的方法,其特征在于: 
所述步骤一中,所述网卡驱动模块在物理层中将网卡从客户端接收的DNS请求报文,通过调用数据帧处理模块中的第一数据处理函数,将接收的DNS请求报文转发给数据链路层; 
所述步骤二中,所述数据帧处理模块生成包含所述DNS请求报文的第一数据结构体,将第一数据结构存放保存到第一内存中,并通过调用DNS服务处理模块中的第一钩子内核函数,将第一内存地址信息转发给DNS服务处理模块。 
7.如权利要求6所述的方法,其特征在于: 
所述步骤三中,所述DNS服务处理模块生成DNS响应报文后,进一步生成包含DNS响应报文的第二数据结构体,将第二数据结构存放保存到第二内存中,并通过调用数据帧处理模块中的第二数据处理函数,将第二内存地址信息转发给数据帧处理模块。 
8.如权利要求6所述的方法,其特征在于,所述第一钩子内核函数为netif_receive_skb内核函数中的packet_frame_handle钩子内核函数,该函数被调用后,将第一内存的地址信息传输给内核中的DNS服务处理模块; 
所述第二数据处理函数为dev_queue_xmit内核函数,所述dev_queue_xmit内核函数函数被调用后,完成如下操作:根据第二内存的地址信息,从第二内存中获得DNS响应报文;为DNS响应报文选择发送队列;将DNS响应报文加在选择的发送队列中。 
9.如权利要求7或8中所述的方法,其特征在于,所述第一数据结构体和/或第二数据结构体为skb数据结构体。 
CN 201110172449 2011-06-23 2011-06-23 一种基于linux操作系统的DNS服务系统和方法 Active CN102185936B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110172449 CN102185936B (zh) 2011-06-23 2011-06-23 一种基于linux操作系统的DNS服务系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110172449 CN102185936B (zh) 2011-06-23 2011-06-23 一种基于linux操作系统的DNS服务系统和方法

Publications (2)

Publication Number Publication Date
CN102185936A CN102185936A (zh) 2011-09-14
CN102185936B true CN102185936B (zh) 2013-06-12

Family

ID=44572006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110172449 Active CN102185936B (zh) 2011-06-23 2011-06-23 一种基于linux操作系统的DNS服务系统和方法

Country Status (1)

Country Link
CN (1) CN102185936B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103166842B (zh) * 2011-12-13 2016-08-31 百度在线网络技术(北京)有限公司 基于多核平台的报文生成方法及生成装置
CN103327025B (zh) * 2013-06-28 2016-08-24 北京奇虎科技有限公司 网络访问控制方法及装置
CN105450986B (zh) * 2015-11-12 2020-02-07 厦门雅迅网络股份有限公司 一种Linux下视频处理方法
CN105847461A (zh) * 2016-03-31 2016-08-10 乐视控股(北京)有限公司 用于智能设备的数据包处理方法和系统
CN105959428A (zh) * 2016-04-28 2016-09-21 武汉斗鱼网络科技有限公司 一种基于Linux系统的域名解析方法及装置
CN107154927A (zh) * 2017-03-28 2017-09-12 北京安博通科技股份有限公司 报文处理方法及装置
CN109218454A (zh) * 2017-04-13 2019-01-15 阿里巴巴集团控股有限公司 Dns请求的响应方法及dns服务器
CN109547519B (zh) * 2017-09-22 2022-11-01 中兴通讯股份有限公司 反向代理方法、装置及计算机可读存储介质
CN109756454B (zh) * 2017-11-03 2022-01-11 阿里巴巴集团控股有限公司 数据交互的方法、装置和系统
CN108769287A (zh) * 2018-05-31 2018-11-06 四川斐讯全智信息技术有限公司 一种路由器域名访问方法、系统、计算机设备和存储介质
CN111327645B (zh) * 2018-11-28 2023-11-21 鸿合科技股份有限公司 一种共享网络方法及装置、电子设备
CN110730252A (zh) * 2019-09-25 2020-01-24 南京优速网络科技有限公司 一种通过改造linux内核报文处理功能的地址转换方法
CN111107081B (zh) * 2019-12-17 2022-01-11 深圳网基科技有限公司 基于dpdk的多进程dns服务方法和系统
CN112822309B (zh) * 2021-04-19 2021-07-16 北京视界云天科技有限公司 域名解析方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101375566A (zh) * 2006-01-30 2009-02-25 雅马哈株式会社 利用动态dns的域名系统和动态dns服务器全局地址管理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984163B2 (en) * 2005-01-13 2011-07-19 Flash Networks, Inc. Method and system for optimizing DNS queries

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101375566A (zh) * 2006-01-30 2009-02-25 雅马哈株式会社 利用动态dns的域名系统和动态dns服务器全局地址管理方法

Also Published As

Publication number Publication date
CN102185936A (zh) 2011-09-14

Similar Documents

Publication Publication Date Title
CN102185936B (zh) 一种基于linux操作系统的DNS服务系统和方法
CN103270492B (zh) 用于网络使能应用的硬件加速图形的方法和系统
US10237238B2 (en) Regional firewall clustering in a networked computing environment
CN111542064B (zh) 一种用于无线接入网的容器编排管理系统及编排方法
CN106375176B (zh) 一种物理机接入云平台的方法
CN104038401B (zh) 用于分布式覆盖虚拟环境的互操作性的方法和系统
CN104142867B (zh) 数据处理装置及数据处理方法
CN105556496B (zh) 通过快捷外围组件互连高速(Peripheral Component Interconnect-Express,PCIe)进行的可扩展直接节点间通信的方法和装置
CN107317887B (zh) 一种负载均衡方法、装置和系统
US11392995B2 (en) Efficient translation and load balancing of OpenRTB and header bidding requests
CN110313163A (zh) 分布式计算系统中的负载平衡
CN110392108A (zh) 一种公有云网络负载均衡系统架构及实现方法
CN107612840A (zh) 一种四层负载均衡设备的数据处理方法及装置
CN109547580A (zh) 一种处理数据报文的方法和装置
US20240291907A1 (en) Efficient flow management utilizing control packets
CN106657637A (zh) 能够在保持手持服务功能集的同时提供数据网络共享服务的手持设备
CN109525684A (zh) 报文转发方法和装置
CN102857414A (zh) 一种转发表写入、报文转发方法及装置
CN105847142B (zh) 一种报文传输方法及装置
US20140279885A1 (en) Data replication for a virtual networking system
CN111698346A (zh) 一种专线网络地址转换方法、装置、专线网关及存储介质
CN113949725A (zh) 基于云边协同的制造资源接入平台与方法
CN106411742A (zh) 一种报文传输的方法和装置
CN109413224A (zh) 报文转发方法和装置
CN102495764A (zh) 数据分流的实现方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 200233 Room 401, building 1, No. 180, Yizhou Road, Xuhui District, Shanghai

Patentee after: Yamu Technology Co.,Ltd.

Address before: Room 600, building 1, Huigu Chuangye, 33 Leshan Road, Xuhui District, Shanghai 200030

Patentee before: SHANGHAI YAMU COMMUNICATION TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address