Eu divido NAT em duas categorias distintas: NAT de Origem (Source NAT) (SNAT) e NAT de Destino (Destination NAT) (DNAT).
Source NAT ocorre quando o endreço de origem do primeiro pacote é alterado: por exemplo, quando se muda de onde vem uma conexão. Source NAT sempre ocorre no momento de post-routing, logo antes que o pacote deixe o firewall. Masquerading é uma forma especializada de SNAT.
Destination NAT ocorre quando o endereço de destino do primeiro pacote é alterado: por exemplo, quando se altera o destino final de uma conexão. Destination NAT sempre ocorre no momento de pre-routing, quando o primeiro pacote está prestes a entrar no firewall. Port forwarding, load sharing, e proxy transparente são forma de DNAT.