递归 vs. 迭代
递归和迭代其实和在算法中的过程是一样的。
DNS客户端(主机)向本地域名服务器一般使用递归查询,递归即不需要主机自己去查询,而是让本地域名服务器去递归查询。
本地域名服务器会先检查本地缓存是否有结果,如果没有,则向根域名服务器询问,比如一个example.microsoft.com的域名,根域名服务器会告诉本地域名服务器向com顶级名称服务器询问,再到microsoft.com二级名称服务器询问,最后找到example.microsoft.com查询,本地域名服务器一个个迭代去询问服务器。
关于本地域名服务器可以自己指定,比如:
这里的202.106.46.151和202.106.0.20都是北京联通的DNS服务器。
DNS名词解释
参考大富帅的简书
权威 DNS
权威 DNS 是特定域名记录(例如“example.com”)在域名注册商处所设置的 DNS 服务器,用于特定域名本身的管理(增加、删除、修改等)。
权威 DNS 服务器只对自己所拥有的域名进行域名解析,对于不是自己的域名则拒绝访问。比如,向“example.com”的权威 DNS 服务器查询“test.com”的域名肯定会查询失败。
本地域名DNS
(也称为递归DNS,本地DNS或者缓存DNS)用于域名查询。递归 DNS 会迭代权威服务器返回的应答,直至最终查询到的 IP 地址,将其返回给客户端,并将请求结果缓存到本地。
对用户发出的域名解析请求,递归 DNS 必须给出一个最终的 IP 地址结果。完整的递归DNS 查询流程需要 DNS 服务器从根域名 “.” 服务器,顶级域名服务器(例如“.com”),一级域名服务器(例如“example.com”)等一级一级递归查询,直到最终找到权威服务器取得结果,并返回给客户。同时,递归服务器根据域名 TTL,缓存查询结果,便于相同域名重复查询。
递归 DNS 服务器大多数在运营商端,负责网络接入终端的 DNS 查询,即网络访问设备上配置的 DNS 服务器 IP。
- 权威 DNS 由域名解析服务商建设,提供域名管理服务,维护域名解析记录。
- 递归 DNS 由网络运营商建设,提供域名查询解析服务。
Linux查看DNS服务器和设置DNS服务器的方法
查看/修改配置
1 | cat /etc/resolv.conf |
查看nslookup命令
1 | nslookup www.baidu.com |