Diferença entre SNAT e Masquerade

35

Estou confuso sobre qual é a diferença real entre o SNAT e o Masquerade?

Se eu quiser compartilhar minha conexão com a Internet na rede local, devo selecionar SNAT ou Masquerade?

    
por Chankey Pathak 03.10.2011 / 19:36

2 respostas

37

O SNAT target requer que você forneça um endereço IP para aplicar a todos os pacotes de saída. O MASQUERADE target permite dar a ele 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 rastreia todas as conexões quando a interface é desativada e trazida de volta; o mesmo não é verdade para a meta MASQUERADE .

Bons documentos incluem os HOWTOs no site do Netfilter e o iptables man page .

    
por 03.10.2011 / 19:56
16

Basicamente SNAT e MASQUERADE fazem a mesma coisa NAT de origem na tabela nat dentro da cadeia POSTROUTING.

Diferenças

  • MASQUERADE não requer --to-source como foi feito para trabalhar com IPs dinamicamente atribuídos

  • SNAT funciona apenas com IPs estáticos, é por isso que tem --to-source

  • MASQUERADE tem sobrecarga extra e é mais lento que SNAT , porque cada vez que MASQUERADE alvo é atingido por um pacote, ele precisa verificar o endereço IP a ser usado.

OBSERVAÇÃO : Um caso de uso típico para a instância MASQUERADE : AWS EC2 em um VPC, ele tem um IP privado dentro do VPC CIDR (por exemplo, 10.10.1.0/24) - 10.10.1.100 para Por exemplo, ele também tem um IP público para se comunicar com a Internet (suponha que esteja em uma sub-rede pública) através do qual o IP privado 1: 1 NAT. O IP público pode mudar após a reinicialização da instância (se não for um EIP), MASQUERADE é a melhor opção neste caso de uso.

Importante: ainda é possível usar MASQUERADE target com IP estático, apenas fique atento à sobrecarga extra.

Referências

por 20.02.2016 / 12:00