Hacker News new | ask | show | jobs
by convolvatron 38 days ago
this keeps coming up, if you add a byte to ipv4 you still have a transition problem. 5 byte machines can't talk to 4 byte machines. pretty much the only thing that solves is people not liking the :: syntax. the only other change is auto configuration, which...kind of doesn't matter? is that really causing problems?
2 comments

Yeah but they could've picked something that at least lets the 4 byte host talk to a 5 byte one. Like if I have 8.8.8.8 and they want to give me 8.8.8.8.0, cool. Or make it 8 bytes instead of 5, same thing.
well, if you want to add an extra byte you kinda have a problem, since v4 is fixed format and is actually cooked into hardware in a lot of places. so if you want to keep v4 mostly untouched you have to use an option, which is going to be pretty slow on the backbone.

you can send a packet from an extended address host to a vanilla v4 host if you map the address space into a range like you suggest..but that v4 host just has no way of sending a message back..so its kinda useless

It'd be useless until everyone switches to the 5-byte thing and people can start putting something besides 0 into that last byte. But at least they could turn on v5 or whatever it's called without having to think about it. Right now I could have two hosts that both agree to use ipv6 and it's still hard because you have to reconfigure everything.
Why the double standard?

v6 already gives you what you're asking for here: you can turn it on without thinking about it, but actually using the extra addresses from it requires reconfiguring some things (not everything, mind).

Why is that bad when it's v6 doing it, but good when it's your 5-byte thing doing it? Or did you just not think through this enough to realize you were asking for something we already have?

Because you can't generally turn on v6 without thinking about it. Maybe consumers can, even then not always cause it messes random things up. Power users and offices maybe can't. Service operators really can't. If it were as easy as you're saying, all those things like Github would already at least support v6.
Windows, Linux, OSX, Android and iOS all ship with v6 enabled by default out of the box, so it's already turned on without you needing to think about it. You have to deliberately go out of your way for this not to be the case.

> If it were as easy as you're saying, all those things like Github would already at least support v6.

This isn't the "turn it on" stage, it's the "people can start putting something besides 0 into that last byte" stage.

I think the addresses are a big issue. The address space is just stupid big, I don't understand why we need to prepare for every grain of sand on Earth having a WiFi chip in it.

Most people can pick up calculating subnets in their head in ipv4 pretty quickly and ipv4 addresses are easy to memorize on accident. My brain turns to mush as soon as I start seeing hexadecimal characters in addresses.

But subnetting in v6 is so much easier than in v4? And it's specifically because of the hex. You don't even need to calculate it, in your head or otherwise, because you just subnet based on characters:

  2001:db8:42:1xxx::/52
  2001:db8:42:2xxx::/52
  2001:db8:42:20xx::/56
  2001:db8:42:21xx::/56
  2001:db8:42:210x::/60
  2001:db8:42:2100::/64
  2001:db8:42:2101::/64
etc. About the only mildly complicated thing is remembering that leading zeros in a number can be dropped but trailing ones can't (i.e. 1 and 001 are the same number, but 1 and 100 are different numbers), but that's something you should've learnt in grade school already.
Because devices randomly generate the last 64 bits of the address without coordinating. They need it to be long to avoid collisions.