用wireshark对DHCP的抓包分析

目录

DHCP概述:

DHCP报文格式:

DHCP的抓包过程:

1、开启虚拟机,使用win+r,输入cmd,进入命令行,打开wireshark后,输入以下命令:

2、然后返回wireshark,暂停抓包,过滤数据(这里要注意,过滤指令要输入bootp),然后就可以看到DHCP的报文。

3、可以看到图中的5个报文,其中DHCP Release报文为PC释放IP时发出的报文。

4、发现DHCP服务器(DHCP Discover)报文

5、提供IP租用地址(DHCP Offer)报文

6、接受租约并确认(DHCP Request)报文

7、确认租约(DHCP Ack)报文

总结:


DHCP概述:

DHCP(动态主机配置协议)确实是一种非常实用的网络协议,它能够自动地为网络中没有IP地址的主机分配地址、子网掩码等信息,极大地减轻了网络管理员的工作量。DHCP协议的前身是BOOTP(引导程序协议),主要用于无磁盘主机连入网络。然而,BOOTP需要在设定前事先获得客户端的硬件地址,且IP地址是静态的,这在有限的IP资源环境中可能会造成很大的浪费。

DHCP作为BOOTP的增强版本,解决了这些问题。DHCP分为服务器端和客户端两部分,所有的IP网络设定数据都由DHCP服务器集中管理,并负责处理客户端的DHCP请求。客户端则使用服务器配置的IP环境数据。DHCP服务器通过端口67监听网络的DHCP请求,并与客户端协商配置客户机的TCP/IP环境。

DHCP的分配方式有三种:自动分配、手工分配和动态分配。自动分配是指DHCP服务器为第一次连接的客户端分配一个永久性的IP地址,客户端多次连接时IP地址不会变化;手工分配则是管理员提前在DHCP服务器配置好客户端的IP地址,类似静态配置;动态分配则是DHCP服务器给客户端分配一个受租约限制的IP,租约到期后可以被其他客户端使用。

DHCP协议与BOOTP协议兼容,报文格式也很类似。DHCP协议在RFC2131和RFC2132中定义,使用UDP作为传输协议,主机发送请求消息到DHCP服务器的67号端口,DHCP服务器回应应答消息给主机的68号端口。

总的来说,DHCP通过其灵活的IP地址分配方式和管理机制,大大提高了网络管理的效率和灵活性,是现代网络环境中不可或缺的重要协议。

DHCP报文格式:

DHCP报文格式中的每个字段都有其特定的含义,以下是这些字段的详细解释:

  1. OP:报文的操作类型。这是DHCP报文中最基础的字段,用于标识报文的类型。客户端发送给服务器的包为请求报文,其值为1;而服务器发送给客户端的包为响应报文,其值为2。
  2. HTYPE:DHCP客户端的MAC地址类型。MAC地址类型实际上是指明网络类型。例如,当htype值为1时,表示的是最常见的以太网MAC地址类型。
  3. HLEN:硬件地址长度。对于以太网MAC地址,其长度通常为6个字节,因此hlen的值在这种情况下为6。
  4. HOPS:DHCP报文经过的中继数量。这个字段用于记录DHCP报文在传输过程中经过的路由器数量。每经过一个路由器,该字段的值就会增加1。如果DHCP报文在同一个网络内传输,没有经过任何路由器,那么该字段的值就为0。
  5. Transaction ID:事务ID。这是客户端在发起一次请求时选择的随机数,用于标识一次地址请求过程。在一次完整的DHCP请求过程中,所有报文的xid都是相同的。
  6. Second:DHCP客户端从获取到IP地址或者续约过程开始到现在所过去的时间,以秒为单位。在客户端还没有获得IP地址之前,该字段的值始终为0。

此外,DHCP报文还包括其他字段,如ciaddr(DHCP客户端的IP地址)、siaddr(DHCP客户端获取IP地址等信息的服务器IP地址)和chaddr(DHCP客户端的硬件地址)等,这些字段用于提供关于客户端和服务器以及它们之间交互的详细信息。

请注意,DHCP报文格式可能因不同的协议版本或实现方式而略有不同,因此在实际应用中,需要参考相关的协议标准或文档以获取最准确的信息。

DHCP的抓包过程:

1、开启虚拟机,使用win+r,输入cmd,进入命令行,打开wireshark后,输入以下命令:

(我这里用的是win10的虚拟机,在用wireshark抓包时需要选择VMnet8,我这里直接是以太网4,可以在控制面板->网络和Internet->网络连接,查看自己的网络。)

若果你觉得麻烦,不用虚拟机也可以,直接使用物理机,还是一样的操作,win+r,进入命令行,输入两个命令。 

要依次输入两个命令

ipconfig /release
ipconfig /renew

2、然后返回wireshark,暂停抓包,过滤数据(这里要注意,过滤指令要输入bootp),然后就可以看到DHCP的报文。

3、可以看到图中的5个报文,其中DHCP Release报文为PC释放IP时发出的报文。

4、发现DHCP服务器(DHCP Discover)报文

客户端启动后,向网络广播一个DHCP Discover报文,寻找DHCP服务器。此时由于客户端不知道服务器的地址,所以要发送广播。本地网络中每个主机都会收到这个报文,但只有DHCP服务器才会对其响应。

5、提供IP租用地址(DHCP Offer)报文

DHCP服务器收到DHCP Discover报文后,从还没租出的地址范围内,选择最前面的空置IP地址,向客户端发送DHCP Offer报文,向客户端提供IP地址、子网掩码、默认网关域名服务器的信息。

6、接受租约并确认(DHCP Request)报文

客户端可能会收到一个或多个DHCP Offer报文(网络中可能有多个DHCP服务器),客户端从中选择一个 DHCP服务器,并广播 DHCP Request报文,在 DHCP Request 报文中必须指明要选择的DHCP服务器。

7、确认租约(DHCP Ack)报文

被选中的服务器收到DHCPRequest后,回应DHCPAck报文,地址分配完成。

总结:

DHCP的分配方式:网络中至少有一台DHCP服务器在工作,它会通过端口67监听网络的DHCP请求,并与客户端协商配置客户端的TCP/IP环境。

注意:DHCP Discover 报文和 DHCP Request 报文都是以广播的形式发送的而 DHCP Offer 和 DHCP Ack都是以单播(一对一)的形式发送的。以广播形式发送DHCF Discover 是为了寻找 DHCP 服务器。以广播形式发送 DHCP Request是为了通知网络中所有的 DHCP 服务器,客户端到底接受了谁的 DHCP Offer。被选中的 DHCP 服务器收到DHCP Request 会向客户端发送 DHCP Ack,而其他的服务器收到 DHCP Request 能够知道客户端拒绝了它的 DHCP Offer。

  • 30
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值