Zero Configuration Networking

Download Report

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.