> 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

