Infrastructure de SamesWireless

Présentation par Fernando Alves le 09.10.2010

La configuration de SamesWireless est simple :

  • Dans le local technique du particulier d'où partent nos connexions ADSL (à Guiche), une passerelle linux reliée à une RocketM5 (source A) posée sur le toit configurée en AP WDS (+ onduleur, modems ADSL).
  • Sur le toit des maisons à Sames ayant une vue sur la source A, j'ai installé 2 antennes, une en mode STA WDS et l'autre en mode AP WDS pour diffuser sur les quartiers en contrebas.
  • Chaque adhérent a chez lui un Linksys54GL avec DD-WRT embarqué qui récupère son IP publique auprès de la passerelle par DHCP (identifié par son MAC Addr).

Toutes les antennes du réseau sont réglées en mode pont transparent (WDS) avec IP privées (192.168.x.x/24). Tout le réseau est entièrement composé de techno M5 ou M2 de Ubiquiti. Avec ce mode c'est comme si chaque modem/routeur des adhérents était relié par un câble Ethernet à la passerelle (niveau 2).

Ensuite tout se règle sur la passerelle :

  • Pour un partage équitable et éviter les blocages, il faut mettre du QOS sur la voie montante avec une bonne gestion du burst (sur connexions PPPOE adsl).
  • Une petite astuce, les modules Ubiquiti ont tendance à planter après quelques semaines de fonctionnement (moins quand ils sont sur onduleur), générez une clé publique RSA sur la passerelle et chargez la dans ” Authorized Keys ” de vos modules Ubiquiti ensuite un petit script sur la passerelle qui s'exécute tous les 3 jours la nuit du style ” ssh samesw00@192.168.x.x reboot ”, depuis (6 mois) que j'ai mis en place ce script plus de crash d'AP
  • Un peu d'Iptables pour protéger la passerelle
  • Collectd, cacti pour les stats.
  • Bind pour le serveur DNS
  • Serveur DHCP

Avec cette configuration les adhérents ont l'impression d'avoir une connexion ADSL 8Mbits, il faut dire aussi que aujourd'hui nous n'avons pas de gros téléchargeur qui télécharge 24h/24h.

Le coût : aujourd'hui pour adhérer à SamesWireless, c'est 100 euros de droit d'entrée et ensuite 15euros/mois pour le service internet. À ce jour SamesWireless a un petit déficit de 1000euros qui devrait être comblé dans l'année.

FAQ suite à cette présentation

Q : Quelles sont les contraintes lors du déploiement d'un réseau Wifi (hors déclaration éventuelle auprès de l'ARCEP) ? Faut-il des autorisations particulières en mairie par exemple ?
R : Non aucune, il faut juste respecter la PIRE 0,1w en 2.4Ghz et 1w en 5Ghz

Q : Parmi les contraintes éventuelles, y a-t-il eu des réticences des habitants de la commune lorsque vous avez déployé votre réseau Wifi ?
R : Nos antenne sont installées sur les toits des adhérents (domaine privé), personne ne peut rien dire (droit a l'antenne). J'ai aussi fait un peu de pédagogie auprès des habitants : émetteur GSM 100W, WIMAX 20W à 50W, téléphone portable 2W, WIFI de 0,1W à 1W même puissance que le Wifi d'une BOX ADSL.

Q : Au jour d'aujourd'hui, ça donne quoi SamesWireless en chiffres (nombre d'adhérents à l'asso, superficie couverte, …) ?
R : Ponts les plus long, de 3 à 4km. 44 adhérents, 6 adhérents sont passé à la VoIP dont moi même (1,20euros/mois chez OVH). Nous couvrons le village de Sames et ceux qui sont en limite périphérique.

Q : L'énorme charge que vous avez rencontrée est liée au fait que vous couvriez une zone blanche (avec donc un grand nombre de demandes) ou y a-t-il d'autres facteurs ?
R : Oui, c'est surtout parce que nous couvrons une zone blanche mais le coût aussi (15euros/mois). Certains déçus du satellite viennent chez nous avant la fin de leurs engagements.

Q : Avez-vous rencontré de grosse difficultés techniques lors du déploiement du réseau, notamment entre Guiche et Sames ?
R : Oui les arbres et les collines :-)

Q : Est-ce légal ?
R : OUI

Q : Et au sujet de la gestion des membres, vous avez opté pour quelles solutions ? Les créations de lignes sont-elles automatisées ?
R : L'ouverture d'une ligne WIFI n'est pas très automatisée. Aujourd'hui je dois modifier plusieurs scripts sur la passerelle pour ajouter un adhérent.

Q : Quand un nouvel adhérent demande un accès, faites-vous la demande à FDN à la main ?
R : Ce sont des lignes ADSL partagées à plusieurs. Aujourd'hui 2 lignes ADSL (10M) a 43 adhérents, une 3ème est en cours de construction.

Q : Par curiosité, comment le load-balancing est-il mis en œuvre ?
R : Aujourd’hui j’ai la moitié des adhérents sur la 1ère ligne et l’autre moitié sur la 2ème. Côté FDN Domi essaye de mettre en place MLPPP, en espérant que ça marchera.

Présentation infrastructure

Schéma de la passerelle

Infos: Les IPs données dans ces exemples ne correspondent pas aux IPs réellement utilisées sur notre réseau.

Aujourd'hui FDN nous livre un bloc de 128 IP publiques (80.68.167.128/25) découpées en 4 blocs de 32 IPs (un /27 par connexion ppp).
ppp0 –> 80.68.167.128/27
ppp1 –> 80.68.167.160/27
ppp2 –> 80.68.167.192/27
ppp3 –> 80.68.167.224/27

Si l'on veut utiliser la même interface physique pour monter plusieurs connexions ppp il faut utiliser les vlan, car lors de la négociation pppoe avec le serveur, le serveur n'accepte qu'une connexion ppp par adresse MAC.
Pour cela Il faut avoir installé le paquet vlan (voir vconfig) pour pouvoir utiliser les vlan sur une debian.

http://www.linux-france.org/prj/inetdoc/cours/routage.inter-vlan/routage.inter-vlan.typical.html

configuration du fichier interface

alix:/# cat /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo eth0 eth1 eth2
iface lo inet loopback

iface eth0 inet static
    post-up iptables-restore < /etc/iptables.up.rules
    address 192.168.2.1
    netmask 255.255.255.0
    broadcast 192.168.2.255
    network 192.168.2.0

auto eth0.101
iface eth0.101 inet static
        address 192.168.101.2
        netmask 255.255.255.0
        broadcast 192.168.101.255
        network 192.168.101.0
        hwaddress ether 00:0d:b9:1d:3f:d7

auto eth0.102
iface eth0.102 inet static
        address 192.168.102.2
        netmask 255.255.255.0
        broadcast 192.168.102.255
        network 192.168.102.0
        hwaddress ether 00:0d:b9:1d:3f:d8

auto eth0.103
iface eth0.103 inet static
        address 192.168.103.2
        netmask 255.255.255.0
        broadcast 192.168.103.255
        network 192.168.103.0
        hwaddress ether 00:0d:b9:1d:3f:d9

auto eth0.104
iface eth0.104 inet static
        address 192.168.104.2
        netmask 255.255.255.0
        broadcast 192.168.104.255
        network 192.168.104.0
        hwaddress ether 00:0d:b9:1d:3f:da

# LAN Private Network
iface eth1 inet static
        address 192.168.1.1
        netmask 255.255.255.0
        broadcast 192.168.1.255
        network 192.168.1.0

# LAN Publique Network
iface eth2 inet static
        address 80.68.167.129
        netmask 255.255.255.128
        broadcast 80.68.167.255
        network 80.68.167.128

Définition de 4 tables iproute, une par connexion ppp (WAN1,WAN2,WAN3 et WAN4)

alix:/# cat /etc/iproute2/rt_tables

#
# reserved values
#
255     local
254     main
253     default
0       unspec

201 WAN1
202 WAN2
203 WAN3
204 WAN4

script de routage lancé au boot

alix:/# cat /etc/init.d/routing

#!/bin/sh

PATH=/sbin:/bin:/usr/bin

do_stop () {
        ip route flush cache
}

do_start () {
        ip route flush table WAN1
        ip route flush table WAN2
        ip route flush table WAN3
        ip route flush table WAN4

        # Table WAN1
        ip route add 127.0.0.0/8 dev lo table WAN1
        ip route add 80.68.167.128/25 dev eth2 proto kernel scope link src 80.68.167.129 table WAN1
        ip route add 192.168.101.0/24 dev eth0.101 proto kernel scope link src 192.168.101.2 table WAN1
        ip route add 192.168.102.0/24 dev eth0.102 proto kernel scope link src 192.168.102.2 table WAN1
        ip route add 192.168.103.0/24 dev eth0.103 proto kernel scope link src 192.168.103.2 table WAN1
        ip route add 192.168.104.0/24 dev eth0.104 proto kernel scope link src 192.168.104.2 table WAN1
        ip route add 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.1 table WAN1

        # Table WAN2
        ip route add 127.0.0.0/8 dev lo table WAN2
        ip route add 80.68.167.128/25 dev eth2 proto kernel scope link src 80.68.167.129 table WAN2
        ip route add 192.168.101.0/24 dev eth0.101 proto kernel scope link src 192.168.101.2 table WAN2
        ip route add 192.168.102.0/24 dev eth0.102 proto kernel scope link src 192.168.102.2 table WAN2
        ip route add 192.168.103.0/24 dev eth0.103 proto kernel scope link src 192.168.103.2 table WAN2
        ip route add 192.168.104.0/24 dev eth0.104 proto kernel scope link src 192.168.104.2 table WAN2
        ip route add 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.1 table WAN2

        # Table WAN3
        ip route add 127.0.0.0/8 dev lo table WAN3
        ip route add 80.68.167.128/25 dev eth2 proto kernel scope link src 80.68.167.129 table WAN3
        ip route add 192.168.101.0/24 dev eth0.101 proto kernel scope link src 192.168.101.2 table WAN3
        ip route add 192.168.102.0/24 dev eth0.102 proto kernel scope link src 192.168.102.2 table WAN3
        ip route add 192.168.103.0/24 dev eth0.103 proto kernel scope link src 192.168.103.2 table WAN3
        ip route add 192.168.104.0/24 dev eth0.104 proto kernel scope link src 192.168.104.2 table WAN3
        ip route add 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.1 table WAN3

        # Table WAN4
        ip route add 127.0.0.0/8 dev lo table WAN4
        ip route add 80.68.167.128/25 dev eth2 proto kernel scope link src 80.68.167.129 table WAN4
        ip route add 192.168.101.0/24 dev eth0.101 proto kernel scope link src 192.168.101.2 table WAN4
        ip route add 192.168.102.0/24 dev eth0.102 proto kernel scope link src 192.168.102.2 table WAN4
        ip route add 192.168.103.0/24 dev eth0.103 proto kernel scope link src 192.168.103.2 table WAN4
        ip route add 192.168.104.0/24 dev eth0.104 proto kernel scope link src 192.168.104.2 table WAN4
        ip route add 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.1 table WAN4

        ip route add 127.0.0.0/8 dev lo

        # DEMARRAGE des connexions PPPOE
        pon dsl-provider1
        pon dsl-provider2
        pon dsl-provider3
        pon dsl-provider4
}


case "$1" in
  start)
    do_start
    exit 0
    ;;
  restart|reload|force-reload)
    echo "Error: argument '$1' not supported" >&2
    exit 3
    ;;
  stop)
    do_stop
    exit 0
    ;;
  *)
    echo "Usage: $0 start|stop" >&2
    exit 3
    ;;
esac
 
essaimage/infrastructure/exemple_sames.txt · Dernière modification: 19/06/2011 12:11 par adhacc-472
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante:CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki