Mon Dec 04, 2023 9:57 pm
Well, I finally solved this "transmit loop detected" issue with EoIP connections.
It is indeed a bug (still exists, as of v7.12.1).
Here is the way to replicate the problem:
Set up a wireless link between 2 Routeros devices: wireless antenna (A) and wireless client (C). This may be via a manually configured 802.11 connection, or one controlled by a CAPsMAN controller. It doesn't matter if you configure the datapath to enable "local routing" or not, or if you use VLAN routing or not -- the "transmit loop detected" defect can be triggered, either way.
(A) <- (... 802.11 ...) -> (C)
WORKING:
Now, to observe that EoIP works, follow the instructions in https://help.mikrotik.com/docs/display/ROS/EoIP. You can observe that you have two bridges (one on each device) that are now connected as a layer-2 broadcast domain. You will not observe any "transmit loop detected" issues.
TO TRIGGER THE "transmit loop detected" DEFECT:
Next, to observe the "transmit loop detected" defect, alter the test bed as follows.
Add a third RouterOS device (M). In my case, the CAPsMAN manager router (M) was managing a second CAP antenna (A), which provided the wireless link to the client routeros device (C):
(M) <-(Ethernet)-> (A) <- (... 802.11 ...) -> (C)
Once the wireless link is working, establish the EoIP connection NOT between the remote client (C) and the router containing the wireless antenna (A) -- but establish it between the client (C) and the third router (M), you just added.
You will observe that, most of the time but not all of the time, that router (M) will complain about a "transmit loop detected".
TO SOLVE THE "transmit loop detected" DEFECT:
So, how do you work around this? Protect the traffic between the client (C) and the other endpoint of the EoIP connection (M) -- you must establish an IPIP (or wireguard, or whatever) tunnel connection between EoIP endpoint devices (M) and (C)! Once the actual route of the EoIP traffic is "hidden" inside this tunnel, the EoIP implementation in (M) sees that traffic arriving locally (not coming in over an Ethernet port), and does not falsely detect a "transmit loop".
@sergejs, would it be possible to escalate this at Mikrotik? Thanks,