概括
我正在尝试设置广域 Bonjour(又名DNS-SD) 使用 ISC Bind 9.9.5,但无法加载提供“富文本”服务域发现的反向查找区域。
背景
为此目的保留了五个特殊 RR 名称:
b._dns-sd._udp.<domain>. db._dns-sd._udp.<domain>. r._dns-sd._udp.<domain>. dr._dns-sd._udp.<domain>. lb._dns-sd._udp.<domain>.
通过对这些名称执行 PTR 查询,客户端可以分别了解:
- 建议浏览的域名列表。
- 建议使用单个默认浏览域。
- 建议使用动态更新注册服务的域名列表。
- 用于注册服务的单个推荐默认域。
- “传统浏览”或“自动浏览”域。
[德莱蒂亚]查询名称的一部分
<domain>
也可以通过不同的方式从主机的 IP 地址中得出。主机获取其 IP 地址并计算该地址及其子网掩码的逻辑 AND,以得出子网的“基”地址(该子网的“网络地址”,或者,相当于该子网上“全零”主机地址的 IP 地址)。然后,它构造与该基地址相对应的常规 DNS“反向映射”名称,并将其用作<domain>
上述查询的名称的一部分。例如,如果主机的地址为 192.168.12.34,子网掩码为 255.255.0.0,则子网的“基”地址为 192.168.0.0,并且为了发现此子网上设备的推荐自动浏览域,主机会对名称“lb._dns-sd._udp.0.0.168.192.in-addr.arpa”发出 DNS PTR 查询。
此外,根据域名:
允许并鼓励使用富文本服务子域名,例如:
Building 2, 1st Floor . example . com . Building 2, 2nd Floor . example . com . Building 2, 3rd Floor . example . com . Building 2, 4th Floor . example . com .
因此,您应该会在 DNS RR 中看到以下内容:
lb._dns-sd._udp.0.0.168.192.in-addr.arpa. PTR Building\ 2\,\ 1st\ Floor.example.com.
问题
虽然我能够加载包含此类 PTR 记录的其他区域(例如正向查找),但我发现在其中in-addr.arpa
收到以下错误:
dns_rdata_fromtext:db.0.168.192.in-addr.arpa:26:靠近“Building\ 2,\ 1st\ Floor.example.com。”:错误名称(检查名称)
所以,我的问题是:
为什么这种情况只发生在 内
in-addr.arpa
?Bind 显然对此类区域进行了特殊处理 — 但为什么呢?我怎样才能按照建议使用“富文本”服务子域,同时又能从客户端的网络地址发现它们?
答案1
其中named.conf
,可以指定check-names ignore
为该区域。
假设in-addr.arpa
区域默认为,fail
而正向查找区域则不是。