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
debugging dhcp relay all
dhcp client:
debugging dhcp client all
6、dhcp
抓包报文分析:
图1 PC上的抓报过程
一、我的主机首次向DHCP
Server申请IP地址的DISCOVER:
option
55中参数请求列表
我们可以看到,链路层以太网首部原地址是我的MAC地址,目的地址是广播地址ff:ff:ff:ff:ff:ff。由于是第一次接入网络,我的主机还没有自己的IP地址,所以IP首部里的源地址为0.0.0.0,目的地址为广播地址。UDP源端口号(Client端)为68,目的端口号(Server端)为67。Message 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报文内容: