The Case for IPv6

February 22nd, 2010

0

IPv4 has served us well. It got the internet off the ground. It’s time to move on.

It’s a common joke made amongst network engineers that the internet was an experiment that escaped the lab before it was finished. The first time I heard that was from Paul Vixie during a talk at USENIX around 1995 or so. The most recent time I heard it was from Vint Cerf during a talk about IPv6. I find it funny because it’s kinda true. When the addressing scheme for IPv4 was decided, it was still an experiment in a lab, and the designers of the protocol figured they would have an opportunity to change the addressing at a future date. Then the internet became wildly popular and took off beyond anyone’s wildest imagination. We’re rapidly running out of available IP addresses. According to Weekly Routing Table Report, 90% of the available IPv4 address space has been allocated and 81.2% of that allocated address space is in use. Only 20% of the world is currently connected to the internet. Recently, IANA (Internet Assigned Numbers Authority), the organization responsible for managing the global IP address space, allocated 1.0.0.0/8 and 27.0.0.0/8 to APNIC (Asia Pacific Network Information Center), the entity responsible for allocating IP addresses the Asia-Pacific region. What’s interesting about this is 1.0.0.0/8 has addresses that have historically been used by some vendors as junk, default, or example addresses, e.g., 1.1.1.1, 1.2.3.4, etc. Whoever is assigned addresses from those blocks is in for some interesting traffic problems. There is an interesting thread on the NANOG (North American Network Operators Group) mailing list about this, if you’re interested in reading it. There are a couple particularly interesting posts. In an effort to de-bogon ise 1.0.0.0/8, APNIC asked RIPE (the European equivalent of APNIC) announce a few of the prefixes from the the block to collect data. The results were interesting. As we continue to run out of address space, we will run into more of these types of interesting problems.

What to do? Fortunately, some smart people have been thinking about these problems for some time. IPv6 is the next generation protocol meant to replace the current IPv4. Amongst many other features, it has a much larger address space than IPv4: 2^128 vs 2^32 addresses. IPv6 has been defined since 1998, yet as stated in the wikipedia article, a recent study shows that less than 1% of internet addresses use IPv6 in any given country. But how do you go about re-addressing the internet, a network with 2,189,070,784 addresses being announced? It turns out to be a hard problem. You can’t just shut down the internet, renumber everything, and just turn it back on. The internet is a network of networks with no centralized control. For those not familiar with the concepts, there’s a handy video to explain. So what do we do? You deploy IPv6 gradually. The idea is to run IPv4 and IPv6 in a dual-stack mode, but there are some problems with this from a network engineering standpoint. Routing tables for the internet take up memory and CPU on routers. Is a service provider supposed to go out and buy all new equipment to handle both sets of routing tables? That’s an expensive proposition, especially when you’re probably not going to need all that extra capacity for the life of the router. Being a large service provider with 100s or even 1000s of devices, renumbering is a large engineering problem, especially wehen there is the expectation that you are always up and available.

There is hope. Providers are starting to offer IPv6 services. Comcast is rolling out an IPv6 trial to some of their customers. Google added IPv6 service to YouTube. Hurricane Electric is one of the largest providers of commercial-grade IPv6 internet service. Being a small company is advantageous, which is why I want to move in the direction of offering IPv6 services earlier rather than later. If we engineer with IPv6 in mind, it becomes a simple problem.

Tagged with: IPv6, IPv4

Related Posts

Author

Chris Nielsen

Small

Chris is our Senior Operations Engineer. Before joining the Border Stylo team, Chris spent six years as a wildland firefighter throughout the Western United States.

Tags

API Aardvark Athletes AutoCAD AutoLISP Avinash Kaushik Barrelfish Calculus Careers Catalysts Community Community Conferences/Conventions Conferences/Conventions Culture Digital Footprints Evernote Gaming Geek Culture Glass HR HTML Haskell Holidays IPv4 IPv6 IgniteLA Ignorance Innovative Interactions Kanban Knowledge LEGO Lomography Los Angeles Martha Stewart Movies Multikernel Music NBA QA Resolutions SGML Scheme Scriptability Social Fresh Software Development Sports Stereomood Swag Unix Videos World Cup 2010 advice agile ajax apps beta testing beta versions bloggers brands browser call/cc china comet communication community management computation continuations control-structures copyleft copyright coroutines creative workspaces creativity critiques css cucumber cursors customer service customer support data products design designers dynamic code entrepreneur entrepreneurs exceptions extension facebook feed firefox franken post gadgets generators google greasemonkey grid system http humanization innovation intellectual property internet iphone jQuery javascript job search job-hunting jobs lambda lamp marketing markov chain martinis monetization strategies mottos mst3k networking new technology open source software passion patent plugin privacy productivity programming languages pure-function quality assurance readability remote pair programming resumes tips rspec ruby ruby on rails scalability screencast security servers social media software engineering start-ups state syntax team members terminology test threads tips tools turing machine type theory types typography user experience user stories vidcon web development webspider xbl youtube zappos

0 Comments Leave a comment

Leave a comment

Anonymous
Right now

Your comment preview

Reply to comment





Incorrect please try again
Enter the words above: Enter the numbers you hear:
If you are not able to read this, you can get another image or hear it
Want to see an image again?

Allowed Tags

_emphasis_
*strong*
??citation??
-deleted text-
+inserted text+
^superscript^
~subscript~
@code@

Add code using a GIST
gist: gistid