DNS是域名服务(Domain Name Service),负责把域名解析成IP地址(正向解析)或者把IP地址解析为域名(反向解析)。


DNS查询过程

假设我们要访问www.abc.com,dns解析请求会发送给我们配置dns服务器,如果当前已有缓存则直接把结果返回给我们的终端,如果没有则向dns的根查询负责解析.com的服务器的IP,找到负责.com域的服务器后再向其查询负责abc.com这个域的服务器的IP,得到结果后再向其查询www.abc.com的IP地址,查询到结果后再返回给我们。

    在这个过程中,我们只需要向我们指向的dns发起一次dns请求,他就会把最终的结果返回给我们,这个过程称为递归查询,而当其缓存中没有我们要查询的记录时,他需要一级一级的分别向根,.com, abc.com查询,每一次的查询请求都是他自己发起的,这个过程称为迭代查询

由于abc.com这个域的解析不是由我们指向的dns服务器负责的,所以他返回给我们的答案为非权威应答,而他通过迭代从负责abc.com的dns服务器查询到的结果则为权威应答


在互联网上总共有13个根服务器,在linux系统上可以dig -t NS .查看

[root@bob ~]# dig -t NS . | awk '$4=="A" {print $0}'
d.root-servers.net.	5	IN	A	199.7.91.13
b.root-servers.net.	5	IN	A	192.228.79.201
a.root-servers.net.	5	IN	A	198.41.0.4
c.root-servers.net.	5	IN	A	192.33.4.12
j.root-servers.net.	5	IN	A	192.58.128.30
f.root-servers.net.	5	IN	A	192.5.5.241
k.root-servers.net.	5	IN	A	193.0.14.129
l.root-servers.net.	5	IN	A	199.7.83.42
e.root-servers.net.	5	IN	A	192.203.230.10
g.root-servers.net.	5	IN	A	192.112.36.4
i.root-servers.net.	5	IN	A	192.36.148.17
m.root-servers.net.	5	IN	A	202.12.27.33
h.root-servers.net.	5	IN	A	12