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

Herramientas personales