J'ai un réseau privé avec un PC et 3 framboises.
PC--RPi1--RPi2--RPi3
- PC: 192.168.0.101/24 (ssh à RPi1)
- RPi1: 192.168.0.102/24 (eth0 lié au PC) & amp; & amp; 192.168.0.103/24 (eth1 lié à Rpi2)
- Rpi2: 192.168.0.104/24 (eth0 lié à Rpi1) & amp; & amp; 192.168.0.105/24 (eth1 lié à Rpi3)
- RPi3: 192.168.0.106/24 (eth0 lié à Rpi2)
Je souhaite envoyer un message de RPi1 à RPi3. Ça ne marche pas
Devrais-je changer la table de routage? Et comment?
linux
networking
ip
routing
raspberry-pi
user940969
la source
la source
Réponses:
Donc, tout d’abord, ce n’est pas ainsi que fonctionnent le routage IP et les sous-réseaux.
Les routeurs sont généralement assis entre réseaux (sous-réseaux). Ils connectent plusieurs réseaux ensemble - une interface appartient au sous-réseau A, une autre appartient au sous-réseau B. Ils transmettent les paquets IP, mais pas les trames Ethernet (en fait, ils pourraient connecter des réseaux qui ne ressemblent pas du tout à Ethernet).
(Par exemple, la connexion PC – RPi1 utilise des adresses de 192.168.0.0/24, tandis que la connexion RPi1 – RPi2 utilise 192.168. 1 .0 / 24, et ainsi de suite.)
Votre configuration s'attend à l'inverse. Vous avez configuré toutes les interfaces des périphériques sur le même sous-réseau, ce qui pose deux problèmes:
Tous les périphériques s'attendent à ce que le reste soit directement accessible au niveau Ethernet (car le masque de sous-réseau le leur dit), mais en réalité, ils ne le sont pas: par exemple, PC et RPi2 sont séparés par un routeur (RPi1). Lorsque le PC envoie une requête ARP (diffusion), cette requête ne passera pas par les routeurs. Si le PC envoie une trame Ethernet directement à l'adresse MAC de RPi2, il n'atteindra rien, car RPi2 n'est pas sur le même Ethernet.
Les périphériques dotés de plusieurs interfaces configurées pour le même sous-réseau ne savent pas, comme par magie, quelle adresse est accessible via quelle interface. Par exemple, lorsque RPi2 souhaite envoyer un paquet à 192.168.0.102, il doit choisir entre deux routes en conflit: "192.168.0.0/24 sur eth0" et "192.168.0.0/24 sur eth1". Comment saura-t-il quelle route utiliser?
Si vous doit Si vous utilisez un seul sous-réseau, une "chaîne" comme celle-ci peut fonctionner de deux manières:
Vous pouvez ajouter une route d'hôte individuelle pour chaque périphérique, sur chaque périphérique. (Par exemple, RPi2 aurait une route vers le PC, une route vers RPi1 et une route vers RPi3.) Il en résulte rapidement un grand nombre de routes. protocoles de routage comme Babel ou OSPF.
Cette méthode fonctionne mieux lorsque toutes les interfaces sont configurées en tant que / 32 (c'est-à-dire le masque de réseau 255.255.255.255), de sorte qu'elles ne supposent pas que tout le monde est dans un sous-réseau.
Vous pouvez pont les interfaces au lieu de routage entre eux. Au niveau IP, un pont agit comme une interface unique (adresse IP unique, etc.) avec plusieurs "sorties" et transmet toutes les trames Ethernet entre elles exactement comme un commutateur / concentrateur Ethernet. Donc, après avoir créé un
br0
sur RPi1 / 2 et mettez-y eth0 et eth1, puis les deux interfaces créeront un seul grand sous-réseau.la source