iptables: SNAT und DNAT



  • Hallo Forum,

    ich habe einen Router der sich als DNS und Gateway via DHCP in meinem privaten Netz verbreitet. Leider hat dieser Router keinen DNS Server. Die Pakete müssen also an den wahren Router vom Provider weiter geleitet werden. Dafür habe ich SNAT und DNAT Regeln aufgestellt.

    Ein Computer aus dem Privaten Netz pingt nun "www.google.de" an. Das DNS Paket landet am Router, wird durch SNAT und DNAT Regeln an den Provider Router geleitet. (Absender Adresse ist aber jetzt mein Router) Nun kommt die Antwort vom Provider. Jetzt muß doch irgendwie die Rückübersetzung erfolgen? So daß das DNS Paket an den anfragenden Rechner weiter geleitet wird? Was muß ich da für Regeln schreiben? Und was läuft da automatisch von SNAT und DNAT bezüglich des Rückweges ab?

    Vielen Dank

    Martin

    PS: Das mit dem DNS ist nur ein Beispiel. Ich könnte einen DNS installieren, ich könnte den korrekten DNS im DHCP eintragen oder gleich den DHCP des Provider Routers nehmen.



  • Wenn du 1:1 NAT machst reicht das auch schon.

    Wenn du IP Sharing aka. IP Masquerading betreibst brauchst du natürlich auch noch eine MASQUERADE Regel.



  • Was meinst Du mit 1:1 Nat? Ich habe mehrere private Rechner, diese sollen maskiert werden. Die Firewall hat jedoch in beiden Netzen eine statische IP. Der Anleitung nach würden SNAT und DNAT ausreichen.

    Nahmen wir als Beispiel diese Regel:

    iptables -t nat -A PREROUTING -i wlan0 -d 192.168.1.1 -p udp --dport 53 --sport 1024:65535 -j DNAT --to 192.168.0.1
    

    Alle DNS Pakete aus dem Wlan die an die Firewall/Router selbst gerichtet sind werden an den Internetrouter weitergeleitet. Wenn nun die Antwort kommt muß das Paket ja erneut umgeleitet werden. (An jemanden mit einer IP die ich als Regelersteller nicht kenne.) In der Anleitung steht das das automatisch ablaufen würde. Das ich nichts tun bräuchte. Stimmt das? (Irgendwie funktioniert es bei mir nicht.)



  • Hat sich erledigt. Die forward Regeln hatte ich zwar, sie wurden jedoch nicht ausgeführt. Jetzt geht es. 🙂


Log in to reply