The Internet Protocol version 6 will eventually replace the IPv4 that most of you are using right now.
You can get a complete explanation of the technical details from this article on Wikipedia, but I’m writing this blog to point out the greatest thing about having so much more address space — the routing.
IPv6 isn’t new.
The first Linux kernel supporting this new standard was released as an alpha in 1996, so IPv6 is hardly new. Adoption has been slow because so many devices such as home and small office routers do not support it and as such Internet services providers haven’t worried much about it.
Recently the remainder of the IPv4 address space was exhausted, so I imagine the world will be moving on to greener pastures sooner than later.
IPv4 can support 4,294,967,296 addresses using 32-bits, which is 4-bytes.
Now, about routing.
To get an IP packet to its destination, you have to know where it’s going.
Let’s say you’re a router and you receive a packet for 205.216.219.2. That machine isn’t connected directly to you, but you’re connected to 15 other networks — perhaps one or more of them can forward the packet to the user. But to which network should you forward that packet?
A portion of an IP address represents a network and the remainder represents a particular machine (or host).
The original IPv4 idea was to reserve three different classes of network addresses: A, B, C. Class A addresses were reserved for gigantic organizations, like IBM. Class B addresses were a little smaller. Class C addresses were reserved for networks with a maximum of just 253 hosts.
A router would know the class of the address by the first number.
If the destination address’ first number was small, like 8, then the next three numbers represent a host.
If the address starts with a mid-range number like 172 then the first two numbers represent the network and the last two represent the host.
If the address starts with a large number, like 205, then the first three numbers are the network and the last is the host.
Well, this turned out to be a huge mess when the world decided it loved the Internet. There just weren’t enough network addresses. So, someone came up with Classless Inter-Domain Routing (CIDR) and router software was upgraded to keep track of exactly how many bits of the address represented the network — that’s the slash and number you see on the ends of addresses.
An old Class C address like 205.219.23.0 is represented as 205.219.23.0/24 in CIDR meaning that the first 24-bits (3-bytes, the first three numbers) are the network address and the last 8-bits (1-byte, the last number) is the address of a host on that network.
So, a huge provider like Sprint could hand out a very small number of addresses to a customer in Topeka out of even a Class A block because all of the routers along the way could keep track of how much of the address refers to the network. An address like 45.152.166.0/29 handed to a customer means that the first 29-bits represent his network address and the last 3-bits represent 5 host addresses that he is free to use as he pleases:
45.152.166.0 – Network Address
45.162.166.1 through 5 – Hosts
45.162.166.6 – Broadcast Address (all hosts in the subnet will receive packets sent to their broadcast address)
A little clarification:
Without CIDR, then a router on AT&T’s network looking for a place to send a packet for a Sprint address like 45.152.166.29 could figure out that it’s for Sprint, but where do you hand it to Sprint? AT&T needs to have dozens of connections to Sprint spread out around the United States alone. And, what if the end customer has more than one Internet service provider??? Maybe they’re also using AT&T at their home office in Topeka… it doesn’t make sense to spend bandwidth sending the packet to Sprint in that case.
With CIDR, the AT&T network selects the destination depending on the most specific destination network address in a particular router’s table. For instance, there might be an entry for all of Sprint like 45.152.0.0/16… that’s a last-ditch effort. Sprint has also sent a routing entry that’s a little more specific like 45.152.148.0/22 that makes AT&T want to deliver that packet in Kansas City because it’s the closest connection to Topeka. And if the customer turns out to also have an AT&T connection, then the AT&T routers would figure that out because there would be a VERY SPECIFIC nework address in their tables, like that 45.152.166.0/29 you read about earlier.
These CIDR routing tables are built automatically according to the Border Gateway Protocol (BGP) by counting routing hops. People don’t sit down and type the things in by hand. ‘Nuff said.
CIDR is REALLY cool, compared to the old Classes A, B, C system, but we’re out of space because of how companies have split up their addresses by CIDR. There are still a huge number of unused IP addresses out there, but because of this internal fragmentation they can’t be split off for new customers.
IPv6 reserves 64-bits for the network and 64-bits for the host. Period. Networks will never have to be split again using some kludge like CIDR.
In the IPv6 universe, many providers will assign their customers smaller blocks of host addresses, like 56-bits to reserve some space for internal routing purposes, but this still means that every Internet customer will receive a network address that supports more hosts than the entire Internet did under IPv4.
And, if you’re a business, you’re going to be able to as many globally routable network addresses as you need. Period. If you get an address through Sprint and then you decide you don’t like Sprint, you take your address WITH YOU to another provider. No need to renumber everything.
Having globally routable network addresses has huge implications for small Internet services providers. Here is an example from my own life: I had a number of CIDR network address blocks representing thousands of host addresses that I got from Sprint. There were websites using these addresses and there were customers using these addresses that ran their own servers. I had more than one upstream provider, but to leave Sprint would have required renumbering EVERYTHING… and that would mean coordinating with hundreds of customers to change lots and lots of DNS records (because a name like www.winett.com is mapped by DNS to an IP address and that address would belong to Sprint, not me).
Globally routable addresses available to small providers is going to further drive down the price of Internet transit because a small company can shop for a new upstream provider that provides transit at a lower cost or higher service level or that sends free pizza. Right now, they’re tied to their first big provider, like I was to Sprint.
It never happened to me, but Sprint could have RAISED their price and I would have had to pay it to avoid the completely unmanageable process of renumbering all my customers. (Ok, lots of small ISPs renumber, but they have more than one person working there… I was the only person at Vigoris.)
Globally routable addresses will also make cooperative multi-homing arrangement between businesses possible. For instance, three businesses located next to each other could each be using a different ISP but be ready to announce one of their neighbor’s networks to their own provider in the event that neighbor’s Internet connection goes down. They could also be multi-homed 24×7, effectively sharing the bandwidth of all three connections.
You’re going to see building management companies offering extremely reliable, failure tolerant Internet connectivity over Ethernet thanks to this addressing. They might pay for a high speed connection from a local ISP and then back it up with a wireless connection to a competing local ISP. Or, they might go with a huge provider like AT&T and then back it up with a connection to a small local provider. Or, they might load-balance all the traffic between three large providers. All of this can be accomplished and changed as the market affords thanks to IPv6 network addressing and classless, CIDR-less routing.
Small ISPs: New, IPv6 Opportunity
In medium and large markets, right now entrepreneurs have the opportunity to set up Internet service provider businesses offering native IPv6 connectivity to business customers with IPv4 address space translated during this transitional period in which we now find ourselves. The beauty is that you have a captive market until IPv6 is universal because of the weaknesses inherent in IPv4 routing.
Live Large
So, get ready to live large. You’re going to find it quite difficult to exhaust your address space, even if every electronic device in your household, your neighborhood, your city, your state, your country, or your world was sharing your single Internet connection.
One more factoid: Network Address Translation
Right now you might be sitting at home sharing a single IP address with two computers, your phone, and your XBox 360. This is accomplished using Network Address Translation (NAT). Your router is keeping track of the packets going out and then mapping the returning information back to whatever machine in your home started the conversation. The IPv6 world won’t use NAT at all.
References:
http://en.wikipedia.org/wiki/IPv6
http://en.wikipedia.org/wiki/IPv4
http://en.wikipedia.org/wiki/CIDR
http://en.wikipedia.org/wiki/BGP4
http://en.wikipedia.org/wiki/Network_address_translation
Note:
I didn’t check all my math on those Sprint/AT&T example CIDR network addresses. The network addresses have to match up to boundaries according to binary math in the real world. I used to keep a table of all the boundaries on my wall when I ran my ISP business.
Leave a Reply