In the early days
of IP version 4, we would have to go from
workstation to workstation to workstation to
manually configure all of the IP
configuration details, such as the IP address, the
subnet mask, the default gateway, DNS servers
that were required, NTP information, and
anything else related to the overall
configuration of IP. Obviously, this manual
configuration process did not scale very well. So in October of 1993,
we created BOOTP. This is the bootstrap protocol. But BOOTP didn't allow us
to configure everything we needed for an IP configuration. There were still a number
of manual configurations that were required. BOOTP also didn't know
when a lease was up and an IP address
was available again. So there was no mechanism
in place for BOOTP to realize that there were
additional IP addresses that could be leased
to other devices. And that's why we came up
with DHCP, the Dynamic Host Configuration Protocol, in 1997. And this standard has been
updated through the years. DHCP allows us to configure
most IP configuration settings and networks across
almost any device that you would connect
to the network. Before our workstation
was turned on, our DHCP servers were configured
with a list of available IP addresses that could be
assigned to other devices on this network. We call this a pool
of IP addresses, and it's very
common to configure multiple pools of IP addresses
for these DHCP servers. This pool of
available IP addresses will shrink and grow again
based on how many people are on the network and how many
may have left the network. And if you visit a
network a second time, your IP address may
change depending on what IP addresses are
available in that pool. However there are a number
of devices on your network that you might want to always
have exactly the same IP address, and you don't want them
to change based on what might be available in a DHCP pool. For example, you might
have servers, printers, or other infrastructure
devices that you would like to administratively
assign an IP address, and you never want that
IP address to change. One way to accomplish this
is to manually configure an IP address on every single
server, printer, infrastructure device. This would require
disabling DHCP, and then manually typing in the
IP address, subnet mask, DNS information, and
anything else that might be required for the IP
configurations on that device. This obviously means
that you'll need to log in to every
server, every printer, and every infrastructure
device so that you can manually configure these. And if anything changes with
your IP address configurations, you'll have to revisit
all of those devices and manually make all of the
changes necessary to keep those devices available
on the network. To avoid all of
that administration, you might want to leave DHCP
enabled on those infrastructure devices, then on
your DHCP server you would create an
IP reservation that would associate the Mac
address of that server with an IP address that
you would administer. This means that all
of the infrastructures have IP addresses
that you've assigned, and if you ever need
to make any changes, you simply make those
changes in the DHCP server instead of having to visit every
single one of those devices to make the change manually. An interesting thing
happens if you've configured a
workstation for DHCP and no DHCP server is available. Although you might think
the workstation would not be able to communicate on the
network without an IP address, there is a type
of IP address that allows the workstation
to at least communicate to local devices. We call this a
link-local address. And although this
device would not be able to communicate
through a router, it would still be
able to communicate to all other devices
on its local IP subnet. In IP version 4, we
call this link-local address an APIPA address that
stands for Automatic Private IP Addressing. And there's an
address range that has been reserved for APIPA. It's 169.254.0.1
through 169.254.255.254. The APIPA standard also reserves
the first and last 256 address block in this address range. So the functional IP
addresses that you would see on a device
would be 169.254.1.0 through 169.254.254.255. This means that
this workstation, which normally would get an
IP address from DHCP cannot communicate to that server. It will simply pick one of these
addresses inside of this range. This device then sends an
ARP request to the network to make sure no one
else on the sub that happens to be using this
particular IP address, and then assigns this
address if nobody responds. The way that you would tell
the device has been assigned one of these APIPA
addresses is to look at the IP address configuration
for that operating system. And if the IP version 4
address starts with 169.254, you know this device is
using an APIPA address.