[Babel-users] killing myself with a configuration error

2014-07-02 Thread Dave Taht
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

2014-07-02 Thread Juliusz Chroboczek
 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

2014-07-02 Thread Gabriel Kerneis
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

2014-07-02 Thread Dave Taht
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

2014-07-02 Thread Juliusz Chroboczek
 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

2014-07-02 Thread Juliusz Chroboczek
 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

2014-07-02 Thread Dave Taht
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

2014-07-02 Thread Dave Taht
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

2014-07-02 Thread Juliusz Chroboczek
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

2014-07-02 Thread Dave Taht
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

2014-07-02 Thread Baptiste Jonglez
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