Compartir internet entre dos redes usando linux como enrutador
De Guifi.net - Wiki Hispano
Vamos a enrutar un ordenador conectado a una red tipo 192.168.30.0/24 a una red 192.168.1.0/24 usando un host linux que esta conectado con dos interfaces a las dos. En la 192.168.1.1 esta la salida a internet.
El caso de ejemplo son un ordenador con conexion wifi a internet y otro solo con ethernet. La idea es compartir internet a traves del primero.
[LINUX1--192.168.30.101]---[192.168.30.103--LINUX2--192.168.1.33]---[192.168.1.1-router]---[Internet]
Para ello tenemos lo siguiente
1- Host linux1 con ip 192.168.30.101 eth1
2- Host linux2 con ip 192.168.30.103 eth0 ip 192.168.1.33 wlan0 En el host LINUX1 crearemos una ruta estatica hacia LINUX2
sudo route default gw 192.168.30.103
Rutas estaticas
LINUX1
Tabla de rutas IP del núcleo
Destino Pasarela Genmask Indic Métric Ref Uso Interfaz
192.168.30.0 * 255.255.255.0 U 2 0 0 eth1
link-local * 255.255.0.0 U 1000 0 0 eth1
default 192.168.30.103 0.0.0.0 UG 0 0 0 eth1
las rutas de LINUX2 son las siguientes:
192.168.1.0 * 255.255.255.0 U 0 0 0 wlan0
192.168.30.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 wlan0
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
Ya tendriamos enrutado LINUX1 hacia la red 192.168.1.0/24 a traves de LINUX2
Mirar si tenemos ipfordwarding activado
sysctl net.ipv4.ip_forward
activamos ipfordwarding
sudo sysctl -w net.ipv4.ip_forward=1
NAT a traves de iptables para hacer que LINUX1 salga a traves de LINUX2 con la ip 192.168.1.33
sudo iptables -t nat -A POSTROUTING -o wlan0 -j SNAT --to 192.168.1.33 Ya deberiamos tener acceso a internet desde LINUX1 ;)
UTILES
AÑADIR/BORRAR enrutamientos
ej1 192.168.30.0 * 255.255.255.0 U 0 0 0 eth0
sudo route add/del -net 192.168.30.0/24 eth0
ej2
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
sudo route add/del default gw 192.168.1.1
MIRAR tabla nat
sudo iptables -t nat -L
BORRAR tabla nat
sudo iptables -t nat --flush