[Réseau] Connexion entre 2 réseaux (résolu)

Applications, problèmes de configuration réseau
Bob_le_pirate
newbie
Messages : 9
Inscription : sam. 18 janv. 2014, 11:10

[Réseau] Connexion entre 2 réseaux (résolu)

Message par Bob_le_pirate »

Bonjour,

Je me débat depuis un moment avec une configuration réseau un peu particulière:
J'ai un réseau local fonctionnel 192.168.1.x/24 avec plusieurs machines et un routeur (freebox), et je dois connecter une énième machine (raspberrypi0) à l'une des machines du réseau (raspberrypi3) par ETHERNET sur USB (je ne peux pas le relier directement au réseau en l'absence de port ethernet sur le pi0).

En créant un autre réseau (10.42.0.x/24) entre le port usb0 du raspberrypi3 et le raspberrypi0 et en utilisant le IPForward, je parviens à connecter le raspberrypi0 au réseau 192.168.1.x/24 depuis le raspberrypi0 (ping ok). Mais je ne parviens pas à connecter le raspberrypi0 depuis les autres machines du réseau 192.168.1.x/24 (à part avec le raspberrypi3 bien sur). C'est comme si le sens montant était fonctionnel, mais pas le sens descendant...

Voici les 2 fichiers de configurations sur le raspberrypi3 (le système utilisé est systemd-networkd)

Code : Tout sélectionner

[Match]
Name=eth0

[Network]
Address=192.168.1.4/24
Gateway=192.168.1.254
DNS=1.1.1.1
IPForward=ipv4

Code : Tout sélectionner

[Match]
Name=usb0

[Network]
Address=10.42.0.1/24
Gateway=10.42.0.1
IPForward=ipv4
IPMasquerade=yes
Voici le fichier de configuration sur le raspberrypi0

Code : Tout sélectionner

[Match]
Name=usb0

[Network]
Address=10.42.0.2/24
Gateway=10.42.0.1
DNS=1.1.1.1
Pourriez-vous m'aider ?
Dernière modification par FoolEcho le lun. 15 févr. 2021, 07:23, modifié 2 fois.
Raison : connection = anglais
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Réseau] Connection entre 2 réseau

Message par benjarobin »

Bonjour,
Alors ce que tu cherches à faire ne peut pas fonctionner. De plus il y a des choses qui ne vont pas dans ta configuration.
Il faut que tu comprennes ce que c'est une route et la route par défaut.

Si on met de coté temporairement la route par défaut (gateway), si tu ajoutes comme IP 192.168.1.4/24, cela ajoute automatiquement une route (je te laisse voir la sortie de ip route) indiquant comment joindre une autre IP du sous réseau 192.168.1.0/24, dans ton cas c'est via l'interface eth0. Donc si tu essayes de ping une autre IP, par exemple 1.1.1.1 il ne sait pas par où passer, car il n'a pas de route pour cette IP.

Une fois que l'on ajoute une route par défaut, il va envoyer tout ce qu'il ne sait pas router vers 192.168.1.254, c'est le via de ip route.
Donc avoir 2 routes par défaut (gateway) n'est déjà pas recommandé, à moins pour des usages bien spécifiques / très avancés (Et dans ce cas le Linux utilise la route qui à la metric la plus faible)...

Bref, un PC du sous réseau 192.168.1.0/24, n'a que 2 routes : Celle automatique qui indique comment joindre les PC du même sous réseau, et la route par défaut qui est la Freebox. Il n'existe donc aucune route pour joindre ton raspberrypi0.

Donc la question que je te pose, c'est est-ce que tous les PC du sous réseau 192.168.1.0/24 doivent pouvoir joindre le raspberrypi0 ?
Pour contourner simplement le problème tu pourrais juste utiliser une interface USB Ethernet pour le raspberrypi0, comme cela le raspberrypi0 serait directement connecté sur le réseau de la Freebox. Sinon il va falloir envisager d'autres solutions :
- Une solution assez lourde, est d'ajouter une route sur tous les PC pour indiquer comment joindre le sous réseau du raspberrypi0 en 10.42.0.0/24
- Sinon plus simplement, d'avoir le raspberrypi0 dans le même sous réseau que la Freebox, et d'ajouter un bridge sur le raspberrypi3 entre l'interface usb0 et l'interface eth0. Et normalement cela devrait juste fonctionner. Ces 2 interfaces (usb0 et eth0) n'ont plus d'IP, c'est à la nouvelle interface du bridge br0 qu'il faut ajouter l'IP 192.168.1.4/24
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Bob_le_pirate
newbie
Messages : 9
Inscription : sam. 18 janv. 2014, 11:10

Re: [Réseau] Connection entre 2 réseau

Message par Bob_le_pirate »

Merci pour tes explications, c'est un peu plus clair dans mon esprit.
Pour répondre à ta première question, en réalité j'ai besoin qu'un seul PC du réseau puisse accéder au raspberrypi0 (pour un tunnel pulseaudio). Je pense donc que la solution de l'ajout d'une route indiquant comment joindre le réseau 10.42.0.0/24 serait la plus simple pour moi (J'ai déjà essayé le Bridge, je pressentais que la solution était là mais je n'ai pas réussi à le mettre en œuvre en ligne de commande). Saurais-tu m'indiquer comment créer la route ad-hoc?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Réseau] Connection entre 2 réseau

Message par benjarobin »

Je pense que ceci est suffisant. Je ne sais plus s'il est nécessaire de faire des choses en plus sur le raspberrypi3.

Code : Tout sélectionner

ip route add 10.42.0.0/24 via 192.168.1.4
Tu avais essayé de faire quoi pour le bridge ? Car pour moi cela devrait être la solution la plus simple.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Bob_le_pirate
newbie
Messages : 9
Inscription : sam. 18 janv. 2014, 11:10

Re: [Réseau] Connection entre 2 réseau

Message par Bob_le_pirate »

Je crois que je me suis un peu mélangé les pinceaux avec le pont...
Ta dernière phrase :
Ces 2 interfaces (usb0 et eth0) n'ont plus d'IP, c'est à la nouvelle interface du bridge br0 qu'il faut ajouter l'IP 192.168.1.4/24
m'a éclairé :)

Si je comprends bien, il faut que je supprime sur le raspberrypi3 mes 2 fichiers, et que je créé un fichier /etc/systemd/network/10-bridge.netdev avec pour contenu

Code : Tout sélectionner

[NetDev]
Name=br0
Kind=bridge
Ainsi que 2 fichiers interface 11-eth0.network et 11-usb0.network avec pour contenu :

Code : Tout sélectionner

[Match]
Name=eth0 (# pour le second usb0)

[Network]
Bridge=br0
Et enfin attribuer l'adresse du pont dans un fichier 10-bridge.network:

Code : Tout sélectionner

[Match]
Name=br0

[Network]
Address=192.168.1.4/24
Gateway=192.168.1.254
DNS=1.1.1.1
Puis sur le raspberrypi0, je configure la connexion comme s'il faisait parti du réseau 192.168.1.x/24.
J'ai tout bon ?
Dernière modification par Bob_le_pirate le lun. 15 févr. 2021, 07:19, modifié 1 fois.
Bob_le_pirate
newbie
Messages : 9
Inscription : sam. 18 janv. 2014, 11:10

Re: [Résolu][Réseau] Connection entre 2 réseau

Message par Bob_le_pirate »

C'était bien ça, merci beaucoup pour les conseils.
Je marque le sujet résolu.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Réseau] Connection entre 2 réseau

Message par benjarobin »

Bob_le_pirate a écrit : dim. 14 févr. 2021, 19:54... J'ai tout bon ?
Heureux que cela ait fonctionné avec le bridge. Il faut vraiment voir un "bridge" comme un switch réseau, dont l'interface br0 est connecté au raspberrypi3.
Entre la théorie et la pratique, il y a des fois des petits détails qui font que cela ne fonctionne pas comme l'on veut de suite.
Je ne savais pas le faire avec networkd (après je n'avais pas cherché/regardé), donc merci à toi pour avoir fournit toutes les informations.
Et oui tu avais tout bon (sur le papier) :-)
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Répondre