Estoy confundido, ¿cuál es la diferencia real entre SNAT y Masquerade?
Si quiero compartir mi conexión a Internet en la red local, ¿debería seleccionar SNAT o Masquerade?
El SNAT
objetivo requiere que le dé una dirección IP para que se aplique a todos los paquetes salientes. El MASQUERADE
destino le permite darle una interfaz, y cualquier dirección que esté en esa interfaz es la dirección que se aplica a todos los paquetes salientes. Además, con SNAT
el seguimiento de conexión del núcleo se realiza un seguimiento de todas las conexiones cuando la interfaz se desactiva y se vuelve a activar; lo mismo no es cierto para el MASQUERADE
objetivo.
Los buenos documentos incluyen los COMO en el sitio de Netfilter y la iptables
página del manual .
-j SNAT
(en oposición al seguimiento de reciclaje con-j MASQUERADE
) cuando una nueva conexión saliente desde un nodo LAN utiliza el mismo número de puerto de origen que la conexión saliente cortada desde el mismo nodo LAN. En ese caso, puedo imaginar que los paquetes entrantes de la antigua conexión saliente se envían al nodo, confundiendo su pila TCP. En cuanto al beneficio de -j SNAT, ¿qué sucede si la caja NAT está configurada con la misma dirección IP externa y el núcleo sigue reenviando paquetes de conexiones antiguas en lugar de responder con RST?Básicamente
SNAT
yMASQUERADE
hacer lo mismo fuente NAT en la tabla nat dentro de la cadena POSTROUTING.Las diferencias
MASQUERADE
no requiere,--to-source
ya que fue hecho para trabajar con IP asignadas dinámicamenteSNAT
funciona solo con IP estáticas, es por eso que tiene--to-source
MASQUERADE
tiene una sobrecarga adicional y es más lenta queSNAT
porque cada vez queMASQUERADE
un paquete golpea el objetivo, tiene que verificar la dirección IP que debe usar.NOTA : Un caso de uso típico para
MASQUERADE
: instancia de AWS EC2 en una VPC, tiene una IP privada dentro del VPID CIDR (por ejemplo, 10.10.1.0/24) - 10.10.1.100 por ejemplo, también tiene una IP pública para comunicarse con Internet (suponga que está en una subred pública) a través de la cual la IP privada 1: 1 NAT. La IP pública puede cambiar después del reinicio de la instancia (si NO es un EIP),MASQUERADE
es una mejor opción en este caso de uso.Importante: Todavía es posible usar
MASQUERADE
target con IP estática, solo tenga en cuenta la sobrecarga adicional.Referencias
Tutorial de iptables
Tutorial NAT
fuente