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.