1. 实验目的
-
了解互联网的域名结构、域名系统DNS及其域名服务器的基本概念
-
熟悉DNS协议及其报文基本组成、DNS域名解析原理
-
掌握常用DNS测量工具dig使用方法和DNS测量的基本技术
2. 实验环境
-
硬件要求:阿里云云主机ECS 一台。
-
软件要求:Linux/ Windows 操作系统
3. 实验内容
3.1 查看和配置本机的DNS系统
首先查看本机DNS服务器配置情况,其次增加一个DNS服务器:114.114.114.114或者8.8.8.8。
3.2 DNS信息测量
dig是著名的DNS软件 Bind提供的DNS分析和测量工具。Dig可以查询DNS包括NS记录,A记录,MX记录等相关信息的工具,利用它可以进行DNS测量和分析。
安装dig命令并进行以下查询和测量
dig www.xju.edu.cn
dig aaaa www.xju.edu.cn
dig cname www.sohu.com
dig www.xju.edu.cn @8.8.8.8
dig mx xju.edu.cn
dig ns xju.edu.cn @8.8.8.8
dig www.xju.edu.cn +trace 重要
dig edu.cn +dnssec @8.8.8.8 重要
dig edu.cn +dnssec @114.114.114.114 //解释RRSIG作用
参考资料:
BIND 9 - ISC
dig命令详解 - 马昌伟 - 博客园
3.3 DNS协议分析
使用tcpdump抓取DNS查询网络通信数据包,利用wireshark分析UDP和DNS协议数据
4、实验结果与分析
4.1 查看和配置本机的DNS系统
4.1.1 查看本机DNS服务器配置情况
首先下载dig命令,代码:yum install bind-utils,运行结果如下图4-1所示:
图4-1 下载dig命令
利用dig命令查看本机DNS配置,代码:dig|grep SERVER,运行结果如下图4-2所示:
图4-2 本机配置情况
4.1.2 增加配置DNS服务器
修改配置文件/etc/resolv.conf,修改完以后可以直接生效,代码:vi /etc/resolv.conf,运行结果如下图4-3所示:
图4-3 配置文件resolv.conf
输入i进入编辑模式,输入如下内容,nameserver 114.114.114.114,nameserver 8.8.8.8,然后按Esc退出,输入:wq保存,运行结果如下图4-4所示:
图4-4 修改配置文件resolv.conf
再次输入dig|grep SERVER查看配置是否成功,代码:dig|grep SERVER,运行结果如下图4-5所示:
图4-4 DNS添加成功
至此,DNS配置成功修改。
4.2 DNS信息测量
代码:dig www.xju.edu.cn,运行结果如下图4-5所示:
图4-5 dig www.xju.edu.cn
代码:dig aaaa www.xju.edu.cn,运行结果如下图4-6所示:
图4-6 dig aaaa www.xju.edu.cn
代码:dig cname www.sohu.com ,运行结果如下图4-7所示:
图4-7 dig cname www.sohu.com
代码:dig www.xju.edu.cn @8.8.8.8,运行结果如下图4-8所示:
图4-8 dig www.xju.edu.cn @8.8.8.8
代码:dig mx xju.edu.cn,运行结果如下图4-9所示:
图4-9 dig mx xju.edu.cn
代码:dig ns xju.edu.cn @8.8.8.8,运行结果如下图4-10所示:
图4-10 dig ns xju.edu.cn @8.8.8.8
代码:dig www.xju.edu.cn +trace ,意为使用迭代查询,跳过缓存DNS服务器,直接向各级域名服务器发起请求,运行结果如下图4-11所示:
图4-11 dig www.xju.edu.cn +trace
代码:dig edu.cn +dnssec @8.8.8.8,意为使用dig命令行测试和验证DNSSEC ,运行结果如下图4-12所示:
图4-12 dig edu.cn +dnssec @8.8.8.8
代码:dig edu.cn +dnssec @114.114.114.114,运行结果如下图4-13所示:
图4-13 dig edu.cn +dnssec @144.144.144.144
RRSIG作用:DNSSEC使用公钥加密对RRset进行签名和身份验证。数字签名存储在RRSIG资源记录中,并用于[RFC4035]中描述的DNSSEC身份验证过程。验证器可以使用这些RRSIG RRs来验证区域中的rrset。RRSIG RR只能用于携带用于保护DNS操作的验证材料(数字签名)。
RRSIG记录包含具有特定名称、类和类型的RRset的签名。RRSIG RR指定签名的有效间隔,并使用算法、签名者的名称和key tag来标识包含公钥的DNSKEY RR,验证器可以使用公钥来验证签名。
4.3 DNS协议分析
使用tcpdump抓取网络通信数据包,代码:tcpdump -i eth0 -w test.cap,运行结果如下图4-14所示:
图4-14 tcpdump -i eth0 -w test.cap
同时在xshell界面中,使用dig命令对www.xju.edu.cn进行解析,代码:dig www.xju.edu.cn,运行结果如下图4-15所示:
图4-15 dig www.xju.edu.cn
再打开xftp界面,将保存的test.cap文件下载到本地,如下图4-16所示:
图4-16 xftp界面
使用wireshark对test.cap进行解析,并对DNS数据包进行筛选,如下图4-17所示:
图4-17 wireshark界面
对UDP协议数据进行分析,如下图4-18所示:
图4-18 UDP协议数据
字段名 | 字段值 | 字段信息 |
---|---|---|
Source Port | 37619 | 源端口 |
Destination Port | 53 | 目的端口 |
Length | 51 | UDP总长度 |
Checksum | 0xbf26 | UDP校验和 |
UDP payload | 43 bytes | UDP有效负载 |
对DNS协议数据进行分析,如下图4-19所示:
图4-19 DNS协议数据
字段名 | 字段值 | 字段信息 |
---|---|---|
Transaction ID | 0x839d | 事务ID |
Flags | 0x0120 | 标志字段 |
Questions | 1 | 问题计数 |
Answer RRs | 0 | 回答资源记录数 |
Authority RRs | 0 | 权威名称服务器计数 |
Additional RRs | 1 | 附加资源记录数 |
5、实验小结
问题与解决办法:
对于标志字段中各个字段的含义不太了解,经过查询资料得到以下结果:
-
QR(Response):查询请求/响应的标志信息。查询请求时,值为 0;响应时,值为 1。
-
Opcode:操作码。其中,0 表示标准查询;1 表示反向查询;2 表示服务器状态请求。
-
AA(Authoritative):授权应答,该字段在响应报文中有效。值为 1 时,表示名称服务器是权威服务器;值为 0 时,表示不是权威服务器。
-
TC(Truncated):表示是否被截断。值为 1 时,表示响应已超过 512 字节并已被截断,只返回前 512 个字节。
-
RD(Recursion Desired):期望递归。该字段能在一个查询中设置,并在响应中返回。该标志告诉名称服务器必须处理这个查询,这种方式被称为一个递归查询。如果该位为 0,且被请求的名称服务器没有一个授权回答,它将返回一个能解答该查询的其他名称服务器列表。这种方式被称为迭代查询。
-
RA(Recursion Available):可用递归。该字段只出现在响应报文中。当值为 1 时,表示服务器支持递归查询。
-
Z:保留字段,在所有的请求和应答报文中,它的值必须为 0。
-
rcode(Reply code):返回码字段,表示响应的差错状态。当值为 0 时,表示没有错误;当值为 1 时,表示报文格式错误(Format error),服务器不能理解请求的报文;当值为 2 时,表示域名服务器失败(Server failure),因为服务器的原因导致没办法处理这个请求;当值为 3 时,表示名字错误(Name Error),只有对授权域名解析服务器有意义,指出解析的域名不存在;当值为 4 时,表示查询类型不支持(Not Implemented),即域名服务器不支持查询类型;当值为 5 时,表示拒绝(Refused),一般是服务器由于设置的策略拒绝给出应答,如服务器不希望对某些请求者给出应答。