Ich kann die Portweiterleitung mit den folgenden Befehlen durchführen:
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
Ich wollte prüfen, ob es möglich ist, Pakete weiterzuleiten, die an einen Domänennamen statt an eine IP-Adresse wie XXX.XXX.XXX.XXX gerichtet sind.
Kann man zum Beispiel so etwas wie das Folgende machen und es funktioniert? Bei mir funktioniert es nicht!
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
Bitte beachten Sie, dass die vorhergehenden Befehle an unterschiedliche Maschinen weitergeleitet werden sollten.
Antwort1
Nein, das ist nicht möglich. Pakete sind auf TCP/IP-Ebene nie auf Domänennamen ausgerichtet.
Sie müssen eine Art Lastenausgleich verwenden (z. B. Apache mit ProxyPass), wenn Sie Anfragen an einen anderen Host/Port umleiten müssen.
Antwort2
Nein, so etwas können Sie nicht tun. DNS-Namen sind in Netfilter-Regeln nicht zulässig. Sie gelten nur auf TCP/IP- und ICMP-Ebene.