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?
I don’t know how it’s working for you because I just tried on my PC and got an IP address conflict on my router.
Yes
https://wiki.archlinux.org/title/Wireless_bonding
EDIT: oh wait, you configured them both with the same static ip address. Can you use a tool like
iftopto check that both interfaces are actually being used? You can also usetcpdump -i interfacenameor similar tools.It’s very possible that this setup doesn’t break, but isn’t true bonding, where both connections can be used at once for more bandwidth. Although, maybe this is an easy, reliable way to get a failover type system, where when the ethernet is disconnected it automatically uses the wifi. Or maybe it’s been using only the wifi this whole time.
Thanks for the reply. They seem to both be active. I don’t have iftop but tcpdump shows traffic on both, though much less on the wifi connection.
ip route shows:
default via 192.168.1.1 dev enp1s0 proto dhcp metric 100 default via 192.168.1.1 dev wlp2s0 proto dhcp metric 600 169.254.0.0/16 dev enp1s0 scope link metric 1000 192.168.1.0/24 dev enp1s0 proto kernel scope link src 192.168.1.4 metric 100 192.168.1.0/24 dev wlp2s0 proto kernel scope link src 192.168.1.4 metric 600I really didn’t think I’d be allowed to statically assign the same IP address to both interfaces, and surprisingly it seems to be working ok. I’m just wondering what I don’t know that’s going to bite me :)
The “metric 600” on your Wi-Fi adapter indicates to the system that it is a higher cost route than your Ethernet one. So the IP stack will prefer sending packets out via the Ethernet port.
Local devices who haven’t heard from you lately will send to whatever device gives them a response to their ARP (“who has IP address X?”) request first, and seeing as Ethernet is lower latency than WiFi, they will mostly use your Ethernet adapter as their target when sending data to you.
Devices that have received data from you already will have the MAC address of your Ethernet adapter in their ARP table, so they’ll just send packets to that without bothering to issue an ARP request.
Devices off your subnet talk to your router, so they don’t care about your MAC address, they’ll just use IP to talk to your router, who will then do the ARP request and hand the packets on to your computer via whatever interface answers first.


