I have an interface eth0, and I wish to give it an extra virtual IP. I achieve this by the following:
ifconfig eth0:0 ip.address.goes.here netmask subnet.address.goes.hereThis works fine, however, when I reboot, this is lost.
I have tried editing /etc/network/interfaces to add the following:
auto eth0:0 iface eth0:0 inet static address ip.address.goes.here netmask subnet.address.goes.hereHowever, upon rebooting, the static ip for eth0 is loaded fine, but, the eth0:0 virtual IP is not loaded at all.
So, how can I permanently add the eth0:0 virtual IP?
2 Answers
Instead of that eth0:0 business, you should do this:
Configure your (one) static IP address in
/etc/network/interfacesas you normally would:# The primary network interface auto eth0 iface eth0 inet static address 192.168.0.201 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1Add another IP to this interface by adding this right after the above:
up /sbin/ip addr add 192.168.0.203/24 dev eth0 down /sbin/ip addr del 192.168.0.203/24 dev eth0The complete file should look like this
Now, if you check what IP addresses are configured by running ip addr show, both will show up:
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:1d:fa:0b brd ff:ff:ff:ff:ff:ff inet 192.168.0.201/24 brd 192.168.0.255 scope global eth0 inet 192.168.0.203/24 scope global secondary eth0
My thanks to Lekensteyn for pointing me in the right direction. Every site on the internet just talks about eth0:0 for a secondary IP address. This seems like the proper way to do it.
If you want to do things the "traditional" way, the relevant part of /etc/network/interfaces should look like:
auto eth0:0
iface eth0:0 inet static address ip.address.goes.here netmask subnet.address.goes.hereinstead of this, where you made a mistake:
auto eth0:0 iface eth0:0 inet static address ip.address.goes.here netmask subnet.address.goes.here 1