[Babel-users] A Babel experiment at funkfeuer.at
Juliusz Chroboczek
Juliusz.Chroboczek at pps.jussieu.fr
Wed Jan 7 16:38:03 UTC 2009
>> You need to say
>>
>> ip addr add 2a02:60:2::1/64 dev vlan0 proto static
>> ^^^^^^^^^^^^
> Error: either "local" is duplicate, or "proto" is a garbage.
Yes, I was speaking nonsense. The route installed by ``addr add'' always
has proto kernel.
To come back to your issue,
> Now babel advertises two routes:
> 2a02:60:2::1/128
> 2a02:60:2::/128
It does look as a bug indeed. I've tested it on my side, and it works
fine, so the bug must depend on the kernel version -- the exact formatting
of netlink data depends on the version. I've had a quick look at the code,
and I don't see anything obviously wrong.
Could you please try running Babel with ``-d 3'' and reproduce the bug?
I'll also want to see the output of ``ip -6 route show'' on the affected
machine.
> Though I still find it a bit confusing, that babel announces the
> prefix part of the address, but behaves as if it was /128.
It's confusing, but only because the ip command is confusing. Let me
explain.
Every interface on the system has zero, one or more addresses. Call the
set of such addresses the machine's local addresses. Additionally, the
machine has a set of routing table entries, each of which is decorated with
a tag known as the route's protocol.
Historical routing implementations tend to ignore local addresses, and
redistribute routing table entries. For example, BSD's ripd will
redistribute all routes except those that have a protocol number of
``boot''. Quagga/zebra does no redistribution by default, but it can be
configured to redistribute any route except those that have a protocol
number of ``boot''.
Unik-olsrd takes a different approach: it doesn't redistribute route, but
instead it redistributes local addresses. This makes sense in a mesh
network, where you're doing flat (and not subnet-based) routing.
The approach taken by Babel is to follow unik-olsrd by default
(redistribute local addresses), but to allow configuration of ripd's
behaviour with
redistribute local deny
redistribute ip ::/0 allow
redistribute ip 0.0.0.0 allow
Now everything should become clear if you consider that the command
ip addr add whatever/128
merely adds one local address. The command
ip addr add whatever/64
is merely a shortcut for the common sequence
ip addr add whatever/128
ip route add whatever/64 proto kernel
Juliusz
More information about the Babel-users
mailing list