Linux Creating or Adding New Network Alias To a Network Card (NIC)

Posted on in Categories , , , , , last updated January 24, 2009

Q. I would like to create alias for my network card (NIC). How do I setup 2 IP address on One NIC? How do I add alias under Centos / Fedora / Debian / Ubuntu Linux?

A. Linux allows you to add additional network address using alias feature. Please note that all additional network IP address must be in same subnet. For example if your eth0 using 192.168.1.5 IP address then alias must be setup using 192.168.1.0/24 subnet.

ifconfig command line

You can use ifconfig command to configure a network interface and alias. For example:

  • eth0 NIC IP 192.168.1.5
  • eth0:0 first NIC alias: 192.168.1.6

To setup eth0:0 alias type the following command as the root user:
# ifconfig eth0:0 192.168.1.6 up
Verify alias is up and running using following command:
# ifconfig -a
# ping 192.168.1.6
However, if you reboot the system you will lost all your alias. To make it permanent you need to add it network configuration file.

Debian / Ubuntu Linux Instructions

You can configure the additional IP addresses automatically at boot with another iface statement in /etc/network/interfaces:
# vi /etc/network/interfaces
Append text as follows:

auto eth0:1
iface eth0:1 inet static
name Ethernet alias LAN card
address 192.168.1.7
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0

Save and close the file. Restart the network:
# /etc/init.d/networking restart

Red Hat / RHEL / CentOS / Fedora Linux Instructions

Copy etc/sysconfig/network-scripts/ifcfg-eth0 file as /etc/sysconfig/network-scripts/ifcfg-eth0:0
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0
Open file /etc/sysconfig/network-scripts/ifcfg-eth0:0 using vi text editor:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
Find entry that read as follows:

DEVICE=eth0

Replace with:

DEVICE=eth0:0

Find entry that read as follows:

IPADDR=xxx.xxx.xxx.xxx

Replace it with your actual IP address:

IPADDR=192.168.1.7

At the end your file should like as follows:

DEVICE=eth0:0
IPADDR=192.168.1.7
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
NAME=eth0:0

Open file /etc/sysconfig/network-scripts/ifcfg-eth0 and make sure file does not have a GATEWAY= entry:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
Find the entry that read as follows:

GATEWAY=your-ip

Remove or comment it out by prefixing # (hash) :

 # GATEWAY=192.168.1.254

Save the file. Add the GATEWAY= to your /etc/sysconfig/network:

# vi /etc/sysconfig/network

Append or modify GATEWAY entry:

GATEWAY=192.168.1.254

Save the file. Reboot the system or run the following command:

# ifup eth0:0

OR

# service network restart

Red Hat / CentOS / Fedora Multiple IP address range

You can assign multiple ip address range as follows to eth0:
vi /etc/sysconfig/network-scripts/ifcfg-eth0-range0
Append following code from 202.54.112.120 to 202.54.112.140:

IPADDR_START=202.54.112.120
IPADDR_END=202.54.112.140
CLONENUM_START=0
NETMASK=255.255.255.0

Save and close the file.

See also:

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

21 comment

  1. Hello there
    I am using Linux enterprise 4 on my Toshipa Laptop but it didn’t recognizing my NIC so I had to ask for the NIC installation file so I get and this is the name of the file install_8_37[1].tar but I dont know what to do after that ,so i need any help to do this but just please make simple and much details as much as you can because I am not quite expert.

  2. Hello, I am very new to Linux. Currently using Ubuntu and was wondering what the following line means.
    “name Ethernet alias LAN card”
    Any help on this would be great thanks!

  3. According to the documentation in /usr/share/doc/initscripts-*/sysconfig.txt, the file defining the eth0:0 device on RedHat/RHEL/CentOS/Fedora systems should only contain the information that is different from the parent eth0 device.

  4. I agree with Michael Leahy.

    /usr/share/doc/initscripts-*/sysconfig.txt says that the alias interfaces should not duplicate the information contained in the parent device.

    From /usr/share/doc/initscripts-*/sysconfig.txt

    /etc/sysconfig/network-scripts/ifcfg- and
    /etc/sysconfig/network-scripts/ifcfg-::

    The first defines an interface, and the second contains
    only the parts of the definition that are different in a
    “alias” (or alternative) interface. For example, the
    network numbers might be different, but everything else
    might be the same, so only the network numbers would be
    in the alias file, but all the device information would
    be in the base ifcfg file.

  5. Since when does an alias have to be on the same subnet? I use aliases all the time at work to create private “dev” VLANS with servers I SSH to directly (with a simple switch in between).

  6. For my centos5 this information was not sufficient. I’ve added a IP alias eth1:1 on a different subnet than eth1 with this ifcfg-eth1:1 file:
    GATEWAY=194.xxx.xxx.xxx
    TYPE=Ethernet
    DEVICE=eth1:1
    BOOTPROTO=none
    NETMASK=255.255.255.0
    IPADDR=194.xxx.xxx.xxx
    USERCTL=no
    IPV6INIT=no
    ONPARENT=yes
    PEERDNS=yes

    This works fine with a:
    service network restart

  7. how many ip alias I can create in rhel 5, till now i have 64 alias of eth0 interface. I’m able to ping till 63th alias but not on 64 why’s that. I have found that in ubuntu we can create till 254 alias from one particular interface card.
    any idea all the configuration are perfect and from sitting on the machine i’m able to ping myself on 64 alias.
    but not from other machine which is in netwrok

  8. IP address alias is simple option for adding multiple public IP address.

    check # ip address help

    Add IP Alias: ip addr add 122.122.122.122 dev eth1

    Delete IP Alias: ip addr del 122.122.122.122/32 dev eth1

    List IP Alias: ip addr show dev eth1

    1. I like this short way

      show status: ip a s eth0
      add ip alias: ip a a 192.168.1.1 dev eth0
      delete ip alias: ip a d 192.168.1.1 dev eth0
      add default route: ip r a 0.0.0.0/0 via 192.168.1.254
      ……

  9. Hello Sir.
    Thank you so much and i have found a lot, but finally your website helped me , and i was using Vmware layer with RHEL 6 and trying to do IP alias but totally fail and after running this command
    #ifconfig eth0:0 192.168.*.* it works for me and sir how can i make these alias permanently after reboot ?????

  10. in linux mint 17.2 there is nothing to do …just add another series of ip or another ip what ever require manually at network configuration n reboot pc everything works fine
    thanx

  11. 1. Create an alias call eth0:1 that uses an IP address of 10.254.254.X. Replace X with the address provided by the instructor.
    2. Make sure this alias is configured to start at boot.
    How can i do this problem? Do I have to download a server-based Linux system?

Leave a Comment