0%

DNS-LLMNR-MDNS-NBNS原理

DNS\LLMNR\MDNS\NBNS原理

DNS

面试官:讲讲DNS的原理?

域名解析过程

浏览器先在自己的缓存中查找有没有域名的解析,如果没有则到主机的hosts文件中找,如果也没有就到本地dns缓存中去找,如果也没有就到本地dns服务器去找,如果该域名不在本地dns服务器解析的范围内,但缓存中已经包好了该解析则返回ip,此解析具有权威性,如果设置了转发模式,则将该消息转发到上一级解析服务器,如果仍不能解析或找根或者上上级,如果没有配置解析则转发到13台根服务器,根服务器再告诉服务器顶级域服务器的地址,顶级于服务器返回二级域服务器的地址,这样一直递归查询,直到找到为止。

dns使用的协议

dns解析时使用udp协议

解析数据数据量较小,一般不超过512字节,解析速度快,对稳定性要求不高

区域传送时使用tcp协议

区域间复制信息传输数据量大,对稳定性的要求高。

DNS的规范规定了2种类型的DNS服务器,一个叫主DNS服务器,一个叫辅助DNS服务器。在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息。当一个辅助DNS服务器启动时,它需要与主DNS服务器通信,并加载数据信息,这就叫做区传送(zone transfer)。 这种情况下,使用TCP协议。

查看域名解析过程命令

dig www.baidu.com

dig +trace www.baidu.com

资源记录RR类型

A

AAAA
PTR //反向域名解析

NS //域名服务器

cname //canonical name 规范名

max 邮件交换

soa 起始授权机构

域名解析服务器又分为权威域名服务器与递归解析服务器。

FQDN-完全合格域名

从客户端到本地dns服务器是迭代查询,dns服务器之间的交互查询是递归查询f

CDN-内容分发网络

将内容缓存再终端用户附近

当用户访问网站时,利用全局负载技术,将用户的访问指向距离最近的缓存服务器上,由缓存服务器响应用户请求。

LLMNR

link-local multicast name resolution 本地链接多路名称解析

当DNS服务不可用时,本地主机就会使用LLMNR协议来进行名称解析,通过UDP协议向224.0.0.252:5355组播地址发送广播,来解析本网段上得名称,使用的数据包格式与传统DNS数据包一致,其不仅能解析ipv4的地址同样也能解析ipv6的协议,。与LLMNR相似的另一种协议是MDNS,其多播地址为224.0.0.251:5353。

工作过程

主机在自己的内部名称缓存中查询名称。如果在缓存中没有找到了名称,那么主机就会向自己配置的主DNS服务器发送查询请求。如果主机没有收到回应或收到了错误信息,主机还会尝试搜索配置的备用DNS服务器。如果主机没有配置DNS服务器,或者如果在连接DNS服务器的时候没有遇到错误但失败了,那么名称解析会失败,并转为使用LLMNR。

主机通过用户数据报协议(UDP)发送多播查询,查询主机名对应的IP地址,这个查询会被限制在本地子网(也就是所谓的链路局部)内。

链路局部范围内每台支持LLMNR,并且被配置为响应传入查询的主机在收到这个查询请求后,会将被查询的名称和自己的主机名进行比较。如果没有找到匹配的主机名,那么计算机就会丢弃这个查询。如果找到了匹配的主机名,这台计算机会传输一条包含了自己IP地址的单播信息给请求该查询的主机。

NBNS

netbios-名称解析

Buy me a coffee.

欢迎关注我的其它发布渠道