Monday, July 1, 2019

Why the world is still connected despite finally running out of IPV4 addresses

Why the world is still connected despite finally running out of IPV4 addresses

In September 2015 it was announced that the US had officially run out of IP V4 addresses. Now they’ve been predicting that this would happen for years now and very very slowly the move to IPv6 has been taking place.. But you know there hasn’t really been any enthusiasm on that front but with the explosion in IoT devices guess this day was actually going to happen pretty soon and it has.
So here we are and from the press you’d think the world had stopped spinning and nothing new would be able to be put on line unless you enter into auctions to sell & buying of blocks of IPv4 addresses from those who are willing to sell
Okay so why has this happened?
Simply put to communicate via the internet you need a source and destination address and a way to get from the source to destination. So every device , end point whatever is connected has an assigned Ip address as a way to identify your source and destination. The internet can then be used to route packets of data between source and destination ( including diversions) . So up until this month IPv4 was still being the most popular way to address devices on the internet .
IPv4, was created back in the 1970s. Vint Cerf led the team who invented it. It however is made up of four 8-bit numbers or 32-bits total, providing for 4.3 billion addresses. Putting things into perspective that was nearly an IP address per person at that time. The population on earth was roughly according to some records around 4.2 billion.
[ side thought: I read way too many sci-fi novels so in my world that is like a unique ID for each person I like the symmetry there]
The population of earth today is roughly 7.34 billion .. So guess you can start to understand the scale of the problem. In that time we have not only had a proliferation of humans but a proliferation of devices that need to communicate from light bulbs that let you change their colour remotely , remotely controlled thermostats like hive & nest through to mobile phones sending data back & forth to the cloud and your phone .
[Another side though: I actually think assigning each individual a unique IP address as a unique world Identifier is kinda neat. You could when you travel when arriving at an airport temporarily register with that country’s root DNS .. Sorry I digress and yeah that then opens a whole thing about privacy etc etc.. I was just thinking about the practicalities not the wider implications you know like never worrying about accidentally washing your passport before your flight the next day .. just saying..]
IPv6 however uses four 32 bit numbers or 128 bit total which provides for 340 undecillion addresses which is so many that when I started to work out how to easily convey how big that was I gave up!
340 undecillion’s look like this : 340,282,366,920,938,463,463,374,607,431,768,211,456. for those of you interested in the number of zeros!
Now over the years in preparation for the running out of IP addresses IPv6 has been rolled out gradually through the core of the internet and all modern devices are IPv6 addressable. Check your phone settings and look for your IP address or If you’re reading this from a laptop or desktop run ifconfig or ipconfig( windows) from the terminal and you should see both an IPv4 and an IP6 address .
So despite your device showing you having an IPv6 address it’s more than likely your ISP is using an IPV4 address . Go check on a site that shows your public IP address when you browse to it.
Your IPv4 address on your device is more than likely going to be a non internet routable address ( RFC1918). this is essentially to combat the lack of available IPv4 addresses to assign a unique IPV4 address to your device . Now I can go on about the nuances of this but ultimately it means that workarounds like NAT have become a big thing when using IPV4. I promise I won’t go on about the fact that the packet headers formats are different or how routing IPv6 is simpler or about he security extensions to IPV6 so you can prevent your device having an exposed IP address.
I may find all that interesting but it’s not what this post is about it’s about why you don’t need to panic that you app will never get out there as you’ve never really thought about Ip addresses have you. .. go on admit it you’ve probably just figured all would be fine
Okay so if we’ve had this alternative that is actually running happily alongside IPv4 why the fuss well it’s complicated but simply put you need to solve a number of problems:
  • Both destination and source need to use the same addressing scheme either IPv4 or IPV6 you cannot route from IPv4 to IPV6 directly
  • Backbone routers need to route IPv6 traffic ( actually need to be dual stack as IPV4 is going to hang around for years and years to come still)
  • DNS system needs to accommodate IPV6 addressing
  • Applications that are written to store IPV4 addresses such as SIEM and logging systems that will break if attempts to write the longer IP addresses are made
  • Applications that cannot route IPV6 such as where protocols that embed Internet-layer addresses, such as legacy FTP and NTP, where the new address format may cause conflicts with existing protocol syntax
  • What if you have or want to have point to point connectivity with partners and customers?
Luckily the DNS system has for a long time accommodated IPV6 hostnameswhich are mapped by AAAA resource records. All backbone routers also route IPV6. Most applications including NTP, FTP and telnet have been rewritten to deal with IPV6 so it’s legacy stuff that needs addressing
Ultimately it’s the ISP’s and cloud providers who really need to deal with the issue and if you use one then you can take advantage of the products and infrastructure they provide to help you
a) future proof your applications and
b) lessen you having to worry about all this networking stuff anyway.
I’m going to use Google Cloud Platform as a great starting point after all with Vint Cerf being there and Google being a founding participant in IPV 6 launch day it’s a logical choice and as it’s the cloud I spend most of my time on these days why not!
Bear in mind Google are going to have been thinking about IPv4 for some time and their Cloud Platform has features that allow you to deal with IPV6 today in some fashion and they will have a longer term plan to make the migration as painless as possible .
Google has a world class global load balancing solution that uses a single global IP address . This is a special as it can intelligently route users based on proximity . This single entry to your services means that DNS-based load balancing is not required. This avoids problems with stale geo mapping data. Your virtual machines running on Google cloud platform can sit behind the load balancer be that two or thousands of machines . You can scale up and down to meet demand and not have to worry about how your customers reach your services as addresses don’t change.
So no DNS propagation lags , no worrying about having to deal with Natting and proxying , Google takes care of any of that low level stuff for you out of the box. . That plus a system designed to tolerate extreme spikes in traffic, easily scaling from no traffic to millions of requests per second, in seconds. This improves the performance of your applications; every user, no matter how many of them show up at once, will make it through to your stack.
Use the fully managed services like Google Cloud Storage BigQuery, BigTable . Let Google worry about IP management while you focus on building your application.
Google Cloud SQL supports connections over IPv4 and IPv6 addresses. You can connect using either protocol, or both.
As far back as 2010 all App Engine apps were accessible over IPv6 to anyone participating in the Google over IPv6 program ( ISP’s matter here )
So swinging back to the title of the post guess I’ve explained why things just carried on

No comments:

Post a Comment