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:

IP address:   
Network address:
Broadcast address:

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:

ifconfig eth0 HOST netmask NETMASK\
     broadcast BROADCAST up

So for the above example use the command line:

ifconfig eth0\
        broadcast up

If you again run the ifconfig command with no command line arguments, you should see it now has the appropriate values configured.

More configuration info

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):

route add dev eth0
route add default gw dev eth0

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 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 ( 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.