概述
IP 地址分配是网络管理员的一个重要任务。在设备数量众多的情况下为路由器和其他设备配置 IP 地址可能会稍显困难。本文将讨论 IP 地址分配的解决方案------DHCP。我们将了解 DHCP 的基本概念及其工作原理,并学习如何配置和排查 DHCP 问题。
文章目录
-
- 概述
- DHCP
- [DHCP 操作](#DHCP 操作)
- [配置 DHCP](#配置 DHCP)
-
- [DHCP 池](#DHCP 池)
- 默认网关/默认路由器
- [DNS 服务器](#DNS 服务器)
- 租期
- [验证 DHCP 配置](#验证 DHCP 配置)
- [DHCP 中继](#DHCP 中继)
- [DHCP 操作故障排除](#DHCP 操作故障排除)
DHCP
在网络中,所有终端用户设备都需要一个 IP 地址才能访问网络。通常,静态 IP 地址会分配给路由器、交换机的管理接口、服务器及其他在物理或逻辑位置上保持固定的设备。这些静态 IP 地址通常用于远程访问和设备管理。
然而,用户设备(如计算机、智能手机、IP 电话等)往往可能更改其物理或逻辑位置,因此为它们分配静态 IP 地址并不可行。
为了解决这些问题,DHCP 协议应运而生。通过 DHCP,我们能够自动为用户设备分配 IP 地址信息,从而减少手动为每台设备分配静态 IP 地址的管理工作量。
以下是网络拓扑图示例:
在该网络中,有两台路由器和两个局域网(LAN),每个网络中有 100 台用户 PC。为路由器接口配置 IP 地址并不复杂,但想象一下,如果为每台 PC 配置静态 IP 地址,这无疑是一项繁重且具有挑战性的任务。
尤其当这些用户设备分布在不同的位置时,配置静态 IP 地址的复杂性会进一步增加。而 DHCP 则能够有效解决这些问题。
DHCP 操作
DHCP 的主要任务是为用户设备分配 IP 地址信息。DHCP 的工作方式分为三种类型:
1、手动 IP 分配
在这种模式下,网络管理员会从 DHCP 服务器为用户手动分配 IP 地址,然后服务器将这些信息传递给客户端。
2、自动 IP 分配
在此模式下,DHCP 服务器从一个地址池中为客户端分配静态 IP 地址,这些 IP 地址是固定的,只有管理员进行配置修改时才会改变。
3、动态 IP 分配
在此模式下,管理员配置一个地址池,客户端通过 DHCP 请求 IP 地址,服务器分配一个可用的 IP 地址和其他相关网络信息,供客户端在特定的租期内使用。租期到期后,IP 地址会返回到 DHCP 地址池,客户端需要重新请求新的 IP 地址。
当一台计算机连接到 DHCP 服务器时,服务器会为其提供 IP 地址信息,并在指定的租期内允许使用该 IP 地址。
下图演示了客户端与 DHCP 服务器之间的交互过程:
DHCPdiscover
客户端启动时,会广播一条消息以查找 DHCP 服务器。由于此时客户端尚未配置 IP 地址,因此使用全局广播地址进行通信。
DHCPoffer
DHCP 服务器接收到客户端的请求后,会从地址池中选择一个可用的 IP 地址,并将客户端的 MAC 地址和待分配的 IP 地址信息记录到 ARP 表中。然后,服务器会通过单播方式向客户端发送 DHCPOFFER 消息。
DHCPrequest
客户端接收到 DHCPOFFER 消息后,发送 DHCPREQUEST 消息向 DHCP 服务器确认接受该 IP 地址,并请求租期信息,验证该 IP 地址是否有效。
DHCPACK
当 DHCP 服务器收到 DHCPREQUEST 消息后,会确认租期并创建新的 ARP 映射,将客户端的 MAC 地址与分配的 IP 地址关联。随后,服务器通过单播发送 DHCPACK 消息,客户端收到此消息后,会将该 IP 地址信息添加到地址配置中,并通过 ARP 查询将 IP 地址映射到 MAC 地址。
配置 DHCP 时,客户端需要以下四个主要参数:
DHCP 服务器通常会在指定时间段内将这些信息分配给客户端。
配置 DHCP
接下来,我们将以 Cisco 路由器为例,配置 DHCP 服务器并观察其如何向客户端分配 IP 地址。路由器接口及 HTTP 服务器将配置静态 IP 地址,并且 HTTP 服务器还将充当 DNS 服务器。
拓扑图如下所示,包括一个路由器、一个交换机和若干主机设备。在此实验中,我们将使用 5 台主机,其中包括 PC 和一台 Web 服务器。
排除静态 IP 地址范围
1、首先,排除那些已经为路由器接口、交换机管理接口及服务器配置的静态 IP 地址,这些设备不应从 DHCP 服务器分配 IP 地址。
2、创建 DHCP 地址池
在全局配置模式下,使用 ip dhcp pool 命令创建 DHCP 地址池。
3、配置 DHCP 地址池的详细信息
配置地址池中的网关、子网掩码及 DNS 服务器等必要信息。
静态分配的 IP 地址如下表所示,路由器和 Web 服务器已完成配置:
首先,我们需要验证主机是否已获得 IP 地址并且能够正常与服务器通信。在本实验中,我们使用 ipconfig 命令来检查 PC 是否已经配置了 IP 地址。根据以下的输出信息,可以看到 PC 1 并未分配到 IP 地址、子网掩码或默认网关:
由于没有有效的 IP 地址,PC 1 无法成功与服务器通信,如下所示,Ping 操作失败:
对于路由器接口、交换机管理接口和服务器等设备,我们为它们配置了静态 IP 地址,这些设备应从 DHCP 地址池中排除。静态 IP 地址配置的原因是,这些设备在网络中的位置相对固定,且在发生故障时,静态配置的 IP 地址有助于故障排查。
在配置 DHCP 地址池时,我们需要明确排除这些静态 IP 地址。可以使用以下命令来确保这些静态 IP 地址不会被分配给动态主机:
即:
通过这个命令,配置的静态 IP 地址将不包含在 DHCP 池中。
DHCP 地址池是网络中可分配给客户端设备的 IP 地址范围。在配置 DHCP 地址池时,使用以下命令来指定池的地址范围:
执行该命令后,提示符会切换到 DHCP 配置模式,如下所示:
此时,我们可以配置更多的 DHCP 参数,包含池中可用的 IP 地址、租期以及其他配置项。
接着,我们要配置具体的 DHCP 参数,如下所示:
DHCP 池
DHCP 池是网络中主机可以请求的 IP 地址范围,配置 DHCP 池 IP 地址所需的命令如下所示:
故配置 DHCP 池的命令如下:
默认网关/默认路由器
默认网关是主机与远程网络通信所用的路由器接口 IP 地址。在这种情况下,默认网关是路由器 LAN 接口上配置的 IP 地址。配置默认网关的命令如下:
即:
DNS 服务器
DNS 服务器用于将 IP 地址解析为主机名。配置 DNS 服务器的命令如下:
我们使用 Web 服务器作为 DNS 服务器,使用的命令是:
租期
租期指定客户端可以使用 IP 地址的时长。配置租期的命令如下:
在本场景中,命令显示如下:
这意味着客户端必须每三天更新一次 DHCP 配置。
综上,我们将使用下面命令来配置 DHCP:
在 DHCP 客户端上,我们需要确保它的接口配置为从 DHCP 获取 IP 地址。许多 PC 默认这样配置,但最好还是验证一下。
验证 DHCP 配置
要验证路由器上 DHCP 的运行状态,可以使用 "show ip dhcp binding" 命令。该命令显示 DHCP 服务提供的所有 IP 地址与 MAC 地址绑定的列表,如下所示:
要验证路由器是否正在接收或发送 DHCP 消息,可以使用 show ip dhcp server statistics
命令。该命令显示关于发送和接收的 DHCP 消息数量的统计信息。以下是路由器上执行该命令后的输出:
命令 show ip dhcp pool
将显示路由器上配置的 DHCP 池,如下所示:
验证 DHCP 操作的另一种方法是检查网络中的客户端是否已获取 IP 地址和其他 DHCP 配置选项。下面是 PC 1 上运行 ipconfig
命令的输出:
如上所示,PC 1 现在已经有了 IP 配置信息。在 Windows PC 上,使用命令 ipconfig/all
可以查看其他配置项。
DHCP 中继
在许多企业网络中,DHCP 服务器通常位于服务器集群中,而不是路由器上。这种架构可能会对需要获取 IP 地址的客户端造成困扰。
IP 助手地址(IP Helper Address)是解决这一问题的有效方案。它允许网络中的路由器将来自本地网络的 DHCP 广播消息转发到位于不同子网的 DHCP 服务器。随后,DHCP 服务器可以向客户端分配 IP 配置信息。
要将路由器配置为 DHCP 中继,可使用以下命令:
在这种情况下,命令使用的接口是连接到 LAN 的接口。
DHCP 操作故障排除
为了有效地排查 DHCP 相关问题,建议按照以下步骤逐一进行检查。
验证运行配置
确保 DHCP 池的配置正确,检查所有相关的配置命令是否按照设计要求设置。
验证物理连接
检查客户端与路由器的 LAN 接口之间的物理连接是否正常。这往往是容易忽视的环节,但可能是问题的关键所在。
在客户端配置静态 IP
如果客户端未能从 DHCP 服务器接收 IP 地址,可以尝试为客户端手动配置静态 IP 地址。随后,通过 ping 命令测试与 DHCP 服务器的连通性。这种方法可以帮助判断问题是出在客户端还是服务器端。
刷新客户端 DHCP 配置
在客户端运行命令以刷新 DHCP 配置,观察是否能够成功接收 IP 地址和其他网络参数。例如,在 Windows 系统中,可以使用以下命令:
- 释放当前配置: ipconfig /release
- 请求新配置: ipconfig /renew