计算机网络——DHCP协议详解

本文涉及的产品
应用实时监控服务-用户体验监控,每月100OCU免费额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
应用实时监控服务-应用监控,每月50GB免费额度
简介: 计算机网络——DHCP协议详解
点赞后看,养成习惯
喜欢的话 可以点个关注哟
你们的点赞支持对博主们来说很重要哦 !!!

本文将针对以下问题逐条进行解答:


01 DHCP协议是什么?

02 客户端与服务端处于 同一广播域内,DHCP协议如何工作的?

03 客户端和服务端 不在同一网段,客户端如何通过广播发现服务器?

04 客户端和服务端不在同一网段时,服务器为什么能给客户端分配到 所属网段的IP地址

05 DHCP有哪些 安全漏洞

06 如何解决DHCP的安全漏洞呢?



image.png




# 01 DHCP协议简介

一台电脑,需要被分配到IP地址、网络掩码、缺省网关、DNS服务器IP才算获得了完整的IP参数。那么这些IP参数,是不是需要我们一个个去用户电脑里手动配置呢?

答案是不用的,TCP/IP协议的发明者,为了让TCP/IP协议简单易用,发明了一个自动化配置工具,这就是DHCP(动态主机配置协议)。

这相当于,人类最初想要点火,需要手动钻木取火,而现在只需要一个简单的打火机,按钮一按便可以点火一样。





# 02 客户端与服务端处于同一广播域内,DHCP协议工作机制
image.png

1、客户端发现服务端 ( 客户端:亲爱的,我的礼物在哪里?

电脑的操作系统安装了TCP/IP协议栈,这个协议栈其中包含了DHCP客户端进程,这个客户端会广播发送一个发现服务器的报文,格式为UDP封装,目的端口号为68,源端口号为67

2、服务端回复客户端 ( 服务端:亲爱的,这个礼物你要嘛)

服务端接收到客户端的发现报文,会从IP地址池中选择一个空闲的IP地址、对应的子网掩码、缺省网关、DNS服务器IP地址,并以单播的方式发给客户端,目的端口是67,源端口号为68

3、客户端请求IP参数 ( 客户端:亲爱的,我要我要

客户端接收到服务器的回应,接受服务器分配的IP参数,以单播的方式请求服务器提供的IP参数,发给服务器。


4、服务端确认请求 ( 服务端:亲爱的,给你,你喜欢就好

服务器最终确认客户端的请求,以单播方式发送给客户端。

5、客户端ARP广播确认 ( 客户端接过礼物,看看自己的周围有没有一样的礼物,如果没有的话,就说:亲爱的,这个礼物好独特啊,我接受了;如果发现其他人也有这个礼物,就说,你给我的其他人也有了,我不要
image.png


客户端接收到服务端的确认后,会尝试ARP请求自己IP所对应的MAC地址,看看有没有回复。如果没有回复,那就说明自己现在这个IP地址是 该广播域内独一无二的,不会引起IP地址冲突。于是将自己获得 IP参数配置到TCP/IP协议栈






# 03 客户端和服务端不在同一网段时,客户端通过广播发现服务器的机制

在02 里说到了同一个网段里面DHCP协议的过程,我们会发现一个网段需要一个DHCP服务器。 但是,对于有成千上万个网段的大型网段中,是不是需要巨大数量的DHCP服务器呢?这显然是不现实的。

那么,当客户端和服务端不在同一个网段的时候,广播包跨越不过不同网段的时候,客户端如何通过广播发现服务端呢?其实也简单,你找个帮手,帮你喊话就得了,这个帮手就是DHCP中继代理

简单来说,DHCP中继代理就是让客户端和服务端互相发现彼此的中介结构。 就是我们所谓的中介,帮我们传话的。

image.png


具体是这样的,每个网段都配置一个DHCP中继代理,DHCP中继代理先静态配置DHCP服务器的IP地址,DHCP中继代理,自然可以接收到本网段的客户端DHCP广播报文,然后广播报文修改成单播报文,目的IP地址为DHCP服务器,源IP地址代理为自己的,然后单播发送给服务器,服务器的回复自然也是单播发给代理,代理再将服务器的回复单播发给客户端。



04 客户端和服务端不在同一网段时,服务器给客户端分配到所属网段的IP地址的方法

有DHCP中继代理的情况下,接收到客户端广播的DHCP发现包时,会在DHCP报文内部填写一个字段【中继代理:10.1.1.1

这样服务器接受到DHCP中继代理发过来的包时,就会根据中继代理的地址,找到网段10.1.1.0地址池,然后找出空闲的地址分配会客户端。




05 DHCP协议存在的安全漏洞

服务器会依据DHCP报文来唯一分配一个IP地址,这就是最大的安全漏洞。

设想一下, 一台恶意电脑,伪造了成千上万的MAC地址,用这些MAC地址分别发送DHCP消息报文。

而如果没有防护机制的话,DHCP就会分配出去IP地址,造成的结果是:IP地址池耗尽了,同一网段的其他用户无法自动拿到地址上网了。 这不就相当于,你占着茅坑不拉屎,浪费了资源嘛。

image.png



06 解决DHCP的安全漏洞的方法

这里我们需要引入一个配置,叫 DHCP Snooping(DHCP 窥探)

通过在网络的入口,最靠近用户的二层交换机上配置 DHCP Snooping,让二层交换机偷窥主机与DHCP服务器信息交换,当看到主机信息途经交换机时,交换机修改报文,在原报文的基础上添加一个安全选项【Option 82】,这个选项具体有哪些内容呢?

交换机名称、交换机端口名称,即这条消息是从哪个交换机、哪个端口接收到的。

交换机把这个定位主机的位置消息,添加到【Option 82】字段里。服务器不仅要看客户端MAC地址,还要参考主机的位置消息。 如果设定一个交换机/端口最多只能分配两个IP地址,那么来自同一个交换机/端口的伪造DHCP报文都会被拒绝分配IP地址,因为超出了2个IP地址。



image.png

除此之外,交换机还偷窥到服务器给主机分配的IP地址,还知道主机连接的端口号、主机的硬件地址MAC地址,生成一张表,用于记录交换机端口、MAC地址、IP地址的绑定关系



扩展:其实DHCP Snooping不仅可以解决DHCP欺骗问题,还可以解决ARP欺骗问题

ARP欺骗

当同网段进行通信的时候,需要使用ARP广播来发现彼此的MAC地址。
但是如果小A和小B进行通信的时候,小A问小B的MAC地址,而小C听到了,用自己的MAC地址来回应。让小A信以为真,觉得小C是小B,原来发给小B的流量都发给小C了。如何小C看完内容后,再用小B的MAC地址作为目的MAC发给小B。这就是网络流量的劫持

而如果小C冒充网关的话,则网段里面访问其他网段的流量都会被小C劫持。这很危险
image.png

而使用了DHCP Snooping后,二层交换机有了一份绑定表,当小C试图欺骗小A,自称小B时。交换机因为已经有了小B的MAC、IP、端口号,所以就会发现这个欺诈行为,如何直接丢弃,并在日志文件里记录这个欺骗行为。





以上文章,作为自己的学习笔记,仅供参考

本文完,感谢你的阅读!!!

最后,如果本文对你有所帮助,希望可以点个赞支持一下。你们的鼓励将会是博主原创的动力。

目录
相关文章
|
1月前
|
负载均衡 网络协议 算法
|
26天前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
53 11
|
25天前
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
53 3
|
1月前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
88 3
|
1月前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
83 2
|
1月前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
48 4
|
1月前
|
网络虚拟化
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性。本文介绍了这三种协议的原理、特点及区别,并提供了思科和华为设备的命令示例,帮助读者更好地理解和应用这些协议。
54 4
|
1月前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
51 13
|
1月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
2月前
|
安全 网络协议 网络安全
Cisco-DHCP配置
Cisco-DHCP配置