Reenviar paquetes desde un dominio específico (TLD) a una determinada máquina en la red usando iptables

Reenviar paquetes desde un dominio específico (TLD) a una determinada máquina en la red usando iptables

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.

información relacionada