Print

DHCP 问题排查方法

2019-10-30 发表

问题描述

DHCP 问题排查方法

解决方法

1、了解用户的网络拓扑,什么设备充当dhcp server(如:网络设备还是windows server、linux server);
 
dhcp客户端和dhcp server是否在同一个vlan内,是否需要配置dhcp relay。
 
2、客户端配置固定ip地址后,能否ping通dhcp server,不能ping检查网络问题;可以ping通但是还是无法获取地址的话,检查dhcp server和中继的配置。
 
3、使用“display current-configuration”和“display version”命令显示路由器的配置信息和版本信息。
 
4、如果遇到客户端能够获取到地址,但是无法上网问题,检查dhcp server 有没有给客户端分配网关、dns。

5、如果还有问题收集dhcp 的debug信息或是使用抓包工具在DHCP客户端和DHCP服务器端同时抓包。
 
dhcp server上:
t d
t m
debugging dhcp server all
 
dhcp relay上:
t d
t m
debugging dhcp relay all
 
dhcp client:
t d
t m
debugging dhcp client all
 
6、dhcp 抓包报文分析:


option 55中参数请求列表


     我们可以看到,链路层以太网首部原地址是我的MAC地址,目的地址是广播地址ff:ff:ff:ff:ff:ff。由于是第一次接入网络,我的主机还没有自己的IP地址,所以IP首部里的源地址为0.0.0.0,目的地址为广播地址。UDP源端口号(Client端)为68,目的端口号(Server端)为67Message type 为“1”,表明为请求(“0”为响应)。“ciaddr”、“yiaddr”、“siaddr”、“giaddr”的地址均为0,“chaddr”填充了我的硬件地址。“option 53”指明了DHCP报文的类型:DHCP Discover
 
二、DHCP Server回应给我主机的DHCPOFFER报文
 

                                                                                                图1 Server回应的DHCPOFFER


EHT_II头的目的地址已经指向了我主机的硬件地址,同时IP首部里的目的地址已经填上了服务器分配的IP地址(尽管此时我的主机对这个IP地址还一无所知!)。我们现在知道,DHCP Server是用单播的方式向我的主机发送的DHCPOFFER报文,证明与“flags”字段的值是对应的。

yiaddr”字段显示了DHCP Server把“10.0.0.6”分配给了我的主机。

在“option”字段,我们可以看见,在DHCPDISCOVER报文中的“option 55”的“Parameter Request list”中的参数请求,只要DHCP Server有相应配置,都返回了相应的信息。

 
三、选择阶段

四、确认阶段
 

DHCPACK报文内容: