MiniTip: Setting IP Aliases under Fedora
Contents
Set an IP Alias
To put a second IP address to eth0, just enter on the commandline as root:
# ip addr add 192.168.100.199/24 brd + dev eth0 label eth0:0
This sets an IP address 192.168.100.199 to eth0:0. Check again with ifconfig:
# ifconfig eth0 Link encap:Ethernet HWaddr 00:40:45:28:89:37 inet addr:192.168.100.199 Bcast:192.168.100.255 Mask:255.255.255.0 inet6 addr: fe80::92e6:baff:fe43:ff4/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:16191 errors:0 dropped:0 overruns:0 frame:0 TX packets:12375 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:20577186 (19.6 MiB) TX bytes:1174207 (1.1 MiB) Interrupt:27 Base address:0x6000 eth0:0 Link encap:Ethernet HWaddr 00:40:45:28:89:37 inet addr:192.168.100.199 Bcast:192.168.100.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:27 Base address:0x6000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:114 errors:0 dropped:0 overruns:0 frame:0 TX packets:114 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:13662 (13.3 KiB) TX bytes:13662 (13.3 KiB)
Now we see a new interface eth0:0. If you forget to define a label for the alias you would not see the new IP in the ifconfig output, but it would still work! In this case check with:
With label:
# ip a | grep -w inet inet 127.0.0.1/8 scope host lo inet 192.168.1.44/24 brd 192.168.1.255 scope global eth0 inet 192.168.100.199/24 brd 192.168.100.255 scope global eth0:0
No label:
# ip a | grep -w inet inet 127.0.0.1/8 scope host lo inet 192.168.1.44/24 brd 192.168.1.255 scope global eth0 inet 192.168.100.199/24 brd 192.168.100.255 scope global eth0
Make the IP Alias Permanent
If you use ip or ifconfig to set an IP alias, the alias won't be present after the next reboot. To make the setting permanent, we have to
create a file ifcfg-eth0:0
with the following contents:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0:0 ISALIAS=yes DEVICE=eth0:0 ONBOOT=yes BOOTPROTO=none IPADDR=192.168.100.199 NETMASK=255.255.255.0 NETWORK=192.168.100.0 BROADCAST=192.168.100.255 TYPE=Ethernet
The important part in this file is that you include the line ISALIAS=yes
- otherwise the file will be ignored! It took
me some time to figure this out.
We have to create hardlinks to this file under /etc/sysconfig/networking/devices and /etc/sysconfig/networking/profiles/default:
# ln /etc/sysconfig/network-scripts/ifcfg-eth0:0 /etc/sysconfig/networking/devices/ifcfg-eth0:0 # ln /etc/sysconfig/network-scripts/ifcfg-eth0:0 /etc/sysconfig/networking/profiles/default/ifcfg-eth0:0
Remove an IP Alias
You can remove an IP alias with a comand like this:
# ip addr delete 192.168.100.199/24 dev eth0
This deletes the second address from the interface keeping the first. eth0:0 will disappear in the ifconfig output.