web-dev-qa-db-fra.com

Différence entre SNAT et Masquerade

Je suis confus quelle est la différence réelle entre SNAT et Masquerade?

Si je veux partager ma connexion Internet sur le réseau local, dois-je sélectionner SNAT ou Masquerade?

40
Chankey Pathak

La cible SNAT nécessite que vous lui donniez une adresse IP à appliquer à tous les paquets sortants. La cible MASQUERADE vous permet de lui donner une interface, et quelle que soit l'adresse sur cette interface, c'est 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 supprimée et rétablie; il n'en va pas de même pour la cible MASQUERADE.

Les bons documents incluent les HOWTOs sur le site Netfilter et la page de manuel iptables .

41
Shawn J. Goff

Fondamentalement, SNAT et MASQUERADE font la même source NAT chose 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 dynamiquement

  • SNAT 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 que SNAT car chaque fois que MASQUERADE la cible est touchée par un paquet, il doit vérifier l'adresse IP à utiliser.

[~ # ~] note [~ # ~] : un cas d'utilisation typique pour MASQUERADE: instance AWS EC2 dans un VPC, il a une adresse IP privée dans le VPC CIDR (par exemple 10.10.1.0/24) - 10.10.1.100 par exemple, il a également une adresse IP publique afin de communiquer avec Internet (en supposant qu'il se trouve dans un sous-réseau public) via lequel l'adresse IP privée 1: 1 NAT. L'IP publique peut changer après le redémarrage de l'instance (s'il ne s'agit PAS d'un EIP), MASQUERADE est une meilleure option dans ce cas d'utilisation.

Important: Il est toujours possible d'utiliser la cible MASQUERADE avec une adresse IP statique, soyez simplement conscient de la surcharge supplémentaire.

Références

21
Terry Wang

Réponse courte: utilisez SNAT

Explication: Je viens d'essayer de supprimer la règle de mascarade sur mon routeur raspbian (qui parle à un autre routeur, via eth0 où l'adresse IP de l'interface est 192.168.8.2 et est statique) et le partage Internet a continué à fonctionner. Les commandes que j'ai essayées étaient: -

iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.8.2
0
Rebroad