IPv4, IPv6, and a sudden change in attitude
apenwarr.ca
apenwarr.ca
From an ISP's point of view IPv6 is a lot of No Business Case. Those three words are the death knell for any proposal to do anything in any business that expects to be here next year. It has exactly nothing to do with the geeky I-could-have-designed-it-better arguments about the technology.
If you are an ISP that is a going concern, with a bunch of customers sitting on IPv4 addresses, then handing out IPv6 addresses makes no difference, except when it breaks something. You still have to give your customers just as many IPv4 addresses. So why bother?
If you plan to migrate your customers to IPv6 then you are a lunatic. Its going to break stuff. Lots of websites don't exist on IPv6, and customers are going to notice. Also your customers have spent the last 20 years slowly picking up bits of IPv4 lore, like the vital importance of 192.168.0.1, and are going to be puzzled when this doesn't work any more. All of this translates into higher support costs and more customer churn.
Also, your allocated block of IPv4 addresses is a valuable asset in its own right; not only does it have real financial value (around $20 per address at present), but it also acts as a barrier to entry for competitors; if you want to set up in business as an ISP you are going to have to acquire some IPv4 address blocks from somewhere, and they aren't making any more of them. Managers are trained to look for barriers to entry to their industry, and the current IPv4 situation is exactly that. No sane manager is going to do something to make it easier for new competitors.
Eventually, of course, the dam is going to break and IPv6 will become ubiquitous. ISPs will decide that buying blocks of IPv4 addresses costs more than providing new customers with IPv6 plus some kind of carrier-grade NAT for legacy IPv4 addresses. More website hosting companies will support IPv6 in response, and suddenly IPv4 will be so last-decade.
According to https://www.google.com/intl/en/ipv6/statistics.html#tab=per-..., IPv6 adoption in the US is above 42%. Was that all done by lunatics?
if you disagree, i'd appreciate if you could explain why...
> they only run into problems if they connect to a wifi that doesn't support IPv6
is like 99% of the problems IPv6 devices encounter.
at least it's a solveable problem, because it's in the customers sphere of influence, whereas getting all websites i am interested in onto IPv6 is not.
em-bee: IPV6 IoT only run into problems if X
avianlyric: X is like 99% of the problems IPv6 devices encounter.
em-bee: thanks. i didn't realize it would be that bad.
What new information did avianlyric bring? Was that not a re-statement of what came before?
only running into problems if X
implies that X is a small problem.
but 99% points out that X is a big problem.
I occasionally find websites that are broken and don't load, but that only happens rarely and it's not exactly a problem that's exclusive to v6.
See also fossil fuels.
The problem with ip6, if there was only just 1, is that they cared more about the engineering than what customers wanted/needed. their attitude was: if they dont use it, well they are just stupid, everyone else will use it and have to switch anyways.
NAT64/DNS64 (iOS): Your device only gets an IPv6 address, but when it queries an ipv4onlydomain.com, it receives an IPv6 address mapped to the domains IPv4 address. When it sends packets to it, they are translated by the ISP to IPv4. All their customers remain IPv6-only. This method requires apps to be able to handle IPv6 addresses, which Apple enforced.
XLAT464 (Android, Windows): your device gets an IPv6 address. The OS translates IPv4 packets to a special range of IPv6 before sending them out, because you’re only connected over IPv6. The ISP translates them to IPv4 to reach legacy services.
The benfit is: absolutely no NAT for IPv6 packets. Complete end-to-end connectivity.
192.168.0.1 shouldn’t be glorified. Good riddance. We have mDNS now, just have the user type router.local into their browser.
Fun trivia:
A few years ago I wrote a kernel module, that together with existing kernel mechanisms allowed almost all transition tech at a time, and ended up in a bunch of CPEs:
https://github.com/ayourtch/nat46/tree/master/nat46/modules
You can see the pull request activity... two pull requests in the past month... before that it was last time in 2017. So some things seem to be moving.
do the privacy extensions (which I've heard of, but don't get at even a basic level) allow a little privacy in this scenario?
Remote servers will see the privacy address, but they won't know which machine the address belongs to. The addresses will also be abandoned after a maximum of a week, so you can't trawling through your old server logs to find active v6 addresses either.
They'll still be able to see what network you're coming from, but that's not something that NATing outbound connections from your network would help with anyway.
By all accounts, many of us in the networking space predicted that this would absolutely, positively, without a doubt occur by 2010.
Well...
Comcast made IPv6 on-by-default to all residential customers some time ago (IIRC) and available (not sure if on-by-default) to all business customers. [1] Verizon requires all LTE devices to support v6 [2] and achieved >70% penetration in 2016 [3] (I'm too lazy to find a more recent statistic.) T-Mobile launched v6only in 2014 [4] and hit >90% in 2018. [5]
> Eventually, of course, the dam is going to break and IPv6 will become ubiquitous. ISPs will decide that buying blocks of IPv4 addresses costs more than providing new customers with IPv6 plus some kind of carrier-grade NAT for legacy IPv4 addresses. More website hosting companies will support IPv6 in response, and suddenly IPv4 will be so last-decade.
In short, that happened.
[1] https://business.comcast.com/help-and-support/internet/comca... [2] https://www.apnic.net/wp-content/uploads/2017/01/vzw_apnic_1... [3] https://archive.today/20160719154102/http://www.worldipv6lau... [4] https://www.internetsociety.org/resources/deploy360/2014/cas... [5] https://pc.nanog.org/static/published/meetings/NANOG73/1645/...
This implies an ISP can do math. Frontier acquired lots of IPv4 addresses w/ it's $10B purchase of Verizon assets(in 2015 & $7B in 2010 & 2B of AT&T).
Frontier has no plans to ever deploy IPv6.
Just keep shipping routers that support both IPv4 and IPv6 and you won't have a problem. If IPv6 gets popular enough, you won't even need NAT on that interface--it will just be an admin network. This is only an issue when major OSes start dropping IPv4.
'If we were feeling snarky, we could perhaps describe IPv6 as "the String Theory of networking": a decades-long boondoggle that attracts True Believers, gets you flamed intensely if you question the doctrine, and which is notable mainly for how much progress it has held back.'
In standards bodies you will have a 'True Believer' about a particular topic. They will push it for years and years, and eventually get their way. The idea isn't bad, and would be great if included in the spec from day one. Unfortunately adding it to what we have today causes massive breakage/incompatibility.
Maybe I am just being resistant to good change. It just is frustrating because in most cases the 'True Believer' isn't going to go worry about the real-world impact of the change.
This phenomena seems to be hurting a lot of programming languages as well. So much harder to say no, and idealistic people are always going to find a way :)
v6 also has pretty much every backwards compatibility mechanism that can work with v4. It's hard to see how it could've done any better, and nobody I've ever talked to has managed to come up with anything that a) would work and b) isn't already a thing v6 does or can do.
I've seen plenty of proposals that don't satisfy those two conditions (like, "just add an octet" or "just make the numbers go up to 999")...
I liken it to a commercial kitchen. Large numbers of identical steel pans, everything measured in grams, Cambros, walk-in refrigeration. Ideas and tech that are unlikely to catch on in the home kitchen, but when you operate at a larger scale, invaluable.
> Ideas and tech that are unlikely to catch on in the home kitchen
Given the posting time I’d guess you were likely not US based so I found this surprising.
Even if that is so, then I continue to be surprised every time I rediscover the fact that the US hasn’t moved towards metrification.
Edit: rereading this the wording is harsher than intended. So to add: Either way the wording tickled me for some reason. Whether intentional or not, thank you (genuinely) for the smile this morning.
I think having easy-to-pronounce names for the metric units would help. Kliks are much better than kilometers.
It’s also interesting that in speech I often hear (and find myself), contracting to the SI prefix itself when the unit can be derived from context.
For example: “It’s 25 millis” [long]
I also have a soft spot for fractional units and different bases (e.g. 12, 60, etc) over decimal, but I can admit the practical case is comparatively weak and inconsequential.
Something very relative to where the author lived and developed the preference. This changes from person to person, and region to region. "Not that cold" could be -25C in Siberia (well... not with the recent heatwave) or +25C in Quatar.
It makes sense for the whole world to use a common measuring system (and not just for temperature), perhaps even one where 1 degree is equal to 1 degree Kelvin since this would fit better with the science crowd. But whatever point of reference is chosen it will definitely fall short of expectation in different parts of the world. The freezing point of water as the 0 is as good as any. Body temperature (~37C) could also be a universal 0 with plenty of advantages and disadvantages that I never considered.
Room temperature has benefits as a basis point, water freezing does too, everything else is much more arbitrary.
It's probably worse then that since "real feel" is strongly influenced by humidity or wind. What I meant is that body temperature is more or less universally applicable to all humans, something relatable but with no benefit over the freezing point of water.
Room temperature isn't that much better. It's a bit more useful than body temperature but far less precise, could be anything between 18 and 24 C depending on who you ask.
Fahrenheit is honestly more useful, because 0 is uncomfortably cold and 100 is uncomfortably hot. Trying to figure out what temperature I need a jacket or AC for in Centigrade requires a lot more memorization -- and it's something I deal with far more on a day to day basis...
And why is 0 is uncomfortably cold and 100 is uncomfortably hot more useful? Same thing as in the article.. avoiding negative numbers - why?
Some earlier fastener standards were somewhat arbitrary, but mechanical engineers have calculated "optimal" values for these parameters, and e.g. the ISO metric screw thread parameters are based on such calculations.
https://en.wikipedia.org/wiki/Thousandth_of_an_inch
I'm 100% American and I despise the imperial system so much. Maybe our plummeting stature in world politics and power will force us to convert. Not exactly the way I wanted it to go but a silver lining is still a silver lining.
Which is nice because having fewer units make it easier to compare, even if converting in metric system is easy.
Product specs are often in inches like 3.9 inches (which is ~ 100mm)
Although sometimes it's the opposite - computer pins are commonly 2.54 mm apart (0.1 inches)
I couldn't care less about which system is used, i just want there to be only one. I'm not a fan of owning two sets of tools, and I'm not a fan of working on a car and coming across something I need my second tool set for because people can't figure out what system to use.
And that's the fallacy. Those things don't need to talk to each other (my toaster doesn't need to talk to your fridge), they do talk to a well defined peer (gateway, server, whatever). There might be someday more than a few billion networked things out there, but there won't be even remotely a billion gateways on the Internet in the foreseeable future.
Enterprises generally don't like outside elements access elements within their network at will. That's not going to change, it will always be through some form of gateway.
If you've never had to deal with clashing RFC1918 blocks when doing a VPN or network merger, consider yourself lucky. It's a giant headache that can never be properly fixed, yet v6 completely avoids it.
> It's a giant headache that can never be properly fixed, yet v6 completely avoids it.
It's a headache, sure. But that it can't be fixed is hyperbole. All it takes is reassignment of IP addresses, there are plenty after all. The headache comes only from IP addresses stored in places they don't belong. If they were only stored in the DHCP and DNS servers, a script could fix this in no time. Part of the problem I witnessed was, that people are hesitant to use DHCP for static IP addresses (servers) and some devices (switches) are incapable of using DHCP.
I also observed (much earlier) misguided sysadmins using a scheme encoding location of a device in its name. That of course let to horrible long, unpronounceable names and people remembering and using rather its IP address (that danger of course is greatly reduced with IPv6 ;-}
I originally wrote "a giant headache that never goes away", but changed it because it is possible to renumber the networks. But... that doesn't properly fix the problem. You'll hit the exact same issue the next time you go through a merger.
Worse, RFC1918 isn't actually that big. There are plenty of companies out there that have either exhausted it or have to be very very careful with their use of it to avoid running out. At some point you run out of space to renumber into. You're also going to have issues with e.g. VPNs to people's home networks, where renumbering isn't viable.
Works on my phone, though, so ¯\_(ツ)_/¯...
I’ve considered emailing to ask them to support it but haven’t come up with a persuasive reason for why they should.
It'll give you an idea if your ISP is advertising IPv6 routing on their network if they have some prefixes. So whether it's something they're working on or not.
I don't know about you, but whenever I see an ISP, hosting provider, or website that supports IPv6 I think: These guys know what they are doing, they care about quality, and they actually plan for the future.
I'd much rather do business with someone that supports IPv6 because of the above impression.
If I was running my own business that provided network related products or services I'd make IPv6 support required because I don't want to seem like I'm incompetent/lazy/ignorant.
So in short the persuasive reason is that it would improve their reputation. Technical people notice these things and base their recommendations on these sorts of impressions.
I get a 0/10 from the test-ipv6.com site
I logged into my parents network and they get a 10/10
As I said we live 30 miles away and we both got fiber 2 years ago.
The main problem with it is that the tunnel server is hosted in Sweden, and while sometimes it's actually lower latency than my IPv4 connection (due to better routing, I guess), every geolocating website (eg. YouTube) thinks I'm Swedish :/
Also I have to block IPv6 for Netflix and Yahoo because they block HE IPv6 addresses.
https://www.google.com/intl/en/ipv6/statistics.html
Also, with most cloud hosting (AWS et. al.) it’s fairly trivial to enable dual stack support.
If you are spinning up enough resources to exhaust even a /16 of IPv6, you can probably use your monthly bill as leverage to force the issue.
I say AWS IPv6 support is pretty atrocious. You still can not set up pure IPv6 VPC, even for internal use, afaik most AWS services are still accessible only through IPv4, IPv6 VPC has lots of weird limitations, etc etc. Somewhat sad, considering that one would think AWS would be one to benefit from v6
Still, hosting an IPv6 service on AWS is fairly simple (at least in my experience).
The amount of damage adherence to Postel's Law has caused can never be exaggerated. It has made securing TLS extremely difficult. It makes every kind of migration or evolution difficult, and interferes with securing anything.
The way to enforce The Anti-Postel's Law is with tests that include requests and responses to be rejected, and fuzzers that explore the whole boundary of well-formed interaction. Such a test will never detect every improper toleration, but it will make equipment and programs that don't conform hardly ever work, until they are fixed.
People used to like compilers that were lax about syntax requirements and provided lots of extensions. GNU compilers obliged, for a while, and then stopped. Now, even users of Microsoft compilers have demanded Standard conformance, and have nearly got it. A compiler that won't report errors is a way to generate lock-in. That was fine with Microsoft until they understood that it was locking them in, too.
"Symmetric bandwidth" or "Running my own server" are not criteria that can be used to choose an ISP because there is NO ISP that offers either one in most of the country (US).
Since nobody can run their own servers, there is no pull for a larger chunk of addresses that would drive IPv6 adoption.
They have a lot of money.
They can out lobby you. They can undercut your pricing. And they cut "selectively upgrade" areas that would be profitable to come into.
Google couldn't cut through them. Mainly because as soon as Google threatened to come somewhere *WHOA MAGIC! POOF!" and the ISPs suddenly had orders of magnitude more bandwidth for half the price. Funny that.
I'm actually glad that ISPs default to only giving one IP address per household. Not having most devices directly reachable from the internet is an extra layer of security. It should never be the only one but can be an extra step to make it harder for atttackers to introduce malware.
With FTTH there are two common deployment strategies: dedicated fiber per customer (then there is no reason at all why it wouldn't be symmetric) or (G)PON. With GPON the issue is that multiple customers share the downlink and uplink. And while it's easy to make the downstream burstable (meaning you can use more than 1Gbit/N - with N being the number of customers sharing the upstream GPON port), since only the ISP transmits in that direction for the upstream each customer gets assigned a timeslot to transmit (since GPON only uses a single wavelength for transmit and another one for receive). This means that even if the connection is symmetric at the ISP end (1G down and 1G up) one customer only gets 1G/N uplink bandwidth while they might briefly be able to completely saturate the downstream.
You could run a separate strand to each house, or use fancier optics for DWDM, but both of those add significant expense.
NAT is not security.
Here's an article from F5:
https://www.f5.com/services/resources/white-papers/the-myth-...
And why would the devices be reachable over the internet?
Your router should firewall by default its LAN side subnets.
If you want to employ NAT on your network, that should be your choice, not your ISP's.
There seems to be more competition here in France than in the US but while I've previously used ISPs with IPv6 support my current one does not. Even as someone who prefers to have IPv6 it's not something I considered when signing up and I probably wouldn't pay much extra for it, as a consumer.
Symmetric bandwidth and connections for anything more than a personal server are available here but only on business plans. Those are easily more than 10x consumer prices so I can't imagine going for them unless you need the SLA's.
Or create some cutting edge application that will work only on ipv6
I know ipv4 users like author mentioned will still be able to access them because someone else will plug in. We are stuck with ipv4 for decades, aren't we?
Probably. All the IPv4 only devices being made now aren't going to get IPv6 and they don't have the capacitor plague or junky lead free solder of the early 2000s to kill them. They'll probably live a long life, or at least until 2038.
This was always going to be the case, even with more speedy adoption op IPv6. It's also not really a problem.
Making services just available for IPv6 is going to be a recipe for disaster of the service, you've now made the service unavailable for 80-90% of your audience, and they can't do a thing to fix it (their ISP has to). You need to be better than start-up-era Google, Facebook, YouTube or Netflix to push through that and force ISPs to adopt IPv6 to support you. Basically impossible.
Forced adoption is a much better model. Apple forcing iOS apps to work on only IPv6 connections if they want to get into the app store probably is one of the largest drivers of adoption by businesses small and large, and IaaS providers especially.
51% in the USA.
Still too many to make it practical, but getting there.
To give you some idea of the time frame: Windows XP uses privacy addresses.
It looks quite periodic when you zoom in: at first I thought it might be different adoption rates in different timezones, but there's only one sample available per day so that doesn't explain it. Anyone know what might be going on?
This bit is solved pretty well by https://en.wikipedia.org/wiki/Multipath_TCP, but of course, both ends of a TCP connection have to support it.
Previously it was quite easy to get IPv6 connectivity at home when your provider only offered IPv4. In fact you'd get IPv6 connectivity by default. But at some point 1 or 2 years ago that just stopped working altogether, and my recent attempts to get IPv6 over Teredo back failed: you can establish tunnel, but it does not transmit packages to IPv6 hosts.
Now I am at the hands of my ISP.
I'm running the NAT64 myself, but it could be done by the ISP just fine, at which point they wouldn't need to provision me with a v4 address. There are major ISPs out there that do exactly this (for example T-Mobile in the US).
* It is almost definitely not worth it commercially, unless you've carved out your space in the community of people who specifically want IPv6
* It is much, much harder to work with than IPv4 and I don't believe this is only a lack of exposure
* Dual stacking is expensive and requires staff to pursue training with very uncertain levels of reward
IPv4 address space shortages.. could have been addressed by doubling the number of bits in an IPv4 address, rather than throwing out the many tools that already worked.
The last point in particular is heresy to network engineers, but perfect sense to commercial types. Adoption should be cheap, if not free. The huge up front human cost of training people to operate IPv6 is uneconomical. A 64bit IPv4.1 would be fine for decades.
No, it still absolutely would have completely broken everything and anything that used ipv4, all the tools would still need to be thrown out.
There is basically no way such a proposal could work and maintain any sane level of compatibility.
Its evident right on its face, how exactly would an ipv4 only tool connect to a 64 bit "ipv4.1 address" ?
The primary argument for adopting IPv6 is that IPv4 will be exhausted. Not that there’s something good about IPv6 that I would want to have. Personally I hope it never succeeds in getting sufficient adoption, so that eventually we can have a good IPv7 that’s just a bigger version of IPv4.
"No way", "weird persistent idea".
This despite many reasonable people suggesting it.
Deploying IPv6 at scale is deploying a totally different protocal. What is irritating is that it's not just a larger set of bits, everything changed making adoption and tooling MUCH much harder.
"All the tools would need to be thrown out"
Totally and absolutely false. Because an extended Ipv4 would have the same underlying concepts you could modify the tools and continue to use them.
From address assignment (3 ways now) to the dynamic address privacy extensons (don't actually play well with IPSEC configs) to doing renumberings on prefix changes (100% nightmare) to all the training / learning new things (costs money in bigger orgs) they seem to have purposely made this change extremely hard.
Good news, I'm on board more or less with the migration at this point, and if I am a good marker of average reasonable interested in new things but not wasting tons of time then this is a good sign.
But boy they could have made this whole thing easier
> Totally and absolutely false. Because an extended Ipv4 would have the same underlying concepts you could modify the tools and continue to use them.
Exactly. ARP64 and DHCP64 etc would be minor modifications and much easier to pick up.
EIP (Extended Internet Protocol) [0] was proposed in 1992 as a replacement for IPv4:
"EIP achieves maximum backward compatibility with IP by making the extended space appear to be an IP option to the IP hosts and routers.
When an IP host receives an EIP packets, the EIP Extension field is safely ignored as it appears to the IP hosts as an new, therefore an unknown, IP option. As a result, there is no need for translation for in-coming EIP packets destined to IP hosts and there is also no need for subnet routers to be upgraded during the transition period."
But v6 doing something has never stopped people from complaining that v6 sucks for not doing the thing in question...
Can you give some examples of what these additional improvements are?
Generally speaking the administrative hacks which enable the internet to keep going as-is can go away. NAT in particular breaks lots of applications which is why STUN/TURN servers are needed for many VoIP applications today, so that two NATed clients can talk directly.
The address space issues mean that even if the registry gives out silly allocations (like the UK's MoD having a /8) the space is so near infinite that it won't matter. Even the most incompetent governance can't exhaust the address space.
Because of that DHCP may be needed and ARP as well... nice right?
Getting rid of NAT is also questionable and there are now tools to do NAT with IPv6. So common sense and learned practices win. (I still prefer NAT and firewall, dedicated servers can have port forwarding or separare ip allocated)
Address space is the only feature worth anything as original poster mentioned.
This is a nice read on needless issues due to redesign of working protocol: https://blog.bimajority.org/2014/09/05/the-network-nightmare...
Nobody from the outside will know who made request x from the n devices in the network.
NAT is mainly privacy/obfuscation.
Can you do that with a firewall?
Another use case is connectivity:
- digital ocean gives 16 ipv6 addresses, how can I vpn through it with more hosts without NAT?
- me as a lone node on another network want to host a VPN but have a limited set of IPv6 addresses available.
- tethering
Note: I will actually be setting up a network with NATv6, DHCPv6 and a firewall in about a month, so I do need it, and since tools are available, I am not the only one.
That is not the original purpose of NAT. What about IPv6 privacy extensions?
> Another use case is connectivity:
Ok, there might be valid use cases for NATv6 (I am not an expert), but it shouldn't be necessary for typical consumer home networks.
I have no problems with NAT as long as it a) doesn't block incoming traffic (that is the job of a firewall) b) doesn't perform symmetric address/port translation (breaks peer-to-peer applications).
Privacy extensions are a hack and still uniquely identify someone even if it changes once a day.
NAT hides them all the time.
If I have 100 nodes, good luck identifying them over PNAT as an ISP, without PNAT you have nice tags per each node... they change once a day but you match to last days traffic.
Onto connectivity:
a) block incoming traffic - sure - blocking with firewall, NAT is redundant, its a poor mans firewall BUT if you misconfigure the firewall or is disabled, you are screwed, whereas NAT just works.
b) break peer-to-peer applications.
Port NAT is needed for privacy, so this is a given.
I also like it breaking peer-to-peer apps I only want specific nodes to be able to host stuff if ever.
For home networks STUN/TURN works just fine without having external parties know who is placing the call.
Port restricted NAT is sufficient: it serves the actual purpose without breaking peer-to-peer systems.
Note: I'm currently developing a peer-to-peer app.
ARP is not a thing in IPv6. NDP is, and has always been, a required part of the spec.
(I agree with the rest of your post)
How is it much harder to work with?
It's easier to read, type, remember, share over the phone or even just plan with in a spreadsheet.
It would be pretty ridiculous to limit the number of phone connections in Japan by forcing them to use Danish-style 8-digit numbers, but that is the situation with IPv4.
I mean if you're addressing mobile, IPv6 hosting means skipping carrier NAT64 for at least t-mobile and jio. Probably other carriers too.
see https://tools.ietf.org/html/draft-tang-ipv4plus-03
Basically adds an optional area code to encode more addressable bits.