Use of default-originate in BGP

Am I right in thinking that Mikrotik uses default-originate to announce a default route, even if it isn’t being originated?

I created the following setup

Router1   <> Router2 <>  Router3
AS1          AS2         AS2

so Router2 and Router3 were talking over iBGP, and Router1 was the equivalent of an upstream transit.

Router1 was announcing a default route, but the only way I could get Router2 to announce it to Router3 was to use

default-originate=if-installed

even though it wasn’t originating the route.

I would expect Router2 to automatically announce the route to Router3, because the route is already in BGP.

Advice welcome.

Correct. Apparently it is not like Cisco and Juniper that advertises default route via eBGP right away.
“always” is used if you are not receiving default route from R1, but wanted to advertise default route from R2 to R3.

Okay, hopefully they fix this bug one day. They’re using the word “originate” incorrectly.

Yeah, having tried to raise this in a ticket just now, they’re not going to fix this bug because they consider that this behaviour, and their incorrect interpretation of the word “originate”, is by design.

I suggested that if this was really intended behaviour that they should update their documentation to make this clear, but they avoided addressing the fact that this behaviour is both unusual compared to other vendors and undocumented and instead decided to claim that the (also largely undocumented*) route selection filter feature could be used to restrict exactly which defaults would be advertised.

So, here, for the benefit of anyone else who might come across this issue, the warning I would put in the documentation:

:warning: RouterOS does not advertise installed default routes under any circumstances unless the “default-originate” function is used (either “always” or “if-installed”), and when “if-installed” is used, RouterOS will disregard any “redistribute” settings for that peer/protocol where the default route is concerned and will advertise the existence of any default route learned from any protocol (in the relevant VRF).
RouterOS may not update the advertised default route to properly reflect the local active default route if it changes.
This is intended behaviour. :warning:


\