DNS解析过程及原理:
- 客户端提出域名解析请求,并将该请求发给本地的域名服务器。
- 当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该记录项,则本地的域名服务器就直接把查询的结果返回。
- 如果本地的缓存中没有该项记录,则本地的域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个查询域(根的子域)的主域名服务器的地址。
- 本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该记录,则返回相关的下级的域名服务器的地址。
- 重复第4步,直到找到正确的记录。
- 本地域名服务器把返回的结果保存到缓存,以备下次使用,同时还将结果返回给客户端。
举例说明解析域名的过程:
假设我们的客户机要访问 www.linejet.com ,此客户本地的域名服务器是:dns.company.com,一个根域名服务器是:NS.INTER.NET,所要访问的网站的域名服务器是:dns.linejet.com,域名解析的过程如下所示:
- 客户端发出请求解析域名www.linejet.com的报文;
- 本地的域名服务器收到请求后,查询本地缓存,假设没有该记录,则本地域名服务器dns.company.com则向根域名服务器 NS.INTER.NET 发送请求解析域名www.lineje t.com ;
- 根域名服务器NS.INTER.NET收到请求后查询本地记录得到如下结果:linejet.com NS dns.linejet.com(表示linejet.com的域名服务器为:dns.linejet.com),同时给出dns.linejet.com的地址,并将结果返回给域名服务器 dns.company.com;
- 域名服务器 dns.company.com收到回应后,再发出请求解析域名 www.linejet.com的报文;
- 域名服务器dns.linejet.com收到请求后,开始查询本地的记录,找到如下一条记录:www.linejet.com A 211.120.3.12(表示linejet.com域中域名服务器dns.linejet.com的IP地址为:211.120.3.12 ),并将结果返回给客户本地域名服务器dns.company.com;
- 客户本地域名服务器将返回的结果保存在本地缓存,同时将结果返回给客户机。
这样就完成了一次域名解析。
参考:https://wenku.baidu.com/view/fb70fed43186bceb19e8bbbd.html