Routing zwischen zwei drahtlosen Schnittstellen – Linux

Routing zwischen zwei drahtlosen Schnittstellen – Linux

Im Grunde sieht mein Netzwerk so aus

                            +------+
  10.0.0.10 ------ 10.0.0.1=|Laptop|=11.0.0.11 ------ 11.0.0.1 
(wlan0,client)    (AP,wlan0)+------+(wlan1,client)        (AP)

wlan0 und wlan1 sind USB-WLAN-Adapter, die an den Laptop angeschlossen sind

Ich möchte diese Netzwerke über meinen Laptop verbinden. Zuerst habe ich versucht, Bridging zu verwenden, aber es stellte sich heraus, dass Bridging nicht unterstützt wird.

Ich habe das versucht, aber es hat nicht funktioniert.

iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT
iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE

Ich wäre für jede Hilfe dankbar.

Antwort1

Sie benötigen keine zwei Maskierungsregeln. Sie müssen nur einen Client maskieren, der Ihren Computer als Standardroute hat; Sie wenden Source-NAT auf Pakete an, die die Schnittstelle auf der „WAN“-Seite verlassen.

Wenn die Firewall im Standardzustand ist, benötigen Sie nur diese eine Regel:

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

Wenn die MTU in verschiedenen Netzwerken unterschiedlich ist, müssen Sie möglicherweise einen MSS-Fix anwenden:

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu   

(Dies hilft bei der Lösung von Problemen wie „Ping funktioniert, Websites nicht“ oder „Einige Websites funktionieren, andere nicht“).

Es gibt einen extrem häufigen Haken. Ich mache das seit ungefähr 20 Jahren und vergesse es immer noch oft, bis alles funktionieren sollte, aber etwas nicht funktioniert. Sie müssen die Paketweiterleitung im Kernel explizit aktivieren:

sysctl net.ipv4.ip_forward=1

und legen Sie die gleiche Variable fest, /etc/sysctl.confdamit es nach dem Booten aktiviert wird.

verwandte Informationen