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 , 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:
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.
Pre-installation planning:
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:
/etc/hosts.conf
/etc/resolv.conf
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:
order hosts,bind
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:
domain home.net
search home.net
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 206.113.102.193, the proper entry would be:
206.113.102.193 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:
127.0.0.1 localhost
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:
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:
IO Address:
0x300 (300)
0x310 (310)
0x320 (320)
IRQ:
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.
10BASE2:
10BASET:
Installing the software:
Required software:
Common:
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 <name of samba.rpm> to install it on a RedHat box. Once you have verified it is installed, configure it as follows:
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 <RETURN>
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:
fileserver01.home.net
fileserver01
192.168.1.2
255.255.255.0
eth0
ne
0x320
10
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.
Reboot.
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 <RETURN> 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 –
Troubleshooting the installation:
Troubleshooting physical connectivity problems –
Cable integrity –
Termination integrity –
Troubleshooting name resolution problems:
Troubleshooting NFS problems –
Troubleshooting SAMBA problems –
References:
Previous columns:
Linux Installation Primer parts three and four
Other:
Ethernet HOW-TO
Net-3 HOW-TO
Network Administrator’s Guide
Mastering Windows NT Server 4 (3rd Edition)
Resources for further information:
The Linux Documentation Project
http://www.patoche.org/LTT/
http://www.ugu.com/
http://www.stokely.com/unix.sysadm.resources/
alt.unix.wizards
comp.security.unix
comp.unix.admin
alt.os.linux.slackware
comp.os.linux.networking
comp.os.linux.hardware
linux.redhat.misc
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