TCP实验二 DNS及常用系统命令

实验目的

了解和掌握Internet中的DNS、IP地址,主机的物理地址(网卡的MARC地址)相关命令和工作原理。

实验内容

(1) 调研DNS工作原理。

(2) 查询本机DNS设置,抓取并分析DNS报文

(3) 通过command /help帮助和网络资源(如百度、google)学习常用系统命令

实验步骤

(1) 通过百度、和同学交流以及在电脑上操作学习DNS原理以及相关操作。

(2) 通过wireshark抓取DNS报文,并分析。具体操作如下:

打开wireshark图形化界面,选择Wlan,在cmd窗口输入命令:ping www.baidu.com,向百度发送数据,并抓取报文,通过命令dns筛选出dns报文。

(3) 在cmd使用要求的命令语句,根据其显示的内容和网络上的资料分析其作用。

实验结果与分析

1、调研DNS工作原理,掌握如何设置DNS的方法及在网络访问出现问题时,如何排除DNS设置问题。

思考:通常采用“自动获得IP地址”及“自动获得DNS服务器地址”,这个自动机制是如何实现的?

(1) DNS工作原理:

在我们访问域名的时候,在浏览器输入网址(域名),会想去访问本地hosts文件,如果hosts文件中有对应的网址映射,则会直接返回。没有的话就要去.根域中寻找,而.根域只知道服务器的ip,因此就需要一个在人们习惯的域名和服务器习惯的ip之间的转化。下面是我电脑的hosts文件,目录是C:\Windows\System32\drivers\etc:

请添加图片描述

而DNS(domain name system)域名系统提供了域名解析和反向的域名解析服务。在hosts找不到我们查找的域名的映射时,就会先查找本地DNS解析器缓存看看是否有这个DNS映射关系,有的话直接返回,完成域名解析。

如果本地(hosts和本地DNS解析器)缓存查找不到的话,就会去访问TCP/IP参数中设置的首选DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析记过给客户端。

如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(baidu.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找baidu.com域服务器,重复上面的动作,进行查询,直至找到www.baidu.com主机。

如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把请求转至上上级,以此循环。不管是本地DNS服务器用是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

简单来说,DNS就像一个电话本一样,会将我们输入的域名解析成IP地址。

(2) 设置DNS的方法:

打开控制面板,在“网络和Internet”中选择“网络连接”,然后找到我们连接的网络,比如WLAN,右键点击“属性”,如下图,选择Internet协议版本4(TCP/IPv4):
请添加图片描述

单击属性,就可以看到在常规窗口里,可以设置IP地址和DNS服务器地址,选择“使用下面的DNS服务器地址”,然后就可以设置和修改我们的首选DNS服务器和备用DNS服务器。

请添加图片描述

(3) 在网络访问出现问题时,如何排除DNS设置问题

首先,如果是DNS解析故障,有以下情况:

①把一个域名解析成一个错误的ip地址。

②不知道某个域名对应的ip地址是什么。

由此引发的问题我们可以通过以下的方式来排查:

①DNS解析故障排查

打开cmd,在其中输入nslookup。命令行窗口会显示我们当前系统使用的DNS服务器的地址,然后再输入我们访问出问题的网站的域名,如果DNS解析过程出问题,那么它会返回“DNS request timed out, timeout was 2 seconds”的信息,说明我们的计算机出现DNS解析故障。

而如果解析正常的话,会返回正确的IP地址,下面我用百度做了一个试验:

请添加图片描述

可以看到它给我们返回了两个IP地址,36.152.44.95和36.152.44.96,下面我就到浏览器中去搜索了一下这两个ip地址,发现它们都可以指到百度搜索页面:

请添加图片描述

②查看DNS服务器是否正常工作:

在cmd命令行输入ipconfig/all来查询网络参数,可以看到DNS 服务器(英文下是DNS SERVERS),后面跟的是我们使用的DNS服务器地址,

请添加图片描述

如果DNS服务器地址是 外网地址,那么在解析出错时我们可以更改DNS服务器地址,也就是换一个(方法见(2)设置DNS的方法)。

如果DNS服务器地址是内部网络地址,那么我们就需要子啊出问题时检查这个DNS服务器是否正常工作,用①中提到的方法。

③清楚DNS缓存信息

根据我们上面提到的原理,我们在浏览器里访问域名的时候,服务器会首先在我们本地去查找,如果找到的话会直接返回,如果我们已经将解析结果缓存在我们计算机的DNS缓存列表中,而这时候DNS解析出现更改的话,就会在计算机对该域名访问时出现连接不到DNS服务器获取最新解析信息的问题。这时候我们可以通过清除DNS缓存的命令来解决问题。

具体操作是:在cmd窗口输入ipconfig/flushdns命令,当出现“successfully flushed the dns resolver cache”信息时,说明我们计算机的缓存信息已经被成功清除。

④修改HOSTS文件

如果我们已经知道了正确的解析结果,那么可以在我们计算机本地的hosts文件中添加解析内容,这样在浏览器访问域名的时候可以直接在本地查找到结果直接返回。

hosts文件目录为: c:/windows/system32/drivers/etc

用记事本或其他编辑器打开,添加一行 IP地址,然后空格,再接上它的域名。保存文件。

这样操作以后我们在访问该域名的时候就可以返回正确的解析结果。

综上:如果以上方法都不能解决我们访问出错的问题,那么大概率不是因为我们DNS设置的问题。

(4)自动获取IP地址和自动获得DNS服务器地址的机制

当我们设置自动获取IP地址时,我们的 电脑(客户端)通过DHCP协议请求获取IP地址,流程如下:

客户端通过广播方式发送IP地址租用申请→

所有网络中的DHCP服务器接收到申请信息→

DHCP服务器通过广播的方式回应IP地址租用提供(因为我们还没有IP地址,所以不能定向回应)→

向服务器发送DHCPrequest消息→DHCP服务器确认并分配IP地址并更新DHCP数据库。

其中DHCP(Dynamic Host Configuration Protocol)动态主机配置协议是一个应用层协议,帮助我们动态获取IP地址。

自动获取DNS服务器地址机智相似,我们的计算机会向内网发送广播,当服务器收到这个包时便动态分配给计算机一个地址,计算机收到后完成设置。

2、查询本机DNS设置,抓取并分析DNS报文

(1)查询本机DNS设置

在cmd窗口,通过命令ipconfig/all,查询我们IP地址配置的详细信息。

或者,可以在我们系统的设置里面查看网络属性,也可以看到一些基本的信息。

我实验是连接的是宿舍里的WIFI,结果如下:

请添加图片描述

(2)抓取并分析DNS报文

打开wireshark图形化界面,选择WLAN,并在cmd窗口输入"ping www.baidu.com",向百度发送数据包,在wireshark中筛选出DNS报文,结果如下:

请添加图片描述

下面进行分析:

选择一个报文,查看其详情
请添加图片描述

如图所示,灰色部分为DNS报文,其基本组成如下

请添加图片描述

如我们所见:

  • 62 78是Transaction ID:0x6278表示16进制下的6278
  • Flags内容是01 00
  • Questions问题计数为00 01,表示只有一个问题
  • Answer RRs为00 00。
  • Authority RRs为00 00
  • Additional RRs为00 00
  • 查询问题区域Queries的name:从0c到6d 00的一段28个字节
  • 后面四个字节为Queries的Type和Class

3、通过command /help帮助和网络资源(如百度、google)学习使用以下命令:

(1)ipconfig/all

查询所有的IP配置,在我们上面的实验流程中已经使用过。

(2)nbtstat -a IP

nbtstat命令可以查询设备的名称表等。

通过输入nbtstat,我们可以得到帮助菜单,如下:

请添加图片描述

然后我通过-a 和-A去查找我的计算机都找不到主机,通过-n查询本机查询到以下内容:
请添加图片描述

(3)ping IP/dns

ping命令可以给目标地址发送数据包并接受其回应的数据包,可以用来检查两个机器之间是否连通。

下面是我用计算机给自己ping的结果:
请添加图片描述

或者ping一下IP地址,甚至域名都是可以进行数据包交互的。

(4)tracert IP/DNS

Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP数据报访问目标所采取的路径。下面我tracert了一下同桌的IP,百度域名和我自己的IP,发现前两个都会卡住不动
请添加图片描述

而tracert自己的IP就可以

请添加图片描述

然后我试验了一下能不能ping通同桌的电脑,分别连热点和校园网,同桌一直连校园网,结果如下:

请添加图片描述

不连到一起直接请求超时,而连接校园网应该受到保护。

(5)arp -a

该命令可以查看当前局域网内的所有设备的IP地址与物理地址(MAC地址)的对应,数据在传输时,要靠IP地址找到物理地址,从而把信息真正发送到目的地。

请添加图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值