Gateway failover - Single interface

Hi,
I have a single ethernet interface that connects to a downstream router (which I don’t control) which then connects to 2 DSL lines.
I’d like to use one of the DSL lines as my primary connection, and only use the other in a failover scenario.

What Ive done so far:

  • added 2 gateways - one to each DSL line, with a routing distance of 1 and 20 respectively.
    added a ping-check netwatch and up/down scripts to switch the routing distance between the 2 gateways.
    added a static route to the internet host I want to ping-check and made it go though the primary gateway.

I’m stuck on the last part - forcing the ping-check to always fail for the failover gateway.
I’ve seen posts saying you can do this in the firewall settings using ‘out-interface’, but that assumes the DSL connections are using different interfaces. In my case they use the same interface.

So the question boils down - how can I make the failover gateway never see my checking-ip address?

Any and all suggestions are appreciated. Note - I did look at the recursive routing idea, but I’d heard some folks had issues with this. Ideally I’d like to use something that is solid

Maybe you should check second gateway with arp-check?

There are a few ways to go about this, one way with your current setup that should be fast is to try and use routing rules. “/ip route rule”

There specify the dst-address of the service you want to ping over a given gateway and set the action to “lookup-only-in-table”. This assumes that you have a routing table setup for each gateway that is different than main.