如果我不想用于.localmDNS 服务,我可以使用不同的顶级域名 (TLD) 吗?
举例来说,我可以设置一些家庭 NAS 设备,并将它们命名为:
或者将一些打印机重命名为
或者将我家中的一些物联网设备重命名为更有意义的名称,例如:
我该怎么做,这会导致什么问题?
尽管在协议中技术上可行(并且有些设备忘记添加后缀),但它与大多数实现不兼容,其中许多实现甚至不会将名称路由到 mDNS 处理程序,除非它们以.local. (Linux 上的 Avahi 是我所知道的唯一在常见 PC 操作系统上允许添加其他后缀的实现。)
不是,.local.是mDNS顶级域名。来自RFC 6762:
\n\n本文档指定 DNS 顶级域
\n.local.是具有特殊语义的特殊域,即任何以 结尾的完全限定名称都是.local.链接本地的,并且此域内的名称仅在其来源的链接上才有意义。
\n这类似于 169.254/16 前缀中的 IPv4 地址或 FE80::/10 前缀中的 IPv6\n地址,它们是链路本地的,\n仅在其来源的链路上有意义。对以 结尾的名称的任何 DNS 查询都
\n.local.必须发送到\nmDNS IPv4 链路本地多播地址 224.0.0.251(或其 IPv6\等效的 FF02::FB)。
仅当使用 时,您才能获得这些特殊语义.local。因此,您应该相应地命名您的设备:
movies.nas.local.pictures.nas.local.livingroom.printer.local.upstairs.printer.local.patio.lights.local.bedroom.lights.local.garage.door.local.driveway.camera.local.但是,仍然可以设置您的 DNS,以便简单地movies.nas解析为您的本地地址。
\n\n是否出现以 结尾的名称并不重要
\n.local.\n因为用户明确键入了以 结尾的完全限定域名\n.local.,还是因为用户输入了不合格\n域名并且主机软件附加了后缀.local.\n因为该后缀出现在用户中\ 的搜索列表。后缀.local.可能会出现在搜索列表中,因为用户手动配置了它,或者因为它是通过 DHCP [ RFC2132 ] 或通过用于配置 DNS 搜索列表的任何其他机制接收的。在这方面,.local.后缀的处理方式与 DNS 搜索列表中可能出现的任何其他搜索域没有区别。如果没有其他常规 DNS 服务器\n可用,则对不以 结尾的名称的 DNS 查询
\n.local.可以发送到\nmDNS 多播地址。这可以允许同一链路上的主机在网络中断期间继续使用彼此的全局唯一 DNS 名称进行通信,从而中断与更大的 Internet 的通信。\n通过本地多播解析全局名称时,更重要的是\n使用 DNS 安全扩展 (DNSSEC) [ RFC4033 ] 或其他\n安全机制来确保响应是可信的。\n通过本地多播解析全局名称是一个有争议的问题,\n本文档不会进一步讨论它 [\xe2\x80\ xa6]。(来自3. 多播 DNS 名称)
\n
\n\n对于不以 结尾的名称,故障转移到多播 DNS 的选项
\n.local.应该是用户配置的选项,并且默认情况下应该禁用,因为可能存在与明显全局名称的意外本地解析相关的安全问题。为不以 结尾的名称启用\n多播 DNS.local.可能适用于\n安全隔离网络,或者在某些未来网络上\n机器专门使用 DNSSEC 进行所有 DNS 查询,并且拥有能够生成适当的加密 DNSSEC\n签名的多播 DNS\n响应程序,从而防止欺骗。通过附加(或不附加)来查找不合格(相对)名称的选项由是否出现(或不出现)在客户端的 DNS 搜索列表中
\n.local.来控制。.local.(摘自13.启用和禁用组播DNS)
\n
\n\n如果对全局DNS 名称的 DNS 查询被发送到 mDNS 多播地址(在网络中断期间,会中断与更大的 Internet 的通信),则使用 DNSSEC尤为重要,因为\n用户可能会觉得他或她正在通信与某个真实的主机进行通信,而实际上他或她正在与某个只是伪装成该名称的本地主机进行通信。这对于以 结尾的名称来说不太重要
\n.local.,因为用户应该知道这些名称仅具有本地意义,并不隐含全局权限。大多数计算机用户都会忽略在完全限定域名末尾键入尾随点,\n 使其成为相对域名(例如\n
\nwww.example.com)。如果发生网络中断,\n尝试正确解析输入的名称将失败,\n从而导致\n应用搜索列表,包括 (.local.如果存在)。恶意主机可能会www.example.com.通过回答\n所产生的多播 DNS 查询来伪装成www.example.com.local.. 为了避免这种情况,主机不得将搜索后缀.local.(如果存在)附加到任何包含两个或多个标签的相对(部分限定)主机名。附加.local.到单标签相对主机名是可以接受的,因为用户不应该期望单标签主机名会按原样解析。但是,在搜索列表中同时拥有 和 的用户example.com应该local\n意识到,如果他们www在 Web 浏览器中键入内容,\n他们可能无法立即清楚显示的页面是\nwww.example.com还是www.local。(摘自21.安全考虑)
\n
因此,您可以在所有客户端上设置名称解析器.local.,以在其搜索列表中使用 ,而不仅仅是,.并且它将通过 mDNS 解析.nas、.printer、和(以及其他所有内容);至少在没有可用的全局解析器的情况下是这样。这正是问题所在,您可能会与某些全局名称发生冲突,例如、、、、、,以及许多其他实际上是注册的顶级域名。.lights.door.camera.camera.movie.furniture.lighting.house.frontdoor.kitchen
解决此问题的一种方法是自己购买相应的全局域,以确保其他人不会以冲突的方式使用它,但建议的方法是为您的 mDNS 设备使用单标签域名,即
\nmovies-nas.local.pictures-nas.local.livingroom-printer.local.upstairs-printer.local.patio-lights.local.bedroom-lights.local.garage-door.local.driveway-camera.local.此外,如果您使用 mDNS 进行服务发现(RFC6763),您可以为这些服务提供完全任意的用户友好名称,例如
\nMy most lovely NAS._http._tcp.local.The livingroom machine._ipp._tcp.local.在服务浏览器中,只有第一个标签作为服务名称对用户可见。
\n| 归档时间: |
|
| 查看次数: |
2833 次 |
| 最近记录: |