PowerPoint Presentation - Apache and Zeroconf Networking

Download Report

Transcript PowerPoint Presentation - Apache and Zeroconf Networking

Apache and Zeroconf Networking
Sander Temme
<[email protected]>
Agenda
 What is Zeroconf?
 Technology Overview
 Existing Initiatives
 Zeroconf-enabling Apache httpd
 Zeroconf-enabling Tomcat
 Conclusion
What is Zeroconf?
 IETF Working Group
– Formed in Sept. 1999
 Usability of TCP/IP
What is Zeroconf?
What is Zeroconf?
 TCP/IP Autoconfiguration
 Network naming
 Service Browsing
Technology Overview
 Link-local addressing
 multicast DNS
 DNS Service-Discovery
Link-local Addressing
 No Central Address Server
 Pick a Random Address
– In 169.254.0.0/16 range
 Address Defense
 Can Work With Centrally Assigned
Addresses
Link-local Addressing
169.254.1.219
Network
Printer
169.254.10.29
169.254.4.51
mDNS
 DNS-like Protocol
 Every Host Runs Responder
 Hosts Pick Own Names
 Communication over IP Multicast
 Link-local
 Resolves to Link-local or Regular Address
mDNS
PC_BILL
169.254.1.219
Network
Printer
169.254.10.29
lj21569478
169.254.4.51
PC_LARRY
DNS-SD
 Service Publishing and Browsing
 Uses Existing DNS Record types
 User Sees Only Service Names
 Works With mDNS or Regular DNS
DNS-SD
PC_BILL
169.254.1.219
Bill’s Files
Network
Laserjet in the
Closet Under
the Stairs
Printer
169.254.10.29
lj21569478
169.254.4.51
PC_LARRY
Larry’s Tunes
Example Applications
 Printer configuration
 Music sharing
 Peer to peer chat
 Gaming
 Telnet server
Peer to Peer Chat
Sharing Tunes
Sharing Sites
Platform support
 MacOSX 10.2 and up
 Linux: several initiatives
– Mandrake
 Windows…
Windows and Rendezvous
Existing Initiatives
 Apple’s Rendezvous
 mod_rendezvous
 mod_rendezvous_apple
 jmdns
 dotlocal.org
 zeroconf.sourceforge.net
 Mandrake Linux
 Swampwolf
Swampwolf
 mDNS deamon and library:
howl
 API for service registration
 Linux, FreeBSD, Windows
 BSD-style license
 Plugin for Internet Explorer
on Windows
http://www.swampwolf.com/
Zeroconf and Apache httpd
 Module named mod_zeroconf
 Registers Apache Virtualhosts with external
mDNS responder
 Configurable Service names and paths
 Targeted at Apache httpd 2.0
Demo
mod_zeroconf Design
Apache 2.0
Core
Virtual Host Config Info
mDNS Callbacks
mod_zeroconf
mDNS Registration
Howl
mDNSResponder
What Gets Registered?
 Service Name
 SRV information: port, hostname, partial
URI
 Hostname (if different)
 Callback function
mod_zeroconf Design
Apache
Core
Virtual Host Config Info
Callback
mod_zeroconf
Process
mDNS Registration
mDNS Callbacks
Howl
mDNSResponder
Registration Callbacks
 Network can be very dynamic
 Service name, Hostname conflicts
 Apache needs to respond
 Can’t block parent process:
– fork a child
Known Issues
 Doesn’t know about SSL, other features
 ServerName needs to be name:port
 Callback child is not reaped
 Callbacks are vestigal: no conflict resolution
 Host registration not solid code
 Doesn’t escape periods in service name
 NO stop/restart/graceful code
To-dos
 Learn about https protocol
 Learn about DAV, …
 Port to MacOSX? Apache 1.3?
 Implement stop/restart
 Alternative mDNS implementations
 IPv6 compatibility
 More solid hostname registration
Zeroconf-enabling Tomcat
 Ideas
–
–
–
–
Java implementation of Zeroconf: jmdns
Or talk to (native) system mDNS
Use this to register Tomcat webapps
And web services? With WDSL info?
– How would that interfere with UDDI stuff?
– Dynamic deployment of webapps requires
dynamic updates of mDNS registration
 No code available yet
Conclusion
 Zeroconf is great
 Will make networks more usable
 Platform support needed across vendors
 Applications will follow
Updates
http://apache.org/~sctemme/Apcon2003/TU10/