So let’s make sure we’re on the same page. IP addresses are like internet phone numbers. IPv4 (what we have been using for years) is fine, but we’re almost out of numbers.
We’ve known we were gonna run out of numbers for a while now, and to slow this down we used NAT. Just think of it as using an extension in addition to the phone number. All phones in an office dialing out use the same phone number, but if you want to call someone you use the extension.
IPv6 is a new phone number. We can have way more of them and we will not run out, probably ever. IPv4 has enough addresses for half of the world’s population. IPv6 has enough addresses for every single grain of sand on the planet.
We are out of numbers. Just because technically there might be some unassigned or even assigned but unused numbers doesn’t mean we didn’t run out of them. There are more devices in the world connected to the Internet than IPv4 addresses exist. If you read this sentence from the standard strictly:
The internet protocol provides for transmitting blocks of data called datagrams from sources to destinations, where sources and destinations are hosts identified by fixed length addresses.
This isn’t the case with NATing as hosts are no longer identified be the address alone (but additionally other parameters like port number or TCP connection status). You can’t ICMP ping a NATted host to my knowledge because it operates on IP directly (it’s actually part of IP itself). So parts of the protocol become unusable. So just by logic, we have run out. The last remaining blocks won’t fix the issue, and rather make routing worse than it already is.
Ok, here’s the non-technical explanation.
So let’s make sure we’re on the same page. IP addresses are like internet phone numbers. IPv4 (what we have been using for years) is fine, but we’re almost out of numbers.
We’ve known we were gonna run out of numbers for a while now, and to slow this down we used NAT. Just think of it as using an extension in addition to the phone number. All phones in an office dialing out use the same phone number, but if you want to call someone you use the extension.
IPv6 is a new phone number. We can have way more of them and we will not run out, probably ever. IPv4 has enough addresses for half of the world’s population. IPv6 has enough addresses for every single grain of sand on the planet.
We are out of numbers. Just because technically there might be some unassigned or even assigned but unused numbers doesn’t mean we didn’t run out of them. There are more devices in the world connected to the Internet than IPv4 addresses exist. If you read this sentence from the standard strictly:
This isn’t the case with NATing as hosts are no longer identified be the address alone (but additionally other parameters like port number or TCP connection status). You can’t ICMP ping a NATted host to my knowledge because it operates on IP directly (it’s actually part of IP itself). So parts of the protocol become unusable. So just by logic, we have run out. The last remaining blocks won’t fix the issue, and rather make routing worse than it already is.
Ok, next question:
Why does every grain of sand on Earth need its own IP address? 🤔
We’re bringing the Internet of things to more things. Don’t ask why
Actually, every grain of sand could have around 45 billion IPv6 addresses.