网络协议与攻击模拟_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分钟。

相关推荐
ManageEngineITSM37 分钟前
IT 服务自动化的时代:让效率与体验共进
运维·数据库·人工智能·自动化·itsm·工单系统
Bug退退退1231 小时前
Java 网络流式编程
java·服务器·spring·sse
QotomPC1 小时前
软件定义的理想硬件平台:Qotom Q30900SE/UE系列在AIO服务器与边缘网关中的实践
运维·服务器
望获linux1 小时前
【实时Linux实战系列】实时系统的可观测性:Prometheus 与 Grafana 集成
大数据·linux·服务器·开发语言·网络·操作系统
捷智算云服务1 小时前
H200服务器维修服务体系构建:捷智算的全链条保障方案
运维·服务器
hweiyu001 小时前
Linux 命令:mount
linux·运维·服务器
AI视觉网奇1 小时前
redis 配置学习笔记
linux·服务器
红尘客栈22 小时前
K8s-kubeadmin 1.28安装
java·网络·kubernetes
hello_2502 小时前
动手模拟k8s网络-vxlan模式
网络·容器·kubernetes
我梦之63 小时前
libevent输出缓存区的数据
服务器·网络·c++·缓存