Re: Segmentation fault on 2.0.5
On 13.08.2019 17:45, Maria Jan Matejka wrote: define myvar = false; function something () { if myvar then { return false; } return true; } protocol device DEVICE { } Could this be because of the new filter code or something else? Hello Thanks for bugreport. Yes, it is the new filter code, most likely it is a bug in handling of statically eliminable (constant-false) if statements without else branch. Similar issue also happens for empty blocks: if true then { } What about the attached patch? Maria Hi, I can confirm that the patch works for my setup. Thank you, Radu
Segmentation fault on 2.0.5
Hello, I recently upgraded BIRD from 2.0.4 to 2.0.5 and with the same (pretty large) .conf I got Segmentation fault. Until today I didn't have time to debug it, but here it goes: With this simple .conf I get seg fault on 2.0.5 while 2.0.4 works as expected. (if I define myvar = true it doesn't crash on 2.0.5) log syslog all; define myvar = false; function something () { if myvar then { return false; } return true; } protocol device DEVICE { } Could this be because of the new filter code or something else? Radu
Re: bird 2.0.2 does not propagate krt_metric set in static routes when exporting to kernel (and couple other small issues in static protocol)
Hi, You need to set metric 0; in your kernel protocol in order to have custom krt_metric per route. "Metric 0 has a special meaning of undefined metric, in which either OS default is used, or per-route metric can be set using krt_metric attribute. Default: 32." Radu On 15.04.2018 00:57, Alexander Demenshin wrote: > Hi, > > Looks like setting of krt_metric in bird 2.0.2 does not work like in > bird 1.6. > > Construction like: > > protocol static static4 { > route 0.0.0.0/0 via 1.1.1.1 { > krt_metric = 1; > }; > } > > is accepted, I see the route exported to the kernel, but with default > bird metric 32. > > Yes, I know that bird can find the best route and install only that one, > but I prefer > to keep several static routes installed with different metrics, when > bird is used > only to keep them alive. > > Another issue, when setting via scope using "%" notation, like: > > route 1.2.3.0/24 via 1.1.1.1 % ifname onlink on; > > if "ifname" contains characters like "-" or ".", it will be rejected > (syntax error), > while such names are perfectly legal (at least in linux). May be it > makes sense > to allow quoted (TEXT instead of SYM) interface name for such cases (I > tried to > extend grammar and it works perfectly - fix is trivial so there is no > patch attached). > > Small annoyance, though not an issue - "route" only accepts CIDR > notation, though > it would be nice to omit "/32" for single IPs, as it looks more "natural". > > Finally - looks like bird 2 docs is a bit incorrect - static route options > must be followed by ';' as a terminator (according to grammar), while > documentation > lists them without, which produces "syntax error" without any details. > > BTW, "onlink" is not documented at all, though I was really happy to > find it :) > > PS: As this is my first experience with bird v2 - many thanks - it is > much better :) >
Re: RPKI / roa_check() question - BIRD 2.0.2
Thank you, it works with last_nonaggregated, I don't know how I didn't notice that in the doc. Radu On 11.04.2018 20:06, Matthias Waehlisch wrote: > Hi Radu, > > the path includes an AS-set ({30884 65004 65005}). > > "Both first and last return zero if there is no appropriate ASN, for > example if the path contains an AS set element as the first (or the > last) part. If the path ends with an AS set, last_nonaggregated may be > used to get last ASN before any AS set. " > > AS-sets are deprecated: https://tools.ietf.org/html/rfc6472 > > Strictly speaking, you you don't know which AS in AS-set is the actual > origin. > > > > Cheers > matthias > > > On Wed, 11 Apr 2018, Radu Anghel wrote: > >> Hello, >> >> I have found this while doing RPKI validation: >> >> net = 94.127.104.0/21 >> bgp_path = 48112 6830 174 13110 {30884 65004 65005} >> BGP.aggregator: 10.253.27.1 AS13110 (don't know how to read this from a var) >> >> roa_check(rpki4, net, bgp_path.last) returns ROA_INVALID because BIRD >> thinks bgp_path.last = 0 >> >> There is a valid ROA for 94.127.104.0/21 and AS13110, so I guess the >> validation should be done on the aggregator AS. >> >> Could you tell me what is the corect way to handle this? >> >> TIA, >> Radu >> > >
RPKI / roa_check() question - BIRD 2.0.2
Hello, I have found this while doing RPKI validation: net = 94.127.104.0/21 bgp_path = 48112 6830 174 13110 {30884 65004 65005} BGP.aggregator: 10.253.27.1 AS13110 (don't know how to read this from a var) roa_check(rpki4, net, bgp_path.last) returns ROA_INVALID because BIRD thinks bgp_path.last = 0 There is a valid ROA for 94.127.104.0/21 and AS13110, so I guess the validation should be done on the aggregator AS. Could you tell me what is the corect way to handle this? TIA, Radu
Re: bird 2.0.0 issues
On 14.12.2017 23:44, Ondrej Zajicek wrote: > On Thu, Dec 14, 2017 at 09:19:32PM +0200, Radu Anghel wrote: > > Hi > > Tested add-path between old and new BIRD, works for me. Does the problem > appear even with fixed channel definitions? It is possible that it is > also related, like add-path announced in capabilities due to the second > channel (with add-path), but incoming update dispatched by the first one > (without). > Sorry I didn't test it yesterday also, add-path works for me too with only one channel definition, so #3 was the same. Thanks, Radu
Re: bird 2.0.0 issues
On 14.12.2017 21:09, Ondrej Zajicek wrote: > Hi > > You have doubled channel definitions, one with implicit arguments > ('ipv4;'), and one with explicit arguments ('ipv4 { ... }'). That is > likely a cause of issue #2. We definitely should add a check for that. > Could you try config file with only one channel of each type per > protocol? > > It may be also issue #1, or perhaps it is problem with newer Linux > kernels (i checked up to 4.13). But regardless of Linux API, we still > should get at least periodic 'Scanning routing table' messages. > > Issue #3 is most likely a bug in BGP, i will check that. > Hi, I can confirm that keeping only one channel definition fixes both #1 and #2. A check warning/rejecting this would be nice :) Thanks, Radu
Re: bird 2.0.0 issues
On 14.12.2017 20:31, Ondrej Zajicek wrote: > Hello > > Thanks for reports Could you send me your config file? If you add 'debug > all' to your Kernel protocol, what you see in logs? > Nothing is logged if I enable debug all to the kernel protocol, total silence. I'm attaching my current config. Thanks, Radu log syslog all; # log "/tmp/bird.log" all; #timeformat protocol "%s"; router id 1.2.3.4; define myASN = 65533; protocol device DEVICE { scan time 3600; } protocol kernel KERNEL4 { debug all; #learn; ipv4; scan time 60; ipv4 { import all; export filter { if proto = "STATIC4" then accept; reject; }; }; } protocol kernel KERNEL6 { debug all; #learn; ipv6; scan time 60; ipv6 { import all; export filter { if proto = "STATIC6" then accept; reject; }; }; } protocol static STATIC4 { ipv4; route 10.0.0.0/24 via "eth0"; } protocol static STATIC6 { ipv6; route 2001:db8::/64 via "eth0"; } protocol bgp RC4 { debug { events }; disabled off; local as myASN; ipv4; neighbor x.x.x.x as 48112; multihop 2; passive off; ipv4 { next hop self; import all; export none; # add paths on; }; } protocol bgp RC6 { debug { events }; disabled off; local as myASN; ipv6; neighbor ::: as 48112; multihop 2; passive off; ipv6 { next hop self; import all; export none; #add paths on; }; }
bird 2.0.0 issues
Hello, I just installed bird 2.0.0 on a test machine to try it out and I have some issues: (CentOS 7 / kernel 4.14.5-1.el7.elrepo.x86_64) 1) the kernel protcol sees no routes (both ipv4 and ipv6) and doesn't export any routes 2) each time I change the config and do a 'birdc conf' it resets all BGP sessions and logs bird: Cannot reconfigure channel XXX.ipv4 bird: Cannot remove channel XXX.ipv4 bird: Restarting protocol XXX 3) can't establish BGP with bird 1.6.3 if I have add paths on; on the session - 2.0.0 says: "BGP Error: Malformed attribute list" and 1.6.3: "Socket: Connection closed". add paths on; works between two bird 2.0.0. Could these be caused by kernel or *lib versions or are these bugs in bird? Thanks, Radu