Babel

Cette page se veut une sorte de livre de recette pour configurer Babel. Les exemples de configuration correspondent au format du fichier /etc/babeld.conf dans une système Debian.

Configuration simple, aucune route locale distribuée

Cette configuration permet au système de relayer les routes Babel sans annoncer de routes supplémentaires, ni d’adresses locales.

redistribute local deny
redistribute deny

Configuration simple, distribution des adresses locales mesh

Ce noeud mesh possède une adresse IPv4 dans le bloc 172.16.0.0/12 et IPv6 dans le bloc fd64:2c08:9fa7::/48. Si le noeud possède d’autres adresses, elles ne seront pas distribuées. Ceci peut être utilisé dans le cas où il existe un réseau local IPv4 derrière le routeur et qui est désservi par NAT. Il n’y a pas d’équivalent pour IPv6.

redistribute local ip 172.16.0.0/12
redistribute local ip fd64:2c08:9fa7::/48
redistribute local deny
redistribute deny

Partage d’un sous réseau IPv4

Topologie du réseau de l'exemple avec NAT

Cette configuration suppose que routeur d’un réseau local ait accès au mesh via une interface (ici on suppose mesh0 qui pourrait être un VPN) et un autre interface filaire ou sans-fil à laquelle sont connectés les clients (ici, wlan0).

L’interface wlan0 donne accès par DHCP au réseau en assignant des adresses dans le bloc 192.168.137.0/24. L’adresse 192.168.137.1 est elle-même assignée à l’interface. Pour publier le sous-réseau vers le mesh qui est accessible via l’interface mesh0 et non pas seulement l’adresse de l’interface (équivalent à un préfixe de longueur 32), il faut ajouter une règle au filtre qui limite la longueur des préfixes permis à 24. On suppose que la commande ip route show retourne au moins un ligne

192.168.137.0/24 dev wlan0  proto kernel  scope link  src 192.168.137.1

La configuration correspondante serait

redistribute local ip 172.16.0.0/12 allow
redistribute local proto 2 ip 192.168.137.0/24 le 24 allow
redistribute local deny
redistribute deny

On note que proto kernel correspond à proto 2 pour Babeld. Ces codes d’identifications sont disponibles dans le fichier /usr/include/linux/rtnetlink.h sous la section rtm_protocol.

Accès derrière passerelle NAT

Si le routeur mesh et le point d’accès sont des systèmes distincts, on doit utiliser le protocole de routage Babel sur le point d’accès seulement si celui-ci donne accès à Internet. Autrement, on peut simplement définir une route par défaut vers le routeur mesh. Même si Babel ne devrait pas remplacer la route par défaut et la route de sous-réseau du point d’accès, il peut être préférable de les rejeter explicitement. Le routeur mesh peut rouler une configuration simple en ne publiant que son adresse IP et le point d’accès ne fait qu’obtenir les routes du mesh:

redistribute local deny
redistribute deny
in ip 192.168.137.0/24 deny
in ip 0.0.0.0/0 le 0 deny

Partage d’un sous réseau IPv6

Soit une adresse statique sur l’interface wlan0, fd64:2c08:9fa7:123::1/64 et on souhaite distribuer seulement le sous-réseau /64. On suppose que la commande ip -6 route show retourne entre autres

fd64:2c08:9fa7:123::1/64 dev wlan0  proto kernel  metric 256

Configuration Babel:

redistribute local proto 2 ip fd64:2c08:9fa7:123::/64 le 64 allow
redistribute local deny
redistribute deny

Liens externes

Go Top