Multihoming with Homedoor
Volume Number: 12
Issue Number: 1
Column Tag: Internet Special
Inside HomeDoor 
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.
Product Summary
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 it’s 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. HomeDoor’s 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.
HomeDoor’s 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 Macintosh’s 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 HomeDoor’s 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 OT’s radically different driver architecture.
Redirection
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
Virtual domains
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 page’s 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 URL’s
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
help@opendoor.com.
[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.
We’re 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 wouldn’t you?), then MachTen from Tenon is
your answer - it’s a kinder, gentler Unix. :) - Pub. nst]