Enrutamiento entre dos interfaces inalámbricas - Linux

Enrutamiento entre dos interfaces inalámbricas - Linux

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.confpara que se habilite después del arranque.

información relacionada