====== Tunnel Wifi entre les Freebox Server et Player ====== Si, comme moi, vous disposez d'un Freebox Revolution (v6), vous pouvez connecter votre boîtier ADSL (Freebox Server ou FS) à votre boîtier HD (Freebox Player ou FP) de deux manières : soit avec les FreePlugs basée sur la technologie CPL (Courants Porteurs en Ligne), soit avec un cable Ethernet qui courent à travers le salon, le plus souvent quand les FreePlugs ne fonctionnent pas ou mal ! Nous nous proposons ici de proposer une alternative sans fil basé sur un tunnel wifi entre le FS et le FP ;-) Voici un petit schéma récapitulatif : Internet <--adsl--> FS <--ether--> PC1 <--wifi--> PC2 <--ether--> FP <--> TV En guise de PC 1 et 2, nous utilisons des Raspberry Pi 3 sous Raspbian, qui disposent des interfaces eth0 (ethernet) et wlan0 (wifi) Pour commencer, il faut noter que le FP et FS discutent à travers un VLAN avec le tag 100 (interface eth0.100). L'idée de base va donc être de réaliser : * une connexion wifi ad-hoc entre les wlan0 des deux PCs, * un tunnel OpenVPN de niveau 2 entre les deux PCs (interfaces tap0.100), * un bridge br0 entre eth0.100 et tap0.100 pour chaque PC. La FS (en mode routeur) dispose d'un serveur DHCP. Le LAN de la Freebox (ether et wifi) est 192.168.0.0/24 avec FS en 192.168.0.254 qui fait office de passerelle vers Internet. Le VLAN 100 est 192.168.27.0/28 avec FS en 192.168.27.14 et FP en 192.168.27.1. ==== Prérequis ==== On installe quelques paquets Linux/Debian : sudo apt-get install openvpn openssl vlan bridge-utils On génère une clef statique pour le tunnel VPN : sudo openvpn --genkey --secret openvpn.key Il faut également stopper le Network Manager : sudo /etc/init.d/network-manager restart # Debian ... # Raspbian ==== PC1 (connecté au FS) ===== En tant que root, il faut lancer le script //server// suivant : # reseau wifi ad-hoc ifconfig wlan0 down iwconfig wlan0 essid pouet mode ad-hoc channel 1 ifconfig wlan0 192.168.1.1/24 # reseau local ifconfig eth0 up # tunnel VPN openvpn server.conf & sleep 1 # vlan 100 modprobe 8021q vconfig add eth0 100 vconfig add tap0 100 ifconfig eth0.100 up ifconfig tap0.100 up # bridge brctl addbr br0 brctl addif br0 tap0.100 brctl addif br0 eth0.100 ifconfig br0 up dev tap ifconfig 10.8.0.1 255.255.255.0 secret openvpn.key ==== PC2 (connecté au FP) ===== En tant que root, il faut lancer le script //client// suivant : # reseau wifi ad-hoc ifconfig wlan0 down iwconfig wlan0 essid pouet mode ad-hoc channel 1 ifconfig wlan0 192.168.1.2/24 # reseau local ifconfig eth0 up # tunnel VPN openvpn client.conf & sleep 1 # vlan 100 modprobe 8021q vconfig add eth0 100 vconfig add tap0 100 ifconfig eth0.100 up ifconfig tap0.100 up # bridge brctl addbr br0 brctl addif br0 tap0.100 brctl addif br0 eth0.100 ifconfig br0 up remote 192.168.1.1 dev tap ifconfig 10.8.0.2 255.255.255.0 secret openvpn.key ==== Remise à zéro ===== rmmod 8021q ifconfig eth0 down ifconfig wlan0 down ifconfig tap0 down ifconfig br0 down brctl delbr br0 pkill -9 openvpn ==== Conclusion ==== Bon, ça marche ! Voici une archive avec les scripts et les configs {{:freebox:freebox-tunnel.tgz|}}. Mais le débit a l'air juste suffisant pour regarder la TV avec un flux ADSL bas débit. On peut également remplacer la connexion wifi ad-hoc en utilisant simplement l'Access Point du Freebox Server : {{:freebox:freebox-tunnel-v2.tgz|}}. Afin d'améliorer le débit, il faudrait remplacer le tunnel OpenVPN par un [[https://fr.wikipedia.org/wiki/Layer_2_Tunneling_Protocol|tunnel de niveau 2]], a priori plus léger et performant. Même si OpenVPN est remarquement simple à configurer, c'est vrai qu'on a pas besoin d'une technologie VPN sécurisé ! Bench à faire... ==== Un peu de documentation ==== * https://www.lekernelpanique.fr/2014/02/23/analyse-reseau-entre-freebox-player-et-freebox-server/ * http://blog.cogipix.com/general/technique/faire-communiquer-le-freebox-player-et-le-freebox-server-par-vpn * https://wiki.debian.org/fr/WiFi/AdHoc * http://www.pcastuces.com/pratique/materiel/pont_wifi/ * https://openvpn.net/index.php/open-source/documentation/miscellaneous/78-static-key-mini-howto.html * http://wiki.debian.org/BridgeNetworkConnections * http://www.secdev.org/projects/tuntap_udp/