CN107645573B - 一种探测递归域名服务器转发配置的方法 - Google Patents
一种探测递归域名服务器转发配置的方法 Download PDFInfo
- Publication number
- CN107645573B CN107645573B CN201710909297.7A CN201710909297A CN107645573B CN 107645573 B CN107645573 B CN 107645573B CN 201710909297 A CN201710909297 A CN 201710909297A CN 107645573 B CN107645573 B CN 107645573B
- Authority
- CN
- China
- Prior art keywords
- domain name
- name server
- field
- dns
- length
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种探测递归域名服务器转发配置的方法,目的是解决在无法获取递归域名服务器控制权的情况下,用主动探测的方法判断递归域名服务器是否配置了转发域名服务器,并获取转发域名服务器的网络地址。技术方案是向目标递归域名服务器发送DNS请求报文,该报文的DNS部分的查询问题字段标记目标递归域名服务器;在二级权威域名服务器上捕获DNS请求报文,通过解析和分析DNS请求报文中IP首部的源地址字段和DNS部分的查询问题字段判断出目标递归域名服务器是否配置了转发域名服务器。采用本发明可判断目标递归域名服务器是否配置了转发域名服务器,若目标递归域名服务器设置了转发域名服务器则可获取转发域名服务器的IP地址。
Description
技术领域
本发明属于域名服务器配置探测领域,具体涉及一种针对递归域名服务器的转发配置进行探测的方法。
背景技术
DNS(DomainName System,域名系统)主要用于处理域名和网络地址之间的关联映射,是互联网上关键的基础设施。域名系统如图1所示,由客户机、递归域名服务器、权威域名服务器组成。客户机上有DNS客户端和用户程序,DNS客户端与递归域名服务器相连(一般会通过多跳路由器与递归域名服务器相连,第一跳路由器一般为客户机网关路由器),向递归域名服务器发送递归域名解析请求,并从递归域名服务器接收递归域名解析结果。递归域名服务器与DNS客户端和权威域名服务器相连,递归域名服务器负责接收DNS客户端对任意域名的递归域名解析请求,若递归域名服务器在本地缓存中查询到待解析域名的映射信息,则递归域名服务器向DNS客户端返回递归域名解析响应;若递归域名服务器在本地缓存中未查询到待解析域名的映射信息,则递归域名服务器向权威域名服务器发送迭代域名解析请求,并从权威域名服务器返回的迭代域名解析响应获得待解析域名的映射信息,最后递归域名服务器根据获得的待解析域名的映射信息向DNS客户端返回递归域名解析响应。权威域名服务器是针对DNS某一区域提供名称解析服务而专门配置、建立的域名服务器,每个域名的权威信息都能在至少一台权威域名服务器上找到。权威域名服务器之间通过一个倒置的树形结构建起一套全球统一的层次化分级授权的命名体系,从上至下分别为根权威域名服务器、顶级权威域名服务器、二级及以下权威域名服务器。一次完整的域名查询过程中需要DNS客户端、递归域名服务器、权威域名服务器共同协作,其典型过程为:
第一步,DNS客户端本地缓存解析:
当客户机的某个用户程序需要某域名的映射信息时,DNS客户端首先在本地缓存中查询待解析域名的映射信息,若DNS客户端在本地缓存中找到待解析域名的映射信息,则DNS客户端得到域名解析的结果,转第四步;若DNS客户端在本地缓存中未找到待解析域名的映射信息,则DNS客户端向递归域名服务器发送针对待解析域名的递归域名解析请求(内含待解析域名、递归域名服务器地址、DNS客户端地址、期待递归解析位,期待递归解析位为1),转第二步。
第二步,递归域名服务器本地缓存解析:
递归域名服务器从DNS客户端收到针对待解析域名的递归域名解析请求后,首先在本地缓存中查询待解析域名的映射信息。若递归域名服务器在本地缓存中找到待解析域名的映射信息(递归域名服务器之前收到过针对待解析域名的域名解析请求,并从其他域名服务器处获得了待解析域名的映射信息,已获得的待解析域名的映射信息被保存在递归域名服务器缓存中,因此当递归域名服务器再次收到针对待解析域名的域名解析请求时,可以直接利用保存在递归域名服务器缓存中的域名映射信息),递归域名服务器向DNS客户端返回包含待解析域名的映射信息的递归域名解析响应,则DNS客户端得到域名解析的结果,转第四步;若递归域名服务器在本地缓存中未找到待解析域名的映射信息(递归域名服务器之前未收到过针对待解析域名的域名解析请求),转第三步。
第三步,递归域名服务器递归解析:
根据递归域名服务器的转发配置情况,递归域名服务器通过根提示查询或转发查询和其他的域名服务器进行交互。若递归域名服务器未配置转发域名服务器(如图1所示),则转3.1;若递归域名服务器配置了转发域名服务器(如图2所示),则转3.2。
3.1递归域名服务器进行根提示查询:
递归域名服务器的根提示查询是默认开启的。根提示查询主要指递归域名服务器逐级向根权威域名服务器、顶级权威域名服务器、二级及以下权威域名服务器直接发起迭代查询的过程,方法是:
3.1.1递归域名服务器向根权威域名服务器发送包含待解析域名的第一迭代域名解析请求(内含待解析域名、根权威域名服务器地址、递归域名服务器地址、期待递归解析位,期待递归解析位为0),根权威域名服务器收到迭代域名解析请求后,判断待解析域名是由哪个顶级权威域名服务器授权管理,向递归域名服务器返回包含顶级权威域名服务器的地址的第一迭代域名解析响应。
3.1.2递归域名服务器从接收到的第一迭代域名解析响应中获得顶级权威域名服务器的地址,向顶级权威域名服务器发送第二迭代域名解析请求(内含待解析域名、顶级权威域名服务器地址、递归域名服务器地址、期待递归解析位,期待递归解析位为0),顶级权威域名服务器收到迭代域名解析请求后,判断待解析域名是由哪个二级权威域名服务器授权管理,向递归域名服务器返回包含二级权威域名服务器地址的第二迭代域名解析响应。
3.1.3递归域名服务器从接收到的第二迭代域名解析响应中获得二级权威域名服务器的地址,向二级权威域名服务器发送第三迭代域名解析请求(内含待解析域名、二级权威域名服务器地址、递归域名服务器地址、期待递归解析位,期待递归解析位为0),二级权威域名服务器收到迭代域名解析请求后,查找自身区域配置文件获取待解析域名的映射信息,向递归域名服务器返回包含待解析域名的映射信息的第三迭代域名解析响应。
3.1.4递归域名服务器从接收到的第三迭代域名解析响应中获得待解析域名的映射信息将待解析域名的映射信息保存在递归域名服务器的缓存中,向DNS客户端返回包含待解析域名的映射信息的递归域名解析响应,转第四步。
3.2递归域名服务器进行转发查询:
递归域名服务器的转发查询需要递归域名服务器管理员手动开启,即递归域名服务器管理员在服务器配置数据中指定转发域名服务器的网络地址。转发域名服务器也是一个递归域名服务器,它接收来自其他递归域名服务器的递归域名解析请求并向发来请求的递归域名服务器返回递归域名解析响应。转发查询主要指递归域名服务器在收到递归域名解析请求后若本地缓存解析失败,则递归域名服务器优先向转发域名服务器发送递归域名解析请求。转发域名服务器先进行本地缓存解析,若本地缓存解析失败再根据转发配置情况通过根提示查询或转发查询与其他的域名服务器进行交互。方法是:
3.2.1递归域名服务器向转发域名服务器发送包含待解析域名的递归域名解析请求(内含待解析域名、转发域名服务器地址、递归域名服务器地址、期待递归解析位,期待递归解析位为1)。
3.2.2转发域名服务器从递归域名服务器收到针对待解析域名的递归域名解析请求后,首先在本地缓存中查询待解析域名的映射信息。若转发域名服务器在本地缓存中找到待解析域名的映射信息,转发域名服务器向递归域名服务器返回包含待解析域名的映射信息的递归域名解析响应,转3.2.4;若转发域名服务器在本地缓存中未找到待解析域名的映射信息,转第3.2.3。
3.2.3转发域名服务器使用根提示查询过程和其他域名服务器交互,从接收到的递归域名解析响应中获得待解析域名的映射信息(待解析域名的映射信息将被保存在转发域名服务器的缓存中)。最后转发域名服务器向递归域名服务器返回包含待解析域名的映射信息的转发域名解析响应。
3.2.4递归域名服务器从接收到的递归域名解析响应中获得待解析域名的映射信息(待解析域名的映射信息将被保存在递归域名服务器的缓存中),并向DNS客户端返回包含待解析域名的映射信息的递归域名解析响应,转第四步。
第四步,域名解析结束。
随着互联网规模的扩大,DNS系统安全正面临着前所未有的挑战。中国互联网信息中心的报告指出:我国递归域名服务器大约有十万余台,递归域名服务器作为和终端用户直接交互的域名服务器,它的服务状况和安全配置情况对于终端用户所获取到的域名解析数据的完整性、正确性和及时性有着直接的影响,在国家网络安全管理和应急安全处置中发挥着重要作用。目前,针对递归域名服务器的配置探测并未涉及到针对递归域名服务器转发配置的探测。
本发明提出的针对递归域名服务器转发配置的探测方法填补了递归域名服务器转发配置探测领域的空白,对于更加全面掌握域名系统的体系结构、重点节点和路径等方面具有重要意义。
目前尚未有针对递归域名服务器的转发配置的探测方法的公开报道。
发明内容
本发明要解决的技术问题在于:在无法获取递归域名服务器控制权的情况下,用主动探测的方法判断递归域名服务器是否配置了转发域名服务器,并获取转发域名服务器的网络地址。
为解决上述技术问题,本发明的技术方案为:向目标递归域名服务器发送DNS请求报文(在该报文中利用DNS部分的查询问题字段标记目标递归域名服务器);在二级权威域名服务器上捕获DNS请求报文,通过解析和分析DNS请求报文中的关键字段(IP首部的源地址字段和DNS部分的查询问题字段)即可判断出目标递归域名服务器是否配置了转发域名服务器。
本发明具体步骤如下:
第一步,准备环境。
1.1注册一个域名,如test.info。
1.2搭建test.info的权威域名服务器,方法是:
1.2.1租用一台具有公网IP地址的服务器。
1.2.2在这台具有公网IP地址的服务器上安装域名服务软件。
1.2.3在这台具有公网IP地址且已安装域名服务软件的服务器上添加一个名称为“test.info”的区域,并配置域名服务软件监听这台具有公网IP地址的服务器的53号端口。此时,这台具有公网IP地址的服务器的域名服务软件将通过53号端口对外提供针对域名test.info及其子域名的域名解析服务,成为test.info的权威域名服务器。
1.2.4将test.info的权威域名服务器向上级管理机构注册,使之加入到层次化的权威域名服务器体系中。
1.3程序部署:
1.3.1发送程序部署:将发送程序部署在客户机,发送程序的功能是向目标递归域名服务器发送递归域名解析请求。
1.3.2捕获程序部署:将捕获程序部署在test.info的权威域名服务器上,捕获程序的功能是捕获到达test.info的权威域名服务器的网络报文。
1.3.3分析程序部署:将分析程序部署在test.info的权威域名服务器上,分析程序的功能是解析捕获程序获得的网络报文,并推断目标递归域名服务器是否配置了转发域名服务器。
第二步,制定标记生成规则和标记解析规则,方法是:
2.1制定标记生成规则:
标记生成规则是将目标递归域名服务器的网络地址转换成标记字符串的规则。内容是:将目标递归域名服务器网络地址用字符串ip_recur表示、将发送程序向目标递归域名服务器发送DNS请求报文的次序用字符串sequence表示,则标记字符串prefix就是将ip_recur和sequence之间使用点隔开后拼成的新的字符串。如,目标递归域名服务器的地址为“223.6.6.6”(即ip_recur为“223.6.6.6”),发送程序第1次向该目标递归域名服务器发送DNS请求报文(即sequence为“1”),则生成的prefix为“223.6.6.6.1”。
2.2制定标记解析规则:
标记解析规则是从标记字符串中获得目标递归域名服务器的网络地址的规则。内容是:使用“.”分割标记字符串prefix后得到新的字符串列表,将该列表中前四个元素重新用点隔开并拼成新的字符串即为目标递归域名服务器的网络地址ip_recur。如,prefix为“223.6.6.6.1”时,使用“.”分割后得到的新的字符串列表为[“223”,“6”,“6”,“6”,“1”],利用前四个元素可拼接出ip_recur为“223.6.6.6”。
第三步,发送程序构造DNS请求报文并向目标递归域名服务器发送DNS请求报文。
3.1发送程序构造DNS请求报文,方法是:
3.1.1根据标记生成规则,将目标递归域名服务器的地址和发送程序向目标递归域名服务器发送DNS请求报文的次序组合成标记字符串prefix。
3.1.2填充DNS请求报文(DNS请求报文包含四部分,分别为Ethernet首部、IP首部、UDP首部和DNS部分),方法是:
3.1.2.1Ethernet首部的源地址字段表示发送设备的MAC地址,长度为6字节,填充为DNS请求报文发送端的MAC地址;目的地址字段表示接收设备的网卡地址,长度为6字节,填充为DNS请求报文发送端网关路由器的MAC地址;协议类型字段表示高层协议的类型,长度为2字节,填充为IP协议类型。
3.1.2.2IP首部的版本字段表示IP协议的版本号,长度为4比特位,填充为IPv4的版本号;首部长度字段表示IP首部的长度,长度为4比特位,计量单位是4字节,由于本发明构造的DNS请求报文的IP首部长度固定为20字节因此填充为5;服务类型字段表示IP服务的特殊要求,长度为1字节,第1-3位表示优先级、第4位表示时延、第5位表示吞吐量、第6位表示可靠性、第7位表示传输成本、第8位为预留位,由于本发明构造的DNS请求报文对于IP服务无特殊要求,因此服务类型字段填充为全0;总长度字段填充为IP首部、UDP首部和DNS部分的总长度,长度为2字节,计量单位是1字节,由于IP首部长度固定为20字节、UDP首部长度固定为8字节,而DNS部分的长度不定(DNS部分的查询问题字段不定长,其他字段均定长),因此IP首部总长度字段的值由具体的DNS请求报文决定,填充为具体的DNS请求报文的IP首部、UDP首部和DNS部分的总长度;标识字段表示当IP报文较大需要对其进行分段时,所有拆开的IP分段报文含有相同的标识值,长度为2字节,由于本发明构造的DNS请求报文无需分段,因此标识字段填充为全0;标志字段表示IP分段报文的标志,长度为3比特位,由于本发明构造的DNS请求报文无需分段因此标志字段填充为全0;片偏移字段表示IP分段报文在原IP报文中的偏移值,长度为13比特位,由于本发明构造的DNS请求报文无需分段因此片偏移字段填充为全0;生存时间字段表示IP报文在网络中所能经过路由器的最大数目,每经过一跳路由时值减1,直至为0时报文将被路由器丢弃,长度为1字节,填充为64;协议类型字段表示高层协议的类型,长度为1字节,填充为UDP协议类型;首部校验和字段填充IP首部正确性检测的值,长度为2字节;源地址字段表示发送设备的IP地址,长度为4字节,填充为DNS请求报文发送端的IP地址的IP地址;目的地址字段表示目的设备的IP地址,长度为4字节,填充为DNS请求报文接收端的IP地址。
3.1.2.3UDP首部的源端口字段表示DNS请求报文的发送端口,长度为2字节,因为0到1024号端口一般是操作系统或常用的软件服务使用,因此填充为1024到65535之间任意数值;目的端口字段表示DNS请求报文的目的端口,长度为2字节,因为目标递归域名服务器的域名服务软件一般通过53号端口对外提供域名解析服务,因此填充为53;总长度字段填充UDP首部及DNS部分的总长度,长度为2字节,计量单位是1字节,由于UDP首部长度固定为8字节,而DNS部分的长度不定(DNS部分的查询问题字段不定长,其他字段均定长),因此UDP首部总长度字段的值由具体的DNS请求报文决定,填充为具体的DNS请求报文的UDP首部及DNS部分的总长度;校验和字段填充UDP首部及DNS部分正确性检测的值,长度为2字节。
3.1.2.4DNS部分的事务标识字段表示DNS事务的识别号,长度为2字节,填充为任意值;标志字段表示DNS报文的标志位,长度为2字节,第1位表示该DNS事务是请求还是响应,因此填充为1,第2-5位表示DNS事务的类型,由于构造的DNS请求是标准类型因此填充为全0,第6位表示响应被服务器验证,填充为0,第7位表示递归解析可用,填充为0,第8位表示DNS报文被截断,填充为0,第9位表示期待递归解析,由于构造的DNS请求报文是递归域名解析请求报文因此填充为1,第10-12是预留位,填充为全0,第13-16位是返回状态位,填充为全0;问题数目字段表示查询问题的数目,长度为2字节,由于构造的DNS请求报文含一个查询问题因此填充为1;回答资源数据字段表示回答资源数目,长度为2字节,填充为0;权威资源数目字段表示权威资源数目,长度为2字节,填充为0;附加资源数目字段表示附加资源数目,长度为2字节,本发明构造的DNS请求报文不含附加资源因此填充为0;查询问题字段表示待解析的域名,填充为3.1.1生成的标记字符串prefix和域名test.info的组合“prefix.test.info”(将prefix和test.info的组合称为子域名);查询类型字段表示待解析域名的资源记录的类型,长度为2字节,填充为A记录类型,A(Address的缩写)记录类型是将IP地址和域名进行映射的资源记录类型;查询类字段表示网络类型,长度为2字节,由于网络类型为Internet因此填充为1。
3.2发送程序将N个针对待解析的域名test.info的DNS请求报文发送给目标递归域名服务器。N为正整数且N≥3。
为了有效探测目标递归域名服务器,发送程序将向目标递归域名服务器发送多个DNS请求报文。根据标记生成规则和DNS请求报填充方法,每个DNS请求报文的查询问题字段“prefix.test.info”都不相同。因此,发送程序向目标递归域名服务器发送的多个DNS请求报文都是针对不同子域名prefix.test.info的域名解析请求报文。故,目标递归域名服务器在收到子域名解析请求后无法在目标递归域名服务器的缓存中找到子域名的映射信息,根据目标递归域名服务器是否配置了转发服务器,目标递归域名服务器将通过根提示查询或转发查询最终和test.info的权威域名服务器进行交互,因此test.info的权威域名服务器将接收到从目标递归域名服务器发送的DNS请求报文,若配置了转发服务器,则也将接收到从转发域名服务器发送的DNS请求报文。
第四步,test.info的权威域名服务器上的捕获程序捕获和筛选报文。
4.1捕获程序获取网卡接收到的所有数据报文。
4.2捕获程序从接收的数据报文中筛选出UDP首部目的端口号为53的数据报文,得到DNS请求报文。
4.3捕获程序从DNS请求报文中筛选出DNS部分的查询问题为形如“prefix.test.info”的子域名的DNS请求报文,得到子域名请求报文。
第五步,test.info的权威域名服务器上的分析程序判断目标递归域名服务器是否配置了转发域名服务器。
5.1分析程序解析子域名请求报文
5.1.1解析子域名请求报文在IP首部的源地址字段,从IP首部的源地址字段获取子域名请求报文发送端的IP地址ip_sender。
5.1.2解析子域名请求报文在DNS部分的查询问题字段,获取标记字符串prefix。
5.1.3根据标记字符串prefix解析规则,从prefix中解析出目标递归域名服务器的网络地址ip_recur。
5.2分析程序进行转发推断:
5.2.1如果ip_recur和ip_sender相同,说明子域名请求报文来自目标递归域名服务器,即目标递归域名服务器未配置转发服务器。
5.2.2如果ip_recur和ip_sender不相同,说明子域名请求报文来自转发域名服务器,即目标递归域名服务器配置了转发域名服务器,且ip_sender是转发域名服务器的网络地址。
采用本发明可以达到以下技术效果:可判断目标递归域名服务器是否配置了转发域名服务器,若目标递归域名服务器设置了转发域名服务器则可获取其IP地址。
本发明提出了针对递归域名服务器的转发配置进行主动探测的方法,可作为递归域名服务器配置探测中的重要方法,填补递归域名服务器转发配置探测领域的空白。
附图说明
图1为背景技术所述的不带转发域名服务器的域名系统的逻辑结构图。
图2为背景技术所述的带转发域名服务器的域名系统的逻辑结构图。
图3为本发明第一步准备的环境逻辑结构图。
图4为本发明总体流程图。
图5为本发明DNS请求报文格式。
具体实施方式
图4为本发明总体流程图。如图4所示,本发明包括以下步骤:
第一步,准备一个如图3所示的环境。
1.1注册一个域名,如test.info。
1.2搭建test.info的权威域名服务器,方法是:
1.2.1租用一台具有公网IP地址的服务器,如选择操作系统为Ubuntu的阿里云服务器。
1.2.2在这台具有公网IP地址的服务器上安装域名服务软件,如在Ubuntu阿里云服务器上安装BIND(Berkeley Internet Name Domain)域名服务软件,BIND是美国伯克利大学分发和维护的一款开源域名服务软件,是目前互联网上最广泛使用的域名服务软件。
1.2.3在这台具有公网IP地址且已安装域名服务软件的服务器上添加一个名称为“test.info”的区域,并配置域名服务软件监听这台具有公网IP地址的服务器的53号端口。此时,这台具有公网IP地址的服务器的域名服务软件将通过53号端口对外提供针对域名test.info及其子域名的域名解析服务,成为test.info的权威域名服务器。
1.2.4将test.info的权威域名服务器向上级管理机构注册,使之加入到层次化的权威域名服务器体系中。
1.3程序部署:
1.3.1发送程序部署:将发送程序部署在客户机,发送程序的功能是向目标递归域名服务器发送递归域名解析请求。
1.3.2捕获程序部署:将捕获程序部署在test.info的权威域名服务器上,捕获程序的功能是捕获到达test.info的权威域名服务器的网络报文。
1.3.3分析程序部署:将分析程序部署在test.info的权威域名服务器上,分析程序的功能是解析捕获程序获得的网络报文,并推断目标递归域名服务器是否配置了转发域名服务器。
第二步,制定标记生成规则和标记解析规则,方法是:
2.1制定标记生成规则:
标记生成规则是将目标递归域名服务器的网络地址转换成标记字符串的规则。内容是:将目标递归域名服务器网络地址用字符串ip_recur表示、将发送程序向目标递归域名服务器发送DNS请求报文的次序用字符串sequence表示,则标记字符串prefix就是将ip_recur和sequence之间使用点隔开后拼成的新的字符串。
2.2制定标记解析规则
标记解析规则是从标记字符串中获得目标递归域名服务器的网络地址的规则。内容是:使用“.”分割标记字符串prefix后得到新的字符串列表,将该列表中前四个元素重新用点隔开并拼成新的字符串即为目标递归域名服务器的网络地址ip_recur。
第三步,发送程序构造DNS请求报文并向目标递归域名服务器发送DNS请求报文。
3.1发送程序构造DNS请求报文,方法是:
3.1.1根据标记生成规则,将目标递归域名服务器的地址和发送程序向目标递归域名服务器发送DNS请求报文的次序组合成标记字符串prefix。
3.1.2填充DNS请求报文(DNS请求报文的格式如图5所示,包含四部分,分别为Ethernet首部、IP首部、UDP首部和DNS部分),方法是:
3.1.2.1Ethernet首部的源地址字段表示发送设备的MAC地址,长度为6字节,填充为DNS请求报文发送端的MAC地址;目的地址字段表示接收设备的网卡地址,长度为6字节,填充为DNS请求报文发送端网关路由器的MAC地址;协议类型字段表示高层协议的类型,长度为2字节,填充为IP协议类型。
3.1.2.2IP首部的版本字段表示IP协议的版本号,长度为4比特位,填充为IPv4的版本号;首部长度字段表示IP首部的长度,长度为4比特位,计量单位是4字节,填充为5;服务类型字段表示IP服务的特殊要求,长度为1字节,第1-3位表示优先级、第4位表示时延、第5位表示吞吐量、第6位表示可靠性、第7位表示传输成本、第8位为预留位,服务类型字段填充为全0;总长度字段填充为IP首部、UDP首部和DNS部分的总长度,长度为2字节,计量单位是1字节,IP首部总长度字段的值由具体的DNS请求报文决定,填充为具体的DNS请求报文的IP首部、UDP首部和DNS部分的总长度;标识字段表示当IP报文较大需要对其进行分段时,所有拆开的IP分段报文含有相同的标识值,长度为2字节,标识字段填充为全0;标志字段表示IP分段报文的标志,长度为3比特位,标志字段填充为全0;片偏移字段表示IP分段报文在原IP报文中的偏移值,长度为13比特位,片偏移字段填充为全0;生存时间字段表示IP报文在网络中所能经过路由器的最大数目,每经过一跳路由时值减1,直至为0时报文将被路由器丢弃,长度为1字节,填充为64;协议类型字段表示高层协议的类型,长度为1字节,填充为UDP协议类型;首部校验和字段填充IP首部正确性检测的值,长度为2字节;源地址字段表示发送设备的IP地址,长度为4字节,填充为DNS请求报文发送端的IP地址;目的地址字段表示目的设备的IP地址,长度为4字节,填充为DNS请求报文接收端的IP地址。
3.1.2.3UDP首部的源端口字段表示DNS请求报文的发送端口,长度为2字节,填充为1024到65535之间任意数值;目的端口字段表示DNS请求报文的目的端口,长度为2字节,填充为53;总长度字段填充UDP首部及DNS部分的总长度,长度为2字节,计量单位是1字节,UDP首部总长度字段的值由具体的DNS请求报文决定,填充为具体的DNS请求报文的UDP首部及DNS部分的总长度;校验和字段填充UDP首部及DNS部分正确性检测的值,长度为2字节。
3.1.2.4DNS部分的事务标识字段表示DNS事务的识别号,长度为2字节,填充为任意值;标志字段表示DNS报文的标志位,长度为2字节,第1位表示该DNS事务是请求还是响应,填充为1,第2-5位表示DNS事务的类型,填充为全0,第6位表示响应被服务器验证,填充为0,第7位表示递归解析可用,填充为0,第8位表示DNS报文被截断,填充为0,第9位表示期待递归解析,填充为1,第10-12是预留位,填充为全0,第13-16位是返回状态位,填充为全0;问题数目字段表示查询问题的数目,长度为2字节,填充为1;回答资源数据字段表示回答资源数目,长度为2字节,填充为0;权威资源数目字段表示权威资源数目,长度为2字节,填充为0;附加资源数目字段表示附加资源数目,长度为2字节,填充为0;查询问题字段表示待解析的域名,填充为3.1.1生成的标记字符串prefix和域名test.info的组合“prefix.test.info”(将prefix和test.info的组合称为子域名);查询类型字段表示待解析域名的资源记录的类型,长度为2字节,填充为A记录类型;查询类字段表示网络类型,长度为2字节,由于网络类型为Internet因此填充为1。
3.2发送程序将N个针对待解析的域名test.info的DNS请求报文发送给目标递归域名服务器,每个DNS请求报文的查询问题字段“prefix.test.info”都不相同,N为正整数且N≥3;
第四步,test.info的权威域名服务器上的捕获程序捕获和筛选报文。
4.1捕获程序获取网卡接收到的所有数据报文。
4.2捕获程序从接收的数据报文中筛选出UDP首部目的端口号为53的数据报文,得到DNS请求报文。
4.3捕获程序从DNS请求报文中筛选出DNS部分的查询问题为形如“prefix.test.info”的子域名的DNS请求报文,得到子域名请求报文。
第五步,test.info的权威域名服务器上的分析程序判断目标递归域名服务器是否配置了转发域名服务器。
5.1分析程序解析子域名请求报文
5.1.1解析子域名请求报文在IP首部的源地址字段,从IP首部的源地址字段获取子域名请求报文发送端的IP地址ip_sender。
5.1.2解析子域名请求报文在DNS部分的查询问题字段,获取标记字符串prefix。
5.1.3根据标记字符串prefix解析规则,从prefix中解析出目标递归域名服务器的网络地址ip_recur。
5.2分析程序进行转发推断:
5.2.1如果ip_recur和ip_sender相同,说明子域名请求报文来自目标递归域名服务器,即目标递归域名服务器未配置转发服务器。
5.2.2如果ip_recur和ip_sender不相同,说明子域名请求报文来自转发域名服务器,即目标递归域名服务器配置了转发域名服务器,且ip_sender是转发域名服务器的网络地址。
Claims (5)
1.一种探测递归域名服务器转发配置的方法,其特征在于包括以下步骤:
第一步,准备环境:
1.1注册一个域名,令此域名为test.info;
1.2搭建test.info的权威域名服务器;
1.3程序部署:
1.3.1发送程序部署:将发送程序部署在客户机,发送程序的功能是向目标递归域名服务器发送递归域名解析请求;
1.3.2捕获程序部署:将捕获程序部署在test.info的权威域名服务器上,捕获程序的功能是捕获到达test.info的权威域名服务器的网络报文;
1.3.3分析程序部署:将分析程序部署在test.info的权威域名服务器上,分析程序的功能是解析捕获程序获得的网络报文,并推断目标递归域名服务器是否配置了转发域名服务器;
第二步,制定标记生成规则和标记解析规则,方法是:
2.1制定标记生成规则:
标记生成规则是将目标递归域名服务器的网络地址转换成标记字符串的规则,内容是:将目标递归域名服务器网络地址用字符串ip_recur表示、将发送程序向目标递归域名服务器发送DNS请求报文的次序用字符串sequence表示,则标记字符串prefix就是将ip_recur和sequence之间使用点隔开后拼成的新的字符串;
2.2制定标记解析规则:
标记解析规则是从标记字符串中获得目标递归域名服务器的网络地址的规则,内容是:使用“.”分割标记字符串prefix后得到新的字符串列表,将该列表中前四个元素重新用点隔开并拼成新的字符串即为目标递归域名服务器的网络地址ip_recur;
第三步,发送程序构造DNS请求报文并向目标递归域名服务器发送DNS请求报文,方法是:
3.1发送程序构造DNS请求报文,方法是:
3.1.1根据标记生成规则,将目标递归域名服务器的地址和发送程序向目标递归域名服务器发送DNS请求报文的次序组合成标记字符串prefix;
3.1.2填充DNS请求报文,DNS请求报文由Ethernet首部、IP首部、UDP首部和DNS部分组成,IP首部的源地址字段表示发送设备的IP地址,长度为4字节,填充为DNS请求报文发送端的IP地址,UDP首部的目的端口字段表示DNS请求报文的目的端口,长度为2字节,填充为53;DNS部分的查询问题字段表示待解析的域名,填充为标记字符串prefix和域名test.info的组合“prefix.test.info”,prefix和test.info的组合也称为子域名;
3.2发送程序将N个针对待解析的域名test.info的DNS请求报文发送给目标递归域名服务器,每个DNS请求报文的查询问题字段“prefix.test.info”都不相同,N为正整数且N≥3;
第四步,test.info的权威域名服务器上的捕获程序捕获和筛选报文:
4.1捕获程序获取网卡接收到的所有数据报文;
4.2捕获程序从接收的数据报文中筛选出UDP首部目的端口号为53的数据报文,得到DNS请求报文;
4.3捕获程序从DNS请求报文中筛选出DNS部分的查询问题为形如“prefix.test.info”的子域名的DNS请求报文,得到子域名请求报文;
第五步,test.info的权威域名服务器上的分析程序判断目标递归域名服务器是否配置了转发域名服务器:
5.1分析程序解析子域名请求报文,方法是:
5.1.1解析子域名请求报文在IP首部的源地址字段,从IP首部的源地址字段获取子域名请求报文发送端的IP地址ip_sender;
5.1.2解析子域名请求报文在DNS部分的查询问题字段,获取标记字符串prefix;
5.1.3根据标记字符串prefix解析规则,从prefix中解析出目标递归域名服务器的网络地址ip_recur;
5.2分析程序进行转发推断:
5.2.1如果ip_recur和ip_sender相同,说明子域名请求报文来自目标递归域名服务器,即目标递归域名服务器未配置转发服务器;
5.2.2如果ip_recur和ip_sender不相同,说明子域名请求报文来自转发域名服务器,即目标递归域名服务器配置了转发域名服务器,且ip_sender是转发域名服务器的网络地址。
2.如权利要求1所述的一种探测递归域名服务器转发配置的方法,其特征在于1.2步所述搭建test.info的权威域名服务器的方法是:
1.2.1租用一台具有公网IP地址的服务器;
1.2.2在这台具有公网IP地址的服务器上安装域名服务软件;
1.2.3在这台具有公网IP地址且已安装域名服务软件的服务器上添加一个名称为“test.info”的区域,并配置域名服务软件监听这台具有公网IP地址的服务器的53号端口,这台具有公网IP地址的服务器的域名服务软件通过53号端口对外提供针对域名test.info及其子域名的域名解析服务,成为test.info的权威域名服务器;
1.2.4将test.info的权威域名服务器向上级管理机构注册,使之加入到层次化的权威域名服务器体系中。
3.如权利要求2所述的一种探测递归域名服务器转发配置的方法,其特征在于1.2.1步所述具有公网IP地址的服务器为操作系统为Ubuntu的阿里云服务器。
4.如权利要求2所述的一种探测递归域名服务器转发配置的方法,其特征在于1.2.2步所述域名服务软件为BIND域名服务软件,即Berkeley Internet Name Domain域名服务软件。
5.如权利要求1所述的一种探测递归域名服务器转发配置的方法,其特征在于3.1.2步所述填充DNS请求报文的Ethernet首部、IP首部、UDP首部和DNS部分的其它字段的具体方法是:
3.1.2.1Ethernet首部的源地址字段表示发送设备的MAC地址,长度为6字节,填充为DNS请求报文发送端的MAC地址;目的地址字段表示接收设备的网卡地址,长度为6字节,填充为DNS请求报文发送端网关路由器的MAC地址;协议类型字段表示高层协议的类型,长度为2字节,填充为IP协议类型;
3.1.2.2IP首部的版本字段表示IP协议的版本号,长度为4比特位,填充为IPv4的版本号;首部长度字段表示IP首部的长度,长度为4比特位,计量单位是4字节,填充为5;服务类型字段表示IP服务的特殊要求,长度为1字节,第1-3位表示优先级、第4位表示时延、第5位表示吞吐量、第6位表示可靠性、第7位表示传输成本,第8位为预留位,服务类型字段填充为全0;总长度字段填充为IP首部、UDP首部和DNS部分的总长度,长度为2字节,计量单位是1字节,IP首部总长度字段填充为具体的DNS请求报文的IP首部、UDP首部和DNS部分的总长度;标识字段表示当IP报文较大需要对其进行分段时,所有拆开的IP分段报文含有相同的标识值,长度为2字节,标识字段填充为全0;标志字段表示IP分段报文的标志,长度为3比特位,标志字段填充为全0;片偏移字段表示IP分段报文在原IP报文中的偏移值,长度为13比特位,片偏移字段填充为全0;生存时间字段表示IP报文在网络中所能经过路由器的最大数目,每经过一跳路由时值减1,直至为0时报文将被路由器丢弃,长度为1字节,填充为64;协议类型字段表示高层协议的类型,长度为1字节,填充为UDP协议类型;首部校验和字段填充IP首部正确性检测的值,长度为2字节;目的地址字段表示目的设备的IP地址,长度为4字节,填充为DNS请求报文接收端的IP地址;
3.1.2.3UDP首部的源端口字段表示DNS请求报文的发送端口,长度为2字节,填充为1024到65535之间任意数值;总长度字段填充UDP首部及DNS部分的总长度,长度为2字节,计量单位是1字节,UDP首部总长度字段填充为具体的DNS请求报文的UDP首部及DNS部分的总长度;校验和字段填充UDP首部及DNS部分正确性检测的值,长度为2字节;
3.1.2.4DNS部分的事务标识字段表示DNS事务的识别号,长度为2字节,填充为任意值;标志字段表示DNS报文的标志位,长度为2字节,第1位表示该DNS事务是请求还是响应,填充为1,第2-5位表示DNS事务的类型,填充为全0,第6位表示响应被服务器验证,填充为0,第7位表示递归解析可用,填充为0,第8位表示DNS报文被截断,填充为0,第9位表示期待递归解析,填充为1,第10-12是预留位,填充为全0,第13-16位是返回状态位,填充为全0;问题数目字段表示查询问题的数目,长度为2字节,填充为1;回答资源数据字段表示回答资源数目,长度为2字节,填充为0;权威资源数目字段表示权威资源数目,长度为2字节,填充为0;附加资源数目字段表示附加资源数目,长度为2字节,填充为0;查询类型字段表示待解析域名的资源记录的类型,长度为2字节,填充为A记录类型,A记录类型是将IP地址和域名进行映射的资源记录类型;查询类字段表示网络类型,长度为2字节,填充为1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710909297.7A CN107645573B (zh) | 2017-09-29 | 2017-09-29 | 一种探测递归域名服务器转发配置的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710909297.7A CN107645573B (zh) | 2017-09-29 | 2017-09-29 | 一种探测递归域名服务器转发配置的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107645573A CN107645573A (zh) | 2018-01-30 |
CN107645573B true CN107645573B (zh) | 2020-07-10 |
Family
ID=61122961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710909297.7A Active CN107645573B (zh) | 2017-09-29 | 2017-09-29 | 一种探测递归域名服务器转发配置的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107645573B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166581B (zh) * | 2019-04-30 | 2022-03-29 | 大唐软件技术股份有限公司 | 一种域名解析服务器访问频次占比获取方法及装置 |
CN110572394B (zh) * | 2019-09-09 | 2020-11-03 | 北京风信科技有限公司 | 访问控制方法及装置 |
CN110912756B (zh) * | 2019-12-13 | 2022-03-08 | 中国人民解放军战略支援部队信息工程大学 | 一种面向ip定位的网络拓扑边界路由ip识别算法 |
CN111343042B (zh) * | 2020-02-05 | 2022-02-22 | 网宿科技股份有限公司 | 一种dns解析的测试方法及测试系统 |
CN112839089B (zh) * | 2021-01-08 | 2023-06-23 | 网宿科技股份有限公司 | 一种cdn质量的探测方法及系统 |
CN113556413B (zh) * | 2021-08-13 | 2023-07-25 | 中国互联网络信息中心 | 一种报文处理方法及装置 |
CN113992626A (zh) * | 2021-10-22 | 2022-01-28 | 浪潮思科网络科技有限公司 | 一种实现dns的方法、设备、存储介质 |
CN115396397B (zh) * | 2022-04-13 | 2023-07-14 | 中国人民解放军国防科技大学 | 基于转发关系确定缓存域名系统服务范围的方法和装置 |
CN115883513B (zh) * | 2022-11-24 | 2024-08-06 | 中国科学院信息工程研究所 | 一种基于dns水印技术的解析器探测方法及其分类方法 |
CN116055449B (zh) * | 2022-12-29 | 2024-07-05 | 天翼云科技有限公司 | 一种dns分组转发方法及装置 |
CN117376038B (zh) * | 2023-12-08 | 2024-08-16 | 中国人民解放军国防科技大学 | 一种域名解析行为嗅探测量方法与装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105162900A (zh) * | 2015-09-25 | 2015-12-16 | 中国互联网络信息中心 | 一种多节点协作的域名解析和缓存方法及系统 |
CN105338128A (zh) * | 2015-09-25 | 2016-02-17 | 互联网域名系统北京市工程研究中心有限公司 | 域名解析方法及域名解析装置 |
CN106302862A (zh) * | 2016-09-28 | 2017-01-04 | 大唐软件技术股份有限公司 | 一种dns递归服务器的收集方法和系统 |
CN106790747A (zh) * | 2016-12-13 | 2017-05-31 | 北京网瑞达科技有限公司 | 一种域名系统dns二次递归解析的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9172713B2 (en) * | 2008-09-24 | 2015-10-27 | Neustar, Inc. | Secure domain name system |
-
2017
- 2017-09-29 CN CN201710909297.7A patent/CN107645573B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105162900A (zh) * | 2015-09-25 | 2015-12-16 | 中国互联网络信息中心 | 一种多节点协作的域名解析和缓存方法及系统 |
CN105338128A (zh) * | 2015-09-25 | 2016-02-17 | 互联网域名系统北京市工程研究中心有限公司 | 域名解析方法及域名解析装置 |
CN106302862A (zh) * | 2016-09-28 | 2017-01-04 | 大唐软件技术股份有限公司 | 一种dns递归服务器的收集方法和系统 |
CN106790747A (zh) * | 2016-12-13 | 2017-05-31 | 北京网瑞达科技有限公司 | 一种域名系统dns二次递归解析的方法 |
Non-Patent Citations (1)
Title |
---|
基于分布式平台的DNS信息探测系统设计与实现;孙瑞;《中国优秀硕士学位论文全文数据库 信息科技辑 2014年》;20140315(第3期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107645573A (zh) | 2018-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107645573B (zh) | 一种探测递归域名服务器转发配置的方法 | |
US7228359B1 (en) | Methods and apparatus for providing domain name service based on a client identifier | |
US6581108B1 (en) | Managing multiple private data networks using network and payload address translation | |
CN1118167C (zh) | 在网络上用域名路由选择发送数据到目的端的系统和方法 | |
Krishnamurthy et al. | On network-aware clustering of web clients | |
US6249813B1 (en) | Automated method of and apparatus for internet address management | |
US6253243B1 (en) | Automated trap control for a distributed network management system | |
Fan et al. | Evaluating anycast in the domain name system | |
CN112714194B (zh) | 一种外网主机访问内网设备的方法和网络拓扑结构 | |
US20030112808A1 (en) | Automatic configuration of IP tunnels | |
US7746860B2 (en) | Testing applications or devices in large networks | |
CN102714663A (zh) | 用于预防dns缓存投毒的方法和系统 | |
CN107707683B (zh) | 一种减小dns报文长度的方法和装置 | |
Luckie et al. | Learning to extract geographic information from internet router hostnames | |
CN110493366A (zh) | 一种接入点加入网络管理的方法及装置 | |
CN105245407A (zh) | 基于套接字的网络嗅探器及其方法 | |
Berger et al. | Internet nameserver IPv4 and IPv6 address relationships | |
CN110798545B (zh) | 一种基于Web的域名数据获取方法 | |
US8001271B1 (en) | Method and apparatus for locating naming discrepancies | |
CN110913036A (zh) | 一种基于权威dns识别终端位置的方法 | |
CN101960827A (zh) | 以太网网络中的网桥端口mac地址发现机制 | |
CN114710560A (zh) | 数据处理方法、系统及代理设备、终端设备 | |
CN107222588A (zh) | 一种提高dns可用性的方法及系统 | |
Koch et al. | Geolocation and verification of IP-addresses with specific focus on IPv6 | |
Gañán et al. | WHOIS sunset? A primer in Registration Data Access Protocol (RDAP) performance. |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |