Puedo reenviar puertos usando los siguientes comandos:
iptables -t nat -A PREROUTING -p tcp -d XXX.XXX.XXX.XXX --dport 80 -j DNAT --to 192.168.161.31:80
iptables -t nat -A POSTROUTING -d 192.168.161.31 -j MASQUERADE
Quería usar si es posible reenviar paquetes dirigidos a un nombre de dominio en lugar de una dirección IP como XXX.XXX.XXX.XXX.
Por ejemplo, ¿se puede hacer algo como lo siguiente y hacerlo funcionar? ¡El mío no funciona!
iptables -t nat -A PREROUTING -p tcp -d XXX.XXX.XXX.XXX --dport 80 -j DNAT --to 192.168.161.31:80
iptables -t nat -A PREROUTING -p tcp -d www.example.com --dport 80 -j DNAT --to 192.168.161.32:80
Tenga en cuenta que los comandos anteriores deben reenviarse a diferentes máquinas.
Respuesta1
No, no es posible. Los paquetes nunca están dirigidos a nombres de dominio en el nivel TCP/IP.
Necesitará usar algún tipo de balanceador de carga (Apache con ProxyPass, por ejemplo) si necesita redirigir solicitudes a otro host/puerto.
Respuesta2
No, no puedes hacer algo así. Los nombres DNS no están permitidos en las reglas de Netfilter. Sólo se aplican en los niveles TCP/IP e ICMP.