How to enter static prefix with multiple nexthops but no ECMP?
Hi! Does bird support a static prefix with multiple nexthops, without installing all of them in the kernel as ECMP? Trying to do that gives strange results. Consider the following; Add one static route bird> show static 172.20.5.0/24 via 10.210.70.1 bird> bird> show route 172.20.5.0/24 Table master4: 172.20.5.0/24 unicast [static1 15:32:13.352] (200) via 10.210.70.1 on eth0 bird> Add same prefix but pointing to another nexthop bird> show static 172.20.5.0/24 via 10.210.70.1 172.20.5.0/24 via 10.210.70.2 bird> Only second nexthop shows up (ideally would like to see all of them in the RIB, but operationally down) bird> show route 172.20.5.0/24 Table master4: 172.20.5.0/24 unicast [static1 15:32:57.097] (200) via 10.210.70.2 on eth0 bird> Remove one prefix bird> show static 172.20.5.0/24 via 10.210.70.1 bird> Entire prefix is gone. Why is that? bird> show route 172.20.5.0/24 Network not found bird> Is this use case supported? Or only true multi-path is supported? Thanks, Kenth
On Wed, Oct 16, 2019 at 01:41:45PM +0000, Kenth Eriksson wrote:
Hi!
Does bird support a static prefix with multiple nexthops, without installing all of them in the kernel as ECMP?
Hi I think that you are talking about multiple routes/paths with the same prefix. Static protocol currently does not support that (and behaves strangely when such multiple routes are defined). Simple workaround is to define multple static protocol instances. We have a patch for multiple static routes with the same prefix and different preference in one static protocol (commit 9861dba5230da539e6ce7d2b6baa4f2631556d09), but we plan to rewrite that significantly before merging to master. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
On Wed, 2019-10-16 at 16:43 +0200, Ondrej Zajicek wrote:
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
On Wed, Oct 16, 2019 at 01:41:45PM +0000, Kenth Eriksson wrote:
Hi!
Does bird support a static prefix with multiple nexthops, without installing all of them in the kernel as ECMP?
Hi
I think that you are talking about multiple routes/paths with the same prefix. Static protocol currently does not support that (and behaves strangely when such multiple routes are defined). Simple workaround is to define multple static protocol instances. We have a patch for multiple static routes with the same prefix and different preference in one static protocol (commit 9861dba5230da539e6ce7d2b6baa4f2631556d09), but we plan to rewrite that significantly before merging to master.
Ok, thanks for clarifying that. What is the target release for that feature?
-- Elen sila lumenn' omentielvo
Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
On Wed, Oct 16, 2019 at 02:52:10PM +0000, Kenth Eriksson wrote:
On Wed, 2019-10-16 at 16:43 +0200, Ondrej Zajicek wrote:
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
On Wed, Oct 16, 2019 at 01:41:45PM +0000, Kenth Eriksson wrote:
Hi!
Does bird support a static prefix with multiple nexthops, without installing all of them in the kernel as ECMP?
Hi
I think that you are talking about multiple routes/paths with the same prefix. Static protocol currently does not support that (and behaves strangely when such multiple routes are defined). Simple workaround is to define multple static protocol instances. We have a patch for multiple static routes with the same prefix and different preference in one static protocol (commit 9861dba5230da539e6ce7d2b6baa4f2631556d09), but we plan to rewrite that significantly before merging to master.
Ok, thanks for clarifying that. What is the target release for that feature?
Probably something like 2.0.8-9. The design of our protocol-table interface requires that if i have multiple routes with the same networks, there must be an u32 value that distinguishes them (that is inspired by BGP ADD-PATH design). In the patch above we used preference for this distinguisher, but later we got some feedback that it may be more useful to have IGP-comparable metric (i.e. igp_metric attribute) for this (so multiple routes with the same preference and different igp_metric can be used). Another possibility is to have separate 'id' argument for distinguisher unrelated to any real attribute, but that may be inconvenient for users. Yet another possibility is to have some automatic 'id' assignment based on all static route attribute through hash table, but that seems like a too much / unnecessary work. So i would like to get some feedback w.r.t. that. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
On Thu, 2019-10-17 at 12:14 +0200, Ondrej Zajicek wrote:
On Wed, Oct 16, 2019 at 02:52:10PM +0000, Kenth Eriksson wrote:
On Wed, 2019-10-16 at 16:43 +0200, Ondrej Zajicek wrote:
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
On Wed, Oct 16, 2019 at 01:41:45PM +0000, Kenth Eriksson wrote:
Hi!
Does bird support a static prefix with multiple nexthops, without installing all of them in the kernel as ECMP?
Hi
I think that you are talking about multiple routes/paths with the same prefix. Static protocol currently does not support that (and behaves strangely when such multiple routes are defined). Simple workaround is to define multple static protocol instances. We have a patch for multiple static routes with the same prefix and different preference in one static protocol (commit 9861dba5230da539e6ce7d2b6baa4f2631556d09), but we plan to rewrite that significantly before merging to master.
Ok, thanks for clarifying that. What is the target release for that feature?
Probably something like 2.0.8-9.
The design of our protocol-table interface requires that if i have multiple routes with the same networks, there must be an u32 value that distinguishes them (that is inspired by BGP ADD-PATH design).
In the patch above we used preference for this distinguisher, but later we got some feedback that it may be more useful to have IGP-comparable metric (i.e. igp_metric attribute) for this (so multiple routes with the same preference and different igp_metric can be used). Another possibility is to have separate 'id' argument for distinguisher unrelated to any real attribute, but that may be inconvenient for users. Yet another possibility is to have some automatic 'id' assignment based on all static route attribute through hash table, but that seems like a too much / unnecessary work.
So then the key for static routes would be the tuple {net, preference, igp_metric}? Or is also nexthop part of the key? The igp_metric could be useful, but for our current use case a preference value with local significance would be sufficient. Another desirable change for static routes is that they should show up in the RIB. Current design does not important all static routes into the RIB, but instead may set the dormant flag on them.
So i would like to get some feedback w.r.t. that.
participants (2)
-
Kenth Eriksson -
Ondrej Zajicek