Network Access Translation
NAT is the practice of using private IP addresses inside of one network connected to the Internet and having a routing gateway forwarding requests to public IP addresses.
Standards
- RFC 6886 – NAT Port Mapping Protocol (NAT-PMP)
NAT on Gaming Consoles
PlayStation
For Sony PlayStation networking, they differentiate between NAT Types 1 (open), 2, 3 and 4 (closed).
Xbox
Microsoft says there are three types of NAT: Open, Moderate and Strict.
Nintendo Switch
The detection of Nintendo Switch is considered to following behavior1:
- Type A: Mapping: "Endpoint-Independent", Filtering: "Endpoint-Independent" or "Address-Dependent Filtering"
- Type B: Mapping: "Endpoint-Independent", Filtering: "Address and Port-Dependent"
- Type C: Mapping: the others, but the source port is predictable.
- Type D: In other cases.
- Type F: Failed to receive UDP packets.
A means it's directly connected to the internet, B means UPnP is enabled, C means some ports are blocked and D means you have Carrier-Grade NAT or a completely firewalled network.
Nintendo actually recommends opening 1-65536/udp
to the Switch2, which is effectively putting the Switch into an UDP DMZ. It might also use UPnP.
Linux
IPv6
see also: IPv6
NAT66
- NAT66: The good, the bad, the ugly (Marco Cilloni, 2 Feb 2018) – has a section on "how to get away with NAT66"