ANMERKUNG: Wenn Clientgeräte (
computer B
in diesem Beispiel) über den Gateway-Computer Internet beziehen möchten, müssen sie möglicherweise noch die Nameserver-Auflösung konfigurieren. Dies wird hier nicht erläutert (ein Gateway muss nicht unbedingt das Internet bedienen).
Ich versuche, die Grundlagen des Netzwerkroutings zu verstehen.
Ich experimentiere also mit meinem LAN (ich brauche im Moment kein Internet, nur LAN-Kommunikation).
Ich weiß, dass die Netzwerkkonfiguration ziemlich komplex ist, aber ich versuche nur, einen Computer (z. B. A) als Gateway für einen anderen (z. B. B) zu verwenden (beide mit Ubuntu Linux).
Ich brauche nur B, um den Router zu erreichen, der nur für A erreichbar ist.
Das ist der Fall:
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
Computer A stellt eine Verbindung zum Router her .
Computer A und B verbinden fein (ping, SSH ... etc) zwischen ihnen .
Computer B kann den Router für Computer A nicht erreichen .
Ich dachte, dass nur das Hinzufügen von Computer A auf B als Standardgateway und das Aktivieren der IP-Weiterleitung auf A dazu führen würde, dass B in der Lage ist, den Router für A zu erreichen:
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
Und auf Computer A (dem Zwischengateway):
root@ComputerA:~$ echo 1 > /proc/sys/net/ipv4/ip_forward
Computer B kann immer noch Computer A anpingen, aber Router für A antwortet nicht:
luis@ComputerB:~$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
^C
(Keine Ping-Antwort)
Ist dies das richtige Verfahren , um einen Computer unter Linux auf einfache Weise als Gateway für einen anderen Computer zu verwenden?
quelle
Damit das Routing zwischen zwei Linux-Computern, die als Gateways fungieren, ordnungsgemäß funktioniert, müssen verschiedene Voraussetzungen erfüllt sein:
Zu beiden Schnittstellen des Routers müssen Routen hinzugefügt werden.
Für das entfernte Netzwerk muss auf beiden Gateways ein lokales Gateway angegeben werden. Dadurch können Computer im lokalen Netzwerk wissen, wohin Pakete für das Remotenetzwerk gesendet werden sollen. Das Gateway sollte die IP-Adresse des Computers sein, der Pakete an das Remote-Netzwerk sendet.
IP-Masquerading muss aktiviert sein, damit NAT zwischen den Gateways funktioniert.
Möglicherweise müssen Sie eine Quelle und ein Ziel angeben, da Sie für die Maskierung dieselbe Schnittstelle verwenden:
und das andere Gateway:
Für jedes Gateway sollte der lokale Netzwerkverkehr auf der entsprechenden Schnittstelle wie folgt akzeptiert werden:
oder
Es gibt zahlreiche Links und ähnliche Fragen, auf die verwiesen werden kann, um Ihre Probleme zu lösen.
In diesem speziellen Fall scheint es falsch zu sein, dass die Routen- und Gateway-Einrichtung auf beiden Computern nicht abgeschlossen ist und die Netzwerkadressübersetzung (Network Address Translation, NAT) nicht mit iptables aktiviert wurde, sodass die Gateways die Anforderung von einem Computer im anderen Subnetz übertragen können in ihrem Namen.
Dies ist auch beim Einrichten einer Internetverbindung von entscheidender Bedeutung, da Sie für ein Ende der Verbindung verantwortlich sind (z. B. die Verwendung eines Linux-Computers als Gateway für eine PPPoE-Verbindung).
quelle