Print

MER5220 DHCP地址获取失败

2020-03-04 发表

组网及说明

MER5220---话机

问题描述

现场话机连到路由器MER5220无法获取地址,把话机替换成PC测试能正常获取地址,将该路由器替换成其他路由器能正常获取地址。

过程分析

现场做了MER及话机的替换测试,发现连接其他设备都能正常获取,而两者同时存在时,无法正常获取地址使用。

于是抓包分析(图1-1):

图1-1

可以看到话机向设备发送了Discover报文,同时设备回应了offer包,下一步应该是话机回应request,话机未回应,因此一直判断是话机问题。

现场替换了多台话机仍无法获取地址,该话机与其他路由器能正常通信。  然而该路由器除了该话机和其他设备都能正常通信。

初步怀疑是否存在兼容性或是设备问题的问题,或是报文不准确的问题,但现场无法使用第二台同型号的MER设备测试。

于是在话机能正常获取地址抓包分析(图1-2)。


图1-2

发现话机能与其他设备正常进行DHCP交互,怀疑问题可能出在offer报文上。

因此定位到request报文的前一报文,点开其他设备发送的offer包(图1-3)与MER5220的offer包(图1-4)进行比较。


图1-3

图1-4

可以看出这两个报文的区别在于一个是广播一个是单播,发现话机无法接收MER5220发的offer包是因为其回应的是广播包。

现在回过头看一下话机发的discover报文(图1-5)。


图1-5

可以看出,话机一开始向设备请求的包就是单播包,那为什么MER5220会以广播包形式发送呢?
此时查看设备配置。

发现现场配置了DHCP服务广播回应功能。


dhcp server always-broadcast命令用来开启DHCP服务器的广播回应报文功能。

【缺省情况】

DHCP服务器的广播回应报文功能处于关闭状态。DHCP服务器根据请求报文中的广播标志位来决定以广播还是单播的形式发送应答报文。



解决方法

让现场工程师关闭该功能,undo dhcp server always-broadcast ,让设备根据请求报文的标志位去选择以广播还是单播形式回应报文。