网络协议与攻击模拟_08DHCP协议

技术学习要了解某项技术能干什么?它的详细内容?发展走向?

一、DHCP协议

1、DHCP基本概念

dhcp动态主机配置协议,广泛应用于局域网内部

主要是为客户机提供TCP/IP 参数(IP地址、子网掩码、网关、DNS等)

2、DHCP的优点

  • 减少管理员的工作量
  • 避免输入错误
  • 避免IP冲突
  • 提高IP地址的利用

二、DHCP工作原理

dhcp是应用层的协议,是基于传输层的UDP协议的,主机是向服务器的67号端口发送请求,服务器响应的是客户机的68号端口。

1、释放Vmnet1 IP

查看本地电脑的网卡,选取VMnet1进行实验,打开winshark抓Vmnet1网络卡的数据流量

Vmnet1网卡这里是有IP地址的,释放IP并重新获取

复制代码
ipconfig /release "VMware Network Adapter VMnet1"
ipconfig /renew "VMware Network Adapter VMnet1"

在winshark抓包中搜DHCP的报文

首先我用ipconfig /release命令将VMnet1的IP地址释放掉了 所以这里source是0.0.0.0,从源MAC地址可以看出是客户即的MAC地址,然后客户机发的是广播的DHCP Discover报文,目标是255.255.255.255。

2、DHCP交互过程

(1)DHCP Discover

网络中所有的dhcp服务器都会收到,都会响应,客户机会向收到的第一个dhcp服务器发送dhcp offer。

discover里面其实没有任何内容,只有一个client MAC地址,option这里因为之前有启用dhcp所以options这里会有之前的Ip信息。

(2)DHCP Offer

会响应your client ip、next server ip、client mac address等

your client ip响应的是服务器可以给客户机提供的IP地址,假设这个IP地址已经被别人用了,这里DHCP Server就会提供下一个即192.168.40.2.

(3)DHCP Request

option字段这里request IP address

(4)DHCP ACK

server直接给客户机IP这里your client ip address 字段

3、为什么都是广播方式发送的呢?

  • 第一个报文广播因为CLIENT不知道网络中有没有DHCP服务器
  • 第二个报文广播因为CLIENT还没有IP地址,但是在EthernetII层已经不是广播了,根据教程三层的IP地址这里应该是广播的即目标IP地址应该是255.255.255.255.但是我实际抓到的数据包却不是这样的(挠头)
  • 第三个报文广播网络中有多台服务器,而且有一台服务器离得我特别近,客户机的多向选择问题,在这个报文里面客户机会携带一些内容,它只会标识,还没有IP地址。
  • 第四个报文广播server在响应的时候,EthernetII层不再是广播了,在三层的IP地址还是广播,只有在这个DHCP ACK 报文结束后客户机才有IP。

三、DHCP租约

1、查询租约

12点51到期,12点36就发送了续约的DHCP REQUEST请求。

DHCP获取IP地址是有租期的,每隔5分钟会重新向SERVER发了一个DHCP Request报文,当租期到达百分之50的时候就重新获取租期了。

2、租期30分钟

DHCP租期30分钟,租期过半时重新续租

可以看到SERVER 的ACK确认是13:51

ipconfig /all查看租约过期时间是14:21,可以验证dhcp的租期是30分钟。

相关推荐
一池秋_4 分钟前
ubuntu(linux)完美复刻windows11字体,解决linux字体费眼晴
linux·运维·ubuntu
随风一样自由6 分钟前
【WSL+Linux】国内网络连接微软官方服务器(或GitHub)不稳定,导致下载内核或Linux发行版时超时断开如何解决?
linux·服务器·wsl
源图客7 分钟前
Claude Code基础使用
服务器·前端·数据库
清晨曦月21 分钟前
【从零构建分布式在线评测系统】二、Judge0服务器上的心跳程序
运维·服务器·分布式
yqcoder1 小时前
什么是 Math 对象
网络·网络协议·udp
Starry-sky(jing)1 小时前
Win11 装 ESP32 Arduino 库卡 3 小时?我把官方 3.3.10 全平台 522MB 搬到了蓝奏云,解压即用
运维·windows·esp32·arduino·离线安装
小此方2 小时前
Re:Linux系统篇(四十二)通信篇·七:SystemV标准三部曲其之三:信号量与并发编程初步认识
linux·运维·驱动开发
画中有画9 小时前
使用yolov8实现自动化脚本
运维·yolo·自动化
Piko61411 小时前
H3C IRF2 堆叠实战:打造高可靠核心交换网络
运维·网络·笔记
茯苓gao13 小时前
嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解
网络·嵌入式硬件·学习·信息与通信