Top
Best
New

Posted by barqawiz 14 hours ago

Google Hits 50% IPv6(blog.apnic.net)
372 points | 371 commentspage 4
tonymet 4 hours ago|
it’s safe to say that we will never see total adoption, not within 2 generations. We will taper around 65% at best.

Think about the migration plan, and nearly every positive force to move to ipv6 has been exhausted. Routing hardware, consumer hardware, server hardware & software all have the capability. Mobile deployments were a big driver of ipv6, and that didn’t reach the level of adoption expected. Now hosting providers are charging for ipv4 addresses, and it’s not having a measurable impact.

Most migrations start to hit the hockey stick well before this stage, and the taper occurs around 95%+ when outlier hardware or legacy devices are the last remnants. We are not seeing a pattern like that here.

b112 14 hours ago||
And 32% is all llm/bots using AWS and other "pay for ipv4 IP" use cases.
benjojo12 14 hours ago||
As someone on the fighting end of scrapers, this is absolutely not true. If anything I should bais towards v6 as the traffic is on par better than v4
Sesse__ 13 hours ago|||
Just remove the A record, and nearly all the scrapers disappear. :-) (And then you get one email per month or so that “your host does not resolve in DNS”.)
b112 13 hours ago|||
Google is having a real issue with LLMs using it for search. As in, real load issues. Unless you're running a publicly accessible search engine, and the top one at that, the LLM traffic you're seeing is not representative.
jeroenhd 12 hours ago|||
Every scraper I have blocked seemed to use IPv4 primarily. Only when IPv4 gets blocked, some of them fall back to IPv6. Others just stay dead.

With AI companies using botnets ("residential proxies") for scraping, they're probably going to be in the 50% that doesn't use IPv6.

jcgl 14 hours ago||
Citation needed. These numbers are quite consistent with the growth pattern that started well before usable LLMs were even a thing.
ck2 9 hours ago||
is it because some cellphone carriers are now completely ipv6 externally like t-mobile?
skywhopper 13 hours ago||
I’ve yet to live anywhere where the available mainstream ISPs were willing or able to provide IPv6 service. I’d be happy to use it, if I were able.

I also have built cloud infrastructure for multiple SaaS providers with tens of thousands of customers over the past decade. Only one customer I’m aware of has ever even requested IPv6 support. And if customers aren’t asking for it, my employers have never been interested in the full network re-architecture required to truly support it internally.

There are still several basic services you can’t run IPv6-only in AWS, and a handful of AWS service features that don’t support it at all.

As a sysadmin for decades now, I’ve always found IPv6 to be overengineered and in many ways completely ridiculous. But I’d love to be supporting it in everything I do. Only I still can’t, even after 20+ years of being lectured about it; even after complete IPv4 exhaustion has been reached. I don’t think we’re ever going to turn IPv4 off. At best it will be progressively hidden, even from technical users. And folks like me will just have to keep building workarounds to patch the holes where IPv6 still doesn’t work.

gucci-on-fleek 12 hours ago||
> I’ve always found IPv6 to be overengineered and in many ways completely ridiculous.

Most software continues to have horrible IPv6 support and documentation making it look more complicated, but the actual protocol is considerably simpler than IPv4. For example:

1. An IPv4 packet header is variable-length, and the checksum must be recalculated by every router because the TTL is included in the checksum. Whereas an IPv6 packet header is fixed-length and has no checksum.

2. NAT is effectively required with IPv4, but it makes everything much more complicated, since it means that most computers don't even know their "real" IP address, it makes peer-to-peer networking very challenging, and it's tricky for routers to implement. Whereas with IPv6, no NAT is required.

3. Any router along the network path is allowed to fragment an IPv4 packet, and is in fact required to if its MTU is smaller than the packet's size. Whereas only the originating node is allowed to fragment an IPv6 packet.

4. To acquire an IPv4 address, both clients and routers must implement DHCP, which is a fairly complicated protocol, and both clients and routers must remember the list of assigned addresses. Whereas with IPv6, the client can just choose a random address (via SLAAC) and then start using it immediately.

5. IPv6 multicast is considerably simpler than IPv4 multicast, and NDP (v6) is considerably simpler than ARP (v4).

Despite all this, I agree with you that setting up IPv6 networking is harder than setting up IPv4 networking, but this is more of a software problem than a protocol problem.

hdgvhicv 11 hours ago|||
2 is a security nightmare but that’s why firewalls prevent it by default

3 well you can set the dont fragment bit at a client side or a router can drop the packet. These are choices. If a 1500 byte IPv6 packet arrives on a router with an 1100 byte next hop, does it just drop? Or send back a fragmentation needed icmp? How is that different from setting a “don’t fragment” option on a router.

4 isn’t created from a security or management point of view either. And v4 has the 169.254 range for this purpose. I guess the lack of router advertisement is the primary difference. And the operational expectations.

5a I’m not sure about. My main experience with multicast is pim-sm on v4. SSM v4 multicast however seems simple, and while I don’t use it as I have kit that’s too old for it is v6 really easier than v4/ssm/igmp3?

As for arp, I don’t see any real complexity with it as a network operator, but maybe that’s because I’m used to it. Perhaps it’s easier to implement nd rather than arp, but given almost every v6 deployment for the last 30 years is dual stack all it does is increase complexity.

gucci-on-fleek 11 hours ago||
> If a 1500 byte IPv6 packet arrives on a router with an 1100 byte next hop, does it just drop? Or send back a fragmentation needed icmp?

Yup [0].

> How is that different from setting a “don’t fragment” option on a router.

It's the exact same, of course with the difference that it's the default and that nothing needs to support packets with the “don’t fragment” option disabled (since it's mandatory).

> And v4 has the 169.254 range for this purpose.

Sure, but seeing 169.254.x.x usually means that something is broken, while seeing IPv6 link-local address is perfectly normal.

> As for arp, I don’t see any real complexity with it as a network operator, but maybe that’s because I’m used to it.

Well it's part of the reason why 802.11 tries so hard to pretend that it's Ethernet, and I've seen ARP storms a few times but never any NDP storms.

> but given almost every v6 deployment for the last 30 years is dual stack all it does is increase complexity.

Yeah, IPv6 is great, but dual-stack is fairly annoying, and given that IPv4 is the older protocol and still essentially mandatory, I definitely get why people dislike IPv6 (even when it's really IPv4 that's the problem).

[0]: https://en.wikipedia.org/wiki/Path_MTU_Discovery

ivlad 8 hours ago||||
NDP is not simpler than ARP. For one, NDP relies on link-local addresses to work which in turn relies on MAC multicast where ARP relies on MAC broadcast only.
inigyou 12 hours ago||||
The only one I don't understand is how NDP is simpler than ARP. ARP is an Ethernet broadcast while NDP is built on IPv6 multicast which creates a recursive chicken and egg situation.
gucci-on-fleek 11 hours ago||
> The only one I don't understand is how NDP is simpler than ARP. ARP is an Ethernet broadcast while NDP is built on IPv6 multicast

ARP is a special protocol implemented on the data link layer, while NDP is just another type of ICMPv6 packet.

> which creates a recursive chicken and egg situation

I believe that NDP mostly uses the special ff02::/16 link-local multicast addresses [0], which don't require any configuration to use.

[0]: https://www.iana.org/assignments/ipv6-multicast-addresses/ip...

commandersaki 10 hours ago|||
Considerably simpler? There's two ways (maybe more?) to autoconfigure v6 addresses on a host, I'll never know or remember which to use. In v4 there's DHCP, that's all you need to know (nobody uses BOOTP). These endless choices go on and on with v6 with umpteen transition technologies to work with v4.
BadBadJellyBean 12 hours ago|||
I'm interested, apart from the chicken egg problem, what are things that you found bad about IPv6. What do you think is overengineered?

I personally found that the features I interacted with were useful (SLAAC, address size, router advertisements, ...) and the changes made it cleaner (removal of broadcast for multicast, removal of fragmentation fields, ...).

tormeh 12 hours ago||
> apart from the chicken egg problem

"But other than that, Ms. Lincoln, how was the play?"

BadBadJellyBean 11 hours ago||
I am more interested in the technical perspective than the deployment perspective.
inigyou 12 hours ago||
Did you call your ISP and ask? Some of them support it but won't enable it by default.
shevy-java 13 hours ago||
I want Google gone. This company is causing too many problems.

I am still sometimes using Google Search. First results are now almost always videos on youtube, aka self-promo. These videos are in 99.9% of the search results I use, totally useless and worthless. Even searching on youtube has recently gotten worse. It is also crap now. I know that because I bookmark various videos, and I can not find older videos anymore either. I can eliminate some results I don't care via ublock origin hero-blocking this Google garbage, but I really think we should no longer allow this de-facto monopoly to worsen the global situation any longer. The USA is protecting these gangsters - it is time to have true legislation that gets rid of that mafia bloc that is Google.

rkcr7 12 hours ago||
[dead]
tsouth2 10 hours ago||
[flagged]
brador 12 hours ago||
2026. Literally no reason to be using this outdated limited addressing.

New regex: IP(any collection of numbers and dots).

Now we have infinite IP address possibilities and no one controls the space.

Done.

codingdave 11 hours ago||
Do you think routers perform their work using the human-readable addresses?

If so, that is incorrect. They use the binary values. The actual difference between IPv4 and IPv6 is that IPv6 uses 128-bit addresses, not 32. So you can devise whatever human-readable abstraction you like, it won't change how networking actually operates.

brador 11 hours ago||
And there’s no reason we should be limited to 128. It’s all just so dated and stagnant.

Chips can be made that dwarf that limitation, instead we’re stuck with this decade old nonsense to “work around” again.

Flip flopping between “the code needs it” and “the chips need it”.

inigyou 9 hours ago||
How long should addresses be? 256 is good, lets you encode a whole ec25519 key. 512 for expandability? 1 megabyte for post-quantum?
brador 8 hours ago||
Why cap it at all?

If you can process 512 then you get access to those, else you don’t.

Let the free market decide where it’s comfortable like it did with wireless security.

inigyou 8 hours ago||
What good is a standard if it doesn't make devices interoperable?
brador 8 hours ago||
Catcher pitcher model. Pitchers pitch, catchers decide what to catch. You want access to the 512 space, pick up the 512+ capable device.

Free market decides where it lands.

If there’s nothing of value at 512, it’ll naturally flop.

inigyou 2 hours ago||
So why have a standard at all then? I want access to the Google Verizon space, I buy a Google Verizon device. The most flexible standard: one that imposes no requirements at all and allows vendors to do anything.
inigyou 12 hours ago||
What does a packet header look like?
xyst 13 hours ago||
Took them long enough. Now if only Google would follow with their own services.

Sure Gmail has ipv6 enabled and routable ip6 MX. but sending to those addresses is often rejected and forced to retry over ipv4.

Don’t get me started on gh

rvba 13 hours ago|
Great example of how fixing things "the correct way" does not seem to work sometimes.

They added those new addresses that can store more information.. but this requires a rewrite of old software to make it work.

If they used the old >bolting on top< method by extending ip4 from 4 octets to 8 (or more) octets, then old software could be extended much easier too / probably addresses could be simply mechanically translated too, so ancient software can work.

throw0101a 9 hours ago||
> If they used the old >bolting on top< method by extending ip4 from 4 octets to 8 (or more) octets, then old software could be extended much easier too / probably addresses could be simply mechanically translated too, so ancient software can work.

In every fucking IPv6 thread this "just add more addresses" idea comes up. There is no "just" in expanding the address space:

"""

Whether you expand the address size to 33, 64 or 128 bits, all IPv4 implementations will discard the packets. So it's a matter of mathematical and physical fact that to expand the address size, you must change the protocol, and that means two things immediately:

1. You have to change the version number.

2. You have to add new code to handle the new version.

Furthermore, you don't want to split the Internet in two, so you must design a method of interworking between the old version and the new version. Annoyingly, you need to do that in a way that can be done completely in machines that know about the new version, because other machines don't know anything at all about the new version, by definition. So,

3. 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.

This has been known for more than 30 years [RFC1671], although people still sometimes try to deny it.

"""

* https://github.com/becarpenter/book6/blob/main/01.%20Introdu...

Any IPv4+ idea that "just" adds more address bits will same issues we've faced with IPv6.

mahboi 6 hours ago|||
Yes, we want ipv5 that just does 1, 2, 3 instead of ipv6 which does the most complicated variants of those and more. We didn't have requirements 4. change all the pre-existing addresses 5. make addresses randomly assigned 6. make routers accept inbound connections by default 7. give every device its own public IP by default. Ipv6 did those anyway.

Like I own 8.8.8.8. You want to add more bits, fine, I'm 8.8.8.8.0.0.0.0 now. If anyone switches to the new thing, they know where to find me.

throw0101a 11 minutes ago|||
> Like I own 8.8.8.8. You want to add more bits, fine, I'm 8.8.8.8.0.0.0.0 now. If anyone switches to the new thing, they know where to find me.

Yeah… from the above link:

"""

Incidentally, "IPv8" proponents often ask why IPv6 didn't simply stick some extra bits on the front of IPv4 addresses, instead of inventing a whole new format. Actually, we tried that: the "IPv4-Compatible IPv6 address" format was defined in [RFC3513] but deprecated by [RFC4291] because it turned out to be of no practical use for coexistence or transition. The related "IPv4-Mapped IPv6 address" format is still valid and has a role in the POSIX socket API. Mappings of this kind also figured in the moderately successful coexistence technologies known as 6to4 [RFC3056, RFC3068] and Teredo [RFC4380], which have now been overtaken by events.

"""

* https://github.com/becarpenter/book6/blob/main/01.%20Introdu...

The people who created IPv6 weren't stupid: if you think you've thought up of a new idea, you probably haven't. Your "new idea" is either in the exact same situation as IPv6 or it was actually attempted and ended up being discarded.

tolien 5 hours ago||||
> 5. make addresses randomly assigned

and

> 7. give every device its own public IP by default.

Both of these are optional. Don’t want them? Don’t use them - if you don’t configure them, it won’t happen.

> 6. make routers accept inbound connections by default

That’s not a new feature with v6.

> Like I own 8.8.8.8. You want to add more bits, fine, I'm 8.8.8.8.0.0.0.0 now. If anyone switches to the new thing, they know where to find me.

Now you (and everything in between) have to be able to handle packets addressed to 8.8.8.8 and 8.8.8.8.0.0.0.0, so you’ve done point 4 without knowing it.

BadBadJellyBean 3 hours ago|||
The problem with IPv6 is really not the changes it made. Support was flaky for a while but that is pretty much over.

The problem is that you have to deploy it. You have to handle the bigger IP space safely, you have to assign the IPs, add DNS records, routing, etc. All this is work and the pressure is low. NAT has mostly taken that away.

Nothing would have saved us from that. There is no way to expand the number of addresses from IPv4 to more than 32 bits apart from a new protocol. There would always be software and infra changes. The server still needs to be changed to a new IPv4+ address, the client needs a new address, there needs to be internet routing for that address.

There were of course changes that were more than just a bigger address space. But I think that if you have to make software changes anyways you could also add some improvements. SLAAC is pretty nice (you can use DHCPv6 if you don't like it). Removing Broadcast is a good idea. Fixed header sizes are an improvement. There is a lot in IPv6 that are really smart ideas. None if these changes are the reason why it hasn't been fully adopted yet.

tolien 5 hours ago||||
If anything demonstrates the Dunning-Kruger effect on this forum, it’s the “just add more bits” crowd.
CableNinja 7 hours ago|||
The issue the GP is making is that rather than devising a whole new protocol altogether, including resolution and assignments, other things like that, adoption likely would have been much faster and wider.

Had the original plan been simply "extend address space" instead of "extend address space and while we are at it revamp and rewrite every part of the whole scheme including assignment, discovery, and everything else we see wrong with ipv4"; we would be in a much better place.

Adding extra address bytes would of course require new changes across the internet, but that change would be easier to swallow compared to having to rip and replace large swaths of processes to make ipv6 work because of all of the other changes that came with ipv6.

Also, the stupid idea of turning addresses to hex as the default, and more specifically the dumb :: shortening methods really made it confusing for everyone and didnt help at all in the efforts.

inigyou 12 hours ago|||
Actually no software rewrite is needed because the Berkeley Sockets API is agnostic to address format. If your software requires a particular address format, that's a bug. if you pass an IPv6 literal to getaddrinfo, you get a result with an IPv6 address structure and it tells you the IPv6 socket type you need to connect to it.
mkj 8 hours ago||
getaddrinfo was added after ipv6. Software had to be rewritten to use getaddrinfo.

Prior to that programs used gethostbyname() etc, which only works with ipv4.

BadBadJellyBean 13 hours ago|||
There is no space to put the additional octets. Supporting this would have needed a rewrite anyways. Nothing won there. They took that as a chance to improve the protocol overall.
johannes1234321 13 hours ago|||
Software availability isn't really the problem. For most software there was no change at all ("connect to that host" or "listen to any device" and operating system will handle details), most software which needed adaption had it for a while (picking up a devices explicitly, handling of IPv6 addressees, ...) while maybe not equally good (missing GUI improvements for better handling of IPV6 addresses)

The problems, as I observe, are more in network infrastructure, routing, etc.

noduerme 13 hours ago||
I never heard this idea before, but more octets would be a lot prettier!!
inigyou 12 hours ago|||
Are you just talking about how you write the addresses or are you talking about the actual protocol?

The IPv4 protocol has 4 octets each for source and destination address. Period. If you change that, your packets won't work on any IPv4 routers or software any more.

If you want to write IPv6 addresses as numbers separated by dots no one's stopping you but I don't see how it's better. They switched to hex because the old format was too long.

BadBadJellyBean 13 hours ago||||
They added 12 more octets. I mean we could have written IPv6 addresses in the old format but I don't think that

42.0.20.80.64.1.192.15.0.0.0.0.0.0.0.113

is easier to remember than

2a00:1450:4001:c0f::71 (or 2a00:1450:4001:0c0f:0000:0000:0000:0071)

rvba 12 hours ago||
Tell that via phone to your grandmother.
BadBadJellyBean 11 hours ago||
Why would I do that?
Hendrikto 13 hours ago|||
You have not heard if before, because that is the most naive and stupid take imaginable. It is the “let them eat cake” of networking.

It does not work like that. Put extra octets where exactly? Where would a hardware router put the extra bytes? Where would software with 32 bit buffers?

You would still need to replace all of the software and hardware and have the exact same problem.

rvba 12 hours ago||
Your hardware can do Natural Address Translation. More octets is basically taking this idea further, to make a "big NAT".
BadBadJellyBean 10 hours ago||
You are aware that packets don't magically appear at the server side when sent by a client, right? All packets have to be routed to the destination by several routers. All these have to understand the full address to route the packet. The IPv4 header is strictly defined though. It says 32 bits for the source and 32 bits for the target. If you change anything about that all IP parsers will go haywire. If you put the information somewhere else, every router that doesn't understand that will send it somewhere else.

Every client, server, and router, every device that uses the address needs to understand where it comes from and where it's going. That means all the software needs to understand the protocol. So instead of having incompatible implementations live within the same protocol and make a lot of chaos it's better to have a new separate protocol that can be implemented gradually. Now the distinction is between having or not having IPv6 connectivity and my package on IPv4 goes no where because it hit a router that doesn't understand the extension.

More comments...