Hello again,
Thank you for the replies.
It's a simple setup with a private ASN and a default from upstream, so
it's more advertising the inbound path that is the issue. Since the ASN is
private, I can't do something like AS path padding to strongly prefer one
path over the other. The backup wireless links (there are actually 2) are
inferior to the main wired link, so during normal operation no appreciable
amount of traffic should be passing through the backups. A global flap
isn't the ideal way to reroute traffic during an outage, but because of
the setup I have to think outside the box a little. :)
Thanks to Maria for the suggestion about route monitoring.
Regards.
On Wed, 24 Nov 2021, Cybertinus wrote:
Hello,
What also might be an idea is too keep both sessions up all the time, but
give the routes recieved from the backup connection a lower preference. If
you receive the same routes from both connections, then the routes learned
from the primary connection will be used. If this connection fails, then the
router will use the routes learned from the backup connection. If the primary
connection comes back, the router will fail back to the primary connection.
But this idea only works when you learn the same routes from both
connections. If you ever learn a unique or more specific route only via the
backup connection, the connection will be used for those routes. So, it
depends on the routes you learn if this idea will work or not.
Kind regards,
Cybertinus
On 2021-11-24 09:55, Maria Matejka wrote:
Hello!
This is not possible at all. We may implement something like this in
near future, yet since it heavily depends on some now-unstable code,
you'd be better for now to do it by an external script.
You can also, instead of calling birdc show route repeatedly, use
something like 'ip monitor' command (on Linux) or 'route -n monitor'
(on BSD) to get the updates from kernel table as they come in and
process them immediately.
Maria
On 11/23/21 8:20 PM, bir...@sensation.net.au wrote:
Hi all,
I want to enable a backup BGP session (or perhaps, keep the session up and
change the import/export filters) only when the main peer goes down
(default disappears)
Conceptually, I want to do something like this:
if net = 0.0.0.0/0 then {
???? if from = x.x.x.x then {?? # x.x.x.x = main peer
???????? disable backup_bgp_session;
???? } else {
???????? enable backup_bgp_session;
???? }
}
Obviously this doesn't work, since disable/enable cannot be used in the
config. The logic is also a little flawed.
I thought about setting a global variable in one filter, and using that
variable in another to decide what to export to the backup peer, but it
seems that BIRD only supports local variables?
I can fudge it by using an external script to query "birdc show route
0.0.0.0/0" to check for the presense of default, and then "birdc enable
backup_bgp_session" or "birdc disable backup_bgp_session" as appropriate,
but I'd prefer to be able to do it within BIRD.
Hope someone can give me some hints. Thanks.