Multihoming with Homedoor
|Column Tag:||Internet Special
Make one web server act like a network of servers
By Alan B. Oppenheimer
The HomeDoor Default Home Page Server is a newly-announced product from Open Door Networks. HomeDoor enables a single Macintosh Web server to serve default home pages for multiple domains. This article describes the inner workings of HomeDoor.
HomeDoor is a Macintosh extension and associated Admin application which enables an Ethernet-based Macintosh to redirect requests for particular default home pages to particular subdirectories on any Web server. For example, HomeDoor can redirect URLs of the form http://www.companyX.com/ to the form http://www.yourwebserver.com/companyX/. HomeDoor supports up to 256 such redirections, allowing you to set up a large number of default home pages on a single MacOS-based Web server. HomeDoor also supports the creation of complete virtual domains associated with each of these home pages.
The Web server (or servers) to which HomeDoor redirects requests do not necessarily have to be in the same machine, or even on the same network, as HomeDoor. You configure HomeDoor with a unique IP address for each default home page it is going to serve. You will also generally want to assign a domain name, such as www.companyX.com, to each of these addresses. For each address, you then configure HomeDoor with the URL to redirect that address to. When HomeDoor gets an HTTP request to one of the addresses its managing, it redirects that request to the configured URL. HomeDoor can be used to serve default home pages in this manner, and also to serve full virtual domains, redirecting not only URLs of the form http://www.companyX.com/, but also URLs of the form http://www.companyX.com/file-or-directory. When redirecting such URLs, HomeDoor preserves the file-or-directory part, thus supporting the creation of complete virtual domains.
Multihoming - The Key to HomeDoor
The key architectural component of HomeDoor is multihoming. Multihoming is the ability of a single physical node on a network to have more than one address (or home) on that network. Neither MacTCP nor the TCP/IP implementation in Open Transport provides multihoming, although Apple intends multihoming to be a feature of Open Transport 2.0. HomeDoor thus had to implement a simple form of multihoming itself. HomeDoors multihoming is limited to those Internet protocols required for HTTP (specifically ARP, IP and TCP), plus a small subset of ICMP so that HomeDoor can respond to pings for its addresses. HomeDoor does not provide a general-purpose implementation of multihoming.
HomeDoors multihoming is implemented directly on top of the Macintosh Ethernet driver, below the TCP/IP stack. HomeDoor tells the Ethernet driver to pass it all packets of Ethernet type ARP or IP. Because of the way the IP protocol suite works, the packets HomeDoor needs to receive are either broadcast (ARP packets), or sent directly to the Macintoshs Ethernet address (IP packets). This fact is important, because it prevents HomeDoor from needing to have the Ethernet driver listen to every packet sent on the network, which would adversely affect performance.
After being passed an ARP or IP packet from the Ethernet driver, HomeDoor determines if the packet is intended for an address in its address range. If the packet is in range, HomeDoor processes the packet as appropriate, implementing the required parts of ARP, IP, TCP or ICMP. If the packet is not in HomeDoors address range, and MacTCP is running, HomeDoor passes the packet to MacTCP. Otherwise HomeDoor discards the packet. By passing packets to MacTCP, HomeDoor can run on the same Macintosh as any MacTCP client or server, and specifically in the same Macintosh as a Web server for which it is serving default home pages. HomeDoor does not, however, require MacTCP to run. HomeDoor also will not currently run at all on a Macintosh which is running Open Transport, due to OTs radically different driver architecture.
As shown below in figure 1, HomeDoor takes advantage of a feature in HTTP known as redirection. A browser wishing to look at a Web page issues an HTTP GET command to the address indicated by the first part of the URL, after obtaining that address from a domain name server (DNS). If the address is being managed by HomeDoor, HomeDoor receives the request and returns an HTTP REDIRECT in response. The REDIRECT contains the actual URL of the associated default home page. The browser receives the REDIRECT and then requests that page directly from the actual server, using the new URL. From then on, the browser talks directly to the Web server if other (relative) links on that server are accessed.
Figure 1. How HomeDoor works
To be precise, HomeDoor actually does more than simply returning, in the REDIRECT, the URL that has been configured for the address requested. Technically speaking, HomeDoor actually replaces the part of the URL which specifies the Web server itself with the URL to be returned. So a URL of the form http://www.companyX.com/ is returned as http://www.yourwebserver.com/companyX/, but a URL of the form http://www.companyX.com/file-or-directory becomes http://www.yourwebserver.com/companyX/file-or-directory. Since the file-or-directory part can in fact be arbitrarily long, a full virtual domain can be served by HomeDoor.
Completing the illusion
HomeDoor effectively allows a single Macintosh Web server to serve default home pages, and in fact full virtual domains, for up to 256 different domain names. HomeDoor does so in a manner that is almost totally transparent to Web browsers. The only significant exception is that most browsers display a pages actual URL in their location f ield. Thus, for example a browser user would see the URL http://www.yourwebserver.com/companyX/, even though they typed in or accessed the URL http://www.companyX/. Even this minor side-effect, however, can be eliminated by using a DNS to set up an appropriate alias to the actual Web server, and using HomeDoor to redirect to that alias as opposed to to the Web server itself. For instance, instead of redirecting http://www.companyX.com to http://www.yourwebserver.com/companyX/, you could redirect it to http://www2.companyX.com/companyX/, where www2.companyX.com is an alias for www.yourwebserver.com. In this way, not only will the Web browser user see the correct domain name in the location field, but it will appear to the user that the domain in question has not one but two complete Web servers associated with it (www.companyX.com and www2.companyX.com).
Subtleties of HomeDoor
The HomeDoor design contains a number of subtleties which might not be immediately apparent. These subtleties are based on the fact that HomeDoor allows you to enter a full URL for each address it is managing. This flexibility allows, for instance, a single HomeDoor server to serve home pages and virtual domains for more than one Web server. And, although HomeDoor runs on a Macintosh, there is no reason that the Web servers themselves need to be Macintoshes. HomeDoor can serve default home pages for any type of Web server whatsoever. HomeDoor can also redirect URLs to other network services, allowing, for instance, an HTTP URL to be redirected to an FTP server. Finally, with some small modifications, the HomeDoor architecture can be enhanced to provide many additional services. One area for immediate investigation involves having HomeDoor redirect a particular URL to a URL chosen randomly or sequentially from a group of other URLs, enabling HomeDoor to serve as the front end to a Redundant Array of Inexpensive Computers (RAIC).
How To Find Out More
Open Door Networks maintains a complete set of home pages on the HomeDoor product. Not only do these pages include product details, example pages served by HomeDoor and a full copy of the HomeDoor Users Guide, but also a downloadable evaluation version of the current release of HomeDoor. The HomeDoor pages are at http://www.opendoor.com/homedoor/. General information on Open Door Networks, one of the first Macintosh-based Internet service providers, is available at http://www.opendoor.com. Specific questions should be addressed to firstname.lastname@example.org.
[For those of you that would like to see a real life example of this technology, we use HomeDoor on one of our servers in the Xplain Corp./MacTech offices. In fact, the www.mactech.com and www.devcentral.com web sites are redirected using HomeDoor. This allows us to have an all Macintosh Internet site without having to resort to Unix. Were very pleased with this solution.
There are some minor limitations to the way that HomeDoor works (although it does benefit from an all Macintosh user interface). If you want a different solution, Unix does offer the most complete multi-homing solution available. And, if you want to stay with the Macintosh (and why wouldnt you?), then MachTen from Tenon is your answer - its a kinder, gentler Unix. :) - Pub. nst]