CN108600405A - 一种加速dns解析软件日志记录的方法和系统 - Google Patents
一种加速dns解析软件日志记录的方法和系统 Download PDFInfo
- Publication number
- CN108600405A CN108600405A CN201810210338.8A CN201810210338A CN108600405A CN 108600405 A CN108600405 A CN 108600405A CN 201810210338 A CN201810210338 A CN 201810210338A CN 108600405 A CN108600405 A CN 108600405A
- Authority
- CN
- China
- Prior art keywords
- log information
- log
- binary
- dns resolution
- resolution software
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种加速DNS解析软件日志记录的方法和系统。该方法采集查询报文的日志信息,并生成二进制日志信息流;将生成二进制日志信息流存放到日志信息仓库中,然后从所述日志信息仓库中取出二进制日志信息流,将其输出到日志文件或者输送到UNIX DOMAIN SOCKET;然后解析所述日志文件并输出可视化日志信息,或者接收UNIX DOMAIN SOCKET中的二进制日志信息流后输出可视化日志信息。本发明可以在不修改DNS软件解析代码的情况,将DNS解析软件记录日志与DNS解析过程进行隔离,能够在保证DNS解析软件高性能输出日志文件的情况下,增加DNS解析软件的解析性能。
Description
技术领域
本发明属于信息技术、DNS技术领域,具体涉及一种加速DNS解析软件日志记录的方法和系统。
背景技术
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。域名解析是由DNS解析软件来完成,如图1所示。主流的DNS解析软件有bind、unbound等。
随着当今互联网需要的迅猛增长,互联网访问的数据量急剧增加,DNS服务器的访问量也大幅激增,其QPS(每秒查询率)已达到百万甚至千万级别。高QPS的需求,意味着DNS服务器要提供高性能解析软件,可见提高解析软件的解析性能对满足当今高访问量的互联网需求至关重要。
然而DNS解析软件的性能影响因素中最重要的一个影响因素就是日志系统的性能。传统的DNS解析软件记录日志的过程如图2所示,日志的记录存在如下问题:日志记录与DNS解析过程同步进行;日志系统需要实时解析DNS查询报文;日志系统缺少日志记录缓冲区等等。如果查询量增加,日志系统的压力增大,直接影响了DNS解析软件的解析性能。如果DNS解析软件不开启DNS解析软件的日志系统,会造成大量重要数据的丢失,其影响同样不可估量。提高DNS解析软件的性能,首先要解决DNS解析软件的日志系统的性能。
发明内容
本发明针对以上问题,提供一种加速DNS解析软件日志记录的方法和系统,能够提高DNS解析软件记录日志的性能,进而提高DNS解析软件的解析性能。
本发明的主要原理是在原有的DNS解析软件中插入异步日志模块,以隔离DNS解析过程与DNS日志记录的过程。
本发明采用的技术方案如下:
一种加速DNS解析软件日志记录的方法,包括以下步骤:
采集查询报文的日志信息,并生成二进制日志信息流;
将所述二进制日志信息流输出到日志文件或者输送到UNIX DOMAIN SOCKET;
解析所述日志文件并输出可视化日志信息,或者接收UNIX DOMAIN SOCKET中的二进制日志信息流后输出可视化日志信息。
进一步地,将生成二进制日志信息流存放到日志信息仓库中,然后从所述日志信息仓库中取出二进制日志信息流,将其输出到日志文件或者输送到UNIX DOMAIN SOCKET。
进一步地,所述日志信息仓库利用Linux内存屏障实现无锁的循环的队列,支持多线程的日志信息入仓与多线程的日志信息出仓,以提升记录日志的性能。
进一步地,所述采集查询报文的日志信息,包括采集客户端IP及其端口、查询域名、DNS解析软件接收IP及其端口信息,对其进行二进制编码以生成二进制日志信息流。
一种加速DNS解析软件日志记录的系统,其包括:
信息采集模块,负责采集查询报文的日志信息,并生成二进制日志信息流;
日志信息中转模块,负责将所述二进制日志信息流输出到日志文件或者输送到UNIX DOMAIN SOCKET;
日志解析模块,负责解析所述日志文件并输出可视化日志信息,或者接收UNIXDOMAIN SOCKET中的二进制日志信息流后输出可视化日志信息。
进一步地,还包括日志信息仓库,负责存贮所述信息采集模块生成的二级制日志信息流;所述日志信息中转模块从所述日志信息仓库中取出二进制日志信息流,将其输出到日志文件或者输送到UNIX DOMAIN SOCKET。
进一步地,所述日志信息仓库利用Linux内存屏障实现无锁的循环的队列,支持多线程的日志信息入仓与多线程的日志信息出仓,以提升记录日志的性能。
一种DNS服务器,其配置有DNS解析软件,所述DNS解析软件包含上面所述的加速DNS解析软件日志记录的系统。
本发明的技术核心在于在原有的DNS解析软件中插入异步日志模块,可以做到DNS查询过程与日志输出彻底隔离。利用高性能的采集器采集日志数据,利用无锁的日志信息仓库存取日志信息,利用日志信息的中转策略提供更多选择的高效的处理方式的日志信息。
传统的DNS解析软件日志模块的设计是接收查询报文,解析查询报文,组织输出信息,输出DNS查询日志文本信息到日志文件。在这个过程中解析查询报文并转换成一定格式的文本信息耗费时间较长,写入日志文件的时候会堵塞DNS解析的过程,如果存在大量的查询必然会很大程度的降低DNS解析软件的解析性能。本发明做到了异步记录DNS日志信息,完全与DNS解析过程隔离出来,通过二进制编码等策略提高了记录日志的性能,进而提高了DNS解析软件的解析性能。
本发明可以在不修改DNS软件解析代码的情况,做到DNS解析软件记录日志与DNS解析过程进行隔离,通过二进制日志信息编码策略与增加日志输出的缓冲区等策略大大的提高DNS解析软件记录日志的性能,进一步的解决传统的DNS解析软件以牺牲记录日志来换取解析性能的问题,能够在保证DNS解析软件高性能输出日志文件的情况下,增加DNS解析软件的解析性能。
附图说明
图1是客户查询DNS过程示意图。
图2是传统DNS解析软件记录日志示意图。
图3是本发明的一种可加速DNS解析软件日志记录的方法的工作流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
本发明在原有的DNS解析软件中插入可以编译的异步日志模块,以实现DNS解析软件记录日志的异步化。所述异步日志模块包含的功能模块分别为:信息采集模块、日志信息仓库、日志信息中转模块、日志解析模块。各模块间的连接关系如图3所示。
信息采集模块负责在查询报文中采集日志信息,按照特定格式进行二进制编码后存放在日志信息仓库中。信息采集模块可以应用开源软件(protobuf)组织二进制日志信息流。日志信息的二进制编码的格式可以根据需求来定制,比如四字节表示头信息,十六字节表示时间戳,一字节表示DNS标志位,两字节表示客户端端口,两字节表示DNS服务器端口,另外还包括客户端IP地址、DNS服务器IP地址、查询信息二进制流等等。
日志信息仓库负责存贮二级制日志信息流,等待日志信息中转模块取出日志信息。为了提高日志信息仓库的入仓与出仓的性能,利用Linux Memory Barries(Linux内存屏障)设计成无锁的循环的队列。这样能够支持多线程的日志信息入仓与多线程的日志信息出仓,提升记录日志的性能。
日志信息中转模块负责从日志信息仓库中取出二进制日志信息流,然后按照配置信息处理二进制日志信息流。所述配置信息即处理的模式,主要有两个方面,一个是二进制日志信息流输出到日志文件,另一个是二进制日志信息流发送到UNIX DOMAIN SOCKET(UNIX域套接字)。如果选择日志信息流输出为日志文件,可以利用系统日志输出的文件缓存,通过标准的库函数设置文件缓存大小,提高日志信息输出到日志文件的性能。
日志解析模块负责将二进制日志信息解析成可视化文本信息。可以将存成二进制的日志文件解析成可视化的文本格式;或者接收UNIX DOMAIN SOCKET中的信息流后,存成二进制日志文件,然后解析成可视化的文本格式;或者接收UNIX DOAIN SOCKET中的信息流,解析成可视化文本日志并输出到显示屏上。比如在二进制流中客户端IP是四个字节,解析之后成为192.168.0.1这样点分格式的IP信息。
本发明的异步日志模块工作流程为:
1、信息采集模块采集查询报文日志信息,生成二进制日志信息流并存放到日志信息仓库中。
2、日志信息中转模块从日志信息仓库中取出二进制日志信息流,根据配置信息对二进制日志信息流做处理。
3、日志解析模块解析二进制日志信息流文件输出文本日志信息,或者接收UNIXDOMAIN SOCKET信息再可视化输出日志信息。
图3为一个实施例的加速DNS解析软件日志记录的方法的流程图,其具体步骤如下:
1)在原有的DNS解析软件加入异步日志模块进行编译,编译通过后运行DNS解析软件。
2)在客户机器上发送查询数据包到启动的DNS解析软件。
3)DNS解析软件接收到查询数据包(即查询报文)。
4)信息采集模块采集基本日志信息(客户端IP及其端口,查询域名,DNS解析软件接收IP,及其端口信息等等),对其进行二进制编码并存入日志信息仓库。
5)日志信息中转模块从日志信息仓库中取出日志信息,按照中转策略进行日志输出。所述中转策略为:输出到日志文件、或者输送到UNIX DOMAIN SOCKET。
6)如果在第5)步选择输送到UNIX DOMAIN SOCKET,可以利用日志解析模块接收UNIX DOMAIN SOCKET日志信息再输出。如果在第5)步选择输出到二进制日志文件,可以利用日志解析模块进行解析,然后输出可视化日志信息。
本发明的上述方法具有以下特点:
1)在原有的DNS解析软件中插入异步日志模块,可以做到DNS查询过程与日志输出彻底隔离。
2)通过DNS日志信息的采集模块,能够高效的编码二进制日志信息流。
3)通过建立无锁的日志信息仓库,可以更高效解决日志信息的存储与输出。
4)通过日志信息的中转策略,提供更多选择的处理方式的日志信息。
5)通过日志解析模块可以更高效的进行二级制日志信息流的文本解析工作。可以做到类似TcpDump的处理二进制日志信息流。
通过实验验证得知,在没有采用本发明方法的情况下,查询日志约为3万条/秒,采用本发明的方法则可以达到60万条/秒,显著提高了记录日志的性能,进而增加了DNS解析软件的解析性能。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
Claims (10)
1.一种加速DNS解析软件日志记录的方法,其特征在于,包括以下步骤:
采集查询报文的日志信息,并生成二进制日志信息流;
将所述二进制日志信息流输出到日志文件或者输送到UNIX DOMAIN SOCKET;
解析所述日志文件并输出可视化日志信息,或者接收UNIX DOMAIN SOCKET中的二进制日志信息流后输出可视化日志信息。
2.根据权利要求1所述的方法,其特征在于,将生成二进制日志信息流存放到日志信息仓库中,然后从所述日志信息仓库中取出二进制日志信息流,将其输出到日志文件或者输送到UNIX DOMAIN SOCKET。
3.根据权利要求2所述的方法,其特征在于,所述日志信息仓库利用Linux内存屏障实现无锁的循环的队列,支持多线程的日志信息入仓与多线程的日志信息出仓,以提升记录日志的性能。
4.根据权利要求1所述的方法,其特征在于,所述采集查询报文的日志信息,包括采集客户端IP及其端口、查询域名、DNS解析软件接收IP及其端口信息,对其进行二进制编码以生成二进制日志信息流。
5.一种加速DNS解析软件日志记录的系统,其特征在于,包括:
信息采集模块,负责采集查询报文的日志信息,并生成二进制日志信息流;
日志信息中转模块,负责将所述二进制日志信息流输出到日志文件或者输送到UNIXDOMAIN SOCKET;
日志解析模块,负责解析所述日志文件并输出可视化日志信息,或者接收UNIXDOMAINSOCKET中的二进制日志信息流后输出可视化日志信息。
6.根据权利要求5所述的系统,其特征在于,还包括日志信息仓库,负责存贮所述信息采集模块生成的二级制日志信息流;所述日志信息中转模块从所述日志信息仓库中取出二进制日志信息流,将其输出到日志文件或者输送到UNIX DOMAIN SOCKET。
7.根据权利要求6所述的系统,其特征在于,所述日志信息仓库利用Linux内存屏障实现无锁的循环的队列,支持多线程的日志信息入仓与多线程的日志信息出仓,以提升记录日志的性能。
8.根据权利要求5所述的系统,其特征在于,所述信息采集模块采集客户端IP及其端口、查询域名、DNS解析软件接收IP及其端口信息,对其进行二进制编码以生成二进制日志信息流。
9.根据权利要求5所述的系统,其特征在于,所述日志解析模块将存成二进制的日志文件解析成可视化的文本格式;或者接收UNIX DOMAIN SOCKET中的信息流后,存成二进制日志文件,然后解析成可视化的文本格式;或者接收UNIX DOAIN SOCKET中的信息流,解析成可视化文本日志并输出到显示屏上。
10.一种DNS服务器,其特征在于,配置有DNS解析软件,所述DNS解析软件包含权利要求5~9中任一权利要求所述的加速DNS解析软件日志记录的系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810210338.8A CN108600405A (zh) | 2018-03-14 | 2018-03-14 | 一种加速dns解析软件日志记录的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810210338.8A CN108600405A (zh) | 2018-03-14 | 2018-03-14 | 一种加速dns解析软件日志记录的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108600405A true CN108600405A (zh) | 2018-09-28 |
Family
ID=63626220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810210338.8A Pending CN108600405A (zh) | 2018-03-14 | 2018-03-14 | 一种加速dns解析软件日志记录的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108600405A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110049133A (zh) * | 2019-04-22 | 2019-07-23 | 中国互联网络信息中心 | 一种dns区文件全量下发的方法和装置 |
CN110753136A (zh) * | 2019-10-24 | 2020-02-04 | 北京锐安科技有限公司 | 域名解析方法、装置、设备及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100174829A1 (en) * | 2009-01-06 | 2010-07-08 | Barracuda Networks, Inc | Apparatus for to provide content to and query a reverse domain name system server |
CN101902505A (zh) * | 2009-05-31 | 2010-12-01 | 中国科学院计算机网络信息中心 | 一种分布式dns查询日志的实时统计装置及方法 |
CN102291268A (zh) * | 2011-09-23 | 2011-12-21 | 杜跃进 | 一种安全域名服务器及基于此的恶意域名监控系统和方法 |
CN103581363A (zh) * | 2013-11-29 | 2014-02-12 | 杜跃进 | 对恶意域名和非法访问的控制方法及装置 |
CN103685589A (zh) * | 2012-09-07 | 2014-03-26 | 中国科学院计算机网络信息中心 | 基于二进制编码的dns数据压缩、解压缩方法及系统 |
CN104202344A (zh) * | 2014-09-28 | 2014-12-10 | 互联网域名系统北京市工程研究中心有限公司 | 一种针对DNS服务防DDoS攻击的方法及装置 |
US20150081926A1 (en) * | 2013-09-16 | 2015-03-19 | Netflix, Inc. | Configuring dns clients |
CN104572689A (zh) * | 2013-10-17 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置及系统 |
CN105224250A (zh) * | 2015-09-28 | 2016-01-06 | 互联网域名系统北京市工程研究中心有限公司 | 高性能域名解析处理方法和装置 |
CN105868031A (zh) * | 2016-03-24 | 2016-08-17 | 车智互联(北京)科技有限公司 | 一种数据传输装置和方法 |
CN105912696A (zh) * | 2016-04-25 | 2016-08-31 | 中国互联网络信息中心 | 一种基于对数归并的dns索引创建方法及查询方法 |
CN106354434A (zh) * | 2016-08-31 | 2017-01-25 | 中国人民大学 | 日志数据的存储方法及系统 |
-
2018
- 2018-03-14 CN CN201810210338.8A patent/CN108600405A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100174829A1 (en) * | 2009-01-06 | 2010-07-08 | Barracuda Networks, Inc | Apparatus for to provide content to and query a reverse domain name system server |
CN101902505A (zh) * | 2009-05-31 | 2010-12-01 | 中国科学院计算机网络信息中心 | 一种分布式dns查询日志的实时统计装置及方法 |
CN102291268A (zh) * | 2011-09-23 | 2011-12-21 | 杜跃进 | 一种安全域名服务器及基于此的恶意域名监控系统和方法 |
CN103685589A (zh) * | 2012-09-07 | 2014-03-26 | 中国科学院计算机网络信息中心 | 基于二进制编码的dns数据压缩、解压缩方法及系统 |
US20150081926A1 (en) * | 2013-09-16 | 2015-03-19 | Netflix, Inc. | Configuring dns clients |
CN104572689A (zh) * | 2013-10-17 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置及系统 |
CN103581363A (zh) * | 2013-11-29 | 2014-02-12 | 杜跃进 | 对恶意域名和非法访问的控制方法及装置 |
CN104202344A (zh) * | 2014-09-28 | 2014-12-10 | 互联网域名系统北京市工程研究中心有限公司 | 一种针对DNS服务防DDoS攻击的方法及装置 |
CN105224250A (zh) * | 2015-09-28 | 2016-01-06 | 互联网域名系统北京市工程研究中心有限公司 | 高性能域名解析处理方法和装置 |
CN105868031A (zh) * | 2016-03-24 | 2016-08-17 | 车智互联(北京)科技有限公司 | 一种数据传输装置和方法 |
CN105912696A (zh) * | 2016-04-25 | 2016-08-31 | 中国互联网络信息中心 | 一种基于对数归并的dns索引创建方法及查询方法 |
CN106354434A (zh) * | 2016-08-31 | 2017-01-25 | 中国人民大学 | 日志数据的存储方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110049133A (zh) * | 2019-04-22 | 2019-07-23 | 中国互联网络信息中心 | 一种dns区文件全量下发的方法和装置 |
CN110049133B (zh) * | 2019-04-22 | 2021-10-22 | 中国互联网络信息中心 | 一种dns区文件全量下发的方法和装置 |
CN110753136A (zh) * | 2019-10-24 | 2020-02-04 | 北京锐安科技有限公司 | 域名解析方法、装置、设备及存储介质 |
CN110753136B (zh) * | 2019-10-24 | 2022-03-04 | 北京锐安科技有限公司 | 域名解析方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019134226A1 (zh) | 一种日志收集方法、装置、终端设备及存储介质 | |
US6771646B1 (en) | Associative cache structure for lookups and updates of flow records in a network monitor | |
US7953082B2 (en) | Method and system for packet classification with reduced memory space and enhanced access speed | |
US8666985B2 (en) | Hardware accelerated application-based pattern matching for real time classification and recording of network traffic | |
CN108564339A (zh) | 一种账户管理方法、装置、终端设备及存储介质 | |
CN111629081B (zh) | 互联网协议ip地址数据处理方法、装置及电子设备 | |
CN108809854A (zh) | 一种用于大流量网络处理的可重构芯片架构 | |
CN106648467A (zh) | 一种日志生成方法及系统 | |
CN105611000B (zh) | 一种域名服务器的dns域名快速检索方法 | |
CN101087210A (zh) | 高性能的Syslog日志处理和存储方法 | |
CN106790762A (zh) | 域名解析方法和装置 | |
JP7105982B2 (ja) | 構造化レコード取得 | |
Deri et al. | 10 Gbit line rate packet-to-disk using n2disk | |
CN102750300B (zh) | 一种支持多粒度查询的高性能非结构化数据存取方法 | |
CN108600405A (zh) | 一种加速dns解析软件日志记录的方法和系统 | |
CN109344138A (zh) | 一种日志解析方法及系统 | |
CN109271437A (zh) | 一种海量房租信息的实时查询方法 | |
CN106970939A (zh) | 一种数据库审计方法及其系统 | |
CN109413131A (zh) | 一种日志解析的方法及装置 | |
CN108345648A (zh) | 一种基于列式存储的获取日志信息的方法及装置 | |
CN103220379A (zh) | 一种域名反向解析方法和装置 | |
CN105530327B (zh) | 一种dns关键信息处理方法和系统 | |
US9129001B2 (en) | Character data compression for reducing storage requirements in a database system | |
WO2001039012A2 (en) | Efficient web server log processing | |
US20160248885A1 (en) | Method and System for Configuring Web Cache Memory and for Processing Requests |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180928 |
|
RJ01 | Rejection of invention patent application after publication |