Enhanced IP: IPv4 with 64 Bit Addresses (2012) [pdf]
seam.cs.umd.edu
seam.cs.umd.edu
The only reason I can think of is psychological: People don’t want to learn new things, so they find reasons to dislike the new thing to be able to pretend they don’t need to learn it.
Its been decades, but still IPv6 is deployed (at best) as a parallel network that effectively doubles management/maintenance overhead. And at worst sites just add an IPv6 reverse proxy.
I should be able to have a router with a ipv4 network and multiple ipv6 networks without losing access to the ip4 network. The ip6 network should be reachable via port natting on the ip4 IP
I.E I have three networks on my router, two on ipv6
1000:2000:3000:4001::1/64
1000:2000:3000:4002::1/64
192.168.0.1/24
the ipv6 only server on
1000:2000:3000:4001::10
should cope with sending a packet to
1000:2000:3000:4002::10
By routing it via the router
It should also transparently convert a target of 192.168.0.3 to ::ffff:c0a8:3 and send via the gateay.
The router should then convert it to 192.168.0.3, with a source of 192.168.0.1, and maintaining a NAT state so return traffic goes back to 1000:2000:3000:4001::10
If there's a service that 1000:2000:3000:4001::10 needs to expose, the router can do a dst-nat on say 192.168.0.1 port 80 and forward to 1000:2000:3000:4001::10 port 80
That way you can comfortably deploy ipv6 wherever possible and not have to worry about ipv4 other than at the router, where you just have the ipv4 subnet
Likewise my ipv6 network can reach 209.216.230.240 by running ipv6 across my network until it comes to a device with an ipv4 address, where it gets natted. Just like it runs across my private rfc19xx ipv4 range before srcnatting at the edge of my network.
IPv6 works best when all addresses are globally routable (whether firewalled off or not). We're all so used to RFC1918 that we forget it was an ugly kludge that fundamentally broke how the internet was meant to work. IPv6 is the fix for that breakage: the address of every individual device can actually mean the same thing everywhere on the internet, as it was meant to be. L3 routing can be stateless again.
The primary intent of IPv6 is to replace IPv4, not coexist with it. Coexistence is transitory and not worth optimizing for over the future of the internet when V4 is dead.
As for nat being a cludge, lets assume I have a simple small office network with two independent ISPs. Normally I want to send half my users out of ISP1 and half out of ISP2.
If ISP2 fails, I want to send them all out of ISP1, OK there's less bandwidth to go round, but better than having no bandwidth for half my users.
How do I do that with ipv6 without natting (assuming I'm not large enough to be running my own AS and peering with two different providers)
I don't have easy access to multiple V6-PD enabled providers to test this theory, and as someone with quite the neck beard I really don't know how I feel about ceeding this level of control to endpoints. But also, I'm not sure I hate it either.
Oh and don't forget link-local and a ula prefix for your local addressing requirements for pinters and whatnot that shouldn't be using dynamic discovery.
That basically doesn't work with real clients. They'll do dumb stuff like use address from provider A to send through the router advertising addresses from provider B. And take forever to do anything in response to prefixes that are advertised as no longer usable or simply no longer advertised.
V6 devices are expected to understand that and do the right thing, but Windows (10) doesn't, Linux was worse, and I don't remember what Android did and I didn't get around to testing FreeBSD, and that's all the OSes I have.
If you've got experience otherwise, I'd love to know, one of these days I need to setup IPv6 again, but what I'd really like to do is too much work, so I'm IPv4 only for the foreseeable future.
The notion that every endpoint has a globally unique address, with prefixes coming down from some upstream provider is just fundamentally incompatible with how IPv4 networks are designed today.
On a much smaller scale it's analogous to migrating from mariadb to postgres, but the migration takes 50 years and you end up realistically maintaining both.
There's a whole generation of people and experience that wasn't able to enter the discussions in 1993 and is available now. Maybe new eyes or experienced eyes would have a better solution.
The problem is clearer now than then. IPv6 makes many changes to address many problems, but maybe only address space is a real problem, because only address space seems to be motivating people to join IPv6.
Of course, the downside is not a lot of people want to be on three parallel networks, it's a lot of work. But perhaps, if that third network were more desirable and easier to implement, it could get larger coverage in a shorter amount of time than IPv6. Sort of like how TLS 1.1 never had more users than TLS 1.0, but TLS 1.2 overtook them both.
You would need real consensus and commitment from lastmile ISPs, backbone ISPs, networking vendors, OS vendors, CPE vendors, mobile networks, content providers, etc, though and that's tough. The consensus on IPv6 seems to be clearly, we'll do it eventually, when we really have to (which for some networks was 2012, and some networks is now, and some networks seems to be never)
But in the end, IPv6 is cleaner, and it seemed better not to distract too much from progress there. If I'd known it would have taken another quarter century to make much progress, I might have made a different decision.
There were quite a few "extend IPv4" solutions over the years.
As a user you lose some visibility in terms of what routers your packet traverses, but the same can be said about MPLS tunnels/IPSec tunnels where your packet magically seems to have gone just 1 hop instead of the 10 it actually took.
As a result many home and mobile users only get personal IPv6 addresses with IPv4 connections being tunneled over shared addresses.
You're saying CGNAT is fine?
* https://en.wikipedia.org/wiki/Carrier-grade_NAT
That having to NAT on your home Linksys/Asus and then getting NATed again by your ISP is fine? If you want to allow a connection to your PC or gaming system, how do you hole punch a double-NAT exactly?
Maybe not in public networks, but if you run your own network you can easily make use of auto-subnetting.
e.g. see [0], [1]
[0] https://github.com/RIOT-OS/RIOT/tree/master/examples/gnrc_ne... [1] https://summit.riot-os.org/2021/wp-content/uploads/sites/16/...
Let IPv4 addresses run out. Allow parties to trade them. Slowly migrate from "one IP per box" to "one IP per net" with what looks like NAT, but can easily be traversed if you understand the extension. And once we start running out of IPs again, rinse and repeat. What am I misunderstanding / oversimplifying?
Which means that, as you have to start over in a non-compatible manner, you might as well use the opportunity to make other improvements.
Edit: I didn’t read much into detail, assuming that the hosts that do not understand this extension could just ignore the option. If the scheme doesn’t work in this case as sibling comment suggests, then yeah that’s a problem indeed :)
This one has a bunch of grave problems.
1. Notice that the address space shortage is not in fact alleviated although it is shy about admitting that. Nobody who doesn't have addresses gets addresses from this scheme. Instead, everybody who already has addresses gets even more of the new addresses and the author simply hopes they'll choose to give them away to those who don't have any. You know, like that time Bobby Kotick got a huge bonus and so he gave the money to er... oh right, he just kept the money.
2. But wait, how would they give away these addresses? The author proposes they can just give away a /29 at a time. In fact, a IPv4 /29 is not routable as a global route, so this will not work. The smallest size you can carve out from the global routes is a /24 and every time you do this you're making things worse for everybody in the backbone game by increasing fragmentation, gosh they're going to be pleased about so much of this "charity".
3. OK, well maybe instead of giving away addresses, our Good Samaritans will give back their existing allocation and take only one /24 for their own network now that is plenty big enough with the new addresses. But that means they must renumber absolutely everything which is one of the things this proposal was supposed to avoid and all their services lose the ability to interoperate properly with everybody who didn't upgrade yet, getting a degraded "sort of like NAT" mode until everybody in the world upgrades. Suckers.
4. It doesn't bother fixing all the other related infrastructure. That work was done for IPv6. PKIX works for IPv6 (certificates for e.g. the DNS service 1.1.1.1 contain IPv6 addresses, no you can't just write any arbitrary text, that's not how it works at all), DNS works for IPv6, all the fancy modern stuff works for IPv6, but you need to begin over for this "Enhanced IP" and the paper neither proposes any way to avoid that, nor does it include all that work, so you're beginning very late in 2012.
Still, there have been much worse attempted solutions written up. My favourites are the ones which don't realise addresses are just bits and propose we can fix everything by writing bigger numbers like 300.400.500.600 ...
My favorite was one which "realized" that addresses are just bits in the physical wire and proposed to use intermediate values for these bits (that is, using more than two voltages). I wish I had bookmarked that one, it was truly baffling. It was wrong on so many levels that it was hard to know where to start.
You need new code to "understand the extension". Any old network stack will not, and will thus not be able to send packets to it… just like old code does not understand IPv6 addresses.
> What am I misunderstanding / oversimplifying?
IPv4 is 32 bits, and all the data structures are 32 bits. We are running out of 32 bit addresses. If you want more address space you have to have more than 32 bits, and it is impossible to squeeze >32 bits in a 32 bit data structures, last time I checked.
So you need to ship code on every single Internet device to update it to handle >32 bits.
We've just spent the last few years shipping new code for larger address data structures, i.e., the 128 bits of IPv6. Look how long that's taken.
And you you want to do that again?
That's not true, at a simple level typing "ping 10.34.56.22" is far easier than "ping df99:eff2:245a:46vv:2cmm:dfaa:41ff:2211"
The benefits of ipv6 may outweigh ipv4, but by claiming "everything is easier and better" is disingenuous and a reason so many still refuse to move.
i get the whole legacy thing but since transitioning to lets say gigabit internet and beyond, that is somewhat fresh tech so why wasn't that stack made ipv6 primarily and not ipv4?
i am truly clueless on this
However, Mobile networks are actually biggest users of IPv6, especially if the rumour I heard about licensing being cheaper on IPv6 is true (IPv6 is also in many ways cheaper on backbone implementation).
This is why Apple recommends IPv6 accessible sites, because for many mobile networks IPv6 is faster - it avoids multiple levels of network address translation through possibly limited number of gateways.
The mobile stack itself doesn't really care for IPv4 vs IPv6 except for v6 making it much easier to build the network and having easier IP Mobility (keeping connections across moving addresses). Protocols run perfectly well on both v4 and v6 (SIP, IPsec, various other L4 and higher protocols involved)
Oh my.
3G predate iPhone by a lot. There were 3G Smartphones ( Symbian ) or 3G Mobile phones years before iPhone. The first 3G network if I remember correctly "launched" before year 2000 in Japan. ( That is why some analyst suggest that iPhone was bringing the Japanese Internet to the world with touch screen. )
The 3G Spec ( Now known as 3GPP ) predate 2000. 4G was the first system moving from circuit switch to packet-based switching. As that was a lot on their plate already. Remember 4G was designed in an era where 3G was considered a flop. Billions were paid to buy spectrum and equipment but MNO for years were losing money. iPhone was the saviour to MNO as Apple managed to push ARPU instead of their death spiral.
There were talks of a completely new network stack for 5G and later 6G. I think that is still an ongoing research. But without Smartphone I am willing to bet ipv6 would have been no where nearly one tenth of today's usage.
In India, on 11 December 2008, the first 3G mobile and internet services were launched by a state-owned company, Mahanagar Telecom Nigam Limited (MTNL),
maybe in japan but i saw it AFTER the iphone came out and that is what i wrote.
When Sarah's mom's ISP rolls out IPv6 (or maybe when she gets new CPE because she upgraded service, moved home, or it just eventually died), her devices get IPv6, but she doesn't care, Facebook still works (it might be slightly faster, but not noticeably) and Sarah's mom doesn't know what the Internet Protocol Version Six is except that it sounds like something from a Star Trek convention.
Sarah's employer is Big Corp. When Big Corp's ISP rolls out IPv6, Big Corp IT agree that since not everybody went on the IPv6 training course yet, they should explicitly disable IPv6 to avoid unspecified "problems". Everything still works as before and Big Corp's IT department are cheerfully running stuff that actually matters in the Cloud, so what do they need more addresses for anyway? Maybe in 2025 there will be a budgetary requirement for IPv6 at Big Corp. Or maybe not. Perhaps the best chance for Big Corp to get IPv6 is if IT screws up and mistakenly doesn't disable it, then they find that later doing so makes things worse.