dns基础

详解:DNS 解析过程10个小步骤

  1. 浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束。同时域名被缓存的时间也可通过TTL属性来设置。
  2. 如果浏览器缓存中没有(专业点叫还没命中),浏览器会检查操作系统缓存中有没有对应的已解析过的结果。而操作系统也有一个域名解析的过程。在windows中可通过c盘里一个叫hosts的文件来设置,如果你在这里指定了一个域名对应的ip地址,那浏览器会首先使用这个ip地址。
  3. 但是这种操作系统级别的域名解析规程也被很多黑客利用,通过修改你的hosts文件里的内容把特定的域名解析到他指定的ip地址上,造成所谓的域名劫持。所以在windows7中将hosts文件设置成了readonly,防止被恶意篡改。
  4. 如果至此还没有命中域名,才会真正的请求本地域名服务器(LDNS)来解析这个域名,这台服务器一般在你的城市的某个角落,距离你不会很远,并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约80%的域名解析到这里就完成了。
  5. 如果LDNS仍然没有命中,就直接跳到Root Server 域名服务器请求解析
  6. 根域名服务器返回给LDNS一个所查询域的主域名服务器(gTLD Server,国际顶尖域名服务器,如.com .cn .org等)地址
  7. 此时LDNS再发送请求给上一步返回的gTLD
  8. 接受请求的gTLD查找并返回这个域名对应的Name Server的地址,这个Name Server就是网站注册的域名服务器
  9. Name Server根据映射关系表找到目标ip,返回给LDNS
  10. LDNS缓存这个域名和对应的ip
  11. LDNS把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程至此结束

 DNS 查询类型

从客户端出发,完整的DNS 查找过程中,会出现三种类型的查询。

通过组合使用这些查询,优化的 DNS 解析过程可缩短传输距离。

递归查询

本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机。

迭代查询 

本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。

非递归查询 

可以理解为缓存查找或者一次搞定的查找。

非递归查询发生在 Client 和 DNS Server 之间,指的是,请求的 DNS Server 已经知道答案,直接返回。这里可能有两种情况,一种是 DNS Server 本机缓存了对应的 IP,或者是缓存了对应的域名的权威服务器。第二种情况只需要再发一次请求,即可拿到结果返回

当 DNS 解析器客户端查询 DNS 服务器以获取其有权访问的记录时通常会进行此查询,因为其对该记录具有权威性,或者该记录存在于其缓存内。

DNS 服务器通常会缓存 DNS 记录,查询到来后能够直接返回缓存结果,以防止更多带宽消耗和上游服务器上的负载。


递归查询与迭代查询相结合

常见的资源记录类型如表所示。

类型编码内容
A1将 DNS 域名映射到 IPv4 地址,基本作用是说明一个域名对应了哪些 IPv4 地址
NS2权威名称服务器记录,用于说明这个区域有哪些 DNS 服务器负责解析
CNAME5别名记录,主机别名对应的规范名称
SOA6起始授权机构记录,NS 记录说明了有多台服务器在进行解析,但哪一个才是主服务器,NS 并没有说明,SOA 记录了说明在众多 NS 记录里哪一台才是主要的服务器
MX15邮件交换记录,指定负责接收和发送到域中的电子邮件的主机
TXT16文本资源记录,用来为某个主机名或域名设置的说明
AAAA28将 DNS 域名映射到 IPv6 地址,基本作用是说明一个域名对应了哪些 IPv6 地址


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值