Transcript Zero Configuration Networking
Zero Configuration Networking
Sander Temme
Agenda
• What is Zero Configuration Networking • Demonstration • Description of Protocols • Available Implementations • Usage Sample
Agenda
• What is Zero Configuration Networking • Demonstration • Description of Protocols • Available Implementations • Usage Sample
Agenda
• What is Zero Configuration Networking – Origins – What Problems does it Solve?
– What Problems does it Not Solve?
Origins
Origins: IETF
• Zero Configuration Working Group • Established September 1999 • Charter fragment: The goal of the Zero Configuration Networking (ZEROCONF) Working Group is to enable networking in the absence of configuration and administration.
Problems Solved
• Automatic IP Address Configuration • Server-free Hostname Resolution • Directory-less Service Discovery
Problems Not Solved
• Security – Authenticity – Access Control • Wide Area Networks (for now)
Applications
• Printing • Zero Configuration Chat • Music Sharing and Streaming (iTunes) • Tivo: streaming photos, music to TV • Gaming (NASCAR Racing 2002) • Many devices without interface
Agenda
• What is Zero Configuration Networking • Demonstration • Description of Protocols • Available Implementations • Usage Sample
Agenda
• What is Zero Configuration Networking • Demonstration • Description of Protocols • Available Implementations • Usage Sample
IP Address Autoconfiguraton
• In Absence of DHCP Server • Link-local Addressing • Solved by IPv6 • IPv4: pick random in 169.254/16 – Address Defense – Multihomed systems: only one interface • Supported on Mac and Windows
169.254.4.51
Link-local Addressing
169.254.1.219
Printer 169.254.10.29
Network 169.254.4.51
Hostname Resolution
• In Absence of DNS Server • Multicast DNS – DNS-like protocol – Every host has responder – Listens on 224.0.0.251 and/or ff02::fb • Hostnames picked by user – Hostname defense
PC_Larry 169.254.4.51
mDNS
PC_Bill 169.254.1.219
Printer 169.254.10.29
lj21569478 Network Mac_Steve 169.254.4.51
Service Discovery
• Human-readable Service Names • Runs on mDNS • Query for Service Type returns list – Long-lived queries • Service Name resolves to – hostname – port, add. info – IP address
Bill’s Files
DNS-SD
PC_Bill 169.254.1.219
Laserjet, Closet Under the Stairs
Printer 169.254.10.29
lj21569478 Network PC_Larry 169.254.4.51
Larry’s Tunes
Mac_Steve 169.254.4.51
Steve’s Movies
Agenda
• What is Zero Configuration Networking • Demonstration • Description of Protocols • Available Implementations • Usage Sample
Bonjour
• First implementation on market • Apple Trademark • Introduced in Mac OS X 10.2
• Incorporated in iTunes for Windows • Recently Released under APSL – For Windows, POSIX platforms, Java
Howl
• Open Source from Porchdog Software • Mostly BSD Licensed • Windows, FreeBSD, Linux, MacOSX • C, .NET API
jmdns
• Pure Java mDNSResponder • LGPL • Last Release 11/2003: check CVS
Agenda
• What is Zero Configuration Networking • Demonstration • Description of Protocols • Available Implementations • Usage Sample
Java Example: SimpleChat
• 179 non-comment LOC • Listen on ephemeral port • Advertise on mDNS • Listen for other instance on mDNS • Put found instances in pop-up menu • Send chat messages to selected partner
Bonjour in Java
• Factory Class: DNSSD • Interfaces define callbacks: BrowseListener ResolveListener Service Browsing Name Resolution RegisterListener QueryListener
DomainListener
Service Registration DNS Record Resolution
Domain Resolution
Example: Browsing
• Call Browse method • pass in class that implements BrowseListener – serviceFound() when service appears – serviceLost() when service goes away • Interface methods manipulate pop-up menu
Demo
Conclusion
• Easy to use • Cross-platform • Dynamic • Configuration-free
More Information
• • • • • • http://developer.apple.com/networking/bonjour/ – Developer Info http://www.apple.com/macosx/features/bonjour/ – Marketing http://www.zeroconf.org/ (IETF site) http://www.dotlocal.org/ (Kinda stale) http://www.porchdogsoft.com/ (Howl) http://www.lists.apple.com/mailman/listinfo/bonjour dev
More Info: LL IP Addressing
• Generally happens after DHCP times out • Host picks Random Address • Sends out ARP Request for Address • If no Answer, Assumes Address • If Answer, Host Starts Over
More Info: mDNS
• DNS-like Protocol • All Hosts Listen on Multicast 224.0.0.251, port 5353 • All Hosts authoritative for .local. domain • Short-lived Hostname Cache • Introductory Unsollicited Response • Goodbye Packet (TTL == 0)
More Info: DNS-SD
• Uses DNS PTR Records • PTR of form:
Service Name._http._tcp.local.
• Free-form Service Name • Enumeration: browsing for
_http._tcp.local.
gives list of web service instances • Resolving Instance Name yields hostname, TXT record with port info, etc.