Je suis confus quelle est la différence réelle entre SNAT et Masquerade?
Si je souhaite partager ma connexion Internet sur un réseau local, dois-je choisir SNAT ou Masquerade?
La SNAT
cible nécessite que vous lui donniez une adresse IP à appliquer à tous les paquets sortants. La MASQUERADE
cible vous permet de lui donner une interface, et quelle que soit l'adresse figurant sur cette interface, il s'agit de l'adresse qui est appliquée à tous les paquets sortants. De plus, avec SNAT
, le suivi des connexions du noyau garde une trace de toutes les connexions lorsque l'interface est démontée et réactivée; le même n'est pas vrai pour la MASQUERADE
cible.
Les bons documents incluent les HOWTO sur le site Netfilter et la iptables
page de manuel .
-j SNAT
(par opposition au suivi du recyclage avec-j MASQUERADE
) lorsqu'une nouvelle connexion sortante à partir d'un nœud de réseau local utilise le même numéro de port source que la connexion sortante interrompue à partir du même nœud de réseau local. Dans ce cas, je peux imaginer que les paquets entrants provenant de l'ancienne connexion sortante soient envoyés au nœud, ce qui perturberait sa pile TCP. En ce qui concerne l'avantage de -j SNAT, que se passe-t-il si la boîte NAT est configurée avec la même adresse IP externe et si le noyau continue à transférer les paquets d'anciennes connexions au lieu de répondre avec RST?Fondamentalement
SNAT
,MASQUERADE
faites le même NAT source dans la table nat de la chaîne POSTROUTING.Différences
MASQUERADE
ne nécessite pas,--to-source
car il a été conçu pour fonctionner avec des adresses IP attribuées de manière dynamiqueSNAT
ne fonctionne qu'avec des adresses IP statiques, c'est pourquoi il a--to-source
MASQUERADE
a une surcharge supplémentaire et est plus lent queSNAT
parce que chaque fois que laMASQUERADE
cible est touchée par un paquet, elle doit vérifier l'adresse IP à utiliser.REMARQUE : Un cas d'utilisation typique pour
MASQUERADE
: une instance AWS EC2 dans un VPC, elle possède une adresse IP privée dans le CIDR du VPC (par exemple, 10.10.1.0/24) - 10.10.1.100 par exemple, elle dispose également d'une adresse IP publique permettant de communiquer avec Internet (en supposant qu’il se trouve dans un sous-réseau public) via l’adresse IP privée 1: 1 NAT. L'IP publique peut changer après le redémarrage de l'instance (si ce n'est PAS un EIP),MASQUERADE
est une meilleure option dans ce cas d'utilisation.Important: Il est toujours possible d’utiliser
MASQUERADE
Target avec une adresse IP statique. Il suffit de prendre en compte la surcharge supplémentaire.Les références
Tutoriel iptables
Tutoriel NAT
la source