Wireshark数据抓包分析之动态主机配置协议

本文详细介绍了DHCP动态主机配置协议的工作原理、作用及流程,并通过Wireshark进行实验,展示了如何在Windows和Linux平台上获取DHCP数据包,以及分析DHCP Discover、Offer、Request和Ack四种报文的步骤,旨在帮助读者理解DHCP协议并掌握Wireshark的基本操作。
摘要由CSDN通过智能技术生成

预备知识

什么是DHCP

DHCP(Dynamic Host Configuration Procotol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作。DHCP的前身是BOOTP,属于TCP/IP的应用层协议。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546端口用于GHCP v6 Client,而不用于DHCPv4,是为DHCP failover服务。该服务是需要特别开启的服务,用来做双机热备的。

DHCP的作用

DHCP为互联网上主机提供地址和配置参数。DHCP是基于Client/Server工作模式,DHCP服务为主机分配IP地址和提供主机配置参数。DHCP主要作用如下所示:
(1)保证任何IP地址在同一时刻只能由一台DHCP客户机使用。
(2)DHCP可以给用户分配永久固定的IP地址。
(3)DHCP允许用其他方法获得IP地址的主机共存,如手动配置IP地址的主机。
(4)DHCP服务器向现有的BOOTP客户端提供服务。
DHCP有3种分配IP地址方式,分别是自动分配、动态分配和手工配置。它们的区别如下:
自动分配(Automatic Allocation):DHCP给客户端分配永久性的IP地址。
动态分配(Dynamic Allocation):DHCP给客户端分配的IP地址过一段时间后会过期,或者客户端可以主动释放该地址。
手动配置(Manual Allocation):由用户手动为客户端指定IP地址。

DHCP工作流程

使用DHCP时,网络上首先必须有一台DHCP服务器,而其他计算机则是DHCP客户端。当DHCP客户端程序发出一个消息,要求一个动态IP地址时,DHCP服务器将根据目前配置的IP地址池,从中提供一个可供使用的IP地址和子网掩码给客户端。下面将介绍下DHCP的工作流程。
DHCP工作流程如下图:
在这里插入图片描述
从上图中,可以看出DHCP的工作过程分为4个阶段。分别表示发现阶段(DHCP Discover)、提供阶段(DHCP Offer)、选择阶段(DHCP Request)和确认阶段(DHCP Ack)。下面详细介绍这四个阶段:
(1)发现阶段,即DHCP客户端寻找DHCP服务器的阶段。DHCP客户端以广播方式(因为客户端不知道DHCP服务器的IP地址)发送DHCP Discover包,来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到该广播信息,但只有DHCP服务器才会做出响应,如下:
在这里插入图片描述
上图表示本局域网中有3台DHCP服务器,都收到了客户端发送的DHCP Discover包。接下来就是服务器响应客户端了,即提供阶段。
(2)提供阶段,即DHCP服务器提供IP地址的阶段。在网络中收到DHCP Discover包的DHCP服务器,都会做出响应。这些DHCP服务器从尚未出租的IP地址中挑选一个给客户端,向客户端发送一个包含IP地址和其他设置的DHCP Offer包,如下图。
下面图中,局域网中的3个DHCP服务器都向客户端发送了DHCP Offer包。但是客户端只能接收一个服务器提供的信息,所以需要选择要接收的数据包信息。
在这里插入图片描述
(3)选择阶段,即DHCP客户机选择某台DHCP服务器提供的IP地址阶段。从上面图中可以看到,3台DHCP服务器都向客户端发送了DHCP Offer包。此时,DHCP客户机只接收第一个收到的DHCP Offer包。然后,以广播方式回答一个DHCP Request请求信息,该信息中包含向它所选定的DHCP服务器请求的IP地址的内容。这里使用广播方式回答,就是通知所有的DHCP服务器,它选择了某台DHCP服务器所提供的IP地址,如下图:
在这里插入图片描述
这时候,局域网中的所有DHCP服务器,都会收到DHCP客户端发送的DHCP Request信息。通过查看包信息,可以确定客户端是否选择了自己提供的IP地址。如果选择的是自己的,则发送一个确认包。否则,不进行响应。
(4)确认阶段,即DHCP服务器确认所提供的IP地址阶段。当DHCP服务器收到客户端发送的DHCP Request请求信息之后,便向DHCP客户端发送一个包含它提供的IP地址和其他设置的DHCP Ack信息,告诉DHCP客户端可以使用它所提供的IP地址,如下图。然后DHCP客户端将其TCP/IP协议与网卡绑定。另外,除了客户端选择的DHCP服务器外,其他的DHCP服务器都将收回曾提供的IP地址。
在这里插入图片描述
从上图中,也可以看出,只有一台DHCP服务器向客户端发送了DHCP Ack包。表示客户端选择了该服务器提供的IP地址及其他配置信息。

实验目的

1)熟悉并掌握Wireshark的基本操作。
2)加深对常用网络协议的理解,提高就业机会。
3)培养学生理论联系实践的研究兴趣。

实验环境

在这里插入图片描述
测试者:windows系统,IP地址:随机。
实验中,我们使用一台PC机器和路由器,即可产生DHCP数据包。现在的路由器都自带了DHCP功能,这样可以通过直接连接路由器来获取DHCP包。

实验步骤一

获取DHCP数据包

1.在windows平台上获取DHCP数据包

在windows平台上,可以使用两种简单的方法实现,其原理一样。
(1)在cmd上,使用ipconfig命令来获取。
在这里插入图片描述
执行完上述命令后,将释放当前使用的地址信息。重新获取地址信息,执行命令如下:
在这里插入图片描述
执行完上面的命令后,将重新获取地址信息。在获取地址时,将会经过上面讲述的DHCP的4个阶段。这样,我们就能获取到DHCP数据包了。
(2)通过禁用和启用网卡获取DHCP数据包:
在windows平台上,也可以通过禁用和启用网卡获取DHCP数据包。其中,禁用网卡,相当于上面的“ipconfig /release”命令,启用网卡相当于上面的“ipconfig /renew”命令。禁用和启动网卡属于操作系统基本操作,这里就不解释了。

2.在Linux平台上获取DHCP数据包

在linux下,可以通过使用ifdown和ifup命令来重新启动网卡。命令如下:

ifdown eth0          #禁用网卡
ifup eth0            #启用网卡

实验环境,没有涉及linux系统,这里就简单介绍下了。

实验步骤二

分析DHCP数据包

分析之前,我们先来学习下DHCP报文格式:

1.DHCP报文格式

在DHCP获取IP地址及其他网络配置参数的过程中,DHCP客户端和服务器之间要交换很多的消息报文,这些DHCP报文共有8种类型。每种报文的格式相同,只是某些字段的取值不同。DHCP报文格式如下:
DHCP报文格式:
在这里插入图片描述
各字段解释如下:
op:报文的操作类型。分为请求报文和响应报文,1是请求报文,2是响应报文。具体的报文类型在option字段中标识。
htype:DHCP客户端的硬件地址类型。1表示ethe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值