Test d'OLSR
OLSR est un protocole de routage dynamique. Le but était de faire fonctionner OLSR et donc d'avoir un premier contact avec ce protocole. Il a été mené par moi et Benoît Barbier, avec pour ordinateurs mon Mini-ITX nommé espresso (Debian Sarge + carte Wifi rt2500), mon iBook nommé grappa (Debian Sid + carte Wifi USB zd1201) et le portable de Benoît nommé pc23 (Debian Sarge + carte Intel ipw2200 [Centrino]). Le test s'est déroulé en Roture.
Installation et configuration d'OLSR
Récupérer olsrd 0.4.10 sur http://www.olsr.org. Ensuite, l'extraire, aller dans le répertoire créé et taper make. On retrouve alors un exécutable olsrd, que l'on peut directement lancer, ce qui suffit pour les tests. On peut alors créer un fichier de configuration (voir plus bas) et lancer le service: ./olsrd -f olsrd.conf. Pour conserver les messages tout en les consultant en direct, on peut par exemple utiliser tee: ./olsrd -f olsrd.conf 2>&1 | tee fichier.log
Espresso
Le Mini-ITX était connecté à Internet et faisait tourner un serveur OpenVPN donnant accès à Internet et bien sûr olsrd avec le fichier de configuration suivant, où on demande un max de logs et où on fait tourner le service sur eth2:
DebugLevel 9 Interface "eth2" { }
L'adresse IP d'espresso est 192.168.129.1/24.
Pc23
La configuration de pc23 est similaire, mais il ne fait tourner qu'olsr. Le fichier de configuration est semblable à celui d'espresso. Son adresse IP est 192.168.129.142/24.
Grappa
Grappa fait tourner olsr, mais sur wlan0 au lieu d'eth0 comme sur les autres. Il fait aussi tourner un client OpenVPN créant un tunnel avec Espresso. Ce tunnel permet d'avoir un accès à Internet. Son adresse IP est 192.168.129.141/24. Le tunnel est une connexion point à point dont les extrémités sont 192.168.1.1 (espresso) et 192.168.1.2 (grappa). La table de routage de grappa ressemble donc à ceci:
julien@grappa:~$ /sbin/route -n Table de routage IP du noyau Destination Passerelle Genmask Indic Metric Ref Use Iface 192.168.1.1 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 192.168.129.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 tun0
Le test
Le test consiste à positionner les ordinateurs différemment l'un par rapport à l'autre (à portée/hors portée) et à réaliser des pings. Un autre test est le test de l'accès à Internet via le VPN depuis grappa.
Le cas simple
Il s'agit de faire des pings des ordinateurs en 1 hop (lien direct). Rien à dire, sinon que ça marche. En examinant la table de routage, on voit des routes directes pour les ordinateurs à portée.
Deux hops
On place grappa hors de vue d'espresso (pas de ping), puis on place pc23 entre les deux, en lien direct avec chacun d'eux (ping direct). De là, grappa peut pinger espresso, et peut surfer sur Internet gràce au VPN. Sur espresso, on peut voir que pc23 est mentionné comme passerelle pour accéder à grappa.
Exemple de session
Voici quelques extraits du journal d'olsrd sur grappa lors de cette session de tests.
Grappa voit espresso mais pas pc23
**RECALCULATING MPR** Two hop neighbors: 0 ************** TABLES **************** Routing table: ROUTING TABLE DESTINATION NEXT HOP HOPCNT INTERFACE 192.168.129.1 192.168.129.1 1 wlan0 Old table: ROUTING TABLE DESTINATION NEXT HOP HOPCNT INTERFACE ************************************** Updating kernel routes... (ioctl)Adding route with metric 1 to 192.168.129.1/255.255.255.255 via 192.168.129.1/wlan0. Updating kernel HNA routes... HNA table: ROUTING TABLE DESTINATION NEXT HOP HOPCNT INTERFACE mid set: 17:00:58.542009 DUP TABLE: #### Grappa voit pc23 directement et espresso par l'intermédiaire de pc23 **RECALCULATING MPR** Two hop neighbors: 1 Setting 192.168.129.142 as MPR ************** TABLES **************** Routing table: ROUTING TABLE DESTINATION NEXT HOP HOPCNT INTERFACE 192.168.129.1 192.168.129.142 2 wlan0 192.168.129.142 192.168.129.142 1 wlan0 Old table: ROUTING TABLE DESTINATION NEXT HOP HOPCNT INTERFACE 192.168.129.1 192.168.129.1 1 wlan0 192.168.129.142 192.168.129.142 1 wlan0 ************************************** Updating kernel routes... (ioctl)Deleting route with metric 1 to 192.168.129.1/255.255.255.255 via 192.168.129.1/wlan0. (ioctl)Adding route with metric 2 to 192.168.129.1/255.255.255.255 via 192.168.129.142/wlan0. Updating kernel HNA routes... HNA table: ROUTING TABLE DESTINATION NEXT HOP HOPCNT INTERFACE mid set: 17:04:48.220986 DUP TABLE: --- 17:04:48.22 ------------------------------------------------- HNA SET IP net netmask GW IP --- 17:04:48.22 ---------------------------------------------------- LINKS IP address hyst LQ lost total NLQ ETX 192.168.129.142 1.000 0.000 0 0 0.000 0.00 192.168.129.1 0.250 0.000 0 0 0.000 0.00 --- 17:04:48.22 ------------------------------------------------ NEIGHBORS IP address LQ NLQ SYM MPR MPRS will 192.168.129.1 0.000 0.000 NO NO NO 3 192.168.129.142 0.000 0.000 YES YES NO 3 --- 17:04:48.22 ------------------------------------------------- TOPOLOGY Source IP addr Dest IP addr LQ ILQ ETX
Petite conclusion
Bien que ce soit lent (mais il est possible qu'espresso n'ait pas émis à pleine puissance lors du test), le routage dynamique via OLSR a bien fonctionné, et il ne s'applique que sur le réseau pour lequel olsrd est configuré, ce qui permet de conserver d'autres routes pour accéder à d'autres rées réseaux (VPN, Internet).