• Calmarius@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    I think the biggest problem with IPv6 adoption is that it does not come with a full transitional package that’s mandatory for all IPv6 capable nodes.

    If A has IPv6, but B doesn’t, then A can’t use IPv6 to reach B. If both A and B has IPv6 but there is no v6 route between A and B, then A cannot use IPv6 to reach B.

    What should have been done instead is that the transition mechanisms should have made sure that anyone can pick up IPv6 and use IPv6 exclusively on their own discretion and then transitional mechanisms would ensure that everything works. Whenever a node has both public v6 and v4 addresses it should be ready to translate when a packet needs to be routed into the v4 internet.

    This would basically mean a few things:

    • A scheme that allows self assignment/calculation of a globally unique v6 address without administration or registration.
    • Automatic NAT64 when the destination is v4 using a fixed well known prefix.
    • Automatic tunneling when the destination is v6 and there are v4 nodes in the path. To make this work we need a scheme that allows finding the appropriate v4 gateway for a given v6 address if it’s a registered/officially assigned address and not a self assigned/calculated one (perhaps using an .arpa domain for this).
    • Emulated v4 layer to make v4 only applications work when the network is v6 only.
    • There is no DNS64, clients would look up both A and AAAA records and use the methods above to reach the destination.

    When a node has no v4 neighbors, then it can use v6 natively, somewhere upstream there will be a router that’s dual stack and can translate the traffic if needed.

    With all these in place, v4 hosts can begin using v6 without significant service degradation and would allow enabling v6 by default.

    If we had done it this way, the transition would have finished long ago.