Setting Up a Name Server and Hosting Web Sites with Windows Server 2003
A lot of services allow you to manage your own domain name system (DNS) records for the domains you register. Almost any domain registrar has a web-based software console that you can use to manage these records. However, these services aren't free. Windows Server 2003 can provide the same services for no cost whatsoever. Using Windows Server 2003 to manage your name server is even more beneficial if you host multiple web sites; you gain more control over the process—and the information stored about your servers—and you don't need to go through a third party.
You'll gain the biggest advantage from hosting multiple web sites using Internet Information Services (IIS), with each site having the same IP address. This process, called multi-homing, only works if you have your own DNS server in the same domain (or domain forest) as the IIS web server. Why bother? Because multi-homing web sites reduces hardware costs; no extra network cards are needed for each new site.
If multi-homing is so great, when wouldn't you want to use it? The only time multi-homing won't work is when you have a web site that will use SSL. The reason is that SSL uses a separate port, and can only be used with one IP number or network card per site.
In this article, I'll show you how to set up your Windows Server 2003 as a name server, using IIS to multi-home web sites.
Setting Up DNS
If your server is not set up as a domain controller, use the Active Directory (AD) Installation Wizard to install Active Directory on your server and set up a domain for your network. This domain is important because other name servers across the Internet will use this domain name to refer to your name servers (I'll discuss name servers later). If your server is a member of a domain but not the domain controller for the network, you still need to install DNS if this machine will act as a name server.
For this article, I'll assume that your server is either a domain controller or part of a Windows domain but that you don't have DNS installed on the server. To find out whether you have DNS set up on your machine, bring up the Administrative Tools menu and see whether DNS is listed as an item. If not, open the Windows Control Panel, open the Add or Remove Programs applet, and choose Add or Remove Windows Components. In the dialog box, select Networking Services, choose DNS, and click Next to copy the necessary files from your Windows Server 2003 CD. To verify that DNS is set up and running on your system, go to back to Administrative Tools; DNS should now be in the list of tools.
Select DNS to bring up the DNS management console snap-in, and you should get a screen similar to Figure 1.
Figure 1 DNS management console.
When the DNS server was installed, it automatically created a zone called _msdcs.yourdomainname.com with the appropriate resource records. Unfamiliar with zones? You'll learn a more about them later in this article.
The important thing to know about this type of zone is that it contains the resource record information for making your DNS server work using the server's fully qualified domain name. The domain in my example is farside.ifusionsoft.com. The hostname of this DNS server happens to be Farside, so the fully qualified domain name becomes farside.farside.ifusionsoft.com. (It's a little redundant, but that's how I set it up.) In your situation, it may very well be in this form:
Many places use NS1 for the hostname of their primary DNS server and NS2 for the secondary server. The msdcs zone is a new type of AD zone that came out with Windows Server 2003 DNS. You won't have to use it to have DNS resolve web sites; a forward lookup zone does that work (more about this zone later).
The domain name that your DNS server uses (in my example, ifusionsoft.com) must be registered with a domain registrant such as Network Solutions or NameSecure. This is an important step allows other name servers on the Internet to point to and "see" your name server. Your domain registrant allows you to forward this domain to an IP address; be sure to forward to your DNS server's main IP address (or an IP address on which the DNS server is listening). It will take up to 96 hours to propagate this information to other name servers; then your name server will be able to resolve web sites that you set up to use the name server.
The next task—often missed by administrators when first setting up a DNS server—is to make the DNS server its own DNS client. For each of the network cards in your server, you'll need to bring up the TCP/IP property sheet. In the Control Panel, select the Network Connections folder and right-click the connection to bring up that connection's main property sheets. Choose Internet Protocol to display a screen similar to the one in Figure 2.
Figure 2 Viewing TCP/IP properties.
In Figure 2, notice that the preferred DNS server's IP address is the same as the IP address for this network card (or the main network card that this DNS server listens on). By using this setup, we force the server to use its own DNS. For any needed domain name resolution, it will now look to itself to map IP numbers to domain names. If you're setting up another server as a DNS server, you can specify it as the alternate DNS server, or you can specify any known DNS server as the secondary server, or you can leave this field empty because an alternate DNS server is not required.