El mecanismo de “IP forwarding” se encarga de la retransmisión de los paquetes que se reciben por una interfaz física y de retransmitirlos por otra interfaz hacia otro nodo.
(Fuente Universitat Politècnica Catalunya)
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
Descomentamos, modificamos o añadimos la siguiente linea en /etc/sysctl.conf
Aplicamos los cambios con
Y ahora enrutamos los paquetes segun nuestras redes:
Para listar las normas introducidas (y comprobar que estan bien aplicadas);
Con esto ya tendremos funcionando nuestro Linux como un router.
NOTA: En un artículo anterior explicaba como hacer IP Forwarding con OpenWRT.
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.
(Fuente Universitat Politècnica Catalunya)
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 tendremos funcionando nuestro Linux como un router.
NOTA: En un artículo anterior explicaba como hacer IP Forwarding con OpenWRT.
No hay comentarios:
Publicar un comentario