Informations :
Dates
- Publish : : Thursday 17 september 2009
- Modification : Thursday 01 september 2011
- 3082 views
Download the file(s) :
Share :
C'est utilisé dans ce que l'on appelle les réseaux maillés (mesh network en anglais), en grappes ou ad-hoc multi hops. On peut résumer en disant que c'est un programme qui permet aux machines d'un réseau ad-hoc de communiquer entre elles pour qu'elles s'echangent des informations sur leur disposition. Imaginons que nous ayons trois machines (A, B et C) qui forment un réseau. A et B savent communiquer, B et C aussi mais A et C sont trop loin d'une de l'autre et donc ne savent pas dialoguer ! Grâce à OLSR, B va dire à C qu'elle peut communiquer avec A, et dire à A qu'elle peut communiquer avec C. Donc quand A et C veulent communiquer ensemble, B fera le relais !
Script avec 1 ligne
001A-----B----C
Projet KillBills national - No Aliens, No Bills, Just Free Wifi !
Projet lancé par la fédération Française Wireless d'une solution de réseau Wifi Mesh + Partage connexion internet avec portail d'accueil. Ce réseau libre est ouvert à tous, conciliant l'internet gratuit sans fils et les réseaux citoyens.
Le principe de réseau maillé (Mesh Network) est un réseau sans fil composé d'ordinateurs, de PC portables, de PDA, ou de systemes embarqués (point d'accés, routeur, ...) intégrant le protocole proactif de routage OLSR.
Installer et configuer OLSR sur une passerelle Linux (OLSR-Gateway)
Cette page récapitule la configuration OLSR que j'ai employé sur une passerelle (gateway) sous Linux debian Sarge. Elle permet d'émettre des ondes Wi-Fi pour que des équipements Wifi puissent s'y connecter et pouvoir naviguer sur Internet.
- Une carte PCI
eth0qui est branché sur la Freebox ayant comme IP une IP Internet. - Une carte
wlan0qui émet des ondes WIFI actuellement en mode Master à comme IP10.92.120.17et comme masque255.0.0.0
Installation :
Editer le fichier source APT et ajouter les dépots OLSR :
Script avec 1 ligne
001vi /etc/apt/sources.list
Script avec 3 lignes
001# OLSR002deb http://www.skyhub.de/debian/ unstable main003deb-src http://www.skyhub.de/debian/ unstable main
Télécharger les paquets olsrd et olsrd-plugin.
Script avec 2 lignes
001apt-get update002apt-get install olsrd olsrd-plugin
Configuration :
Script avec 1 ligne
001vi /etc/apt/sources.list
Le Firewall
Script avec 6 lignes
001iptables -A INPUT -p tcp --dport 698 -j ACCEPT002iptables -A INPUT -p udp --dport 698 -j ACCEPT003iptables -A FORWARD -p tcp --dport 698 -j ACCEPT004iptables -A FORWARD -p udp --dport 698 -j ACCEPT005iptables -A OUTPUT -p tcp --dport 698 -j ACCEPT006iptables -A OUTPUT -p udp --dport 698 -j ACCEPT
Le fichier /etc/olsrd.conf
Script avec 68 lignes
001DebugLevel 0002IpVersion 4003ClearScreen no004 005Hna4006{007# Internet gateway:0080.0.0.0 0.0.0.0009# more entries can be added:01010.0.0.0 255.0.0.0011}012 013AllowNoInt yes014 015IpcConnect016{017MaxConnections 1018Host 127.0.0.1019}020 021UseHysteresis no022 023HystScaling 0.50024HystThrHigh 0.80025HystThrLow 0.30026 027LinkQualityLevel 2028LinkQualityWinSize 10029 030Pollrate 0.05031TcRedundancy 2032MprCoverage 1033034# ce plugin active une interface Web acccessible sur le port ci-dessous035# les valeur de l'option "Net" sont les réseaux pouvant accéder à cette interface Web036LoadPlugin "olsrd_httpinfo.so.0.1"037{038PlParam "port" "8080"039# PlParam "Host" "10.92.120.17"040# PlParam "Host" "81.56.54.30"041PlParam "Net" "10.0.0.0 255.0.0.0"042PlParam "Net" "192.168.0.0 255.255.0.0"043PlParam "Net" "0.0.0.0 0.0.0.0"044}045 046# Permet de déclarer le nom d'hôte de cette machine et..047LoadPlugin "olsrd_nameservice.so.0.2"048{049PlParam "name" "gateway"050PlParam "suffix" ".wifi.wwweball.com"051PlParam "hosts-file" "/etc/hosts.4wifi"052PlParam "resolv-file" "/etc/resolv.conf.4wifi"053}054 055Interface "wlan0" "eth0"056{057HelloInterval 2.0058HelloValidityTime 6.0059 060TcInterval 5.0061TcValidityTime 15.0062 063MidInterval 5.0064MidValidityTime 15.0065 066HnaInterval 5.0067HnaValidityTime 15.0068}
Ligne 38, j'ai configuré le port pour accéder à mon interface Web. Il faut donc configurer à notre firewall que le port 8080 est ouvert en TCP sur cette machine.
Script avec 2 lignes
001iptables -A INPUT -p tcp --dport 8080 -j ACCEPT002iptables -A OUTPUT -p tcp --dport 8080 -j ACCEPT
Activer la carte Wi-Fi en mode ad-hoc
Script avec 1 ligne
001iwconfig wlan0 essid wiFi.wWwEBALL.com mode ad-hoc
Lancement d'olsrd
Script avec 1 ligne
001/usr/sbin/olsrd -f /etc/olsrd.conf -d 9
Une fois démarré, aller sur l'inferface Web > ex : http://10.92.120.17:8080 et vérifier la configuration.
Pour l'instant les testes sont :
Plugin Http Info

La page /routes

Les nodes OLSR :

- Depuis un poste windows ;
- sans olsr.exe de lancé sur ce poste
- sur ce poste : je navigue
- sur l'interface Web de la node "AP" : je ne vois pas ce poste sur la page /nodes.
- avec olsr.exe de lancé sur ce poste
- sur ce poste : je navigue
- sur l'interface Web de la node "AP" : je vois bien ce poste sur la page /nodes....
- sans olsr.exe de lancé sur ce poste
- Depuis un poste linux ;
- pas testé !
- la configuration doit être la même mis à part le fait, que nous ayons sûrement qu'une seule carte WiFi.
Si tout marche, activer olsrd au boot de la machine
Script avec 1 ligne
001vi /etc/default/olsrd
Script avec 2 lignes
001# sourced by /etc/init.d/olsrd002start_olsrd=yes
et configurer la carte wifi en mode ad-hoc
Script avec 1 ligne
001vi /etc/network/interfaces
Script avec 8 lignes
001auto wlan0002iface wlan0 inet static003address 10.92.120.17004netmask 255.255.0.0005network 10.92.120.0006broadcast 10.92.120.255007wireless_essid wiFi.wWwEBALL.com008wireless_mode Ad-hoc
Les routes pour internet (ça vous l'savez sûrement déjà !)...
Attention :
En ligne 2 j'ai ouvert tout les ports d'internet à mes utilisateurs Wi-Fi.
Regarder de la doc sur iptables, si vous souhaitez fermer certains accès aux utilisateurs Wi-Fi.
Script avec 4 lignes
001# ouvrir tout le trafic vers internet002iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT003# Cacher les machines derrière le routeur004ipatbles -A POSTROUTING -t nat -s 10.92.120.0/24 -j MASQUERADE
Donc voilà, si j'ai rien sauté ça doit marcher :/
Bien sûr OLSR est un protocole complexe, et dès lors, je n'ai pas encore testé ses subtilités.
PS : je viens de tomber la-dessus : WifiDog And Olsr
Le problème :
Si vous choisissiez d'installer seulement une gateway Wifidog, toutes les adresses MAC des clients seront masqués par le routeur OLSR le plus proche.
La solution :
Installez une gateway Wifidog sur tous les noeuds d'OLSR. Permettez l'écoulement de HTTP entre les noeuds d'OLSR avec le script suivant lancé par le cron sur tout le noeuds.
Script avec 39 lignes
001#!/bin/sh002#003# Script to bypass HTTP interception for traffic forwarded by OLSR004# bms 9-Aug-2005005# Licensed under GPL006#007 008rm -f /tmp/get_neighbors.awk009cat > /tmp/get_neighbors.awk <<__HERE1__010BEGIN {011while("route -n"|getline) {012if (/^[0-9]/) {013if (0 < ) {014if ( == "255.255.255.255 ") {015printf "%sn", ;016}017}018}019}020}021__HERE1__022 023 024iptables -t nat -D WiFiDog_Unknown -j OlsrNeighbors 2>&1 >/dev/null025iptables -t nat -F OlsrNeighbors 2>&1 >/dev/null026iptables -t nat -X OlsrNeighbors 2>&1 >/dev/null027iptables -t nat -N OlsrNeighbors028 029neighbors=$(awk -f /tmp/get_neighbors.awk)030 031for _neighbor in ${neighbors} ; do032 033_mac=$(grep "^${_neighbor}" /proc/net/arp | awk '{print }')034echo ${_mac}035iptables -t nat -A OlsrNeighbors -m mac --mac-source ${_mac} -p tcp --dport 80 -j ACCEPT036037done038 039iptables -t nat -I WiFiDog_Unknown -j OlsrNeighbors
On m'a conseillé de laisser passer toutes les requetes TCP (au lieu de laisser que le port 80)
Remplacer cette ligne :
Script avec 1 ligne
001iptables -t nat -A OlsrNeighbors -m mac --mac-source ${_mac} -p tcp --dport 80 -j ACCEPT
par celle-ci :
Script avec 1 ligne
001iptables -t nat -A OlsrNeighbors -m mac --mac-source ${_mac} -p tcp -j ACCEPT
Bon personnellement, j'ai encore quelques soucis, j'aimerais partager ces astuces et ces problèmes avec d'autres.
Par exemple, j'ai des deconnexions, bcp de deconnexions :/
Installer et configuer OLSR comme relais sur un poste windows (OLSR-Relay)
J'ai testé ce relais sur un windows 2000 avec olsr-0.4.9-lsf-2-setup.exe - Ci-joint la version : olsrd-0.5.6-setup.exe
Je me connecte sur la node (ad-hoc) la plus proche qui m'envoie mon IP 10.92.120.20, la passerelle 10.92.120.17 et un DNS 195.132.0.132. Je lance donc OLSR Switch.exe
Voilà en image la configuration :

La section nodes m'affiche cela :

et la section routes :

L'icône dans la barre des tâches de mon windows est verte.
Le plugin HttpInfo



Pour plus de détails voici ma conf réseau :
Script avec 1 ligne
001ipconfig /all
Script avec 22 lignes
001Configuration IP de Windows 2000002 003Nom de l'hôte . . . . . . . . . . : nomade004Suffixe DNS principal . . . . . . : lab3w.com005Type de noud. . . . . . . . . . . : Mélangé006Routage IP activé . . . . . . . . : Oui007Proxy WINS activé . . . . . . . . : Non008Liste de recherche de suffixe DNS : lab3w.com009wifi.wwweball.com010 011Ethernet carte Connexion au réseau local :012 013Suffixe DNS spéc. à la connexion. : wifi.wwweball.com014Description . . . . . . . . . . . : ORiNOCO 802.11bg ComboCard Gold015Adresse physique. . . . . . . . . : 00-20-A6-52-24-33016DHCP activé . . . . . . . . . . . : Oui017Autoconfiguration activée . . . . : Oui018Adresse IP. . . . . . . . . . . . : 10.92.120.20019Masque de sous-réseau . . . . . . : 255.0.0.0020Passerelle par défaut . . . . . . : 10.92.120.17021Serveur DHCP. . . . . . . . . . . : 10.92.120.17022Serveurs DNS. . . . . . . . . . . : 195.132.0.132
ZW3B.Links : Liens qui peuvent vous intéressez !
- WikipediA : Optimized Link State Routing Protocol
- OLSR : Olsr_Switch network simulation
- GitHud : OLSR - Optimised Link State Routing protocols for Mobile Ad-Hoc networks
- Open-Mesh : The OLSR.ORG story
- SourceForge : Windows Mobile OLSR Daemon
- FreshPorts : olsrd OLSR routing daemon
- How'to > WiFi">WiFi > WiFi > Introduction">Introduction
- How'to > WiFi">WiFi > WiFi > Paris-SansFil - Projet OLSR Parisien">Paris-SansFil - Projet OLSR Parisien
- How'to > WiFi">WiFi > WiFi > WifiDog Gateway sur Wireless-Fr Auth">WifiDog Gateway sur Wireless-Fr Auth
Web.Archive 2008




