**Ceci est une ancienne révision du document !**
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
configuration des fichiers dsl-provider1, 2 , 3 et 4
alix:~# cat /etc/ppp/peers/dsl-provider1
''noipdefault defaultroute hide-password lcp-echo-interval 15 lcp-echo-failure 5 connect /bin/true noauth persist mtu 1462 noaccomp default-asyncmap plugin rp-pppoe.so eth0.101 user "sameswireless.line1@fdn.nerim"''
script de routage lors du montage d'une connexion ppp
alix:~# cat /etc/ppp/ip-up.d/routing