This is the routing table in my system:
[admin@MikroTik] ip route> print detail
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf
0 ADC dst-address=85.xx.xx.xx/30 prefsrc=85.xx.xx.xx interface=1-2 Bond
scope=10 target-scope=0
1 ADC dst-address=192.168.1.0/24 prefsrc=192.168.1.254 interface=3-Internal
scope=10 target-scope=0
2 ADC dst-address=195.xx.xx.xx/30 prefsrc=195.xx.xx.xx interface=1-2 Bond
scope=10 target-scope=0
3 A S dst-address=0.0.0.0/0 gateway=85.xx.xx.xx interface=1-2 Bond
gateway-state=reachable scope=255 target-scope=10
routing-mark=route_ISP1
4 A S dst-address=0.0.0.0/0 gateway=195.xx.xx.xx interface=1-2 Bond
gateway-state=reachable scope=255 target-scope=10
routing-mark=route_ISP2
5 A S dst-address=0.0.0.0/0 gateway=85.xx.xx.xx interface=1-2 Bond
gateway-state=reachable scope=255 target-scope=10
[admin@MikroTik] ip route>
The mangle chain looks like this:
[admin@MikroTik] ip firewall mangle> print
Flags: X - disabled, I - invalid, D - dynamic
.
.
.
7 ;;; Mark traffic initiated by Mikrotik
chain=output out-interface=1-2 Bond connection-state=new
action=mark-connection new-connection-mark=conn_Mikrotik passthrough=yes
8 chain=output out-interface=1-2 Bond connection-mark=conn_Mikrotik
action=mark-routing new-routing-mark=route_ISP1 passthrough=no
[admin@MikroTik] ip firewall mangle>
Both rule #7 and 8 work, the counter gets incremented as traffic is initiated from Mikrotik (via the terminal),
BUT if the routing rule #5 as per above does not exist / is disabled then none of this traffic will exit Mikrotik, the answer "no route to host" is shown in the Mikrotik terminal.
Strange