[Babel-users] killing myself with a configuration error
I was fiddling with filtering out cero's /27s with the method described in the previous thread, using the blackhole route to the covering /24 and redistribute ip 0.0.0.0/0 le 24 allow in the conf file and a command line of babeld -D -z3 -c /etc/babeld.conf ge00 se00 gw00 gw01 gw11 sw00 sw10 sw01 That does indeed work. Elsewhere on the network instead of seeing the former /27s and /32s exported I see a single /24 and the /32s root@roof-to-office:~# ip route | grep 172.21.2 172.21.2.0/24 via 172.20.142.9 dev eth0 proto 42 onlink 172.21.2.1 via 172.20.142.9 dev eth0 proto 42 onlink 172.21.2.5 via 172.20.142.9 dev eth0 proto 42 onlink 172.21.2.12 via 172.20.142.9 dev eth0 proto 42 onlink 172.21.2.65 via 172.20.142.9 dev eth0 proto 42 onlink 172.21.2.77 via 172.20.142.9 dev eth0 proto 42 onlink 172.21.2.129 via 172.20.142.9 dev eth0 proto 42 onlink 172.21.2.161 via 172.20.142.9 dev eth0 proto 42 onlink 172.21.2.224 via 172.20.142.9 dev eth0 proto 42 onlink cutting the number of routes exported in half. I was kind of hoping to be rid of most of P2P announcements also... Interestingly, on the next hop out, I see root@archer-test:~# ip route | egrep '172.21.2|172.21.50' 172.21.2.0/24 via 172.21.18.13 dev se00 proto babel onlink 172.21.2.1 via 172.21.18.13 dev se00 proto babel onlink 172.21.2.5 via 172.21.18.13 dev se00 proto babel onlink 172.21.2.12 via 172.21.18.13 dev se00 proto babel onlink 172.21.2.65 via 172.21.3.11 dev ge00 proto babel onlink 172.21.2.77 via 172.21.18.13 dev se00 proto babel onlink 172.21.2.129 via 172.21.18.13 dev se00 proto babel onlink 172.21.2.161 via 172.21.18.13 dev se00 proto babel onlink 172.21.2.224 via 172.21.3.11 dev ge00 proto babel onlink (this is a bridged interface on the same box) 172.21.50.0/24 via 172.21.3.11 dev ge00 proto babel onlink 172.21.50.2 via 172.21.3.11 dev ge00 proto babel onlink 172.21.50.4 via 172.21.3.11 dev ge00 proto babel onlink The ge00 and se00 devices are effectively equivalent (they are both going through the same edgerouter on different ports), I assume that diversity is playing a role here, in part because .65,.129,.161 do not have a channel associated with them due to the bug noted in the previous email, but are probably listed as interfering. Call it 'mistaken cost multipath' - which is not a bad thing! And then, I goofed, combining that with the original openwrt babel conf file which has lines like: config filter option 'ignore' 'false' option 'type' 'redistribute' option 'if' 'se00' option 'action' 'metric 96' in it, with that setup. The results were interesting. Babel ran amuck, eating nearly all the cpu, flooding the network, and having the following ill effects: netlink_read: recvmsg(): No buffer space available kernel_route(ADD): File exists kernel_route(ADD): File exists netlink_read: recvmsg(): No buffer space available netlink_read: recvmsg(): No buffer space available Warning: bucket full, dropping unicast packetto fe80::221:63ff:fe2f:f2f4 if gw01. Warning: bucket full, dropping unicast packetto fe80::221:63ff:fe2f:f2f4 if gw01. Warning: bucket full, dropping unicast packetto fe80::221:63ff:fe2f:f2f4 if gw01. Warning: bucket full, dropping unicast packetto fe80::221:63ff:fe2f:f2f4 if gw01. Warning: bucket full, dropping unicast packetto fe80::221:63ff:fe2f:f2f4 if gw01. Warning: bucket full, dropping unicast packetto fe80::260a:64ff:fecc:247d if sw00. Warning: bucket full, dropping unicast packetto fe80::221:63ff:fe2f:f2f4 if gw01. Warning: bucket full, dropping packet to sw00. Warning: bucket full, dropping packet to gw01. Warning: bucket full, dropping packet to sw00. Warning: bucket full, dropping unicast packetto fe80::260a:64ff:fecc:247d if sw00. Warning: bucket full, dropping packet to gw01. Warning: bucket full, dropping packet to sw00. Warning: bucket full, dropping unicast packetto fe80::221:63ff:fe2f:f2f4 if gw01. Warning: bucket full, dropping packet to sw00. Warning: bucket full, dropping unicast packetto fe80::260a:64ff:fecc:247d if sw00. Warning: bucket full, dropping packet to gw01. Warning: bucket full, dropping packet to gw01. Warning: bucket full, dropping unicast packetto fe80::221:63ff:fe2f:f2f4 if gw01. Warning: bucket full, dropping packet to sw00. Warning: bucket full, dropping unicast packetto fe80::260a:64ff:fecc:247d if sw00. Warning: bucket full, dropping packet to gw01. Warning: bucket full, dropping unicast packetto fe80::221:63ff:fe2f:f2f4 if gw01. Warning: bucket full, dropping unicast packetto fe80::260a:64ff:fecc:247d if sw00. Warning: bucket full, dropping unicast packetto fe80::221:63ff:fe2f:f2f4 if gw01. Warning: bucket full, dropping unicast packetto fe80::260a:64ff:fecc:247d if sw00. Warning: bucket full, dropping unicast packetto fe80::221:63ff:fe2f:f2f4 if gw01. Warning: bucket full, dropping unicast packetto fe80::260a:64ff:fecc:247d if sw00. Warning: bucket full, dropping unicast packetto fe80::221:63ff:fe2f:f2f4 if gw01.
Re: [Babel-users] killing myself with a configuration error
I was kind of hoping to be rid of most of P2P announcements also... What do you mean by P2P? Everything's P2P in Babel. (We don't do centralised protocols here at Babel Towers.) If you mean the host routes (/32 and /128), you can say redistribute local deny to get rid of them. (You could also read babeld's manual page, I guess.) The results were interesting. Babel ran amuck, eating nearly all the cpu, flooding the network, and having the following ill effects: Okay, that's interesting indeed. You apparently managed to get babeld into a feedback loop, and the token bucket prevented it from flooding your network. (We care about the integrity of your network here at Babel Towers.) Could you please send the full configuration? I.e. babeld's command line in full, together with any files mentioned on the command line, including the files generated by UCI, if any. -- Juliusz ___ Babel-users mailing list Babel-users@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users
Re: [Babel-users] killing myself with a configuration error
On Wed, Jul 02, 2014 at 06:58:59PM +0200, Juliusz Chroboczek wrote: including the files generated by UCI, if any. UCI does not generate any file, it builds a huge command-line (and yes, this is a bug: https://github.com/openwrt-routing/packages/issues/33). -- Gabriel ___ Babel-users mailing list Babel-users@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users
Re: [Babel-users] killing myself with a configuration error
On Wed, Jul 2, 2014 at 9:58 AM, Juliusz Chroboczek j...@pps.univ-paris-diderot.fr wrote: I was kind of hoping to be rid of most of P2P announcements also... What do you mean by P2P? Everything's P2P in Babel. (We don't do centralised protocols here at Babel Towers.) If you mean the host routes (/32 and /128), you can say redistribute local deny to get rid of them. (You could also read babeld's manual page, I guess.) Heh. Despite any outward appearances to the contrary, I have done very little to optimize babel in the past - babel's defaults are sane and just work - as they should. My fiddling now is that the network has got larger, and is about to start carrying potentially least 5x more routes than it did before, so I thought I'd try to optimize, clean up, and clarify what I was doing before deploying. If I can make cero's default configuration simpler, all the better. I like very much to hear there's a formal bug reporting system starting to come into play. A +10 to attempts to improve the conf file, and move it into procd! Another +10 if it could parse uci or ubus directly. The results were interesting. Babel ran amuck, eating nearly all the cpu, flooding the network, and having the following ill effects: Okay, that's interesting indeed. You apparently managed to get babeld into a feedback loop, and the token bucket prevented it from flooding your network. (We care about the integrity of your network here at Babel Towers.) Could you please send the full configuration? I.e. babeld's command line in full, together with any files mentioned on the command line, including the files generated by UCI, if any. The simplest thing from my perspective would be to request you fiddle with the near-final version of cerowrt on your wndr3800s and offer suggestions and improvements. http://snapon.lab.bufferbloat.net/~cero2/cerowrt/wndr/3.10.44-6/ I can send along the related openwrt and babeld conf files, but there are a ton of interfaces involved that would be hard to deal with. and it seems possible we ended up with a near bogus command line. -- Juliusz -- Dave Täht NSFW: https://w2.eff.org/Censorship/Internet_censorship_bills/russell_0296_indecent.article ___ Babel-users mailing list Babel-users@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users
Re: [Babel-users] killing myself with a configuration error
Could you please send the full configuration? I.e. babeld's command line in full, together with any files mentioned on the command line, including the files generated by UCI, if any. The simplest thing from my perspective... Please send me the command-line that caused Babel to run amock. -- Juliusz ___ Babel-users mailing list Babel-users@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users
Re: [Babel-users] killing myself with a configuration error
The simplest thing from my perspective... Please send me the command-line that caused Babel to run amock. Sorry if that sounded dry, Dave. I do appreciate your help with that. -- Juliusz ___ Babel-users mailing list Babel-users@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users
Re: [Babel-users] killing myself with a configuration error
On Wed, Jul 2, 2014 at 11:05 AM, Juliusz Chroboczek j...@pps.univ-paris-diderot.fr wrote: Could you please send the full configuration? I.e. babeld's command line in full, together with any files mentioned on the command line, including the files generated by UCI, if any. The simplest thing from my perspective... Please send me the command-line that caused Babel to run amock. -- Juliusz attached is the command line generated and the babeld.conf -- Dave Täht NSFW: https://w2.eff.org/Censorship/Internet_censorship_bills/russell_0296_indecent.article /usr/sbin/babeld -D -I /var/run/babeld.pid -z 0,128 -c /etc/babeld.conf -L /tmp/babeld.log -C 'interface ge00' -C 'interface se00' -C 'interface sw00' -C 'interface sw10' -C 'interface gw10' -C 'interface gw00' -C 'interface gw01 rxcost 384' -C 'interface gw11' -C ' redistribute if se00 metric 96' -C ' redistribute if sw00 metric 256' -C ' redistribute if sw10 metric 192' -C ' redistribute if gw00 metric 256' -C ' redistribute if gw10 metric 192' -C ' redistribute if gw01 metric 256' -C ' redistribute if gw11 metric 192' ge00 se00 sw00 sw10 gw10 gw00 gw01 gw11 babeld.conf Description: Binary data ___ Babel-users mailing list Babel-users@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users
Re: [Babel-users] killing myself with a configuration error
On Wed, Jul 2, 2014 at 11:09 AM, Juliusz Chroboczek j...@pps.univ-paris-diderot.fr wrote: The simplest thing from my perspective... Please send me the command-line that caused Babel to run amock. Sorry if that sounded dry, Dave. I do appreciate your help with that. np! I have implemented time based routing of my emotional states. Before 10PM ip 0.0.0.0/0 if juliusz metric 32 After 10PM ip 0.0.0.0/0 if juliusz blackhole During teaching season: ip 0.0.0.0/0 if juliusz unreachable -- Juliusz -- Dave Täht NSFW: https://w2.eff.org/Censorship/Internet_censorship_bills/russell_0296_indecent.article ___ Babel-users mailing list Babel-users@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users
Re: [Babel-users] killing myself with a configuration error
Nothing wrong with your config, Dave. I'd need a -d3 log of when Babel gets into the feedback loop. -- Juliusz ___ Babel-users mailing list Babel-users@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users
Re: [Babel-users] killing myself with a configuration error
My assumption is that I will blow up a goodly portion of my network, but that the damage will be constrained to immediate hops only. ? And: I should also get a tcpdump of what happens. I am running a test series at the moment; I can do it after lunch (T+1.5 hours). I'll need some popcorn for the show, also. On Wed, Jul 2, 2014 at 11:29 AM, Juliusz Chroboczek j...@pps.univ-paris-diderot.fr wrote: Nothing wrong with your config, Dave. I'd need a -d3 log of when Babel gets into the feedback loop. -- Juliusz -- Dave Täht NSFW: https://w2.eff.org/Censorship/Internet_censorship_bills/russell_0296_indecent.article ___ Babel-users mailing list Babel-users@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users
Re: [Babel-users] killing myself with a configuration error
On Wed, Jul 02, 2014 at 11:14:51AM -0700, Dave Taht wrote: attached is the command line generated and the babeld.conf /usr/sbin/babeld -D -I /var/run/babeld.pid -z 0,128 -c /etc/babeld.conf -L /tmp/babeld.log -C 'interface ge00' -C 'interface se00' -C 'interface sw00' -C 'interface sw10' -C 'interface gw10' -C 'interface gw00' -C 'interface gw01 rxcost 384' -C 'interface gw11' -C ' redistribute if se00 metric 96' -C ' redistribute if sw00 metric 256' -C ' redistribute if sw10 metric 192' -C ' redistribute if gw00 metric 256' -C ' redistribute if gw10 metric 192' -C ' redistribute if gw01 metric 256' -C ' redistribute if gw11 metric 192' ge00 se00 sw00 sw10 gw10 gw00 gw01 gw11 Are you sure redistribute if X metrix Y is what you want to use? And not out if X metric Y? With the former, for each installed route pointing to interface X, you will redistribute it. If you have a high number of neighbours, interfaces and routes, this will probably generate a lot of routes (in the worst case, each router will redistribute all routes) I might be wrong, this would mean that babeld blows up because of the large number of routes. I'm not sure how many routes it would take, but probably a lot. Could you provide the output of the local interface? (nc ::1 33123 on the router when it is about to blow up) Or could it be a bad interaction with the source-specific babel you have on your network? Baptiste pgpCvr82j9aMB.pgp Description: PGP signature ___ Babel-users mailing list Babel-users@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users