Faster Internet Access

Speed Internet surfing by caching DNS information on your desktop computer

 

fast.gif (91502 bytes)

Most workstations with a connection to the Internet are by default configured to use a Domain Name System (DNS) server. Such a server belongs to an Internet Service Provider (ISP) or is on a LAN that has Net access. Before a workstation can establish a connection with any server on the Internet, it must first obtain the server's address from the DNS, as shown in the chart Resolving a Domain Name. Because this initial communication to a DNS server often passes through a congested link to an ISP, it can result in delays and an unresponsive Net connection.

Fortunately, there's an alternative. Instead of relying on an ISP's DNS server, a workstation can run its own DNS software in the background. If all DNS requests are made through the workstation's local DNS, that DNS can cache the results. Such a cache doesn't simply store recent host-name/IP equivalents, it also stores routes by which it obtains more data about domains. Thus, the local server accumulates a hierarchical list of what it learns about the Net's structure.

Since the local DNS builds its knowledge from fresh data each time it starts up, and since it doesn't touch the ISP's overloaded DNS at all, using a local DNS alone almost always enhances the performance of a Net connection. Here we focus on installing such a server on Windows 95 and Linux, but DNS server software exists for almost every platform currently in widespread use.

DNS considerations

When running a local DNS on a workstation, you should keep a few things in mind. First, the software uses up system resources. See the text box Minimum Platform Recommendations for basic information. Under Windows 95, it requires enough resources that you should seriously reconsider the recommended amount of minimum memory. Under Linux, resource use of a DNS is almost imperceptible.

Another key point is bandwidth. We tested DNS only with 28.8-Kbps and faster connections to the Net. The server works well for any TCP/IP connection: PPP and SLIP, static and dynamic IP, modem, ISDN, or T1. The server is also robust enough that it does not have to be restarted when a dynamic IP connection is broken and re-established.

Another significant factor exists only under Windows 95. The best DNS software available for Windows 95 was written for Windows NT, and the documentation recommends against running it on Windows 95. This is because of memory leaks in Windows 95's integral TCP/IP stack. Despite this, I have been running the software continuously on a Windows 95 machine for several weeks without problems. However, I've installed all of Microsoft's Windows 95 updates, including the ISDN Accelerator Pack, which updates Dial-up Networking. Using this software on any Windows 95 computer not running with all updates reliably is not recommended.

 Doing Windows

The best DNS server software now available for Windows is almost certainly Bind95/NT. A 1.6-MB download, it's available from http://www.windows95.com /apps/servers-misc.html. It is assumed that your computer accesses the Net using Microsoft's TCP/IP stack and Dial-up Networking software if you use a PPP or SLIP connection. This software might not work with third-party TCP/IP stacks.

The file that you download is a ZIP file. There are two directories within the archive: DISK1 and DISK2. Unpack this file to a temporary directory, preserving this directory structure. Run SETUP.EXE in the DISK1 subdirectory. If you wish to look at the README, do so. You'l note hardware minimums, as well as some strong warnings about using Windows 95 with this software. There's also mention of a registry edit to increase the amount of Windows sockets available; so far this   hasn't been necessary.

Next you'll see a prompt that reads, in part:

"Enter this machine's Host name..." Type local into the dialog box and then type localhost into the next dialog box.

Then you're asked to enter the subnet for your network. If you're using a modem or ISDN ISP connection, 255.255.255.0 works fine. On a LAN connection, ask your system administrator for the correct value.

Now choose a directory for the program files. The default, C:\var\named, is fine. The installer then creates directories and copies files. After this, you get a prompt that reads:

"For creation of configuration files, please select the setup you want for BIND." You have three options at this point: primary DNS, secondary DNS, and caching-only DNS. Since you're configuring for a single workstation and not setting up primary or secondary DNS for an entire domain or subnet, you want caching-only DNS.

The installer creates the appropriate files for the selected server type. When it's done, you're told that the server is running. In the list of current processes, there's one called named95; this is it. Now you need to open or create a file called C:\WINDOWS\HOSTS in a text editor. If the file doesn't exist, create it with the following lines as its content:

127.0.0.1 localhost
127.0.0.1 local.localhost

If the file already exists, add the lines if they're absent. They set up a local domain (.localhost) and also set up the workstation as a host on the domain (local.localhost). Thus, the workstation will be interacting with the Net as if it had its own domain - which, in fact, it does, albeit one known only to the workstation.

If you use a dial-up connection, open the Dial-up Networking folder and right-click on a preconfigured connection icon. Choose Properties in this window and then click on Server Type. Click on TCP/IP Settings and choose Server Assigned Name Server Addresses. Click OK several times to back out to the Choose Properties window. Repeat these steps for each dial-up connection you use.

Next, bring up the Network Control Panel. Click on the TCP/IP->Dial-up adapter and click on Properties. Click on the DNS Configuration tab. If DNS is not enabled, click on Enable DNS and type local in the host box and localhost in the domain box. In the DNS Server Search Order address dialog box, type 127.0.0.1, click on Add, and click on OK.

When you exit the Network Control Panel, don't restart the system if asked to do so. On some systems, the installer doesn't place a shortcut in the Startup menu to automatically start the server. Check your Startup settings to see if one is present, and add one if it isn't. Then restart.

resolve.gif (12138 bytes)

You'll notice that a DOS shell window, titled "named95," comes up minimised. This is your local DNS process. If you shut it down for any reason, you'll need to restart this process to access the Net. Unfortunately, limitations in Windows 95 mean that a shortcut can't start this process without a DOS window. It's a minor irritation, but the advantages have so far vastly outweighed the irritation.

On Windows NT, named runs as a service and gives you the option to configure its properties from CONTROL PANEL. The installation is the same as windows 95. I have been running this sevice on my local NT workstation for 5 months now without any problems. I have noted significant speed increases (10-40 percent) on 28.8 kbps modem. And uninterrupted service when the local ISP was at their busiest time.

Linux

Any useful current distribution of Linux will have Bind version 4.9.3 or higher available. Even if you're already running Linux, you might not have it installed.

If not, the executable named will not be found on a full-file-system search. These instructions assume that bind is installed, along with the rest of the standard utilities that ship with it in the Slackware, RedHat, and Debian distributions.

Download the DNS configuration files, which are archived in linux_caching_ dns.tar.gz on The BYTE Site (http://www.byte.com/art/download/download.htm). Log in as a non-superuser. Unpack the archive into your user directory, preserving the directory structure.

The unpacked files include the following: etc/resolv.conf, etc/named.boot, etc/hosts, etc/rc.d/rc.inet2, var/named/db. 127.0.0, and var/named/db.cache. If your Linux box is on a LAN, you'll have to add the contents of etc/resolv.conf and etc/hosts to the existing files. Now edit etc/rc.d/rc.inet2. You'll notice that several lines are uncommented:

# Start the NAMED/BIND name server.
if [ -f ${NET}/named ]; then
echo -n " named"
${NET}/named
fi

Uncomment similar script lines in your machine's equivalent of /etc/rc.d/rc.inet2. This starts the named daemon at system boot-up. If your Linux installation is recent or standard enough, these lines are already present in /etc/rc.d/rc.inet2. If not, you must locate them or add them to /etc/rc.local. Copy the files in var/named to /var/named; you may need to create the directory. Copy etc/named.boot to /etc.

If all is well, you should have a caching-only DNS server running on your Linux box when you reboot. Old or nonstandard installations of Linux may require more alterations in the procedure; make sure that the daemon is not being started twice. If you're running an old or incompatible beta kernel, you may have to compile a newer or more compatible one. "

Minimum Platform Recommendation

Windows

Windows 95, 486/66 or faster, 16 MB or more of RAM, 5 MB or more of free hard disk space, and a working PPP, SLIP, or LAN Internet connection using Windows 95's built-in TCP/IP stack.

Linux

Any current standard Linux distribution, 386DX/33 or faster, 8 MB or more of RAM, and a working PPP, SLIP, or LAN Internet connection. SLiRP, TIA, and term should work, although these have not been tested.