[XenoCafe Logo] Click for Homepage
Home Tutorials Forum Blog Advertising Links Contact About

 



Bind Multiple IP Addresses to a Single Network Interface Card (NIC)

Written by Tony Bhimani
September 9, 2005

Requirements
RedHat Linux

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.

cd /etc/sysconfig/network-scripts/

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 IP addresses.

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.

more ifcfg-eth0

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.

vi ifcfg-eth0:0

DEVICE=eth0:0
IPADDR=192.168.1.111

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

ifconfig

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.

ping 192.168.1.111
ping 192.168.1.112
ping 192.168.1.113

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.



How would you rate the usefulness of this content?

Poor 1
2
3
4
5
6
7
8
9
Outstanding

Optional: Tell us why you rated the content this way.
Characters remaining: 1024
Average rating: 7.53 out of 9.

1 2 3 4 5 6 7 8 9
414 people have rated this content.
This page has been viewed 176,231 times
Copyright © 2004-2014 XenoCafe. All Rights Reserved. XenoCafe is Powered by Linux. Free your mind and your wallet. Switch to Linux.