文章目录
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)详解
一、DHCP基本概念
DHCP协议是局域网中用于动态分配IP地址的应用层协议。其主要功能包括:
- 自动分配IP地址、子网掩码、网关、DNS等TCP/IP参数
- 基于UDP协议,使用 67(服务端) 和 68(客户端) 端口
- 核心优势:
- 减少管理员手动配置工作量
- 避免IP地址冲突
- 提高IP地址利用率
二、DHCP报文类型与交互流程
6种核心报文类型
报文类型 | 作用描述 | 传输方式 |
---|---|---|
DHCP DISCOVER | 客户端首次接入网络时广播寻找可用DHCP服务器 | 广播(源IP: 0.0.0.0) |
DHCP OFFER | 服务器响应DISCOVER报文,携带可分配IP地址及配置参数 | 广播/单播 |
DHCP REQUEST | 客户端确认使用某服务器的OFFER(首次分配)或请求续租IP地址(租期更新) | 广播 |
DHCP ACK | 服务器确认REQUEST请求,完成IP地址分配或续约 | 广播/单播 |
DHCP NAK | 服务器拒绝客户端的IP地址请求(如地址已分配或租约无效) | 单播 |
DHCP RELEASE | 客户端主动释放IP地址 | 单播 |
三、IP地址租期更新机制
租期更新阶段
50%租期阶段(T1时间)
- 客户端通过单播发送DHCP REQUEST请求续约
- 服务器响应:
- ACK:租期重置(从0开始计算新租期)
- NAK:强制客户端重新发起DISCOVER流程
87.5%租期阶段(T2时间)
- 客户端转为广播发送DHCP REQUEST请求
- 服务器响应规则与T1阶段相同
- 若还未收到服务器响应,会申请重绑定IP
租约到期未响应
- 客户端必须立即释放IP地址
- 重新发起DHCP DISCOVER流程获取新地址
四、关键交互流程示例
注:流程图中单播/广播规则遵循RFC 2131标准
五、华为相关配置
网关配置
int g0/0/0.10 #配置vlan10
dot1q termination vid 10
ip add 192.168.10.254 24
arp broadcast enable
int g0/0/0.20 #配置vlan20
dot1q termination vid 20
ip add 192.168.20.254 24
arp broadcast enable
int g0/0/0.100 #配置vlan100,给dhcp做网关
dot1q termination vid 100
ip add 192.168.100.254 24
arp broadcast enable
dhcp enable #开启dhcp功能
dhcp select relay #在每个接口/子接口上开启中继功能
dhcp relay server-ip 192.168.100.1 #指定中继服务器为dhcp服务器ip
DHCP服务器配置
int g0/0/0
ip add 192.168.100.1 24 #首先配置IP地址
ip route-static 0.0.0.0 0.0.0.0 192.168.100.254 #配置缺省路由,指向网关 ,此时ping 10.254 20.254 100.254 都通了
ip pool vlan10 #给vlan10 创建地址池
network 192.168.10.0 mask 24 #此网段IP加入地址池
gateway-list 192.168.10.254 #创建网关
dns-list 1.1.1.1 2.2.2.2 #要分配的dns
ip pool vlan20 #给vlan10创建地址池
network 192.168.20.0 mask 24 #此网段IP加入地址池
gateway-list 192.168.20.254 #创建网关
dns-list 1.1.1.1 2.2.2.2 #要分配的dns
q
dhcp enable #开启dhcp功能
int g0/0/0
dhcp select global #在出接口上配置,可以接受dhcp discover报文
ip pool vlan10 #如果需要排除或者绑定某些设备的ip地址,首先进入地址池进行配置
excluded-ip-address 192.168.10.240 192.168.10.253 #把240-253从地址池排除出去
q
display ip pool name vlan10 all/used #查看地址池的所有/已分配的ip (idle空闲 Disabled不会被分配 used已分配)
reset ip pool name vlan10 192.168.10.253 / all #释放这个已分配的IP地址/所有已分配的地址
ip pool vlan10
static-bind ip-address 192.168.10.100 mac-address aabb-ccdd-eeff #绑定某台设备的mac地址,如果ip已经被分配,则先用上面一条命令
q
PC>ipconfig /renew #PC机上重新获取地址
如果没有DHCP服务器,只在网关上做DHCP服务器:
dhcp enable #如果没有配置过DCHP一定记得开启DHCP功能
#undo dhcp select relay #首先进入每个接口/子接口,关闭之前配置的中继功能
#undo dhcp select server-ip #取消中继IP
dhcp select interface #还是在每个接口/子接口上配置,把接口作为地址池
dhcp server dns-list 1.1.1.1 2.2.2.2 #要分配的dns
#dhcp server excluded-ip-address 192.168.10.240 192.168.10.253 #把240-253从地址池排除出去
#dhcp server static-bind ip-address 192.168.10.100 mac-address aabb-ccdd-eeff #绑定某台设备的mac地址
#dhcp server lease day 8 #可以选择更改租期时间,如8天
dhcp ip pool interface g0/0/0.10 #查看接口下dhcp信息