If IPv4 Were Land

70 points | by rokostik 42 minutes ago

31 comments

  • MisterMunchkin 14 minutes ago

    I still think we should just extend the length of IPv4. In my proposed system, existing addresses would become a subnet of the new set.

    Eg 192.168.0.1 becomes 0.0.0.0.192.168.0.1

    And then we dish out all the new address space. You would get the network providers to handle address conversion until software and hardware has been updated. Because all the existing addresses are reserved in the new set, it doesn’t affect them.

    Keeps all the nice parts of IPv4, doesn’t require everyone to switch to an entirely new system, backwards compatible with existing hardware/software. Problem solved.

      cr3ative 6 minutes ago

      Hey, if you want to add OAuth and JWT to that idea for some reason, boy do I have an RFC for you https://www.ietf.org/archive/id/draft-thain-ipv8-00.html

      mort96 5 minutes ago

      > backwards compatible with existing hardware/software

      Absolutely not. Existing IPv4 hardware and software expects addresses to be 4 bytes long. They expect packets to have a 4 byte source address at offset 12 in the header, then a 4 byte destination address at offset 16. Everything breaks if you try to give them a header with an 8 byte source address at offset 12 and an 8 byte destination address at offset 20.

      georgyo 6 minutes ago

      This is all the bad parts of ipv6 with none of the good parts...

      You still need to have routers, clients, and absolutely everything to understand the new scheme to use those new addresses.

        charlieyu1 4 minutes ago

        Not using hex is a plus I guess?

      icedchai 3 minutes ago

      This seems achievable if you can figure out how to fit 64-bits into 32. ;)

      harrouet 9 minutes ago

      You can do this in IPv6

      mitxela 6 minutes ago

      That's literally what ipv6 does.

      throw0101c 9 minutes ago

      > I still think we should just extend the length of IPv4. In my proposed system, existing addresses would become a subnet of the new set.

      There is no "just" extending the address length:

            So it's a matter of mathematical and physical fact that to expand
            the address size, you must change the protocol, and that means 
            [three] things immediately:
      
                  You have to change the version number.
      
                  You have to add new code to handle the new version.
      
            […]
      
                  You need a coexistence technique so that updated systems, 
                  with the new protocol, can connect to old systems that know 
                  nothing of the new protocol.
      
            Two minutes of thought show that this third requirement has only 
            two solutions:
      
                  (3A) Dual stack, in which the new machines speak both 
                       the old (IPv4) and new (IPng) protocol.
      
                  (3B) Translation, in which something translates addresses
                       between the old and new protocols.
      
      * https://github.com/becarpenter/misc/blob/main/why6why.md

      * https://datatracker.ietf.org/doc/html/rfc1671

      > Keeps all the nice parts of IPv4, doesn’t require everyone to switch to an entirely new system, backwards compatible with existing hardware/software. Problem solved.

      You have to ship new code to every 'network element' to support your "IPv4+" plan. Just like with IPv6.

      So you also have to update DNS to create new resource record types ("A" is hard-coded to 32-bits) to support the new longer addresses, and have all user-land code start asking for, using, and understanding the new record replies. Just like with IPv6. (A lot of legacy code did not have room in data structures for multiple reply types: sure you'd get the "A" but unless you updated the code to get the "A+" address (for "IPv4+" addresses) you could never get to the longer with address… just like IPv6 needed code updates to recognize AAAA, otherwise you were A-only.)

      You need to update socket APIs to hold new data structures for longer addresses so your app can tell the kernel to send packets to the new addresses. Just like with IPv6. In any 'address extension' plan the legacy code cannot use the new address space; you have to:

      * update the IP stack (like with IPv6)

      * tell applications about new DNS records (like IPv6)

      * set up translation layers for legacy-only code that cannot be update to reach IPv4+-only destination (like IPv6 with DNS64/NAT64, CLAT, etc)

      You're updating the exact same code paths in both the "IPv4+" and IPv6 scenarios: dual-stack, DNS, socket address structures, dealing with legacy-only code that is never touched to deal with the larger address space.

      "Just adding more bits" means updating a whole bunch of code (routers, firewalls, DNS, APIs, userland, etc) to handle the new data structures. There is no "just": it's the same work for IPv6 as with any other idea.

      nekusar 5 minutes ago

      That was kinda the way IPv5 proposed to handle it.

      But the big big problem isn't windows/Linux/mac. Writing drivers for those are "easy".

      The problem lies in all the networking gear speaks only IPv4 and/or 6. LLM assisted hacks can get into maintenance areas, but these devices are also built to support the least amount of things. Like, there may not be enough ram or storage to even run it.

      And 20 years in, you see how well IPv6 has taken off :eyeroll:

      And even on my network, I disabled IPv6. My upstream ISP is doing something that makes '6 unstable, but '4 is fine. And I find most network engineers don't have to maintain '6, so they never really learn it.

  • xacky 19 minutes ago

    The fact that we have yet to fully deprecate IPv4 should be considered a great failure in the tech industry's competence.

      BLKNSLVR a minute ago

      Well the migration from IPv4 to IPv6 is probably less important and less impactful than climate change, and let's check the score on that...

      :grimace:

      OnlineTux 15 minutes ago

      Why? It was designed and implemented by competent people and continues to work today.

      PeterStuer 4 minutes ago

      Then again, given some even failed to adopt the metric system ...

      Also, that same tech industry has shown remarcable competence in working around IPv4's limitations.

      charlieyu1 3 minutes ago

      Not enough supply/demand. AWS charge like $0.005/hr per IPv4 address

      Miaourt 16 minutes ago

      It's actually a blessing for some, what would drive a company holding such a large capital of IPs to make it lose value by supporting IPv6?

      TZubiri 15 minutes ago

      No, backwards compatibility is competence.

        throw0101c 12 minutes ago

        > No, backwards compatibility is competence.

        Creating an IPng was always going to be complicated:

              So it's a matter of mathematical and physical fact that to expand
              the address size, you must change the protocol, and that means 
              [three] things immediately:
        
                    You have to change the version number.
        
                    You have to add new code to handle the new version.
        
              […]
        
                    You need a coexistence technique so that updated systems, 
                    with the new protocol, can connect to old systems that know 
                    nothing of the new protocol.
        
              Two minutes of thought show that this third requirement has only 
              two solutions:
        
                    (3A) Dual stack, in which the new machines speak both 
                         the old (IPv4) and new (IPng) protocol.
        
                    (3B) Translation, in which something translates addresses
                         between the old and new protocols.
        
        * https://github.com/becarpenter/misc/blob/main/why6why.md

        * https://datatracker.ietf.org/doc/html/rfc1671

        Here are the criteria for what the IETF was looking for in an IPng:

        * https://datatracker.ietf.org/doc/html/rfc1726

        Here are the candidates that were floating around at the time, and the reason why the winner was chosen:

        * https://datatracker.ietf.org/doc/html/rfc1752

  • tgv 7 minutes ago

    The elephant in the room: I didn't check the other mammoths, but e.g. Amazon has 4.4% of all ipv4 addresses.

      mitxela 5 minutes ago

      They have more than 4.4% of all servers so none of this is unexpected.

  • yoggies_bro 4 minutes ago

    I like how Hawaii migrates to California and Egpyt yeets itself into the Indian ocean. Quality animation that instills confidence in accuracy!

  • cbondurant 14 minutes ago

    I'd be interested to see how this compares to the same scaling procedure, but by population. Essentially seeing what the IPv4-per-capita is.

  • fluxsolstice 7 minutes ago

    What an interesting critter the UK is in terms of its shape

  • 6 minutes ago
    [deleted]
  • Guillaume86 14 minutes ago

    Population would make more sense.

  • timvdalen 30 minutes ago

    Good to see the Dutch were able to seize a lot of blocks from the sea!

      teekert 15 minutes ago

      It's what we do ;). I'll never forget my visit to the Delta Werken, 35 years ago? Remove our dikes, boom, half the country gone.

      Anyway, the Netherlands also seems to be an attractive place to build datacenters.

  • oakchris1955 21 minutes ago

    Either I've lost it, or there are other countries there that are bigger losers than the DRC. North Korea says it is 1069.6 times smaller, Greenland says it is 1507.8 times smaller, etc.

      blaze33 17 minutes ago

      > Tables include countries with at least 100,000 IPv4 addresses and 20,000 km² of land.

      mschuster91 13 minutes ago

      > Either I've lost it

      You haven't lost your marbles, this looks like straight Claude slop, just look at the fonts.

  • 24 minutes ago
    [deleted]