Why does the “Internet of Things” enforce the need for IPv6 addresses?

Solution 1:

The Internet of Things does not absolutely mandate IPv6, but for IoT to be useful or usable IPv6 is very much preferred.

IPv4, due to the limited number of addresses available means that not every device can have a public IP. For a cluster of devices to share an Internet connection then they have to share the IP via NAT technologies. If the devices want to host servers then they have to punch a hole through the device hosting an Internet connection using port forwarding or UPNP or related technologies. This can get complicated, especially if multiple devices want the same port for their servers. An alternative method is to have a central management server that both the home and remote devices dial in to in order to exchange data.

IPv6 does away with the need for NAT, port forwarding and the lot and allows every device to have its own public IP and associated ports. It removes complicated port forwarding rules and methods for punching holes in firewalls. It removes all the network co-existance problems that plague current devices. You can connect to devices without needing to configure firewalls or set up accounts on third party services that allow you to connect to your device.

Quite simply it allows the Internet to function in the way it used to before we realised we didn't have enough addresses to let every machine have its own public IP address.

To give a slightly more visual idea of how IPv6 and IPv4 allow the IoT to work imagine you have a fully automated home, with every device hosting a server where you can turn it on.

With IPv4 your network is complicated to set up (you will spend an age on your router setting up each individual port forward rule) and the best you get is a list of port numbers you have to write down in a text file:

  • myhomenetwork.com:80 (this is my router)
  • myhomenetwork.com:81 (this is my computer)
  • myhomenetwork.com:82 (this is my coffee machine)
  • myhomenetwork.com:83 (is this my TiVo?)
  • myhomenetwork.com:84 (could be a lightbulb, not sure)
  • myhomenetwork.com:85 (fish tank heater?)

It also means that unless you take the time to set up multiple ports for each device then they only have one port available and so can probably only present a webpage to the internet. For devices that want to show a http (web) server or ftp or SSH server this can get painful and annoying pretty quickly as you'll spend time opening up more ports and writing down what port you gave to what device.

IPv6 due to having publicly available IP addresses for every device means your network configuration time drops immediately and you can get a more sensibly named network and each device can easily host whatever services it likes:

  • myrouter.myhomenetwork.com
  • mycomputer.myhomenetwork.com
  • mytoaster.myhomenetwork.com:80 (http server, webpage showing a push-to-toast button)
  • mytoaster.myhomenetwork.com:21 (ftp server, so you can upload perfect toast settings)
  • mytoaster.myhomenetwork.com:22 (SSH server, for securely talking to your toaster)
  • myfrontroomlightbulb.myhomenetwork.com

And so on.

The IoT can work on IPv4 and be just fine, but IPv6 can make it work right.

Solution 2:

There is just one IPv4 address per Network/Router that is connected to the Internet.

That is not even close to being true. You are seeing things through the eyes of a typical home network user.

Think for a minute what you, as a home user with only one public IP address, would do if you want to allow multiple devices using the same transport protocol and port, say two web servers, which by convention use TCP port 80, to be accessed from the public Internet. You can port forward TCP port 80 on your public IP address to one private IP address, but what about the other web server? This scenario will require you to jump through some hoops which a typical home user isn't equipped to handle. Now, think about the IoT where you may have hundreds, or thousands, of devices (light bulbs, thermostats, thermometers, rain gauges and sprinkler systems, alarm sensors, appliances, garage door openers, entertainment systems, pet collars, and who knows what all else), some, or all, of which want to use the same specific transport protocols and ports.

IP was designed for end-to-end connectivity so, no matter how many different hosts use the same transport protocol and port, they are uniquely identified by their IP address. NAT breaks this, and it limits IP in ways it was never intended to be limited. NAT was simply created as a way to extend the life of IPv4 until the next IP version (IPv6) could be adopted.

Many people confuse NAT with security, but NAT has nothing to do with security. Firewalls and other things, perhaps anti-virus software, etc., give you security. Home networking devices usually include a NAT router and firewall combination, but make no mistake about it, you don't need to enable NAT if you have a sufficient number of public IP addresses, and you can still use a firewall for security.

IPv6 currently has 1/8 of the IPv6 addresses in the entire IPv6 address block set aside for globally routable IPv6 addresses. Assuming there are 17 billion people on earth in the year 2100 (not unrealistic), the current global IPv6 address range (1/8 of the IPv6 address block) provides over 2000 /48 networks for each and every one of those 17 billion people. Each /48 network is 65,536 /64 subnets with 18,446,744,073,709,551,616 addresses per subnet.

The ideas for the IoT are in their infancy. We just can't foresee what is in store for IoT, much less what else may be coming.

Solution 3:

The “Internet of Things” DOES NOT force a need for IPv6. IPv6 is needed even ignoring the IoT - quite simply put, the world is virtually out of IPv4 space, with significant parts of the world not connected, and horrible hacks in place even for the places which are connected. This would be the case even ignoring the IoT - just consider the case of mobile phones - most of these require Internet, and a large percentage don't actually have it (they have an approximation of Internet using Carrier Grade NAT) due to the shortage of IP space.

The IoT does exacerbate this shortage by upping the demand for IP space. A lot of the time this can (and is) worked around, but all this is a hack. Instead of having a world with 1 PC per household, we moved towards a world of a PC per person + a cellphone. The IoT ups this by an order of magnitude again, with lots and lots of devices.

Another important element is that when you are using devices to consume information, its fairly easy to share a single IP address (i.e. use NAT), however when publishing information / running a server - and an IoT device is a server - it benefits hugely from having its own address.