Frequently Asked Question

What is NAT and why does my home network use it?

Network Address Translation lets many machines share a single public IP address. Your router holds the one public address its ISP gave it; the laptops, phones, and IoT devices inside the house all have private addresses from 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16, ranges reserved by RFC 1918 that are never routed on the public internet. When an inside device makes a connection out, the router rewrites the source address (and usually the source port) to its public address, remembers the mapping in a table, and rewrites the replies on the way back.

NAT is a pragmatic workaround for IPv4 exhaustion, not a security feature, even though it incidentally hides internal hosts behind a single externally-visible address. The same Linux subsystem (netfilter) that powers iptables and nftables does NAT in the kernel; small home routers are essentially specialised Linux boxes doing exactly that. IPv6 has enough address space that NAT is generally unnecessary, and most IPv6 deployments give every device its own globally routable address.

Further reading and video