Iptables - DNAT Traffic auf anderen Server leiten?

Von: , Frage gestellt am Mo, 17. Jul 2006

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

1 Antworten zu dieser Frage

  1. Antwort von nach 3 Stunden 0 hilfreich
    Re: Iptables - DNAT Traffic auf anderen Server lei

    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.
    <Loriot>Ach.</Loriot> 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.

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!