一次性付费进群,长期免费索取教程,没有付费教程。
进微信群回复公众号:微信群;QQ群:460500587
教程列表 见微信公众号底部菜单 | 本文底部有推荐书籍微信公众号:计算机与网络安全
ID:Computer-network
域名解析就是将域名转化为对应的IP地址,该工作由DNS服务器完成。
1、DNS资源记录
在DNS服务器上,一个域名及其下级域名组成一个区域。相关的DNS信息构成一个数据库文件。所以每个区域数据库文件都是由资源记录构成的,一个资源记录就是一行文本,提供了一组有用的DNS配置信息。常见的资源记录类型如表1所示。
表1 资源记录类型及内容
2、实施DNS查询请求
用户通过浏览器访问网站,一般情况下在浏览器中输入网站的域名,浏览器向DNS服务器发送DNS请求,请求域名对应的IP地址。DNS服务器查询到IP地址以后,将IP地址返回给浏览器,浏览器通过该IP地址访问网站。上述这些操作都是浏览器自动完成的。在请求IP地址过程中,可能会返回多个对应的IP地址,或者可以通过多个域名服务器进行解析。这些信息用户都不可能知晓。为了了解这些信息,可以使用netwox工具中编号为102的模块,实施DNS查询请求,并得到对应的信息。
已知一个DNS查询服务器的IP地址为192.168.59.2,通过该DNS服务器查询域名baidu.com的IP地址信息。执行命令如下:
root@daxueba:~# netwox 102 -i 192.168.59.2 -n baidu.com -y a
其中,-y选项用来指定DNS资源类型,这里要根据域名查询IP地址,指定资源类型为a。执行命令后,将会发送DNS请求。若DNS服务器存在,将会返回对应的DNS响应信息,显示查询的IP地址。
1)发送的DNS请求信息如下:
DNS_question______________________________________________________.
| id=49550 rcode=OK opcode=QUERY
| aa=0 tr=0 rd=0 ra=0 quest=1 answer=0 auth=0 add=0
| baidu.com. A
|_____________________________________________________________
以上输出信息中的第1行表示,该部分的信息是DNS请求信息。在最后一行中,baidu.com表示进行查询的域名;A表示DNS查询所使用的类型域,获取域名对应的IPv4地址。
2)返回的DNS响应信息,如下:
DNS_answer____________________________________________________.
| id=49550 rcode=OK opcode=QUERY
| aa=0 tr=0 rd=1 ra=1 quest=1 answer=2 auth=5 add=5
| baidu.com. A
| baidu.com. A 5 123.125.115.110 | #域名及对应的IP地址
| baidu.com. A 5 220.181.57.216 | #域名及对应的IP地址
| baidu.com. NS 5 ns2.baidu.com. | #解析域名的权威名称服务器
| baidu.com. NS 5 ns7.baidu.com. | #解析域名的权威名称服务器
| baidu.com. NS 5 ns3.baidu.com. | #解析域名的权威名称服务器
| baidu.com. NS 5 dns.baidu.com. | #解析域名的权威名称服务器
| baidu.com. NS 5 ns4.baidu.com. | #解析域名的权威名称服务器
| dns.baidu.com. A 5 202.108.22.220 | #权威名称服务器的IP地址
| ns2.baidu.com. A 5 61.135.165.235 | #权威名称服务器的IP地址
| ns3.baidu.com. A 5 220.181.37.10 | #权威名称服务器的IP地址
| ns4.baidu.com. A 5 220.181.38.10 | #权威名称服务器的IP地址
| ns7.baidu.com. A 5 180.76.76.92 | #权威名称服务器的IP地址
|_____________________________________________
以上输出信息中的第1行表示,该部分的信息是DNS响应信息。下面信息为报文信息,含义如下:
rd=1:表示期待递归。
ra=1:表示服务器支持递归查询。
quest=1:表示当前有一个请求。
answer=2:表示查询的域名对应的IP地址有两个结果。
auth=5:表示查询到有5个权威名称,服务器可以解析该域名。
add=5:表示权威名称,服务器对应的IP地址信息。
从下面的输出信息可以看出,域名baidu.com有两个对应的IP地址123.125.115.110和220.181.57.216;该域名有5个权威名称服务器,如ns2.baidu.com,其对应的IP地址为61.135.165.235。
3)为了验证成功进行了DNS查询请求,并得到了对应的IP地址信息,可以通过抓包查看,如图1所示。图中第4个数据包为实施域名请求的DNS查询数据包,源地址为192.168.59.133,是当前主机的真实IP地址。第5个数据包为对应的响应包。
图1 实施域名请求
3、域名解析流程
域名解析就是查询域名对应的IP地址,域名解析流程如图2所示。
图2 域名解析流程
图2中分8个步骤介绍了域名解析的流程,每个步骤如下:
1)客户端通过浏览器访问域名为www.baidu.com的网站,发起查询该域名的IP地址的DNS请求。该请求发送到了本地DNS服务器上。本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。如果没有,本地DNS服务器还要向DNS根服务器进行查询。
2)本地DNS服务器向根服务器发送DNS请求,请求域名为www.baidu.com的IP地址。
3)根服务器经过查询,没有记录该域名及IP地址的对应关系。但是会告诉本地DNS服务器,可以到域名服务器上继续查询,并给出域名服务器的地址(.com服务器)。
4)本地DNS服务器向.com服务器发送DNS请求,请求域名www.baidu.com的IP地址。
5).com服务器收到请求后,不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,该域名可以在baidu.com域名服务器上进行解析获取IP地址,并告诉baidu.com域名服务器的地址。
6)本地DNS服务器向baidu.com域名服务器发送DNS请求,请求域名www.baidu.com的IP地址。
7)baidu.com服务器收到请求后,在自己的缓存表中发现了该域名和IP地址的对应关系,并将IP地址返回给本地DNS服务器。
8)本地DNS服务器将获取到与域名对应的IP地址返回给客户端,并且将域名和IP地址的对应关系保存在缓存中,以备下次别的用户查询时使用。
4、获取运行BIND的DNS服务器版本
BIND是一种开源的DNS(Domain Name System)服务器软件,包含对域名的查询和响应所需的所有功能。它是互联网上使用最广泛的一种DNS服务器。为了能够获取运行BIND软件的DNS服务器的版本,netwox提供了编号为103的模块来实现。
已知拥有BIND软件的DNS服务器的IP地址为162.248.241.94,获取该服务器的版本信息。执行命令如下:
root@daxueba:~# netwox 162.248.241.94
输出信息如下:
9.10.3-P4-Debian
上述输出信息表示DNS服务器的版本为9.10.3-P4-Debian。
微信公众号:计算机与网络安全
ID:Computer-network
【推荐书籍】