iptables를 사용하여 특정 도메인(TLD)에서 네트워크의 특정 시스템으로 패킷 전달

iptables를 사용하여 특정 도메인(TLD)에서 네트워크의 특정 시스템으로 패킷 전달

다음 명령을 사용하여 포트 포워딩을 수행할 수 있습니다.

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

XXX.XXX.XXX.XXX와 같은 IP 주소 대신 도메인 이름을 겨냥한 패킷 전달이 가능한 경우 사용하고 싶었습니다.

예를 들어, 다음과 같은 작업을 수행하고 작동하게 할 수 있습니까? 내 것은 작동하지 않습니다!

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 수준의 도메인 이름을 대상으로 하지 않습니다.

요청을 다른 호스트/포트로 리디렉션해야 하는 경우 일종의 로드 밸런서(예: ProxyPass가 있는 Apache)를 사용해야 합니다.

답변2

아니, 그런 일은 할 수 없습니다. netfilter 규칙에는 DNS 이름이 허용되지 않습니다. 이는 TCP/IP 및 ICMP 수준에만 적용됩니다.

관련 정보