iptables - destination-based routing

  • Mal wieder iptables.


    Man stelle sich einen ESX-Server vor, der im Internet steht. Auf diesem laufen mehrere virtuelle Maschinen, die diverse Aufgaben im Netz zur Verfügung stellen sollen. Nun hat #owner 3 öffentliche feste IP-Adressen, die auf eine Routing-VM auf dem ESX geleitet werden - diese Routing-VM soll dann (je nachdem, mit welcher Ziel-IP-Adresse das Paket hereinkam) die Pakete an unterschiedliche interne VM's weiterleiten.
    Beispiel:
    Paket A hat dst 20.20.20.1:80 -> wird geroutet an 192.168.200.5:80
    Paket A hat dst 40.20.66.4:80 -> wird geroutet an 192.168.200.10:80


    Bisheriger Versuch war:
    iptables -t nat -A PREROUTING -p tcp -i eth3 --dst *** --dport 80 -j DNAT --to-destination ***
    (und zusätzliche wieder-raus-dinger freigegeben)


    Hat jemand sowas schonmal gemacht oder eine Idee oder einen Link? Google kennt einiges zu destination-based routing, aber nichts, was mir weiterhilft...

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."

  • Uh? Ja, mein ---to-destination sieht aus 1.2.3.4:80

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."

    Einmal editiert, zuletzt von Mjolnir ()

  • Hum. Doof gefragt - wie meinen? Kannst du das beispielisieren?

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."

  • naja du hast drei ips und somit drei netzwerkkarten.


    da du nicht mit sorces arbeiten kannst (dafür müsstest du wissen welcher server dir was schickt) hat jede karte die eigene IP und dann läuft das wie folgt:


    iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to-destination 1.2.3.4:80


    iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 80 -j DNAT --to-destination 1.2.3.5:80


    iptables -t nat -A PREROUTING -p tcp -i eth2 --dport 80 -j DNAT --to-destination 1.2.3.6:80

  • Mhm. Klingt eigentlich logisch - schonmal vielen Dank.
    Aaaaaber mein Rouiting will immer noch nicht :/


    Habe nun als Regelsatz:
    iptables -A output -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


    iptables -t nat -A PREROUTING -p tcp -i eth3 --dport 80 -j DNAT --to-destination 1.2.3.4:80


    iptables -t nat -A POSTROUTING -o eth3 -j MASQUERADE


    iptables -A FORWARD -s 1.2.3.4/24 -j ACCEPT


    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT


    Eine Idee, was noch fehlt? Ich denke eigentlich, ich habe alles abgedeckt...

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."

  • Sorry, darum wollte ich auch nicht bitten. Hast mir schon geholfen - vielen Dank.

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."