[music]
Now we're going to take a look at
SLAAC configuration or Stateless
Address Automatic Configuration.
The basic idea here, we're going
to be using the same topology that
we used in our previous lesson.
Again, we're going to be focusing on VLAN 36.
But this time, we're going to be
looking more at the router 6 side.
Well actually, sort of both router 3 and router 6.
Basically what this is going to be for
is to have router 6 automatically
pull its address from router 3.
The basic idea, before we jump too far
into this as far as configuration,
stateless autoconfiguration,
again is a replacement so to speak -
an alternative method maybe is a better way to say it -
for DHCP. and the idea is we can
have a device automatically learn
certain information.
The way SLAAC is right now,
although I know there have been some
RFCs proposed to update SLAAC,
but what you're going to get so far
is from your router advertisement -
and we're going to see this here
in just a minute -
but from your router advertisement,
you're going to get the prefix
length and the global address being advertised by the router.
The client is going to take that information and essentially make
up his own client portion of the address.
You will then also use the router
advertisement to learn who your
default gateway is.
So for warehouse scanners
and various sensors and so on,
that's all fine.
and that's what we're going to start with here.
The problem comes in of course,
is if you need actual DNS servers,
things like that.
That's where this falls a little short,
and where they're proposing
to do some changes to the RFCs.
So the first thing we're going to take a look at is actually
configuring the IPv6 router side,
and in our case, that's going to
be router 3. So this is where we left off before.
I just want to show you one thing here
real quick that I did do automatically
before we started on all these routers.
If we were to say do show run pipe include ipv6,
just want you to see that these devices automatic--
not automatically.
We had to enable it, but I already
turned on IPv6 unicast routing
and IPv6 CEF. Now, the IPv6 unicast
routing wasn't really required
for what we did in our previous section,
just assigning addresses to interfaces and so on,
no problem at all. But as soon as
you want to start doing routing,
then of course, you'll need that,
and the reason I'm bringing this
up here with SLAAC is if I were to say,
do debug ipv6 neighbor discovery, or advertise.
We can just do neighbor discovery here.
And as soon as we start looking
at this, we're going to see that
router 3 is already sending out -
there's the first one right there -
he is sending out a router advertisement
on his link local to-- and that the FF02::1,
that is the all nodes multicast address.
So the FF02 means link local, so it's a link local multicast,
just on this segment, and ::1 on his FA00.36 interface,
he advertises the MTU.
He advertises the prefix, and he also
advertises a valid and preferred lifetime.
The valid lifetime is how
long you're allowed to use that prefix.
The preferred lifetime is
how long you originate traffic
from that prefix.
Now this, as you can see, is happening automatically.
I didn't have to do anything on
router 3 except make it a router.
As soon as you turn on IPv6 unicast routing,
you're going to get router
advertisements going out the interface.
Now, if I said IPv6?
on the interface,
there's quite a few things here we can do,
of course. Most of this going to
be that we're talking about right now,
is going to be on the neighbor discovery.
So if we said ipv6 neighbor discovery
is the thing we're going to
focus on right this second.
Couple of things we can do: first one
is the RA, which is the router
advertisement message we're talking
about right now.
And a couple of things you can do: first off,
you can change the lifetime, you can change the interval,
hop limit of how far it'll go, of course the MTU.
And if you didn't want to do this,
because a lot of people look
at this and go, What if I'm going to use
some other method to configure this?
I don't want this neighbor
discovery and router advertisement message,
then you can suppress it.
I will say this, though.
Before you choose to suppress the
router advertisement messages,
you really need to think through what you're doing here.
The reason I say that is, when we
get to DHCP a little bit later,
you're going to discover that
there's no option to advertise your
default gateway or default router in DHCP in IPv6,
that's gone. Your default gateway next hop,
whatever you want to call, it is going
to come from a router advertisement message.
So before you do shut this off,
you probably don't want to
just do that unless you know why.
But we can suppress it, we can
change the interval to make it run
a little faster. As you can see it doesn't go very often here.
It doesn't really need to because
when the client comes online,
it will send out a solicitation message.
In fact, rather than speeding it up,
because it gets a little harder
to tell here, I'm going to let it go
a little bit slower for right now,
and as we bring up router 6
as the client, we can see that it's
not like the client is really going
to sit there, and by the way when
I said it's slow,
notice that this message right here-- where was it?
I've looked at a couple of things since then.
Here's him advertising 36, and I don't have date time stamps on.
If you notice, he hasn't advertised
it for a while and the last one
was way back up here where he
advertised 36 when we first started.
We have some other messages going on,
but that's him advertising 36.
There's him advertising 36 again.
Do show ipv6 interface FA0/0.36.
The default is 200 seconds.
Again, we could speed this up a
little bit just to show you how the
command works.
I didn't actually type it in.
We could change this to
show you how it works without going
crazy with it.
Let's just say once every 30 seconds.
Then if I look at the interface again,
that'll of course, trigger it to go right away.
Now, it's going every 30 seconds.
Now again, the reason I say this isn't all that critical,
honestly, is when the client comes online,
he's not just going to have to sit
there and wait until this guy
sends an advertisement.
That's not how it works.
The only reason that we even have
these timed updates being sent
every so often, is in case you go and
change the prefix being advertised
or you change the valid and preferred lifetime.
If you change any of that,
then you're going to want it to update
the clients that have already
gotten this information previously.
That's the only reason for the timed update anyways.
If it's not the fastest thing in the world,
the default's 200 seconds,
a lot of people go, I don't want a
machine taking 200 seconds until
it gets an address.
That's not what this is for.
This periodic update is literally
just to refresh anything.
So if I were to, again, just for an example,
say instead of interval, we could
say-- let's take a look here.
Let's do lifetime.
So we'll say it's the lifetime-- I'm sorry.
That's just for the router advertisement.
We need to do prefix for the one I'm looking at.
So we'll say prefix, and then we'll say default,
and set the valid lifetime.
So just for the sake of something to do here,
we'll say-- we're going to say it's valid for 600.
This is of course in seconds.
So that'd be 10 minutes.
It's preferred for five minutes. So if
we just change something like that,
next interval - there we go - we'll see these get changed.
And by the way, you might have
noticed too, as soon as I changed it,
notice that the IOS just kicked off another update anyway,
so it's not even-- a lot of changes you make
are going to trigger
an update anyway, even if it's not the 30 seconds yet.
But in any case-- so here's router 3
over here, advertising the information.
Now let's go take a look at the client side.
So let's go over to router 6 and we're going to say,
ipv6 address, and the command is auto config.
Now, just so you know, before I
type this - do show ipv6 interface brief -
he's going to have no address.
We're looking at this interface right here once again.
And I just want you guys to
understand that if this were Windows,
Linux, MAC, just about any other
desktop operating system out there,
end device, anything like that,
assuming of course it's IPv6 enabled,
it would've already pulled this information, most likely.
Most things are automatically set
up to do SLAAC and they'd already
be going. You'd already be done. But the router,
understandably I hope,
is sort of designed to be a router,
not an end device,
and therefore you have to actually tell it,
you know what, get your address from auto config.
Soon as we do that, if we hop over
to router 3, we should've seen--
there we go. So this is the other guy
sending a router advertisement--
oh, here we go. I wasn't looking up far enough,
I was looking for the solicit message, there it is.
Sending a solicited RA.
Notice, he didn't wait for a time or anything.
Right here, he received an RS,
which is a router solicitation message.
So he received the router solicitation
on his interface from ::.
Basically, it's from-- the guy doesn't know.
He's saying, Who's the router?
I need to know what my prefix is.
Basically he's saying, I know nothing.
So I, of course, send him that
information right away and that's it.
Now the rest of this, of course,
is going on with some other information.
But you can see,
that's the important part I want
to show you right now is that, we got the information.
Do show ipv6 interface brief,
and he's pulled that prefix from router 3.
Now, something else you may
want to do-- and this sort of goes
back to our previous lesson, and this
is completely optional, of course.
There's two things here that are optional.
First, you might want to control the address.
Because again, that's not the
prettiest host address in the world,
especially if this is a router.
You're going to be doing traces and
you're going to be doing pings,
and you're going to be doing network
diagnostic and troubleshooting.
If that's an end device, if that's
Sally's workstation out in accounting or something,
just like DHCP, we don't really care what it's address is.
But this is the device we may actually have to troubleshoot.
So you may not-- you may want to--
a lot of times with our routers,
I'm sure you all understand this,
that we would literally just have
them all statically assigned.
But in the interest of showing you all the different options,
we're not going to do that.
So we can combine this,
what we looked at before though, and say ipv6 address FE80::6,
link local, and actually control
that he's getting this part from SLAAC,
but then since we hard coded the link local address,
and therefore his IPv6 client ID,
we've now also controlled what
his host portion is going to be for that SLAAC address.
So that's one optional thing we could do.
The other thing we can do is
actually control that default route.
Remember we said with SLAAC - and let
me switch back over here real quick -
we're looking right now of course at configuring the
client device.
That's the main thing.
The client device should be getting
some basic information here.
It needs to get the prefix, which we've gotten - check.
It needs to get the prefix length.
/64 in our case - check.
It needs to get-- well, see here's the next part.
It needs to get its default gateway or its default router.
Now, again, in the case of a normal
desktop operating system end device
acting like a SLAAC client, we'd probably be done.
Once again, because this is a router, we're not going to be.
I'm going to show you that in one second,
but just real quickly here, I wanted
to show you what we're doing
right now, of course, is how we
control the host portion with the
link local address.
Here's the thing with the default gateway.
If I now said do show ipv6 route,
notice that he's got the /64,
and if you look at your legend up top, notice that ND--
sorry, I'm highlighting the wrong thing,
NDP is that he learned that from
a neighbor discovery prefix.
What he does not have, and you're
going to look over the routing table here,
these are all locally connected interfaces.
That's, of course, the interface
that we're talking about right now.
And I know you guys don't have the
diagram right in front of you,
but that is the VLAN 69 interface - both of those.
This, of course, is his loopback,
and this is simply for multicast traffic.
Anything starting with FF/8 is multicast.
So that's just basically telling him to receive any multicast
it comes to meet.
What we don't have is a :: route.
We don't have a default route.
And again, this sort of goes back
to the fact that this is a router,
not a client. And it's basically sitting there going,
I'm a router.
I should have routes.
I'm not client.
I don't just go to the default route.
But if you want it to, going back
up to our command where we put
the address in, auto-config,
there's another choice on this which
is to add default to it and actually get a default route.
If we do that, then it will insert
the default route into the routing table.
Let's give it a second here.
We may have to actually bounce the
interface to get it to do it again.
Now there we go.
Usually it kicks in, but I'm not
patient so I often just bounce the
interface quick.
There we go. There's your ::/0, otherwise known as a default.
It is from neighbor discovery.
That is your ND default, neighbor discovery default.
By the way, also notice that it gives it a very,
very good admin distance, and of course,
the metric is 0 because it's conneted.
These are going to be
really very believable routes when
it comes to comparing this to other routing protocols.
What we don't have at this point
is if I said do show ipv6 dhcp interface
gigabit 00.36 is-- we're not getting this from DHCP.
In a couple of minutes, this is
going to change a little bit in our
next lesson. For right now, that's it, that SLAAC.
It's pretty straightforward.
The big thing to remember, of course, is that it's not DHCP.
All you're getting is a prefix, a prefix
length, and your default gateway.
The host portion, you make up yourself,
and as far as any other options
that you would normally get from DHCP, then this is not going to
give you those options.
[music]