I’m running Linux Mint on a home server that happens to run pihole. Since it’s both a dhcp and dns server for my network, it has a static ip address. It has an ethernet connection as well as wifi and it’s always been my understanding that you can’t have two network interfaces sharing the same IP address, so I’ve been looking into ways to have one network adapter enabled and the other disabled and then if the network connection of the active device is lost, the other re-enables with the same IP address and disables the other device. This mostly work.
However while debugging one bit of software that seems to have a problem with me disabling my wifi adapter, I inadvertently enabled both the eth and wifi connections while each have the same, manually assigned ip address and everything so far just seems to work. I didn’t think this was possible and I’m wondering, should I expect problems? I can connect to the machine remotely fine, pihole and dvr services installed on the box work. Is there any reason to believe this won’t work?


It’s perfectly possible on Linux to have several network adapters with the same IP address, or several default routes.
Most server applications will listen to 0.0.0.0 address, which means all network interfaces. Any incoming TCP connection will remember it’s network interface, and the server will send responses to the same interface.
This will not work for UDP connections, and for outgoing TCP connections - they will always choose the network interface with the lowest metric, which you can print with
ip rcommand.This does not include advanced techniques like bridge or bonding or iptables routing - you need to run special commands in the terminal, which you cannot do just by clicking your mouse in system settings app.
Is it possible to configure interfaces this way? Yes.
Will it work? No, not without bonding, and not with WiFi as one of the interfaces.
Will UDP packets produce an error when sent or will they simply be received twice, potentially causing errors/issues?
Nope. The server receives UDP packet from WiFi and sends reply over Ethernet, which simply gets lost in your router. From the Linux side there’s no error, it sent the packet somewhere, and what happens next is your router’s problem.
That’s the think about UDP packets… receipt isn’t acknowledged as part of the protocol. It’s send and forget. I’m not sure a UDP packet sent to my server would get lost but I’m not 100% certain there couldn’t be situations where the packet is received by the server on both interfaces, essentially duplicated. It’s been almost 30 years since I wrote programs that utilized UDP for communicating. I’m definitely a little rusty. 😄
Unless its rudp.