Hacker News new | ask | show | jobs
by mister_goo 1469 days ago
Newer protocols like QUIC are encapsulated by UDP instead of adding new protocol numbers. NAT box breaks because NAT must be implemented for each protocol (port number not at IP level).
1 comments

SCTP is over 20 years old. I think the explanation for today's situation is slightly more complex than NAT boxes not having enough advance notice. NAT isn't allowed by the TCP/IP specs, for the exact reason that it breaks IP and new internet applications. Everyone was supposed to move to IPv6 with enough addresses so the temptation to use NAT would go away. Instead we ignored the stewardship of IETF and ISOC, and just adapted to the laissez faire world of middleboxes and broken IPv4.
So there is a difference between what people are supposed to do and what people actually do. What I am wondering now is why IPv6 didn't adapt NAT as a first class feature, if IPv6 added something like port number in IPv6 header, NAT could not break protocols. It seems IPv6 strongly resists NAT, but in reality, people still use NAT on IPv6.
Using NAT with IPv6 betrays a lack of understanding with how it’s supposed to be used, and a stubborn continuation of IPv4 kludges.

Multiple addresses/prefixes are a required component for IPv6 to function, which I suspect is often the biggest source of misunderstanding from legacy IP competency.

If you need a stable prefix for a host, use a ULA or your own GUA. If you need to provide services from 2 or more upstream networks, configure the host with addresses from each of the delegated prefixes from those networks. If you need to do all of the above, there’s nothing preventing you from configuring them all simultaneously. You can even use the IP and routing stack to provide selective service access and trust thresholds.

Prefix mobility is something that should have been anticipated when IPv6 was being hashed out, and would have made many things much easier, but it’s far from critical, and gives IPvA an easy killer use case.

Using NAT with IPv6 sounds tragic, hopefully this isn't common.
There are reasons to do some kind of NAT across IPv6. For example, switching ISPs may throw your internal network addressing in disarray which can be either a pain or a massive problem; NPTv6 will prevent that from being too much of an issue inside the premises, which should cover 95% of the issues. The best thing is that you keep most of the advantages of IPv6 (all addresses and all ports publicly reachable, foregoing the need for dangerous stuff like ALG) despite the address translation.

Alternatively you could register an IPv6 address of your own but you'd need to find an ISP that will let you use that, which can be harder than you'd hope, or you could tunnel your entire connection through the cloud in a semi-NAT system.

This isn't a problem for 99.9% of people and I'd wager it's not a problem for over 80% of businesses either. However, for companies with zealous network administrators and IP-based access control this is a real problem that needs solutions like NAT.

>switching ISPs may throw your internal network addressing in disarray which can be either a pain or a massive problem

Those are what ULA's do. A local router that provides global addresses and ULAs solves all your problems, and that's the default behaviour of OpenWRT (and probably other routers). If you want traffic to not leave your local network, listen to your ULA (fd00::whatever) and call it a day.