网络安全之DHCP详解

DHCP:Dynamic Host Configration Protocol 动态主机配置协议

某一协议的数据是基于UDP封装的,当它想确保自己的可靠性时,这个协议要么选确认重传机制,要么选周期性传输。

DHCP是确认重传,【UDP|DHCP】,当DHCP分配完地址时就没必要周期性传输了。

【EⅡ|IP|UDP|DHCP】:DHCP的二层封装进行地址分配的协议只能选择以太网协议。

DHCP客户端使用的端口号是68,服务端的端口号是67,DHCP的所有数据都是基于UDP封装。

DHCP服务器分配时:1,IP地址。2,网络掩码。3,默认网关。4,DNS服务器地址。

网关地址是什么?主机所在网段内的路由器地址

例如:

PC1,2,3网段要与PC4,5这一网段通信,为了知道是PC1,2,3网段来的就需要打上路由器的该网段的接口地址。

DNS:域名解析服务器,填的时候,一个主DNS,一个备DNS。

将域名与IP一一对应的服务器,因为一个设备不可能将所有域名(APP,www.......网站等就是域名)对应的IP记录,所以需要DNS来记录这些,每个地方的DNS服务器地址不同。

下面为一个设备请求DHCP IP的过程:

A请求DHCP IP

第一步:A向DHCP server发一个发现包:【EⅡ|IP|UDP|DHCP】:源端口号68,目标端口号67,源IP没有所以为0.0.0.0占位,目标IP因为不知道DHCP server是谁,为255.255.255.255广播发送去发现DHCPserver,源MAC地址为自己的MAC地址,目的MAC地址与目标IP同理为广播MAC地址FF-FF-FF-FF-FF-FF.

交换机收到包广播给除A外的所有设备,当所有设备收到包并解封装解到端口号发现目的端口是67,不是DHCPserver的都丢弃,DHCPserver则继续解封所有的内容,发现是请求分配IP的,则进行下一步

第二步:DHCPserver收到发现包后向A发送一个应答包,源端口67,目标端口68源IP为自身IP,目标IP为广播地址255.255.255.255,源MAC地址为DHCPserver MAC地址,目标MAC为广播MAC(很多资料说目标MAC为A的MAC,但这是不对的,思科在一开始也是错的,目前已修改),在报文里有包含目标A的分配IP、DNS等,目的MAC来说是给谁发的,避免同时请求过多的DHCP请求造成延迟。

实际情况下,不止一个DHCPserver,那么客户端使用的IP为最先接收到的DHCP应答包,谁先到达用谁的。

第三步:A向DHCPserver发送请求包,该包要告诉服务器用了哪一个IP以及告诉其他服务器他们的地址不用请回收。该包源端口68,目标端口67,源IP0.0.0.0,目标IP255.255.255.255,源MAC为自己MAC,目标MAC为广播MAC。

第四步:DHCPserver向A发送一个确认包,该包依然全广播,目标端口68,源端口67,源IP为自己IP,目标IP广播IP,源MAC为自己的MAC,目标MAC为广播MAC,当A收到这个包后才使用分配给自己的IP。

以上是思科的工作方式。

华为应答包中的源IP为服务器IP,目标IP为给A分配的IP,请求包的源IP为0.0.0.0,确认包中目标IP为给A分配的IP。

华为中是三四包为单播,其余厂商为四个包全广播。

DHCP配置请查看:DHCP小实验-CSDN博客

相关推荐
熬夜的猪10 小时前
现代安全密码哈希算法
java·学习·算法·安全·哈希算法
Sagice10 小时前
CVE-2019-13272(Linux本地内核提权)
linux·运维·服务器·网络·安全
李李李李李同学11 小时前
等保测评讲解初测和复测有哪些区别
网络·安全·信息安全等级保护测评
夏天想11 小时前
前端安全和解决方案
前端·安全
凡人的AI工具箱11 小时前
40分钟学 Go 语言高并发:【实战】并发安全的配置管理器(功能扩展)
开发语言·后端·安全·架构·golang
EasyCVR11 小时前
ISUP协议视频平台EasyCVR萤石设备视频接入平台银行营业网点安全防范系统解决方案
大数据·人工智能·物联网·安全·音视频·监控视频接入
IT-sec12 小时前
jquery-picture-cut 任意文件上传(CVE-2018-9208)
android·前端·javascript·安全·web安全·网络安全·jquery
网络安全-老纪13 小时前
网工考试——网络安全
网络·安全·web安全
期待未来的男孩13 小时前
安全加固方案
java·网络·安全
努力的Andy13 小时前
Linux(Ubuntu)升级openssh至9.6版本
linux·安全·ubuntu