Debian networking

  • Basics Of IP Networking
  • Setting up Hostname
  • Setting up DNS
  • Setting up IP address
  • Setting up Second IP address or Virtual IP address in Debian
  • Setting your default gateway
  • Network testing basics

Networking and IP address tools These tools are really usefull.

Ethernet Bonding Configuration in Debian

Change your network card MAC Address

Basics of IP networking

A Debian host may have several interfaces each with a different Internet Protocol (IP) address. Interfaces may be of several different types, including:

  • Loopback: lo
  • Ethernet: eth0, eth1
  • Wi-Fi: wlan0, wlan1, wifi0,
  • Token Ring: tr0, tr1
  • PPP: ppp0, ppp1


There is a wide range of other network devices available, including SLIP, PLIP (serial and parallel line IP), "shaper" devices for controlling the traffic on certain interfaces, frame relay, AX.25, X.25, ARCnet, and LocalTalk.


Every network interface connected directly to the Internet (or to any IP-based network) is identified by a unique 32 bit IP address. The IP address can be divided into the part that addresses the network and the part that addresses the host. If you take an IP address, set to 1 the bits that are part of the network address and set to 0 the bits that are part of the host address then you get the so-called netmask of the network.


Traditionally, IP networks were grouped into classes whose net address parts were 8, 16 or 24 bits in length. This system was inflexible and wasted many IP addresses, so today IPv4 networks are allocated with network address parts of varying length.


               IP addresses                           net mask          length
     Class A     -        =  /8
     Class B  -     = /16
     Class C  -  = /24

IP addresses not in these ranges are used for special purposes.

There are address ranges in each class reserved for use on local area networks (LANs). These addresses are guaranteed not to conflict with any addresses on the Internet proper. (By the same token, if one of these addresses is assigned to a host then that host must not access the Internet directly but must access it through a gateway that acts as a proxy for individual services or else does Network Address Translation.) These address ranges are given in the following table along with the number of ranges in each class.


     network addresses                         length  how many
     Class A   10.x.x.x                             /8      1
     Class B   172.16.x.x -  172.31.x.x       /16     16
     Class C   192.168.0.x - 192.168.255.x /24     256

The first address in an IP network is the address of the network itself. The last address is the broadcast address for the network. All other addresses may be allocated to hosts on the network. Of these, the first or the last address is usually allocated to the Internet gateway for the network.


The routing table contains the kernel's information on how to send IP packets to their destinations. Here is a sample routing table printout for a Debian host on a local area network (LAN) with IP address 192.168.50.x/24. Host (also on the LAN) is a router for the corporate network 172.20.x.x/16 and host (also on the LAN) is a router for the Internet at large.


     # route
     Kernel IP routing table
     Destination   Gateway          Genmask       Flags Metric Ref Use Iface      *                U      0       0     2   lo *          U      0       0   137  eth0    UG    1       0     7   eth0
     default          UG     1       0    36  eth0
  • The first line after the heading says that traffic destined for network 127.x.x.x will be routed through lo, the loopback interface.
  • The second line says that traffic destined for hosts on the LAN will be routed through eth0.
  • The third line says that traffic destined for the corporate network will be routed toward gateway also through eth0.
  • The fourth line says that traffic destined for the Internet at large will be routed toward gateway also through eth0.


IP addresses in the table may also appear as names that are obtained by looking up addresses in /etc/networks or by using the C Library resolver.


In addition to routing, the kernel can perform network address translation, traffic shaping and filtering.


This article can be found here

Setting your hostname

Setting up your hostname upon a Debian installation is very straightforward. You can directly query, or set, the hostname with the hostname command.

As an user you can see your current hostname with:

$ /bin/hostname 


To set the hostname directly you can become root and run:

/bin/hostname newname

When your system boots it will automatically read the hostname from the file /etc/hostname


Setting up DNS

When it comes to DNS setup Debian doesn't differ from other distributions. You can add hostname and IP addresses to the file /etc/hosts for static lokups.

To cause your machine to consult with a particular server for name lookups you simply add their addresses to /etc/resolv.conf.

For example a machine which should perform lookups from the DNS server at IP address would have a resolv.conf file looking like this:


Setting up  IP address.

The IP addresses associated with any network cards you might have are read from the file /etc/network/interfaces.

A sample entry for a machine with a static address would look something like this:


# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static

Here we've setup the IP addresss (, the default gateway (, and the netmask.

For a machine running DHCP the setup would look much simpler:


# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface - use DHCP to find our address
auto eth0
iface eth0 inet dhcp

(If you're using a DHCP based setup you must have a DHCP client package installed - usually one of pump,dhcpcd or dhcp3-client.)If you make changes to this file you can cause them to take effect by running:


/etc/init.d/networking restart


Setting up Second IP address or Virtual IP address in Debian


If you are a server system administrator or normal user some time you need to assign a second ipaddress to your debian machine.For this you need to edit the /etc/network/interfaces file and you need to add the following syntax.Below one is the only example you need to chnage according to your ip address settings


                                        auto eth0:1
                                               iface eth0:1 inet static
                                               network x.x.x.x
                                               broadcast x.x.x.x
                                                gateway x.x.x.x
           You need to enter all the details like address,netmask,network,broadcast and gateways values after
         entering all the values  save this file and you need to restart networking services in debian using 
         the following command  to take effect of our new  ipaddress.
            #/etc/init.d/networking restart
           If you want to check your new ip is assigned or not use the following command


Setting your default gateway.

If you read the previous section then you'll see that the default route for a hos with a static IP address can be set in /etc/network/interfaces.If you wish to view your current default route/gateway then you can run:

# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface   U         0      0         0 eth0            UG        0      0         0 eth0

Alternatively you can use the route command:


# /sbin/route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface     *         U        0      0         0   eth0
default         router              UG       0      0         0   eth0


(Here the see the hostname router instead of the IP address - to avoid that run "/sbin/route -n").


To change your default route you must first remove the current one:


/sbin/route del default gw

Once this has done you'll have no gateway and be unable to talk to non-local hosts.Add the new route with :


/sbin/route add default gw

Network testing basics

Install netkit-ping, traceroute, dnsutils, ipchains (for 2.2 kernel), iptables (for 2.4 kernel), and net-tools packages and:


     $ ping               # check Internet connection
     $ traceroute      # trace IP packets
     $ ifconfig                           # check host config
     $ route -n                         # check routing config
     $ dig [] host.dom [{a|mx|any}] |less # check host.dom DNS records by 
                                                                                 # for a {a|mx|any} record
     $ ipchains -L -n |less         # check packet filter (2.2 kernel)
     $ iptables -L -n |less         # check packet filter (2.4 kernel)
     $ netstat -a                    # find all open ports
     $ netstat -l --inet            # find listening ports
     $ netstat -ln --tcp           # find listening TCP ports (numeric)