Skip to content

DNS 查询

查询过程

  1. 浏览器查询自身的缓存,如 Chrome 缓存为 1 分钟,有就直接用,没有则进行下一步
  2. 查询操作系统的 DNS 缓存和 host 文件,有就直接用,没有则进行下一步
  3. 查询本地 DNS 服务器,如 ISP 默认的 DNS 服务器,或者用户自定义的服务器
  4. DNS 服务器有缓存就直接返回,没有则进行递归式地查询
  • 先向 13 个根域名服务器之一发送请求,以获得顶级域名服务器的地址列表
  • 再向顶级域名服务器之一发送请求,获得权威域名服务器列表
  • 再向权威域名服务器之一发送请求,获得域名对应的真实 IP 地址

递归和迭代查询

  • 主机向本地 DNS 服务器查询是递归,即发送一次请求后得到结果;
  • 本地 DNS 服务器的查询过程是迭代查询,因为要查询多次,根据每次查询结果再做下一步的查询

常见本地 DNS 服务器

  • 114.114.114.114
  • 223.5.5.5
  • 8.8.8.8
  • 119.29.29.29

权威域名服务器

一般是域名注册商那里的服务器,比如在阿里云买了域名,权威域名服务器就在阿里

shell
> nslookup
> set type=ns
> nanote.cn

服务器:  public1.alidns.com
Address:  223.5.5.5

非权威应答:
nanote.cn       nameserver = dns11.hichina.com
nanote.cn       nameserver = dns12.hichina.com

上面的应答是非权威的,如果要获得权威域名服务器的应答,可以按照如下步骤:

shell
> nslookup
> set type=ns
> .

# ip of a.root-servers.net
> server 198.41.04

> cn.

# ip of a.dns.cn
> server 203.119.25.1

> nanote.cn

# ip of dns11.hichina.com
> server 39.96.153.52

> set type=a
> nanote.cn

# 权威应答的 IP 地址
x.x.x.x