首页 » Network » Network-else » 正文

一文读懂域名解析流程

0x01 解析类型

1. A记录:域名->IP

1.1 泛解析:*.lsawebtest.top都能指向同一个IP

2. cname(别名)记录:多个名字映射到同一台计算机,如www和mail这两个别名都指向lsawebtest.top,分别提供www和mail服务。

3. NS记录:指定由哪个DNS服务器解析你的域名,如lsawebtest.top/ns2.lsawebtest.top

4. MX记录:将以该域名为结尾的电子邮件指向对应的邮件服务器以进行处理,如@lsawebtest.top结尾的邮件发到MX记录的邮件服务器上,权重小的优先。

5. TXT记录:域名的说明,可用于SPF(它向收信者表明,哪些邮件服务器是经过某个域名认可会发送邮件)和域名所有权验证。

6. AAAA记录:指向IPv6。

0x02 域名解析流程

//图片来源于网络

1.先查找hosts文件的映射,找到就直接完成域名解析,否则到第二步。

2.查找本地DNS解析器缓存,有映射就完成解析,命令:ipconfig /displaydns,ipconfig /flushdns,否则进行第三步。

3.找首选(本地)dns服务器,如果要查询的域名包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析(权威)。如果要查询的域名不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析(非权威)。否则进入第四步。

4.如果设置了dns转发,则此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,如此循环。如果非转发模式,则首选(本地)dns就把请求发到根dns服务器进行迭代查询直至返回IP到客户机。

以解析www.lsawebtest.top为例:

1.查hosts文件映射,无,下一步。

2.查dns解析器缓存,无,下一步。

3.查首选(本地)dns服务器,无,下一步。

4.首选(本地)dns服务器请求根dns,如图

5.本地(首先)dns服务器向其中一台根dns(root-servers.net)发起请求查询www.lsawebtest.top,如图

返回顶级域top.的ns记录,让你去这几台服务器查询。

6.接着再向其中一台top.域的服务器(c.zdnscloud.com)请求www.lsawebtest.top,返回了lsawebtest.top域的服务器,让你去这其中一台查询,如图

7.接着再向hichina.com查询www.lsawebtest.top,返回一条别名记录,如图

8.当dns请求到别名的时候会终止查询,再对别名发起查询,最终可以获取到一条A记录,就是lsawebtest.top的IP。

0x03 结语

这里说明一下,全球dns根服务器只有13台是不准确的说法,还有很多是镜像站,有兴趣的可以查一下为什么只能有13台根dns服务器和百度的dns解析过程,稍微复杂一点点。

Comment