DHCP协议学习笔记

一、基本概念

定义:动态主机配置协议(Dynamic Host Configuration Protocol)

  • 应用层协议(UDP 67/68端口)
  • 自动为网络设备分配IP地址及其他配置参数

核心功能

  1. IP地址动态分配
    • 从地址池自动分配临时IP(租约机制)
  2. 配置参数传递
    • 子网掩码、默认网关、DNS服务器等
  3. 地址回收与重用
    • 租约到期后自动回收未续约的IP

二、工作原理

1. 四步交互流程(DORA过程)

1
2
3
4
5
sequenceDiagram
客户端->>DHCP服务器: DHCP Discover(广播)
DHCP服务器->>客户端: DHCP Offer(单播)
客户端->>DHCP服务器: DHCP Request(广播)
DHCP服务器->>客户端: DHCP Ack(单播)

2. 报文类型

报文类型 方向 作用
DHCP Discover 客户端→服务器 寻找可用DHCP服务器
DHCP Offer 服务器→客户端 提供IP配置提案
DHCP Request 客户端→服务器 确认接受配置
DHCP Ack/Nak 服务器→客户端 最终确认/拒绝分配

三、关键技术特性

1. 租约管理

  • 租约时长:默认8天(可配置)
  • 续租流程
    1. T1时间(50%租期):单播续租原IP
    2. T2时间(87.5%租期):广播请求新服务器
    3. 到期后释放IP并重启DORA过程

2. 地址池类型

类型 特点 适用场景
动态分配 临时IP,租期结束后回收 普通用户设备
静态绑定 MAC-IP固定映射 服务器/打印机
自动分配 长期保留首次分配的IP 移动设备优化体验

四、安全注意事项

⚠️ 常见攻击

  1. DHCP饥饿攻击:伪造大量请求耗尽地址池
  2. 恶意服务器注入:伪造DHCP服务器分配错误配置

🛡️ 防护措施

1
2
3
# 交换机端口安全配置(Cisco示例)
switch(config-if)# ip dhcp snooping
switch(config-if)# ip dhcp snooping limit rate 10

五、实践命令

1. Windows客户端操作

1
2
3
4
5
6
7
8
# 释放IP地址
ipconfig /release

# 重新获取IP
ipconfig /renew

# 查看完整租约信息
ipconfig /all | findstr "Lease"

2. Linux服务器配置(isc-dhcp-server)

1
2
3
4
5
6
7
8
# 配置文件示例(/etc/dhcp/dhcpd.conf)
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
default-lease-time 86400; # 24小时
max-lease-time 172800; # 48小时
}