Name : BETA-TESTERS
Project name : ZW3B-API-BETA-TESTERS
Authorized. - 200 - Client API Name and Origin Wildcard OK
OLSR est un protocole proactif de routage pour object mobile. Par extention, c'est aussi son implémentation. On le trouve sous windows et linux et autres.
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 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.
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.
eth0
qui est branché sur la Freebox ayant comme IP une IP Internet. wlan0
qui émet des ondes WIFI actuellement en mode Master à comme IP 10.92.120.17
et comme masque 255.0.0.0
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
Script avec 2 lignes
001apt-get update 002apt-get install olsrd olsrd-plugin
Script avec 1 ligne
001vi /etc/apt/sources.list
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
/etc/olsrd.conf
Script avec 68 lignes
001DebugLevel 0 002IpVersion 4 003ClearScreen no 004 005Hna4 006{ 007 # Internet gateway: 008 0.0.0.0 0.0.0.0 009 # more entries can be added: 010 10.0.0.0 255.0.0.0 011} 012 013AllowNoInt yes 014 015IpcConnect 016{ 017 MaxConnections 1 018 Host 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 033 034# 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{ 038 PlParam "port" "8080" 039# PlParam "Host" "10.92.120.17" 040# PlParam "Host" "81.56.54.30" 041 PlParam "Net" "10.0.0.0 255.0.0.0" 042 PlParam "Net" "192.168.0.0 255.255.0.0" 043 PlParam "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{ 049 PlParam "name" "gateway" 050 PlParam "suffix" ".wifi.wwweball.com" 051 PlParam "hosts-file" "/etc/hosts.4wifi" 052 PlParam "resolv-file" "/etc/resolv.conf.4wifi" 053} 054 055Interface "wlan0" "eth0" 056{ 057 HelloInterval 2.0 058 HelloValidityTime 6.0 059 060 TcInterval 5.0 061 TcValidityTime 15.0 062 063 MidInterval 5.0 064 MidValidityTime 15.0 065 066 HnaInterval 5.0 067 HnaValidityTime 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
Script avec 1 ligne
001iwconfig wlan0 essid wiFi.wWwEBALL.com mode ad-hoc
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.
La page /routes
Les nodes OLSR :
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 003 address 10.92.120.17 004 netmask 255.255.0.0 005 network 10.92.120.0 006 broadcast 10.92.120.255 007 wireless_essid wiFi.wWwEBALL.com 008 wireless_mode Ad-hoc
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 { 011 while("route -n"|getline) { 012 if (/^[0-9]/) { 013 if (0 < ) { 014 if ( == "255.255.255.255 ") { 015 printf "%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 }') 034 echo ${_mac} 035 iptables -t nat -A OlsrNeighbors -m mac --mac-source ${_mac} -p tcp --dport 80 -j ACCEPT 036 037done 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 :/
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.
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 003 Nom de l'hôte . . . . . . . . . . : nomade 004 Suffixe DNS principal . . . . . . : lab3w.com 005 Type de noud. . . . . . . . . . . : Mélangé 006 Routage IP activé . . . . . . . . : Oui 007 Proxy WINS activé . . . . . . . . : Non 008 Liste de recherche de suffixe DNS : lab3w.com 009 wifi.wwweball.com 010 011Ethernet carte Connexion au réseau local : 012 013 Suffixe DNS spéc. à la connexion. : wifi.wwweball.com 014 Description . . . . . . . . . . . : ORiNOCO 802.11bg ComboCard Gold 015 Adresse physique. . . . . . . . . : 00-20-A6-52-24-33 016 DHCP activé . . . . . . . . . . . : Oui 017 Autoconfiguration activée . . . . : Oui 018 Adresse IP. . . . . . . . . . . . : 10.92.120.20 019 Masque de sous-réseau . . . . . . : 255.0.0.0 020 Passerelle par défaut . . . . . . : 10.92.120.17 021 Serveur DHCP. . . . . . . . . . . : 10.92.120.17 022 Serveurs DNS. . . . . . . . . . . : 195.132.0.132
Web.Archive 2008