ZW3B :-: API Client * Contents * Docs by LAB3W.ORJ

Translate this page

Name : BETA-TESTERS

Project name : ZW3B-API-BETA-TESTERS

Authorized. - 200 - Client API Name and Origin Wildcard OK

¿Comment? 'Ou' ¿Que faire?, OS GNU/Linux, Réseaux, OLSR - Optimized Link State Routing protocol

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.

Author : O.Romain.Jaillet-ramey

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
Retirer les numéros de lignes

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.

Installation :

Editer le fichier source APT et ajouter les dépots OLSR :

Script avec 1 ligne

001vi /etc/apt/sources.list
Retirer les numéros de lignes

Script avec 3 lignes

001# OLSR
002deb http://www.skyhub.de/debian/ unstable main
003deb-src http://www.skyhub.de/debian/ unstable main
Retirer les numéros de lignes

Télécharger les paquets olsrd et olsrd-plugin.

Script avec 2 lignes

001apt-get update
002apt-get install olsrd olsrd-plugin
Retirer les numéros de lignes

Configuration :

Script avec 1 ligne

001vi /etc/apt/sources.list
Retirer les numéros de lignes
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
Retirer les numéros de lignes
Le fichier /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}
Retirer les numéros de lignes

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
Retirer les numéros de lignes

Activer la carte Wi-Fi en mode ad-hoc

Script avec 1 ligne

001iwconfig wlan0 essid wiFi.wWwEBALL.com mode ad-hoc
Retirer les numéros de lignes

Lancement d'olsrd

Script avec 1 ligne

001/usr/sbin/olsrd -f /etc/olsrd.conf -d 9
Retirer les numéros de lignes

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 :


Si tout marche, activer olsrd au boot de la machine

Script avec 1 ligne

001vi /etc/default/olsrd
Retirer les numéros de lignes

Script avec 2 lignes

001# sourced by /etc/init.d/olsrd
002start_olsrd=yes
Retirer les numéros de lignes

et configurer la carte wifi en mode ad-hoc

Script avec 1 ligne

001vi /etc/network/interfaces
Retirer les numéros de lignes

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
Retirer les numéros de lignes

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
Retirer les numéros de lignes

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
Retirer les numéros de lignes

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
Retirer les numéros de lignes

par celle-ci :

Script avec 1 ligne

001iptables -t nat -A OlsrNeighbors -m mac --mac-source ${_mac} -p tcp -j ACCEPT
Retirer les numéros de lignes

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
Retirer les numéros de lignes

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
Retirer les numéros de lignes

ZW3B.Links : Liens qui peuvent vous intéressez !

Web.Archive 2008