DHCP动态获取IP过程抓包实验
1、实验拓扑
R1设置成DHCP服务器,G0/0/0和G0/0/1接口都开启DHCP功能;
PC-1,PC-2,PC-3设置为动态获取地址;
2、实验过程
在PC-1的Eth0/0/1接口抓包(为了实现release,我是重新renew获取ip的)
PC上的命令:
R1上地址池查看:
Wireshark抓包:
这里包括了Release,DHCP四个过程,ARP查看地址是否冲突:
DHCP获取ip地址是有四个过程,也就是DHCP Discover,DHCP offer,DHCP Request,DHCP ACK
以下我以上面抓包的过程来讲述;
- DHCP Release(四个过程中是没有这个过程的)
PC-1放弃现在使用的IP地址, 使用DHCPRELEASE报文通知服务器,服务器将此地址回收以备下次使用。
- DHCP Discover
首先,DHCP客户端PC-1发送DHCP**发现报文(DHCP Discover)**来发现DHCP服务器R1;
3. DHCP Offer
DHCP服务器R1会选取一个未分配的IP地址,向DHCP客户端PC-1发送DHCP提供报文(DHCP Offer)。此报文中包含分配给客户端的IP地址和其他配置信息。如果存在多个DHCP服务器,每个DHCP服务器都会响应;
4. DHCP Request
收到R1给的Offer后(如果有多个DHCP服务器向DHCP客户端发送DHCP提供报文,DHCP客户端将会选择收到的第一个DHCP提供报文),然后发送DHCP请求报文(DHCP REQUEST),报文中包含请求的IP地址;
5. DHCP Ack
收到DHCP请求报文后,提供该IP地址的DHCP服务器会向DHCP客户端发送一个DHCP确认(DHCP ACK),包含提供的IP地址和其他配置信息;(当收到DHCPREQUEST报文后,如果发现其申请的地址无法被分配,则用DHCPNAK报文回应);
6. ARP免费报文
DHCP客户端收到DHCP确认报文后,会发送免费ARP报文,检查网络中是否有其他主机使用分配的IP地址。如果指定时间内没有收到ARP应答,DHCP客户端会使用这个IP地址。如果有主机使用该IP地址,DHCP客户端会向DHCP服务器发送DHCP拒绝报文,通知服务器该IP地址已被占用。然后DHCP客户端会向服务器重新申请一个IP地址。(客户机收到DHCPACK报文后,再对所有的参数进行一次最后的检查,如果发现由地址冲突存在,则使用DHCPDECLINE报文回复服务器);
DHCP Release报文:
DHCP Discover报文:
DHCP offer报文:
DHCP request报文:
DHCP Ack报文:
ARP免费报文报文:
文:`
[外链图片转存中…(img-ApXIqWS2-1592538727396)]
[外链图片转存中…(img-HJcVqjnb-1592538727398)]