Pi gateway: “RTNETLINK answers: File exists” on ifup eth0 and keepalive drops after boot
First post, I have been reading here for a while.
We built our own gateway on a Raspberry Pi 3B+ (Raspberry Pi OS Bullseye) for a small substation: it reads three Modbus RTU meters and publishes them on v1/gw/telemetry. The substation LAN has no DHCP, so eth0 needs a static address. I added this to /etc/network/interfaces:
auto eth0
iface eth0 inet static
address 10.40.2.20
netmask 255.255.255.0
gateway 10.40.2.1
dns-nameservers 10.40.2.1
After a reboot it sometimes works and sometimes not. When it does not, sudo ifup eth0 says:
RTNETLINK answers: File exists
ifup: failed to bring up eth0
In Hermetry the gateway’s Log tab shows a keepalive_timeout disconnect around every boot and then it reconnects some minutes later, or not at all until I log in on site. ip addr sometimes shows two addresses on eth0, the static one and a 169.254 one.
Did you try ifdown first and then ifup?
Yes, ifdown says interface eth0 not configured and ifup fails the same way afterwards.
Bullseye uses dhcpcd for networking. /etc/network/interfaces is the old way, I would not mix them.
Daniel has it. I hit exactly this on a pumping station Pi last year. Two things are configuring eth0: dhcpcd starts at boot, finds no DHCP server and gives the port a 169.254 link-local address plus routes, and then ifup tries to add its own address and default route. The route is already there, so the kernel answers “File exists” and ifup gives up. Depending on which one wins the race at boot, your gateway gets out or not.
Pick one. On Bullseye that means dhcpcd. Remove the eth0 block from /etc/network/interfaces (leave the file with only the source line) and put the static setup in /etc/dhcpcd.conf:
interface eth0
static ip_address=10.40.2.20/24
static routers=10.40.2.1
static domain_name_servers=10.40.2.1
noipv4ll
Then clean up without a reboot:
sudo ip addr flush dev eth0
sudo systemctl restart dhcpcd
ip addr show eth0
noipv4ll stops the 169.254 address. If you move to Bookworm later, dhcpcd is gone and you do the same with nmcli, so keep a note of that.
Didn’t know the Pi OS versions changed this, good to know.
Fixed. Interfaces file cleaned, static config in dhcpcd.conf with noipv4ll, rebooted the Pi ten times in a row this morning and the gateway connected within a few seconds every time. The Log tab now shows one clean connect per boot.
- You must be logged in to reply to this topic.
Join the conversation
Sign in to ask and answer, like helpful posts and mark the reply that solved your problem. Every contribution earns points and levels.

