default route check with BFD

I have the following setup
LAN ↔ MT1 ↔ MT2 ↔ WAN
with the MTs configured to route, not bridged.
MT1 has directly connected second WAN.

I’d like to failover on MT1 when the WAN is down. Thought BFD would enable exactly this, but when the route is set to check gateway via BFD, status is always down and the “immediate gateway” field is set to “unknown”.

BFD is enabled on both routers, for OSPF purposes and works.

Am I doing something wrong, are there alternative ways do achieve same goal?

Not sure where this going wrong… You should be able to use route rule for OSPF to set the check-gateway=bfd.

But…you cannot set check-gateway=bfd in a static /ip/route as that is “not yet support” per docs. So if it’s a static route, that be your issue here.

I hope they don’t in this RC OSPF adjacency is tearing down if bfd is enabled and you have in-filter-chain in your ospf instance with this rule

chain=ospf-in rule=“if(protocol ospf && dst==0.0.0.0/0) { set gw-check bfd; } accept;”

I try latest 7.14 stable same thing in my understanding BFD for ospf should work isn’t it?

Could some enlighten me if this is not how it supposed to use, thanks

in docs they demonstrate in-operator for DST.

chain=ospf-in rule=“if(protocol ospf && dst in 0.0.0.0/0) { set gw-check bfd; } accept;”

Thanks for the heads up, but it doesn’t warrant why the adjacency between ospf neighbor will teardown for me it’s a bug.

I think the bug here is

 set gw-check bfd;

when you just accept everything Adjacency formed and stable

I file a support ticket for this

https://help.mikrotik.com/servicedesk/servicedesk/customer/portal/1/SUP-152574

edit: I try the suggested routing filter rule still the connection teardown

https://help.mikrotik.com/docs/display/ROS/Route+Selection+and+Filters

Documentation is so “vague” on the valid syntax. Maybe the “accept;” outside the block isn’t allowed.

chain=ospf-in rule="if (protocol ospf && dst in 0.0.0.0/0) {set gw-check bfd; accept;} else {accept;}"

All of this is unrelated to 7.15rc release, if you have difficulties etting routing filters or BFD questions then please create a separate topic.

Also “BFD for OSPF” means that BFD is used to detect whether the OSPF neighbor is down, it is unrelated to setting check gateways for the ospf routes.
As for check-gateway=bfd option, it is not ready yet. And BFD works only if it is enabled on both ends. Setting “check gateway” BFD only on one end cannot detect whether the non-BFD enabled gateway is up or down.

@Infabo

This is not a routing filter issue because the syntax is working fine, the issue that I want to raise is clear, if you apply that rule in in-filter-chain in OSPF instance, the adjacency between neighbor will teardown what MT should do is don’t allow the user to set “gw-check bfd” since the code is incomplete at the moment no wonder why this is happening

@mrz

both neighbor has BFD enabled it’s just that ROS implementation of BFD is so incomplete since you are the most knowledgeable here in terms of feature set of your product, why don’t you help us mere mortal to make this to the finish line and guide your developer to make some prioritization on this, clearly you can influence the direction of your development in the past.

Are you not getting tired on answering and seeing this BFD issues every now and then, clearly BFD feature set is not optional

still none of this is related to v7.15 release

any roadmap or time-window when this will be ready?
don’t get me wrong, but nearly, for example, fs N5* or S5* series SWITCH is able to establish a dedicated static BFD session between to endpoint (meaning, i set a static endpoint IP on both devices, port, min/max/multi … and that’s it)

what is breaking the BFD “feature-set finalization”?

unfortunately I cannot give you any timeframe.

Fair enough. Recent BFD docs do say “Features not yet supported: … enabling BFD for ip route gateways”.

Except Route Selection and Filters help doc has no description of gw-check, or info that bfd doesn’t work…

But why include syntax that does not work?