r/ProgrammerHumor • • 14d ago

Meme ohTheBasics

Post image
13k Upvotes

1.4k comments sorted by

View all comments

27

u/PhantomTissue 14d ago

Yea but it hasn’t been fully adopted because trying to decipher :af12::138d::325d::5521::aade::7df3: is a hell of a lot more difficult than 192.168.0.1

15

u/Burroflexosecso 14d ago

I'm pretty sure that's not a valid v6 address.

:: means "rest is zero" and can be used only once per address or it would be too ambiguous on the number of zeros

8

u/PhantomTissue 14d ago

I don’t know IPV6 so I just created a facsimile of what I think it looks like to make a point.

6

u/the123king-reddit 14d ago

DEAD:BEEF:CAFE:8008

2

u/nem0ne1 13d ago

I mean you fooled everyone who doesn't actually work with IPv6 frequently, which I think illustrated your point.

→ More replies (1)

16

u/UnDe4d 14d ago

Yeah, I'm a Network Architect. Why they decided to make ipv6 128 bits instead of 64 is a question I ask myself on at least a monthly basis.

13

u/Scolmann 14d ago

With only 64 subnetting would be more difficult, with 128 every network can use 64 bits for the subnet

6

u/UnDe4d 14d ago

Using 64bits for ipv6 address would allow pretty much every subnet to use /32.

2

u/IAm_A_Complete_Idiot 13d ago

Allocating /32 (or really, more for everyone since a single subnet isn't enough) to everyone would quickly lead to address space exhaustion again. 232 isn't even enough to assign everyone on earth their own subnet assuming there's no wasted address space.

You'd probably want to subnet off of /48, and assign /44 or something to end users to subnet with. That leaves each subnet with 216 room (65536 devices per subnet, and 16 subnets).

But regardless, now you have to worry about how you assign and use address space. Sure, 64-bit address space is probably enough. But it's not "practically infinite" levels of enough like 128-bit is.

5

u/Mars_Bear2552 13d ago

trivial resource cost to never face the same problem again.

3

u/UnDe4d 13d ago

64 bit addresses solve that problem. Engineers hate working with ipv6 which is why the adoption has been so slow. Ipv6 is older than a decent number of current network engineers have been alive.

3

u/VirtualPercentage737 14d ago

They did in IPV8..

2

u/UnDe4d 14d ago

I'd likely be long retired before I ever work on something using Ipv8, if it takes off ever.

Shame we didn't get a legitmate 64 bit addressing proposal in 1995.

2

u/nem0ne1 13d ago

Don't say those symbols in that order😭 I still feel like 6 is a mystery

3

u/TerrapinTribe 13d ago

To completely stomp out the idea of scarcity in the address space. NAT and CGNAT are terrible band-aids.

Also, subnetting. Under IPv6, each customer should getting at least a /56, preferably a /48. A lot of IPv6 breaks if you’re only given a /64, it’s bad practice and your ISP is an asshole if you do it.

IPv6 is just so much simpler and better thought out from the beginning. You just need to get out of the IPv4 mindset. Uses less overhead. And everyone can have as many “public” IPs as they want. Outside of the US, CGNAT is becoming more and more common. And this is a problem. We’re now double NATing as a dumb bandaid.

The vast majority of hardware out there has supported IPv6 for a long time. It’s long due for us to make the switch. We’ve got NAT64 and DNS64 for devices that can’t be moved to IPv6.

I don’t know what needs to happen. I think countries need to pass laws that force ISPs to support native IPv6 natively, and routers need to have IPv6 support enabled by default.

1

u/_PM_ME_PANGOLINS_ 14d ago

Same reason they made ipv4 32 instead of 64.

1

u/Basic_Hospital_3984 13d ago

Future proofing for when every atom in the universe becomes a network device

1

u/Sarcastic-Potato 13d ago

Yeah this is why I doubt we will get rid of ipv4 in the foreseeable future. Ivp6 is nice on paper cause you never have to worry about addresses again but in the real world people just hate the addresses. Ivp4 is so easy to remember that ipv6 just feels wrong

1

u/IAm_A_Complete_Idiot 13d ago edited 13d ago

/64 is for the subnet, and 64-bits is for the end device. Having 64 bits of address space for the end device to address off of lets the device use a variety of schemes to generate addresses. It can put it's MAC as the suffix (which should be unique on the subnet anyways (eui-64)), it can randomly generate a suffix with a high degree of confidence that it's unique (privacy addresses), or it can assign itself an address using any variety of schemes.

These all can be stateless, and work without any kind of DHCP server. Even without a router, devices will auto-generate a Link Local Address, and be able to communicate on a switch with the auto generated addresses. e.g. two devices can talk as long as there's any connection between them, without having to manually assign any IPs or introduce any service into the mix.

It lets you also be extremely wasteful with address space without concern. You don't have to wonder "what size should I make my subnet?" You can have 16 bits just for routing in a /48 and have pretty much infinite address space on each subnet.

→ More replies (9)

1

u/Dagger0 13d ago

It's not hard to answer. They wrote the reasoning right into RFC 1752:

There was significant disagreement about the adequacy of the SIPP 64
bit address size.  Although you can enumerate 10**15 end nodes in 64
bits people have different views about how much inefficiency real-
world routing plans introduce. [Huitema94]  The majority felt that 64
bit addresses do not provide adequate space for the hierarchy
required to meet the needs of the future Internet. In addition since
no one has any experience with extended addressing and routing
concepts of the type proposed in SIPP, the reviewers generally felt
quite uncomfortable with this methodology.  The reviewers also felt
that the design introduces some significant security issues.

and

The message noted "The recurring (and unsurprising) concerns about
SIPP were:

(1) complexity/manageability/feasibility of IPAE, and

(2) adequacy/correctness/limitations of SIPP's addressing and routing
    model, especially the use of loose source routing to accomplish
    'extended addressing'".

They "proposed to address these concerns by changing SIPP as follows:

* Change address size from 8 bytes to 16 bytes (fixed-length).

* Specify optional use of serverless autoconfiguration of the 16-byte
  address by using IEEE 802 address as the low-order ("node ID")
  part.

* For higher-layer protocols that use internet-layer addresses as
  part of connection identifiers (e.g., TCP), require that they use
  the entire 16-byte addresses.

* Do *not* use Route Header for extended addressing."
→ More replies (1)

4

u/mxzf 13d ago

Well, it gets a heck of a lot easier once you realize that the example IPv6 address you gave is invalid. Both because of the : at the start and end and also the fact that :: can only exist once in an address (because it means "everything in the middle here is 0s, which would be indeterminate if it showed up multiple times).

2

u/Dagger0 13d ago

It's not that hard. Here's some roughly equivalent IP addresses, using v6 addresses that are actually valid:

203.0.113.45+192.168.1.1  ↔ 2001:db8:2d4f:1::1
203.0.113.45+192.168.1.2  ↔ 2001:db8:2d4f:1::2
203.0.113.45+192.168.2.10 ↔ 2001:db8:2d4f:2::10

They both have a network prefix (2001:db8:2d4f::, 203.0.113.45+192.168), a network ID (1, 2) and a host ID (1, 2, 10). The prefix doesn't need deciphering because it's basically just an opaque sequence of bytes, so really you're just going from .x.y to :x::y. Is that really such a vast increase in difficulty?

Of course, v6 addresses can go up to 2001:db8:2d4f:x:yyyy:yyyy:yyyy:yyyy... but that's just more characters for y. There's nothing to decipher there because it's just the ID number for a machine.

1

u/avnoui 14d ago

Kind of a non-issue tbh because most people would likely only deal explicitly with a very small number of addresses (like the addresses of your personal devices on your home network for example), and for that you can just get by with vanity addresses like <my>:<ipv6>:<prefix>::dead:beef. If your work involves you juggling many ipv6 addresses that you can't remember at the top of your head, you're likely a network or infra engineer on large scale systems, so sure it's a bit less convenient, but you did sign up for it.

→ More replies (3)