[Babel-users] Question about Babel

Mitar mmitar at gmail.com
Thu Apr 12 21:51:09 UTC 2012


Hi!

Juliusz thank you for your explanations. Now I think I understand a bit more.

OK, so such daemon which would allow roaming in combination with Babel
in the sense I am hoping for does not yet exist. Do you maybe know if
there is already some project hoping to implement that?


Mitar

On Thu, Apr 12, 2012 at 8:47 PM, Juliusz Chroboczek <jch at pps.jussieu.fr> wrote:
>> So if I have APs connected together with
>> Babel, can Babel help in some way when one AP (A) client migrates to
>> another AP (B)? I would like that client keeps the same IP and all
>> connections stay open. What it would be the way to setup this in a
>> mesh using Babel to mesh APs together.
>
> [...]
>
>> Does Babel even support moving /32 announcements from node to node
>> dynamically?
>
> Of course, Mitar.
>
> Babel uses a very general mechanism known as redistribution.
> Redistribution is a very old idea, dating at least as far as the first
> Cisco multiprotocol routers; you'll find it described in detail in any
> networking book written in the last 20 years.  Redistribution can be
> used to implement OLSR's HNA mechanism, BATMAN's "client roaming", and
> a lot of other routing policies.
>
> The idea behind redistribution is that you don't statically setup routes
> that are being announced into the routing domain; instead, you specify
> which kernel routes (FIB routes) are going to be reannounced into the
> routing domain.  A route that is so being reannounced is said to be
> redistributed.
>
> As you perhaps know, there are two implementations of Babel: the
> standalone babeld daemon, and the version integrated into Quagga.  The
> twa do redistribution differently, and the following only applies to the
> standalone daemon.
>
> Redistribution is controlled by "redistribute" statements in
> babeld.conf.  For example, an IPv4 Internet gateway has a default route
> that points to the Internet; you can ask babeld to redistribute it into
> the Babel routing domain by saying something like
>
>  redistribute ip 0.0.0.0/0 le 0
>
> which asks to redistribute any route that is within 0.0.0.0/0 (i.e. an
> IPv4 route) that has a prefix length less or equal to 0 (i.e. a default
> route).
>
> Similarly, if your node is maintaining a bunch of /32 routes, you can
> ask babeld to announce them into the Babel routing domain by saying
>
>  redistribute ip 0.0.0.0/0 ge 32
>
> There's a lot more you can say in babeld's filtering language, I'll let
> you check the babeld manual page[1] for more information.
>
> Unlike the techniques used in BATMAN, redistribution is modular: babeld
> is a routing daemon, it's not babeld's job to be monitoring whether
> there is a route to the Internet or whether a given "client" is
> associated to the current router.  Hence, you need a different daemon
> that monitors the external routes and installs or uninstalls routes in
> the kernel.  Here are a few examples:
>
>  - a proper Internet gateway speaks BGP to your ISP.  Hence, the BGP
>   daemon is responsible for installing/uninstalling the default route
>   that's being redistributed by babeld.
>
>  - a lot of people cannot speak BGP to their ISP.  In such
>   circumstances, you may either simply redistribute the route installed
>   by DHCP, or use babel-pinger[2] to monitor an Internet connection and
>   install/uninstall a default route that babeld can redistribute.
>
>  - you could write a daemon that monitors the set of associated
>   "clients" and installs/uninstalls /32 routes to them.  This daemon
>   could be monitoring DHCP leases (if the DHCP lease time is short
>   enough), or it could be monitoring ARP/ND messages, or it could be
>   monitoring all IP packets.  It's up to you.
>
> You'll find a few real-life examples of redistribution on
>
>  http://mid.gmane.org/7ive3ry9r7.fsf@lanthane.pps.jussieu.fr
>
> (Note that this mail is very slightly obsolete, since recent babeld
> accepts to redistribute proto 3 routes, but only if the protocol number
> is specified explicitly in the redistribute statement.)
>
> Mitar, please realise that Babel might not be what you are looking for.
> BATMAN is a commercial project, and the BATMAN people try to solve their
> customers' problems in a timely manner.  Babel is a research project,
> and as such it tries to do things right, which often takes more time
> than implementing a quick hack to solve a customer's issue.  Hence,
> unless you're interested in spending the time needed to design the right
> thing to do, you might be more happy with BATMAN, which I'm sure is
> a fine routing protocol.
>
> -- Juliusz
>
> [1] http://www.pps.jussieu.fr/~jch/software/babel/babeld.html#sect6
>
> [2] http://www.pps.jussieu.fr/~jch/software/babel/babel-pinger.html
>    http://www.pps.jussieu.fr/~jch/software/files/babel-pinger-0.1.tar.gz
>    http://www.pps.jussieu.fr/~jch/software/files/babel-pinger-0.1.tar.gz.asc



More information about the Babel-users mailing list