Upload
rudolf-townsend
View
225
Download
0
Tags:
Embed Size (px)
Citation preview
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: 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
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
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
Printer169.254.1.219
169.254.4.51
169.254.10.29
169.254.4.51
mDNSPC_Bill
PC_Larry
lj21569478
Network
Mac_Steve
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
DNS-SD
Bill’s Files
Larry’s Tunes
Laserjet, Closet Under the Stairs
Printer169.254.1.219
169.254.4.51
169.254.10.29
169.254.4.51
PC_Bill
PC_Larry
lj21569478
Network
Mac_Steve
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
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 Service Browsing
ResolveListener Name Resolution
RegisterListener Service Registration
QueryListener DNS Record Resolution
DomainListener 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
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)