Zero Configuration Networking

Download Report

Transcript Zero Configuration Networking

Zero Configuration Networking
Sander Temme
<[email protected]>
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
Link-local Addressing
169.254.1.219
Printer
169.254.10.29
Network
169.254.4.51
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
mDNS
PC_Bill
169.254.1.219
Printer
169.254.10.29
lj21569478
Network
Mac_Steve
PC_Larry
169.254.4.51
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
DNS-SD
PC_Bill
169.254.1.219
Laserjet, Closet
Under the Stairs
Printer
169.254.10.29
lj21569478
Bill’s Files
Network
Mac_Steve
PC_Larry
169.254.4.51
169.254.4.51
Larry’s Tunes
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
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
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/bonjourdev
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.