admin管理员组

文章数量:1530366

DNS

1. DNS协议

DNS(域名系统)是域名和IP地址相互映射的一个分布式数据库,通过域名找到互联网中实际IP地址的服务器,该服务器会把请求解析,然后将资源返回给浏览器,最后浏览器对资源进行渲染。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析。

各级域名服务器

  1. 根域名服务器:最高层次的服务器,所有的根域名服务器都知道所有的顶级域名服务器的IP地址
    • 不管是哪个本地域名服务器,只要自己无法解析,首先会求助于根域名服务器;
    • 共有13个根域名服务器,每个根域名服务器都是服务器集群,以提供安全性和可靠性;
    • 根域名服务器主要管理顶级域名服务器,通常它不直接将请求的IP地址告诉本地DNS服务器,而是将顶级域名服务器的地址转发给本地DNS服务器,由本地DNS服务器向顶级域名服务器进行请求查找(迭代查询)。
  2. 顶级域名服务器:、.edu、等
  3. 权限域名服务器:每台主机都必须在权威域名服务器上登记

2. DNS的作用

将域名解析为IP地址。客户端向DNS服务器发起域名查询请求,DNS服务器查询域名对应的IP地址并发送给客户端。

3. DNS同时使用TCP和UDP协议

DNS使用53端口号,同时使用TCP和UDP协议

(1) 在区域传输时使用TCP协议
辅助域名服务器会定时向主域名服务器进行查询以便了解数据是否发生变动,如果有变动,会发生一次区域传送,进行数据同步

(2)在域名解析时使用UDP协议
DNS服务器进行域名查询时返回的数据不超过512字节,用UDP传输即可,这样不需要经过三次握手,使DNS服务器负载更低,响应速度更快。

4. DNS查询的完整过程

  • 首先会在浏览器缓存、系统缓存、路由缓存中查找对应的IP地址,如果查找到直接返回;
  • 将请求发送给本地DNS服务器,在本地域名服务器缓存中查询;
  • 本地DNS服务器向根域名服务器发送请求,根域名服务器会返回一个所查询域的顶级域名服务器地址
  • 本地DNS服务器向顶级域名服务器发送请求,接受请求的服务器查询自己的缓存;
  • 本地DNS服务器向权限域名服务器发送请求,权限域名服务器返回对应结果;
  • 本地DNS服务器将返回结果存在缓存中,以便下次使用;
  • 本地DNS服务器将返回结果返回给浏览器。

例如:查询 www.baidu 的IP地址。首先会在浏览器缓存、系统缓存、路透缓存中查找是否有该域名的缓存,如果不存在就将请求发送到本地的DNS服务器中,本地DNS服务器会判断是否存在该域名的缓存,如果不存在,则向根域名服务器发送一个请求,根域名服务器返回负责 的顶级域名服务器的IP地址列表,然后本地DNS服务器向顶级域名服务器发送一个请求,负责 的顶级域名服务器返回负责 .baidu 的权限域名服务器的IP地址列表。然后本地DNS服务器再向权限域名服务器发送请求,最后权限域名服务器返回一个对应的主机名的IP地址列表。

5. 迭代查询和递归查询

  • 递归查询:如果DNS服务器没有查询到对应的IP地址,那么该服务器会询问其他服务器,并将查询结果返回。用户只需要发出一次查询请求
  • 迭代查询:DNS服务器会将能够解析查询请求的其它DNS服务器地址返回给客户端,由客户端向该地址发送请求,直到得到查询结果。用户需要进行多次查询请求

一般客户端向本地DNS服务器发送请求的方式就是递归查询,因为客户端只需要发送一次请求,然后本地DNS服务器返回给我们最终的请求结果。而本地DNS服务器向其它域名服务器请求的过程就是迭代查询,因为每次域名服务器只返回单次查询的结果,下次的查询还是由本地DNS服务器自己进行。

本文标签: 详解dns