Is there hope for IPv6?
internetgovernance.org
internetgovernance.org
Coming up with a solution that looks like a huge technological advancement, with no real respect for the motivations or incentives of those who'll need to implement and use it, is a fairly common occurrence in tech and something engineers should be trained to guard against.
Pay attention developers. This attitude is all too common in our industry.
What do you find as searing pain?
I work on P2P applications, so NAT is the bane of my existence.
At this point I no longer believe you. Having worked in the ISP industry for quite some time, only a very small portion of the more technically advanced users can do this successfully. Most users dont remember their passwords to even get in their device.
Just because windows firewall security is balls doesn't justify writing a nat helper or proxy for every protocol their is. You have just accepted the abuse that nat doles out as a norm.
Ingress blocking being a side effect of NAT is the whole point of equating it to a firewall. It's roughly similar for all intents and purposes except that it also provides socket translation, and socket translation is really useful so every firewall worth mentioning also provides NAT.
That ipv6 initially did not address the usecases for socket translation outside of multiplexing addresses is probably one of the reasons it hasn't gained much ground in the decades it has been around.
Anyway, the point is that most of the headache that NAT causes application developers is also true of firewalls that block inbound connections by default. Removing NAT from the equation doesn't save you.
So if NAT is a problem for your application, so are the stateful firewalls implicitly envisioned by those who advocate for assigning unNATted public addresses to devices on home networks.
For one thing lack of NAT makes it much easier to deal with multi-homed systems. For various reasons, multi-home is much more common with IPv6 than IPv4. Without NAT I can discover thing like what an address's scope is without querying the network. Having to ask a remote server to discover a global address turns what should be an atomic operation into a potentially troublesome state machine.
NAT also create annoying corner cases when there are local peers reachable via an address which also has a NATed global address. You may not be able to tell that the peer's address is not globally reachable, which is a problem if you want to advertise that peer to others.
It’s the opposite imo. Lack of NAT makes it impossible to do policy based routing enforced at a router level, eg route VoIP over ISP 1, and Web over ISP 2. Without NAT, each IPv6 PC is issued one or more IP addresses per WAN, but has no idea when it’s appropriate to use one over the other. (SLAAC router advertisements aren’t sophisticated enough)
If the server has a firewall that blocks all inbound but 21/tcp, or is behind NAT with just 21/tcp forwarded, no data transfers are possible.
These are totally different setups from a network operations point of view, but look identical from application and user point of view.
I think this is what the parent was getting at: both setups effectivity prevent a user from accepting arbitrary inbound connections to their machine.
But do you really want to stake the adoption of IPv6 on convincing the world of that? Or should that be a separate battle?
Peer-to-peer is largely solved with UPnP port forwarding, but most of these apps can also at least be configured to use a specific port range, education can then be configured on the router to forward.
Then the are the badly designed protocols. That's perhaps a bit harsh, they have their reasons, but using multiple ports is a bit lazy vs using encapsulated packets (eg where you can send either a control or data packet over a single connection, or even send multiple data streams concurrently, in both directions).
FTP is one example, where a separate port is used for data transfers. This is "simple" from the perspective that the data port just contains the raw file contents, no extra encoding, but very painful from a network point of view. I used to support web hosting customers around 2000, when ftp was commonly used for maintaining site content, and people didn't understand when to use PASV mode, server operators didn't always setup the firewall to allow inbound data ports, and occasionally you'd run into the worst case of both client and server behind NAT.
SIP is another example. It uses multiple streams, but is built assuming everything has a public IP. The message it uses to setup this stream includes the system's IP address, which is the private non-routable IP when behind NAT.
Contrast these to a multiplexing protocol like HTTP/2, where it's basically transparent to network operators (still just a single TCP connection on 80 or 443). There's many other examples of multiplex use in more proprietary systems: online gaming, for example, sends different packet types over a single connection -- it doesn't require a separate "movement" and "shoot" port for each connected player. Most sites/apps using web sockets also work like this, with each piece of data encapsulated inside a message wrapper (usually JSON).
I'm being a bit unfair, because FTP predates NAT, and SIP was being created around the same time -- though I'd argue SIP's assumptions about the network environment (and seeming compete ignorance of NAT) were both poor and unnecessary.
Until Comcast helpfully replaces the cable modem in a working setup with a router/WiFi/hotspot abomination, so the network ends up double-NATted, and anything that tries to punch through UPnP- or TURN-style stops working.
Then they wonder why people aren’t adopting it.
(Its the same complaint I have against Let’s Encrypt. They shoved down a policy which is antithetical to helping their mission.)
Can you expand what you mean by this? I'm drawing a blank.
Still, LE seems to be wildly more successful than IPv6. I suspect in part that's because they were more technically right - or at least it's more feasible to add the automation than to rearchitect an IPv4 network - and in part because you can do manual certificate updates. (For complicated and entirely uninteresting reasons, I do manual certificate updates on my personal website every three months using certbot certonly --manual and scp, and it works.)
I'm also way more personally sympathetic to LE because they're pushing the change for security reasons (revocation doesn't work, so we need to move to very short-lived certs) and not mere elegance ones. Rolling out IPv6 as designed brings no security benefits either to the user or to the ecosystem, and carries quite a few potential security risks.
Here is a chart showing the trend for LE marketshare (under the IdenTrust root):
https://w3techs.com/technologies/history_overview/ssl_certif...
I really support LE's mission, and celebrate their success, but would feel more comfortable if a separate organisation tried replicating what they had done, running the same service but with distinct personnel and assets.
For reference, here is another chart showing the run down of the remaining IPv4 supply:
Sometimes you have to say "yes" to one powerful faction, regardless of whether their request is technically a great idea, in order to get enough political capital to fend off everyone else.
You can implement IPv6 by ditching all your network hardware, installing commodity Linux boxes, writing some patches to iptables, and insisting that nobody bring Android devices onto your network unless they run your in-house fork of AOSP. I just think most people would not consider that an option in scope.
The latest spec requires encryption. In a cable. Which might be ok for some applications, but certainly not necessary for all items. Now you have so many versions, which may or may not implement a laundry list of features. And people just want simple, no fuss cables.
I think this ship has sailed. If the alt modes fail, that's fine, but the core spec is fine.
Actually, it's still simple. For devices and hosts using USB 2.0, the only real change with the USB-C connector is a single extra resistor. For devices and hosts using USB 3.x, they only have to detect which of two pins has the resistor on the other side to select which of the two high-bandwidth channels should be used. And there are two main types of cable: USB 2.0 cables and full-featured cables, like the old non-USB-C USB 2.0 and USB 3.x cables.
The extra complexity only appears when you want the extra features which are new to USB-C: higher voltage and/or current, alternate modes, using both high-bandwidth channels at the same time (USB 3.2), and so on.
The other thing that V6 does that it should never have done is the extension header nonsense. That makes it possible to layer protocol inside protocol essentially forever. Hardware designers just love this feature. In practice, a lot of hardware vendors do not support it and just punt to exception cases when they hit an extension header. I'm a little surprised that that there isn't some widespread DOS that involves extension header handling botches.
Look at the deployment of TLS as a success story. Everyone kept on supporting both old and new, watched the percentages, and then dropped the old when the new had enough penetration.
The whole thing is also a bit of a shell game. Nobody wants to invest in it until they feel like they're "behind" if they don't. So you have a big player or two in order to make it feel like that's the way the wind is blowing.
IPv6 is a great example of how not to.
There are a handful of browsers that pushed the adoption. There's nobody doing the same in the IPv6 space.
There are areas that the browsers purposefully ignored (DNSSEC, DNS-SD) and thus their adoption is low.
And brings out the problem with IPv6- there is no sector pushing IPv6, because no sector sees the benefits.
Question is why does no sector see it? My theory is that it adds a lot complexity and planning for little gain. So no sector is going to push for it.
For ISPs, it means investments with no benefits. They do it only once their CGNAT is too overloaded or on other sign of running out of IPv4. When they do it, in the simplest and cheapest way possible, which the informed customers see as worse service, so naturally they want to avoid it.
IPv6 would help network application developers, so they could do more or do what they do now with less, but they have no impact on investments ISPs would have to do.
Then there are parties, that have working IPv4 infrastructure, feel no pressure caused by lack of IPv4, and migration would mean just expenses with zero benefits. Exactly like companies that ran login forms over http, up until browsers started to warn users. That was the incentive, that caused them to switch to https.
ASCII -> UTF8
VHS -> DVD
not as successful:
DVD -> BluRay : timing was rather close to the rise of streaming services like Netflix, Hulu, etc.
1. DVD video quality is good enough for most.
2. The Combination of DRM, unskippable portions, and similar is enough of a barrier to discourage the upgrade. Personally, I will only watch a movie on disk when I don’t have time to rip it and remove that crap.
I'd be more interested in how the HD DVD as a very visible competitor blocked BluRay adoption because of consumers wanting to wait for a winner in that war.
This assumes markets with little to no competition. But most ISPs are in competitive markets with no trend setting big players and they can't waste money investing into IPv6 or anything else that has no demand if they want to keep the business alive and healthy.
Eventually some protocol is the bottom of what a group agrees to speak rather than individuals and that protocol has a completely different set of deployment issues than abstraction layers that can be built between end stations at higher levels.
The biggest problem with IPv6 is that it a different protocol that requires special support on all levels starting from applications and down to managed switches.
Has WiFi been upgraded? I believe new devices still have support back to 802.11b.
From the client perspective there is the same level of compatibility between IPv4 and IPv6: client can connect to both types of addresses.
For new projects I use ipv6 where easy and python3.6 where possible.
Infrastructure & Software costs money and time to switch with no real personal benefit and requires a change in knowledge. Both your examples require a hard switch and don't have a nice easy transition plan. Add taking away things that are familiar to the people in the field and you have a bad, long transition.
Sure is: it weren't broke and they fixed it!
I mean, even today if you take a median python user (a devops person in a big shop, maybe) and ask them to name four major advantages that Python 3 has over Python 2... I doubt they could get past one. It's not that it isn't a better language, but for 90% of its user base who don't do library design it's almost indistinguishable. And it's incompatible!
IPv6 was similar for most of its life. IPv4 wasn't broke.
Now... it's getting toward broke. And in fact lots and lots of client ISPs (mostly mobile ones) are moving rapidly to IPv6, where their systems hit IPv6 backends of all the big content providers.
I honestly don't know that I agree with the thesis of this article. Network operators who want to deploy IPv6 in the modern world certainly can, and are. That's pretty much the definition of a smooth transition, even if its taking a few decades longer than expected.
Maybe just a decade is not all that long period and the tech community is too impatient due the historically rapid pace of changes.
If the answers are "No", "No" and "No", I would have to say that indeed, IPv6 really is a failure, after two decades and monstrous investment thrown at it, it has failed to solve any of the practical issues it was supposed to.
It's a gigantic failure, both in a costs vs. benefits approach, but exponentially so when considering the opportunity costs of being still stuck with IPv4.
- There is a lot in IPv6 that is different from IPv4. Ignoring if those changes are good or bad, it does make the transition harder.
- IPv6 was promoted way before there was demand. To some extent it is good to prepare people (and vendors). But it does create the impression that IPv6 is a failure
- Demand for IPv6 is highly asymmetrical. The party that is out of IPv4 addresses needs IPv6. But everyone who has enough IPv4 space has no reason to care.
When IPv6 was first promoted, there basically was no IPv4 market. You would just go and get more IPv4 space when needed. For the last couple of years we now have a mature market for IPv4 addresses.
It is possible to buy IPv4 addresses, but prices go up. At some point it becomes interesting to try to move traffic to IPv6.
That party is not an ISP though. An ISP is interested to provide IPv4 internet no matter whether there is IPv6 or there isn't.
Which highlights the utter failure of v6 - people are willing to pay for access to technology that v6 was supposed to make obsolete over a decade ago.
Given that there is always a cost to switching, people will consider switching when continuing on the old path will become more costly than switching.
> Even if IPv6 was completely perfect...
More specifically: "completely technologically perfect". Which is the point being made in this thread: the technical aspect is of only partial relevance. If IPv6 fails because of political problems, or "contextual ones" (like “we could make it technologically inferior but more readily backwards compatible; it would make it less awesome but easier for people to migrate”), then that is still "failure of IPv6".
If IPv6 had been perfect, it would be fully backwards compatible, and there would be no market for IPv4 right now.
Just because that isn't possible doesn't mean there isn't a middle ground.
But as far as I know, nobody came up with a credible protocol that is fully backward compatible with IPv4.
So, you can ask the IETF to come up with a magically protocol that has longer addresses and is still backward compatible with IPv4. But they are only human. So that kind of magic is not going to happen.
- you would need to restrict yourself to an extremely tiny fraction of the v6 space that's the same size as the v4 space
- you couldn't use any IPs that correspond to in-use v4 IPs because they would overlap
- you couldn't use any IPs that correspond to unusable v4 IPs, for the same reasons you can't use them in v4
- you'd have to talk a protocol that looks the same as v4 on the wire, because otherwise v4 hosts won't be able to handle it
You know what we call that? We call it IPv4.
Every major OS, network device maker, service and program supports it. I can't imagine it "will fail" in any way where everyone goes "ok, forget IPv6, let's move on to IPv7 it's the new thing" and the world says "phew, at last!".
> According to market researcher Gartner, over 1.5 billion smartphones were sold last year
That's an IPv4 internet of address-needing devices every couple of years, just in smartphones. World IPv6 day was 8 years ago in 2011, and then Vint Cerf said there were no plans for an IPv7, and 8 years later there still isn't an IPv7 coming from the IETF. https://www.networkworld.com/article/2200118/router/cerf--fu...
IPv6 can't "fail" for the same kind of reasons huge financial companies can't fail - there isn't an alternative.
As the article argues, you can't run IPv6-only. You need some strategy to reach IPv4 services on the internet because the internet is IPv4. That answer is going to be either publicly routable IPv4, IPv4-to-IPv4 NAT, or IPv4-to-IPv6 NAT. If you do the latter (or if you do dual stack) you can route directly to other IPv6 hosts without NAT - but what's the benefit? Are there systems of communication between parties on the public internet that can guarantee native IPv6 on both ends, don't want to use IPv4 NAT, and don't want to set up a point-to-point VPN?
(I am actually okay with IPv6 ULAs for private addressing on private VPNs to avoid RFC 1918 collisions/exhaustion, but that also saves you a lot of the complexity of IPv6 deployment because you don't need any network device support, you generally get address assignments from your VPN layer and don't need to think about SLAAC or DHCPv6 or anything, etc. And it's unrelated to public IPv4 exhaustion.)
- There are limits to how many devices you can put behind a single IPv4 address. There is the case of Belgium where law enforcement asked ISPs to limit CGNAT to 16 customers per IPv4 address. Obviously for law enforcement, if an address is shared between multiple customers it makes investigations harder.
- A second problem it that you may lose geographical resolution if customers for a wide area share a pool of addresses. For some ad placement you really want to know where addresses are.
- But the bigger problem is that network speeds keep growing. Compared to an IPv6 router, boxes that can do NAT at a large scale and high speed are quite expensive. So an ISP has an incentive to move traffic volume to IPv6. Relatively low volume oddball sites can go over the NAT box.
If enough of the Internet is running IPv6 that you save significantly on performance by bypassing NAT for IPv6 sites only, that seems worthwhile, sure. But also I'd intuitively find that surprising, at least at present - maybe my intuitions are just wrong about how much IPv6 there is.
I have no clue what law enforcement plans to do.
Video services use most of the bandwidth. So with youtube and netflix on IPv6, you can easily have most the traffic go over IPv6.
Another advantage is that v6 is easy to hand off early, but if you're CGNATing v4 then your v4 traffic has to go via your CGNAT routers. For cost reasons you probably want as few of those as possible, which means v4 traffic may need to go further to reach them. T-Mobile in the US is like this; v6 traffic is passed off as soon as possible and gets a relatively direct network path, but v4 traffic has to go all the way to one of their datacenters to get NATed. That can add a lot of latency.
Then the performance problems are limited to sites without IPv6.
Do you mean ~65k devices behind a single public IPv4 address? [0]
>> There is the case of Belgium where law enforcement asked ISPs to limit CGNAT to 16 customers per IPv4 address.
Well if law enforcement in Belgium asked, of course we all need to immediately work to redesign the global IPv4 internet to comply. </sarc>
That's an absolute limit of 2^16 (65k) - the practical limit is much lower.
If you only allow one connection per client, then yes, you can get to 65k with TCP/UDP.
If you want more than one connection per client (e.g. because the user wants to download content from Facebook while also downloading a YouTube advert), you need to allocate multiple ports on the NAT device.
I'd imagine that most clients need at least 2^4, and possibly up to 2^8 simultaneous connections to ensure that you don't introduce problems. At the level, you have a limit of 2^8 - 2^12 clients (i.e 256 - 4096).
For a typical provider, a large proportion of their traffic is going to go to a limited number of properties (e.g. facebook, google, youtube).
Each of those properties is only going to return a limited number of IP addresses, and all of the traffic is going to be to a very small number of ports (i.e. 443/80). I can well believe that clients connects via a single ISP to a single remote port a large multiple of times.
WebRTC is one example of something that can greatly benefit from having publicly routable addresses on clients (in practice this tends to mean IPv6). If both clients are behind IPv4 NAT that doesn't allow hole punching, they will need TURN (or media) server in order to communicate. While clients might be close to each other (e.g. same apartment building), that TURN server can have horrible routing for this set of clients. For example, it could be in Europe while both of the clients are in west coast of USA (and that's not even nearly the worst case).
When I was on an ISP with CGNAT I regularly saturated the connection tracking tables which resulted in all new connections failing until some some slots were freed up.
NAT also makes it difficult to run any kind of server at home (PCP support varies) or use any kind of p2p protocol. NAT traversal techniques don't work all the time and even when they work they may only help for coordinated connections but not for unsolicited contacts.
I care about this greatly, but I'm not clear that ISP's do. On the contrary, my ISP's TOS states that I'm technically not allowed to run my own server on my home internet plan.
This results in a stale-mate of sorts:
As a server operator, as long as you have IPv4-only clients, you need an IPv4 address. There are no [1] IPv6-only clients, so implementing IPv6 at all is a lot of work with no tangible benefits for the next x years [2].
As a client, you can't go IPv6-only without losing access to the IPv4-only services. There are no[1] IPv6-only servers, so implementing IPv6 at all is a bunch of work with no real benefits for the next x years[2]
[1] no meaning a tiny fraction that rounds to 0%
[2] x being the number of years before there's a significant number of IPv6-only servers or users.
sure, we can simply stay on v4 and encapsulate everything into UDP and use vhost or other names and simply treat v4 address + ports as the solution. economically both are costs of growing the internet. (any solution requires a lot of application changes anyhow, v6 is simpler, but requires ISP buy in, so what app devs can do?)
You could design something where the IPv4 could be left unchanged in the core of the Internet. But the core of the Internet has supported IPv6 for a long time, it is the edges where the problems are.
Just something as simple as writing an address to a log file would fail if addresses suddenly became bigger.
I disagree somewhat. You could imagine a hierarchical routing structure where IPv4 NAT servers double as IPv4ext routers and gateways. All current servers maintain an IPv4 address which, if the server is unaware of IPv4ext, will not be able to decode things like full client IP address for loging, giving an incentive for server operators to upgrade.
Meanwhile, unaware client end-points connect to IPv4ext servers just as before, via NAT, but of course don't have end to end connectivity to other IPv4ext clients, giving them a (weak) incentive to upgrade.
This would go on for a decade or two just like it did with IPv6, until the moment where virtually all firmware and software is upgraded. At this point carrier grade NATs would stop mangling, the IPv4 only packets are dropped from the core and full non-hierarchical routing can commence on the full IPv4ext address field, finally solving the IPv4 exhaustion problem, in addition to the already solved e2e problem.
I agree this backwards compatible deployment scenario is much more convoluted than a clean slate redesign, and it's hard to imagine it could have seen preferable in the 90s, before wide-spread carrier NAT was a thing.
1) As far as I know, nobody ever wrote down a protocol description, and preferably made an implementation. The devil is in the details. It is very hard to estimate if such a design would actually work.
2) At the moment, the core of the internet and just about all host operating system support IPv6. The hard part is getting the edge networks to upgrade. My guess is that your proposal would run into similar issues.
The fundamental difference compared to dual stack is that there is no technical cost to deploy it outside software updates and very little risk - aside from the dubious security benefits of NAT. Not only the core, but virtually all hardware and software on the Internet today support ipv6, but there is an enormous cost to configure it to work.
This flexibility and drop in upgradability of things like EnhancedIP comes with the significant cost of breaking the internet into 2^32 independent routing domains that prevent you for getting the full benefits of the larger address format. This is an acceptable trade off only in retrospect, after the v6 "failure".
There is very little consensus within the operator community on how to deploy IPv6. The net effect is that there is an endless series of configuration options.
Which leads to having to select equipment very carefully to make sure you get an overlapping feature set.
The problem with something like encoding extra address bits in IPv4 options is that you would have to get a large group of operators on board for it to get any traction.
For example, the ISP that I use for my home internet connection give customers a static (officially 'stable') IPv4 address. It may not be beneficial for them if a next generation internet protocol would force the deployment of NAT boxes.
The downside of dual stack is that you have to manage 2 networks. The benefit it that you manage two completely separate networks. IPv4 routing has very little effect on IPv6 routing.
Merging the two, as is done for example with NAT64/DNS64, leads to network issues that many people don't understand. I think you would get the same if you mix legacy IPv4 stacks with stacks that encode extra bits in an IPv4 header option.
This is of course completely ignoring the fact that many firewalls just drop anything that has IPv4 options. So deployment may be just as an uphill battle as IPv6.
Sure that's why you have things like IETF, to coordinate such changes. If that were to happen, the EnhancedIP option would quickly become transparent, as the core of the internet upgrades firmware in a few years. I'm not in any way proposing this to be a good idea today, let alone that it could be deployed in ad-hoc uncoordinated fashion.
> my home internet connection give customers a static (officially 'stable') IPv4 address. It may not be beneficial for them if a next generation internet protocol would force the deployment of NAT boxes.
In that case you become the owner of your own routing domain and you have the option to provide your "customers" with an extended IP address that is e2e reachable from the outside world, while NATing the rest of the legacy devices. Your ISP does not have to do anything aside from not filtering options, that's the beauty of a backwards compatible solution.
> Merging the two, as is done for example with NAT64/DNS64, leads to network issues that many people don't understand.
The complexity and fragility of something like NAT64 comes exactly from the fact that it tries to bridge two separate internets. An EnhancedIP NAT is simply a transparent router for EnhancedIP aware endpoints within the domain it controls. You can freely mix legacy and upgraded devices in your network with guaranteed interoperability and you get e2e connectivity if both end points and any NATs in the route are upgraded. The rest of the network only "sees" IPv4 traffic as far as they are concerned.
- Memorising an IPv4 address is about as easy as memorising a phone number, which is to say, fairly easy. I remember the iPv4 addresses of both my rental servers, every device on my home LAN, a bunch of public DNS servers if things go wrong, ...; there's no way I'm going to be able to do that for IPv6.
- At least last time I tested it (more than 10 years ago now), the greater length of IPv6 headers had a quite measurable adverse impact on transmission latency of small packets (online gaming, remote shell...)
- Why do people keep treating "you get your own unique IP address when browsing" as if it were an advantage? The way I see it, NAT and IP address reuse (especially together with some European countries' laws stipulating the address->identity mapping must be deleted within some time period) are the currently most widely rolled out privacy technology. Somewhere downthread, they talk about how Belgian police is trying to prevent ISPs from putting more than 16 customers behind the same internet address. Since I can hardly say everything I do on the internet is perfectly legal, what's bad for Belgian police is probably good for me.
With ipv6, an IP address can be completely disposable. You could scrape Google search results all day long and use a different address for each call.
Heck, you could completely proxy search results in real time and create your own search engine, secretly using Google as your backend while injecting your own ads.
I know next to nothing about ipv6, I'm afraid.
Note that there's still no way to map a subnet to a person, just like there's no way to map a public v4 address to a person.
On the other hand, if the ISP ultimately does hand out the address in the subnet (and the end user can merely ask it for a new one), the ISP can retain a record of this, which together with the server-side data can be used to unambiguously deduce who accessed what, whereas the equivalent information in v4+NAT is insufficient without also logging everyone's connection metadata. It would therefore be more appropriate to say the privacy, tracking and banning implications are the same as dynamic IPv4 without NAT, where you can likewise request a new address from your provider at any time.
The prefix might be 2001:db8:1:2300::/56, the first network 2001:db8:1:2301::/64, and the machines on that network 2001:db8:1:2301:random:numbers:go:here.
The ISP knows who has which prefix, because they handed them out, but the allocation of IPs inside that prefix is handled entirely by the end-user network. The ISP isn't involved in it, so they have no idea which IP is which computer.
With NAT the LAN-side IPs are hidden from the ISP. In v6 the ISP can see the LAN part of the address, but without any way to identify which machine is using which IP that doesn't give them any extra information. All they get is the prefix and a random number. Computers typically change the random number on a regular basis too so you can't even do any long-term analysis on it.
[1] https://www.e-recht24.de/news/datenschutz/10387-datenschutz-... (in German)
Limiting the timeframe does improve the costs and the privacy impact, but the ISP will still need to build and run all of the logging infrastructure, and the end result is that you'll still be identifiable.
It works the same way on v4 and v6.
- If you go around memorising addresses then you are doing IT wrong in general. So many things depend on DNS (not just A records) that punching in IPs by default is a bad habit. Browsers will keep on enforcing SSL/TLS more and more until the point where typing in an IP address into the URL bar will be as painful as using the web GUI for say an elderly HP switch is right now.
- In general latency is not affected by header lengths these days. In some cases, networks are prioritising IPv6 for the opposite affect. In other cases ISPs have dropped their entire IPv6 support without noticing for quite some time. sigh
- The addressing scheme in use should have nothing to do with your privacy. Yes NAT does accidentally hide you a little bit. However I can fingerprint your browser instead, for example. I'll trade easy SIP n RTP over NAT any day.
Now, for my gripes:
- Try doing multi WAN effectively over IPv6 without PI and a routing algorithm, or NAT - Try changing ISP (new addressing everywhere)
The second gripe I currently work around with RFC 4193 - Unique Local IPv6 Unicast Addresses, the first one I whine about and will probably use NPT (wholesale NAT for IPv6)
Most of the things I do with memorised addresses have nothing to do with the browser or HTTP. (Mind you, though, the moment a browser won't let me access a bare IP, I'm switching away from that browser.)
> - In general latency is not affected by header lengths these days. In some cases, networks are prioritising IPv6 for the opposite affect. In other cases ISPs have dropped their entire IPv6 support without noticing for quite some time. sigh
I wondered if this may be the case; I may need to rerun some tests.
> - The addressing scheme in use should have nothing to do with your privacy. Yes NAT does accidentally hide you a little bit. However I can fingerprint your browser instead, for example. I'll trade easy SIP n RTP over NAT any day.
A website I navigate to may, but how will the carrier fingerprint my browser?
All in all, it seems like we are talking about very different threat models to privacy/security. You are worried about the likes of Google and Facebook profiling you, whereas I am worried about the likes of $intellectualpropertymonopolist sending me a $20k bill for identifying me in a torrent, or experiencing a nasty surprise at $nationalborder (or at home, [1]!) for something I said on an internet forum.
(This does not seem like an abstract or overblown threat to me; I've seen 2 out of the 3 things above happen to friends and even one schoolmate more than 2 times.)
[1] https://www.theguardian.com/uk/2012/nov/12/teenager-arrested...
Me too. Wireshark, nmap and co are in regular use in my job. All browsers are playing nanny, more and more apart from the likes of Links (which I also use quite often). A lack of https is already flagged and I suspect that things will get worse in this regard. Links2 has saved my bacon many times in the past so you may enjoy it 8)
You are worried about the likes of Google and Facebook profiling you
No mate. I'm CREST accredited: I'm not worried about G and F profiling me - I know they do. However I also know that my choice of addressing scheme does not affect my privacy whatsoever. A carrier can use metadata to derive loads of facts about your usage even if you are connecting to the oher end over say https. NAT will save you from some silly firewall screw ups but not much else. A VPN can help but is no silver bullet either. If I really put my mind to it I could probably make myself near enough anonymous with enough use of proxies, VPNs and TOR but I'm not too sure about that!
I too am from the UK and have seen silly overreactions such as your [1] link. However, this is the world we have nowadays and in our case we have a horrific level of CCTV pointed at us as well as some pretty impressive levels of IP traffic mining. We also have the rather unpleasant RIP Act and a few others to belie our supposed liberal way of life in the UK. You do have to be careful what you say nowadays, within reason.
But surely you can visit a McDonald's car park, run tor-browser and download whatever that Sony thing was without being traced.
Because I'll surely have an TLD for my local nginx and for my home router...
If you go around exposing services on the internet then you should know how to do it properly. If you can get a name on it then you can put a SSL certificate on it (cheers Lets Encrypt).
If you have a SSL cert on it then you can be fairly sure you are talking to your gear and not a MitM if you take other precautions.
I absolutely do have a LE SSL cert for my home router and all my home web sites. pfSense has a ACME and dynamic DNS client for many services and HA Proxy built in. What more could you want!
I'm in the group that you're speaking of—I have a personal server set up that I can log into remotely, but the prospect of setting up a domain and TLS is very daunting. But, I don't think people like me are all that common.
https://github.com/PowerDNS/pdns
It's also fairly complete, used in production by some pretty big ISPs.
For a light weight approach instead, Dnsmasq is good:
http://www.thekelleys.org.uk/dnsmasq/doc.html
It's what most home routers (and lots of other stuff) embed. :)
It’s just a bit of a pain to maintain if the only thing you care about is connecting to server nr 192.168.0.x
I could certainly do it, but there’s 5 services in my house I’d care to connect to, and remembering 1-5 is just as easy as giving them all names. The marginal gains are very low.
Personally I tend to throw the more stable IP addresses in /etc/hosts, as that's simple too. :)
If you are debugging network connectivity, then I have a tough time believing it’s possible without typing in a few network addresses.
This heavily reminded me of the good old Night Watch essay[1]. You can punch DNS names into the address bar on a browser, because someone out there traded normal sleep schedules for the tremendous opportunity to think about BGP trees, netmasks, and other exciting arcana.
[1] https://www.usenix.org/system/files/1311_05-08_mickens.pdf
I've maintained for 2 decades that simply adding another 2 slots for 0-255 would have opened up a greatly usable amount. Every current v4 - 210.40.134.34 - would also be 0.0.210.40.134.34, but we'd have another 65000 groupings of 4 billion addresses to allocate as needed, and a transition would have been far easier (smaller space, less processing, easier to think about, etc).
I understand where you are coming from by adding a few more bytes to the address scheme but one of the things IPv6 was designed for was massive address aggregation which means really short routing tables. Your 192.192.168.168.0.0 (say) scheme does not go far enough. Also, your scheme needs to be efficient in the world of bits and bytes and I don't think it is. Your scheme would probably need to be 64 bit to start with and not 48 bit because silicon, etc doesn't work like that.
However that simple routing scheme was blown out of the water by private addressing - ie get your own ISP independent address range. When you change ISP you end up with another prefix and hence all your addresses change. All addresses. So you buy your own range (about £3000 set up and £3000 per year from memory. You also need an ISP(s) to route it and if more than one then a BGP peering arrangement.
Another wrong in the name of IPv6: 64 bit IPv6 prefixes from an ISP means you can only have one subnet. No way to put your dodgy IoT stuff on its own VLAN.
> Another wrong in the name of IPv6: 64 bit IPv6 prefixes from an ISP means you can only have one subnet. No way to put your dodgy IoT stuff on its own VLAN.
Can't your router handle carving up a subnet just fine?
[0] https://en.wikipedia.org/wiki/IPv6#Stateless_address_autocon...
[1] https://en.wikipedia.org/wiki/IPv6#SLAAC_privacy_extensions
/56 == 256 /64s Each /64 == 18,446,744,073,709,551,616 addresses
(I'm looking at you UPC/Virgin Media/Liberty Global)
Each subnet (/64) is 18,446,744,073,709,551,616 addresses - which is nice.
Of course, some people aren't only using the Internet for browsing.
The Internet of things will end up needing unique endpoints, and NAT does not play will with those either.
India has a lot of people, and quite a few of them will be IPv6 only (or behind a very degraded carrier grade NAT). If you are talking to customers/clients/vendors there, assume you need IPv6.
Memorising IP addresses isn't done in any larger scale network, you use DNS.
NATs work well at about the scale of a single household, beyond that, they keep making things worse.
I was always curious about this argument -- do you mean that NAT elimination will allow any two arbitrary devices to communicate with each other?
I would think that even in IPv6 world, the firewalls would still be a necessity. Most ISP would continue shipping routers with stateful firewall enabled by default (to prevent internet exploits), so any peer-to-peer software would still have to deal with UPnP/STUN/TURN. Sure, the STUN protocol will be simplified a bit because it would not need to worry about IP changing, but it would still be way more complex than just a simple connect() call.
Note that the situation maybe better in some cases -- like for India or for cell phone networks -- but there would still be enough people behind the firewall to make arbitrary incoming connections unreliable.
Related: the privacy extensions seem to be a pretty bad idea. I have no idea how would I set up a firewall to say "allow incoming traffic to my main laptop, port 22222" if it's IP address always changes. Ideas like "disable privacy extensions" and "filter by MAC" have their own significant downsides.
Stateful packet filters will still be necessary, but those would be end user configurable.
Keep in mind that you are thinking about a NAT you control. If your ISP is NATing you as well, you would have a very different impression.
The original tenet of the internet pretty much hinged on the idea that every person with a computer can host/self-publish information as well as consume other people's information in a distributed way. They will not have to depend on a centralized publishing authority.
I think v6 could have enabled this
Although IPv6 doesn't have NAT, per se, it does have Network Prefix Translation (NPTv6). And some VPN services (FrootVPN and Perfect Privacy, for example) have already implemented that.
- No real competition in ISPs
If you had a national ISP in the US who ran IPv6 with end-to-end connectivity without NATs, a killer app would move to it and then drag all the other ISPs onto IPv6.
For example, at my home I get a /48 prefix from my ISP over DHCPv6 (over PPPoE). Then I assign /64 prefixes to my subnets. After that, hosts pick up addresses using SLAAC.
Obviously, VPNs are more complex, but that's not the fault of IPv6.
If you think, you understand IPv4 well enough, this book will explain the differences and why certain decisions were made when IPv6 was designed: https://sites.google.com/site/yartikhiy/home/ipv6book
Now I am aggressively against IPv4, because over and over I see problems resulting from NAT, or collisions in private address ranges on two LANs, or broken path MTU discovery, etc. The only arguments for IPv4 are economic or political; at this point the technical debate is over and IPv6 is a clear winner (the majority of technical problems in IPv6 deployment are related to compatibility with IPv4).
server-ipv6 your-ipv6-subnet-for-clients push "route-ipv6 subnet-you want-to-route" (either your real subnet, or 2000::/3 for all traffic).
You need the same for the IPv4 side of things too.
Clients need no change.
No? My recollection is the original primary objective of IP Next was to prevent the net's flat address space from collapsing into NATed fragments. The need was immediate and pressing. We failed. Now we all live in what was feared - a post-collapse wasteland of centralized systems.
We might need some way to force them... Google has done a lot of good by changing functionality for SEO + chrome by giving warning or giving PR boost if your site has a certain feature.
They should consider prioritizing sites that have both IPv4 and IPv6 and also warn users in the browser if the site does not have IPv6.
It's a legit warning too:
"Warning! This site may not work on some networks!"
In the mid/late 90's even I as a relatively low level person working in networking at BT I could see the problems with IPv6
They're about as compatible as they can possibly be, given the design of v4.
But maybe I am mistaken. Does the IPv6 specification proposes way to map an IPv4 network inside an IPv6 one? Or are all these later hacks?
You can map the entire v4 space into a v6 /96 with NAT64. That works fine, giving the same sort of outbound-only connectivity that NAT gives in v4. Does that do the job?
There are absolutely motivations and incentives for the advancement of IPv6, the most obvious of which is the exhaustion of IPv4 address space. The Notice the inflection point of IPv6 adoption in 2013 - this occurs in tandem with the real exhaustion of the IPv4 space. As IPv4 address space becomes increasingly expensive the financial incentives will grow stronger - recent block sales have the price approaching $18 PER IP: http://ipv4marketgroup.com/ipv4-pricing/
Cellular providers have particularly incentives to adopt IPv6, given that by just about any account there are more mobile devices in use globally than the entire IPv4 address space. Odds are good that if you’re using a major cellular provider, you’re actually accessing the internet over IPv6 directly. T-Mobile is apparently already in the process of decommissioning IPv4 entirely.
Work on IPv6 began nearly in tandem with work on NAT, which lasted as a stopgap longer than most expected.
Recognizing major risks to a global system and developing a complete solution a few years in advance of necessary adoption with the only miss being the estimate of how long the stopgap solution would remain viable doesn’t sound like a miss to me. The IETF engineers deserve a little more credit.
There's every reason to believe reaching a point where IPv6 is widely enough supported to allow you to turn off your IPv4 address, say over 99%, will take the same number of decades as has taken to get to 50%.
You can already see this reverse inflexion in countries that are further along like US and Germany.
Which is exactly my point: a system could have been decided that only focused on increasing the address space (in as backwards-compatible a way as possible), but instead v6 tried to roll "everything and the kitchen sink" into it, while making the address space transition about as difficult as possible.
The fact that IP v4 addresses are so expensive just highlights the failure of v6. If v6 had been successful, v4 addresses should have a value of $0.
When I connect to machines on my home network in any way involving avahi/zeroconf, the machines talk to each other via IPv6 by default.
At work, it's a different story. I have drifted from a sysadmin/helpdesk role into a programmer position, so that is no longer my concern. When it was, however, there was little incentive to use IPv6 - everything worked and continues to work just fine with IPv4, and sometimes there were even some rather esoteric problems with Windows' "Network Location Awareness" when IPv6 was enabled.
Meanwhile Danish ISPs refuse to implement IPv6 because: There's no demand.
That completely missing the point and their responsibility in my opinion. There's never going to be any significant IPv6 demand from private users. At work however we have customers that have started to request IPv6 only devices and networks, because there's no need for IPv4 specifically, and in some ways IPv6 is just easier (for example there's no need to do NAT).
For IPv6 to be successful the ISPs need to role it out, regardless of demand. The issue isn't necessarily at the consumer end, but the ISPs are part of the Internet and they need to help develop it, regardless of profitability in the next fiscal year.
For just consuming the web, it is fine. For switching from public IPv4, is is insufficient.
BTH, I've never tested whether it works with CGNAT or not. It would be additional hop to jump if I would give up my IPv4 address, which obviously I'm not going to.
Of course it's a lot messier than getting a static private address allocated.
The only good thing about UPC/Liberty global's implementation of DS lite (now "Ziggo" where I live) is that they will switch it back to IPv4 with a single phone call to the help desk. I can live without IPv6, I cannot live without being able to reach my home server and IoT things.
Though of course it'd be nice to get a private static address.
Responsibility to whom?
If there's no significant demand from end-users for something, then we're relying on there being a benefit for access providers.
>> For IPv6 to be successful the ISPs need to role it out, regardless of demand.
>> regardless of profitability
Can anyone give examples of a successful technology roll-out where there was no demand, and no profit to be made?
Seat belts, airbags and other safety systems in cars (like ABS, VSC, etc). Emission control systems in cars.
I guess the ISP space isn't competitive enough that they will ever go "looks like our ipv4 users get shitty latency and more congestion on facebook than the competitor's ipv6 users, so we're gonna upgrade next year!", but their IPv4 setups will probably eventually succumb to attrition too and be replaced by IPv6 gear.
Which kinda defeats the purpose of having a globally reachable unique address in a lot of respects. How am I supposed to allow connections to this device in my firewall if the address is always changing?
Comcast is guilty of this. Verizon doesn’t even offer IPv6 on FIOS.
For both, I just set up an IPv6 tunnel to Hurricane Electric using pfSense.
Why would ISPs not deliberately(!) change address(es) for cheap/residential plans, to provide a reason for those customers to care about this to pay more for a pro/business plan with a static IP allocation?
Personally I'd prefer ISPs to take an approach like this by default, but allow the option for the consumer to have a statically assigned IPv6 prefix for free if they want it, who understand its implications.
This prevents also to create products that need a public address. I think it is a real brake on innovation, who knows what could be invented if everyone had a public ip address ?
You don't. That's what ESP/AH with PKI is for.
Looks like the wet dream of adtech, to have everybody use a static IP address. No thanks.
https://tools.ietf.org/html/rfc4941
Some (most?) operating systems rotate the v6 privacy address daily or more often. The benefit of this is a) address not transparently based on permanent ethernet hardware MAC address and b) changes over time. Both are meant to hamper tracking.
If you're on a Mac and using IPv6, you can see these temporary privacy addresses stacking up over time if you type `ifconfig en0`. Old ones don't disappear immediately when rotated out since you need to be able to receive packets for a while. They are marked "deprecated" for some time before they disappear.
It is also interesting to consider the incentives (or lack thereof) for IPv6 peering. The fact that HE and Cogent haven't resolved their peering dispute from 2009 suggests to me that there is insufficient incentive (particularly from their customers) to do so, even when there are obvious practical effects. (I can't reach openstreetmap.org via an HE IPv6 tunnel even now.)
Perhaps the technical effectiveness of Happy Eyeballs and other backwards-compatibility mechanisms necessarily reduces incentives for improving IPv6?
... reports a steadily increasing adoption rate for IPv6. Is that rate somehow too slow? It currently stands at 25% of Google users.
My cable provider uses IPv6.
But yes. When I did an internship in 2001 my co-workers told me that I had to learn IPv6 because it will replace v4 in the next years, hehe.
Right now the typically default behavior for switches/routers that encounter the exhaustion is to summarize prefixes with a shortened prefix and (possibly) punt the evaluation to the general purpose CPU (example here[1]) - which suffice it to say, introduces a host of security concerns. This means, as a security engineer, in situations where complex/large ACLs exist, I need to be aware of and control how IPv6 TCAM exhaustion failure modes work and plan that eventually my hardware TCAM may be exhausted and fail in a spectacularly bad way.
Or, I just ignore IPv6 almost entirely and just don't have the problem (cleverheadtap.jpg)
[1] https://www.iana.org/assignments/ipv6-unicast-address-assign... [2] https://community.cisco.com/t5/switching/tcam-utilization-is...
My biggest fear is such an application not emerging quickly enough. Without an imperative from users for end-to-end connectivity there's a risk that IPv6 networks which somehow break it become entrenched. If that happens we are back to the old chicken-and-egg situation: Users don't care because there's no app and there's no app because the network is broken and operators don't care.
That seems unlikely to emerge. Anything you can do with end-to-end connectivity you can do with a server in the middle forwarding packets. Servers are cheap and reliable, so there's very little incentive to get rid of them.
The problem is that if you want to host something usually you want it to be up and reachable 0-24. And that has costs, and p2p can help with that, but the freeloader problem is not trivial. (You need reputation or some other kind of accounting, that requires solving sybil attacks, and possibly global sync/enumeration, both are hard, etc.)
And that works. Does it take blood and tears to make it work? Certainly. But not so many to make it infeasible.
If it does connect to the internet, I would rather have the device phone to one server only, and that server handling public access. It's much easier to keep one server secure than millions of devices that are in the hands of customers.
Of course my prefered option are IOT devices talking to one hub I control in my network, and me deciding how I want to expose that hub. But in that case, peer-to-peer communication is a non-issue just like in the first case.
Uhm, 'users' should not ever have to know what 'IP' even is!
If they do, we have failed.
Any potential killer app is going to have to decide whether they want to lose such users, because I cannot imagine an app that is so compelling that I'd switch ISPs for it. And I'm a person who actually wants IPv6 for its own sake. I certainly cannot imagine, say, my parents switching ISPs over an app (and I'm not sure how much choice they have either).
And if such an app arises, it's going to be easy enough for users to use VPNs - it's already common for people to use VPNs to get to region-locked content or (at least as of a few years ago) play LAN videogames over the internet.
[0]: https://www.dslreports.com/forum/r32136440-Networking-IPv6-w...
And my estimate is it probably takes years to roll out IPv6 on a network that isn't ready for it - how would the app remain a killer app until then and not be disrupted by someone willing to run a proxy server?
So this means two things. The first is that the desire to move to IPv6 on the part of the article's authors has nothing to do with public IPv4 address space exhaustion, it's based on other alleged inherent benefits of IPv6. The second is that IPv4 NAT already solves the exhaustion problem - you're either doing NAT to IPv4 or NAT to IPv6 (using your favorite 6preposition4 encoding/tunneling scheme), but as far as the public internet is concerned, it looks like you're doing plain old IPv4 NAT.
I don't know who the ultimate benefactor would be - would it be ICANN?
- IPv6-to-IPv6 NAT has only been accepted very recently and very begrudgingly. Whatever your views are on NAT, the fact is that lots of people have network designs that rely on it, and if you want them to stop, you're now asking them to couple two major transitions, which is a significant economic cost. (Option 3 in this article is IPv6-to-IPv4 NAT, assuming that the public internet will indefinitely be IPv4; it's noteworthy that none of their options ever envision the public internet becoming IPv6.)
- IPv6 recommends the use of its own scheme, SLAAC, for address assignment, with DHCPv6 being also very recent and poorly implemented - for instance, Android has no DHCPv6 support and plans to never implement it https://code.google.com/p/android/issues/detail?id=32621 . There's also a "stateless DHCPv6" for communicating DNS servers but using SLAAC for addressing; without it, SLAAC expects you to use a scheme called RDNSS to communicate your DNS servers, which is also not 100% supported. So you now need to spend engineering time supporting all of these options because some devices only support one and some only support the other, and you need to come up with network designs that work with both SLAAC (which has strong opinions on how you use /64s) and DHCPv6 (which doesn't).
- IPv6 doesn't use ARP, on the grounds that it's a layering violation, a separate layer-3 protocol that runs directly on top of Ethernet but talks about IP addresses. Instead, IPv6 has a clever scheme for using multicast to transfer the information that ARP would convey, by having machines join multicast groups based on their MAC address. This works very, very poorly with networks that aren't designed to support significant multicast load - for instance an attempted deployment of IPv6 caused packet storms in the MIT Computer Science and AI Lab's network for about a week because their switches were falling back from multicast to broadcast: https://blog.bimajority.org/2014/09/05/the-network-nightmare... So a working IPv6 deployment involves upgrading all of your hardware to hardware that has good support for multicast, which is also a significant economic cost.
- Various protocols like Teredo and ISATAP attempt to set up tunneled IPv6 routing in preference to IPv4 routing, making it hard to do a staged deployment, especially if you have BYOD on your network. For bonus points, because they're tunneled, you get different and possibly worse routes over IPv6, making debugging harder. So that's a cost in additional L1 and L2 support.
If someone had come up with an IPv7 that's just "We extended IPv4 to 128-bit addresses and we left ARP and DHCP and NAT and everything alone," people would have switched to it already. But the powers that be are drowning in the second-system effect and nobody wants all the features they added.
I was (as a young engineer) monitoring the mailing lists during the IPV6 proposal discussions and the hubris was palpable.
It was very much a case of "they will have to implement this so we will get to force all of these other improvements on them too "
IPv5 could’ve been the extending IPv4 address space, and IPv6 could have all the other changes.
But they didn’t want that, because reasons.
They were relying on Spanning Tree in a who knows how big broadcast domain. Firstly, that's just begging for things to hit the fan. A single device having a meltdown will cause exactly this, a broadcast storm that is able to take down the entire campus, because it was a single broadcast domain.
Secondly, it is a security nightmare. No amount of links or switch capacity will suffice in a single broadcast domain campus, relying on STP, if port isolation and proxy-arp is enabled, along with DHCP snooping, arp inspection etc. So, port isolation is not turned on. Isolation also creates a requirement for a pyramid-shaped network so nobody wants to do that anyway. But back on point, MITM-heaven, anyone can do what ever they want because the L2-infrastructure is not limiting anything. Ethernet does not care about security and Internet Protocol only implements or allows to implement security in gateways that interconnect subnets that reside on separate broadcast domains.
Routing is the answer and this is why I route on the access-layer, as well as on aggregation and core -layers. Route loops are very rare with OSPF and broadcast storms are limited to single switches if you route at access-layer. Also the posible issues with untested code-paths are minimized this way, since none of the switches are seeing more than the equal amount of hosts as it has ports.
I do not agree with SLAAC because I do not believe in broadcast domains the size of a /64 so I'd deploy DHCPv6 in every possible braodcast domain that does not have Android devices in them. Luckily there is no place for Android in wired networks and especially datacenters, so I can happily deploy DHCPv6 in those. And if I ever need to service Android-devices, I can dualstack and let the devices know of DNS-service with DHCPv4! Take that, Lorenzo! Hah! Outsmarted you there!
And it sounds like turning the intelligent feature off and treating the packets as pure broadcast, just like ARP packets, would have fixed the problem. If the switch can't do that in the right way, it's not the protocol's fault.
I've seen this happen a few times in my life in production systems, designed by someone else. Overload a switch somehow and it goes straight in ludacris mode because of the topology. Properly configured networks suffer minor outages only in case of single device meltdowns.
And no matter how smart the peole on campus are, there will always be someone who cannot accept that someone else is more right. I have first hand experience of this since I have tunneled IPv6 at home and know pretty quickly if someone does not listen to ICMPv6 Packet Too Big -messages. Not the first time I contact people about it but so far the only one I have not been able to convince is exactly someone really smart on some campus somewhere. I wrote many emails and tried to explain that IPv6 allows MTU's as low as 1280 bytes and that ICMPv6 is a must allow protocol but nope.
Here is a copy: https://web.archive.org/web/20170324213950/https://code.goog...
[1] https://www.ptsecurity.com/ww-en/analytics/ss7-vulnerability...
[2] https://www.blackhat.com/presentations/bh-usa-03/bh-us-03-co...
Regarding BGP, it seems that the basic protocol and implementations are okay. ("No implementation allowed BGP OPENs with the wrong AS or from non-configured peer to reach BGP ESTABLISHED state—as a result, TCP spoofing is required to inject data", and when you can spoof TCP between routers ... it's probably too late anyway. In a peering scenario between ASes people either use a direct cable, a separate VLAN or other direct "transport", in a IXP the IXP operates a big switching fabric and the peers exchange traffic over that, but the BGP sessions use fixed IPs and basically they are fixed to switch ports, and even if currently not every IXP monitors the spoofing/abuse of those, it is easy and they should be doing so. Sure, the reality is always bleaker, but that's security. Maybe next-next-next gen will have crypto built in so far down the stack that without a shared secret no packets will flow. But then humans will just put the PSK on a bright sticker, or will continue to use "chang3me" for decades.)
The problems I heard with it is that Tier1 providers just can't really filter the routes they get from downstreams, as they'd have to know which Tier2 handles which prefixes for which clients and so on. Though I'm not convinced they are putting much effort into it, as it's easier to just plug in big Cisco boxes and set up peering with your core and your downstream customers and call it a day. (And setting up is always messy already, so it's sort of understandable that there are no easy and custom solutions for somehow verifying announcements from whatever databases.)
I don't like TOTP apps, but they are significantly better.
All new contracts are ipv6 and the only way to get to ipv4 is via customer support. However right now ipv4 gives you the better experience.
If every device on every network could be assigned a domain name, then we'd never have to know what underlying addressing scheme exists.
My ISP has a name. I have an account with them. Every device on my network has a name.
There's no good reason I don't have
Device.accountName.pub.ispName.tld
Bound to the phone I'm writing this on right now.
But because that doesn't exist, users are still used to screwing with MAC and IP addresses just to set up port forwarding and all that other nonsense.
And so we have to care about IP addresses. And so we're stuck on ipv4.
Those administering the systems users connect to have always handled DNS just fine so I don't see why they wouldn't be able to know that the address got a bit longer.
2001:db8:4242:1::2
is much harder to remember than:
203.0.113.42+192.168.1.2
In fact it's substantially fewer characters.
Okay, obviously you can pick v6 addresses such that they're long and hard to memorize, but I'd argue that if you do that and also refuse to use DNS for them then you've lost your right to complain about how long and hard to memorize they are.
128 IP addresses total. That is well over $1k/year voting power.
The reason for that purchase is that IPv4 addresses represent internet reputation while crawling websites.
I am not interested in getting IPv6 at all.
How much did you pay for IPv6?
If you find v6 harder than it's just down to a lack of practice.
x represents your fixed routing prefix
y represents your subnet instance (0000-FFFF, 2^16 subnets)
:: represents the expansion of "0000:"s
z represents the client identifier.
For a relatively normal /56 or /60 home user assignment via PD from an ISP you simply lose 2 or 3 "y"s respectively. In both your client netmasks are always /64 and your gateways should always be fixed:subnet::1.
In IPv4 you might get allocated 250.250.16.0/22, and then you have to calculate in your head where exactly that begins and ends, and carefully divvy it up into partitions of different sizes.
In IPv6 you get a /56 or /48 and you know that two or four digits are wildcards. No binary math is needed, and all subnets can be the same size of /64
...
3. Run native IPv6 among compatible parts of their own network with some kind of tunneling or translation (i.e., converter technologies in economics) at the boundaries to make it compatible with IPv4
Among these viable alternatives, we show that dual stack will never get us across the finish line; it is not economical. It is the third category that shows promise for some growing networks."
So, basically a more complex version of NAT is what they're proposing for the "transition" from IPv4 to 6. Am I the only one who remembers that IPv6 was supposed to eliminate NAT?
Nobody is suggesting to not talk native v6 to the internet too, they're just suggesting to not cut your users off from v4-only services.
(If you're talking to specific parties that you know have working IPv6, it's less work to run a site-to-site VPN than to both maintain working IPv6.)
The only world in which IPv6 is worthwhile is one in which we can turn off access to legacy v4 hosts and stop having public IPv4 addresses. At this point, it seems like there is no hope of doing so in the current Internet. Perhaps in a few hundred years the Internet itself will be dead and IPv4 will die with it, but not before then.
Maintaining v6 is a lot less work than site-to-site VPNs, especially when "specific parties" is "random internet users" and when RFC1918 clashes are a thing.
v6 is worthwhile even if there is still some v4 going on. And even if it wasn't, how would you propose to deploy v6 and turn off v4 in one internet-wide atomic operation? There's no longer any entity that can enforce a flag day on the internet, so I can't see any way of doing that. The result is that we'd need to do a gradual changeover, which happens to be exactly what we are doing.
You throw away IPv4 internally. Nothing internally is IPv4. All your network address sizing issues vanish, puff, gone, because in IPv6 the subnets are always 64-bits, which means whether it's four boxes or four million boxes it fits in the same subnet. No more NAT, you just use real (globally unique) IPv6 addresses for everything, so there are no confusing debug sessions where you thought 10.4.5.6 was this box but actually because of how routing is set up it's _that_ box and so you wasted six hours.
So internally everything is _wonderful_
And then to manage the fact that some fraction of the Internet is (and for the foreseeable future will be) IPv4 only, you have edge devices that translate. They translate DNS too. If you ask for www.example.com and the answer is A 10.20.30.40 the edge devices wrap that inside an IPv6 address and provides that as your AAAA answer.
_This_ way around works, because 128 is bigger than 32. Unlike the people who magically want an IPv6 that hides 128-bits in 32-bits, which is mathematically impossible, this merely hides 32-bits in 128-bits, which is trivial.
Anyway, nothing else needs to even care, just those edge devices, and as transition continues you spend less and less money on them. In reality at any modern company you probably already spend more on edge devices you've added because somebody read about them in a magazine - anti-malware, service protection, next generation firewalls, that sort of thing.
Apparently at least for a while, browsers would not try the same request again via ipv4, so the site would simply be unreachable.
Perhaps browsers have become smarter about that, but it really makes me wary about enabling ipv6. I have no immediate benefit besides "doing the right thing", and some possible downsides.
Give an IPv6 with last digits of the MAC address is unacceptable today. Unique IP per device maybe dangerous.
Today tracking exists and is smart, some organizations are logging bittorrent activity. People buys VPN, right?
Really I love shared IPv4 at my University (although they have a /16). Maybe there are thousands of devices behind. Google Ads becomes crazy. I only want privacy.
v4 isn't expensive enough (in all cost measurements) to justify switching to v6. Once that flips, when there aren't any more v4 addresses then everyone will move there.
It sounds like the costs of v6 are so high that we basically need complete saturation of the v4 IP ranges, and then a market that trades IPs at a higher friction/cost rate than than implementing v6.
You could make a reasonable argument that it has too many of them, even. Where did you get the idea that it didn't have backwards compatibility?
I mean, you can call them hacks, but at the end of the day v4 uses a fixed-width 32 bit address field and has no mechanism to extend it in a way that's compatible with other v4 hosts. All you can do is hack around that. There's nothing that v6 could possibly do to avoid it, because the flaw is in the design of v4 and not in the design of v6.
https://www.facebook.com/ipv6/?tab=ipv6_country
US isn't doing so bad thanks to it's mobile networks being early v6 adopters.
I had a go using only IPv6 recently. What surprised me was the site that broke it for me. Github.com.
Sure, there are implementation flaws (as there have been in other such schemes), and sure, just clicking a NAT button and walking away doesn't get you security any more than just clicking a capability or virtualize or MMU button gets you security. But it's a powerful and solid building block, and the Internet is a better and safer place because of widespread use of NAT.
NAT won't prevent someone from sending a packet to X, and it won't cause the router to somehow drop the packet when it sees it either. That stuff is handled by firewalls, not by NAT.
When packets arrive on the public side, you have to translate addresses sent to the router to convert Y to X, so you might as well drop packets that aren't sent to a valid target. I'd expect you have to go out of your way to get NAT "wrong," possibly by trying to stuff the functionality on top of actual routing. Home routers generally don't need to do actual routing ever (and if they do, they're in a non-NAT mode) so it would be surprising for them to get this wrong.
Dropping packets not sent to a valid target is called firewalling. NAT doesn't decide what's valid and what isn't; all it does is detect packets which correlate to known connections and rewrite some of the headers on those packets.
Home routers, like all routers, do a lot of routing. They sit between two networks and they forward packets between them, which is pretty much the definition of a router. Having some header rewriting going on doesn't change that.
Where are you getting that from? Looking at public IPv6 statistics from big companies shows that it's going up. Google's shows a 4.5% increase in IPv6 of total traffic during the past year[0]. Facebook's shows a 6% increase and at 55% for the US [1]. Meanwhile Mexico went from 5% IPv6 to 25% this year [2].
[0]: https://www.google.com/intl/en/ipv6/statistics.html [1]: https://www.facebook.com/ipv6/?tab=ipv6 [2]: https://www.vyncke.org/ipv6status/project.php?metric=p&timef...
I don't understand. Are you telling me to look at how IPv6 adoption is among countries, where IPv6 usage growth has stopped? Are there any such countries? Furthermore, I'm not sure what you mean by "actual adoption". Every statistic I look at, as referenced in my previous comment, I see IPv6 usage continuing to grow. And you're calling that "propaganda"?
If you were to try implementing a router for ipv4 and v6 the v6 one would be dramatically simplier with a lot fewer convoluted edge cases.
The nice thing about IPv4 NAT is that you plug a single gadget in to your ISP's connection (cable modem, ONT, whatever), you connect your devices to that gadget, and it works out of the box and has all the security properties you'd expect, even if you're a person who hasn't ever thought about security properties and doesn't know what IP is and is still running Windows XP because your word processor still works fine. It might be unclean, but the benefits of this model are immense.
It's true that IPv6 requires IP stacks to support this, but nothing in IPv4 prevents IP stacks from supporting it.
I've heard stories, but I've never seen a modern operating system without privacy extensions in the wild. Maybe XP, but did XP have IPv6 enabled by default? As far as I know it didn't.
Also, IPv6 has a unique address that everybody can reach but most if not all routers have an IPv6 firewall that gives at least if not more security than NAT provides.
That's just not true. NAT and firewall both achieve what little security they provide through simple blocking of packets based on state information. Firewalls generally provide more robust state information, but NAT is what lets you redirect sockets. They work together.
If a packet comes in that doesn't match any NAT state, then the packet isn't dropped on the floor -- it's processed as normal like any other packet would be, and in the absence of a firewall (which is logically separate, even if often implemented in the same software stack) it'll be routed to whatever the destination in the packet header is.
Yes it is, it's the same scenario as if there was no route to the destination just at a higher abstraction layer. Think about it this way: a packet just hit the NAT IP from the internet, the packet has hit it's destination. There was no NAT table match for the packet so it was not rewritten. Where would the packet be forwarded to if not the bit bucket?
There will still be an IP in the dst header field! The router will still deliver the packet to that IP, subject to all the usual constraints (e.g. it needs a valid route etc). NAT won't stop that; only a firewall will.
Unless of course you're talking about using NAT outside the context of the RFC1918/internet boundary, in which case you're absolutely right, but that wasn't what was being discussed.
Even NAT in combination with RFC1918 doesn't give you security. The use of RFC1918 would certainly limit the set of people that could connect to your LAN machines, but it would be hard to call the result secure since anybody sharing your upstream L2 network, plus your ISP and anyone who can trick, force or coerce them into cooperating could still access your network.
And what does NAT add to the situation? Certainly not any security, since any connections that were possible before you added the NAT will still be possible afterwards too. In fact a lot more connections will become possible, so it seems like it reduces the security rather than improves it.
Ok, so the L2 thing isn't unheard of, but otherwise these are relatively unrealistic scenarios to be concerned about, don't you think?
Do you really want the security of your network to rely on your ISP always doing the right thing for you?
I don't see how NAT isn't an effective inbound firewall by itself in the normal case where it's in front of local non-internet-routable IP addresses.
NAT does nothing to stop a router from forwarding any given packet -- and that's something that's still true regardless of what IP range you're using on the LAN side.
The address space is still enormous: a couple billion for every currently living person (yes, I know allocating isn't 100% efficient, but even at 0.001% efficiency, that's still tens of thousands per capita).
And, the address could fit in a common word size, and be significantly more readable.
As is, IPv6's one-address-per-atom-on-Earth is unnecessary, the addresses are horrendous to read, and the collapsing colon stuff is just obnoxious.
Having an unnecessarily large amount of addresses is a good thing, because the alternative is to have too few addresses. You don't want to have too few addresses, because if you think v6 is taking a long time to roll out... imagine how long a replacement to it would take.
First, ISPs are allocating them because they can. There are enough total /64 blocks for every living person to have a couple billion blocks.
Second, ISPs are allocating /64 blocks because they have to. Well, they don't have to, but there are 20 billion billion total /64 blocks. ISPs will run of capacity in their routing tables long before address blocks are exhausted.
> Having an unnecessarily large amount of addresses is a good thing
Agreed. Both 64-bit and 128-bit have unnecessarily large address spaces. But 32-bit is too few, though, and byte/word alignment is convenient. So 64-bit is convenient, unnecessarily large solution.
If v6 was 64 bits in total, then ISPs would need to be allocating something closer to /48s to users at a minimum... but can you really imagine ISPs giving /48s in a 64-bit space when many of those same ISPs don't even give something larger than /64 in a 128-bit space? And this is despite the fact that a /48-in-64-bits would be 256 networks of 256 IPs each, which is far smaller than a /56's 256 networks of 2^64 IPs each? We know from v4 that 256 IPs in a network is frequently too small.
I'm just not convinced that 64 bits is enough, and I don't think we should expend this much effort deploying something that could be too small. Sure, it might be big enough with careful management, but I think it would be stupid to take the risk.
If you were arguing for an 80 bit address space then I'd have a much harder time calling it a risk, but for some reason 80 bits is an incredibly unpopular length.
In a world where we kept the IPv4 worldview of NATs and just added more addresses, a 64-address space would be fine for the same reasons that /64s are fine in IPv6 today.
And the holdup on IPv6 rollout isn't related to it being a longer address space at all.
I was primarily thinking of residential ISPs; business ISPs tend to be a little bit better. That said, datacenters (or rather server/VPS providers) are absolutely terrible. Most of them give you no v6 allocation of your own at all. If you're lucky they let you use as many addresses as you like on your WAN segment, but good luck if you wanted to do a VPN or routed VM subnet.
The biggest problem with IPv4 is subnetting inefficiency. IPv6 had this large address space precisely because they wanted to have smallest subnet so big that we don't have to worry about it. This is why it is told, that in IPv6 you don't allocate IP addresses, you allocate subnets.
IPv6: for machines (IoT)
IPv4: for humans
A car is not broken because it does not drive on rail, you can get you to the same places.
There is currently very little you cannot do without IPv6.
There are ways to solve the IPv6 problem - and ISPs in Europe have successfully rolled out both major variants, Dual Stack (Native IPv4 and v6 running alongside each other) or DSLite (Native IPv6 throughout the network, CGNat at the edge for tunnelled IPv4 traffic).
Liberty Global have opted for DSLite, the last major network of theirs will go live this year (Virgin Cable), BT and Sky (the two biggest xDSL providers) have been live for over a year at this point with Dual Stack.
There is no comparable functionality for a domain name, or a subdomain or whatever. If my ISP offered free dyndns (and there was a well-adopted global standard for the service), and I could assign subdomains for each of my devices, then I could have real names for everything.
However, no consumer-level router supports that.
But even if you don't have this, then zeroconf/avahi/equivalent should be giving you "$host.local".
I am about 80% certain that in the time it took you to write this comment you could have bought a domain name, used the registrar's web-gui to input your now static IP addresses, and had a perfectly functioning DNS setup for your home.
Or, if the free DDNS is the most important to you, OpenWRT appears to natively support quite an extensive list: https://openwrt.org/docs/guide-user/services/ddns/client
I have to figure out all the business of anames and MX records and how to set up a subdomain.
And considering that routers issue ipv4 addresses automatically, offer user-friendly GUIs for binding addresses to devices and forwarding ports, it's not really comparable is it?
If you can run a server securely on the public internet, you can set up a domain name. To pretend otherwise is a little absurd. Frankly if you can’t set up a domain properly in DNS, you probably can’t successfully manage to forward a port to your server anyway.
Things like Chromecast already do this for you automagically via mDNS and the .local TLD.
Most consumer routers I've seen offer automatic private DNS based on the DHCP option for registering a hostname.
Literary, every modern ISP, hosting or Cloud provides it.
Every Operating System, be it server or client or router, supports IPv6.
For instance, do you support RDNSS or DHCPv6? How big are your multicast tables?
This is either factually incorrect, or else you're using a definition of "modern" that excludes a substantial portion of real world isps.
basically they are the edissons of electricity boom era when AC was becoming the new standard for power transfer
as per internet standards/rfc’s IPv4 is a legacy protocol, so every ISP limiting it’s customers to only this veraion is not considered modern
Give that its a fiber ISP, I would consider that “Modern”.
I work for a large ISP and we've done our tests. We ran one about five years ago and it was a total disaster.
We're currently doing another one and we smoothed many things. Anyway it's not something welcomed by the helpdesk side. If a client with IPv6 calls with problems, the've found out that most of the times the only way to not spend lot of time with the customer is change the setup to a ppoe v4 and forget about it. And we've used competent people for this test, not you average joe with 2 prior weeks training in networking.
Helpdesk agents hate it, and the come up with very good reasons.