Pour éditer le wiki, il faut demander un compte à un Lapin !
Difference between revisions of "EtherBridge"
(→Configuration d'OpenVPN) |
(moar comments) |
||
Line 56: | Line 56: | ||
== Installation d'OpenVPN == | == Installation d'OpenVPN == | ||
+ | |||
+ | Après avoir, d'une facon ou d'une autre, connecté l'interface filaire de la Fonera à l'internet, on installe OpenVPN, sans la crypto. | ||
opkg update | opkg update |
Revision as of 09:19, 24 August 2014
Contents
Problématique & programme
Avec OpenWRT, il est possible de faire un pont WiFi entre deux réseaux filaire ethernet en restant au niveau 2 OSI.
La difficulté vient du fait que, en WiFi, une interface en mode managed ne peut pas se comporter comme un switch (présenter plusieurs adresses MAC). On doit donc passer au niveau 3 OSI et mettre en place des tables de routage, et/ou du NAT.
Mais il y a une autre solution: créer un tunnel entre les deux routeurs, qui passera par le réseau WiFi, et qui exposera de chaque coté une interface TAP, qui sera bridgée avec l'interface ethernet locale.
Cette page décrit comment mettre en place ce genre de configuration en partant de deux Fonera fraîchement flashées avec OpenWRT. Une servira d'Access Point et aura l'IP 192.168.123.1 sur l'interface WiFi, l'autre fera client et aura l'IP 192.168.123.10 sur l'interface WiFi.
Préparation des interfaces WiFi
Par défaut, OpenWRT est accessible par l'interface ethernet, a pour adresse IP 192.168.1.1/24, et est accessible par telnet.
telnet 192.168.1.1
uci set network.etherbridge=interface uci set network.etherbridge.proto=none uci set network.etherbridge.proto=static uci set network.etherbridge.ipaddr=192.168.123.1 uci set network.etherbridge.netmask=255.255.255.0 uci commit network
uci set wireless.radio0.disabled=0 uci set wireless.@wifi-iface[0].network=etherbridge uci set wireless.@wifi-iface[0].ssid=etherbridge uci set wireless.@wifi-iface[0].encryption=psk2 uci set wireless.@wifi-iface[0].key='la cle wpa du pont' uci set wireless.@wifi-iface[0].mode=ap uci commit wireless
uci set dhcp.etherbridge=dhcp uci set dhcp.etherbridge.interface=etherbridge uci set dhcp.etherbridge.ignore=1 uci commit dhcp
uci add_list firewall.@zone[0].network=etherbridge uci commit firewall
/et/init.d/network restart
Pour la fonera qui va faire client il suffit de changer wireless.@wifi-iface[0].mode=ap par wireless.@wifi-iface[0].mode=sta et de renseigner une adresse IP différente.
Avant de passer a l'étape suivante, rebootez la Fonera et vérifiez que vous pouvez vous y connecter en telnet en passant par le réseau WiFi "etherbridge".
Bascule des interfaces filaires
uci set network.lan.proto=dhcp uci delete network.lan.ipaddr uci delete network.lan.netmask uci delete network.lan.ip6assign uci commit network
/etc/init.d/network reload
Installation d'OpenVPN
Après avoir, d'une facon ou d'une autre, connecté l'interface filaire de la Fonera à l'internet, on installe OpenVPN, sans la crypto.
opkg update opkg install openvpn-nossl
Une fois openvpn installé, il est judicieux de débrancher le cable ethernet.
Configuration d'OpenVPN
On configure OpenVPN en mode P2P, car il n'y aura qu'un seul pair. Pas de chiffrement, on se repose sur WPA. Attention: on va bridger tap0 et eth0, donc tap0 va potentiellement recevoir des trames ethernet de 1500 octets. OpenVPN, UDP et IP vont chacun rajouter leur encapsulation, et au final on sera toujours contraint par le MTU 802.11 de 1500 octets. La solution ici est de rajouter un header de fragmentation au niveau UDP, pour que les paquets de eth0 qui sont trop gros soit envoyés dans le tunnel en deux parties, chacune étant, une fois les encapsulations appliquées, de taille inférieure à 1500 octets.
uci set openvpn.etherbridge=openvpn uci set openvpn.etherbridge.dev=tap0 uci set openvpn.etherbridge.proto=udp uci set openvpn.etherbridge.remote=192.168.123.10 uci set openvpn.etherbridge.fragment=1200 uci set openvpn.etherbridge.enabled=1 uci commit openvpn
/etc/init.d/openvpn enable /etc/init.d/openvpn start
Si l'opération a réussi, ifconfig tap0
devrait renvoyer les informations sur l'interface. Il est possible qu'elle apparaisse inactive, ce n'est pas gênant a ce stade, l'important c'est qu'elle existe.
Ajout du tunnel au bridge
uci set network.lan.ifname='eth0 tap0' uci commit network /etc/init.d/network reload
Vérifier avec brctl show
Déploiement final
{ Réseau Principal } ------ [ Fonera 1 ]--+))) (((+--[ Fonera 2 ]----{ Extension du réseau }
A partir de la, la partie "extension du réseau" aura une liaison niveau 2 avec le réseau principal, on pourra lancer un dhclient depuis l'extension et acquérir un bail depuis un serveur situé dans le réseau principal.