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

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 计算机网络——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、端口号,所以就会发现这个欺诈行为,如何直接丢弃,并在日志文件里记录这个欺骗行为。





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

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

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

目录
打赏
0
2
2
0
10
分享
相关文章
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
77 18
Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理
Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理
70 4
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
107 22
掌握网络通信协议和技术:开发者指南
本文探讨了常见的网络通信协议和技术,如HTTP、SSE、GraphQL、TCP、WebSocket和Socket.IO,分析了它们的功能、优劣势及适用场景。开发者需根据应用需求选择合适的协议,以构建高效、可扩展的应用程序。同时,测试与调试工具(如Apipost)能助力开发者在不同网络环境下优化性能,提升用户体验。掌握这些协议是现代软件开发者的必备技能,对项目成功至关重要。
智能体竟能自行组建通信网络,还能自创协议提升通信效率
《一种适用于大型语言模型网络的可扩展通信协议》提出创新协议Agora,解决多智能体系统中的“通信三难困境”,即异构性、通用性和成本问题。Agora通过标准协议、结构化数据和自然语言三种通信格式,实现高效协作,支持复杂任务自动化。演示场景显示其在预订服务和天气预报等应用中的优越性能。论文地址:https://arxiv.org/pdf/2410.11905。
125 6
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
416 3
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
175 11
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
215 3

云原生

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问