I know that IPv6 was created in 1998 as a future-proofing, to make sure that there will be enough IP addresses in the works for large networks. IPv4 uses 32 bits and is represented with denary (0-9) while IPv6 uses 128 bits, so there are far more possible addresses, and it is represented using hexadecimal (0-9 then A-F).
What I’m wondering is why IPv4 is still so common, even though the number of devices connected to the internet have skyrocketed with more computers, laptops, smartphones, game consoles, embedded systems, etc. all connected! If it was thought that there would be too few available addresses in 1998, surely that has to be a bigger problem in the modern day?
Additionally, why didn’t IPv6 replace v4, even after nearly three decades of existing? Is it a technological limitation, cost, or something else?
And online I see many sysadmins online (!) complaining about IPv6 being more difficult to work with. Is this because the addresses are harder to remember, are adaptations of the protocol by manufacturers all different (similar to USB-C), or is there some other problem with IPv6? Or is this a case of a loud angry minority, especially in chat forums where people tend to have more polarised views?
Many devices do support IPv6, but it’s not universal like IPv4, despite the standard existing since 1998 and having many advantages. Why is this?
Because people are slow to fix something unless it is an impending problem.
Take the Y2K bug. Did you know the original person who made the bug was telling people in the 70s that is needs fixing? And it wasn’t actually fixed till the second half of the 90s.
2038 is going to be a fun year with all the 32bit clocks overflowing to 1970
2038 is going to be a fun year with all the 32bit clocks overflowing to 1970
Actually 13 December 1901, since it overflows to negative, not zero.
Other than that, good answer, full marks
Right… signed vs unsigned ints.
2038 problems have already started happening in niche cases. I expect things will pick up in pace in a couple of years because 10 years is that sort of period of time that people like to post-date future events by.
That might be enough to scare a few of the hold-outs. Then 2033 will be the next scare and reminder, because five years, etc.
Then probably every year after that until the deadline hits. By that point, the remaining few will be using
faketimeor something like it to eke out a few more years from whatever ancient hardware they’re still running that is too expensive to replace.Fun fact, and possible hint: Setting the date back 28 years on such hardware could work in a pinch, since the calendar from 2010 to 2037 is identical to that from 2038 to 2065. All weekdays and leap days fall on the same dates. (Easter and other moveable feasts don’t, however.)
well good to know I don’t live to year 10k to see the next clock problem
Why is this?
Most corporations have the inertia of a rock when it comes to changes. There is no real reason behind it. Implementing IPv6 is a no-brainer. Same with NATing legacy systems so they can continue using IPv4.
Instead of manually juggling IP addresses, properly set up environments use hostnames and handle DNS automatically.
It’s basically “we/I don’t see any short-term benefit from it, it causes some setup work, and it is not important because everything still works”.
In a nutshell: https://github.com/becarpenter/misc/blob/main/why6why.md
Blog author is also one of the authors of IPv6. Very neat, thanks for sharing!
we did a few tricks to get more use out of ipv4 address. take 192.168.100.1 that is a private ipv4 address it can not connect directly to the internet. Most home routers will have a single public ipv4 address and assign some private address to each device connected to it. So now each home can have 1 device with 192.168.100.1. This means we kept using ipv4 for a long time after ipv6 came out.
Second updating all the old routers and switches. At this point in time it is unlikely you will find a router in the wild that can’t use ipv6. Someone let me know the last time you found a device on some job site. But it took a while to get there because its expensive to replace them and no one was going to cough the massive amount of money to get it done in just a year or two.
Here is a full ipv6 address 2001:0db8:85a3:0000:0000:8a2e:0370:7334, yes it can be shortened to 2001:db8:85a3::8a2e:370:7334. That’s still a pain to type out and yes it did make a mistake just typing that one address. It is just more error prone to write and type out ipv6 addresses.
Yeah I did networking on Navy ships which used technology from the 60s. We checked a certain devices software and it was originally booted in 1962. Still, everything was IPv6 capable.
Yeah, I always thought the typing thing was just people coming up with silly reasons, because they don’t like change, but when you do networking stuff, you actually need to type out IP addresses rather often.
Either because you need to manually set a new address. Or because you can’t reach the device via network until you’ve typed in its IP address, so can’t copy-paste it then either.
Maybe because a 128-bit hexadecimal address is impossible to memorise. I know all (6) my IPV4 addresses.
If only there was some kind of system to give IP addresses easy to remember names.
And give in to big DNS? What’s next? Multiple services per server? Insanity!
This was proudly coded in Notepad.hostfile gang rise up… after manually distributing the latest DNS updates out of band
Or maybe we could like, shorten the big addresses and not need to remember the parts we’re not using yet
There’s no place like ::1
Yeah? You plan to setup, host, and maintain a local DNS server?
Been there, done that. No thanks.
IPv6 on a small network can just use mDNS just fine. Larger networks, you would have a DNS server anyways.
Skill issue
If you selfhost, chances are you selfhost something like pihole. I myself use TechnitiumDNS and it also serves
.lanhosts as well.Works like charm. 10/10 would recommend.
And as long as it works perfectly every time, we’re set!
Fd00::1|fd00::2 etc…
Did not know that this could be gone…
nah. when stating hex addresses, its customary to leave out any 0 components. means address is often just feab:aeae:1625:: ( latter 2 colons indicate rest is zeroed)
I think people are missing a main point here. There is nothing wrong with IPv4, it works. It just can’t scale globally anymore, it doesn’t have enough space.
If you are running a worldwide network with millions of nodes, IPv6 is essential. But for things that are smaller than that, it becomes less essential. But what’s the best metric for adoption, how many small offices or home labs adopt it? Or how many large, worldwide networks?
i, uh, would say that constitutes a problem
V4 is easier to work with (not using long hex addresses and it’s concepts are more familiar) and works fine for most everyone’s use cases. So if it ain’t broke don’t fix it and low return on investment for most businesses. If you switch you have you do some awkward stuff where you maintain both.
What are these many advantages you speak of, other than global address space? If I’m an average business and may need one to three external ipv4 addresses, which are around $30/yr each, how much labor is it going to cost to migrate and when will I break even? Surely my sysadmin’s time is better spent on things like security hardening?
One of the main issues I think is holding IPv6 back is that we keep needing to memorize IPs and type them by hand. 192.168.0.16, 172.16.0.0/12, and 10.0.0.0/8 are easy to remember, and usually it’s just the last number that’s important, anyway, because we all use 192.168.1.0/24 by default.
But then IPv6 comes along with /48 prefixes and endless numbers to read, analyze (same subnet? typos?), memorize or write down. Ain’t nobody got time for that.
IPv6 would have to integrate some sort of DNS resolver on a network level so that people can work with computer names. That would make the hostname actually relevant and not have every Windows be called DESKTOP-W38D6M5P. If you already have a separate DNS service, it’s only the registration step that has slightly more friction, but still.
E: I guess you could argue that it’s a UI problem. IPv6 has neighbor discovery and the UI can just show a list to choose from. Still no hostnames, though. Is configuration part of a layer’s responsibility?
because we all use 192.168.1.0/24 by default.
This is a bigger deal than you may think. Those of us stubborn enough to use one of the other defined internal network ranges already hit more obstacles than we should, and that difference should be trivial to non-existent.
For me the latest is a smart home device that hard-coded 192.168.1.x, so I am not able to connect it to my network
Most network devices can have multiple IPs. Assign 192.168.1.1 to your router (in addition to your normal one) and it should probably start routing traffic to that device
Is configuration part of a layer’s responsibility?
You should see the unfinished proposal for ipv8. The authors think yes to a large degree, though not how you’re thinking.
I wish they would say that IPv8 is a proper superset of IPv4 and not that IPv4 is a proper subset of IPv8, just because they’re building IPv8 on top of the existing IPv4.
This sounds like they realize v6 sucked and want to build something you can just plug into a v4 network.
Without a central server, hostname resolution is handled with mDNS. It is designed to do exactly what you’re asking: allow you to resolve hostnames to IP addresses without a DNS server. A node simply broadcasts (multicasts) a request for who has a name, and whichever node has it responds with their IP.
Whenever I’ve come across mDNS it was unstable and not installed. Bonjour was distributed with iTunes and sucked (15y ago). I could see mDNS supplying additional info for a configuration tool, but the IP layer remains reliant on IPs.
What bugs me is that IPv6 has built-in neighbor discovery that almost does what mDNS does, which could just have included a hostname… It’s a replacement for ARP and only ARP.
I would love if standard IP addresses used hex by default. C0.A8.1.1 or 7F.0.0.1
They are: ping 0xC0.0xA8.1.1 or 0x7F.1
Standard scanf number parsing is generally used though some OSes reject that.
Inertia. IPv4 still works, every service on the internet still available over it. You can just be lazy and things will be ok.
Complexity. IPv6 is complex in the areas where v4 sucks. Ran out of address space? Here’s a lot more address space. Multiple routers offering multiple routes? Just grab them all, have as many addresses as you want. No method to find peers on the same subnet? Here’s like three methods to find peers on the subnet. All this is stuff you gotta learn!
Workarounds. Initially, ISPs thought that people turned their PC off at night and they’d get the IP address back. Then, they were leaving multiple devices on all day! So they came up with a hack that pretends everyone is behind one IP address, now all your devices are just one IP. But that IP still stays up and occupied all the time, they’re not getting it back, so they put all their customers under another (CG)NAT. It’s just NAT all the way down whenever they run out, and this way they never run out.
I still don’t understand IPv4 fully after all these years, I’m not sure I’ll ever bother with v6 for my hone network.
I’m just too used to setting up DHCP and including the single gateway address in that.
Setting up a routing advertisement daemon and just letting devices use their (MAC-derived) automatic IPv6 address is significantly different, so I haven’t learned it yet.
It also doesn’t help that I’ve never been under an ISP that provided IPv6 connectivity, so I’d only be able to connect to IPv4 external endpoints anyway, unless I separate got a 6-in-4 tunnel service of smth.
I think you might be underestimating uptake. Google suggests upwards of 50% usage. Also I’m fairly certain that a lot of residential infrastructure has been slowly moving to IPv6 in Australia at least. Not an overnight process, but it’s happening. Over here we have a lot of newer mobile plans offering IPv6 as well.
I think a big holdback is that a lot of larger corporations will still use IPv4/NAT setups at the top level, even if all of the hardware in the network supports it. “If it’s not broke don’t fix it.” The result is huge amounts of daily traffic coming from these institutions being IPv4 by default, with all devices in WiFi, etc, being lumped into the same group.
I love australia for it. We had to support IPv6 because some of your clients were IPv6 only. And I think this is a good thing. Some push is neccessary.
surely that has to be a bigger problem in the modern day?
The problem already exists. We have run out of IPv4 addresses for years now and e. g. cloud computing/VPS providers have started charging additional fees for IPv4 addresses.
There are a number of points:
If you build a networking devices, you have to have IPV4. You may or better should have IPV6, too, but without IPV4, you’ll have a bad start.
If you build an embedded system, like an “internet of things” sensor or actor, memory is at premium, so having to take care of a small and a large IP stack might be challenging.
Some systems are old that their software libraries don’t even offer an IPV6 option.
My current project uses IPV4 only, because I don’t need anything fancy. I just span a 10/8 network with 10.0.0.1 being the server. No routing, not even DNS. Using IPV6 for that application would be wasted.
denary
Yes, that’s technically the correct 10th term in the Latin-based unary-binary-ternary-… sequence but nobody calls it that… I wondered what your mother tongue is but I couldn’t find a language in which the preferred name for “decimal system” would use den- rather than dec-, dek-, des- or a completely different word. Not to mention you avoided senidenary for obvious reasons…
I dunno, I use the two terms interchangeably. Both describe the same thing and you get the idea with both words. “Senidenary” is much less common than “hexadecimal”, so the latter is preferred. But to be fair, it is kind if weird I used denary then hexadecimal. English is strange, it’s many languages in a trenchcoat.
Hmm. I’ve been in math, computer science, and computer programming for 20 years in English (Canada) and I’ve never heard “denary”. It’s cute, but never once heard anyone say it. So they’re not interchangeable to me 😛
Yeah I do computer science too, and decimal is more common. But denary is still thrown around, at least in the media I consume.
The main reason is money.
Some companies don’t want to do additional work and IPv4 is “good enough” (although it isn’t) so they do nothing and we are stuck with it.
I mean company is worth a few billion and last week at work they considered having a metal tool box to prop open the router room door “good enough”. I’m not in IT, but I was to walk in and write down the ip addresses and try to ping them from my workstation which just let open the command prompt. I literally said “WHY AM I ALLOWED TO DO THIS”
Additionally, why didn’t IPv6 replace v4
Same reasons why electric vehicles have not replaced gas powered vehicles (yet).
The engine is not easily exchangeable, and there are still enough people who build, and people who buy the older models.
Lots of servers these days run only on IPv6
On the LAN side sure, but I don’t think many people would make a public website/webapp “true single stack”. If there’s a network appliance “terminating” the IPv6 connection and “NATting” it over IPv4 that’s a terrible hack that is even worse than not having it at all imho
Unless you’re talking about the link-local
fe80addresses, but those are basically sparkly MAC addressesOn WAN. Often hosting providers charge extra for ipv4 addresses, so many servers just don’t get them anymore














