Pull to refresh

Why is IPv6 so complicated? (github.com)

by signa11 261 comments 130 points
Read article View on HN

261 comments

[−] ExoticPearTree 27d ago
My first IPv6 implementation was in 2010-2011 (memory a but fuzzy). Carriers supporting BGP over IPv6 were few, websites over IPv6 were also scarce.

Fast forward 15 years snd the situation has improved quite dramatically.

IPv6 has some quirks that make it harder to digest.

- link local gateway address, makes it hard to understand why the subnet does not have a gateway from the ssme address space

- privacy extensions: it is very hard to explain to people why they have 3-4 IPv6 addresses assigned to their computer

- multicast instead of broadcast

- way too many ways for autoconfiguration (SLAAC, DHCPv6)

- no real tentative mapping to what people were used to. Every IPv6 presentation I did had to start with “forget everything you know about IPv4”

In the enterprise space, if you mention globally reachable address space, the discussion tends to end pretty fast because “its not secure”. Those people love their NAT.

[−] roenxi 27d ago

> There was also unnecessary confusion caused by a rather political decision to make IPv6 require support for IP Security (IPsec), which was an immature technology at the time. This was a definite brake on IPv6 deployment until it was dropped after some years.

I don't know anything about the IPv6 situation, but the way this paragraph just slots in so innocently foreshadows some long wordy Wayland retrospective document on why adoption was so slow where someone from deep in the community slips in 1 short "sure we tried to block screenshots and that might have caused some issues with adoption for some users" paragraph in the middle-end. The innocence of the admission is so mild and context-free that it somehow manages to make itself look guilty.

[−] gucci-on-fleek 27d ago
In my experience, the IPv6 protocol is much simpler than the IPv4 protocol. However, the IPv6 tooling and documentation is still worse than it is with IPv4, and dual-stack is inherently going to be more complicated than implementing any single protocol, so I do have some sympathy towards "IPv6 is hard".

For example, the IPv6 packet structure [0] is much simpler than the IPv4 packet structure [1]; SLAAC [2] is much simpler than DHCPv4 [3]; IPv6 multicast [4] is much simpler than IGMP [5]; IPv6's lack of NAT simplifies peer-to-peer networking compared to IPv4; ULAs [6] prevent the annoying address conflicts you get with IPv4 [7]; etc.

[0]: https://en.wikipedia.org/wiki/IPv6_packet#Fixed_header

[1]: https://en.wikipedia.org/wiki/IPv4#Packet_structure

[2]: https://en.wikipedia.org/wiki/IPv6_address#Stateless_address...

[3]: https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Pro...

[4]: https://en.wikipedia.org/wiki/IPv6#Multicasting

[5]: https://en.wikipedia.org/wiki/Internet_Group_Management_Prot...

[6]: https://en.wikipedia.org/wiki/Unique_local_address

[7]: https://stackoverflow.com/a/52374482/30512871

[−] themafia 27d ago

> The main reason for IPv6, and its only real reason for existence, was bigger addresses.

Which also allowed for better route aggregation in the core BGP tables.

Better node mobility support. Better multicast support. Genuine link local addresses.

IPv4 had a lot of unfortunate edge cases. I think IPv6's greatest strength and also responsible for it's slow rollout was it's insistence on solving several of these problems at once, along with IPSec as the article notes, and hammering them into the hard requirements for the core stack.