windows、linux查看域名解析、跟踪路由

来源:互联网 发布:box怎么创建centos 编辑:程序博客网 时间:2024/06/06 10:45

前言

在介绍域名解析命令前,需要首先理解域名的解析过程,理解解析过程后,能更深刻的理解nslookup、dig命令。


域名解析

为什么要有域名?

假如没有域名,那么访问一个网址,比如百度,需要输入ip,我们知道输ip麻烦而且不好记。所以,才发明了域名。这就像你们家的门牌号和你的名字一样,有人找你,他要是说某某门牌号也许很多人不知道,但是一提你的名字很多人就知道了,以上是形象的说法。其实,我们还可以从tcp/ip模型去思考,tcp/ip只认识ip它不认识域名,所以在访问网络时,最终是将域名解析为ip的。浏览器发送请求之前,首先会通过DNS解析获取ip,然后再发送请求。


域名解析

域名解析就是从域名地址转为ip地址的过程。
这里写图片描述

第1步,客户端发送到local name server,如果local name server存有域名和对应的ip,则返回,否则发送请求到root name server第2步,local name server发送请求到root name server,root name server返回顶级域名服务器地址(gTLD name server),第4步,local name server 请求gTLD name server,gTLD name server返回对应的name server第6步,local name server请求name server,name server返回ttl和ip,local name server缓存ip,然后返回给客户端。注意,name server可能有多级。

查询域名对应的ip

windows&&linux

查看域名对应的ip,无论在windows还是在linux下都是用 nslookup ,这里还是拿 www.baidu.com 做测试。

这里写图片描述

我们可以看见 www.baidu.com 对应 61.135.169.121 这个ip。我们再看一下浏览器请求走的ip,可以看见,走的 61.135.169.121 这个
这里写图片描述

下面我们来分析一下 nslookup www.baidu.com 结果

Server:     192.168.0.5 //1Address:    192.168.0.5#53 //2Non-authoritative answer://3www.baidu.com   canonical name = www.a.shifen.com.//4Name:   www.a.shifen.com//5Address: 61.135.169.125//6Name:   www.a.shifen.com//7Address: 61.135.169.121//8

第1行,Server,指的是默认dns服务器,也就是local DNS,就是局域网的DNS服务器

第2行,Address,指的是localDNS对应的ip

第3行,非权威解答:要查询的域名不受默认dns服务器管理,就是非权威解答。反之要查询的域名受默认域名dns服务器管理,就是权威解答。

第4行,指定别名,将 www.baidu.com 指定别名为 www.a.shifen.com

第5-8行,同一个域名先后解析了两次,最终解析结果是 61.135.169.121

域名解析过程

接下来,我们使用dig (只能用在linux下,可以下载windows版本)查看详细的域名解析过程。

这里写图片描述

我们把响应区摘出来,

www.baidu.com.      326 IN  CNAME   www.a.shifen.com. //1www.a.shifen.com.   33  IN  A   61.135.169.125   //2www.a.shifen.com.   33  IN  A   61.135.169.121   //3

第1行, www.baidu.com 解析到别名 www.a.shifen.com
第2、3行,将www.a.shifen.com 解析了两次,最终解析到61.135.169.121

如果添加 +trace 能看到详细信息

[root@xx ~]# dig +trace www.baidu.com; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> +trace www.baidu.com;; global options: +cmd.           3600    IN  NS  l.root-servers.net..           3600    IN  NS  k.root-servers.net..           3600    IN  NS  j.root-servers.net..           3600    IN  NS  i.root-servers.net..           3600    IN  NS  h.root-servers.net..           3600    IN  NS  g.root-servers.net..           3600    IN  NS  f.root-servers.net..           3600    IN  NS  e.root-servers.net..           3600    IN  NS  d.root-servers.net..           3600    IN  NS  c.root-servers.net..           3600    IN  NS  b.root-servers.net..           3600    IN  NS  a.root-servers.net..           3600    IN  NS  m.root-servers.net.;; Received 505 bytes from 192.168.0.5#53(192.168.0.5) in 19 mscom.            172800  IN  NS  a.gtld-servers.net.com.            172800  IN  NS  b.gtld-servers.net.com.            172800  IN  NS  c.gtld-servers.net.com.            172800  IN  NS  d.gtld-servers.net.com.            172800  IN  NS  e.gtld-servers.net.com.            172800  IN  NS  f.gtld-servers.net.com.            172800  IN  NS  g.gtld-servers.net.com.            172800  IN  NS  h.gtld-servers.net.com.            172800  IN  NS  i.gtld-servers.net.com.            172800  IN  NS  j.gtld-servers.net.com.            172800  IN  NS  k.gtld-servers.net.com.            172800  IN  NS  l.gtld-servers.net.com.            172800  IN  NS  m.gtld-servers.net.;; Received 503 bytes from 193.0.14.129#53(193.0.14.129) in 347 msbaidu.com.      172800  IN  NS  dns.baidu.com.baidu.com.      172800  IN  NS  ns2.baidu.com.baidu.com.      172800  IN  NS  ns3.baidu.com.baidu.com.      172800  IN  NS  ns4.baidu.com.baidu.com.      172800  IN  NS  ns7.baidu.com.;; Received 201 bytes from 192.12.94.30#53(192.12.94.30) in 271 mswww.baidu.com.      1200    IN  CNAME   www.a.shifen.com.a.shifen.com.       1200    IN  NS  ns1.a.shifen.com.a.shifen.com.       1200    IN  NS  ns3.a.shifen.com.a.shifen.com.       1200    IN  NS  ns5.a.shifen.com.a.shifen.com.       1200    IN  NS  ns4.a.shifen.com.a.shifen.com.       1200    IN  NS  ns2.a.shifen.com.;; Received 228 bytes from 202.108.22.220#53(202.108.22.220) in 14 ms

. 是root ns,根域名服务器
com,是gTLD Server
baidu.com.,a.shifen.com.,也是gTLD Server,可以看见nameserver是多级的

跟踪路由

跟踪路由就是从一个网关转移到另外一个网关,通常用来诊测网络情况。跟踪路由的原理,客户端发送数据包,包上使用最小的ttl值,比如第一次,ttl值是1,发送到网关,网关减1后,将信息返回给客户端。第二次客户端发送ttl=2,到达第一个网关减为1,第二个网关减为0,返回给客户端,一直循环……

样例

windows中使用 tracert,linux中使用 traceroute

traceroute www.baidu.com

这里写图片描述

参考

《深入分析Java web技术内幕》 许令波著

0 0