Debian – Fixing Static IP Interface Error ‘RTNETLINK answers: File exists’

debian-stretchinternetlinux-networkingnetworking

I have a fresh installation of SELKS(Debian 9) and I configured the network manually, but I can not bring the interface eno1 UP.

I get the error:

RTNETLINK answers: File exists
ifup: failed to bring up eno1

My /etc/network/interface configuration is the following:

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eno1
iface eno1 inet static
    address 192.168.200.32/24
    gateway 192.168.200.1
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers 8.8.8.8

which was auto generated by Debian setup when I clicked configure network manually, at the installer, so I am guessing it is correct.

Also I noticed that the /var/run/network/ifstate file does not include eno1, and that the ifstate.eno1 file is empty:

root@user:/home/user# cat /var/run/network/ifstate
lo=lo
root@user:/home/user# ls /var/run/network/
ifstate  ifstate.eno1  ifstate.lo
root@user:/home/user# cat /var/run/network/ifstate.eno1 

root@user:/home/user# 

Even if I try to enter manually the value eno1=eno1 still the interface can not be brought up.

I tried bringing the interface down and then up, as well as flushing the interface( ip addr flush dev eno1) but the results are the same:

root@user:/home/user# ifdown eno1
ifdown: interface eno1 not configured

root@user:/home/user# ifup -vvv eno1

ifup: configuring interface eno1=eno1 (inet)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/ethtool
run-parts: executing /etc/network/if-pre-up.d/wireless-tools
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
/bin/ip addr add 192.168.200.32/255.255.255.0 broadcast 192.168.200.255       dev eno1 label eno1
RTNETLINK answers: File exists
ifup: failed to bring up eno1

root@user:/home/user# ip addr flush dev eno1
root@user:/home/user# ifup eno1
RTNETLINK answers: No such file or directory
ifup: failed to bring up eno1

Also, here are the outputs of ethtool -i and dmseg:

root@user:/home/user# ethtool -i eno1
driver: bnx2
version: 2.2.6
firmware-version: 6.2.12 bc 5.2.3 NCSI 2.0.11
expansion-rom-version: 
bus-info: 0000:02:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

root@user:/home/user# dmesg | grep -i eth
[    1.801411] bnx2: QLogic bnx2 Gigabit Ethernet Driver v2.2.6 (January 29, 2014)
[    1.802139] bnx2 0000:02:00.0 eth0: Broadcom NetXtreme II BCM5716 1000Base-T (C0) PCI Express found at mem da000000, IRQ 16, node addr bc:30:5b:d9:17:72
[    1.802971] bnx2 0000:02:00.1 eth1: Broadcom NetXtreme II BCM5716 1000Base-T (C0) PCI Express found at mem dc000000, IRQ 17, node addr bc:30:5b:d9:17:73
[    1.830740] bnx2 0000:02:00.0 eno1: renamed from eth0
[    1.849481] bnx2 0000:02:00.1 eno2: renamed from eth1
[    6.694317] ACPI Error: Method parse/execution failed [\_SB.PMI0._GHL] (Node ffff9202369ae460), AE_NOT_EXIST (20160831/psparse-543)
[    6.694558] ACPI Error: Method parse/execution failed [\_SB.PMI0._PMC] (Node ffff9202369aee38), AE_NOT_EXIST (20160831/psparse-543)

I tried almost everything suggested here for this topic, but still could not find any answer.

Any help appreciated.

Best Answer

You've assigned the ip address manually earlier, and when you tried to bring up interfaces, the address assignment failed.

Likely the second error has been caused by manual edit of the /var/run/network/ifstate.eno1 file. Don't do it!

At result, the correct steps:

  • ifdown --force -vvv <iface>
  • ip address flush dev <iface>
  • ip link set <iface> down
  • ifup -vvv <iface>