DNS服务查询流程

1:客户端访问www.lihuia.com

2:本机DNS缓存假如有对应关系,返回IP地址

3:系统如果首选配置了的name server,或者是ISP分配的DNS服务器能够解析,返回IP地址

3:如果以上仍没有其对应关系,从系统配置文件里读取十几个根域名服务器的name server,向一台发起请求

4:根域名服务器收到了请求,知道是顶级域名.com,就返回.com的name server,接着继续向其中一台发起请求

5:.com域名服务器收到了请求,知道是lihuia.com域,就返回lihuia.com的name server,接着继续向其中一台发起请求

6:lihuia.com域名服务器收到了请求,查了下www这台主机,然后就将IP地址返还给你

 

递归查询和迭代查询

上面的过程其实是DNS迭代查询,是DNS服务器之间的不停深入的过程,自己解析不全,将下一位的IP返回,让你亲自联系下一位来进行查询;递归查询是客户端和DNS服务器之间的关系,当客户端发出的请求,DNS服务器自己解析不了,会相当于作为客户端向其他的DNS服务器发出请求,解析出来的IP再返还给客户端,这就是递归查询

 

查询根服务器可以通过dig命令:

MacBook:~ lihui$ dig

; <<>> DiG 9.8.3-P1 <<>>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61549
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13

;; QUESTION SECTION:
;.				IN	NS

;; ANSWER SECTION:
.			30926	IN	NS	c.root-servers.net.
.			30926	IN	NS	d.root-servers.net.
.			30926	IN	NS	e.root-servers.net.
.			30926	IN	NS	f.root-servers.net.
.			30926	IN	NS	g.root-servers.net.
.			30926	IN	NS	h.root-servers.net.
.			30926	IN	NS	i.root-servers.net.
.			30926	IN	NS	j.root-servers.net.
.			30926	IN	NS	k.root-servers.net.
.			30926	IN	NS	l.root-servers.net.
.			30926	IN	NS	m.root-servers.net.
.			30926	IN	NS	a.root-servers.net.
.			30926	IN	NS	b.root-servers.net.

;; ADDITIONAL SECTION:
a.root-servers.net.	3549809	IN	A	198.41.0.4
a.root-servers.net.	3549809	IN	AAAA	2001:503:ba3e::2:30
b.root-servers.net.	3550372	IN	A	192.228.79.201
b.root-servers.net.	3549809	IN	AAAA	2001:500:84::b
c.root-servers.net.	3551640	IN	A	192.33.4.12
c.root-servers.net.	3550041	IN	AAAA	2001:500:2::c
d.root-servers.net.	3550188	IN	A	199.7.91.13
d.root-servers.net.	3550041	IN	AAAA	2001:500:2d::d
e.root-servers.net.	3550613	IN	A	192.203.230.10
f.root-servers.net.	3554987	IN	A	192.5.5.241
f.root-servers.net.	3550041	IN	AAAA	2001:500:2f::f
g.root-servers.net.	3551159	IN	A	192.112.36.4
h.root-servers.net.	3551076	IN	A	128.63.2.53

;; Query time: 11 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Thu Jun 25 01:09:05 2015
;; MSG SIZE  rcvd: 496

 

缓存

本机的缓存包括WEB客户端和系统,比如浏览器和/etc/hosts;最终成功解析后,这个对应关系也会缓存到本地

发表评论