Soy nuevo en NAT e iptables, tengo mi servidor físico ejecutando CentOS 6 con KVM instalado, 2 cajas de Linux más se inician como VM: VM2 y VM3, y su IP es 192.168.122.2 y 192.168.122.3 en consecuencia. Como solo tengo una IP real, NAT se usa para reenviar solicitudes externas de puertos a la aplicación de VM, por ejemplo, el puerto 30022 al ssh de VM3 (puerto 22). Después de la configuración, todo funciona bien, ya lleva un mes funcionando, pero luego de actualizar la RAM y reiniciar el servidor, NAT/reenvío de puerto no vuelve a funcionar.
Más información:
- Iptables que se ejecutan en el sistema operativo host pero NO en los sistemas operativos invitados.
- El sistema operativo host iptables ha configurado NAT de la siguiente manera:
objetivo beneficio opt fuente destino DNAT tcp: en cualquier lugar, en cualquier lugar, tcp dpt:30022 a:192.168.122.3:22 DNAT tcp: en cualquier lugar, en cualquier lugar, tcp dpt:20022 a:192.168.122.2:22(22)
- Resultado del comando iptables -t nat -L -v -n:
paquetes bytes destino prot optar por salir origen destino 6 304 LOG tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:30022 LOG flags 0 nivel 4 prefijo RUTA APP3 6 304 DNAT tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:30022 a:192.168.122.3:22 3 152 DNAT tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:20022 a:192.168.122.2:22
- Eso significa que el paquete es manejado por la regla NAT mientras intento hacer telnet 30022 desde mi PC local (red separada)
He tenido problemas durante unos días... ¿alguna ayuda?
Respuesta1
Debe verificar que el reenvío de IP esté habilitado en su host usando cat /proc/sys/net/ipv4/ip_forward
. Este comando debería imprimir 1
. Si no está habilitado, debes habilitarlo usando echo 1 > /proc/sys/net/ipv4/ip_forward
.