Esta pregunta está relacionada con la respuesta y el comentario en¿Qué es el reenvío de IP del kernel?
de @LawrenceC
publicación 1:
Entonces, en el ejemplo anterior, si tiene una conexión a Internet en la NIC 2, configurará la NIC 2 como su ruta predeterminada y luego cualquier tráfico que ingrese desde la NIC 1 que no esté destinado a algo en 192.168.2.0/24 irá a través de la NIC 2.
y también post2:
la interfaz orientada a Internet (NIC 1 según lo anterior) necesita una regla MASQUERADE en POSTROUTING de iptables en una cadena para hacer eso. Ver revsys.com/writings/quicktips/nat.html
Enhttp://www.revsys.com/writings/quicktips/nat.htmldice:
Luego necesitarás configurar iptables para reenviar los paquetes desde tu red interna, en /dev/eth1, a tu red externa en /dev/eth0.
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE /sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT /sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
¿Por qué usaría FORWARD
(segúnpublicación2) si el reenvío ya se realizó con solo configurar ip_forward
(segúnpublicación1):
echo 1 > /proc/sys/net/ipv4/ip_forward
Respuesta1
La configuración ip_forward
permite el reenvío de paquetesen general. Algunas distribuciones de Linux pueden no permitir paquetes reenviados iptables
por razones de seguridad, por ejemplo, si ip_forward
se configura por error.
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
establece una regla para permitir paquetes de eth0
a eth1
que sean respuestas o paquetes relacionados de manera similar a una conexión ya establecida.
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
establece una regla explícita para permitir paquetes desde eth1
hasta eth0
.
Esto permite a los clientes eth1
acceder a los servidores detrás eth0
independientemente de la iptables
configuración predeterminada.