华为DHCP工作原理详解

一、工作流程

1.发现阶段,即DHCP客户端发现DHCP服务器的阶段。DHCP客户端发送DHCPDISCOVER报文来发现DHCP服务器。DHCPDISCOVER报文中携带了客户端的MAC地址、需要请求的参数列表选项、广播标志位等信息。
2.提供阶段,即DHCP服务器提供网络配置信息的阶段。服务器接收到DHCPDISCOVER报文后,选择跟接收DHCPDISCOVER报文接口的IP地址处于同一网段的地址池,并且从中选择一个可用的IP地址,然后通过DHCPOFFER报文发送给DHCP客户端。
3.选择阶段,即DHCP客户端选择IP地址的阶段。如果有多个DHCP服务器向DHCP客户端回应DHCPOFFER报文,则DHCP客户端一般只接收第一个收到的DHCPOFFER报文,然后以广播方式发送DHCPREQUEST报文,该报文中包含客户端想选择的DHCP服务器标识符和客户端IP地址。
4.确认阶段,即DHCP服务器确认所分配IP地址的阶段。DHCP客户端收到DHCPACK报文,会广播发送免费ARP报文,探测本网段是否有其他终端使用服务器分配的IP地址。


二、报文字段

最重要的是下面的三个字段 

yiaddrYour IP Address分配给客户端的IP地址(在DHCPOFFER和DHCPACK报文中使用)
siaddrServer IP AddressDHCP服务器的IP地址(在DHCPDISCOVER和DHCPREQUEST报文中通常为0.0.0.0;在DHCPOFFER和DHCPACK报文中,服务器会填写自己的IP地址)
chaddrClient Hardware Address客户端MAC地址(核心标识,用于唯一标识客户端)

三、报文类型与用途

类型发送方功能说明
DHCPDISCOVER客户端首次入网时广播寻找服务器
DHCPOFFER服务器响应DISCOVER,提供配置参数
DHCPREQUEST客户端确认选择OFFER/续租IP地址/重启后确认原有配置
DHCPDECLINE客户端通知服务器分配地址存在冲突
DHCPACK服务器确认REQUEST请求,分配生效
DHCPNAK服务器拒绝REQUEST请求(如地址池耗尽、IP地址已被分配给其他设备)
DHCPRELEASE客户端主动释放IP地址
DHCPINFORM客户端已获取IP后,请求更详细参数(网关、DNS等)

四、地址池分配模式

1. 接口地址池
  • 规则:仅分配与服务器接口同网段的IP地址。

  • 限制:适用于单网段场景,无法跨网段分配。

2. 全局地址池
  • 规则:通过giaddr(中继IP)判断客户端所属网段。如果存在多个地址池,按giaddr匹配对应网段。

  • 特殊场景

    • VRRP协议需使用全局地址池(避免虚拟IP导致网关错误)。

    • 客户端无IP时,通过中继设备IP定位地址池。

    • 补充:如果客户端和服务器在同一网段,giaddr字段通常为0.0.0.0。


五、地址分配优先级

DHCP服务器按以下顺序分配IP地址:

  1. 静态绑定:优先分配预先配置的MAC-IP映射。

  2. 历史记录:客户端请求报文中指定的历史IP地址(通过Option 50)。

  3. 空闲地址:地址池中首个可用IP。

  4. 回收地址:租期超时或冲突后释放的IP。


六、租期管理

  • 默认租期:24小时(具体值可以由服务器配置)。

  • 续租机制

    • 时间进度:50%时,客户端单播发送DHCPREQUEST请求续租;87.5%时,广播发送DHCPREQUEST请求续租;100%时,释放IP并重新申请。

    • 补充:如果客户端在续租过程中收到DHCPACK,租期将被延长。


七、DHCP中继原理

跨网段场景工作流程
  • 发现阶段:中继接收客户端广播的DHCPDISCOVER,单播转发至服务器或下一跳中继。

  • 提供阶段:服务器根据giaddr选择地址池,中继转发DHCPOFFER至客户端。

  • 选择阶段:中继处理DHCPREQUEST流程同发现阶段。

  • 确认阶段:中继处理DHCPACK流程同提供阶段。

  • 中继核心作用:通过giaddr字段传递客户端真实网段信息,实现跨三层分配IP地址。

在全局地址池中申请地址时,DHCP服务器会根据客户端的giaddr字段选择地址池。如果客户端没有IP地址且请求经过中继设备,则服务器会根据中继设备的giaddr字段来确定客户端所属网段。例如,vlan20对应的网段是10.1.20.0/24,如果全局地址池中没有与giaddr同网段的地址池,DHCP服务器将无法分配IP地址,这也是申请地址出错的主要原因之一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值