Zero Configuration Networking with Bonjour
Cheshire
zeroconf mdns dns-sd service discovery network management configuration
@misc{cheshire:google-2005,
title={Zero Configuration Networking with {Bonjour}},
author={Stuart Cheshire},
month={November},
year={2005},
note={{Google} {TechTalks}},
howpublished={\url{http://video.google.com/videoplay?docid=-7398680103951126462#}}
}
[ video ]
Keep things simple
- Wild array of software and hardware that might have to work together
- Simplicity is the only way to get it all to play nicely
Three operations
Three components to labels: <User Visible Name> <Service Type> <Zone>
- E.g.: <Sales> <_ipp._tcp> <.local.>
Example browsing for a printer
Query: _ipp._tcp.local. PTR
Response: Sales._ipp._tcp.local.
Marketing._ipp._tcp.local.
Engineering._ipp._tcp.local.
3rd Floor Copy Room._ipp._tcp.local.
Example binding a specific printer
Query: Sales._ipp._tcp.local. SRV
Response: Sales._ipp._tcp.local. SRV 0 0 631 my-printer.local.
Query: Sales._ipp._tcp.local. TXT pdl=application/postscript
Query: my-printer.local. A
Response: my-printer.local. A 169.254.12.34
- The SRV request gets the port number to use
- The TXT request gets more information about how to use it, e.g., in this case the page description language and other attribtues (half a K for most printers)
- The A request gets the IPv4 address
Backoff eventually takes you out to querying once per hour
- To avoid that kind of wait, when things join the network they announce themselves
- Short times to live keep things up to date but costs network resources
- Failure to contact devices cause cache to refresh, it's a hint that the cache is out of date
- Other devices overhear that failure as well and then update their caches
- Responses by multicast as well, so they're all snooping on other responses
Power over Ethernet is a big complementing plus
- Faster than USB, longer cables, same ease of use with PoE and ZeroConf
Not just for local use, can also query remote domains
- Standard DNS queries issued to that domain
Local resources advertised
- Flight departures at the airport
- Directions to coffee, dinner, etc. at hotel
- Put advertising on those services!
Goes as far as the domains offered by DHCP, domains manually added by user
Printers might need a default printer driver for anything to work on top of and a fancier one you can install with lots of crazy features, color matching, etc.
- Postscript is a good answer, but a lot of low-end printers don't do it
.local. namespace was a contentious issue
- NAT, local IP, etc., definitely have problems, e.g., doing video chat across Internet
- But printing locally, etc., really don't need those kinds of global addresses
Of note:
- Axis network cameras---running full Linux