Encaminhando pacotes de um domínio específico (TLD) para uma determinada máquina na rede usando iptables

Encaminhando pacotes de um domínio específico (TLD) para uma determinada máquina na rede usando iptables

Consigo encaminhar a porta usando os seguintes 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

Eu queria usar se é possível encaminhar pacotes direcionados a um nome de domínio em vez de um endereço IP como XXX.XXX.XXX.XXX.

Por exemplo, alguém pode fazer algo como o seguinte e fazê-lo funcionar? O meu não 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

Observe que os comandos anteriores devem encaminhar para máquinas diferentes.

Responder1

Não, não é possível. Os pacotes nunca são direcionados a nomes de domínio no nível TCP/IP.

Você precisará usar algum tipo de balanceador de carga (Apache com ProxyPass, por exemplo) se precisar redirecionar solicitações para outro host/porta.

Responder2

Não, você não pode fazer algo assim. Nomes DNS não são permitidos nas regras do netfilter. Eles se aplicam apenas aos níveis TCP/IP e ICMP.

informação relacionada