ROS7 PBR instead of ECMP

Hey everyone,

I’m running a MikroTik CCR1009 with RouterOS 7.18.2.

I have BGP sessions with two different upstreams:

  • ISP1 (national provider) on ether1 — with 2 BGP peers (important!) (1 is the main BGP Neighboor and the 2nd one is the Backup Neighboor)
  • ISP2 (international provider) on combo1 — with 1 BGP peer

From both providers I receive the default route (0.0.0.0/0), and as expected, MikroTik installs both in the main routing table, which leads to ECMP.

But here’s the issue — I need strict policy-based routing (PBR):

  • Traffic that comes in via ISP1 must go out via ISP1
  • Traffic that comes in via ISP2 must go out via ISP2
  • My internal LAN (192.168.88.0/24) should only go out via ISP1, with NAT
  • No ECMP, no load balancing — I need symmetric routing, 100% predictable
  • Applications like VoIP are breaking because of asymmetric paths — packets go out one ISP and come back on the other

What I’ve tried:

  • VRFs per ISP — unreliable, didn’t fully work as expected
  • Mangle + routing marks — inconsistent behavior, especially with BGP-installed routes
  • Routing rules and custom routing tables — close, but I still had leaks (traffic exiting the wrong interface)
  • Tried filtering the default route, but I need them for failover logic, and filters break things if not done carefully

What I need help with:

  • A clean way to enforce symmetric routing based on ingress ISP, without relying on ECMP or hacky tricks
  • A config that works properly with multiple BGP peers on the same ISP
  • Proper use of /routing/table and /routing/rule to handle this the MikroTik 7.x way
  • And yeah — NO mangle, if possible

If anyone’s running a similar dual-homed BGP setup with strict PBR on RouterOS 7+, I’d love to see how you solved it.

P.S.: even tried doing something like in this tutorial https://www.slideshare.net/GLCNetworks/policy-based-routing-pbr-on-mikrotik but no success. Instead of the Src.Address I’ve used the interface…

Thanks in advance!

Hi,

seems like you have been on possible paths but then things didn’t work the way you wanted. Could you state what didn’t work for you with PBR, Firewall Mangle and VRFs? These should all work.

cheers,
Mischa