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 <[email protected]> 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/[email protected] > > (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 _______________________________________________ Babel-users mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users

