DHCP协议详解(非常详细总结),结合ENSP,wireshark学习使用

【eNSP华为模拟器】 配置DHCP服务器实验 eNSP 华为模拟器 配置DHCP服务器实验 一、实验概述 二、路由器的配置 三、三层交换机的配置 四、实验结果 一、实验概述 实验二 实验内容:主要了解Ensp工具的使用。了解协议在路由器中是如何存放的及存放的位置。还有是使用Wiresharkr 软件进行简单地抓包,并分析网络的性能。学生主要做的工作有: (1) 使用Ensp.的工具创建一 个小型网络,实现相同网段之间的访问,以及如 何通过路由器实现不同网段之间的访问。并且开启路由器的DHCP功能, 自动给PC端分发IP地址。 (2)运 用所学的知识 阅读详情
AI摘要

本文详细介绍了DHCP协议的工作原理,包括协议理解、报文格式、报文种类和工作过程。通过Wireshark工具抓取DHCP数据包,解析动态获取IP地址的四个阶段:发现、提供、选择和确认。此外,还讨论了续租期、重新连接IP地址和客户端主动释放IP地址的场景。

1 DHCP协议

1.1 DHCP协议理解

定义:DHCP:Dynamic Host Configuration Protocol,动态主机配置协议,是一个应用在局域网中的网络协议,它使用UDP协议工作。

理解:DHCP协议就是一个基于UDP协议工作在局域网内的网络协议,其最终的目的就是获取响应的IP地址,其中这过程中有多种分配方式,以及发送报文的格式要求等。

作用:动态分配IP地址,过程自动化,终端无需一一手工配置,配置信息统一管理(DNS,网关),IP地址有限、需要大量配置IP地址、经常移动终端。

好处:提高配置IP地址效率,减少配置工作量,减少IP地址冲突。

分配IP地址方式:

(1)手工配置方式:通过网络管理员手工配置某台客户端特定的IP地址,当客户端请求分配时,DHCP服务器就将手动配置的IP地址分配给客户端。。

(2)自动配置方式:当DHCP客户端第一次想服务端租用到第一个IP地址后,就将这个IP地址永久分配给客户端使用。

(3)动态配置方式:服务器暂时分配一个IP地址给客户端,根据租约到期或者续约租期的方式来管理分配的IP地址。

1.2 DHCP报文格式

链路层头

IP头  20bytes

UDP头

DHCP报文

图1 DHCP报文封装格式

图2 DHCP报文格式

图1是dhcp整个报文的封装格式,包括链路层头、IP头、UDP头和DHCP报文,其中dhcp主要的数据都封装在dhcp报文中。

图2 就是DHCP报文的格式,各字段的说明如下:

op:1byte,是报文的操作类型,分为请求报文和响应报文,1为请求报文;2为响应报文。具体的报文类型在option字段中标识。

htype:1byte,表示client硬件地址的类型,1表示以太网类型。

hlen:1byte,硬件地址的长度,以太网的硬件地址长度为6bytes。

hops:1byte,表示当前dhcp报文经过的DHCP中继的数目,每经过一个DHCP中继这个字段就加1.

xid:4bytes,由client端产生的随机数,用于匹配请求和应答报文,就是匹配应答报文是对哪个请求报文做出应答。

secs:2bytes,客户端进入IP地址申请进程的时间或者更新IP地址进程的时间;由客户端软件根据情况设定。目前没有使用,固定为0。

flags:2bytes,是标志字段,16比特中只使用了最高位比特(即最左边的比特),这个个比特是广播响应标识位,用来标识DHCP服务器发出的响应报文是广播还是单播,0是单播,1是广播。其余的比特位保留不用,都为0.

ciaddr:4bytes,是客户端的IP地址,可以是client自己的IP地址,也可以是server分配给client的IP地址。

yiaddr(Your IP Address):4bytes,是server分配给client的IP地址。

siaddr:4bytes,是client端获取IP地址等信息的server端的地址。

giaddr:4bytes,是client发出请求报文后经过的第一个中继的IP地址。

chaddr:16bytes,是client端的硬件地址,在client发出报文时会把自己网卡的硬件地址写进这个字段。

sname:64bytes,服务器主机名,是client端获取IP地址等信息的服务器名称。

file:128bytes,是client的启动配置文件名,是服务器为client指定的启动配置文件名及路径信息,由服务器填写。

 

options:是可选变长的选项字段,这个字段包含了终端的初始配置信息和网络配置信息,包括报文类型,有效租期,DNS服务器的IP地址等配置信息。

这个字段的结构采用“CLV”结构,如图4:

图4 option字段编码方式

其中”code”是标识号,唯一标识后面的信息内容(vlaue),1bytes;

“length”表示后面的value值的长度,1bytes

“vlaue”是信息内容

Options字段有很多项,是可选的,不同的报文option项可能不同,图5是一个DHCP request报文的option项:

图5 option项

不同的option项有不同的含义,下面是一些常见的option项:

(1)DHCP Message Type: code=53  length=1 表示DHCP的报文类型。

(2)Client identifier:      code=61   client端的硬件地址

(3)Server identifier:     code=54   服务器的IP地址

(4)Subnet Mask:     code=1      子网掩码

(5)route:           code=3      网关IP地址

(6)Domain Name Server: code=6    DNS服务器的IP地址

(7)IP Address Lease Time: code=51  租约时间

 

1.3 DHCP协议报文的种类

Dhcp协议一共有8中报文,包括:DHCPDISCOVERY,DHCPOFFER,DHCPREQUEST,DHCPACK,DHCPNAK,DHCPRELEASE,DHCPDECLINE,DHCPINFORM。

报文类型由options字段中的option53“DHCP Message Type”选项来确定。各报文的具体含义如下:

(1),DHCP-DISCOVER报文:0x01  客户端请求包

这个报文是client端开始dhcp过程的第一个请求报文,client在请求地址时,并不知道server端的位置,所以client会以广播的方式发送请求报文,它的目的是发现网络中的服务器。

(2),DHCP-OFFER报文: 0x02  服务器响应包

这个报文server端对DISCOVERY报文的响应报文。会在所配置的地址池中查找一个合适的IP地址,加上相应的租约期限和其他配置信息(如GATEWAY,DNS SERVER等),构造一个OFFER报文,发送给用户,告知用户本SERVER可以为其提供IP地址的分配,并且。发OFFER报文一般是单播的方式发送。

(3),DHCP-REQUEST报文:0x03 客户端选择包

在一个子网中可能有多台服务器,所有收到DISCOVER报文的服务器都会回应OFFER报文,所以client端可能收到多个OFFER报文,通常会选择第一个OFFER报文的服务器作为自己的目标服务器,并回应一个REQUEST请求报文。在续租约的时候client端也会发送REQUEST报文  请求续租期。

(4),DHCP-ACK报文:0x05  服务器确认包

是server对client端的REQUEST报文的确认响应报文,server在收到REQUEST报文后,根据REQUEST报文中携带的client MAC来查找有没有相应的租约记录,如果有则发送ACK报文作为回应,通知client可以使用分配的IP地址。

(5),DHCP-NAK报文:0x06  服务器拒绝包

Server端对client端的REQUEST报文的拒绝响应报文,如果服务器没有相应的租约记录,就会发送NAK报文给client端。

(6),DHCP-RELEASE报文:0x07  客户端释放包

Client端主动释放server端分配给它的IP是,就会发送DHCP-RELEASE报文给server,server收到这个报文后,就会回收这个IP地址。

(7),DHCP-DECLINE报文:0x04

client收到server回应的ACK报文后,通过地址冲突检测发现 SERVER分配的地址冲突或由于其它原因导致不能使用,则发送DHCP-DECLINE报文,通知server所分配的IP地址不可用。

(8),DHCP-INFORM报文:0x08

在client已经获得了IP地址,需要从server端获得更详细的配置信息时,就会发送DHCP-INFORM报文向server请求,server在收到这个报文后,会根据租约查找,找到相应的配置信息后,就会回应DHCP-ACK报文给client。

 

1.4 DHCP协议工作过程

1.4.1 动态获取IP过程

图5 DHCP工作流程

1.2.1.1 抓包过程

   (1)在Wireshark中点击start开始抓包,在过滤栏输入bootp,使其只显示DHCP数据包

(2)在win10 中的cmd输入ipconfig /release 先断开当前的网络连接,主机号变为0.0.0.0,主机与网络断开,不能访问网络。

图6 断开网络配置图

图7 释放包

(3)在cmd中输入ipconfig /renew 请求网络连接,也为客户端分配了IP地址。

 

图8 再次请求网络配置图

图9 新增数据包

此时,可以看到在Wireshark中新增了4个DHCP数据包: 
数据包1:DHCP Discover 
数据包2:DHCP Offer 
数据包3:DHCP Request 
数据包4:DHCP ACK

1.4.1.2 DHCP四个阶段

DHCP动态获取IP地址的过程主要分为发现阶段、提供阶段、选择阶段、确认阶段四个阶段。

(1)发现阶段:client端在局域网内以广播的方式发起一个DHCP Discover包,目的是在子网络中发现能够给client端提供IP地址的server端。

UDP 目标端口号为67    源IP 地址0.0.0.0    目的IP:255.255.255.255

图10  DHCP discover包

(2)提供阶段:局域网中DHCP server接受到Discover包之后,通过发送DHCP offer包给client端应答,主要是告知client端可以提供IP地址,以及相应的IP地址租约信息和其他配置信息也会在其中。

UDP 目标68    源IP为DHCP服务器的IP   目的IP:255.255.255.255

 

图11 DHCP offer包

(3)选择阶段:在client端可能会接受到多个offer包,通常clientdaunt只会接受收到的第一个DHCP offer报文,然后client端就会以广播的方式发送一个DHCP request报文请求分配IP地址。

UDP 目标67    源IP为0.0.0.0   目的IP:255.255.255.255

图12 DHCP REQUEST包

(4)确认阶段:server端在收到DHCP request报文之后,会判断”option”字段的serverIP地址是否是自己的IP地址,如果符合分配IP地址的条件,就会给client发送一个DHCP ACK包,如果不满足就发挥发送一个DHCP NAK 包。

UDP 目标68    源IP为DHCP服务器的IP   目的IP:255.255.255.255

图13 DHCP ACK 包

注意:客户端执行DHCP-DISCOVER后,如果没有DHCP服务器响应客户端的请求,客户端会随机使用169.254.0.0/16网段中的一个IP地址配置到本机地址。

169.254.0.0/16是Windows的自动专有IP寻址范围,也就是在无法通过DHCP获取IP地址时,由系统自动分配的IP地址段。

1.4.2 续约租期

图14 续约租期过程

(1)当clientIP地址已经用到50%的时间,续租一下,client端就会以单播形式向服务端发送一个DHCP Request包,当server响应时就会回应一个ACK包,会重新约定一个时间。

(2)当clientIP地址已经用到50%的时间,续租一下,client端就会以单播形式向服务端发送一个DHCP Request包,server没有响应,client会继续使用,当使用到87.5%时,会在续租一次,同时就以广播的方式是发送一个request包,server这时收到响应以后,就会回应一个ACK包,重新约定一个时间。

(3)当clientIP地址已经用到50%的时间,续租一下,client端就会以单播形式向服务端发送一个DHCP Request包,server没有响应,client会继续使用,当使用到87.5%时,会在续租一次,同时就以广播的方式是发送一个request包,如果server还是没有响应,client那就直接使用到过期。      

1.4.3 重新连接使用IP地址

Client端在重新登录网络的时候,可以不需要从初始阶段发送DHCP DISCOVER报文开始,可以直接广播发送DHCP REQUEST报文给服务器。

1.4.4 client主动释放IP地址

图16 DHCP release报文

 

DHCP最全讲解!(原理+配置) DHCP实现了网络参数配置的自动化,降低客户端的配置和维护成本。 阅读详情

相关推荐

DHCP详解

一、DHCP简介 DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。 ...

匠人精神,持之以恒! 7万+

DHCP的原理及配置

了解什么是DHCP服务以及它的工作原理还有它的一些配置实验

2201_75444658的博客 1万+

DHCP协议

在客户端收到DHCP OFFER提供信息后,会以广播方式回答一个DHCP REQUEST请求信息,所有的DHCP服务器都会收到这个信息,该信息中包含它所选定的DHCP服务器和服务器提供的IP地址。DHCP客户端请求地址时,并不知道DHCP服务器的位置,因此DHCP客户端会在本地网络内以广播方式发送请求报文,这个报文成为Discover报文,目的是发现网络中的DHCP服务器,所有收到Discover报文的DHCP服务器都会发送回应报文,DHCP客户端据此可以知道网络中存在的DHCP服务器的位置。

yellow1988的专栏 3183

DHCP协议详解

DHCP协议详解, DHCP工作原理,DHCP中继,DHCP攻防,DHCPv6介绍,DHCPv6介绍

资深系统架构,深耕高并发研发与 AI 大模型工程化落地。技术栈以 Python (AI/NLP/RAG/Agent) 与 Golang (高并发架构) 为双核心,兼具 PHP 大型应用经验。专注算法落地、复杂系统设计及团队技术赋能 1万+

DHCP学习+eNSP实例+wireshark报文查看

背景:自动获取到IP地址、及一系列必要的和重要的配置参数,电脑等设备就可以正常工作。 BOOTP协议:起初IETF定义了BOOTP(Bootstrap Protocol)协议,专门用来解决IP地址等网络参数的配置问题。 DHCP协议:由于BOOTP协议的各种缺陷和不足,IETF又定义了一个新的协议,即DHCP(Dynamic Host Configuration Protocol)协议,即动态...

无缘世家的博客 4325

路由与交换实验——eNSP实验

实验006 eNSP实验一、 实验目的二、 实验内容三、 实验环境四、 实验步骤 一、 实验目的 107、109教室设计有20个计算机网口,可以满足20台计算机上网需求。 为107 109 教室选择合适的网络设备(华为路由或者交换机),使得两个房间的终端能自动获得IP地址,并能联通。 二、 实验内容 参考《HCNA网络技术实验指南》中的P348页;本实验将路由器R1模拟成为教室的DHCP Server,使得两个房间下的PC通过DHCP的方式自动配置IP。 配置基于接口地址池的DHCP拓扑如下图所示: 实验

weixin_43973089的博客 7824

计算机网络 —— 应用层(DHCP)

计算机网络 —— 应用层(DHCP)

qq_67693066的博客 8134

华为eNSP实验2、全局配置DHCP地址池

华为eNSP全局配置DHCP 实验拓扑: 配置步骤: 1、全局启用dhcp 2、给广播域的接口配置ip地址 3、配置全局地址池 4、宣告地址池 5、配置网关、dns、域名等 6、接口下调用全局地址池 dhcp-server配置如下: dhcp enable ip pool cisco gateway-list 192.168.1.254 network 192.168.1.0 mask 25...

hg515215563的博客 8036

DHCP协议详细解析

DHCP协议详细的介绍

weixin_60067160的博客 1万+

eNSP抓包实战:手把手教你用Wireshark‘看见’DHCP和RIP协议的工作过程

本文通过eNSP网络仿真平台,详细演示了如何使用Wireshark抓包分析DHCP和RIPv2协议的工作过程。从网络拓扑搭建到协议配置,再到故障模拟与诊断,手把手教你掌握网络协议分析的核心技能,提升网络排错效率。

weixin_30730053的博客 303

【eNSP华为模拟器】 跨网段DHCP服务与OSPF联动实战

本文通过华为eNSP模拟器,详细演示了如何配置跨网段DHCP服务并与OSPF动态路由协议联动。实验构建了多网段拓扑,分别在路由器和三层交换机上部署DHCP地址池,并通过OSPF实现路由互通,最终验证了客户端自动获取IP及跨网段通信。文章深入剖析了DHCP四次握手过程,并提供了常见排错思路与进阶实验方向。

qsc901234的博客 640

DHCP协议详解:ENSP+Wireshark抓包实战,看懂DORA四步交互

在计算机网络中,设备要接入网络并正常通信,必须先获得合法的IP地址及相关参数。动态主机配置协议(DHCP)正是为解决手动配置效率低、易冲突等问题而设计的自动化机制。其核心原理基于客户端与服务器间的四种报文交互:发现(Discover)、提供(Offer)、请求(Request)和确认(Ack),即DORA四步流程。通过报文中的Options字段,DHCP不仅分发IP地址,还能同时下发子网掩码、网关、DNS及租期等关键参数,极大提升了网络配置的可靠性与可管理性。这一协议在企业网、园区网以及跨网段中继场景中均有

weixin_33883104的博客 199

DHCP协议原理与Wireshark抓包实战:从Discover到ACK全解析

网络通信的底层逻辑中,IP地址的自动分配是终端接入的基础能力。动态主机配置协议(DHCP)通过客户端与服务器之间的报文交互,实现了IP地址、网关、DNS等参数的自动化下发,解决了手工配置效率低、易冲突的痛点。其核心原理包含Discover、Offer、Request、ACK四个阶段,以及租约续租机制,确保地址资源的动态回收与复用。这一技术广泛应用于企业办公网、无线网络和家庭路由等场景。要深入理解DHCP的工作细节,借助Wireshark抓包分析是最直观的方式之一。通过抓取真实或模拟环境中的报文,可以清晰观察

weixin_33416697的博客 294

一文搞懂DHCP:eNSP配置 + Wireshark抓包实战

通过这次实验,我们从配置→验证→抓包分析完整走了一遍DHCP的工作流程: 1.在华为路由器上启用DHCP、创建地址池、绑定接口 2.客户端成功获取IP、网关、DNS等参数 3.

LuHaiLong_的博客 280

手把手教你在全新服务器内网安装OpenEuler 22.03 LTS SP4+ 安装 openGuass 5.0.0(LTS) 数据库

openEuler是面向数字基础设施的操作系统,支持服务器、云计算、边缘计算、嵌入式等应用场景,支持多样性计算,致力于提供安全、稳定、易用的开源服务器Linux操作系统。

cgqyw的专栏 3737

拌合楼管理软件开发(十一) 海康威视车牌识别摄像头安装调试,总算是跑通了。

/保存的文件个数这里之所以需要用到委托,直接更新textbox文本中的内容,以及复制picturebox的image会提示不是从齐创建的线程调用。

morsth的博客 4816

ENSP的使用

动态路由是与静态路由相对的一个概念,指路由器能够根据路由器之间的交换的特定路由信息自动地建立自己的路由表,并且能够根据链路和节点的变化适时地进行自动调整。当学习到多条相同的路由条目时,路由器会优先比较优先级,优先级数值小的优先加表,如果优先级相同,则比较cost值,cost值小的优先加表;只需要在边界路由器上下放一条指令,内网的每台路由器都会自动产生指向边界路由器的缺省路由,边界路由器不会自动产生,还需要在边界路由器上手工静态书写指向外网的缺省路由。仅在动态路由协议中使用,静态路由默认为0。

2201_75580114的博客 6857

TK抓包协议分析:So层逆向

第三个参数是一个回调函数,这里他的返回值1表示成功,0表示失败,那我们手动把他Hook为0,让他不支持quic协议,实现降级。等,我们是为了解决抓包问题,那很有可能是在net目录下(network),那来搜索一下。开了抓包以后APP直接是网络无连接了,并且抓到的请求也是不正常的,下面我们就开始定位。看了半天感觉也没啥有用的东西,那下面我们整理一下已经有信息,来猜测一下,后续怎么进行。那可以猜测,我们真正需要Hook的那个函数也有可能是这样加载的,可以字符串搜索一下。

2503_90751938的博客 3418

网络小白也能懂:用eNSP+Wireshark搭建你的第一个虚拟实验网(附VirtualBox/WinPcap避坑要点)

本文详细介绍了如何利用eNSP、Wireshark和VirtualBox搭建虚拟网络实验环境,适合网络技术初学者和认证考生。从工具安装配置到基础网络实验,再到使用Wireshark捕获分析ICMP/ARP协议数据包,手把手教你理解网络协议的实际运作。特别提供了VirtualBox和WinPcap的版本选择与避坑指南,帮助读者快速构建稳定的实验平台。

weixin_30920853的博客 431

Maltab GUI课程设计——网络爬虫程序(基金连涨连跌提醒)

Maltab GUI课程设计——网络爬虫程序(基金连涨连跌提醒)

果果爱腰果的博客 850

路径规划:D*Lite寻路算法详解

D*Lite详解目录

mkr67n的博客 2万+
上一篇: 2019年优快云排名前10名大神
下一篇: telnet 命令使用方法教程
JIANXIN.Y
博客等级 码龄9年 273粉丝 42原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值