文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

我们一起谈谈DHCP协议

2024-12-03 13:21

关注

01DHCP协议简介

DHCP(DynamicHost ConfigurationProtocol),动态主机配置协议,是一个应用层协议,具体可以参考《TCP/IP四层模型》文章。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。

DHCP的几个概念:

DHCPClient:DHCP客户端,通过DHCP协议请求IP地址的客户端。DHCP客户端是接口级的概念,如果一个主机有多个以太接口,则该主机上的每个接口都可以配置成一个DHCP客户端。交换机上每个Vlan接口也可以配置成一个DHCP客户端。

DHCPServer:DHCP服务端,负责为DHCP客户端提供IP地址,并且负责管理分配的IP地址。

DHCPRelay:DHCP中继器,DHCP客户端跨网段申请IP地址的时候,实现DHCP报文的转发功能。

DHCPSecurity:DHCP安全特性,实现合法用户IP地址表的管理功能。

DHCPSnooping:DHCP监听,记录通过二层设备申请到IP地址的用户信息。

02DHCP工作原理

DHCP使用UDP协议工作,采用67(DHCP服务器端)和68(DHCP客户端)两个端口号。546号端口用于DHCPv6Client,而不用于DHCPv4,是为DHCPfailover服务。DHCP客户端向DHCP服务器发送的报文称之为DHCP请求报文,而DHCP服务器向DHCP客户端发送的报文称之为DHCP应答报文。

DHCP交互过程共分为4步

第一步

Client端在局域网内发起一个DHCP Discover包,目的是想发现能够给它提供IP的DHCPServer。

第二步

可用的DHCPServer接收到Discover包之后,通过发送DHCPOffer包给予Client端应答,意在告诉Client端它可以提供IP地址。

第三步

Client端接收到Offer包之后,发送DHCPRequest包请求分配IP。

第四步

DHCPServer发送ACK数据包,确认信息。

03Wireshark抓包分析

要想抓取到DHCP包,先要保证有可用的DHCP服务器,然后将主机IP地址获取方式设置为自动获取。我们的测试环境是,笔记本设置为DHCP模式,路由开启DHCP服务。由于笔记本在开机时想路由DHCP去获取IP,开机时无法迅速打开wireshark软件进行抓包,我们使用以下命令先断开主机的网络连接,然后再连接网络。

  1. ipconfig /release 
  2. ipconfig /renew 

在cmd中可以使用ipconfig/?查看各参数的含义:

命令详解:

(1)ipconfig /release

断开当前的网络连接,主机IP变为0.0.0.0,主机与网络断开,不能访问网络。

(2)ipconfig /renew

更新适配器信息,请求连接网络,这条命令结束之后,主机会获得一个可用的IP,再次接入网络。

抓取的数据包如下,注意使用dhcp过滤条件。

wireshark抓包文件

链接:https://pan.baidu.com/s/1RzvISOkzkVoWOzJDRi5NwQ

提取码:lpg9

(提示:公众号不支持外链接,请复制链接到浏览器下载)

可以清楚看到DHCP的四个步骤。

DHCP Discover数据包

在Discover阶段,可以看出客户端发出的是广播复制,MAC地址广播相关内容请看《802.3以太网帧》,IP地址广播相关内容请看《IP协议详解》。从下图也可以看出DHCP是基于UDP协议的,采用67(DHCP服务器端)和68(DHCP客户端)两个端口号,这个上文讲过了,在抓包文件中证实了。DHCP报文格式基于BOOTP的报文格式,DHCP具体的报文格式并不是本文重点,本文并不会详细讲解DHCP报文中每个字节的含义。

DHCP Offer包

当DHCP服务器收到一条DHCPDiscover数据包时,用一个DHCPOfferr包给予客户端响应。 这一数据报中客户客户端获取到了最重要的IP地址信息。除此之外,服务器还发送了子网掩码,路由器,DNS,域名,IP地址租用期等信息。

DHCP服务器仍然使用广播地址作为目的地址,因为此时请求分配IP的Client并没有自己ip,而可能有多个Client在使用0.0.0.0这个IP作为源IP向DHCP服务器发出IP分配请求,DHCP也不能使用0.0.0.0这个IP作为目的IP地址,于是依然采用广播的方式,告诉正在请求的Client们,这是一台可以使用的DHCP服务器。

DHCP Request包

当Client收到了DHCPOffer包以后(如果有多个可用的DHCP服务器,那么可能会收到多个DHCPOffer包),确认有可以和它交互的DHCP服务器存在,于是Client发送Request数据包,请求分配IP。

此时的源IP和目的IP依然是0.0.0.0和255.255.255.255。

DHCP ACK包

服务器用DHCPACK包对DHCP请求进行响应。 

04DHCP缺点

DHCP可以很好的进行IP地址的分配,但是DHCP协议已存在一些缺点,如:

DHCP协议不支持跨网段进行地址分配

DHCP协议不能获取非DHCP客户端的IP地址,在地址池设置不合理的情况下可能会造成地址冲突。

基于上述的缺陷,我们需要合理对IP地址池进行设置,并预留一些IP地址,分配给需要固定IP的服务器。

本文转载自微信公众号「 知晓编程」,可以通过以下二维码关注。转载本文请联系 知晓编程公众号。

 

来源: 知晓编程内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯