What is the difference between NAT and SNAT\DNAT?

Following the question in subject, I guess there is a slight difference between NAT and the others.

Is it that NAT translates a complete private network, as SNAT\DNAT translate per package?

Thanks.


"NAT" is a collective term for various translations - usually it's actually NAPT (involving the transport-layer/L4 port numbers as well).

Source NAT translates the source IP address (and L4 port number), usually when connecting from a private to a public IP address ("LAN to Internet"). The router stores newly created translations ('sessions') and manipulates responses accordingly in a backward fashion.

Destination NAT translates the destination IP address (and possibly the L4 port), usually when connecting from a public IP to a private IP (aka port-forwarding, reverse NAT, expose host, "public server in LAN"). While the inbound mapping is static, the return traffic also requires 'sessions' to find the original source.

Both variants work very much alike but generally differ in the way that a connection (or rather a session) is established.


DNAT: Traffic from address IPs is forwarded to a specific internal IP. or redirects the incoming traffic for some IPs or Port to particular address of your choice.

SNAT: matches for all traffic from a specific network(internal Network) to the output interface (address source used as source for the packets that match, also the output address of your network).