====== 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 ===== * [[https://tools.ietf.org/html/rfc6886|RFC 6886]] – [[https://en.wikipedia.org/wiki/NAT_Port_Mapping_Protocol|NAT Port Mapping Protocol]] (NAT-PMP) * [[https://www.rfc-editor.org/rfc/rfc6877|RFC 6877]] – [[https://en.wikipedia.org/wiki/IPv6_transition_mechanism#464XLAT|464xlat]] translation mechanism for IPv6 ===== 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 behavior[(Taken from [[https://github.com/yokoyama10/nintendo-switch-nat-type|github.com/yokoyama10/nintendo-switch-nat-type]], see also: [[https://tools.ietf.org/html/rfc4787|RFC4787]])]: * 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 [[cgnat|Carrier-Grade NAT]] or a completely firewalled network. Nintendo actually recommends opening ''1-65536/udp'' to the Switch[([[https://en-americas-support.nintendo.com/app/answers/detail/a_id/22272|How to Set Up a Router's Port Forwarding for a Nintendo Switch Console – Nintendo Customer Support]])], which is effectively putting the Switch into an UDP DMZ. It might also use [[https://en.wikipedia.org/wiki/Universal_Plug_and_Play|UPnP]]. ===== Linux ===== * nftables: [[https://wiki.nftables.org/wiki-nftables/index.php/Performing_Network_Address_Translation_(NAT)|Performing Network Address Translation (NAT)]] ====== IPv6 ====== see also: [[ipv6|IPv6]] ===== NAT66 ===== * [[https://blog.apnic.net/2018/02/02/nat66-good-bad-ugly/|NAT66: The good, the bad, the ugly]] (Marco Cilloni, 2 Feb 2018) – has a section on "how to get away with NAT66" * [[https://blogs.infoblox.com/ipv6-coe/ipv6-ula-and-nat-is-it-better-than-global-unicast/|IPv6 ULA and NAT. Is It Better Than Global Unicast?]] * [[https://networkingnerd.net/2011/12/01/whats-the-point-of-nat66/|What’s The Point of NAT66?]] * [[https://networkingnerd.net/2020/01/16/why-do-you-need-nat66/|Why Do You Need NAT66?]] * [[https://blog.ipspace.net/2011/12/we-just-might-need-nat66.html|We Just Might Need NAT66/NPT66]]