- You get extra bits to play with for addressing. Fly.io has done some cool stuff with their "6PN" addresses, built on top of IPv6 and Wireguard. They encode information in the address itself and use eBPF to route on it.
- As a result of everyone essentially having infinite public addresses to assign for themselves, we can get rid of NAT, which would enable peer-to-peer apps. See Tailscale's "How NAT Traversal Works" post for a great survey of the techniques used to connect devices behind NATs. (Note that getting rid of NATs does not mean getting rid of private networks or block-all-inbound firewalls. IPv6 allows both of these security measures.)
- Some more points here [2] I hadn't seen, particularly around better routing efficiency by getting rid of IP checksums and allowing for smaller routing tables.
[0] https://ipv4marketgroup.com/ipv4-pricing/
[1] https://tailscale.com/blog/how-nat-traversal-works/
[2] https://www.networkcomputing.com/networking/six-benefits-ipv...
There are a whole raft of advantages:
1. NAT/CGNAT[0] becomes irrelevant (although you can still use local/non-routable prefixes if you wish), eliminating many of the issues around port forwarding and reachability of services;
2. While IPSec is broadly available for IPv4, encryption and authentication are baked into IPv6;
3. The enormous size of the IPv6 addresses would allow every location to have their own 16 bits (or more, if necessary) of routable address space;
4. Despite NAT, we have already run out of IPv4 address space[1] across all regions.
There are other good reasons for IPv6 too, but those are the most important IMHO.