DNS协议分析

DNS(Domain Name System, 域名系统)

是因特网上作为域名和IP地址相互映射的一个分布式数据库,这个分布式数据库采用树型结构。通过主机名得到对应IP地址的过程叫做域名解析。DNS使用UDP协议,端口号为53。

包含主机名及其所在的域名的完整地址称为FQDN,全域名。例如地址"www.abc.xyz.com",其中,"www"表示服务器的名字(大多数的网站服务器都使用该名称),“abc.xyz.com"表示该主机所属的DNS域的名字。

DNS系统解析过程

DNS协议分析
可以从本地的hosts文件中得到主机名称对应的IP地址,如果hosts文件不能解析该主机名称,则只能通过向客户机所设定的DNS服务器进行查询。上图是DNS解析的过程。

(1)DNS客户机向本地域名服务器发送查询请求,查找域名www.abx.xyz.com的IP地址。本地域名服务器查询本地的缓存,如果有这个地址,则将地址返回给DNS客户机。

(2)如果本地域名服务器缓存没有这个地址,则发送查询请求到根域名服务器,询问www.abx.xyz.com的地址,根域名服务器会将子域com的域名服务器的地址返回给本地域名服务器。

(3)本地域名服务器再向.com域发送查询请求,com域服务器无法提供地址,但会把下一级的域名服务器xyz.com的地址发送给本地域名服务器。

(4)重复(2)、(3)的过程,最后xyz.com域名服务器把abc.xyz.com域名服务器地址发送给本地域名服务器。

(5)本地域名服务器再向abc.xyz.com域名服务器发送地址查询请求。abc.xyz.com找到了www.abc.xyz.com的地址就将这个地址发送给本地域名服务器。

(6)本地域名服务器把地址保存到缓存,同时返回给DNS客户机。

该解析过程用到了两种查询方式,分别是递归查询和迭代查询。

递归查询:主机向本地域名服务器的查询一般都是采用递归查询。

迭代查询:本地域名服务器向根域名服务器的查询通常采用迭代查询。只是通常,也有的采用递归查询。

DNS抓包

DNS协议分析

分析DNS数据包

DNS报文格式
DNS协议分析
标志字段的格式:
DNS协议分析
QR为1表示响应,为0表示请求

AA 权威应答,在响应包中设置,表示响应是由权威域名服务器发出的

TC 截断标志

RD期望递归

RA可用递归,在响应包中设置,说明支持递归查询

Z 保留字段,设置为全

rcode 响应代码,0表示没有没有错误,3表示域参数问题

DNS查询数据包
DNS协议分析
DNS响应数据包
DNS协议分析
回答区段有2条记录,一条是别名域名,一条是响应的IP地址。