O NAT de origem altera o endereço source no cabeçalho de um pacote. Também pode alterar a porta source nos cabeçalhos TCP / UDP. O uso típico é alterar o endereço / porta privada (rfc1918) para um endereço / porta pública para os pacotes que saem da sua rede.
O destino NAT altera o endereço destino no cabeçalho IP de um pacote. Ele também pode alterar a porta destination nos cabeçalhos TCP / UDP. O uso típico disso é redirecionar os pacotes recebidos com um destino de um endereço / porta pública para um endereço IP privado / porta dentro de sua rede. .
Masquerading é uma forma especial do Source NAT, onde o endereço de origem é desconhecido no momento em que a regra é adicionada às tabelas no kernel. Se você quiser permitir que os hosts com endereço privado por trás do firewall acessem a Internet e o endereço externo seja variável (DHCP), é isso que você precisa usar. O mascaramento modificará o endereço IP de origem e a porta do pacote para ser o endereço IP primário atribuído à interface de saída. Se sua interface de saída tiver um endereço que é estático, você não precisará usar o MASQ e poderá usar o SNAT, que será um pouco mais rápido, já que não precisa descobrir qual é o IP externo sempre.