Mod_zeroconf A Zero Configuration Registration Module for Apache 2.0.

Slides:



Advertisements
Similar presentations
Module 4: Configuring a Client for Name Resolution
Advertisements

MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 6 Managing and Administering DNS in Windows Server 2008.
1 Configuring Internet- related services (April 22, 2015) © Abdou Illia, Spring 2015.
Nassau Community College
Developers: Alexey Rastvortsev, Ilya Kolchinsky Supervisors: Roy Friedman, Alex Kogan.
IOS Networking CS328. Big Picture Core Foundation Networking CF Networking APIs are abstractions on top of the BSD sockets to make it easier to program.
SUPE z2z: Discovering Zeroconf Services Beyond Local Link Jae Woo Lee, Henning Schulzrinne Columbia University Wolfgang Kellerer, Zoran Despotovic.
© 2010, Robert K. Moniot Chapter 1 Introduction to Computers and the Internet 1.
Hands-On Microsoft Windows Server 2003 Networking Chapter 7 Windows Internet Naming Service.
28-Jun-15 Basic Protocols. 2 Sockets Sockets, or ports, are a very low level software construct that allows computers to talk to one another When you.
Measurements of Multicast Service Discovery in a Campus Wireless Network Se Gi Hong, Suman Srinivasan, and Henning Schulzrinne Columbia University.
CP476 Internet Computing Browser and Web Server 1 Web Browsers A client software program that allows you to access and view Web pages on the Internet –Examples.
© 2004, Robert K. Moniot Chapter 1 Introduction to Computers and the Internet.
IIS and PWS. What is IIS and PWS? Microsoft Internet Information Server (IIS) and Peer Web Services (PWS) enable Windows NT servers with the ability to.
Accelerating Service Discovery in Ad Hoc Zero Configuration Networking
Domain Name Server © N. Ganesan, Ph.D.. Reference.
Multicast DNS Draft-aboba-dnsext-mdns-00.txt. Outline Goals and objectives Scope of the multicast DNS DNS server discovery Non-zeroconf behavior Zeroconf.
1 Chapter Overview Introduction to Windows XP Professional Printing Setting Up Network Printers Connecting to Network Printers Configuring Network Printers.
1 Enabling Secure Internet Access with ISA Server.
Linux Operations and Administration
By Junaid Shaikh SE Computer
DYNAMIC HOST CONFIGURATION PROTOCOL (DHCP) BY: SAMHITA KAW IS 373.
Web Server Configuration Alokes Chattopadhyay Computer & Informatics Centre IIT Kharagpur.
Module 7: Configuring TCP/IP Addressing and Name Resolution.
/dev/urandom Barry Britt, Systems Support Group Department of Computer Science Iowa State University.
Introduction to Networking Concepts. Introducing TCP/IP Addressing Network address – common portion of the IP address shared by all hosts on a subnet/network.
Session 10 Windows Platform Eng. Dina Alkhoudari.
Chapter 10 Intro to Routing & Switching.  Upon completion of this chapter, you should be able to:  Explain how the functions of the application layer,
4/11/06Tuesday Seminar1 The State of Service Discovery Jeff Pang.
Getting to Know TiVo: The Home Media Engine (HME SDK) Eric M. Upchurch CS 525 Spring 2008.
Zero Configuration Networking Sander Temme. Agenda What is Zero Configuration Networking Demonstration Description of Protocols Available Implementations.
資 管 Lee Lesson 13 IPv6 and Name Resolution. 資 管 Lee Lesson Objectives IPv6 name-to-address and address-to-name resolution IPv6 name resolution support.
Enabling Embedded Systems to access Internet Resources.
XTM Networking Tips and Tricks Carlo Alvarez Technical Trainer - APAC.
1 Chapter Overview Installing the TCP/IP Protocols Configuring TCP/IP.
1 Chapter Overview Using the New Connection Wizard to configure network and Internet connections Using the New Connection Wizard to configure outbound.
CN1260 Client Operating System Kemtis Kunanuraksapong MSIS with Distinction MCT, MCITP, MCTS, MCDST, MCP, A+
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Course ILT Internet/intranet support Unit objectives Use the Internet Information Services snap-in to manage IIS, Web sites, virtual directories, and WebDAV.
Module 3: Designing IP Addressing. Module Overview Designing an IPv4 Addressing Scheme Designing DHCP Implementation Designing DHCP Configuration Options.
Apache and... Virtual Hosts ---- aliases mod_rewrite ---- htaccess AFNOG 11 Kigali, Rwanda May 2010 Dorcas Muthoni Courtesy: Hervey Allen.
IPv6 – What You Need To Know Tom Hollingsworth CCNP,CCVP,CCSP, MCSE.
Apache and Zeroconf Networking Sander Temme. Agenda u What is Zeroconf? u Technology Overview u Existing Initiatives u Zeroconf-enabling Apache httpd.
Naming and Discovery Homenet Interim ‘11. Naming Requirements (Some) devices and hosts need names In the Homenet context, names (and services) should.
Local IPv6 Networking March 2000 Adelaide IETF Bob Hinden / Nokia.
Interoperable marine monitoring systems Toma Daniel Mihai Technical University of Catalonia Mentor: Tom O’Reilly MBARI 2010.
1 Apache and... Virtual Hosts ---- aliases mod_rewrite ---- htaccess AFNOG X Cairo, Egypt May 2009 Hervey Allen.
1/28/2010 Network Plus IP Addressing Review. IP Address Classes.
7DS - Node Cooperation and Information Exchange in Mostly Disconnected Networks Suman Srinivasan, Arezu Moghadam, Se Gi Hong, Henning Schulzrinne IRT Lab,
Configuring and Troubleshooting Identity and Access Solutions with Windows Server® 2008 Active Directory®
NetTech Solutions Common Connectivity Problems Lesson Eight.
An Address Management Mechanism for Blocking External Communications in IPv6 Networks 1.
WEEK 11 – TOPOLOGIES, TCP/IP, SHARING & SECURITY IT1001- Personal Computer Hardware System & Operations.
Apache Web Server Architecture Chaitanya Kulkarni MSCS rd April /23/20081Apache Web Server Architecture.
Computer Network Architecture Lecture 6: OSI Model Layers Examples 1 20/12/2012.
(ITI310) By Eng. BASSEM ALSAID SESSIONS 9: Dynamic Host Configuration Protocol (DHCP)
Week-6 (Lecture-1) Publishing and Browsing the Web: Publishing: 1. upload the following items on the web Google documents Spreadsheets Presentations drawings.
Presented by Deepak Varghese Reg No: Introduction Application S/W for server load balancing Many client requests make server congestion Distribute.
Skype.
Web Technology Seminar
Understand Names Resolution
Troubleshooting ip Chapter 5e.
Apache and... Virtual Hosts ---- aliases mod_rewrite ---- htaccess
Large Scale Parallel Print Service
Sockets and Beginning Network Programming
PHP / MySQL Introduction
Troubleshooting ip Chapter 5e.
APACHE WEB SERVER.
Presentation transcript:

mod_zeroconf A Zero Configuration Registration Module for Apache 2.0

Sander Temme

Agenda Technology Overview Zeroconf Applications mod_zeroconf for Apache 2.0 –Design –Demo –Code Walkthrough Q&A

What is Zeroconf? IETF Working Group –Formed in Sept Usability of TCP/IP Enhancements to Existing Protocols Not SLP, …

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 /16 range Address Defense Can Work With Centrally Assigned Addresses

Link-local Addressing Printer Network

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

Printer mDNS PC_BILL PC_LARRY lj Network Mac_Steve

DNS-SD Service Publishing and Browsing Uses Existing DNS Record types User Sees Only Service Names Works With mDNS or Regular DNS

DNS-SD Bill’s Files Larry’s Tunes Laserjet, Closet Under the Stairs Printer PC_BILL PC_LARRY lj Network Mac_Steve Steve’s Movies

Applications Printer Configuration Music/Photo/Document Sharing Distributed Compilation Network gaming … (the sky is the limit)

Peer to Peer Chat

Sharing Tunes

Sharing Sites

Platform support MacOSX 10.2 and up Linux: several initiatives –Mandrake put it in the distribution –No one else so far Windows… –Link-local addressing works –Third-party mDNSResponder

Windows and Rendezvous

Zeroconf on Linux May need Link-local address – – Need mDNSResponder –tmdns or –Apple’s mDNSResponder or –zmdns, openmdns (search SourceForge) or –Howl or –Embeddable: mdnsd –Running Java? Try

Zeroconf and Apache Goals –Publish Apache http services –Work with external mDNSResponder –Support Apache 2.0 –ASF Licensed Existing initiatives –mod_rendezvous: Apache 1.3, Mac only –mod_rendezvous_apple: ditto –mdnsmod: No code on SF, in ‘planning stage’

External mDNSResponder Apple mDNSResponder –No client libraries zmdns –Wrapper around Apple code –Mixed BSD, APSL –Alpha stage openmdns, tmdns –GPL

Howl Based on Apple code Modified BSD license At version 0.9.3, API should be stable Linux, Windows, MacOSX, … Plugin for Windows Internet Explorer

Configuration # En/disable Zeroconf server-wide. Default: off Zeroconf {on|off} # Register main server or virtualhost container. ZeroconfRegister “service name” [/partialpath] # This is part of the core ServerName hostname:port

Demo

mod_zeroconf Design Apache 2.0 Core Howl mDNSResponder mod_zeroconf Virtual Host Config Info mDNS Registration mDNS Callbacks

What Gets Registered? Service Name SRV information: port, hostname, partial URI Hostname/IP (if different) Callback function

mod_zeroconf Design Apache Core Howl mDNSResponder mod_zeroconf Virtual Host Config Info mDNS Registration mDNS Callbacks Callback Process

Registration Callbacks Network can be very dynamic Service name, Hostname conflicts Apache needs to respond Can’t block parent process: –fork a child

mod_zeroconf.c: post_config static int zc_post_config(apr_pool_t * pconf, apr_pool_t * plog, apr_pool_t * ptemp, server_rec *s) { void *data; const char *userdata_key = "zeroconf_init_module"; apr_pool_userdata_get(&data, userdata_key, s->process->pool); if (!data) { apr_pool_userdata_set((const void *) 1, userdata_key, apr_pool_cleanup_null, s->process->pool); } else {. } return OK; }

mod_zeroconf.c: config check /* Check if Zeroconf has been enabled globally. If not, bail here */ cfg = our_sconfig(s); if (cfg->enabled == 0) { return OK; } /* Still here? Let's go. */ TESTORBAIL(sw_rendezvous_init(&howl_session)); /* Get System Hostname (not shown) */ for (ws = s; ws; ws = ws->next) { cfg = our_sconfig(ws); if (cfg->serviceName) {. }

mod_zeroconf.c: TEXT Record if (cfg->partialURI) { TESTORBAIL(sw_text_record_init(&text_record)); TESTORBAIL(sw_text_record_add_key_and_string_value(text_record, "path", cfg->partialURI)); pathinfo = sw_text_record_bytes(text_record); pilength = sw_text_record_len(text_record); } else { pathinfo = NULL; pilength = 0; } serverport = ws->port == 0 ? 80 : ws->port; if (apr_strnatcasecmp(thehostname, ws->server_hostname) != 0) { zc_register_host(ws); }

mod_zeroconf.c: Publish! howl_result = sw_rendezvous_publish(howl_session, cfg->serviceName, "_http._tcp", NULL, ws->server_hostname, serverport, pathinfo, pilength, NULL, howl_publish_reply, (sw_opaque) ws, &howl_id); pubidPtr = apr_palloc(s->process->pool, sizeof(sw_rendezvous_publish_id)); *pubidPtr = howl_id; apr_pool_userdata_set(howl_id, cfg->serviceName, apr_pool_cleanup_null, ws->process->pool);

mod_zeroconf.c: Fork callback #if APR_HAS_FORK callbackchild = apr_palloc(s->process->pool, sizeof(apr_proc_t)); switch(forkstatus = apr_proc_fork(callbackchild, s->process->pool)) { case APR_INCHILD: sw_rendezvous_run(howl_session); break; /* Not reached */ case APR_INPARENT: apr_pool_note_subprocess(s->process->pool, callbackchild, APR_KILL_AFTER_TIMEOUT); break; default: ap_log_error(APLOG_MARK, APLOG_ERR, forkstatus, s, "Failed to fork callback child"); return HTTP_INTERNAL_SERVER_ERROR; } #endif /* APR_HAS_FORK */

mod_zeroconf: To-Dos Learn about https protocol Learn about DAV, … Port to MacOSX? Apache 1.3? Alternative mDNS implementations IPv6 compatibility More solid hostname registration Better callback code etc…

mod_zeroconf: Where? Project home page: – Contact: About Apache server: – Apache modules:

Conclusion Zeroconf is great Will make networks more usable Platform support needed across vendors Applications will follow mod_zeroconf is cool –Patches are welcome

Q&A