Un peu de routage

Rédigé par lkiefer - - Aucun commentaire

J'ai configuré un Raspberry Pi 0 avec Octoprint pour contrôler une de mes imprimantes 3D1. Vu que cette imprimante est portable, si le Pi0 était configuré pour se connecter à mon réseau domestique je ne pourrais pas m'en servir ailleurs que chez moi. Le Pi0 est donc configuré en point d'accès: ce sont les ordinateurs qui se connectent à lui pour contrôler l'imprimante.

Schéma de mon réseau.
Réseau domestique192.168.0.0/24
Adresse box192.168.0.1
PC Portable192.168.0.10
Adresse Pi 4192.168.0.100
Réseau Pi 010.0.0.0/24
Adresse Pi 010.0.0.1

Il y a quand même quelques petits inconvénients à ceci: Je ne peux pas connecter en même temps mon ordinateur à mon réseau domestique (pour accéder à Internet) et à mon Pi0: il faut sans arrêt que je bascule entre les deux réseaux. Le Pi0 étant éloigné de mon PC portable (deux pièces les séparent), la connexion est très lente.

Schéma de mon réseau.

Je possède un Raspberry Pi 4 connecté à mon réseau domestique par câble. Il dispose d'une interface Wi-Fi inutilisée: l'idée est de m'en servir pour me connecter à mon Pi0. Pour cela je commence par configurer le fichier /etc/network/interfaces du Pi4:

allow-hotplug wlan0
iface wlan0 inet static
    wpa-ssid reseau_du_pi0
    wpa-psk motdepasse
    address 10.0.0.254
    netmask 255.255.255.0
    broadcast 10.0.0.255

Les PC qui se connectent en Wi-Fi au PI 0 reçoivent une adresse par DHCP, ainsi qu'une passerelle par défaut (le PI lui-même). Je ne souhaite pas que le Pi0 soit la passerelle par défaut de mon Pi4, c'est pourquoi j'ai préféré configurer une adresse statique.

Si je pingue 10.0.0.1 depuis mon pi4, ça fonctionne! Mais ça ne fonctionne pas encore depuis mon PC. En effet le Pi0 est sur un autre réseau, mon PC va donc tenter de faire passer la connexion par ma box mais celle-ci ne connaît pas l'adresse 10.0.0.1.

La box de mon FAI étant un routeur, il faudrait lui ajouter une route statique pour lui demander de rediriger les paquets en destination de 10.0.0.1 (Pi0) vers 192.168.0.100 (Pi4). Mais cette possibilité n'est pas offerte par son interface d'administration. On va donc ajouter cette route directement sur le PC portable, avec cette ligne de commande:

sudo route add -host 10.0.0.1 gw 192.168.0.100

Maintenant que le Pi4 reçoit les connexion en destination du pi0, il faut encore lui dire quoi en faire. On va commencer par activer le routage, c'est à dire le transfert de paquets entre différentes interfaces réseau:

echo 1 > /proc/sys/net/ipv4/ip_forward

Pour que me routage persiste au redémarrage, il faut éditer le fichier /etc/sysctl.conf, et enlever le '#' devant la ligne net.ipv4.ip_forward=1.

Les paquets sont encore bloqués par le pare-feu. J'ajoute donc une règle pour laisser passer toutes les connexions en provenance du réseau domestique:

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

Pour un peu plus de sécurité, je bloque les connexions en provenance du Pi0 (interface Wi-Fi):

iptables -A INPUT -i wlan0 -j DROP

Ces règles ne seront pas conservées après un redémarrage du Pi4. Pour les rendre persistantes, j'ai installé le paquet iptables-persistent.

Voilà, je peux surfer et surveiller mes impression en même temps! De plus mes Pi sont assez proches l'un de l'autre, la bande passante est également améliorée.

Mon pi 0.
Imaginez un joli boîtier autour du Pi 0.

[1] Il parait qu'il ne faut pas faire ça; J'ai réduit le débit de la webcam, et pour l'instant ça marche.

Classé dans : Non classé - Mots clés : aucun

Écrire un commentaire

Les commentaires sont modérés avant d'être postés. Les commentaires à vocation publicitaire, ou comportant un lien vers un site non personnel, ne seront pas publiés

Quelle est le deuxième caractère du mot cxytr ?