In this tutorial, we are going to learn to assign multiple IP addresses to a single NIC (Network Interface Card). This process of assigning multiple addresses to a single network interface is called IP aliasing.

Main advantage of using IP aliasing is that we don’t need multiple NICs to configure multiple IPs, hence saving us cost & configuration time. IP aliasing is most useful when using Apache IP based virtual hosting.

For this tutorial, we are going to use RHEL/CentOS 7 but the same process can also be used older versions of RHEL/CentOS, the only change being the name of the network interfaces other than that process is same.

Recommended Read: Top 7 commands for Linux Network Traffic Monitoring

Also Read: Monitoring network bandwidth with iftop command

Network interfaces files in RHEL/CentOS 7(on older versions as well) are located at ‘/etc/sysconfig/network-scripts’ & name of the interfaces are usually ‘ifcfg-en0sX’, where ‘X’ is the number of the interface. In my case, its ‘ifcfg-en0s0’. So we will be using the same for the purpose of this tutorial.

Using Network Manager

We will be using a tool called 'nmtui' for this method. NMTUI is command line based user interface for Network Manager & even works for the system that does not have GUI installed. Open terminal & enter the command,

$ nmtui

We will get the following window,

IP aliasing

Click on 'Edit a connection', & then select the network interface from the list of interfaces & press ENTER key,

IP aliasing
Now we add the required number of IP address here & once done, we can click on 'OK' & then exit from the nmtui menu. Restart the NetworkManager service & we will have our IP aliasing ready.

Manual Method

For this method, we will manually create the necessary files needed. We will assign two different IPs in addition to the one we have already assigned to our interface  ‘ifcfg-en0s0’. To create IP alias, we are going to use our default network interface file & then will create two copies of the file with names 'ifcfg-en0s0:1' & 'ifcfg-en0s0:2'

$  cd /etc/sysconfig/network-scripts
$ cp ifcfg-en0s0 ifcfg-en0s0:1
$ cp ifcfg-en0s0 ifcfg-en0s0:2

Now, let’s open primary network interface i.e. eth0, & see its content

$ vi ifcfg-en0s0

DEVICE="en0s0"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
HWADDR=32:0A:21:54:ND:6D

We will now configure our other network interfaces, we only need to make changes for ‘DEVICE’ & ‘IPADDR’  for aliasing

$ vi ifcfg-en0s0:1

DEVICE="en0s0:1"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=192.168.1.110
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
HWADDR=32:0A:21:54:ND:6D

& same is to be done for ‘ifcfg:eth0:2’

$ vi ifcfg-en0s0:2

DEVICE="en0s0:2"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=192.168.1.120
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
HWADDR=32:0A:21:54:ND:6D

Save both files & restart the network service for changes to take effect.

$ systemctl restart network

To check IP addresses have bee assigned or not, run ‘ifconfig’

$ ifconfig

ip aliasing

This completes our tutorial, if you are having any issues/comments, please do mention them in the comment box below.

 

If you think we have helped you or just want to support us, please consider these :-

Connect to us: Facebook | Twitter | Google Plus

Become a Supporter - Donate us some of you hard earned money: [paypal-donation]

Linux TechLab is thankful for your continued support.