User Tools

Site Tools


freebox:index

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 :

server.sh
# 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
server.conf
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 :

client.sh
# 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
client.conf
remote 192.168.1.1
dev tap
ifconfig 10.8.0.2 255.255.255.0
secret openvpn.key

Remise à zéro

reset.sh
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-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-tunnel-v2.tgz.

Afin d'améliorer le débit, il faudrait remplacer le tunnel OpenVPN par un 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

freebox/index.txt · Last modified: 2024/03/18 15:06 by 127.0.0.1