Zero Configuration Networking Sander Temme. Agenda What is Zero Configuration Networking...

31
Zero Configuration Networking Sander Temme <[email protected]>

Transcript of Zero Configuration Networking Sander Temme. Agenda What is 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

Printer

Network

169.254.1.219

169.254.4.51

169.254.10.29

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

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

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

/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.