RSTP with a LAN bridge?

I have a Mikrotik acting as an edge router. SFP1 is connected to our Internet provider. SFP2, 3, 4 are in a bridge acting as our LAN ports. Each of those SFPs is connected to a different Netonix switch via a fiber cable. All 3 of those switches are located at different physical points on our transmit tower (WISP). All 3 Netonix are configured for RSTP and have the same priority (12288) since they are all on the same level. All have hard coded path costs on the ports connected back to the Mikrotik (20000).

My problem is, one of those Netonix becomes root for the other two (the one with the lowest MAC). What I want is the Mikrotik to be root and the root port on the 3 Netonix switches would be the fiber connected to the Mikrotik.

Our old topology had switch 1 attached to the Mikrotik and the other two switches attached to switch 1. They had a higher priority than switch 1 and all was happy. To remove a single point of failure and use fiber everywhere, we have all three switches connected to the Mikrotik and those three ports in a LAN bridge since we need the same VLANs to go to all three switches.

I am not able to figure out how to designate the LAN bridge as a lower RSTP priority and act as root so the three Netonix switches attached to it use it as the Root Bridge ID instead of the lowest MAC addressed Netonix.

You need to set a low value to prioritise Mikrotik bridge, the value need to be below than root-bridge-id.

Example to see who is the root-bridge:

/interface bridge monitor lan-bridge once

Output:
root-bridge: no
root-bridge-id: 0x7890.00:00:00:00:00:A9

So you’ll set a value below of 7890 like below, after this your Mikrotik will be the root bridge.

/interface bridge set priority=0x7700 lan-bridge

I found I was not calculating the HEX value for root priority properly. Not sure why it defaults to priority 32768 but my attempts to fix that with a hex value were incorrect. I now have it set to “4096” using hex value “1000” and all seems to be happy.