DHCP 运作原理笔记压缩版

知识点部分和 DHCP 服务器搭建的实验分为两篇。

知识点部分只写了一些我认为比较关键的内容,实验部分的细节比较多,语言也算通俗,是在站刚刚接触该部分的同学的角度写的,考虑到基础好的同学不太需要实验详解,于是分了两篇,按需自取,旨在分享和交流~

DHCP 服务器搭建指路:实验:VMware上Windows DHCP服务器的搭建(同一局域网)-CSDN博客

开始正文吧!


众所周知,如果我们要访问网络,最起码要拥有一个IP地址,也就是需要为自己的设备配置一个 IP 地址信息,但日常生活中,我们使用电脑和手机前,却并没有手动配置IP地址,只要连上WIFI就可以上网,再试想,在人流量密集的商场,每个人都需要一个IP地址,而且网络管理员需要确保一个 IP 地址只能分给一个人用(避免地址冲突),他们的工作量是非常巨大的,DHCP就很好的解决了这一问题,今天,我们就来了解一下什么是DHCP。

1  DHCP

动态主机配置协议(Dynamic Host Configuration Protocol ),是一个基于 UDP 协议,应用在局域网中的协议,最终目的是获取响应的 IP 地址,有多种分配方式。

 正如它的名字,DHCP 服务器能够动态的(D)给主机(H)配置(C)IP地址、子网掩码、网关地址、DNS服务器地址这些配置信息。

1.1  端口号

DHCP 协议支持 C/S(客户端/服务器)结构,主要分为两部分:DHCP客户端DHCP服务器

典型的CS结构:(注意注意区分端口号啦)

客户端发送消息到DHCP服务器的的 67 号端口,服务器返回消息给客户端的 68 号端口

客户传送给服务器时,源是UDP 68端口,目的是UDP 67端口。

服务器传送给客户时,源是UDP 67端口,目的是UDP68 端口。

作用:动态分配IP地址,过程自动化,配置信息统一管理(DNS、网关)。

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

1.2  分配IP地址的方式

手工配置:管理员将一个IP地址固定分配给一个客户端,客户端请求分配时,DHCP服务器将网络管理员手工分配的IP地址分配给客户端。(静态的分配方式)

自动配置:当DHCP客户端第一次向服务端随机地租用到第一个IP地址后,就将这个IP地址永久分配给客户端使用。

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

固定的设备就比较适合使用静态的分配方式,比如打印机、服务器等,因为客户机需要填写服务器地址,这样就要求服务器的地址不能随意变化。

而公共场所和家庭中就不适合静态的分配方式了。如果使用静态分配方式会非常占用网络资源、消耗人力。设置租期,到期回收地址,对于人流变化大、变化快的场景,动态的分配方式显然更合适。

2  DHCP协议报文的种类

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

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

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

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

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

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

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

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

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

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

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

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

(7)DHCP DECLINE报文:0x04

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

(8)DHCP INFORM报文:0x08

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

3  动态获取 IP 的过程

典型的DHCP过程 :

Discover: 客户机主动向服务器发送广播报文,申请IP 地址

Offer: 服务器向客户机单播返回报文,制定⼀个将要分配的IP,但没有其他网卡参数

Request:客户端发给服务器,客户机再次发送请求报文(包括续租),请求其他网卡参数

ACK:服务器发给客户端,服务器回应确认报文,包括所有网卡参数

1.客户机向服务器主动发送 DHCP DISCOVER 报文(广播报文),请求IP地址

2.服务器向客户机返回 DHCP OFFER 报文(一般为单播),制定一个将要分配的 IP (但没有其他参数)

3.客户机向服务器发送 DHCP REQUEST 报文(请求报文,包括续租),请求这个 IP 其他网卡参数。

4.服务器 ping 几次(一般是三次)这个 IP ,如果没有响应的话,就说明这个 IP 现在是空闲的 ,可以分配给客户机,然后向客户机发送 DHCP ACK 报文(包括网卡参数),确认可以分配。如果等响应,则发送 DHCP NAK 报文,拒绝分配。

5.如果客户端收到 DHCP ACK,则发送一次免费 ARP,判断这个 IP 是否已经被用。没有使用则绑定这个服务器分配来的 IP,否则向服务器发送 DHCP DECLINE 报文,拒绝这次分配。并重新执行第一步。

6. 如果收到是 DHCP NAK,则直接重新执行第⼀步。

客户机申请 IP 之前确实没有IP,DHCP DISCOVER 报文是以广播的形式发送的,IP头里的目的地址是 255.255.255.255,源地址是0.0.0.0, 链路层目的地址是 FF-FF-FF-FF-FF-FF,源地址是自己的 MAC 地址。这样服务器收到客户端发来的 DISCOVER 报文之后,会根据源 MAC 地址向客户机发送单播的 DHCP OFFER 报文。

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

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

这说明自动分配 IP 地址失败。

4  续约租期

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

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

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

5  DHCP的安全性

5.1  DHCP的攻击

恶意的 DHCP 服务器:无法上网 / 引导至外网抓文明流量

DHCP 饥饿攻击:(不同MAC地址)发送大量的 Discovery 申请IP地址

5.2  策略 

设置适当的租约时间:设置较短的租约时间可以使 IP 地址更快地回收和重新分配。虽不会阻止攻击发生,但能减轻影响,因为 IP 地址不会被长时间占用。

使用mac地址过滤:在DHCP服务器上设置 MAC 地址过滤,只允许已知的、受信任的设备 MAC 地址从 DHCP 服务器获取 IP 地址。工作量很大,需要手动维护一个可信 MAC 地址列表,对于大型动态网络可能难以管理。

限制每个客户的IP分配:在⼀些高级的 DHCP 服务中,可以设置策略来限制每个客户端可以获得的 IP 地址数量。

DHCP Snooping:它确保只有受信任的端口可以响应 DHCP 请求,阻止未经授权的设备分配 IP 地址。

监控与警报:实施监控策略来检测不寻常的 DHCP 流量模式和行为。

VLAN和网络隔离:把一个大网切成几个小网,每个部分都有自己的 DHCP 作用域,即使在一个 VLAN 中受到攻击,也不会影响到整个网络的稳定性。

安全强化:保持系统和软件的最新状态,定期更新 DHCP 服务器和网络设备的固件和软件,减少已知漏洞被利用的机会。


感谢阅读 ~

屯了好几天的文章一直没有时间改,今天终于发出来了,存在的问题和不足希望大家包含并指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值