mdns
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在其标题中,非零字段是Flags字(84 00),ANCOUNT字(00 01)和ARCOUNT字(00 02)。数据再次以 FQDN开头(对于appletv.local,为十六进制07 61 70 70 6c 65 74 76 05 6c 6f 63 61 6c 00),然后是该 主机的DNS信息:
默认情况下,mDNS仅限并且专门解析以.local顶级域(TLD)结尾的主机名。如果该域包括未实现mDNS但可 以通过传统单播DNS服务器找到的主机,则会导致问题。解决此类冲突需要违反零配置目标的络配置更改 。
mDNS的工作原理
mDNS的工作原理
首先,在 IP协议里规定了一些保留,其中有一个是 224.0.0.251,对应的 IPv6是 [FF02::FB]。
mDNS协议规定了端口Βιβλιοθήκη 5353,而 DNS的端口是 53。
mDNS基于 UDP协议。DNS一般也是基于 UDP协议的,但是也可以使用 TCP协议。
如果理解了 DNS协议,再去理解 mDNS协议就很简单了,区别只是 mDNS一般作用在一个局域内的,有特定 的 IP,也就是 224.0.0.251,有特定的端口 5353,mDNS的作用是实现局域内的服务发现,查询,注册,DNS作用 是实现域名的解析,作用大概是一样的。
介绍
介绍
mdns即多播dns(Multicast DNS),mDNS主要实现了在没有传统DNS服务器的情况下使局域内的主机实现 相互发现和通信,使用的端口为5353,遵从dns协议,使用现有的DNS信息结构、名语法和资源记录类型。并且没 有指定新的操作代码或响应代码。在局域中,设备和设备之前相互通信需要知道对方的ip的,大多数情况,设备 的ip不是静态ip,而是通过dhcp协议动态分配的ip,如何设备发现呢,就是要mdns大显身手,例如:现在物联设 备和app之间的通信,要么app通过广播,要么通过组播,发一些特定信息,感兴趣设备应答,实现局域设备的发 现,当然mdns比这强大。
谢谢观看
资源记录
答案中的所有记录,权威名称服务器和其他记录部分具有相同的格式,统称为“资源记录”(RR)。 mDNS中的资源记录也具有来自单播DNS的略微修改的通用格式: CACHE-FLUSH位用于指示邻居节点,该记录应覆盖此RRNAME和RRTYPE的任何现有缓存条目,而不是附加到 其上。 RDATA字段的格式与单播DNS中的格式相同。但是,DNS服务发现(DNS-SD)是mDNS最常见的用例,它指定 了对其某些格式(特别是TXT记录)的轻微修改。
每个进入局域的主机,如果开启了 mDNS服务的话,都会向局域内的所有主机组播一个消息,我是谁,和我 的IP是多少。然后其他也有该服务的主机就会响应,也会告诉你,它是谁,它的 IP是多少。当然,具体实现要 比这个复杂点。
比如,A主机进入局域,开启了 mDNS服务,并向 mDNS服务注册以下信息:我提供 FTP服务,我的 IP是 192.168.1.101,端口是 21。当 B主机进入局域,并向 B主机的 mDNS服务请求,我要找局域内 FTP服务器,B 主机的 mDNS就会去局域内向其他的 mDNS询问,并且最终告诉你,有一个IP为 192.168.1.101,端口号是 21的 主机,也就是 A主机提供 FTP服务,所以 B主机就知道了 A主机的 IP和端口号了。
协议概述
协议概述
当mDNS客户端需要解析主机名时,它会发送一个IP多播查询消息,要求具有该名称的主机标识自己。然后 该目标机器多播包含其IP的消息。然后,该子中的所有计算机都可以使用该信息来更新其mDNS高速缓存。任何主 机都可以通过发送生存时间(TTL)等于零的响应数据包来放弃其对名称的声明。
mDNS协议发布为 RFC 6762使用IP多播用户数据报协议 (UDP)数据包,由Apple Bonjour和开源Avahi软 件包实现。 Android包含mDNS实现。 mDNS也已在Windows 10中实现,最初仅限于发现络打印机,后来也能够解 析主机名。
mDNS可以与DNS服务发现 (DNS-SD)结合使用, DNS服务发现是RFC 6763中单独指定的配套零配置技术。
示例
示例
尝试pingappletv.local主机会导致mDNS客户端计算机多播以下UDP数据包:
00 00交易ID 00 00旗帜 00 01问题数量 00 00答案数量 00 00权限资源记录数 00 00其他资源记录数 07 61 70 70 6c 65 74 76“appletv” 05 6c 6f 63 61 6c“local” 00终结者 00 01类型(A记录) 00 01班。
appletv.local主机将通过多播其mDNS响应数据包进行响应。例如:
00 00 84 00 00 00 00 01 00 00 00 02 07 61 70 70 6c 65 74 76 05 6c 6f 63 61 6c 00 00 01 80 01 00 00 78 00 00 04 99 6d 07 5a c0 0c 00 1c 80 01 00 00 78 00 00 10 fe 80 00 00 00 00 00 00 02 23 32 ff fe b1 21 52 c0 0c 00 2f 80 01 00 00 78 00 00 08 c0 0c 00 04 40 00 00 08
在局域中使用mDNS
在局域中使用mDNS
mDNS(多播 DNSMulticast DNS)允许系统在局域中广播查询其他资源的名称。Fedora用户经常在没有复 杂名称服务的路由器上接有多个 Linux系统。在这种情况下,mDNS允许你按名称与多个系统通信 ——多数情况 下不用路由器。你也不必在所有本地系统上同步类似/etc/hosts之类的文件。本文介绍如何设置它。
mDNS是一个零配置络服务,它已经诞生了很长一段时间。Fedora Workstation带有零配置系统 Avahi(它 包含 mDNS)。(mDNS也是 Bonjour的一部分,可在 Mac OS上找到。)
数据包结构
查询
资源记录
查询
查询部分中记录的有线格式与单播DNS中的记录略有不同,添加了一个单比特字段。 与在单播DNS中一样,QNAME字段由一系列称为“标签”的长度/值子字段组成。每个标签代表完全限定域名 (FQDN)中的一个以点分隔的子字符串。该列表由单个空字节终止,表示DNS的“根”。 UNICAST-RESPONSE字段用于最小化络上不必要的广播:如果设置了比特,响应者应该直接向查询节点发送 定向单播响应,而不是将响应广播到整个络。 QCLASS字段与单播DNS中的字段相同。
mdns
计算机术语
01 介绍
目录
02 协议概述
03 mDNS的工作原理
04 在局域中使用mDNS
05 数据包结构
06 示例
基本信息
在计算机络中,多播DNS ( mDNS )协议将主机名解析为不包含本地名称服务器的小型络中的IP。它是一种 零配置服务,使用与单播域名系统 (DNS)基本相同的编程接口,数据包格式和操作语义。虽然Stuart Cheshire将mDNS设计为独立协议,但它可以与标准DNS服务器协同工作。
默认情况下,mDNS仅限并且专门解析以.local顶级域(TLD)结尾的主机名。如果该域包括未实现mDNS但可 以通过传统单播DNS服务器找到的主机,则会导致问题。解决此类冲突需要违反零配置目标的络配置更改 。
mDNS的工作原理
mDNS的工作原理
首先,在 IP协议里规定了一些保留,其中有一个是 224.0.0.251,对应的 IPv6是 [FF02::FB]。
mDNS协议规定了端口Βιβλιοθήκη 5353,而 DNS的端口是 53。
mDNS基于 UDP协议。DNS一般也是基于 UDP协议的,但是也可以使用 TCP协议。
如果理解了 DNS协议,再去理解 mDNS协议就很简单了,区别只是 mDNS一般作用在一个局域内的,有特定 的 IP,也就是 224.0.0.251,有特定的端口 5353,mDNS的作用是实现局域内的服务发现,查询,注册,DNS作用 是实现域名的解析,作用大概是一样的。
介绍
介绍
mdns即多播dns(Multicast DNS),mDNS主要实现了在没有传统DNS服务器的情况下使局域内的主机实现 相互发现和通信,使用的端口为5353,遵从dns协议,使用现有的DNS信息结构、名语法和资源记录类型。并且没 有指定新的操作代码或响应代码。在局域中,设备和设备之前相互通信需要知道对方的ip的,大多数情况,设备 的ip不是静态ip,而是通过dhcp协议动态分配的ip,如何设备发现呢,就是要mdns大显身手,例如:现在物联设 备和app之间的通信,要么app通过广播,要么通过组播,发一些特定信息,感兴趣设备应答,实现局域设备的发 现,当然mdns比这强大。
谢谢观看
资源记录
答案中的所有记录,权威名称服务器和其他记录部分具有相同的格式,统称为“资源记录”(RR)。 mDNS中的资源记录也具有来自单播DNS的略微修改的通用格式: CACHE-FLUSH位用于指示邻居节点,该记录应覆盖此RRNAME和RRTYPE的任何现有缓存条目,而不是附加到 其上。 RDATA字段的格式与单播DNS中的格式相同。但是,DNS服务发现(DNS-SD)是mDNS最常见的用例,它指定 了对其某些格式(特别是TXT记录)的轻微修改。
每个进入局域的主机,如果开启了 mDNS服务的话,都会向局域内的所有主机组播一个消息,我是谁,和我 的IP是多少。然后其他也有该服务的主机就会响应,也会告诉你,它是谁,它的 IP是多少。当然,具体实现要 比这个复杂点。
比如,A主机进入局域,开启了 mDNS服务,并向 mDNS服务注册以下信息:我提供 FTP服务,我的 IP是 192.168.1.101,端口是 21。当 B主机进入局域,并向 B主机的 mDNS服务请求,我要找局域内 FTP服务器,B 主机的 mDNS就会去局域内向其他的 mDNS询问,并且最终告诉你,有一个IP为 192.168.1.101,端口号是 21的 主机,也就是 A主机提供 FTP服务,所以 B主机就知道了 A主机的 IP和端口号了。
协议概述
协议概述
当mDNS客户端需要解析主机名时,它会发送一个IP多播查询消息,要求具有该名称的主机标识自己。然后 该目标机器多播包含其IP的消息。然后,该子中的所有计算机都可以使用该信息来更新其mDNS高速缓存。任何主 机都可以通过发送生存时间(TTL)等于零的响应数据包来放弃其对名称的声明。
mDNS协议发布为 RFC 6762使用IP多播用户数据报协议 (UDP)数据包,由Apple Bonjour和开源Avahi软 件包实现。 Android包含mDNS实现。 mDNS也已在Windows 10中实现,最初仅限于发现络打印机,后来也能够解 析主机名。
mDNS可以与DNS服务发现 (DNS-SD)结合使用, DNS服务发现是RFC 6763中单独指定的配套零配置技术。
示例
示例
尝试pingappletv.local主机会导致mDNS客户端计算机多播以下UDP数据包:
00 00交易ID 00 00旗帜 00 01问题数量 00 00答案数量 00 00权限资源记录数 00 00其他资源记录数 07 61 70 70 6c 65 74 76“appletv” 05 6c 6f 63 61 6c“local” 00终结者 00 01类型(A记录) 00 01班。
appletv.local主机将通过多播其mDNS响应数据包进行响应。例如:
00 00 84 00 00 00 00 01 00 00 00 02 07 61 70 70 6c 65 74 76 05 6c 6f 63 61 6c 00 00 01 80 01 00 00 78 00 00 04 99 6d 07 5a c0 0c 00 1c 80 01 00 00 78 00 00 10 fe 80 00 00 00 00 00 00 02 23 32 ff fe b1 21 52 c0 0c 00 2f 80 01 00 00 78 00 00 08 c0 0c 00 04 40 00 00 08
在局域中使用mDNS
在局域中使用mDNS
mDNS(多播 DNSMulticast DNS)允许系统在局域中广播查询其他资源的名称。Fedora用户经常在没有复 杂名称服务的路由器上接有多个 Linux系统。在这种情况下,mDNS允许你按名称与多个系统通信 ——多数情况 下不用路由器。你也不必在所有本地系统上同步类似/etc/hosts之类的文件。本文介绍如何设置它。
mDNS是一个零配置络服务,它已经诞生了很长一段时间。Fedora Workstation带有零配置系统 Avahi(它 包含 mDNS)。(mDNS也是 Bonjour的一部分,可在 Mac OS上找到。)
数据包结构
查询
资源记录
查询
查询部分中记录的有线格式与单播DNS中的记录略有不同,添加了一个单比特字段。 与在单播DNS中一样,QNAME字段由一系列称为“标签”的长度/值子字段组成。每个标签代表完全限定域名 (FQDN)中的一个以点分隔的子字符串。该列表由单个空字节终止,表示DNS的“根”。 UNICAST-RESPONSE字段用于最小化络上不必要的广播:如果设置了比特,响应者应该直接向查询节点发送 定向单播响应,而不是将响应广播到整个络。 QCLASS字段与单播DNS中的字段相同。
mdns
计算机术语
01 介绍
目录
02 协议概述
03 mDNS的工作原理
04 在局域中使用mDNS
05 数据包结构
06 示例
基本信息
在计算机络中,多播DNS ( mDNS )协议将主机名解析为不包含本地名称服务器的小型络中的IP。它是一种 零配置服务,使用与单播域名系统 (DNS)基本相同的编程接口,数据包格式和操作语义。虽然Stuart Cheshire将mDNS设计为独立协议,但它可以与标准DNS服务器协同工作。