I recently checked in with some of the machines I have been administering in my homelab. I have a case
whereby my one Mikrotik has two bridges configured - nothing special with that - I added them as follows:
Code: Select all
/interface/bridge
add name=bridge1
add name=bridge2
ports/
add bridge=bridge1 interface=ether6
add bridge=bridge1 interface=ether7
add bridge=bridge2 interface=ether8
add bridge=bridge2 interface=ether9
Now I have a scenario whereby I have a device (call it dev_a) connected via Ethernet to one of the enslaved ports of `bridge1`
and then I have another device (call it dev_b) connected via Ethernet to one of the enslaved ports of `bridge2`.
Here's the kicker (although I never assumed it should have been one because there is nothing wrong with this from
my networking understanding at both L2 and L3), dev_a and dev_b both have the same MAC address, but that should
be no problem - they are after all on **different** bridges:
Okay, still fine.
Now, we know that with how IPv6 link-local works that means the Linux kernel running on dev_a and dev_b
is going to derive the link-local interface address from the MAC address (which is the same on both devices),
meaning both dev_a and dev_b will have the same IPv6 link-local address (this should _still_ be fine as they
are on seperate L2 networks).
When I ping the address like so:
Code: Select all
ping fe80::6222:32ff:fe39:c56d%bridge1
Code: Select all
ping fe80::6222:32ff:fe39:c56d%bridge2
does but is flaky - more timeouts than replies received. If, however, I unplug the ethernet cable
that connects dev_b to bridge2 (meaning that the entry for the MAC address disappears from
bridge2), then the ping for dev_a (over bridge1) starts working again.
---
Can someone either tell me I am crazy, because this setup should work.