Unterschied zwischen MASQUERADE, SNAT und DNAT

Was ist der Unterschied zwischen MASQUERADE, SNAT und DNAT?

MASQUERADE und SNAT

MASQUERADE und SNAT sind im Prinzip, das gleiche, beide ersetzen die Absender-Adresse mit der (öffentlichen) Adresse gateways.

Der Unterschied ist lediglich, dass man bei SNAT die externe IP angeben muss; bei MASQUERADE kann man ein Interface Angeben und es wird automatisch immer die IP dieses Interfaces (Netzwerkkarte) genutzt. Letzteres ist natürlich sehr geeignet wenn man die externe Adresse vom Provider per DHCP bezieht und diese sich von Zeit zu Zeit ändert. 😉
Hat man hingegen eine statische öffentliche IP, sollte man SNAT benutzen: Da es nicht immer erst prüfen muss, was für eine IP das Interface hat, ist SNAT etwas schneller als MASQUERADE.

So kann man entweder:

iptables -A POSTROUTING -o eth0 -j SNAT --to-source $EXT-IP

oder

iptables -A POSTROUTING -o eth0 -j MASQUERADE

benutzen um die Internetverbindung eines Gateway mit internen hosts zu teilen.

DNAT

DNAT ersetzt nicht die Absender-, sondern die Empfänger-Adresse und wird üblicherweise für Port-Forwarding verwendet.
Will man beispielsweise im Gateway alle Anfragen auf die öffentliche IP-Adresse (eth0) vom Port 80 zum internen Server mit der IP: 192.168.100.10 weiterleiten, so würde die iptables Regel so aussehen:

iptables -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.100.10:80

weiter müsste man dann noch eine entsprechende FORWARD Regel machen:

iptables -A FORWARD -i eth0 -p tcp -m state --state NEW --dport 80 -j ACCEPT

Quellen

  • Difference between SNAT and Masquerade
  • Redirect all incoming traffic from a secondary public IP to an internal IP address using iptables
  • Published by

    Steven Varco

    Steven ist ein Redhat RHCE-Zertifizierter Linux-Crack und ist seit über 10 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.