IP Alias on a Linux Box
This page was last updated January 13th 1997.

Mini How-to on Setting Up IP Aliasing On A Linux Machine

GNU Copyleft 1996/1997 Harish Pillay (h.pillay@ieee.org)

Primary site: http://home.pacific.net.sg/~harish/linuxipalias.html

Synopsis:

This is a cook book recipe on how to set up and run IP aliasing on a Linux box. In addition, there are instructions on how to also set up the machine to receive e-mail on the aliased IP #s.

My setup:

Commands: That's it.

In the example IP # above, I am using the Private IP #s (RFC 1918) for illustrative purposes. Substitute them with your own official or private IP #s.

The example shows only 3 IP #s. The max is defined to be 256 in /usr/include/linux/net_alias.h. 256 IP #s on ONE card is a lot :-)!

Here's what my /sbin/ifconfig looks like:


lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0
          UP BROADCAST LOOPBACK RUNNING  MTU:3584  Metric:1
          RX packets:5088 errors:0 dropped:0 overruns:0
          TX packets:5088 errors:0 dropped:0 overruns:0

eth0      Link encap:10Mbps Ethernet  HWaddr 00:8E:B8:83:19:20
          inet addr:172.16.3.1  Bcast:172.16.3.255  Mask:255.255.255.0
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:334036 errors:0 dropped:0 overruns:0
          TX packets:11605 errors:0 dropped:0 overruns:0
          Interrupt:7 Base address:0x378 

eth0:0    Link encap:10Mbps Ethernet  HWaddr 00:8E:B8:83:19:20
          inet addr:172.16.3.10  Bcast:172.16.3.255  Mask:255.255.255.0
          UP BROADCAST RUNNING  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0
          TX packets:0 errors:0 dropped:0 overruns:0

eth0:1    Link encap:10Mbps Ethernet  HWaddr 00:8E:B8:83:19:20
          inet addr:172.16.3.100  Bcast:172.16.3.255  Mask:255.255.255.0
          UP BROADCAST RUNNING  MTU:1500  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0
          TX packets:0 errors:0 dropped:0 overruns:0
And /proc/net/aliases:
device           family address                                
eth0:0           2      172.16.3.10                        
eth0:1           2      172.16.3.100

And /proc/net/alias_types:

type    name            n_attach
2       ip              2   

Of course, the stuff in /proc/net was created by the ifconfig command and not by hand!

Question: How can I keep the settings through a reboot?

Answer: Whether you are using BSD-style or SysV-style (Redhat for example) init, you can always include it in /etc/rc.d/rc.local. Here's what I have on my SysV init system (Redhat 3.0.3 and 4.0):

Question: How do I set up the IP aliased machine to receive e-mail on the various aliased IP #s (on a machine using sendmail)?

Hope the preceding is useful to someone.

Thanks to all those who have done this great work on Linux and IP Aliasing. And especially to Juan Jose Ciarlante for clarifying my questions.

Kudos to the ace programmers!

If you do find this document useful or have suggestions on improvements, do send me an e-mail at h.pillay@ieee.org.

Enjoy.


Questions?

Go back to Harish's Home Page