And by then they will have recovered even more. The end of IPv4 is a lie, and how bad IPv6 is and the lack of good transitioning systems doesn't help.
And by then they will have recovered even more. The end of IPv4 is a lie, and how bad IPv6 is and the lack of good transitioning systems doesn't help.
NAT was (and is) destructive and painful that some of us gave up writing network software in the late-90s/early-00s. I personally abandoned several network-focused projects in the early 2000s.
The current status quo only seems "not quite painful enough" if you accept that most people cannot use true network software, limited to client-server architecture where party lines[1] communicate with each other only with the permission of central privileged imprimatur[2].
[1] https://en.wikipedia.org/wiki/Party_line_%28telephony%29
One is security, NAT is nice for that a lot smaller attack surface. Second keeping your stuff always running at home is unreliable and annoying.
Would be nice if I would not have to pay for VPS but $5 a month cheapest linode is more than enough for my hobby projects.
Without NAT you can do so much more stuff, like peer-to-peer (p2p) networking. Yes, you can do p2p with ipv4 behind NAT but it's super complicated and brittle.
Also bypassing the NAT is complicated, you have to fiddle with the router settings, and often you have to call your ISP to give you a public IP. This makes it hard or impossible to sell "Internet of things" (IoT) devices to regular people as you can't just plug them in.
Networks today are very good with high bandwidth and low latency, which enables some interesting use cases, for example virtual reality (VR) where you just have a thin client plugged in to the network and then have all the compute power located in a data-center a few miles away, with sub ms latency.
Another usecase is apps with service like functionality, like decentralized Facebook, and chat messengers.
You also can walk everywhere instead of using machines to move around ... but why would you?
> One is security, NAT is nice for that a lot smaller attack surface.
No, it doesn't. It's a common myth, but NAT does not provide any security, it only hides insecurity.
> Second keeping your stuff always running at home is unreliable and annoying.
Complete non-sequitur?
Hiding insecurity is perfectly valid. It is making attack surface smaller. I do not get pings of death, constant scanning, login attempts all the time on my local machine which is always behind NAT. Every server that has public IP gets scanned or tried out with vulnerabilities. I can connect totally new PC to router with NAT and not be owned in matters of minutes by some botnet. My router might be exposed but it is something I know. All machines behind router are perfectly fine for remote vulnerabilities.
That's all besides the point. When you want to share a file with someone while you are both working on it, say, there is no need for a "server". IP is perfectly fine for transfering a file from your machine to theirs. When you want to talk to someone over the net, there is no need for a "server". IP is perfectly fine for transmitting voice calls between your machine to theirs.
Your mistake is in your assumption that you even need a server in the first place. For some things, that might be useful. For other things, that is only needed as a workaround for NAT in the first place.
Also, reliably running a server at home isn't hat hard either, even today. With hardware offerings that are a better fit, it could be even easier. There isn't really any reason why hosting your own "server" at home needs to be any more difficult than hosting your own vacuum cleaner.
> Hiding insecurity is perfectly valid. It is making attack surface smaller.
No, it doesn't. It simply makes it harder for you to notice that you are not secure, that's all. This is not about whether firewalling insecure services off from public access makes the attack surface smaller. It does. But NAT doesn't, a firewall does. If you have a firewall, you don't need NAT. If you don't have a firewall, NAT won't protect you.
> I do not get pings of death, constant scanning, login attempts all the time on my local machine which is always behind NAT. Every server that has public IP gets scanned or tried out with vulnerabilities.
Which is just completely irrelevant. None of these things are a security risk. They are annoyances when trying to debug the network, that's all. And none of that is in any way fundamentally helped by even a firewall. You have a huge attack surface in your web browser that is completely unaffected by your firewall and by NAT as well, pretending that a service listening on a port is somehow a huge security problem, but executing untrusted code inside a massively complicated virtual machine is harmless is just completely focusing on the wrong problem. Also, all those pages that you load into your browser sort-of have access to your local network anyway, because your browser is inside your firewall and can connect to all those services that you pretend your NAT protects.
> I can connect totally new PC to router with NAT and not be owned in matters of minutes by some botnet.
You are constantly confusing firewalls and NAT. That is done by a stateful firewall, not by a NAT.
> My router might be exposed but it is something I know. All machines behind router are perfectly fine for remote vulnerabilities.
That is an extremely naive perspective.
I did not even touched running untrusted code by user because that is not in the scope of discussion. It is insecure with whatever the network configuration will be.
I do not know how you can connect to device behind NAT without setting up tunnel to it. But I might be wrong, point me to some resource please?
That is no different than with IPv4. If you have a stateful firewall, that isn't possible. If you don't, it is.
> Even pro people forget to close their database on servers sometimes, cannot think what weird stuff might be running on normal users machines.
Which is why you should have a stateful firewall. A NAT does not add anything to that.
> I did not even touched running untrusted code by user because that is not in the scope of discussion. It is insecure with whatever the network configuration will be.
It is very much in scope of the discussion, as every single end user does it. No matter how great their firewall is, you just send them a link to a website, and that website now gets to execute Javascript code on the inside of the firewall, with more or less direct access to all the insecure services supposedly protected by the firewall. Including even stuff only listening on localhost, which wouldn't be reachable directly even without a firewall. If you want to do a mass-scale attack, you serve that code through an advertising network.
So, you actually have to secure the services anyway, even a firewall is insufficient to protect vulnerable services on end-user networks.
> I do not know how you can connect to device behind NAT without setting up tunnel to it. But I might be wrong, point me to some resource please?
By sending a packet addressed directly to the internal address, which your ISP can do, anyone who compromises your ISP's edge router can do, and more often than not your neighbours can do when your ISP fails to properly isolate customers on layer 2.
Depends what you need. My last power outage was over a year ago, and Internet issues will generally resolve themselves in a relatively short period of time. That's reliable enough for a lot of use cases.
NAT restricts what is possible to do over network for example we only use TCP and UDP protocols, because those protocols are supported by most devices. Similarly we have very minimal number of peer to peer applications. P2P currently is mostly popular with piracy, but it could be beneficial for other uses.
NAT + asymmetric speeds (which started because of DSL, but ISPs decided to keep things that way even though it is no longer necessary) are responsible that's why we haven't a lot of services that are centralized. IPv6 has chance to fix this and I am so glad NAT wasn't included in its design.
Well it solved the roof collapsing, but the problem is it makes innovation difficult and straight up impossible in some cases.
[0] https://social.technet.microsoft.com/Forums/windows/en-US/57...
So people who have been trusting NAT to be a firewall wake up one day to their network being directly routable, and are none the wiser.
Most endpoints these days don't have much if anything listening by default though. The reality is that even trusted local networks are hostile networks, and vendors have responded to that.
9 million addresses for 2 years is a burn rate of ~375k/month. Another 2 million newly obtained addresses in the next 2 years will last 6 more months.
At some point IPv6 will become more economical.
One of the IPv6 ISPs did a talk about this, they realised that rather than hiding this cost they could surface it and then magically instead of "Try to persuade technical people to choose IPv6" the situation is "Make technical people explain to their finance department why they're spending the extra money" and what do you know, "Learn IPv6" is way more popular than "Argue with accountants".