Summary
I am attempting to set up Wide-Area Bonjour (aka DNS-SD) using ISC Bind 9.9.5, but cannot load reverse lookup zones providing discovery of "rich-text" service domains.
Background
According to Discovery of Browsing and Registration Domains (Domain Enumeration):
Five special RR names are reserved for this purpose:
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>.
By performing PTR queries for these names, a client can learn, respectively:
- A list of domains recommended for browsing.
- A single recommended default domain for browsing.
- A list of domains recommended for registering services using Dynamic Update.
- A single recommended default domain for registering services.
- The "legacy browsing" or "automatic browsing" domain(s).
[ deletia ]The
<domain>
part of the query name may also be derived a different way, from the host's IP address. The host takes its IP address and calculates the logical AND of that address and its subnet mask, to derive the 'base' address of the subnet (the 'network address' of that subnet, or, equivalently, the IP address of the 'all-zero' host address on that subnet). It then constructs the conventional DNS "reverse mapping" name corresponding to that base address, and uses that as the<domain>
part of the name for the queries described above. For example, if a host has the address 192.168.12.34, with the subnet mask 255.255.0.0, then the 'base' address of the subnet is 192.168.0.0, and to discover the recommended automatic browsing domain(s) for devices on this subnet, the host issues a DNS PTR query for the name "lb._dns-sd._udp.0.0.168.192.in-addr.arpa."
Also, under Domain Names:
rich-text service subdomains are allowed and encouraged, for example:
Building 2, 1st Floor . example . com . Building 2, 2nd Floor . example . com . Building 2, 3rd Floor . example . com . Building 2, 4th Floor . example . com .
Therefore one should expect to see in DNS RRs along the following lines:
lb._dns-sd._udp.0.0.168.192.in-addr.arpa. PTR Building\ 2\,\ 1st\ Floor.example.com.
Problem
Whilst I'm able to load other (e.g. forward-lookup) zones containing such PTR records, I find that within in-addr.arpa
I receive the following error:
dns_rdata_fromtext: db.0.168.192.in-addr.arpa:26: near 'Building\ 2,\ 1st\ Floor.example.com.': bad name (check-names)
So, my questions:
Why does this only happen within
in-addr.arpa
? Bind is obviously giving such zones special treatment—but why?How can I follow the recommendation to have "rich-text" service subdomains whilst enabling their discovery from the client's network address?