Copyright Ó 1998 by Ron Jenkins. This work is provided on an « as is » basis. The author provides no warranty whatsoever, either express or implied, regarding the work, including warranties with respect to its merchantability or fitness for any particular purpose.
The author welcomes corrections and suggestions. He can be reached by electronic mail at firstname.lastname@example.org, or at his personal homepage: http://www.qni.com/~rjenkins/.
Corrections, as well as updated versions of all of the author’s works may be found at the URL listed above.
NOTE: As you can see, I am moving to a new ISP. Please bear with me as I get everything in working order. The e-mail address is functional; the web site will be operational hopefully around mid December or early January.
SPECIAL NOTE: Due to the quantity of correspondence I receive, if you are submitting a question or request for problem resolution, please see my homepage listed above for suggestions on information to provide.
I only test my columns on the operating systems specified. I don’t have access to a MAC, I don’t use Windows 95, and have no plans to use Windows 98. If someone would care to provide equivalent instructions for any of the above operating systems, I will be happy to include them in my documents.
ADDENDUM TO LAST MONTH’S COLUMN:
I neglected to mention that you should consider purchasing some cable ties, coaxial clips, or other devices to dress your cabling properly.
These should be available at your local computer store, or a large selection can be found on page # 163 of the Radio Shack 1999 Catalog. (Space limitations preclude listing them all.)
This will allow you to bundle the cable or cables neatly together, attach them firmly to the baseboard or whatever area in which you are installing them, and make troubleshooting and maintenance of cabling problems much easier.
Finally, consider marking each end of your cables in some way so you know which ends go together. There are a variety of ways to do this, including simply writing on the cable itself with a sharpie or white pen, noting the location or machine it is intended for, or my favorite, using color coded tape wrapped at each end.
Also, each connection on a 10BASE2 coaxial bus network will require a BNC « tee » connector. This should be included with your network card. If not go to Radio Shack and get some (PN# 278-112.) They are cheaper than buying them at a computer store. Finally, don’t forget the termination devices. You will need two. These are available either at your local computer store, or at Radio Shack (PN# 278-270.)
Part Five: Deploying a home network
This month we will utilize the home networking plan we prepared last month, and bring it to fruition.
This is going to involve several steps, and I will present them in the order I recommend, but ultimately it will be up to you to choose your deployment method.
Additionally, I will offer step by step instructions on the configuration of the networking components and protocols. This will give you the basic functionality upon which you will add to as this series continues.
The goal of this installment will be to get the networking hardware and software installed, provide basic connectivity, and simple name resolution and file sharing services.
The more advanced services, such as sendmail, DNS, routing, ftp, web, print services, and gateway service will be covered in the next installment.
As with each installment of this series, there will be some operations required by each distribution that may or may not be different in another. I will diverge from the generalized information when necessary, as always.
In this installment, I will cover the following topics:
- Pre-installation planning.
- Preparing the cabling.
- Preparing the file server.
- Preparing the workstations.
- Installing the cabling.
- Installing the hardware.
- Installing the software.
- Configuration of the file server.
- Configuration of the work stations.
- Testing the installation.
- Troubleshooting the installation.
- Resources for further information.
- Preview of next month’s installment.
- About the Author.
Assumptions that apply to the following installation instructions:
To keep this installment to a manageable size, as well maintaining an acceptable level of simplicity, the following things will be assumed.
We will be installing a three node network, consisting of a file server, one Windows NT client, and one Linux client. Physically, all three machines are on a single table. The Linux client is at the extreme left, the Linux fileserver is in the center, and the NT client is at the extreme right.
In the 10BASE2 (coaxial or bus configuration,) the cabling will be run along the rear edge of the table and fastened by clips available for this purpose either from a computer store or at Radio Shack as previously mentioned.
In the 10BASET or star configuration, the hub will be placed alongside the file server, and the cabling will emanate from the hub to the various machines, The three cables will be bundled together with cable ties, forming one larger diameter group of cables that can be treated as a single cable. This will be attached to the back of the table using clips as described above.
The NIC’s I will use are NE2000 ISA bus combo cards, with both a BNC and a RJ-45 interface. The cards will be Plug and Play cards which require you to use a utility diskette under DOS, provided with the card, to configure it. This utility diskette also contains the NT drivers for the card.
I use FREE DOS, available at
http://sunsite.unc.edu to create the DOS boot disk. You may or may not have to create your own DOS boot disk, depending on what kind of NIC you have.
Two of our NE2000 NICs will be set to the following:
IO = 0x320 (320), IRQ = 10
The third one will be configured by NT.
These are by far the most common cards people usually start out with. If you are using something different, the instructions should be similar. Just make sure you can turn off the Plug and Play feature (bug?) for the Linux machines, if necessary. This usually only applies to ISA NICs, as kernels => 2.0.34 usually do a pretty good job of snagging PCI NICs.
This should provide the information required for most any size network, the steps will just need to be duplicated for the extra clients and/or servers.
I will use the terms UNIX and Linux somewhat interchangeably, except where I am explicitly referring to something unique to a particular flavor of UNIX, in which case I will note the difference.
If you will be integrating Novell or MAC clients, you’re on your own. I have not touched Novell since 3.1, and I don’t have access to a MAC machine. The AppleTalk and IPX HOW-TOs may be of some assistance to you.
Further, it will be assumed you are using « reserved » IP addresses for your home network. We will use the Class C reserved network 192.168.1.0. The netmask for our network, thus will be 255.255.255.0. We will give the file server the IP 192.168.1.2, and the hostname fileserver01. The Linux client’s IP will be 192.168.1.3, with the hostname linux01. Finally, the NT client’s IP will be 192.168.1.4, with a hostname of nt01. I am keeping the 192.168.1.1 address and the hostname gateway01 for the gateway machine we will build next month.
The domain name of this network will be home.net.
The NT domain (not to be confused with the actual domain) name will be HOME.
The NT client will access the file services using SAMBA, and the Linux client will access file services using the native Network File System (NFS.)
Name resolution will be accomplished using common hosts and resolv.conf files, and a little trick for the NT box.
When finished you should be able to ping all machines both by IP address, and hostname.
Additionally, you should be able to access the disk storage on the file server from either client, with both read and write access.
Review of the network plan: Look over the network plan ONE LAST TIME. Make sure you have acquired all the necessary hardware, software, and cabling, as well as a hub or termination devices, if required.
Preparing the common files: Since we will not be using DNS for name resolution at this point, we will rely on primarily three files for the UNIX machines, and one file for the NT box.
Unique to the UNIX machines will be:
These two files will be propagated throughout the Linux portion of the network, along with the hosts file described below.
The first file, hosts.conf, simply tells the Linux box what means to use to resolve IP addresses to hostnames, and the order in which it should use them.
There are basically two methods utilized for name resolution. The hosts file (see below for more information,) which we will use in this installation, and a DNS server, usually another UNIX box running a program called the Berkeley Internet Name Daemon (BIND.)
First, cd to etc/, then open the hosts.conf file, or create it if necessary, and edit it to contain the line:
Then close the file. This simply tells the Linux box to first check it’s hosts file to find another machine on the network before trying anything else.
Next, open the resolv.conf file, or create it if necessary, and edit it to contain the lines:
After you are finished, close the file. This tells the Linux box it’s domain name, and to search this domain first before implementing any external name resolution.
The purpose of this is to keep your local network name resolution on the local network. This will become important later when we hook these machines up to the Internet through a gateway machine.
Common to both the NT and UNIX machines will be:
A hosts file, which is simply a listing of all the machines on a local area network, which translates IP addresses to hostnames.
Open the hosts file with your favorite editor, again creating it if necessary, and create entries for the loopback adapter, also known as the localhost, and each machine on your network. This file will be copied to each machine, thus allowing both the UNIX boxes and the NT machine to find each other by hostname.
Entries in the hosts file are created using the following syntax:
IP address Fully Qualified Domain Name (FQDN) hostname
For example, for the machine bear.foobar.net, with an IP of 184.108.40.206, the proper entry would be:
220.127.116.11 bear.foobar.net bear
A SHORT NOTE ON THE LOOPBACK ADAPTER: this interface, also known as the localhost, MUST be the first entry in any hosts file.
So, to create the hosts file we will be using across our entire network, edit it to contain the following lines:
192.168.1.1 gateway01.home.net gateway01
192.168.1.2 fileserver01.home.net fileserver01
192.168.1.3 linux01.home.net linux01
192.168.1.4 nt01.home.net nt01
On the UNIX machines, this file also lives in the /etc directory, while on the NT machine it will live in /winnt/system32/drivers/etc directory.
Now that we have prepared our common files, we can move to actual deployment preparations.
Logistics and downtime: While this is not as great a concern on a home network as it is on a commercial LAN, it is still important to consider the impact the network installation will have on your machines, as well as what if any interruption of productivity might occur.
You have two major, and one minor option in this regard:
- The blitz method: This method entails setting aside a period of time when all machines may be downed, cabling, hardware and software installed and configured all in one contiguous session. Best for very small networks, and non commercial networks.
- The phased method: This method involves a more conservative, cautious approach. Individual machines or sections of the network are downed one at a time, configured, tested, and brought back up before moving to the next section. This minimizes the interruption of productivity, and loss of computer services. Best for larger networks or most any commercial network.
- A combination of the two: In any installation other than an extremely small network such as our example here, some combination of the two methods is usually the most practical approach. For instance, you may choose to blitz all the server machines, so that file services and other services will be immediately available to the client machines. After the blitz of the servers, you may then choose to slowly integrate the client machines by department, by priority of use, or most commonly, the suits first, then everyone else. As an aside, if you are deploying a network in a commercial environment, never underestimate the effect of office politics in your planning. While the executives may not technically need to be on the network as soon as your programmers or designers, remember to keep the man with the checkbook happy, and you will find your next upgrade much easier to justify.
Preparing the cabling:
10BASE2: Double check that you have sufficient coaxial cable, in the proper lengths, to interconnect all the machines on your bus. Remember, the cable strings from machine to machine, so I recommend physically laying out the cable between each machine to make sure you have enough, and the proper lengths. Finally, be sure you have the proper clips and ties to dress the cables neatly.
10BASET: Depending on whether you bought the cables already made up, or made them yourself, the same general rules stated above will also apply here. Placement and layout of the cabling will be largely determined by your placement of the hub. Try to place the hub in such a way as to assure the shortest average length from the hub to each machine. As mentioned above, make sure you have sufficient materials to neatly run, anchor, and wrap your cabling.
Preparing the file server:
Memory issues: A good rule of thumb for any computer, and especially servers, is the more RAM the better. Since this is a home network, this is not as big an issue, but still important.
Disk storage issues: If you can afford it, get SCSI drives. They work better and last longer. If you are on a budget, EIDE or UDMA drives will do in a pinch, but be aware they will not stand up as well under heavy, constant use.
Backup device issues: I use a SCSI DAT drive, and have always had good results with it. Whatever you choose, MAKE SURE IT IS SUPPORTED BY Linux BEFORE YOU BUY IT! And backup up anything on any of the machines you will be working on that you cannot afford to lose!
Power interruption and loss of data: You should consider at least protecting your fileserver with an Uninterruptable Power Supply (UPS.) I can recommend APC and Tripp-Lite products here. Why? Because they put they’re money where they’re mouth is on the warranty provided. Try to get one with two protected outlets, and jacks for your phone line. This will come in handy later when we do the gateway. Surges don’t just come over the power lines. Ideally all your machines should have one, but try to make sure you get one for the file server.
Preparing the client workstations:
Linux box: not really much to do here, as most everything you need should already be installed. All your networking software should already be there. The only possible exception to this is if you have a RedHat machine, and you chose dialup workstation during installation. In this case, you may or may not have to install additional packages. Check your documentation.
NT box: Here you will need to have your CD-ROM handy, as the networking software is probably not on your machine unless you explicitly requested it during the installation process. The software I am talking about here is separate and distinct from what is required for Dial Up Networking (DUN.)
Surge protectors: If you cannot afford a UPS for each machine, at least put a quality surge protector on the two clients. Avoid the temptation to buy a bargain one. APC and Tripp-Lite are ones I can recommend for the same reasons as stated above. If either of these machines has any peripherals connected to it such printers, modems, scanners, etc. make sure these are protected as well.
Installing the cabling:
10BASE2: This is a fairly straightforward process. Simply lay the cable along the back on the table (or whatever your machines are on,) where you plan to install them. Do not anchor the cables at this time.
10BASET: Once you have determined where your hub will be located, lay out the cable from the hub to each machine. Do not bundle or anchor the cables at this time.
Installing the hardware:
Network Interface Cards: This is fairly straightforward. Power off your machine. Remove the case cover and find an empty expansion slot appropriate for your type of card. Make sure it is firmly seated, and that you replace the screw that holds it in place.
If the card is an ISA card, and is going into one of the Linux boxes, be sure to disable the Plug and Play feature and make note of the IO address and IRQ the card is using. There is usually some of setup program to help you with this. Write these values down as you will need them later.
A QUICK NOTE ON IO ADDRESSES AND IRQ’s: Some cards may require you to manually set the IO and IRQ values using jumpers on the card. Use care here. If you choose an IO address or IRQ already in use by another device, all sorts of nasty things can happen. Here are some good ones to try that generally work:
10, 11, or 12.
If the card is a PCI card, have a go at auto detection first, then failing that, use the DOS setup program if required. Here at most, you may have to specify the IO address, which usually looks something similar 0x6xxx.
In any case, once the card is set, be sure to write the pertinent information down. You will need it later on the Linux boxes, and you may or may not need it on the NT box.
- Connectors and termination: Connect the tee to the NIC. On the Linux client and the NT client, place a termination device one side of the tee. Then using the cables you laid out earlier, connect the machines together.
- Installing the hub: This should consist of nothing more than setting it down on the table and plugging it in. In other situations, you may or may not find it advantageous to mount it on the wall, or even under the table.
- Connecting to the hub: Using the cables you laid out before, connect one end of each cable to the appropriate NIC. Now you may bundle, but not anchor the cabling, starting at the each client on either end, and working toward the fileserver in the middle.
Installing the software:
The /etc/hosts file: as specified above.
The /etc/hosts.conf file: as specified above.
The /etc/resolv.conf file: as specified above.
Specific to the file server:
If necessary, copy the above common files to the appropriate directories.
SAMBA: This may or may not already be present on your system. If not, use pkgtool on a Slackware box to install it, and glint or the command RPM:ivh to install it on a RedHat box. Once you have verified it is installed, configure it as follows:
- In the /etc directory, there should be an smb.conf-sample file. You may copy this to a new file called smb.conf, or create your own from scratch. I recommend using the sample one at first.
- Edit the line workgroup = WORKGROUP and change it to workgroup =
NFS services: This should already be installed on your Linux boxes.
A possible exception is RedHat, again if the NFS server and client options were not selected during installation. If necessary, install them. Once you have verified the software is installed on your system, configure as follows:
The /etc/exports file: This is fairly simple. There is much more to NFS than what I will present here, but briefly, and entry in the exports file uses the following syntax:
/name/of/directory/to/export (type of access) who.can.access
So as an example, to export the home directory with read and write permissions, to anyone in the
home.net, the correct entry would be:
/home (rw,no_root_squash) *.home.net
Specific to the NT client: Copy the hosts file ONLY to the specified location. Insert your NT CD-ROM and choose start/settings/controlpanel/network. Depending on whether you have been using this machine for DUN, you may or may not have some of the software already installed. If not just follow the prompts, with the following objectives:
Install ONLY the TCP/IP protocol.
When the time comes to install your Network Adapter (NIC), you can try to let it auto-detect first, then failing that, choose Have Disk and use the diskette supplied with your NIC.
You can safely accept the defaults at this point. If prompted for information such as hostname, IP address, or netmask, refer to the stated configuration above.
You may be prompted to reboot several times. Do so.
Specific to the Linux client: Copy the common files to the appropriate directories.
The only exception would be if you desired to make directories on the Linux client available to the NT client. If this is the case, simply repeat the SAMBA instructions for the file server above on the Linux client as well.
Configuration of the file server:
Basic Networking – the first step on the UNIX boxes is to get the NIC recognized. On a Slackware machine, this is done by editing /etc/rc.d/rc.modules and uncommenting the line that will load the kernel module necessary for your particular NIC, and possibly passing the IO address and/or the IRQ to help Linux find the card. Scroll down to the Network Device Support section, and look for the line:
#/sbin/modprobe/ ne io=0x320 #NE2000 at 0x320
Uncomment the line by deleting the pound sign. Depending on what release of Slackware you are using, you may or may not have to specify the IRQ as well. This should not be necessary if you are using release 3.5 or higher.
Next, you will want to configure your networking software. Use the netconfig utility for this. Follow the prompts, with the following in mind:
When asked if you will be using only loopback, answer no.
Leave the default gateway blank.
Leave the nameserver stuff blank.
In RedHat, you can use the linuxconf utility in either text mode or under X. I have had a few bad experiences with the X version, so I recommend using the text mode version.
At the command prompt, type linuxconf
You will be presented with a dialog box.
Choose Config/Networking/Client tasks/Basic host information.
First, set your hostname to fileserver01.home.net, then tab to quit to return to the previous screen. Choose Adaptor 1, use the spacebar to select the following parameters:
Next enter the proper hostname, domain, IP, netmask, device number, kernel module, IO, and IRQ for machine. In our case, the proper data is:
If at any point, you are prompted for a default gateway, leave it blank for now.
After you have entered this information, choose quit, accept, quit, quit, quit, until you are asked to activate your changes.
If you want, you can use linuxconf to add your user accounts now, or do it manually later.
Configuration of the workstations:
Configuration of the NT client – Choose start/settings/controlpanel/network.
Select the Identification tab. Make sure your Workgroup is set to HOME.
Select the Protocols tab. Highlight TCP/IP. Click on Properties.
Select the IP Address tab, and make sure Specify an IP address is selected, and that the IP and netmask are correct. Additionally, make sure the Default Gateway is blank.
Select the DNS tab. Enter your hostname (nt01) and domain (
home.net) in the appropriate boxes.
Select the WINS Address tab. Make sure the WINS server boxes are blank, and uncheck the Enable DNS for Windows Resolution and Enable LMHOSTS Lookup boxes if necessary.
Select OK. When prompted that one of the adapters has an empty WINS something or other, select yes to continue. Select close. You will be prompted to reboot.
Configuration of the Linux client – The network configuration will be the same as the fileserver instructions.
Testing the installation:
If any of these testing procedures fail, go to the troubleshooting section for suggestions on how to correct the problem.
Testing for physical connectivity – To test physical connectivity, ping one of the other hosts on the network. You should see some return information and statistics. Depress Ctrl+C to exit.
Testing the loopback adapter – To test the loopback adapter, simply ping 127.0.0.1.
Testing the NIC – To test the NIC, simply ping the IP address of the NIC.
Using ifconfig and ipconfig –
In Linux and NT, there are utilities provided to assist you in assessing the condition of your networking setup and hardware. They are called ifconfig and ipconfig, respectively.
On a Linux box, at the command prompt: ifconfig should yield two entries – one for the Loopback Adapter called lo, and one for your NIC, called eth0.
On an NT box the command ipconfig should yield one entry, describing your Ethernet adapter.
Testing name resolution – To test name resolution simply ping by hostname, such as fileserver01, nt01, linux01, etc.
Testing file services –
- Linux NFS – To test the NFS services, CD to /mnt, and create a directory called test. Then try to mount the remote directory to it. For instance, in our example above, we are exporting /home on the fileserver machine, so let’s mount it under test: mount –t nfs fileserver01:/home /mnt/test . If all went well, you should now be able to access the remote directory from the Linux client.
- NT SAMBA – double-click on Network Neighborhood. Under Home, you should see both your NT client and the Linux machine, fileserver01. Double click on the entry for fileserver01. If your user account has been created on the Linux box, you should be able to enter your username and password when prompted, and be taken directly to your home directory on the Linux box.
Troubleshooting the installation:
Troubleshooting physical connectivity problems –
- ping 127.0.0.1. If this fails, you have an improper networking configuration. Go back and recheck all your settings and required files. If this works, try to ping the IP address of the NIC installed in the machine. If this does not work, make sure the card is being recognized by Linux. If the NIC has more than one interface e.g. RJ-45 (10BASET) and a BNC (10BASE2,) make sure you have the correct one activated. If all goes well up until this point, try to ping another machine on the network by IP address. If this fails, see the next section on cable integrity.
Cable integrity –
- If you cannot ping any other machine on the network, and you have tried all of the above, here are some tips for isolating cabling problems.
- 10BASE2 – move the termination of the bus to the next machine in line. Try to ping it. If this fails, try another cable. Repeat the ping test. If it still fails, suspect a termination problem. See below.
- 10BASET – check that the RJ-45 connector is firmly seated in the NIC and the hub. If the cable is good, there should be an LED lit up above the port on the hub into which the cable is inserted. If the LED is not lit, try another cable.
Termination integrity –
- This only applies to 10BASE2 or bus networks. Terminators are usually a pass or fail type of deal. Either they work or they don’t. First try another cable, and check to see if you are getting link lights on the NIC. Finally, double check combo cards to make sure the BNC interface is active.
Troubleshooting name resolution problems:
- First, try to ping by IP address. If this fails, check cabling, termination, and NIC recognition at boot time. On the UNIX boxes, ifconfig should show the loopback interface and eth0. If the NIC is not recognized, make sure Plug and Play is turned off, and you have passed the correct IO and IRQ parameters to the kernel. On an NT box, ipconfig should yield similar results. If not, check your network configuration. /start/programs/administrative tools/nt diagnostics may be of some help here.
- If the ping by IP is successful, try to ping by hostname. If this fails, check your hosts file and make sure it matches the one above. If this is a UNIX box, check your hosts.conf and resolv.conf files and make sure they match the examples. If this is a NT box, make sure you placed the hosts file in the proper directory as specified above.
Troubleshooting NFS problems –
- If you cannot mount a remote drive, check the /etc/exports file on the machine that physically contains the directory you are trying to mount. Make sure the desired directory is being exported correctly.
- If you can mount the remote directory, but can read and/or write, go back to the exports file and check the permissions.
Troubleshooting SAMBA problems –
- If the Linux box does not show up in the Network Neighborhood, make sure that both the NT box and the /etc/smb.conf files are using the HOME workgroup.
- If the Linux box shows up, but you cannot access the shares, see if you are running Service Pack 3. If so, read the SAMBA docs for the required registry change that will need to be made to the NT machine.
- Finally, make sure the username/password combination you are trying to use exists on the UNIX box as well as the NT box.
Linux Installation Primer parts three and four
Network Administrator’s Guide
Mastering Windows NT Server 4 (3rd Edition)
Resources for further information:
The Linux Documentation Project
Coming in Part Six: the long awaited Internet Gateway!
Linux Installation Primer #1, September 1998
Linux Installation Primer #2, October 1998
Linux Installation Primer #3, November 1998
Linux Installation Primer #4, December 1998