Básicamente, mi red se ve así.
+------+
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 y wlan1 son adaptadores USB Wi-Fi conectados a una computadora portátil
Quiero conectar estas redes a través de mi computadora portátil. Al principio intenté establecer un puente, pero resultó que ese puente no es compatible.
Intenté esto pero no funcionó.
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
Agradecería cualquier ayuda.
Respuesta1
No necesitas dos reglas de enmascaramiento. Sólo necesita enmascarar a un cliente, que tiene su computadora como ruta predeterminada; aplica source-NAT a los paquetes que salen de la interfaz en el lado "WAN".
Si el firewall está en el estado predeterminado, solo necesita esta única regla:
iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
Si las MTU en diferentes redes difieren, es posible que deba aplicar la corrección MSS:
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
(Esto ayuda a resolver problemas como "el ping funciona, los sitios web no" o "algunos sitios funcionan, otros no").
Hay una trampa extremadamente común. Hago esto durante unos 20 años y, a menudo, todavía lo olvido hasta que todo debería funcionar, pero algo no funciona. Debe habilitar explícitamente el reenvío de paquetes en el kernel:
sysctl net.ipv4.ip_forward=1
y configure la misma variable /etc/sysctl.conf
para que se habilite después del arranque.