Linux Route Add zwischen statischem LAN und Wifi Gateway

2

Ich habe zwei lokale Computer, die über ein kabelgebundenes Ethernet miteinander verbunden sind, und einer dieser Computer ist auch mit einem WLAN-Netzwerk verbunden, das Internetzugang bietet.

Eine pseudografische Darstellung der Topologie sieht wie folgt aus:

(PC2)----------(PC1)---------(Wifi Gateway)
    192.168.2.x      10.0.0.x

Die Konfiguration auf PC2 ist:

iface eth0 inet static
address 192.168.2.2
network 192.168.2.0
netmask 255.255.255.0
gateway 192.168.2.1

... und die Konfiguration auf PC1 ist:

iface eth0 inet static
address 192.168.2.1
network 192.168.2.0
netmask 255.255.255.0
gateway 192.168.2.1

Auf PC1 habe ich eine Standardroute für wlan0 hinzugefügt, da ich sonst nicht auf das Internet zugreifen könnte:

route add default gw 10.0.0.1 wlan0

Außerdem wurde versucht, das Gateway für das Netzwerk 192.168.2.x wie folgt einzustellen:

route add -net 192.168.2.0 netmask 255.255.255.0 gw 10.0.0.1

Aber ich kann immer noch nicht über PC2 auf das Internet zugreifen.


Bearbeiten

Ich habe keinen Zugang zum WLAN-Gateway.

Hamza
quelle

Antworten:

2

Auf Ihrer PC1 eth0-Schnittstelle sollte kein Gateway definiert sein - dies entspricht dem Festlegen einer Standardroute. Wenn also die Standardroute auf 10.0.0.1 festgelegt ist, werden die Hälfte Ihrer Pakete in die falsche Richtung gesendet.

Damit PC1 als Router für PC2 fungieren kann, müssen Sie die Paketweiterleitung aktivieren. Dies kann wie folgt aktiviert werden:

sudo sysctl -w net.ipvt.ip_forward=1

Und um einen Neustart zu überstehen, müssen Sie Änderungen vornehmen /etc/sysctl.conf und füge find the line hinzu

#net.ipv4.ip_forward=1

und kommentiere es aus (oder füge es hinzu, wenn es nicht vorhanden ist, oder ändere es in 1 wenn es vorhanden ist, aber auf 0 )

Schließlich müssen Sie das WLAN-Gateway auf 10.0.0.1 ändern und eine statische Route hinzufügen. Das Gateway für das Netzwerk 192.168.2.0/24 ist die PC1-IP-Adresse im Bereich 10.0.0.0/24 (ich nehme an, es ist wahrscheinlich 10.0) .0.2).

Oh, wo immer du hinzugefügt hast

route add -net 192.168.2.0 netmask 255.255.255.0 gw 10.0.0.1
  • Sie sollten es entfernen - auf das Netzwerk 192.168.2.0/24 wird nicht über den WLAN-Router zugegriffen.
Paul
quelle
Vielen Dank für Ihre Antwort. Ich hätte erwähnen sollen, dass ich keinen Zugriff auf das WLAN-Gateway habe und daher keine statische Route hinzufügen kann.
Hamza
2

Sie möchten die Internetverbindung von PC1 freigeben (mithilfe von Masquerading).

Sie können viele Anleitungen online finden, um dies zu tun, aber hier ist eine Zusammenfassung:

Löschen Sie zunächst die vorhandenen Firewall-Regeln:

iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X

Konfigurieren Sie dann iptables für die NAT-Übersetzung:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Führen Sie Folgendes aus, um sicherzustellen, dass die IP-Tabellen beim Start wiederhergestellt werden iptables-save | tee /etc/iptables.sav und bearbeiten /etc/rc.local und fügen Sie die folgenden Zeilen vor der Zeile "exit 0" hinzu: iptables-restore < /etc/iptables.sav

IP-Weiterleitung aktivieren:

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

Unter Ubuntu musst du auch bearbeiten /etc/sysctl.conf und unkommentiert:

 #net.ipv4.ip_forward=1

Auf PC2 sollten Sie auch Folgendes tun:

 ip route add default via 192.168.2.1
m4573r
quelle
Danke, aber ich kann es scheinbar nicht zum Laufen bringen. service iptables save Der Retouren-Service ist nicht definiert (ich bin auf Debian Wheezy) und nachdem ich das Thema gelesen habe, muss ich es in einer Datei speichern und über wieder laden iptables-restore. iptables -L gibt die Regel auch nach dem Hinzufügen nicht zurück.
Hamza
Für Ihren zweiten Punkt möchten Sie verwenden iptables -t nat -L.
m4573r
Zum Speichern von iptables können Sie in der Tat Folgendes verwenden: iptables-save | tee /etc/iptables.sav und bearbeiten /etc/rc.local und fügen Sie die folgenden Zeilen vor der Zeile "exit 0" hinzu: iptables-restore < /etc/iptables.sav
m4573r
1
@ m4573r Bitte fügen Sie Ihrer Antwort zusätzliche Details hinzu und nicht in den Kommentaren bearbeiten
Paul