Пересылка пакетов из определенного домена (TLD) на определенную машину в сети с помощью iptables

Пересылка пакетов из определенного домена (TLD) на определенную машину в сети с помощью iptables

Я могу перенаправить порт, используя следующие команды:

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

Я хотел узнать, возможно ли пересылать пакеты, нацеленные на доменное имя, а не на IP-адрес, например XXX.XXX.XXX.XXX.

Например, можно ли сделать что-то вроде следующего и заставить это работать? У меня не работает!

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

Обратите внимание, что предыдущие команды должны быть перенаправлены на разные машины.

решение1

Нет, это невозможно. Пакеты никогда не нацелены на доменные имена на уровне TCP/IP.

Вам понадобится использовать какой-либо балансировщик нагрузки (например, Apache с ProxyPass), если вам нужно перенаправить запросы на другой хост/порт.

решение2

Нет, вы не можете сделать что-то подобное. DNS-имена не допускаются в правилах netfilter. Они применяются только на уровнях TCP/IP и ICMP.

Связанный контент