REMARQUE: Si les périphériques clients (
computer B
dans cet exemple) souhaitent obtenir Internet via l'ordinateur passerelle, ils doivent peut-être encore configurer la résolution du serveur de noms. Cela n'est pas expliqué ici (une passerelle ne dessert pas nécessairement Internet).
J'essaie de comprendre les principes fondamentaux du routage des réseaux.
J'expérimente donc avec mon LAN (je n'ai pas besoin d'Internet pour l'instant, juste des communications LAN).
Je sais que les questions de configuration du réseau sont quelque chose d'assez complexe, mais j'essaie juste de faire d'un ordinateur (disons A) pour servir de passerelle pour un autre (disons B) (tous deux exécutant Ubuntu Linux).
Je n'ai besoin que de B pour pouvoir atteindre le routeur, qui n'est accessible que pour A.
C'est le cas:
Router for computer A --> 192.168.0.1
Computer A - eth0 --> 192.168.0.2
Computer A - eth1 --> 192.168.1.1
Computer B - eth0 --> 192.168.1.2
L'ordinateur A se connecte correctement au routeur .
Les ordinateurs A et B se connectent bien (ping, SSH ... etc) entre eux .
L'ordinateur B ne peut pas atteindre le routeur de l'ordinateur A.
Je pensais que l'ajout de l'ordinateur B comme passerelle par défaut et l'activation du transfert IP sur A permettraient à B d'atteindre le routeur pour A:
luis@ComputerB:~$ sudo route add default gw 192.168.1.1
luis@ComputerB:~$ sudo routel
target gateway source proto scope dev tbl
127.0.0.0 broadcast 127.0.0.1 kernel link lo local
127.0.0.0 8 local 127.0.0.1 kernel host lo local
127.0.0.1 local 127.0.0.1 kernel host lo local
127.255.255.255 broadcast 127.0.0.1 kernel link lo local
192.168.1.0 broadcast 192.168.1.2 kernel link eth0 local
192.168.1.2 local 192.168.1.2 kernel host eth0 local
192.168.1.255 broadcast 192.168.1.2 kernel link eth0 local
default 192.168.1.1 eth0
169.254.0.0 16 link eth0
192.168.1.0 24 192.168.1.2 kernel link eth0
Et sur l'ordinateur A (la passerelle intermédiaire):
root@ComputerA:~$ echo 1 > /proc/sys/net/ipv4/ip_forward
L'ordinateur B peut toujours envoyer une requête ping à l'ordinateur A, mais le routeur pour A ne répond pas:
luis@ComputerB:~$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
^C
(Pas de réponse ping)
Est-ce la bonne procédure pour qu'un ordinateur exécutant Linux agisse comme une passerelle pour un autre ordinateur de manière simple?
la source
Pour que le routage fonctionne correctement entre deux ordinateurs Linux faisant office de passerelles, plusieurs éléments doivent être en place:
Les routes doivent être ajoutées aux deux interfaces du routeur.
Une passerelle locale doit être spécifiée pour le réseau distant sur les deux passerelles. Cela permet aux ordinateurs du réseau local de savoir où envoyer des paquets pour le réseau distant. La passerelle doit être l'adresse IP de l'ordinateur qui enverra les paquets au réseau distant.
Le masquage IP doit être activé pour permettre au NAT de fonctionner entre les passerelles.
Vous devrez peut-être spécifier une source et une destination car vous utilisez la même interface pour le masquage:
et l'autre passerelle:
Pour chaque passerelle, le trafic du réseau local doit être accepté sur l'interface appropriée comme ceci:
ou
Il existe de nombreux liens et questions similaires pouvant être référencés pour résoudre les problèmes que vous rencontrez.
Ce qui semble erroné dans ce cas particulier, c'est que la configuration de la route et de la passerelle n'est pas terminée sur les deux ordinateurs et que la traduction d'adresses réseau (NAT) n'a pas été activée à l'aide d'iptables, permettant aux passerelles de transporter la demande depuis un ordinateur sur l'autre sous-réseau en leur nom.
Cela est également essentiel lors de la configuration d'une connexion Internet, car vous êtes responsable d'une extrémité de la connexion (par exemple, en utilisant un ordinateur Linux comme passerelle pour une connexion PPPoE).
la source