在早期的网络环境中,管理员需要手动为每台设备配置IP地址,这种方法不仅效率低下,而且容易出错,这种情况下DHCP技术应用而生。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种网络协议,用于自动为客户端分配IP地址、子网掩码、默认网关、DNS服务器等网络配置信息,从而简化网络管理。
DHCP服务器是网络中的"地址分配中心",它维护着一个或多个IP地址池(pool),负责处理客户端的请求并分配IP地址。服务器的主要功能包括:
集中管理IP地址资源
自动分配和回收IP地址
提供其他网络配置参数(网关、DNS等)
记录地址分配状态(已分配、可用、冲突等)
任何支持DHCP协议的网络设备都可以作为DHCP客户端,包括:
个人电脑(Windows、macOS、Linux)
智能手机和平板电脑
网络打印机和扫描仪
IoT设备等
客户端会主动发起地址请求,并接受服务器提供的配置参数。
DHCP协议通过四个关键步骤完成地址分配,这个过程被称为DORA过程:
Discover(发现)
客户端发送DHCP Discover
广播报文,寻找可用的DHCP服务器。Offer(提供)
DHCP服务器响应DHCP Offer
,提供一个可用的IP地址。Request(请求)
客户端选择最先收到的Offer
,并发送DHCP Request
确认。Acknowledgment(ACK)(确认)
服务器最终确认,发送DHCP ACK
,客户端正式获得IP地址。注意:如果服务器无法分配IP(如地址池耗尽),则会回复
DHCP NAK
(否定确认)。
DHCP分配的IP地址不是永久性的,而是有"租期"的概念。这种设计有以下优势:
回收不再使用的IP地址
动态调整地址分配
适应移动设备频繁接入/离开网络的情况
租期到期前,客户端会尝试续租:
在租期达到50%时,客户端会尝试联系原服务器续租
如果失败,在租期达到87.5%时会再次尝试
续租成功则重置租期计时器
下面是一个典型的华为交换机/路由器DHCP服务器配置示例:
1.将R1作为DHCP -server,并做如下配置
R1
dhcp enable # 打开DHCP功能
# 创建地址池并配置基本参数
ip pool test
gateway-list 192.168.1.254 # 设置默认网关
network 192.168.1.0 mask 255.255.255.0 # 定义地址池范围
lease day 7 hour 0 minute 0 # 设置租期为7天
dns-list 8.8.8.8 # 配置DNS服务器
#
# 在接口上启用DHCP服务
interface GigabitEthernet0/0/0
ip address 192.168.1.254 255.255.255.0
dhcp select global # 关联全局地址池
#
2.将PC1作为DHCP -client,将其地址获取方式改DHCP ,点击应用,即可自动获取IP地址。
PC>ipconfig
Link local IPv6 address...........: fe80::5689:98ff:fe39:4628
IPv6 address......................: :: / 128
IPv6 gateway......................: ::
IPv4 address......................: 192.168.1.253
Subnet mask.......................: 255.255.255.0
Gateway...........................: 192.168.1.254
Physical address..................: 54-89-98-39-46-28
DNS server........................: 8.8.8.8
配置完成后,可以使用以下命令检查DHCP运行状态:
# 查看地址池简要信息
display ip pool name test
# 查看地址池详细信息(包括已分配地址)
display ip pool name test all
尽管DHCP极大简化了网络管理,但它也存在安全风险,攻击者可能利用DHCP协议进行网络攻击。
DHCP饥饿攻击(DHCP Starvation)
攻击者伪造大量DHCP请求(使用随机MAC地址),耗尽DHCP服务器的IP地址池,导致合法用户无法获取IP。
影响:网络瘫痪,用户无法上网。
伪造DHCP服务器(Rogue DHCP Server)
攻击者在网络中部署恶意DHCP服务器,向客户端分配错误的IP、网关或DNS。
影响:
可能导致中间人攻击(MITM),劫持用户流量。
可能引导用户访问钓鱼网站(通过篡改DNS)。
DHCP劫持(DHCP Spoofing)
攻击者监听DHCP流量,篡改DHCP Offer或ACK报文,使客户端连接到恶意网关。
配置示例(SW1):
(1)启用DHCP Snooping(DHCP监听)
DHCP Snooping是一种安全机制,用于过滤非法DHCP报文,防止伪造DHCP服务器攻击。
信任端口(Trusted Port):只允许合法的DHCP服务器响应请求。
非信任端口(Untrusted Port):阻止DHCP Offer报文,防止伪造服务器。
#SW1
# 启用DHCP Snooping
dhcp enable
dhcp snooping enable
# 设置信任端口(连接合法DHCP服务器的端口)
interface GigabitEthernet0/0/1
dhcp snooping trusted
#
(2)限制DHCP请求速率(防DHCP饥饿攻击)
#SW
# 在连接客户端的端口上启用DHCP请求速率限制
interface GigabitEthernet0/0/23
dhcp snooping enable
dhcp snooping check dhcp-rate enable # 启用DHCP请求速率检查
dhcp snooping dhcp-rate 50 # 限制每秒最多50个DHCP请求
#
interface GigabitEthernet0/0/24
dhcp snooping enable
dhcp snooping check dhcp-rate enable # 启用DHCP请求速率检查
dhcp snooping dhcp-rate 50 # 限制每秒最多50个DHCP请求
#
关键点:
此配置应部署在所有接入端口(连接PC、IP电话等终端的端口)
不要在连接合法DHCP服务器的端口(Trusted Port)上启用此功能
当DHCP出现故障时,可以按照以下步骤排查:
检查物理连接和链路状态
确认DHCP服务已正确启用
验证地址池中有可用地址
检查是否有地址冲突
查看防火墙是否阻止了DHCP报文(端口67/68)
通过掌握DHCP技术,网络管理员可以大幅提升网络管理效率,特别是在设备数量多、变动频繁的环境中。理解DHCP的工作原理不仅有助于日常运维,也是网络故障诊断的重要基础。
作者注:如果你觉得这篇文章对你有帮助,欢迎点赞、收藏并关注我的 CSDN 主页,后续将持续更新更多网络技术干货内容!