Cuando un paquete IP se recibe por una
interfaz física, el modulo IP de entrada (IPinput ) procesa el paquete.
Si la dirección IP destino del paquete se corresponde con la del
dispositivo se procesa el paquete y se pasa al modulo TCPinput.
En
caso de que la dirección IP destino no se corresponda con la del
dispositivo y
el módulo IP forwarding está desactivado, el paquete IP se
descarta.
En el caso de que la
dirección IP destino no se corresponda con la del dispositivo y el
módulo IP forwarding esté activado, se pasa el paquete al módulo IP de
salida (IPoutput ), se consulta la tabla de encaminamiento y el paquete
se retransmite por la interfaz correspondiente.
Imaginemos el escenario de la imagen. Tenemos uno o varios ordenadores en nuestra red (da igual que sistema operativo sean) y queremos que compartan una IP de salida a internet (o a otra red cualquiera). Lo que haremos es decirles a los equipos locales que su router es la ip del equipo con Linux:
Equipo Linux:
tarjeta de red 1: 10.10.0.1
tarjeta de red 2: DHCP con nuestro proveedor de Internet
IP Local 1:
tarjeta de red 1: 10.10.0.2 (Con router apuntando a 10.10.0.1)
IP Local 2:
tarjeta de red 1: 10.10.0.3 (Con router apuntando a 10.10.0.1)
Al equipo Linux le vamos a decir que todos los paquetes que provengan de la red 10.10.0.x (que recibiremos por su tarjeta de red 1) nos los encamine a otra red, internet o la que sea, sacando los paquetes por su tarjeta de red 2. Para ello lo haremos de la siguiente manera:
Modificamos el valor booleano de /proc/sys/net/ipv4/ip_forward
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
Descomentamos, modificamos o añadimos la siguiente linea en /etc/sysctl.conf
net.ipv4.ip_forward=1
Aplicamos los cambios con
sysctl -p
Y ahora enrutamos los paquetes segun nuestras redes:
iptables -F iptables -F -t nat iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADE iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Para listar las normas introducidas (y comprobar que estan bien aplicadas);
iptables -L iptables -L -t nat
Con esto ya queda funcionando nuestro Linux (Ubuntu,Fedora,Debian) en modo router.

No hay comentarios:
Publicar un comentario