域名解析-DNS-MDNS-LLMNR

域名系统DNS(Domain Name System)。
网络上提供名字解析的服务称为域名服务器,网络上存在大量树状组织的DNS服务器,用来完成用域名到网络地址或者网络地址到域名的解析工作。DNS是一种最传统,最重要,也是最常用的,工作原理可参考http://blog.csdn.net/yipiankongbai/article/details/25031461的详细描述。

在用Wireshark抓包时发现很多与DNS有关的协议,其中有LLMNR和MDNS特此记录一下:

LLMNR定义
在DNS 服务器不可用时,DNS 客户端计算机可以使用本地链路多播名称解析 (LLMNR—Link-Local Multicast Name Resolution)(也称为多播 DNS 或 mDNS)来解析本地网段上的名称。例如,如果路由器出现故障,从网络上的所有 DNS 服务器切断了子网,则支持 LLMNR 的子网上的客户端可以继续在对等基础上解析名称,直到网络连接还原为止。
除了在网络出现故障的情况下提供名称解析以外,LLMNR 在建立临时对等网络(例如,机场候机区域)方面也非常有用。
LLMNR为使用IPv4、IPv6或者同时使用这两种地址的设备提供了点对点名称解析服务,可以让同一子网中的IPv4和IPv6设备不需要WINS或DNS服务器就可以解析对方的名称,而这个功能是WINS和DNS都无法完全提供的。虽然WINS可以为IPv4提供客户端-服务器以及点对点名称解析服务,不过并不支持IPv6地址。至于DNS,虽然支持IPv4和IPv6地址,但必须通过专门的服务器才能提供名称解析服务。LLMNR通过在DNS名称解析服务不可用时提供解析服务,弥补了DNS的不足。
LLMNR工作过程
(1) 主机在自己的内部名称缓存中查询名称。如果在缓存中没有找到了名称,那么主机就会向自己配置的主DNS服务器发送查询请求。如果主机没有收到回应或收到了错误信息,主机还会尝试搜索配置的备用DNS服务器。如果主机没有配置DNS服务器,或者如果在连接DNS服务器的时候没有遇到错误但失败了,那么名称解析会失败,并转为使用LLMNR。
(2) 主机通过用户数据报协议(UDP)发送多播查询,查询主机名对应的IP地址,这个查询会被限制在本地子网(也就是所谓的链路局部)内。
(3) 链路局部范围内每台支持LLMNR,并且被配置为响应传入查询的主机在收到这个查询请求后,会将被查询的名称和自己的主机名进行比较。如果没有找到匹配的主机名,那么计算机就会丢弃这个查询。如果找到了匹配的主机名,这台计算机会传输一条包含了自己IP地址的单播信息给请求该查询的主机。

MDNS即组播DNS(multicast DNS)。使用5353端口,在内网没有DNS服务器时,就会出现此组播信息。
在一个没有常规DNS服务器的小型网络内,可以使用mDNS来实现类似DNS的编程接口、包格式和操作语义。
组播DNS是IETF零配置网络(zeroconf)的参与者和DNS扩展(dnsext)工作组共同努力的结果。Zeroconf工作组提出了需求,DNSEXT组受到特许进行细节实现。大部分为mDNS工作的人目前都同时参与两个工作组。
mDNS主要实现了在没有传统DNS服务器的情况下使局域网内的主机实现相互发现和通信。
苹果的Bonjour就是一个基于mDNS的产品。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LLMNR (Link-Local Multicast Name Resolution)、mDNS (Multicast DNS)和DNS (Domain Name System) 是三种常见的域名解析协议。 1. LLMNR (Link-Local Multicast Name Resolution) 是一种在局域网内解析域名的协议。它允许设备在没有 DNS 服务器的情况下进行名称解析。设备可以通过广播消息的方式向局域网内的其他设备查询域名,其他设备可以回应解析结果。LLMNR 主要用于 Windows 系统。 2. mDNS (Multicast DNS) 是一种基于多播的域名解析协议,用于在局域网内解析主机名和服务名称。它不需要依赖中央 DNS 服务器,而是通过在局域网内广播查询消息和回应消息的方式,实现设备之间的域名解析。mDNS 主要用于支持 Zeroconf(零配置网络)的设备,如 Apple 的 Bonjour 和 Linux 的 Avahi。 3. DNS (Domain Name System) 是互联网上最常用的域名解析协议。它是一个分布式的系统,用于将域名映射到对应的 IP 地址。当用户在浏览器中输入一个域名时,操作系统或本地域名服务器会向上级 DNS 服务器发送查询请求,逐级查询直到找到对应的 IP 地址。DNS 使用 UDP 或 TCP 协议进行通信,默认使用 UDP。它是互联网上的标准解析协议。 总结来说,LLMNR 和 mDNS 主要用于局域网内的域名解析,而 DNS 则是用于互联网上的域名解析。它们各自采用不同的机制和协议,但都能实现将域名解析为对应的 IP 地址。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值