Iptables - DNAT Traffic auf anderen Server leiten?

Hallo,

eine Frage für die Experten. Ich möchte gerne von meinem einen Root Server auf den anderen mehr oder weniger allen Traffic bzw. den auf Port 80 (http) umleiten.

iptables -t nat -A PREROUTING -i $IFACE_EXT -p tcp -d xxx.xxx.xxx.xxx -j DNAT --to-destination yyy.yyy.yyy.yyy

Nur leider funktioniert dieses iptables Regel irgendwie nicht. Mir ist allerdings nicht klar warum. Ziel ist der Traffic der auf dem Rechner XXX ankommt, auf dem auch die Iptables Regel installiert ist, soll dann den Traffic auf den zweiten Server YYY transparent umleiten.

Was könnte da nicht funktionieren. Muss evtl. auch auf dem Rechner yyy ein SNAT installiert sein der sozusagen dann die Daten auch wieder korrekt zurücksendet? Ich habe mit TCPDUMP etwas „mitgelauscht“ es scheint aber, als würde der Traffic schon garnicht erst auf den anderen REchner umgeleitet werden. Irgendwas stimmt da nicht.

Bin für Expertenrat sehr dankbar!!
Danke
Julian

Hallo,

Morgen,

eine Frage für die Experten.

Ui, ich weiss nicht, ob wir welche finden werden. Einstweilen versuch ich es.

Ich möchte gerne von meinem einen Root Server auf den
anderen mehr oder weniger allen Traffic bzw. den auf Port
80 (http) umleiten.

Bisst Du sicher, dass Du nicht mod_rewrite verwenden willst? Bist Du sicher, dass Du nicht einfach nur einen HTTP-Location-Header senden willst?

> iptables -t nat -A PREROUTING -i $IFACE\_EXT -p tcp -d xxx.xxx.xxx.xxx -j DNAT --to-destination yyy.yyy.yyy.yyy

Nur leider funktioniert dieses iptables Regel irgendwie nicht.

Ach.

Mir ist allerdings nicht klar warum.

Weil den Client ploetzlich einer von der Seite anquatscht, von dem er gar nicht mit Antwort gerechnet hat. Der andere HTTP-Server antwortet doch ploetzlich, der Client erwartet seine Antwort aber vom originalen. Merke: eine TCP-Verbindung besteht immer aus dem Tupel srcip, srcport, dstip, dstport. Du hast jetzt die dstip einfach gaendert.

Du musst dafuer sorgen, dass die Verbindung auch wieder ueber den originalen Webserver zurueckgeht, damit er seine Veraenderungen am Paket wieder rueckgaengig machen kann. Ja, Traffic sparst Du damit also nicht, jedenfalls nicht am Interface. Der Webserver sieht weniger.

Was könnte da nicht funktionieren. Muss evtl. auch auf dem
Rechner yyy ein SNAT installiert sein der sozusagen dann die
Daten auch wieder korrekt zurücksendet?

Nein. Oder? Hm, gute Frage, vielleicht. Wenn Du dort die srcip wieder zurueckaenderst auf den originalen Webserver… wirft natuerlich die aus der Bahn, die sich direkt an ihn gewendet haben… aber koennte gehen. Versuch das mal. Die Loesung lt. Lehrbuch steht hier: http://iptables-tutorial.frozentux.net/iptables-tuto…

Ich habe mit TCPDUMP etwas „mitgelauscht“ es scheint aber, als
würde der Traffic schon garnicht erst auf den anderen REchner
umgeleitet werden. Irgendwas stimmt da nicht.

Wo hast Du gelauscht? Matcht denn die Regel auf dem originalen Rechner? Geht dort deren packet counter hoch?

Bin für Expertenrat sehr dankbar!!

Ich schick ihn her, wenn mir einer ueber den Weg laeuft.

HTH,
Gruss vom Frank.