[music]
In this section we're going to take a look at how to manually
configure IPv6 addresses on your devices.
We're going to start off with a base topology I have built here.
We're going to use this for most of the course.
I have some of the addressing done already,
some of the addressing designed.
Where we're going to be looking at right now is going to be on the
VLAN 36 interfaces between Router 3 and Router 6.
It's going to mostly involve FA0/0.36 on Router 3,
just to start with for this first section.
And then we'll move on to assigning addresses to Router 6 and so on.
So we're going to start with manually assigning IPv6 addresses,
and there's actually quite a few ways to do this,
which is why we're going to take a minute here to do it.
The first one would just simply be to type: ipv6 enable.
So if we switch over here to the command line, and let me
hop onto our Router 3, and we'll say, interface FA0/0.36.
And just to start with, we'll just do show ipv6 interface brief.
And you can see here that as of right now FA 0/0.36
does not have any IPv6 addresses on it.
The first command is just to simply say, ipv6 enable.
I think a lot of people misunderstand this command on the Cisco router,
that maybe you have to put it in or something
like that, and that's not the case.
IPv6 enable is a way of enabling IPV6 on an interface,
but certainly not the only one.
What you get if you type ipv6 enable, is you're going to get a
show ipv6 interface brief, and you're going to end up with nothing
but a link-local address on that interface.
That link-local address is of course going to be based off of the
client ID that we discussed earlier, and that of course comes from,
if I were to say, do show interface FA0/0,
and look at the burned in MAC address on it,
this is that semi-well-known formatting - EUI-64 -
we're going to look at in a minute,
defaults to using this for the link-local address, which is, you take
the second least significant bit - which is right here -
of the first byte of the MAC address and you flip the
second least significant bit to a 1.
That's your local global bit indicating that this address is now
a global unique address.
And then, of course, right in the middle, so in this case
between the D and the 4 in our MAC address.
If you look up here between the D and the 4 up here at this address,
you insert FFFE to pad the 24 bit MAC address.
Sorry, a 48 bit MAC address. Sorry, up to a 64 bit host portion for IPv6.
This is done automatically, and this is functional.
In fact, just to show you that it works,
we can hop over to Router 6 and say, interface
gigabit 00.36, and say, IPv6 enable.
Say, do show IPv6 interface brief.
It also gets an address, and it's fully functional.
The only problem is it's a little bit crazy of an address
to have to actually try to use.
So, we can copy it, we can go to the other side,
and we can very easily say, do ping, put that address in,
and you get the fun first problem that you have with using link-local addresses.
And if you look at some of the other addresses we have on this router already,
you see here we have a FastEthernet 0/0.344 with an address,
FA0/1 with an address.
And notice, with the link-locals, they all start FE80::/10, as we discussed before.
So the problem is, of course, normally a router looks at
his routing table and says, what interface does this go out?
Well, the problem, of course, here is it doesn't have any idea what
the egress interface should be.
And this is just a formatting thing on the Cisco router,
but this is another little bit of a fun thing.
If you say that the outgoing interface is FA0/0.36,
it will actually yell at you here, and say,
"No, no, no, I want the whole name."
So FastEthernet 0/0.36, and it works.
So our link-local addressing works.
And something else you should note, it'll become important as we
move through some of our other modules coming up later, such as BGP.
I'll show you how to actually use the link-local address to peer
with BGP neighbors and such.
Problem is, soon as you use a link-local address,
like we did right up here, it of course has no idea what the egress
interface should be, as we've already discussed.
So, for a lot of things, if you're going to use link-local,
you need to be able to specify the egress interface on the same line.
And you do this by specifying the interface index number in the IPv6 address.
Different operating systems do this different ways.
If you're on a Windows machine and - just as an example -
and you have not turned off IPv6, but if you're are on that Windows machine
and you look at your ipconfig, you'll find that it's usually something
like a percent 9, something along those lines.
But what I'm talking about here specifically is this part right here.
Really just the part at the end. I mean we're going to use the whole address,
but this tells the router your egress interface,
and Cisco chose to just use the interface name.
So if I were to repeat my ping command,
but this time actually add that to the end of it...
what sometimes confuses people a little bit is it's still
the remote address that I'm trying to contact, but then after the
percent is the local egress interface that I want to go out.
Hit enter, and it just works. It doesn't ask me what the
egress interface is anymore. The other thing to note here,
it's a little bit unfortunate, but I'm sure you probably almost saw
this coming, is it's case sensitive. If I lower that just an E
to a lower case e, it'll tell me "Oh, I have no idea what you're talking about.
I've never heard of that address,
or protocol, or whatever that is you're trying to say."
So that's just a little bit of a gotcha there.
So that's your IPv6 enable.
To wrap it up all you do is you get a standard link-local address
based off the MAC address of the device.
Your next choice, of course, is IPv6 link-local with automatic assignment.
That's what we just looked at, which is where you just do IPv6 enable.
This sort of calls into some of the other stuff I'm going to look at.
So let's move through a couple of these.
When we're talking about automatic or static assignment, this is talking
about pulling a link-local address with how you get your address
with some of the other things coming up later.
So, in some of the upcoming lessons
we will come back and look at this again.
Basically what I'm just trying to get out here is you're going to
get a link-local address no matter how you get your global IPv6 address.
We'll see what happens with this under different scenarios as we
move forward through these lessons.
The next one we're going to look at right now is doing a global address
with EUI-64, and this is sort of going to play back
into these two points above it as well.
In this one I think a lot of people don't understand 100% what happens here.
Let's take a look at it.
First thing I'm going to do is I'm going to say, no ipv6 enable.
Now, we don't have to take this off, but just in light of what I
said earlier, that you don't need it, I just want to show you that
you, in fact, don't need it.
As soon as you're going to go in and start manually doing your own stuff,
then you don't need the IPv6 enable anymore.
That's just sort of a generic way of quickly throwing IPv6 on an interface.
Maybe this is like a link between you and your service provider.
And as I get into some more complex examples later,
I'll probably come back and just use that again.
It can be handy, I don't want anybody to misunderstand what I'm saying.
It's just that you don't need it if you're going to set the address another way.
For example, if I said, do show IPv6 interface brief, right now.
We're back to the 36 not having any address on it at all.
And now I'm going to say, IPv6 address, and I'm going to give it a
global address, 2001DB8:100:36::.
And, normally, of course, in a minute, we'll put the host portion here.
What I'm looking at right now is using an EUI-64 assignment, at which
case you simply say, the mask, and then we're going to say, EUI-64.
Hit Enter, and what you get now,
do show ipv6 interface brief, is you're going to get the link-local address,
because that always comes along. Have to have the link-local.
So we get the link-local address back again, and now it's taking that
same ending host portion based on the MAC address and puts it
after the global address that we put in.
But I think the part where a lot of people get mislead here a little bit
is to say that EUI-64 on the global address pulls its address
from the MAC address on the Cisco router. That's not specifically true.
That's what I'm going to show you right now.
What it actually does is it pulls the address from the client identifier.
The client identifier is pulled from the link-local address.
The link-local address is defaulting to pulling that from the MAC address.
Now, all of that said, I'm sure you can understand how it
becomes very common to say that if you use EUI-64,
that it pulls the host portion from the MAC address.
The problem with that statement is, again,
it's not completely accurate.
It's accurate from a default standpoint.
However, if I were to say, IPv6 address FE80::,
and this is Router 3, so I'll just make it ::3.
And then I said link-local, to manually set the link-local address,
hit enter. Do show ipv6 interface brief.
What we're going to find is that not only did that manually set my
link-local address, it also sets the client address for the global address.
So this is what I'm saying when I say you can't just say
EUI-64 is based off the MAC address, and we'll see this
later when we get to ISATAP tunnels.
It's not based on the MAC address anyway,
it's based on the underlying IPv4 address
of the egress interface for the tunnel.
So, EUI-64 is not always based on the MAC address,
it's actually based on the client ID for most applications.
So we'll, again, build on this more as we go, but this is sort of
an example of what I meant when I was talking about,
you know, if we go back over here to the slides,
this is link-local, and how it behaves and what you can do with
link-local with either an automatic assignment,
which is what we just did.
That's one way of doing automatic, just so we're clear.
EUI-64 is one way of doing that.
Another way, of course, is to say, what happens when there's a static
assignment to the link-local address?
So that's EUI-64. Let me hop back over to Router 3 here.
Now we're going to do it a little bit different.
I'm going to say, no IPv6 address FE80::3 link-local.
And when we look back at it it'll be back to the MAC-based address thing again.
And now what I'm going to do is I'm going to hard code a real global address.
So we're just going to go back up to where we said EUI-64.
First thing we need to do is take that off.
In fact, you know what, before I do, let's look at another interesting problem.
I'm going to actually hardcode it in an address.
I believe I mentioned this in a previous lesson,
but you really have to be careful with IPv6 since it does support
multiple addresses on an interface.
You can see here what I end up with is my client ID based address,
which of course is this one, and the one I just manually typed in.
And again, there's nothing fundamentally wrong with that, unless,
of course, that wasn't your intention to end up with both addresses.
And if that's the case, you have to go back up to the address that we
did with EUI-64 and take it off.
There we go.
And this goes back to - and we'll wrap up with this -
this is a static address assignment. So this was our last point over here.
I didn't bring it up there, but this is an IPv6 global address using
a static assignment. So it is going to manually put in our global address,
like such, and the default behavior-- see, this doesn't go both ways
like where we're looking at a minute ago.
If you manually set the link-local, that will change the global address
used for any form of automatic assignment.
In the next section we're going move into some other ways of assigning
an address, and what we'll see there is we can
control this through link-local as well.
But if you manually set the global address or statically set to global,
that does not affect the link-local.
Now, since we used the link-local for so much in IPv6,
just to leave you with a recommendation here, I would say,
ipv6 address fe80::3 link-local.
And then what you end up with is both of your addresses manually
set the way you want them.
That's how I would do it if I was going to do manual address configuration.
And we are going to leave Router 3 this way for now.
[music]