Print

局点终端无法获取DHCP地址及从网段地址分配验证

组网及说明

某局点使用S7506E-NP交换机,软件版本为Release 7577,设备作为DHCP服务器,通过VLAN三层接口为终端分配地址。接口配置主、从IP地址,业务要求终端动态获取从IP所在网段的地址。

项目 模拟器配置
DHCP服务器主IP 10.1.1.1/24
DHCP服务器从IP 10.1.2.1/24
DHCP地址池 aa
地址池主网段 10.1.1.0/24
地址池从网段 10.1.2.0/24
客户端 VLAN-interface10通过DHCP获取地址

告警信息

From 0.0.0.0 port 68, interface Vlan-interface100

Message type: REQUEST (1)

Client IP address: 0.0.0.0 Your IP address: 0.0.0.0

Relay agent IP address: 0.0.0.0

Client hardware address: aaaa-aaaa-aaaa

DHCP message type: DHCPREQUEST (3)

 

Receive a DHCPREQUEST message for 192.0.2.1 from Vlan-interface100;

The server identifier is (none).

 

Client was rebooted.

 

Lease 203.0.113.1 does not match the network.

 

Failed to find the lease for 192.0.2.1.

其中,REQUEST (1)为BOOTP报文头的操作类型,具体DHCP消息类型以DHCPREQUEST (3)为准。日志提示租约网段匹配异常及未找到本次请求的匹配租约,不等于整个地址池没有空闲地址。

问题描述

客户在VLAN三层接口配置主、从IP地址,并在DHCP地址池中配置对应主、从网段,希望终端仅获取从IP所在网段的地址。同时,测试终端无法正常获取DHCP地址。

过程分析

 

过程分析:

1.分析客户端请求报文。

服务器已收到测试终端的DHCPREQUEST,说明至少该请求已经到达DHCP处理模块。

报文中客户端IP地址为0.0.0.0,未携带服务器标识,且日志提示“Client was rebooted”,符合客户端处于INIT-REBOOT阶段、确认缓存地址的特征。

所提供日志片段未展示此前的DHCPDISCOVER,但不能据此认定终端在整个测试期间均未发送Discover。直接发送确认旧地址的DHCPREQUEST属于正常协议行为,本身不能作为故障根因。

应在终端抓包,核对Option 50中的请求地址,并结合客户端MAC、Option 61及事务ID关联完整交互。特别是日志中申请地址与异常租约地址不一致,不能直接将异常租约地址认定为客户端请求地址。

2.检查租约与地址池状态。

 

“Failed to find the lease”表示此次请求未找到匹配租约,不等于整个地址池没有空闲地址。若目标网段为/30,扣除网络地址、广播地址及网关后,通常仅剩一个终端地址,需要重点确认该地址是否已被占用或排除。

3.分析现有配置是否满足分配需求。

接口配置中的sub表示接口从IP,地址池配置中的secondary表示池内从网段,两者属于不同配置对象。

普通动态分配时,服务器优先从地址池主网段选择地址;主网段无可分配地址后,再从从网段选择。因此,仅配置接口从IP及地址池从网段,不能保证终端直接获取从网段地址。

本次采用保留主、从网段,并在系统视图将主网段全部地址禁止动态分配的方式进行验证。

4.搭建模拟环境并验证。

服务器配置如下,互连业务接口已配置为二层Access接口并加入VLAN 10:

 

system-view

dhcp enable

 

dhcp server ip-pool aa

network 10.1.1.0 mask 255.255.255.0

gateway-list 10.1.1.1

network 10.1.2.0 mask 255.255.255.0 secondary

gateway-list 10.1.2.1

quit

quit

 

dhcp server forbidden-ip 10.1.1.0 10.1.1.255

 

interface Vlan-interface10

ip address 10.1.1.1 255.255.255.0

ip address 10.1.2.1 255.255.255.0 sub

dhcp select server

dhcp server apply ip-pool aa

quit

return

 

客户端在VLAN-interface10下配置自动获取地址:

 

system-view

interface Vlan-interface10

ip address dhcp-alloc

quit

Return
 

在服务器用户视图开启调试:

 

terminal monitor

terminal debugging

debugging dhcp server packet

debugging dhcp server event
 

本次实测关键日志节选如下,省略时间戳及无关字段:

 

From 0.0.0.0 port 68, interface Vlan-interface10

Message type: REQUEST (1)

Client IP address: 0.0.0.0 Your IP address: 0.0.0.0

DHCP message type: DHCPDISCOVER (1)

 

Receive a DHCPDISCOVER message from Vlan-interface10.

 

Add a conflict IP 10.1.2.1.

 

Send an ICMP echo request to 10.1.2.2.

 

Send a DHCPOFFER message on Vlan-interface10.

 

服务器收到Discover后,将自身从IP地址10.1.2.1记录为冲突地址,随后对候选地址10.1.2.2进行ICMP冲突探测并发送Offer。客户端最终成功获取10.1.2.2/24。

实测证明:在当前模拟器环境中,主网段全部地址被禁止动态分配后,客户端可以获取从网段地址。所列日志节选截至Offer阶段,客户端获取结果由实际接口地址确认。

 

 

解决方法

 

  1. 重新触发客户端地址申请

建议先保存原客户端状态和日志,再在测试终端释放旧地址、重新获取,并同步抓包确认从Discover开始的交互。

2.采用已验证的主网段全局排除方式