show route for ... filtered (not working)
Greetings, Ubuntu-16.04.6 LTS bird-1.6.6 (built from source) Our upstream BGP configuration is using: import keep filtered on I was checking the master table for a (filtered) destination IPv6 address (and network) doing the following. bird> show route for 2620:0:6b0:ff00::20 Network not in table bird> show route for 2620:0:6b0:ff00::20 all Network not in table bird> show route for 2620:0:6b0:ff00::20 filtered Network not in table bird> show route where bgp_path ~ [= * 23028 =] bird> show route where bgp_path ~ [= * 23028 =] filtered 2604:8800::/32 via 2001:590::xxxx:xxxx on edge.411 [gtt6 01:53:36] * (100 / 95) [AS 820048060 174 23028i] 2620:0:6b0::/48 via 2001:590::xxxx:xxxx on edge.411 [gtt6 01:53:36] * (100 / 95) [AS 820048060 174 23028i] bird> show route filtered for 2604:8800::/32 Network not in table bird> show route for 2604:8800::/32 filtered Network not in table bird> show route for 2620:0:6b0::/48 filtered Network not in table bird> show route table master for 2620:0:6b0:ff00::20 filtered Network not in table Why will the 'show route' only show this filtered route using 'bgp_path' and not directly using 'for'? This route is filtered in the 'master' table and there are no Pipes being used. Am I misusing the 'filtered' option? Thank you for looking. -- Terra
Hi, I suppose it could happen because "for" is looking for an active route for the given destination. And filtered routes would not be matched. On Sun, May 12, 2019 at 3:57 AM Terra Nova <terratech@gmail.com> wrote:
Greetings,
Ubuntu-16.04.6 LTS bird-1.6.6 (built from source)
Our upstream BGP configuration is using: import keep filtered on
I was checking the master table for a (filtered) destination IPv6 address (and network) doing the following. bird> show route for 2620:0:6b0:ff00::20 Network not in table
bird> show route for 2620:0:6b0:ff00::20 all Network not in table
bird> show route for 2620:0:6b0:ff00::20 filtered Network not in table
bird> show route where bgp_path ~ [= * 23028 =]
bird> show route where bgp_path ~ [= * 23028 =] filtered 2604:8800::/32 via 2001:590::xxxx:xxxx on edge.411 [gtt6 01:53:36] * (100 / 95) [AS 820048060 174 23028i] 2620:0:6b0::/48 via 2001:590::xxxx:xxxx on edge.411 [gtt6 01:53:36] * (100 / 95) [AS 820048060 174 23028i]
bird> show route filtered for 2604:8800::/32 Network not in table
bird> show route for 2604:8800::/32 filtered Network not in table
bird> show route for 2620:0:6b0::/48 filtered Network not in table
bird> show route table master for 2620:0:6b0:ff00::20 filtered Network not in table
Why will the 'show route' only show this filtered route using 'bgp_path' and not directly using 'for'? This route is filtered in the 'master' table and there are no Pipes being used. Am I misusing the 'filtered' option?
Thank you for looking.
-- Terra
Hi Alexander, On Sun, May 12, 2019 at 12:21 AM Alexander Zubkov <green@qrator.net> wrote:
Hi,
I suppose it could happen because "for" is looking for an active route for the given destination. And filtered routes would not be matched.
On Sun, May 12, 2019 at 3:57 AM Terra Nova <terratech@gmail.com> wrote:
Greetings,
Ubuntu-16.04.6 LTS bird-1.6.6 (built from source)
Our upstream BGP configuration is using: import keep filtered on
I was checking the master table for a (filtered) destination IPv6
address (and network) doing the following.
bird> show route for 2620:0:6b0:ff00::20 Network not in table
bird> show route for 2620:0:6b0:ff00::20 all Network not in table
bird> show route for 2620:0:6b0:ff00::20 filtered Network not in table
bird> show route where bgp_path ~ [= * 23028 =]
bird> show route where bgp_path ~ [= * 23028 =] filtered 2604:8800::/32 via 2001:590::xxxx:xxxx on edge.411 [gtt6 01:53:36] * (100 / 95) [AS 820048060 174 23028i] 2620:0:6b0::/48 via 2001:590::xxxx:xxxx on edge.411 [gtt6 01:53:36] * (100 / 95) [AS 820048060 174 23028i]
bird> show route filtered for 2604:8800::/32 Network not in table
bird> show route for 2604:8800::/32 filtered Network not in table
bird> show route for 2620:0:6b0::/48 filtered Network not in table
bird> show route table master for 2620:0:6b0:ff00::20 filtered Network not in table
Why will the 'show route' only show this filtered route using 'bgp_path' and not directly using 'for'? This route is filtered in the 'master' table and there are no Pipes being used. Am I misusing the 'filtered' option?
Thank you for looking.
-- Terra
I was leaning in that direction as well, however in the canonical sense, using the keyword 'filtered' should have removed that constraint and returned the filtered + non-active route. At this point, I don't know if current behavior is the intended behavior. -- Terra
On Mon, May 13, 2019 at 07:12:53AM -0700, Terra Nova wrote:
Hi Alexander,
On Sun, May 12, 2019 at 12:21 AM Alexander Zubkov <green@qrator.net> wrote:
Hi,
I suppose it could happen because "for" is looking for an active route for the given destination. And filtered routes would not be matched.
I was leaning in that direction as well, however in the canonical sense, using the keyword 'filtered' should have removed that constraint and returned the filtered + non-active route. At this point, I don't know if current behavior is the intended behavior.
Hi This seems to be unintended behavior, but it is hard to say what should be the intended behavior. I see three possible behaviors: 1) Explicitly forbid this combination (like combination of 'filtered' and 'export' is forbidden). 2) Find and show longest-match between filtered routes. 3) Find longest-match between both valid and filtered routes, show it only if it is filtered. -- 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."
Hello Ondrej, On Mon, May 13, 2019 at 7:51 AM Ondrej Zajicek <santiago@crfreenet.org> wrote:
On Mon, May 13, 2019 at 07:12:53AM -0700, Terra Nova wrote:
Hi Alexander,
On Sun, May 12, 2019 at 12:21 AM Alexander Zubkov <green@qrator.net> wrote:
Hi,
I suppose it could happen because "for" is looking for an active route for the given destination. And filtered routes would not be matched.
I was leaning in that direction as well, however in the canonical sense, using the keyword 'filtered' should have removed that constraint and returned the filtered + non-active route. At this point, I don't know if current behavior is the intended behavior.
Hi
This seems to be unintended behavior, but it is hard to say what should be the intended behavior. I see three possible behaviors:
1) Explicitly forbid this combination (like combination of 'filtered' and 'export' is forbidden).
2) Find and show longest-match between filtered routes.
3) Find longest-match between both valid and filtered routes, show it only if it is filtered.
-- 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."
Please don't forbid it via #1. It would be nice to use the longest-match machinery to lookup the filtered route. I'm not sure which would be the better implementation between #2 or #3, but I believe when the 'filtered' keyword is used it should be constrained to only working with filtered routes. -- Terra
participants (3)
-
Alexander Zubkov -
Ondrej Zajicek -
Terra Nova