Informations :
Dates
- Publish : : Thursday 17 september 2009
- Modification : Thursday 01 september 2011
- 2670 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
eth0
qui est branché sur la Freebox ayant comme IP une IP Internet. - Une carte
wlan0
qui émet des ondes WIFI actuellement en mode Master à comme IP10.92.120.17
et 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# OLSR
002deb http://www.skyhub.de/debian/ unstable main
003deb-src http://www.skyhub.de/debian/ unstable main
Télécharger les paquets olsrd et olsrd-plugin.
Script avec 2 lignes
001apt-get update
002apt-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 ACCEPT
002iptables -A INPUT -p udp --dport 698 -j ACCEPT
003iptables -A FORWARD -p tcp --dport 698 -j ACCEPT
004iptables -A FORWARD -p udp --dport 698 -j ACCEPT
005iptables -A OUTPUT -p tcp --dport 698 -j ACCEPT
006iptables -A OUTPUT -p udp --dport 698 -j ACCEPT
Le fichier /etc/olsrd.conf
Script avec 68 lignes
001DebugLevel 0
002IpVersion 4
003ClearScreen no
004 005Hna4
006{
007# Internet gateway:
0080.0.0.0 0.0.0.0
009# more entries can be added:
01010.0.0.0 255.0.0.0
011}
012 013AllowNoInt yes
014 015IpcConnect
016{
017MaxConnections 1
018Host 127.0.0.1
019}
020 021UseHysteresis no
022 023HystScaling 0.50
024HystThrHigh 0.80
025HystThrLow 0.30
026 027LinkQualityLevel 2
028LinkQualityWinSize 10
029 030Pollrate 0.05
031TcRedundancy 2
032MprCoverage 1
033034
# ce plugin active une interface Web acccessible sur le port ci-dessous
035# les valeur de l'option "Net" sont les réseaux pouvant accéder à cette interface Web
036LoadPlugin "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.0
058HelloValidityTime 6.0
059 060TcInterval 5.0
061TcValidityTime 15.0
062 063MidInterval 5.0
064MidValidityTime 15.0
065 066HnaInterval 5.0
067HnaValidityTime 15.0
068}
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 ACCEPT
002iptables -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/olsrd
002start_olsrd=yes
et configurer la carte wifi en mode ad-hoc
Script avec 1 ligne
001vi /etc/network/interfaces
Script avec 8 lignes
001auto wlan0
002iface wlan0 inet static
003address 10.92.120.17
004netmask 255.255.0.0
005network 10.92.120.0
006broadcast 10.92.120.255
007wireless_essid wiFi.wWwEBALL.com
008wireless_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 internet
002iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
003# Cacher les machines derrière le routeur
004ipatbles -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/sh
002#
003# Script to bypass HTTP interception for traffic forwarded by OLSR
004# bms 9-Aug-2005
005# Licensed under GPL
006#
007 008rm -f /tmp/get_neighbors.awk
009cat > /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/null
025iptables -t nat -F OlsrNeighbors 2>&1 >/dev/null
026iptables -t nat -X OlsrNeighbors 2>&1 >/dev/null
027iptables -t nat -N OlsrNeighbors
028 029neighbors=$(awk -f /tmp/get_neighbors.awk)
030 031for _neighbor in ${neighbors} ; do
032 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 ACCEPT
036037
done
038 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 2000
002 003Nom de l'hôte . . . . . . . . . . : nomade
004Suffixe DNS principal . . . . . . : lab3w.com
005Type de noud. . . . . . . . . . . : Mélangé
006Routage IP activé . . . . . . . . : Oui
007Proxy WINS activé . . . . . . . . : Non
008Liste de recherche de suffixe DNS : lab3w.com
009wifi.wwweball.com
010 011Ethernet carte Connexion au réseau local :
012 013Suffixe DNS spéc. à la connexion. : wifi.wwweball.com
014Description . . . . . . . . . . . : ORiNOCO 802.11bg ComboCard Gold
015Adresse physique. . . . . . . . . : 00-20-A6-52-24-33
016DHCP activé . . . . . . . . . . . : Oui
017Autoconfiguration activée . . . . : Oui
018Adresse IP. . . . . . . . . . . . : 10.92.120.20
019Masque de sous-réseau . . . . . . : 255.0.0.0
020Passerelle par défaut . . . . . . : 10.92.120.17
021Serveur DHCP. . . . . . . . . . . : 10.92.120.17
022Serveurs 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