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

前言

在介绍域名解析命令前,需要首先理解域名的解析过程,理解解析过程后,能更深刻的理解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 //1
Address:	192.168.0.5#53 //2

Non-authoritative answer://3
www.baidu.com	canonical name = www.a.shifen.com.//4
Name:	www.a.shifen.com//5
Address: 61.135.169.125//6
Name:	www.a.shifen.com//7
Address: 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. //1
www.a.shifen.com.	33	IN	A	61.135.169.125   //2
www.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 ms

com.			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 ms

baidu.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 ms

www.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技术内幕》 许令波著

9年全栈开发经验,请关注个人公众号

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值