Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

People are again panicky about this, just like they are as IPv4 has gone through every major transition. But the solution is already known: it's called carrier-grade NAT. ISPs will be NATting at their side, so multiple customers will appear to have the same IP address.

As with the original adoption of NAT, it will be slightly bumpy at first. There'll surely need to evolve some sort of port forwarding protocol (hopefully something more like NAT-PMP and not like uPnP) that will allow incoming connections through what will now be double NATs (one at the ISP and one in your home), since we can assume people won't remove their original NAT just because a new one has been added. People like their personal NAT, it makes them feel safe. And I think those people are right to feel that way.

And then if you want to run a public web server, for now you'll have to pay extra for a static IP, just like you have had to do for years now. That's not a big deal, there are way less than 4 billion public web servers right now. The market won't run out right away. As we get even tighter on addresses, the price of a static IP will rise.

And when that becomes a problem (prices too high), someone will find a way to use something like DNS SRV records to have multiple web servers on a single IP address, using different port numbers, and DNS will tell your web browser which port to use. This will require browsers to support whatever new standard, but I figure we have 10+ years before this level of workaround is absolutely critical.

Remember, if you allow for identifying servers by ip:port instead of just IP, you have roughly 65536 times as many "addresses" available. That's enough to last pretty much forever.

We don't need IPv6. We will need new routers to do the carrier grade NATting (and it's a very hard problem to NAT at that speed/scale, but hey, that's what money is for. And ISPs can deploy it incrementally, as they run out of addresses).



What you've described is not a "solution" at all - it's just a series of hacks. I'm not a purist and I accept the need for some hacks (e.g I recognize some people will still want to use NAT with IPv6) but the future you're describing, where end users won't have routable addresses, and where it will be difficult/costly to get IP addresses for new services, is totally unacceptable. Transitioning to IPv6 is well within what humans are capable of, and frankly I find comments like yours extremely regrettable because this sort of sentiment is partly why we can't have nice things.

You're also underestimating the difficulty of deploying some of your proposed "solutions." DNS SRV has seen no adoption outside of a few services like SIP and XMPP. Getting web browsers, and every other last client out there that speaks HTTP, to support SRV won't be easy. Just look at the glacial pace other web standards move at.

And factoring in the port number doesn't give you 65536 times as many "addresses." Things like routing and ARP happen at the address level. Under your "solution" you wouldn't be able to migrate/fail over services just by moving their IP addresses between hosts. DNS-based solutions have never worked well for this.


If carrier-grade NAT is the solution, then the future is non-routable. If you are behind NAT and I am not, you can make an outgoing connection to me and we can still talk. If we are both behind NAT, we need a 3rd party's help. That is not an Internet IMHO.


It's also the end of anything but UDP or TCP on the Internet. I wouldn't trust my ISP to have a packet filter and NAT implementation for anything else.


All you need is a proper dynamic port opening scheme like NAT-PMP. You may also want to use a third-party STUN server to exchange routing info, but that's no more complex (actually easier) than DNS.

It's still the internet even though you need DNS to turn names into IP addresses, right? It's just a little more complicated. That's what the new world will be: the Internet, but a little more complicated. Which is exactly what happened when DNS, then CIDR, then NAT were introduced.


As important as DNS is for the Web, the Internet doesn't currently (and shouldn't) need DNS (or a DNS-like coordinator) any more than cupcakes need candles. If I know your telephone number, I shouldn't have to dial the operator and ask for their help (and implicit permission), I should be able to help myself and dial direct. We are re-imposing an unnecessary middle layer that has all sorts of social equality/neutrality implications. (People with global addresses have more power than those who don't.)

That's the point of direct addressing: removing ambiguity and allowing direct connections.

Edit: The cost of patching IPv4 is just another reason to move deliberately to IPv6 (or something that allows direct addressing again, but for the sake of argument, IPv6 is the leading candidate).

Edit: Deleted confused nonsense about NAT-PMP.


I think you may be misunderstanding NAT-PMP. Done correctly, that protocol can open a port through multiple layers of NAT without having to know how many layers there are. And then you'll have a well-defined public ip:port that other people can connect to you on. (You could, for example, advertise that ip:port in dynamic DNS or a bittorrent peer discovery protocol, just like you do today for dynamically-assigned IP addresses.)

There's no doubt that direct addressing is simpler and more appealing. Yes. But it requires worldwide 100% deployment of a replacement to IPv4, which is not simple at all.


There's still an upper limit of 64K listening ports at the top level of NAT for both TCP and UDP. The UDP side is probably worse. A shortage of UDP ports would pin down DNS servers to a single IP:port and make spoofing responses easier. You'd also need a DNS cache at each level of NAT to avoid burning through top-level UDP ports for DNS. That would mean that any successful DNS poisoning would hang around until the bad responses get flushed out of the resolvers. (If you're very lucky and the TTL is followed correctly, that would be after the top-level TTL expires.)


Yes, I had the wrong idea about NAT-PMP.

The cost of patching IPv4 and working around the quirks seems similar and less desirable to the cost of simply running IPv6 in parallel. I wouldn't describe it as all-or-nothing, but I would say ISPs need to help by providing low-latency tunnels/advertised routes. (Hurricane Electric can't handle everything, going forward.)

"All-or-nothing" itself creates an obstacle.


The problem isn't that it's expensive for ISPs to deploy ipv6; the problem is that an ipv6 address is strictly worse than an ipv4 address[1]. Therefore deploying ipv6 would be spending money to give customers something they don't want. Nobody is going to do that! 98%+ of customers will be happier with ipv4 behind CG NAT than an ipv6 address, as they don't see the internet as a network of peers, but rather see it as "I'm a client, I want to connect to servers"

[1] By "strictly worse" I mean there isn't, currently, any server that anybody cares about that you can connect to solely with ipv6; there are, however, numerous sites that are only connectable to with ipv4.


It's not really a case against IPv6 that existing websites don't need it since that's a privileged position that makes IPv4 seem fine. IPv4 exhaustion is only a problem for individuals at the edge who want incoming calls (to act as servers). Fortunately, today, new edge-homed servers can already use IPv6 through a tunnel, with the immediate advantage that they have a "real" globally-routable address that they can be reached at. In that sense, IPv6 has already arrived. It would just be nice if I didn't have to set up that extra tunnel to connect to something that only I and my clients connect to.

The people at the edge who don't care are, sadly, the one's who would most benefit. I agree that that is a problem. These social problems (the consumer apathy and the willingness of ISPs to exploit that to make a peer network a broadcast tree) are admittedly overwhelming but, as you also note, the costs to ISPs are minor: IPv6 can be provided to the edge, even if it's ultimately tunneled over IPv4-only hardware.

This is more a matter of technology-leaders, IMHO, pushing/expecting ISPs to do the right thing for once (if we can spare a few minutes from selling censorship to dictators). History has shown they aren't going to do it without public pressure. Their preferred distribution medium (cable TV) already existed: it was people who understood that it was a peer network that drove the adoption of the Internet. If IPv6 spends the first 10 years or more being used exclusively by that group of people, fine, but it's still worth promoting. ISPs only started taking it seriously in the last few years, so there's a long way to go, but I think it's a reasonable goal to get an upstream IPv6 router advertisement, eliminating the need for tunnels, to every IPv4-connected home in the next 5 years (it is really just a matter of installing Linux, or your preferred OS, on a spare box until the load dictates an upgrade; there is no chicken-or-egg problem).


there isn't, currently, any server that anybody cares about that you can connect to solely with ipv6

If a consumer-facing network with millions and millions of devices uses IPv6 exclusively for their management network to keep the service running effectively and efficiently, do I care? Do they?


As with the original adoption of NAT, it will be slightly bumpy at first.

The key difference here is that the NAT is now outside the users control, and if they want to fool around with anything funky and put it on the public internet (like a new Tim Berners Lee making a new World Wide Web) he wont be in a capacity to do so anymore. Ooops.

The old internet let people invent things and publish it as they saw fit. And that's why the internet we have now is awesome.

This new internet you are describing lets people apply for permissions to publish thing. That sounds like the exact opposite of what the internet was designed to do and what was required for the internet we have today to evolve.

It is a very short-sighted strategy pushed forward by people to lazy to read up on IPv6 and see how simple it really is. It's not earth-shatteringly different. The bigger, as by design, and that's about it.


> Remember, if you allow for identifying servers by ip:port instead of just IP, you have roughly 65536 times as many "addresses" available. That's enough to last pretty much forever.

I see you're using historical precedent:

640k of RAM ought to be enough

32-bit memory addresses will always be large enough

2 digits is enough to encode a year since it will be the 20th century forever

All the characters anyone would want to use fit within 8 bits


You may be right. At that time we will end up introducing or requiring some kind of horrible port multiplexing scheme, like maybe port knocking (using a pattern advertised in DNS) or maybe even... HTTP/1.1's Host: header :)

Separately, I think addresses are slightly different than those other measurements. I'd think the number of needed public server ip:port addresses is roughly on the same order of magnitude as the number of humans, or perhaps less. By that measurement, 4 billion is almost enough, but clearly not enough.

I wouldn't want to have to bet on that, but I don't have to. There's always another layer of indirection possible. And that layer of indirection will always be infinitely easier to deploy than a replacement to IPv4.


> And then if you want to run a public web server, for now you'll have to pay extra for a static IP, just like you have had to do for years now. That's not a big deal,

It is a big deal. The price is a signal of scarcity, and this means some webservers won't be deployed because of the scarcity. The only difference is that instead of plain running out of new addresses we will be gradually running out, while screwing those who can't afford public IP addresses.

The price is a signal of a scarce resource, when scarcity can be avoided by switching to larger addresses.


Gah, that'd be terrible for games. It's already annoying enough to enable port forwarding on /my/ router, I don't want to also have to do it upstream just to get a Terraria server for my 4 friends up.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: