310 likes | 511 Views
Apache and Zeroconf Networking. Sander Temme <sander@temme.net>. 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.
E N D
Apache and Zeroconf Networking Sander Temme <sander@temme.net>
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? • 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 Printer Network 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 Printer Network 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 Laserjet in the Closet Under the Stairs 169.254.1.219 Bill’s Files Printer Network 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
Platform support • MacOSX 10.2 and up • Linux: several initiatives • Mandrake • Windows…
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
mod_zeroconf Design Apache 2.0 Core Virtual Host Config Info mod_zeroconf mDNS Callbacks Howl mDNSResponder mDNS Registration
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 mod_zeroconf Callback Process mDNS Callbacks Howl mDNSResponder mDNS Registration
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/