Once upon a time, really not that long ago,
we had to manually configure IP addresses
on all of our devices.
We had to go to each individual device and computer
and give it an IP address, and a subnet mask,
and a default gateway, and DNS settings,
and NTP settings, and anything else that had
to do with IP configuration.
And then in October of 1993, the bootstrap protocol
was introduced.
This was also called BOOTP.
And this was an automated method that we
could use to put IP addresses automatically on devices
without having to do any type of configuration
prior to connecting them to the network.
But BOOTP wasn't everything.
There were still different parts of BOOTP that we're limited.
For example, some manual configuration of settings
was still required because BOOTP did not automatically
configure everything.
And BOOTP also didn't know when an IP address
was made available again.
So it was a much faster process to go through all of your IP
addresses, because BOOTP did not know
when to release and make those addresses available again.
And that's one of the big reasons
that we came up with DHCP, or Dynamic Host Configuration
Protocol.
This was introduced in 1997.
It's been updated a few times through the years.
And today it's the most common way
that we use to automatically configure IP address
settings in our devices.
There are four main steps to getting a DHCP IP
address on your device.
Let's step through each of those.
Let's start with the step one, which is called DHCPDISCOVER.
This is a discovery process.
And it's done by our client station
down here, which does not have an IP address.
He's connected to a switch.
And on this subnet is a DHCP server.
We also have DHCP server that's connected through a router
onto another subnet, as well.
And the reason we have multiple DHCP servers
is for the reasons you might expect.
We need redundancy.
If we lose one of these DHCP servers, it's powered off
or it goes down, we can have the other DHCP server take up
the load and make sure that everybody's
able to get an IP address.
A lot of the communication that we're
going to look at in this DHCP process
is all done with broadcast.
And if we have a DHCP server that's on a different subnet,
then we're going to have to have some way for that broadcast
to make its way through a router.
A router, of course, is going to stop
all of the broadcast going by.
But this router is specially configured with something
called DHCP Relay.
You might also see this referred to as IP Helper.
This functionality inside of a router
ensures that any broadcasts that are DHCP related
will pass through the router and onto the other subnet
on the other side.
Our client workstation has just been connected to the network.
It doesn't have any IP address configuration.
So the first thing it does is try to discover a DHCP server.
It does that by sending a broadcast to UDP Port 67.
Because it's a broadcast, it's going
to go to all devices on this subnet.
And if you do have a router with a DHCP Relay,
it will send the broadcast along to the other subnet, as well.
Once those DHCP servers have heard this broadcast
that a device is trying to discover it,
we move to step two, which is a DHCP Offer.
The DHCP server puts together an IP address configuration
and sends that offer back to the client workstation
over another broadcast.
This one going over UDP Port 68.
Then the client workstation receives both of those offers.
And we proceed to the next step in DHCP, which is step three.
Step three is DHCP Request.
So now that the client workstation
has a list all of the possible IP
addresses that it could have, it picks one.
And it picks that one and tells the DHCP servers
through, again, a broadcast over UDP 67.
This is the IP address that I would like to use.
Now, obviously that broadcast is going
to go to all devices, including the DHCP server here.
I've simplified it in this view, so
that you can see that the DHCP server has now
seen the request that came from the client workstation.
And the last step is for the DHCP server
to acknowledge that it did receive that request.
So it sends a broadcast on UDP 68
back to everybody on the network,
but especially the client workstation
that originally sent it.
And now that client workstation knows
that it did receive and has marked that
as being owned by that client workstation.
At that point, the IP address configuration
can be set in the client workstation,
and now it can begin using the network normally.
So there's our four steps.
We have the discover, the offer, the request,
and the acknowledgement.
And you can see the discover is client to server,
the offer is from the server to the client,
the request is from the client to the server,
and the acknowledgment is from the server to the client.
It's a relatively straightforward process.
But you're going to see every time a device hits
the network that begins to get a DHCP address,
it's going to follow all four of these steps every time.