In this video, I'd like to spend a few minutes with a topology
and walk through the big picture of how DHCP is supposed
to work on a good day, and also point out
a few hiccups along the road that could prevent it
from working.
So let's start with IPv4.
Now, if we're going to be implementing DHCP services
on a Cisco router, which is what we want
to be able to troubleshoot as far as what this set of videos
is about, we'd need to have a pool.
So we can have-- maybe let's say R8 is our guinea pig. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
So we can have-- maybe let's say R8 is our guinea pig.
And we create an IPv4 DHCP pool.
So in that pool we can specify things
like the network, the default gateway, which is important.
So if we have support for 10.0.1.0/24,
and we have a default gateway that's not correct,
when we start handing out IP addresses,
the clients who are going to get those IP addresses won't have
an accurate default gateway.
So that would be a good thing to check.
We could also hand things like options.
What do you mean, Keith, like options?
Well, like specific options. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
Well, like specific options.
If you're using IP telephones and they
need to find their TFTP server so they
can download their config, or you
have access points that need to find their wireless LAN
controller, or other options like that.
We want to make sure they're right.
So besides handing out and getting the options
to the clients, we'd want to make sure
that we've looked at those options,
and they are correct for what the client needs to function.
So the network, a default gateway,
perhaps a DNS server would be handy to hand out.
That way a client can have a lot of-- all that detail. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
That way a client can have a lot of-- all that detail.
So let's imagine that we have an IPv4 pool down here,
and we have a client up here.
And the problem, of course, is that the DHCP DORA
process is local.
So if this client sends out a discover message looking
for a DHCP server, it's not going
to make it over the routed network,
unless we set up a feature here, which is the IP helper feature.
It's also referred to as the DHCP relay function.
So the client does the discover.
This router on this interface sees it, encapsulates that, WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
This router on this interface sees it, encapsulates that,
and sends a request down to the server, R8, and says,
hey, I got this request for a DHCP client here.
And it's going to include this source interface.
That way the DHCP server knows this is for the 10.0.1 network
based on the address that was used for sourcing
that packet here on R1.
So again, as far as it working, it's great when it works.
But if the client--
if the router does not have the IP helper function there, WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
if the router does not have the IP helper function there,
that would be an important thing to look at.
So as far as what can go wrong, I
have a little checklist here I wanted
to make sure I looked as well.
Oh, snooping.
If we have DHCP snooping, you want
to make sure that our switches that are here-- so if we have
a switch right here, and we want to make sure
that this is a trusted port if DHCP snooping is involved,
because R1, who's acting as the helper,
looks and feels to the network like the DHCP server.
So if we have DHCP snooping on the switch WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
So if we have DHCP snooping on the switch
and it's not allowing DHCP server messages coming in
from R1, that would also stop it.
So that would be important to make
sure we include the trusted ports from a switch perspective
if we're using DHCP snooping.
And, oh, one other thing is the excluded addresses.
And up here, if we've already got
dot-- on this network, 10.0.1.
We have a pool for it.
We have 10.0.1 through 50 already in use.
We need to-- we should tell this DHCP server that those are WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
We need to-- we should tell this DHCP server that those are
excluded addresses, because if we don't--
well, if we don't, what happens is
the router is going to hand out an IP address.
And before it does, by default, it's
going to ping that address.
So R8 is going to ping the address
that it's about to hand out.
And if it gets a response, it realizes, oh, no, that's
already in use.
And then we have a bind conflict.
And so then it'll say, well, I'm not
going to hand out that IP address.
Let me hand out the next one.
So by excluding the ranges of addresses
that are in use, that's an important thing
to do to make sure it all works copacetically. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
to do to make sure it all works copacetically.
So in IPv6-- let me clear the screen.
So for IPv6, our conversation here
is, do we want to do stateful or stateless.
And stateful is where we have a DHCP server.
In fact, let's just have R1 be a DHCP server.
If it's stateful, that means R1 is handing out IP addresses.
And the client is not doing slack, stateless auto config.
So if we want that to happen, if that's our goal, WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
So if we want that to happen, if that's our goal,
what we need to do on this interface on the router
is we'd need to do in interface configuration mode say, hey,
send the M bit, meaning managed.
So I think the command-- we'll look at in the lab.
It's IPv6, and D for neighbor discovery.
And then the managed flag is going be set.
And what the client sees in the router advertisements is,
oh, managed bit is set to On.
That means I need to go ahead and get an IP address
via the DHCP server stateful.
And the same thing is true if we have R3 as a client.
And we have those commands here. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And we have those commands here.
R3, if the DHCP client, it'll go ahead
and say, oh, I need to get an IP address statefully.
And it'll get one from the pool from the DHCP server.
Or if we have the other bit set-- that's an O, not a 0--
if we have the other bit set, and the M is not
set, that says, hey, do stateless autoconfig.
Get an IP address.
But also, besides just getting your IP address yourself,
check with the DHCP server, and get additional information.
Maybe there's options.
A DNS server would be information you'd want to get.
So that's the other bit if it's set. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
So that's the other bit if it's set.
So on this interface, if R1 is the DHCP server for IPv6,
we'd want to configure that interface where the client is
to specify the M bit or the O bit
so that we can control what they're
going to go ahead and use.
That would also imply that we're going
to make a DHCP pool for IPv6.
And that has the correct information in it.
If we're handing out bad information,
it's not going to work too well.
So I want to share with you some of the commands on the routers
for both client and server.
That's why we'll do some work right here as well. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
That's why we'll do some work right here as well.
That'll be fun.
And also, if it's not working correctly,
there's also the option of IPv6 DHCP Guard.
That is a first hop IPv6 security measure
that we can take on a switch.
And so if you have DHCP Guard on,
and the policy isn't saying, yeah, this port on the router
is allowed to send these advertisements with DHCP
messages from a server.
That could cause it to fail as well.
There's also the concept of DHCP relay. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
There's also the concept of DHCP relay.
So if we wanted to take those messages that are coming here,
looking for a DHCP server and relay them
to a DHCP servery that's non-local,
we would want to enable the IPv6 equivalent of IP helper
on this interface to make that work.
So that's the big picture of how DHCP services could possibly
work.
And if they don't, we get to troubleshoot.
So the next video, let's IPv4 first.
We'll make a plan.
We'll create a DHCP pool for IPv4.
We'll set up a relay.
We'll verify it works.
We'll troubleshoot it. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
We'll troubleshoot it.
We'll also make a client and a router a DHCP client.
And that way we can see how it works from like a Windows
computer, and also from a router, both acting as DHCP
clients so we can see the commands for both.
So that's it.
I'll see you in the next video.
Meanwhile, I hope this has been informative for you.
And I'd like to thank you for viewing.