Saturday, August 17, 2013

Assigning multiple Virtual IPs to a NIC

Assigning a virtual IPs to a NIC is a very easy task either you use the system-config-network tool or just do some text file editing. The script ifconfig can also be used to create a virtual network interface, but this would not be permanent since the changes ifconfig makes do not survive a reboot. Here we will use text based method to assign multiple IPs.

My default network configuration file is located at /etc/sysconfig/network-scripts/ifcfg-eth0 and looks like as below:


DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
HWADDR=00:00:00:00:00:00
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
TYPE=Ethernet
GATEWAY=192.168.0.254
Before editing network configuration file, take backup of it.

# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eth0 ifcfg-eth0:1

eth0:1 is an alias of the eth0 interface. Now, let’s assign a different IP address to eth0:1. Other NIC aliases could be named eth0:2, eth0:3 etc.

# nano ifcfg-eth0:1
DEVICE=eth0:1
BOOTPROTO=static
BROADCAST=192.168.0.255
HWADDR=00:00:00:00:00:00
IPADDR=192.168.0.2
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
TYPE=Ethernet
GATEWAY=192.168.0.254

Save the file and copy it to /etc/sysconfig/networking/devices/:
# cp ifcfg-eth0:1 /etc/sysconfig/networking/devices/

Also, copy it to your default network profile or whichever profile you use:
# cp ifcfg-eth0:1 /etc/sysconfig/networking/profiles/default/

Now, bring up the new interface using the ifup script:
# ifup eth0:1

Running ifconfig, the new interface should be listed. You can also check it by pinging:
# ping 192.168.0.2

Note: You can now assign a host name on this virtual interface, by updating your local DNS server’s zone files or by adding it to the /etc/hosts files on all your locally connected systems.

0 comments: