Ethernetting Linux

Linux comes with the networking tools. Terry shows you how to get your Linux system talking over Ethernet.

Software configuration

If you are still with me, you are nearly ready to run. All
you need to run are a few commands to start testing your network
connection. After you have configured your kernel, you have to
configure your Linux machine to suit your network. At this point
you need worry about IP addresses. If you are lucky, you will have
a network administrator who will have assigned you an IP address
and told you the network and broadcast addresses to use. If not,
you will have to find out another way. A good way is often to check
the configuration of another machine that is already working. The
network address is an address that refers to the whole network you
are connected to. It is advertised so that people on other networks
know how to get to you. Your host IP address is one address that
belongs to that network. This must be yours and only yours, or else
you will face lots of strange problems, so make sure you don't use
a host address someone else is already using. The broadcast address
is a special address that allows anyone to send data to everyone on
your network. Some special services use this, and it is very
important that it be configured to the appropriate value. Another
important number you will need is your “netmask”. This is a
mechanism that allows your machine to determine which host
addresses are local to you (on the same network) and which ones are
remote. The following example would be typical of what you would
expect to find:

Once you have this information, be sure you have the correct
software on your Linux machine. You must be particularly careful to
ensure that the network tools you have (ifconfig,
route) match the version of kernel you use. The
NET-2-HOWTO describes where to get these tools and how to install
them. If you run the ifconfig program with no
command-line arguments, you will see that it lists the device
mentioned in the kernel boot messages: “eth0”. This is your
Ethernet device. It needs to be configured with the information
above, and the ifconfig program is designed to
do just that. Use a command line such as:

Once you have your Ethernet device configured, you have one
step remaining. As described earlier, the netmask tells your
machine which addresses are local and which are remote. If the
address is local, your Linux machine can route any datagrams
directly to the Ethernet device. If they are remote, datagrams
should be sent to the route which supports the link to the rest of
the Internet. The router also has an address, so you will need to
obtain this from your network administrator. Linux keeps a special
table in memory to look up where to send datagrams. This table,
called the routing table, is manipulated with the
route command. In a simple installation, as you
will most likely have, you will need to configure two routes for
your Ethernet: one for your local network, and another that tells
your Linux machine what to do with datagrams for any remote host.
This latter route is called the “default” route.

The route commands are:

route add NETWORK dev eth0
route add default gw ROUTER dev eth0

and for the example listed earlier (assuming the router
address is as shown):

You can use the route -n command to display the
contents of the routing table. The -n argument
says to show the addresses as numbers and not try to look up their
names, because you don't yet have your name resolver configured. To
configure your name resolver, you will need to find out the address
of the “NameServer” or “DNS” from your network administrator and
put this address in your /etc/resolv.conf file
in a line that looks like nameserver
NNN.NNN.NNN.NNN, where NNN.NNN.NNN.NNN
is the IP address of your nameserver.

Now you should be able to telnet to other
IP hosts, both local and remote. If you have configured the name
resolver of your Linux machine, then you can use their names,
otherwise you should use their addresses.

In addition, the Linux Network Administrator's
Guide is available from
sunsite.unc.edu in the directory
/pub/Linux/docs/LDP/, and can be ordered on
paper from SSC (the publishers of Linux Journal) and O'Reilly & Associates.

Terry Dawson (terryd@extro.ucc.su.oz.au)
has nearly 10 years experience in
packet switched data communications, and maintains the NET-2-HOWTO
and HAM-HOWTO documents for fun. Terry is keen to see Linux used
widely in Amateur Radio applications.