Title: Zero%20Configuration%20Networking
1Zero Configuration Networking
- Sander Temme
- ltsander_at_temme.netgt
2Agenda
- What is Zero Configuration Networking
- Demonstration
- Description of Protocols
- Available Implementations
- Usage Sample
3Agenda
- What is Zero Configuration Networking
- Demonstration
- Description of Protocols
- Available Implementations
- Usage Sample
4Agenda
- What is Zero Configuration Networking
- Origins
- What Problems does it Solve?
- What Problems does it Not Solve?
5Origins
6Origins 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.
7Problems Solved
- Automatic IP Address Configuration
- Server-free Hostname Resolution
- Directory-less Service Discovery
8Problems Not Solved
- Security
- Authenticity
- Access Control
- Wide Area Networks (for now)
9Applications
- Printing
- Zero Configuration Chat
- Music Sharing and Streaming (iTunes)
- Tivo streaming photos, music to TV
- Gaming (NASCAR Racing 2002)
- Many devices without interface
10Agenda
- What is Zero Configuration Networking
- Demonstration
- Description of Protocols
- Available Implementations
- Usage Sample
11Agenda
- What is Zero Configuration Networking
- Demonstration
- Description of Protocols
- Available Implementations
- Usage Sample
12IP 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
13Link-local Addressing
Printer
169.254.1.219
169.254.10.29
Network
169.254.4.51
169.254.4.51
14Hostname Resolution
- In Absence of DNS Server
- Multicast DNS
- DNS-like protocol
- Every host has responder
- Listens on 224.0.0.251 and/or ff02fb
- Hostnames picked by user
- Hostname defense
15mDNS
PC_Bill
Printer
169.254.1.219
169.254.10.29
lj21569478
Network
Mac_Steve
169.254.4.51
PC_Larry
169.254.4.51
16Service 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
17DNS-SD
Laserjet, Closet Under the Stairs
PC_Bill
Printer
169.254.1.219
169.254.10.29
Bills Files
lj21569478
Network
Mac_Steve
169.254.4.51
PC_Larry
169.254.4.51
Steves Movies
Larrys Tunes
18Agenda
- What is Zero Configuration Networking
- Demonstration
- Description of Protocols
- Available Implementations
- Usage Sample
19Bonjour
- 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
20Howl
- Open Source from Porchdog Software
- Mostly BSD Licensed
- Windows, FreeBSD, Linux, MacOSX
- C, .NET API
21jmdns
- Pure Java mDNSResponder
- LGPL
- Last Release 11/2003 check CVS
22Agenda
- What is Zero Configuration Networking
- Demonstration
- Description of Protocols
- Available Implementations
- Usage Sample
23Java 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
24Bonjour in Java
- Factory Class DNSSD
- Interfaces define callbacks
BrowseListener Service Browsing
ResolveListener Name Resolution
RegisterListener Service Registration
QueryListener DNS Record Resolution
DomainListener Domain Resolution
25Example 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
26Demo
27Conclusion
- Easy to use
- Cross-platform
- Dynamic
- Configuration-free
28More 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/bonjou
r-dev
29More 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
30More 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)
31More 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.