Ich bin verwirrt, was der eigentliche Unterschied zwischen SNAT und Masquerade ist.
Wenn ich meine Internetverbindung im lokalen Netzwerk freigeben möchte, sollte ich dann SNAT oder Masquerade auswählen?
Für das SNAT
Ziel muss eine IP-Adresse angegeben werden, die für alle ausgehenden Pakete gilt. Mit dem MASQUERADE
Ziel können Sie ihm eine Schnittstelle zuweisen, und jede Adresse auf dieser Schnittstelle ist die Adresse, die auf alle ausgehenden Pakete angewendet wird. Außerdem werden mit SNAT
dem Connection Tracking des Kernels alle Verbindungen nachverfolgt, wenn die Schnittstelle heruntergefahren und wieder hochgefahren wird. Gleiches gilt nicht für das MASQUERADE
Ziel.
Gute Dokumente umfassen die HOWTOs auf der Netfilter-Site und die iptables
Manpage .
-j SNAT
(im Gegensatz zur Verfolgung des Recyclings mit-j MASQUERADE
), wenn eine neue ausgehende Verbindung von einem LAN-Knoten dieselbe Quellportnummer verwendet wie die getrennte ausgehende Verbindung von demselben LAN-Knoten. In diesem Fall kann ich mir vorstellen, dass eingehende Pakete von der alten ausgehenden Verbindung an den Knoten gesendet werden und dessen TCP-Stapel verwirren. Was ist mit -j SNAT, wenn die NAT-Box mit derselben externen IP-Adresse konfiguriert ist und der Kernel weiterhin Pakete von alten Verbindungen weiterleitet, anstatt mit RST zu antworten?Grundsätzlich
SNAT
undMASQUERADE
machen Sie dasselbe wie in der NAT-Tabelle innerhalb der POSTROUTING-Kette.Unterschiede
MASQUERADE
erfordert nicht,--to-source
wie es gemacht wurde, um mit dynamisch zugewiesenen IPs zu arbeitenSNAT
funktioniert nur mit statischen IPs, deshalb hat es--to-source
MASQUERADE
Es hat zusätzlichen Overhead und ist langsamer alsSNAT
jedes Mal,MASQUERADE
wenn ein Ziel von einem Paket getroffen wird, muss es nach der zu verwendenden IP-Adresse suchen.HINWEIS : Ein typischer Anwendungsfall für
MASQUERADE
: Eine AWS EC2-Instanz in einer VPC verfügt über eine private IP innerhalb der VPC-CIDR (z. B. 10.10.1.0/24) - 10.10.1.100. Außerdem verfügt sie über eine öffentliche IP, um mit dieser zu kommunizieren das Internet (vorausgesetzt es befindet sich in einem öffentlichen Subnetz) über welches die private IP 1: 1 NAT. Die öffentliche IP-Adresse kann sich nach dem Neustart der Instanz ändern (wenn es sich NICHT um eine EIP handelt).MASQUERADE
Dies ist in diesem Anwendungsfall die bessere Option.Wichtig: Es ist weiterhin möglich, das
MASQUERADE
Ziel mit statischer IP zu verwenden. Beachten Sie jedoch den zusätzlichen Aufwand.Verweise
iptables Tutorial
NAT Tutorial
quelle