Understanding bird2's behavior
Hello everyone, I have a Debian router that’s running bird2 off of the Debian repo (2.0.12-7). This also occurred on 2.0.7-4.1. It is using only BGP, with 9 IPv4 + 9 IPv6 peers. It’s in a private environment with < 100 routes on the RIB. When I’m running “show route table master6” (happens on v4 too), I see some normal routes, e.g.: 2a0d:3dc0:500::216:50/128 unicast [peer1_v6 2023-12-02] * (100) [AS65000i] via 2a0d:3dc0:501::a1 on if4 But I also see some routes that have a “!” Instead of the “*”: 2a0d:3dc0:500::216:48/128 unicast [peer1_v6 2023-12-06] ! (100) [AS65000i] via 2a0d:3dc0:501::a1 on if4 I couldn’t find exactly what “!” means in the docs, and some quick searching in the git repo wasn’t successful either, but I probably missed something. I’d expect it to mean unreachable, invalid, or something similar. AS 65000 in this case advertises ::32 - ::64 from the exact same router, 2 ASNs away from this device. Around 8 of the routes work with “*” while the rest are marked with “!”. This seems to be happening to the same routes, even after reboots of all involved routers. It’s also present in routes advertised from the direct peer. Although all routes have the same next hop, AS path, origin, etc. some are marked with “!”. These routes are not in the kernel FIB (not present in ip -6 r s). But they are exported by the kernel2 protocol: bird> show route export kernel2 Table master6: 2a0d:3dc0:500::216:48/128 unicast [peer1_v6 2023-12-06] ! (100) [AS65000i] via 2a0d:3dc0:501::a1 on if4 The config exports everything for debugging: protocol kernel { ipv6 { export all; }; } Does anyone know what’s the best approach in troubleshooting this? Thanks!
Re: Understanding bird2's behavior
On Thu, Dec 07, 2023 at 12:29:04PM +0100, Antonios Chariton (daknob) via Bird-users wrote: > Hello everyone, > > I have a Debian router that’s running bird2 off of the Debian repo > (2.0.12-7). This also occurred on 2.0.7-4.1. > > It is using only BGP, with 9 IPv4 + 9 IPv6 peers. It’s in a private > environment with < 100 routes on the RIB. > > When I’m running “show route table master6” (happens on v4 too), I see some > normal routes, e.g.: > > 2a0d:3dc0:500::216:50/128 unicast [peer1_v6 2023-12-02] * (100) [AS65000i] > via 2a0d:3dc0:501::a1 on if4 > > But I also see some routes that have a “!” Instead of the “*”: > > 2a0d:3dc0:500::216:48/128 unicast [peer1_v6 2023-12-06] ! (100) [AS65000i] > via 2a0d:3dc0:501::a1 on if4 > > I couldn’t find exactly what “!” means in the docs, and some quick searching > in the git repo wasn’t successful either, but I probably missed something. > I’d expect it to mean unreachable, invalid, or something similar. Hello It means that kernel sync failed for that route. Don't you have some error messages in logs? -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santi...@crfreenet.org) "To err is human -- to blame it on a computer is even more so."
Re: dump size in bgp_log_error()
On Fri, Dec 01, 2023 at 11:17:50AM +0100, Marco d'Itri wrote: > bgp_log_error() in proto/bgp/packets.c attempts to dump the message > received from the neighbor, in this case containing the BGP attribute > considered invalid: > > bird[681]: PEERNAME: Received: Malformed AS_PATH: > 40021a02061b1b8b0e8b > > but the hex dump is limited to 16 characters and this makes impossible > to know exactly what the neighbor is complaining about: > > if (len > 16) > len = 16; > > It makes sense to limit the size of log messages, but please make the > limit much higher because I am sure that we can all spare the space. Hi You are right, 16 is too low. Will fix that. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santi...@crfreenet.org) "To err is human -- to blame it on a computer is even more so."