The prevalence of the Internet in business today raises many issues that were unheard of a couple of years ago. One such issue is multi-homing, or setting up and maintaining virtual servers on an NT Web server. For organizations that provide Web services to others, multi-homing is a way to configure one NT server to support several IP addresses and Internet domain names (for more on IP addresses, see Mark Minasi, "How to Set up IP," February 1996; "NT Workstations Using an IP Router," May 1996; an "Unlock Your Gateway to the Internet," June 1996). In this article, we will describe what you can do with multi-homing, identify what you need for multi-homing on an NT Web server, specify how you add multi-homing, and provide tips for planning a multi-homing implementation.

What You Can Do
With multi-homing, you can house several organizations' Web sites on one NT server and let each organization maintain its identity. To the world, one NT Web server appears as multiple Web servers, each with its own domain name. For example, Company A appears as www.companya.com and Company B appears as www.companyb.com, although both share one Web server. This method provides a cost-efficient way to connect several organizations to the Web: You purchase one computer, one NT Server license, and one Web server software component.

Multi-homing is not the same as having virtual paths on a Web server. With virtual paths, every organization on the Web server shares one domain name. For example, Company A appears as www.abc.com/~companya and Company B appears as www.abc.com/~companyb.

Unix Internet Service Provider (ISP) aficionados consider a Unix platform best for multi-homing because about 50 companies can be on a standard Unix box and Unix people think only 15 or so can be on a comparably equipped NT box. However, I know of one ISP that houses 70 virtual servers on one average NT box.

What You Need
Any time multiple organizations are on one machine, you need sufficient RAM and hard disk. At a minimum, your NT Web server must be a Pentium 120MHz, with 32MB of RAM and a 1GB to 2GB SCSI drive. Besides this hardware, for this example, you need:

  • a valid IP address for each domain name you register with InterNIC, the US organization that manages domains on the Internet (for details, see the sidebar, "Registering a Domain Name Is Easy," page 88)
  • an NIC or Microsoft loopback adapter for testing
  • Web server software (such as Internet Information Server--IIS--or Purveyor) that supports virtual servers
  • a modem (preferably, 28.8Kbits per second) or ISDN, an Internet connection, and an ISP dial-up phone number
  • a directory layout scheme such as D:\CompanyA, D:\CompanyB

The Set Up
Setting up multi-homing on your NT Web server is easy. Just follow these steps.

Step 1­ Obtain a valid IP address for each organization on your Web server--you usually get this address from your ISP. You also need an IP address for each organization you add to your Web server. If an organization doesn't provide its IP address, you can register and obtain one from InterNIC at the URL, www.internic.net or rs.internic.net.

Step 2­ Create a partition on your server and a directory for each organization, to separate the server's system files from each organization's data files (home pages, File Transfer Protocol--FTP--files, Common Gateway Interface--CGI--scripts, etc.). Suppose you create a D drive partition. For each organization, you can create a subdirectory from the D drive's root. Meaningful names help distinguish one organization from another at a glance.

Step 3­ Install an NIC in the Web server, and if you don't have an NIC, install NT's loopback adapter for testing. To configure an NIC or the loopback adapter, go to Main, Control Panel, Network, Add Adapter. Scroll through the list, select your card, and click Continue. Follow the onscreen prompts and click OK when you finish. You have to reboot the server for these configuration changes to take effect.

Step 4­ Install and configure the TCP/IP protocol. Go to Main, Control Panel, Network, Add Software, and choose TCP/IP Protocol and related components. Go to the Advanced section of the TCP/IP configuration. Add up to five IP addresses and subnet masks for each organization you plan to house. After you enter the second IP address, Enable IP Routing changes from gray to black--mark it. For more than five IP addresses, you manually add them in the Registry (see the sidebar, "How to Set Up Virtual Domains," on page 90). A patch from Microsoft lets you add up to 254 IP addresses. Your server will be limited by its horsepower and the amount of traffic for each virtual Web server. (Note that you install the IP address for your Web server in Step 6, not this one.) After you finish adding each organization's IP address, reboot NT.

Step 5­ Install and configure Remote Access Service (RAS) if you haven't already connected your modem to your Web server. Go to Main, Control Panel, Network, Add Software; choose Remote Access Service. Select the appropriate modem and COM port settings, and select Dial out and Receive calls. This setting lets your Web server dial out to an ISP and lets each organization on your Web server dial in to maintain its subdirectory. Select the TCP/IP protocol for dial out and the protocols you want for dial in (the protocol depends on each organization's needs). Reboot the server.

Step 6­ Add a Phone Book entry in RAS. When you install RAS, NT adds a new Program Group, Remote Access Services (Common), to your server's desktop. Locate it, and click the Remote Access icon. You get a message that says the phone book is empty--click OK.

You can now enter specific ISP information such as name, phone number, and description. Click the Network button, and mark the Point-to-Point Protocol (PPP) radio button. Under the PPP setting, mark the TCP/IP box, and click TCP/IP Settings. The PPP TCP/IP Settings dialog will open. Select Require Specific IP Address, and enter the unique IP address for your Web server. This address identifies your Web server as a gateway to the other IP addresses you assigned to each organization.

Select Use specific name server addresses, and type in the IP addresses of the primary and secondary Domain Name System (DNS) servers you plan to use to resolve host names (for information on DNS, see Spyros Sakellariadis, "Configuring and Administering DNS," August 1996, and "Integrating and Administering DNS," page 121). Typically, these servers are at your ISP's site, but they can be on your network. Mark the box, Use default gateway on remote network. Find out whether your ISP supports PPP compression and whether to mark the box, Use VJ header compression.

Step 7­ Add a parameter in the Registry on your NT Web server if this server will route traffic among your Internet connection and other parts of your network. From any window, choose File and Run, type REGEDT32.EXE, and click OK.

This sequence invokes the Registry Editor. Find and click the key hkey_local_machine\system\currentcontrolset\services\rasarp\parameters.

Choose Edit from the pulldown menu, and select Add Value. Type DisableOtherSrcPackets, and click OK to open the DWORD editor dialog. Fill in 0, and click OK. When you finish, the value will be DisableOtherSrcPackets:REG_DWORD:0.

Step 8­ Test the TCP/IP and RAS installation. Dial in to your ISP before you add the Web software.

Step 9­ Install Web server software. Confirm that your installation is working to this point, and look up virtual servers in the manuals for your Web server software. Configure each organization's subdirectory and load all appropriate files, such as home pages, into each subdirectory.

Step 10­ Test all URLs on your server. Using a Web browser, try to access each organization's URL to see whether you can view its home page.

Step 11­ Add organizations as users on the system. You can either let each organization dial in to your Web server to maintain its directory, or you can maintain each directory. NT's security and permissions let you restrict each organization to seeing and editing only its directory.

To let each organization manage its directory, add each organization as a user in the User Manager and give each one rights to its subdirectory. At minimum, let each organization read and write to its directory. Under RAS, choose an organization's user ID and give it permission to dial in to the server.

Tips for Adding Multi-Homing
If you house several organizations' Web services, you need redundancy to eliminate single points of failure. If your server goes down, you kill business for those other organizations until you can repair the problem. Here are some tips to safeguard against common points of failure.

  1. Choose your ISP carefully. Select an ISP with two links to the Internet, and check the ISP's references to find out about downtime. To ensure that your Web pages display quickly, choose an ISP with at least a T1 Internet link. A backup link to your ISP's location is also a good idea.
  2. Build a fault-tolerant Web server: Spend the money to ensure that you can quickly recover when a component fails on your Web server. You can mirror the disk drives and use hot-swappable components. Back up data daily, and frequently store backups off site.
  3. Have a regular maintenance plan: Don't run out of disk. Perform maintenance daily, and watch for server trends. Install software that automates maintenance and monitoring and that pages you when problems arise.
  4. Have a security plan: Check logs for odd nuances relating to security. If hackers access your system, they can also access data you're housing for other organizations. Carefully read the security information that comes with your Web server software.
  5. Have a disaster-recovery plan: Be able to move your shop to a new location and be up and running in a short time (for more on disaster planning, see Valda Hilley and Sean K. Daily, "Attaining Availability; Avoiding Failure," August 1996). If you're housing other organizations' data, don't take your responsibility lightly.
  6. Implement reverse DNS: Some Web servers rely on reverse DNS lookups to perform virtual Web services for domains. However, not every Web server uses reverse DNS, so check with your vendor and make sure that if you use your ISP's DNS, reverse pointer records are available for you.