Acceso a Internet en red interna con IPTables

Acceso a Internet en red interna con IPTables

En una nube privada que estoy configurando, tengo algunas máquinas virtuales RHEL, redes y un enrutador en OpenStack. Mi enrutador está conectado a la Internet pública y mi nodo de puerta de enlace está conectado al enrutador y tiene acceso a Internet a través de eth0. El nodo está conectado a la red interna en eth1. Tengo algunos nodos RHEL internos conectados a la red interna en sus interfaces eth0. Todos los nodos pueden hacer ping entre sí y creo que los archivos ifcfg para cada nodo están configurados correctamente.

Usando IPTables, intenté dar acceso a Internet a los nodos internos mediante:

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT  
iptables -A FORWARD -i eth0 -o eth1 -m conntrack -ctstate ESTABLISHED,RELATED -j ACCEPT  
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

También habilité el reenvío ipv4 (deshabilitado de forma predeterminada) en el nivel del kernel. Después de guardar la configuración y realizar SSH en un nodo interno, no puedo hacer ping a direcciones externas:

# ping 8.8.8.8
connect: Network is unreachable

Mi enrutador en openstack tiene una ruta estática con
Destino CIDR: mi red interna
Próximo salto: mi nodo de puerta de enlace

¿Por qué no puedo obtener acceso a Internet en mis nodos internos? ¿Que me estoy perdiendo aqui?

Respuesta1

Podría ser que no hayas habilitado el reenvío en el kernel.

Intentar

echo 1 > /proc/sys/net/ipv4/forward

Si eso resuelve el problema, hágalo permanente editando /etc/sysctl.conf y agregando la línea

net.ipv4.ip_forward = 1

Respuesta2

Network is unreachablesignifica que no hay una ruta definida para llegar a 8.8.8.8. Lo más probable es que se trate de un problema devuelto directamente por la VM y que se encuentra en la VM, no en el host.

OpenStack tiene muchas configuraciones de red posibles diferentes. Simplemente escribió "redes" y no proporcionó ninguna información sobre las IP de las máquinas virtuales. Con la esperanza de que no haya una configuración desconocida (redes intermedias con NAT intermedias realizadas), en cada VM debe agregar una ruta predeterminada a través de la IP configurada en la eth1interfaz de su enrutador. si esta IP fuera, por ejemplo, 10.0.2.1, entonces esto sería suficiente:

ip route add default via 10.0.2.1

Para configuraciones permanentes, debe agregarse en su archivo de configuración específico (verRutas estáticas y puerta de enlace predeterminadade RedHat).

información relacionada