Estou confuso, qual é a diferença real entre SNAT e Masquerade?
Se eu quiser compartilhar minha conexão com a Internet na rede local, devo selecionar SNAT ou Masquerade?
O SNAT
destino exige que você forneça um endereço IP para aplicar a todos os pacotes de saída. O MASQUERADE
destino permite fornecer uma interface, e qualquer endereço nessa interface é o endereço aplicado a todos os pacotes de saída. Além disso, com SNAT
, o rastreamento de conexão do kernel mantém o controle de todas as conexões quando a interface é desativada e trazida de volta; o mesmo não se aplica ao MASQUERADE
alvo.
Bons documentos incluem os HOWTOs no site Netfilter e a iptables
página de manual .
-j SNAT
(em oposição ao rastreamento de reciclagem-j MASQUERADE
) quando uma nova conexão de saída de um nó da LAN usa o mesmo número de porta de origem que a conexão de saída cortada do mesmo nó da LAN. Nesse caso, posso imaginar pacotes recebidos da conexão de saída antiga sendo enviados para o nó, confundindo sua pilha TCP. Quanto ao benefício do -j SNAT, e se a caixa NAT estiver configurada com o mesmo endereço IP externo e o kernel continuar encaminhando pacotes de conexões antigas em vez de responder com o RST?Basicamente
SNAT
eMASQUERADE
fazer a mesma coisa fonte NAT na tabela nat dentro da cadeia POSTROUTING.Diferenças
MASQUERADE
não requer--to-source
, pois foi criado para funcionar com IPs atribuídos dinamicamenteSNAT
funciona apenas com IPs estáticos, é por isso que--to-source
MASQUERADE
possui sobrecarga extra e é mais lento do queSNAT
porque cada vez que oMASQUERADE
destino é atingido por um pacote, ele precisa verificar o endereço IP a ser usado.NOTA : Um caso de uso típico para
MASQUERADE
: instância do AWS EC2 em uma VPC, possui um IP privado no CIDR da VPC (por exemplo, 10.10.1.0/24) - 10.10.1.100, por exemplo, também possui um IP público para se comunicar com a Internet (suponha que esteja em uma sub-rede pública) através da qual o NAT IP 1: 1 privado. O IP público pode mudar após a reinicialização da instância (se NÃO for um EIP),MASQUERADE
é uma opção melhor nesse caso de uso.Importante: Ainda é possível usar o
MASQUERADE
destino com IP estático, apenas esteja ciente da sobrecarga extra.Referências
Tutorial do iptables
Tutorial NAT
fonte