目录
一、实验目的
二、实验环境
三、预备知识
四、实验步骤
一、实验目的
1.学会使用nslookup命令进行域名解析;
2.学会使用ipconfig命令查看、清空DNS缓存;
3.分析DNS协议的报文格式和工作原理并能够描述。
二、实验环境
联网的计算机;主机操作系统为Windows;Ethereal(或WireShark)等软件。
三、预备知识
域名系统(DNS)将主机名转换为IP地址,在互联网基础设施中发挥了关键作用。然而客户端在DNS中的角色相对简单——将查询发送到本地DNS服务器,然后接收服务器的响应,如图教科书中的2.18和2.19所示,分层的DNS服务器相互通信,通过递归或迭代解析客户端的DNS查询,这个查询的具体过程对客户端来说是不可见的。因此,从DNS客户端的角度来看,该协议非常简单——对本地DNS服务器发出一个查询,并从该服务器接收一个响应。
开始这个实验之前,需要复习课本2.4节,特别是,DNS服务器层次结构、本地DNS服务器、DNS缓存、DNS记录、DNS消息以及DNS记录中的TYPE字段相关内容。
1、nslookup工具允许主机向指定的DNS服务器查询某个DNS记录。如果没有指明DNS服务器,nslookup默将把查询请求发向默认的DNS服务器,否则将把查询请求发向指定的DNS服务器。查询的DNS服务器可以是根DNS服务器、顶级DNS服务器、权威DNS服务器或中间DNS服务器。为了完成此任务,nslookup将DNS查询发送到指定的DNS服务器,从该DNS服务器接收DNS响应,并显示结果。
nslookup域名 [dns-server]
这是最常用最简单的用法,可以直接获得目标域名的IP地址和CNAME。如nslookup www.jxnu.edu.cn,将获得目标域名的IP地址。
我们还可以指定参数,查询其他类型的记录,比如AAAA、NS、MX等,格式如下:
nslookup -type=TYPE domain [dns-server]
如nslookup -type=NS jxnu.edu.cn,将获得jxnu的权威域名服务器。
示例:如图1所示,图中显示了三个独立的nslookup命令(显示在Windows命令提示符中)的结果。在本例中,客户端主机位于布鲁克林Polytechnic University大学校园内,默认本地DNS服务器为dns-prime.poly.edu。运行nslookup时,如果未指定DNS服务器,则nslookop将查询发送到默认DNS服务器,在本例中,默认DNS服务器为DNS prime.poly.edu。
图1 nolookup命令示例
(1)第一条命令:
nslookup www.mit.edu
该命令表示“请将主机www.mit.edu的IP地址发送给我”。如屏幕截图所示,此命令的响应提供了两条信息:首先是提供响应答案的DNS服务器的名称和IP地址;其次是回复答案的本身信息,即www.mit.edu的主机名和IP地址。虽然响应来自大学的本地DNS服务器,但该本地DNS服务器很有可能反复同其他几个DNS服务器进行通信以获得答案,如课本2.4节所述。
(2)第二条命令:
nslookup –type=NS mit.edu
表示“请将mit.edu的权威DNS服务器的主机名发送给我”。命令中,使用了选项“-type=NS”和域“mit.edu”,nslookup向默认的本地DNS服务器发送对NS类型记录的查询。(未使用–type选项时,nslookup使用默认值,即查询类型A记录。)
上面截图中显示的答案:首先指示提供答案的DNS服务器(默认本地DNS服务器)以及三个MIT名称服务器。这些服务器实际上都是麻省理工学院校园内主机的权威DNS服务器。然而,nslookup也表明该答案是“非权威的”,这意味着该答案来自某个服务器的缓存,而不是权威的MIT DNS服务器。最后,答案还包括麻省理工学院权威DNS服务器的IP地址。(尽管nslookup生成的类型NS查询没有明确要求IP地址,但本地DNS服务器会“免费”返回这些地址。)
(3)第三条命令:
nslookup www.aiit.or.kr bitsy.mit.edu
此命令,将查询发送到指定的DNS服务器bitsy.mit.edu,此服务器提供www.aiit.or.kr主机的IP地址,而不是默认DNS服务器(DNS prime.poly.edu)。因此,查询和回复事务直接发生在查询主机和bitsy.mit.edu之间。
2、ipconfig命令用来显示你当前的TCP/IP信息,包括:你的地址、DNS服务器的地址、适配器的类型等信息。如果,要显示与主机相关的信息用命令:
ipconfig/all
如果查看DNS缓存中的记录用命令:
ipconfig/displaydns
要清空DNS缓存,用命令:
ipconfig /flushdns
四、实验步骤
1. 根据操作回答“五、实验报告内容”中的1-6题。
运行以上命令需要进入MSDOS环境。(开始菜单->运行->输入命令“cmd”)
(1)利用ipconfig命令清空主机上的DNS缓存。启动浏览器,并将浏览器的缓存清空。
(2)启动Ethereal(或WireShark),在显示过滤筛选规则编辑框处输入:
“ip.addr ==your_IP_address”(如:ip.addr == 192.168.1.2)
过滤器将会删除所有目的地址和源地址与指定IP地址都不同的分组。
(3)开始WireShark分组捕获。
(4)在浏览器的地址栏中输入:http://www.ietf.org 。分组数据见文件dns-ethereal-file6.pcap
(5)停止分组捕获。
1.根据操作回答“五、实验报告内容” 中的7-10题。
(1)开始WireShark分组捕获。
(2)在www.mit.edu上进行nslookup(即执行命令:nslookup www.mit.edu),分组数据见文件dns-ethereal-file7.pcap。
(3)停止分组捕获。
2.根据操作回答“五、实验报告内容” 中的 11-13题
(1)重复上面的实验,只是将命令替换为:nslookup –type=NS mit.edu,分组数据见文件dns-ethereal-file8.pcap。
3.根据操作回答“五、实验报告内容” 中的14-16题。
(2)重复上面的实验,只是将命令替换为:nslookup www.aiit.or.krwww.aiit.or.krwww.aiit.or.kr bitsy.mit.edu,分组数据见文件dns-ethereal-file9.pcap。
五、实验报告内容
1-6:
1.定位到DNS查询消息和查询响应报文,这两种报文的发送是基于UDP还是基于TCP的?
这两种报文的发送均基于UDP
2.DNS查询消息的目的端口号是多少?DNS查询响应消息的源端口号是多少?
该DNS查询消息的目的端口号和DNS查询响应消息的源端口号均为53
3.DNS查询消息发送的目的地的IP地址是多少?利用ipconfig命令(ipconfig/all)查看你主机的本地DNS服务器的IP地址。这两个地址相同吗?
该DNS查询发送的目的地的IP地址为202.101.224.69,且两个地址是相同的
4.检查DNS查询消息,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?
该DNS查询是A类DNS查询,不包含“answers”
5.检查DNS查询响应消息,其中共提供了多少个“answers”?每个answers包含哪些内容?
该DNS查询响应提供了共1个“answers”,包含内容为www.ietf.org: type A, class IN, addr 64.170.98.32
6.考虑一下你的主机随后发送的TCP SYN Segment,包含SYN Segment的IP分组头部中目的IP地址是否与在DNS查询响应消息中提供的某个IP地址相对应?
与在DNS查询响应消息中提供的某个IP地址相对应相对应
可以看到访问的端口号为2952
随后发送的TCP SYN Segment包含64.170.98.32
与在DNS查询响应消息中提供的64.170.98.32相对应
7-10:
7.DNS查询消息的目的端口号是多少?DNS查询响应消息的源端口号是多少?
该DNS查询消息的目的端口号和DNS查询响应消息的源端口号均为53
8.DNS查询消息发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?
该DNS查询发送的目的地的IP地址为202.101.224.69,且两个地址是相同的
9.检查DNS查询消息,它是哪一类型的DNS查询?该查询消息中包含“answers”吗?
该DNS查询消息是A类DNS查询,不包含“answers”
10.检查DNS查询响应消息,其中提供了多少个“answers”?每个answers包含哪些内容?
该DNS查询响应提供了1个“answers” ,包含内容为www.mit.edu: type A, class IN, addr 18.9.22.169
11-13:
11.DNS查询消息发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?
DNS查询发送的目的地的IP地址为202.101.224.69,且两个地址是相同的
12.检查DNS查询消息,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?
该DNS查询是NS类DNS查询,不包含 “answers”
13.检查DNS查询响应消息,其中响应消息提供了哪些MIT名称服务器?响应消息提供这些MIT名称服务器的IP地址了吗?
该DNS查询响应提供了3个 “answers”,包括的MIT名称服务器的IP地址如下
14-16:
14.DNS查询消息发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?如果不是,这个IP地址相当于什么?
该DNS查询消息发送的目的地的IP地址为18.72.0.3,不是我的默认本地DNS服务器的地址,该IP地址相当于默认的本地域名服务器
15.检查DNS查询消息,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?
该DNS查询消息A类,该查询报文不包含“answers”
16.检查DNS查询响应消息,其中提供了多少个“answers”?每个answers包含哪些内容?
该DNS查询响应消息提供了1个“answers”,