“RTNETLINK answers: File exists” /etc/network/interfaces Does’nt contain 2 gateways, so what’s wrong

internetnetworkingnetworkmanager

This is my /etc/network/interfaces file contents

The only way this is taking effect is when the system reboots.

I'm trying to get it effected manually. My attempts below.

auto eth0
    iface eth0 inet static
           address 192.168.1.57
           netmask 255.255.255.0
           gateway 192.168.1.1
           up ip addr add 192.168.0.57/24 dev eth0 label eth0:1
           down ip addr del 192.168.0.57/24 dev eth0 label eth0:1
           up ip route add 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
           down ip route del 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20

First tried to run sudo ifup eth0

and i receive

RTNETLINK answers: File exists
Failed to bring up eth0.

The /etc/network/interfaces only work when i reboot the system

Other than that i've tried

sudo /etc/init.d/networking restart

sudo service network-manager restart

sudo service networking restart

But none of them will bring up the changes in the interfaces file

My only option was sudo ifup eth0 and that gives the above error.

what is wrong?

Best Answer

Edit your configuration file to remove the spaces before the iface stanza so that it looks like this,

auto eth0
iface eth0 inet static
   address 192.168.1.57
   netmask 255.255.255.0
   gateway 192.168.1.1
   up ip addr add 192.168.0.57/24 dev eth0 label eth0:1
   down ip addr del 192.168.0.57/24 dev eth0 label eth0:1
   up ip route add 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
   down ip route del 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20

The message you receive is just indication that the interface is already up, so you need to do ifdown before you do ifup. However, you need to be careful if you are connecting via ssh - you may lock yourself out. This is a way to do it:

sudo ifdown eth0 && sudo ifup eth0

Note, how these two commands are executed on the same line. And just a precaution, make sure you can get access to the server console or reboot the server if something goes wrong.