Im reaching out here for some brainstorming, here is the synopsis:
We have 2 different upstream providers at 2 different geographic locations, lets name them "Provider A" and "Provider B". Both are used at all times (NOT a failover situation)
Each providers respective edge Mikrotik router is set to redistribute default route via OSPF.
Within our network we have a few hundred mikrotik routers, all with multiple paths to either Provider.
All of these routers have private IPs, as well as the wireless clients these routers are responsible for.
Some of these clients require a public IP address to reside on their equipment. Currently, we assign them a Public IP from "Provider A", and then install an EoIP tunnel from their CPE to the edge router at the Provider A pop. This ensures that the clients traffic will flow out the correct and responsible provider. If the EoIP was not in place the client may have a shorter path to Provider B, in which, traffic would flow to the incorrect Provider and then fail.
Our goal is to eliminate the EoIP solution. And instead, allow the routing protocol to ensure that the clients traffic flows out the responsible provider.