Friends we are in the midst of a revolution.
In fact the revolution is pretty much already over and a lot of people don't even know what has happened.
What's taken place is the world of IP addresses has fundamentally changed.
Now what I'd like to do is let's go ahead and put up an example IP address.
OK so here's an IP address a typical IP address.
We've got our four values separated by three dots.
Now this type of IP address which we're now going to call IPv4 because that's really what it is, has
been serving us great for I'm not even going to say it's it's many decades it's done a great job but
this has a big problem.
This form of addressing IPv4 has a total address space of around 4 billion addresses.
So we can go all the way from four zeros like this all the way to 2 5 5 2 5 5 2 5 5 2 5 5 like this.
And there's around 4 billion possible IP addresses.
Now if you've been following along through this series you'll know addresses like four zeros and 2 5 5
2 5 5 2 5 5 cannot be used to address individual computers they're used for their own special things.
So even though we have an address space of two billion different IP addresses so many of these are reserved
for very specific functions that it's actually a little bit under a billion to be honest with you. The
fact that the Internet has gotten so popular has made a situation where we've simply run out of IP addresses.
There are no more.
They're gone.
In fact they've been pretty much gone for the last few years and we've been playing really silly games
to try to get around it.
Things like using NAT for primary networks, using private IP addresses, and stuff like that.
We knew that this was coming.
We knew that this was coming over a decade ago and a new form of IP addressing called IPv6 has now
been pretty much adopted by everybody.
It's interesting though for so many people they don't even know that that's happening. Now
let me explain why. So here I got my phone here so I'm going to call my buddy Brian so go to look him
up on my contacts there's Bryan.
So to call Bryan
all I have to do is press on his extremely attractive picture. He's good looking guy look at him. All right
now do I have to know his phone number?
Well I had to do it once but once I've got his number in there I'm all set.
So any time I need to talk to Bryan I just press on him and ta-da I'm talking to Bryan. Now even though I don't
know Bryan's phone number,
let's pretend like I do. So here in the United States a typical phone number would look like we put a
area code and then I'm going to put 555 here.
We have our exchange and then we have a four digit number.
So here's an example of a 10 digit phone number that we would use here in the United States.
Now what if I controlled your speed dialer.
Stick with me here folks.
If I could just set up Bryan Johnson in your phone for you, how does that sound?
Now the trick about this is that if I do this for you I could make a really, look I could make a
phone number look like this.
You wouldn't care because all you have to do is press on Bryan and you're dialing him right.
Well that's what's happening with IPv6.
In fact it's probably already happened to all of your computers at home.
Probably most of them in your office.
The Internet has already moved to IPv6.
And because we use things like DNS all we have to do is type in W W W dot Google dot com and hit enter
and you're not going to an IPv4 address. If you're going to Google you're pretty much always going
to IPv6.
So IPv6 is an incredibly powerful tool.
First of all IPv6 goes up to 128 bit address. So just for fun.
Let's put up an IPv6 address here. Here's just an example of one.
So first of all you'll notice that there's hexadecimal values in there.
So we have the letters A through F
will be in there. That's just good ole hex.
Each one of these individual letters represents four ones or zeros.
So you'll see that we've got them separated into eight groups separated by seven colon so this is a
typical IPv6 address.
This is 128 bits long. To give you an idea of the address space for 128 bits,
this is two to the 128th power,
we could pretty much give every air molecule on earth its own IP address and do that six more times.
So that's a lot of IP addresses and hopefully we won't have to do an IPv12 sometime 100 years from
now, so hopefully this is going to last us a while.
But if I were to simply tell you that the only thing IPv6 does is gives us more phone numbers,
I wouldn't be telling you the truth because it does a lot more than that.
The first thing I want to talk about is something called aggregation.
Now to appreciate what aggregation is I need to draw us a map.
Let's take a look at the continental U.S. So here's a map of the continental United States and what
we're going to do here is I'm going to draw up a few points let's pretend it's the beginning of the
Internet the late 70s early 80s.
So I'm going to put a dot here in Houston Texas.
I'm going to put a dot over here in Southern California.
I'm going to put a dot somewhere in the Midwest arbitrarily.
I'm going to put a dot over here in the New York City New Jersey area.
I'm going to put a dot down in around Atlanta Georgia.
And what I'll do is I will have some amount of interconnectivity here.
Not everybody is connected to everybody but let's just draw a few lines so that there's always connection
between all these guys.
So what you're looking at right here is what the original internet was thought to be.
So remember we have four values in an IPv4 address.
So let's go ahead and say that there is a router over here in California.
He's going to be the one router then there's a router up here around Chicago
he'll be the three router. Then there's a router down here in the Houston area
we're going to make him the 11 router. So all of these routers get an individual number that goes between
1 to 254. Now what I want to do is let's zero in on Houston a little bit.
So let's zero in here and we can see that that dot that I had for Houston is actually at the Rice University
and there is a router in there and that router,
the idea was this would be the 11 router.
So anybody who connected to this router their IP address would have started with 11.
So let's say that University of Houston wants to connect to the Internet.
They would connect to Rice university, so we'll draw a line from Rice University to the University
of Houston and we'll call Houston
I don't know 11 dot 10.
Why not 11 dot 1 Mike? Well because we never do things in order on the Internet and that's just
how it is.
So if Exxon Corp. wants to have a connection to the Internet they'll take a connection from Rice University
and they'll be 11 dot 24.
And if some other organization wants to connect and they'll be 11. 44 It doesn't matter what these
numbers are.
So what we're doing here is we're slowly building up Internet addresses.
Let's zero in one more time this time on University of Houston.
So we now see that a University of Houston that 11. 10 is actually sitting at their primary computing
center at U of H.
Now U of H has lots of departments and they all want to get on the Internet.
So if their geology department wants to get on the Internet they're going to put a router in the geology
department and that will be a 11. 10 dot
Oh let's just say 1 juts to make it easy.
And then all the individual computers in the geology department are going to be 11 10 1 dot 1, dot 2, dot 3, dot 4, dot 5.
You get the idea?
And if that's not enough then we could have it handle another one for the geology department 11 dot 10
dot 2.
That's easy enough.
Let's just say the history department wants to connect.
So we'll run another line from the University of Houston router over to the history department and we'll
make that 11 10 dot 3 and all the individual computers at the history department are going to be
11 10 dot 3, dot 1, dot 2, dot 3, dot 4, dot 5. Get the idea? That's aggregation. The beautiful part about aggregation is
that if we could have pulled this off with IPv6 it would have massively reduced the amount of data
that's going through that top of the Internet that tier 1.
If you think about it if aggregation really worked
any time anybody saw a packet for 11 they would know instantly which router to send it to. You get the
idea?
There's a lot of downsides to IPv4 though for example if you look at how I set that up on that picture
you'll notice that you could never be more than three routers away from the top of the Internet.
And folks the Internet is a lot bigger than that.
The bottom line is that we tried to do aggregation with IPv4 years ago and the complexity of the Internet
just made it so
you couldn't do it.
It didn't work.
The end result of that is if you look at the top of the Internet there are quarter million dollar super
high throughput routers and these routers don't have firewalls built into them.
They don't have NAT.
They don't do any of that stuff.
They just do one thing they route and they're routing tables are thirty thousand seventy thousand lines
because without aggregation these routers have to know about a whole bunch of other routers to get data
where it needs to go.
If I have a router on the top of the Internet and if aggregation work the way it would that routing
table at the top of the Internet would only have to have enough routes to cover the one through 254.
That would be it it wouldn't need anything else.
And we didn't get to do that because we didn't think ahead about how IPv4 would look. You know actually
back in the day they were talking that well you know with this IPv4 we should be prepared to have
an Internet that one day might have I don't know maybe 25 maybe 50000 computers.
It was the 70s man.
They tried OK.
The beautiful part about IPv6 is that IPv6 has so much address space that we can now come back to
aggregation. By allowing aggregation to work with IPv6 we allow your data to move from your machine
to another machine much much faster. Latency that delay while we're waiting for our web page to load
or whatever it is for our game to refresh, reduces dramatically because the concept of aggregation is
back with IPv6.
And anybody who uses, well Google is probably the most famous one, today if you're on Google you're almost
certainly using IPv6, and I don't think anybody would argue with me that getting on Google with Chrome
Web browsers pretty pretty fast right.
I think it is. So aggregation really really makes IPv6 great.
So we've got much more address space so we can have a lot more computers.
We've got aggregation which is going to speed up latency.
The third thing that IPv6 brings to the game is self configuration.
We've spent a lot of episodes in the series going through things like NAT and configuring NAT properly
and setting up tables to deal with that.
We've configured DHCP eight ways to Sunday.
We understand how ARP is used to resolve an IPv4 address to a MAC address.
All of that stuff is gone. With IPv6: NAT is dead,
ARP is dead,
DHCP, it should be dead
but we've got some backward compatibility just in case you might need it for some things, but in a perfect
world even DHCP is dead, and it's all been replaced with a new protocol called the neighbor discovery
protocol or NDP. The neighbor discovery protocol is a multicast based protocol
where pretty much all of the machines in the Internet just kind of start talking to each other and automatically
configure themselves.
It's absolutely incredible.
So if you're like me when you first saw that IPv6 address you're like oh boy do you mean I'm going
to have to type all those letters and numbers in some times.
Well the answer is yes but it's going to be a lot less than you might think.