一,实验目的
掌握使用NSLOOKUP命令进行域名解析
掌握IPCONFIG命令的使用
学会用Wireshark的的掌握DNS报文格式
二,实验环境
客户机:安装有Wireshark的的的的的Windows7及以上系统
三,实验原理
1,概念
DNS(域名系统,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53。
DNS本质是用于TCP / IP应用程序的数据库,该数据库中记录了域名和IP的对应关系,同时也是一种用于客户端和服务端通讯的应用层的计算机网络协议。计算机要将域名解析成IP(或者将IP反解成域名),需要先去询问DNS服务器的数据库,查询得到域名和IP的对应关系,才能开始使用IP地址进行计算机通讯。
2,DNS阶层架构
DNS系统最顶端是根域(。),下一级是以国家/地区或组织为分类的*域名,再下一级为个人或组织在网上组册的二级域名,再往下为二级域名派生的子域,最后为DNS域名最左侧的标签标识的计算机主机名。这就是DNS的阶层式分布结构。
3,域名到IP的解析流程
当某一应用程序或者机器主机需要把主机名解析为IP地址时,该应用进程或者机器主机就调用解析程序,此时应用程序或机器主机称为客户端,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器。本地域名服务器在本地缓存中查找到域名后,把对应的IP地址放在响应报文中返回给客户端。此时应用程序或机器主机获得目的主机的IP地址后即可与之进行通信。
若本地域名服务器在本地缓存中没有查找到缓存记录,此时域名服务器就相当于客户端(替代主机查询),并向其他域名服务器发出查询请求。直至找到能够回答该请求的域名服务器为止。
四,实验
1,nslookup将将
在这个实验中,我们将使用NSLOOKUP工具,这个工具在的Linux / Unix /微软平台中都可用.nslookup命令用于查询DNS的记录,查看域名解析是否正常。
操作一:nslookup www.suda.edu.cn
上图1为提供服务的DNS服务器,图2是查询域名对应的IP地址。
操作二:nslookup -type = NS www.suda.edu.cn
通过-type = NS要求获取名字服务器记录
操作三:nslookup www.suda.edu.cn 8.8.8.8
此例,希望将查询发送到DNS服务器8.8.8.8而不是默认的DNS服务器。
上述三个例子描述了NSLOOKUP命令的多种格式,它的一般语法是:
nslookup -option1 -option2 host-to-find dns-server
2,IPCONFIG
ipconfig(windows)与ifconfig(Linux / Unix)是主机中调试网络问题时最实用的小程序,它不仅能够显示你当前的TCP / IP信息,包括IP地址,DNS服务器地址,以及适配器类型等。
如要获取有关主机的所有信息,输入:
ipconfig / all
同样的,IPCONFIG也能够管理存储在主机中的DNS信息主机可以缓存最近获取的DNS记录,如果要查询这些缓存,请输入:
ipconfig / displaydns
也可以通过下面的命令清除缓存:
ipconfig / flushdns
3,使用的Wireshark追踪DNS
现在我们熟悉了NSLOOKUP与IPCONFIG命令,接下来,准备借助于Wireshark的来捕获网上浏览时产生的DNS数据包。
(1)通过IPCONFIG来清空DNS缓存
(2)清空浏览器缓存,运行浏览器
(3)打开的Wireshark,并在显示过滤字段处输入:ipa.addr ==你的IP地址,这样过滤器将会把与你主机无数据交换隐藏。
(4)的Wireshark开始捕获数据包
(5)浏览器中输入:HTTP://www.ietf.org
(6)关闭数据捕捉
完成上述操作后,尝试回答下列问题:
<1>根据DNS查询及响应消息,数据包采用的是UDP还是TCP协议?
<2> DNS查询消息的目标端口与DNS响应消息的源端口是多少?
<3> DNS查询消息发送的目的IP是什么?通过IPCONFIG来确定当前DNS服务器的IP地址。两个IP地址一样吗?
<4>检查DNS查询消息,DNS查询类型是什么?查询消息中包含有任何“回答”吗?
<5>检查DNS响应消息,有多少个“回答”?每个回答包含什么内容?
<6>思考一下主机发送的后续TCP SYN数据包.SYN数据包的目的IP地址是否对应于DNS响应消息中提供的IP地址?
<7>这个网页包含有一些图像。在检索每一个图像之前,你的主机发出新的DNS查询吗?
接下来,我们通过wireshark捕获nslookup数据包
(1)开始捕获数据包
(2)运行 nslookup www.mit.edu
(3)停止数据包捕获
在wireshark窗口中捕获三个DNS查询以及三个DNS响应。我们只要关注最后一组查询与响应的消息。请回答下列问题:
<8>DNS查询消息的目标端口是什么?DNS响应消息的源端口是什么?
<9>DNS查询消息的目的IP是什么?是不是你默认的本地DNS服务器IP地址?
<10>检查DNS查询信息,DNS查询中“type”字段的值是什么?它的"answer"字段包含有内容吗?
<11>检查DNS响应消息,它有多少个"answer",每个answer包含内容是什么?
换一个命令,再次回答上述问题:
nslookup www.aiit.or.kr bitsy.mit.edu
<12>DNS查询消息的目标端口是什么?DNS响应消息的源端口是什么?
<13>DNS查询消息的目的IP是什么?是不是你默认的本地DNS服务器IP地址?
<14>检查DNS查询信息,DNS查询中“type”字段的值是什么?它的"answer"字段包含有内容吗?
<15>检查DNS响应消息,它有多少个"answer",每个answer包含内容是什么?