图解网络:什么是DHCP动态主机配置协议?
nanshan 2024-11-17 14:09 15 浏览 0 评论
你好,这里是网络技术联盟站。
DHCP是网络技术世界一项特别伟大的技术,解决了静态配置IP繁琐的过程,其动态分配IP地址的特性,使得网络变得灵活可扩展。
如果没有 DHCP,很难想象我们将如何连接到互联网或本地网络,DHCP 是我们在 IP 网络上的设备如何相互通信以及与我们周围的世界通信的重要组成部分。
那么DHCP背后的原理是什么?为什么说DHCP是革命性的技术?在配置DHCP的时候要注意什么?
本文,瑞哥就用图解的形式带大家揭开DHCP的神秘面纱,让我们直接开始!
什么是DHCP?
- 英文全称:Dynamic Host Configuration Protocol
- 中文名称:动态主机配置协议
- 是一种网络管理协议
DHCP术语
DHCP有许多专业术语,下面我们来简单了解一下:
- DHCP Discover:当客户端 (PC) 启动时,它会通过以太网广播 DHCP Discover 消息来定位同一子网中的所有可用 DHCP 服务器,到达同一子网中的所有 DHCP 服务器。
- DHCP Offer:当 DHCP 服务器收到来自客户端的 DHCP Discover 消息时,它还会通过以太网广播 DHCP Offer 消息,通知客户端它可用。
- DHCP Request:收到 DHCP Offer 消息的客户端识别出在同一子网上有可用的 DHCP 服务器,然后它通过以太网向服务器广播 DHCP 请求消息,请求网络配置数据,包括自己的 IP 地址。
- DHCP Reservation:网络的预定义 IP 地址范围
- DHCP ACK:DHCP确认
- DHCP Server:DHCP服务器,运行和管理 DHCP 信息的设备
- DHCP Client:DHCP客户端,负责请求 IP 地址并与 DHCP 服务器建立 DHCP 连接
- DHCP Relay Agent:DHCP 中继代理,是在本地 DHCP 客户端和远程 DHCP 服务器之间发送请求和回复的主机或路由器,当多个LAN中只有一个 DHCP 服务器时,中继代理会处理所有网络的请求。
- Lease Time:租用时间,客户端可以使用分配给它的 IP 地址的时间
DHCP 基本拓扑
DHCP组成部分
上面我们介绍了DHCP的术语,一般DHCP会包含以下部分:
DHCP组成部分
这个就印证了上面的DHCP 基本拓扑图,IP地址池、子网、DHCP租约我们会在DHCP原理中介绍。
DHCP原理
DHCP 在应用层运行以动态地为客户端分配 IP 地址,这是通过共享 DHCP 事务或 DHCP 会话来实现的:
DHCP过程
我们来用一张图来简单的解释以下DHCP的握手过程:
DHCP的握手过程
- 第一步:discover:客户端发送一个dhcp discover消息通知服务器
- 第二步:offer:服务器回应一个可用的IP地址和其他参数
- 第三步:request:客户端从服务器请求IP地址
- 第四步:acknowledge:服务器回应一个可用的IP地址和其他参数
为了方便大家记忆,我们将图简化一下:
DHCP工作过程
我们来看一下DHCP工作过程的抓包:
DHCP工作过程的抓包分析
DHCP 租约
每个 IP 地址都不会无限期地属于某一台计算机,与 IP 地址一起,DHCP 服务器将发送一个称为租用时间的到期日期,表示主机何时需要更新地址,DHCP 租约可以避免一定程度上的IP地址的浪费,因为可能有些IP分配出去了,但是所属计算机已经不在某个局域网了,这个时候如果这个地址还不释放的话,久而久之就会造成浪费。
DHCP租约周期如下:
- 客户端通过向 DHCP 服务器请求一个 IP 地址租用的分配过程来获得一个 IP 地址租用。
- 如果客户端已从现有租约中获得 IP 地址,则在重启时需要刷新其 IP 地址,并联系 DHCP 服务器重新分配 IP 地址。
- 租约未到期,则客户端绑定相关租约和IP地址。
- 租约到期,客户端将联系最初授予租约的服务器来更新它,获得继续使用其 IP 地址的权力。
- 如果客户端移动到不同的网络,它的动态 IP 地址将被终止,它会从新网络的 DHCP 服务器请求一个新的 IP 地址。
配置DHCP
Windows
windows配置dhcp比较简单,而且也几乎是默认的配置方式:
- 打开【网络和internet设置】
网络和internet设置
- 点击你连接的网络的【属性】
网络属性
- 找到【IP设置】
找到【IP设置】
看到我的电脑已经是设置成DHCP获取的方式了
ip设置
点开【IP设置】我们看到有DHCP和手动两种设置方式。
我们来看下通过DHCP设置后,我的IP地址是多少:
查看本机IP地址
可以看到通过DHCP自动分配后,我的电脑IP地址为:192.168.50.234
Linux
我以我的一个云服务器为例子给大家演示一下,我的这台云服务器是香港的,Centos系统,那么网络配置文件都是在/etc/sysconfig/network-scripts/路径下。
我们来看一下这台服务器的网络设置:
more /etc/sysconfig/network-scripts/ifcfg-eth0
命令行显示:
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=dhcp
DEVICE=eth0
MTU=1450
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
服务器的网络设置
由此可见我的这台云服务器的ip地址也是DHCP的方式。
查看DHCP分配的地址租约
我们怎么去查看DHCP分配的地址租约呢?
还是以我这台香港的云服务器为例:
执行命令:
cat /var/lib/dhclient/dhclient--eth0.lease
结果显示:
lease {
interface "eth0";
fixed-address 172.16.2.231;
option subnet-mask 255.255.0.0;
option routers 172.16.0.1;
option dhcp-lease-time 86400;
option dhcp-message-type 5;
option domain-name-servers 8.8.4.4;
option dhcp-server-identifier 172.16.0.2;
option interface-mtu 1450;
option dhcp-renewal-time 40305;
option classless-static-routes 32.169.254.169.254 172.16.0.2,0 172.16.0.1;
option broadcast-address 172.16.255.255;
option dhcp-rebinding-time 72705;
option host-name "host-172-16-2-231";
option domain-name "openstacklocal";
renew 6 2022/07/09 09:49:26;
rebind 6 2022/07/09 19:34:44;
expire 6 2022/07/09 23:22:59;
}
lease {
interface "eth0";
fixed-address 172.16.2.231;
option subnet-mask 255.255.0.0;
option routers 172.16.0.1;
option dhcp-lease-time 86400;
option dhcp-message-type 5;
option domain-name-servers 8.8.4.4;
option dhcp-server-identifier 172.16.0.2;
option interface-mtu 1450;
option dhcp-renewal-time 39746;
option classless-static-routes 32.169.254.169.254 172.16.0.2,0 172.16.0.1;
option broadcast-address 172.16.255.255;
option dhcp-rebinding-time 72146;
option host-name "host-172-16-2-231";
option domain-name "openstacklocal";
renew 6 2022/07/09 20:31:46;
rebind 0 2022/07/10 05:51:52;
expire 0 2022/07/10 09:49:26;
}
DHCP分配的地址租约
我们看到有一项参数叫option dhcp-lease-time 86400,这个就是租期时间,单位是秒。
我们还能看出:
- renew 6 2022/07/09 20:31:46;:重新设置的时间
- rebind 0 2022/07/10 05:51:52;:将要重新绑定的时间
- expire 0 2022/07/10 09:49:26;:到期时间
以上就是DHCP的设置部分,我们最后看看DHCP的优缺点。
DHCP的优缺点
DHCP优点
- 减少 IP 冲突:手动分配 IP 地址会增加网络中不正确或重复地址的可能性,使用 DHCP可以确保通过集中控制自动、准确地分配地址。
- 简化网络管理:借助DHCP,网络管理员可以轻松监控、管理和分配 IPv4 和 IPv6 地址。
- 降低成本: 与手动分配 IP 相比,DHCP 有助于节省大量时间,尤其是对于大型企业而言,它还可以节省资金和其他资源,因为公司不需要有专门的专家来持续监督知识产权管理和分配。
DHCP缺点
- DHCP 本身并不安全,如果恶意行为者访问 DHCP 服务器,他们可能会造成严重破坏。
- 如果 DHCP 服务器没有备份并且服务器出现故障,它所服务的设备也会出现故障。
- 如果网络只有一个 DHCP 服务器,则 DHCP 服务器可能是单点故障。
总结
DHCP 是 1985 年网络 IP 管理协议 Bootstrap 协议 ( BOOTP ) 的扩展,用于为网络上的每台主机动态分配 IP 地址和其他信息,以便它们能够高效地进行通信。DHCP 自动、集中管理 IP 地址的分配,简化了网络管理员的工作,除了IP 地址,DHCP 还为主机分配子网掩码、默认网关和域名服务器地址等配置,从而使网络管理员的工作更加轻松。
本文主要从以下方面剖析了DHCP的种种知识:
- 什么是DHCP?
- DHCP术语
- DHCP 组成部分
- DHCP 原理
- DHCP 租约
- 配置DHCP WindowsLinux查看DHCP分配的地址租约
- DHCP的优缺点 DHCP优点DHCP缺点
- 总结
感谢您的阅读,如果觉得文章对您有帮助,别忘了点赞、收藏?哦!有任何问题,欢迎在下方评论区与我讨论!!!
相关推荐
- 雷军1994年写的老代码曝光,被称像诗一样优雅
-
大数据文摘授权转载自程序员的那些事雷军的代码像诗一样优雅↓↓↓有些网友在评论中质疑,说雷军代码不会是“屎”一样优雅吧。说这话的网友,也许是开玩笑的,也许是真没看过雷军写过的代码。在2011年的时候,我...
- 原创经验分享:低级bug耗费12小时Fix
-
调试某程序非常简单的程序,简单到认为不可能存在缺陷,但该BUG处理时间超过12小时:程序属于后台进程,监控系统每隔15秒检查外设IO状态,IO异常后发出报警或复位外设,外设都在linux下有/sys/...
- SpringBoot实现的简单停车位管理系统附带导入和演示教程视频
-
这一次为大家带来的是简单的停车位管理系统,基于SpringBoot+Thymeleaf+Mybatis框架,这个系统相对来说比较简单,很容易学习并快速上手,因为逻辑很清晰,没有太复杂的代码逻辑,所以学...
- 一个开箱即用的代码生成器(代码自动生成工具开源)
-
今天给大家推荐一个好用的代码生成器,名为renren-generator,该项目附带前端页面,可以很方便的选择我们所需要生成代码的表。首先我们通过git工具克隆下来代码(地址见文末),导入idea。...
- 【免费开源】JeecgBoot单点登录源码全部开源了
-
JeecgBoot单点登录源码全部开源了,有需要的朋友可以来薅羊毛了。一、JeecgBoot介绍JeecgBoot是一款企业级的低代码平台!前后端分离架构SpringBoot2.x,SpringCl...
- SpringBoot+JWT+Shiro+Mybatis实现Restful快速开发后端脚手架
-
作者:lywJee来源:cnblogs.com/lywJ/p/11252064.html一、背景前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。SpringBoot使编码配置...
- 为什么越来越多的人选择使用idea软件
-
IDEA软件是什么?IDEA软件是干什么的?为什么越来越多的人选择使用IDEA软件?IDEA软件,全称IntelliJIDEA,它是由JetBrains公司开发开发的一款功能强大的集成开发环境(ID...
- 开题报告大学生互助系统(附源码)java毕设
-
本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容选题背景随着互联网技术的飞速发展,大学生群体对信息共享与互助的需求日益增长。关于大...
- SpringBoot项目快速开发框架JeecgBoot——项目简介及系统架构!
-
项目简介及系统架构JeecgBoot是一款基于SpringBoot的开发平台,它采用前后端分离架构,集成的框架有SpringBoot2.x、SpringCloud、AntDesignof...
- 新手配电脑13代CPU怎么选择(新手配电脑13代cpu怎么选择好)
-
Intel第13代酷睿i3、i5、i7、i9系列处理器的核心参数、性能差异及适用群体的详细说明(以桌面端为例):一、13代酷睿全系参数对比(桌面端主流型号)参数i3-13100i5-13600Ki7-...
- 加速 SpringBoot 应用开发,官方热部署神器真带劲
-
平时使用SpringBoot开发应用时,修改代码后需要重新启动才能生效。如果你的应用足够大的话,启动可能需要好几分钟。有没有什么办法可以加速启动过程,让我们开发应用代码更高效呢?今天给大家推荐一款Sp...
- 基于微信小程序的移动端物流系统-计算机毕业设计源码+LW文档
-
摘要随着Internet的发展,人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化,网络化和电子化。网上管理,它将是直接管理移动端物流系统app的最新形式。本论文是以构建移动端物流系...
- springboot教务管理系统+微信小程序云开发附带源码
-
今天给大家分享的程序是基于springboot的管理,前端是小程序,系统非常的nice,不管是学习还是毕设都非常的靠谱。本系统主要分为pc端后台管理和微信小程序端,pc端有三个角色:管理员、学生、教师...
- SpringBoot全家桶:23篇博客加23个可运行项目让你对它了如指掌
-
SpringBoot现在已经成为Java开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成。本项目对目前Web开发中常用的各个技术,通过和SpringBoot的集成,并且对各种技术通...
- Maven+JSP+Servlet+C3P0+Mysql实现的音乐库管理系统
-
本系统基于Maven+JSP+Servlet+C3P0+Mysql实现的音乐库管理系统。简单实现了充值、购买歌曲、poi数据导入导出、歌曲上传下载、歌曲播放、用户注册登录注销等功能。难度等级:简单技术...
你 发表评论:
欢迎- 一周热门
-
-
UOS服务器操作系统防火墙设置(uos20关闭防火墙)
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
如何修复用户配置文件服务在 WINDOWS 上登录失败的问题
-
手机如何设置与显示准确时间的详细指南
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
日本海上自卫队的军衔制度(日本海上自卫队的军衔制度是什么)
-
NAS:DS video/DS file/DS photo等群晖移动端APP远程访问的教程
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
10个免费文件中转服务站,分享文件简单方便,你知道几个?
-
FANUC 0i-TF数据备份方法(fanuc系统备份教程)
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)