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