Why doesn't my MikroTik failover switch when the internet is down?
If check-gateway only watches the ISP's own gateway and that gateway still answers, RouterOS has no signal that anything is wrong. The route stays active and failover never fires. This is the failure the simulator's upstream scenario plays. The fix is a recursive check that probes a real internet host past the gateway.
What does MikroTik's check-gateway actually probe?
Only the address in the route's gateway field — on a basic route, the ISP's own router one hop away — checked by ARP, ICMP ping, or an active BFD session. It never looks past that address; whatever sits behind it is invisible to the check. Recursive failover works by putting a host far out on the internet into that gateway field instead.
What is recursive routing on a MikroTik router?
A route whose gateway isn't directly connected to the router, so RouterOS resolves it through another route in the table instead — a lookup governed by scope and target-scope. For failover, that means the route being checked can point at a host out on the internet rather than at the ISP's own doorstep.
How long before RouterOS marks a MikroTik gateway down?
By default: one ping every 10 seconds, up to 1 second for the reply, and two misses in a row before the gateway is marked unreachable and the route goes inactive — one good reply resets the count. Since RouterOS 7.21 all three values live in /routing/settings and can be tuned; they apply to every check-gateway=ping route, recursive or not. The simulator runs the same two-miss count, sped up so you can watch it.
What's the difference between scope and target-scope on a MikroTik route?
A route's scope is the value it offers when it acts as someone else's next-hop; its target-scope is the ceiling it sets on which scope values it will accept when resolving its own gateway. A recursive default route only resolves through an anchor if the anchor's scope is at or below that route's target-scope.
Why pin one probe host per ISP instead of just pinging any public address?
Because an unpinned probe host has no route of its own. Traffic to it follows whatever route the router already prefers, so a check meant for the backup link can ride the primary and prove nothing. A /32 anchor per uplink forces each probe down the link it's meant to test. Choose a host that should always be reachable and answers ping; MikroTik's own example uses public DNS resolvers. Don't use that address for anything else, such as the router's own DNS, because the /32 ties it to one uplink and it goes dark whenever that uplink's upstream fails.
Distance or recursive routing — which one actually controls MikroTik failover?
They do different jobs. Distance only sets preference between routes that are both active, and the lower one wins. Recursion plus check-gateway decides whether a route counts as active at all.
Does a MikroTik failover route fail back automatically when the primary ISP recovers?
Yes. As soon as check-gateway gets a reply again — from the gateway, or from the probe host on a recursive route — the route is marked reachable and, carrying the lower distance, becomes active again on its own. No manual switch-back; the simulator's Recovery scenario plays exactly this.
My backup ISP went down but nothing happened on the network — is that a bug?
No, that's the correct outcome, and this simulator has a scenario for it: the backup route wasn't carrying anything, so its own check-gateway failure just marks that one standby route inactive. The primary keeps working untouched — there's nothing to reroute because nothing was using the backup path. It's still worth an alert: until the backup is back, the next primary failure has nowhere to go.