Bind Multiple IP Addresses to a Single Network Interface Card (NIC)
Written by Tony Bhimani
September 9, 2005
This tutorial demonstrates how to bind multiple IP addresses to a single
NIC. By using multiple IP's you can run a service under a specific IP
while having another service under a different one (for example, have
HTTP on one and SMTP on another), or create a private LAN using a local
IP and have the alias hold your Internet IP (such as NAT). One of the
major benefits is that you don't need a physical adapter for each IP but
instead can create many virtual ones tied to a single physical card. The
instructions provided apply to RedHat, Fedora, and CentOS. I'll be using
LAN IP's in this example, so replace them with the ones you'll be using.
The network scripts are located in /etc/sysconfig/network-scripts/. Go
into that directory.
The file we're interested in is ifcfg-eth0, the interface for the Ethernet
device. If you have a second Ethernet device then there would be an ifcfg-eth1
file and so on for each adapter you have installed. Let's assume we want
to bind three additional IP's (192.168.1.111, 192.168.1.112, and 192.168.1.113)
to the NIC. We need to create three alias files while ifcfg-eth0 maintains
the primary IP address. This is how we'll set up the aliases to bind the
Adapter IP Address Type
eth0 192.168.1.110 Primary
eth0:0 192.168.1.111 Alias 1
eth0:1 192.168.1.112 Alias 2
eth0:2 192.168.1.113 Alias 3
The :X (where X is the interface number) is appended to the interface
file name to create the alias. For each alias you create you assign a
number sequentially. For this example we will create aliases for eth0.
Make a copy of ifcfg-eth0 for the three aliases.
cp ifcfg-eth0 ifcfg-eth0:0
cp ifcfg-eth0 ifcfg-eth0:1
cp ifcfg-eth0 ifcfg-eth0:2
Take a look inside ifcfg-eth0 and review the contents.
We're interested in only two lines (DEVICE and IPADDR). We'll rename
the device in each file to its corresponding interface alias and change
the IP's. We'll start with ifcfg-eth0:0. Open ifcfg-eth0:0 in vi and change
the two lines so they have the new interface and IP address.
Save ifcfg-eth0:0 and edit the other two alias files (ifcfg-eth0:1 and
ifcfg-eth0:2) so they have the new interfaces and IP addresses set (follow
the table from above). Once you save all your changes you can restart
the network for the changes to take effect.
service network restart
To verify all the aliases are up and running you can run ifconfig (depending
on how many new IP's you set up, you can use ifconfig | more
to pause the output).
You can also test the IP's by pinging them from a different machine.
If everything is working then there should be a response back.
Looks like everything is working like a charm. With the new IP's you
can set up sites in Apache bound to a dedicated IP, anonymous FTP, and
many other things. If you run into any problems during configuration,
please post your questions to the forum.
This page has been viewed 179,616 times