DHCP的原理及配置

目录

一、了解DHCP服务

1.什么是DHCP 

1.1DHCP广播

2.使用DHCP的好处 

2.1为什么使用DHCP 

3.DHCP的模式与分配方式 

3.1分配方式

3.2模式 

二、DHCP工作原理

1.四次回话 

2.重新登录 

3.更新租约

4.扩展

三、安装DHCP服务 

四、DHCP局部配置并且测试

五、使用DHCP实现不同网段获取地址

5.1问题 

5.2分析DHCP 

5.3 两种方法可以解决


一、了解DHCP服务

1.什么是DHCP 

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是由Internet工作任务小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议,是一个应用层协议,使用UDP的67和68端口

DHCP的前身是BOOTP协议(BootstrapProtocol),BOOTP被创建出来为连接到网络中的设备自动分配地址,后来被DHCP取代了,DHCP比BOOTP更加复杂,功能更强大。(如果使用wireshark抓包过滤协议是用bootp而不是dhcp) 

1.1DHCP广播

DHCP广播过程是在网络中用于获取IP地址及其他网络配置信息的一种方法。下面是DHCP广播过程的简要描述:

DHCP Discover:

客户端(通常是计算机或其他网络设备)在初始连接到网络时发送一个DHCP Discover广播消息。这个广播消息的目的地址是255.255.255.255,即广播地址,这样可以确保所有连接到同一个网络的DHCP服务器都能收到这个消息
DHCP Discover消息中包含客户端的MAC地址和可能的其他信息,例如支持的DHCP选项和配置参数的最大长度
DHCP Offer:

DHCP服务器收到DHCP Discover消息后,如果它有可用的IP地址池和配置信息,会向客户端发送DHCP Offer消息
DHCP Offer消息中包含一个可用的IP地址及其他网络配置信息,比如子网掩码、默认网关、DNS服务器等
服务器将自己的IP地址作为源IP发送Offer,目标IP是广播地址
DHCP Request:

客户端收到一个或多个DHCP Offer后,通常会选择其中一个Offer并向发送该Offer的DHCP服务器发送DHCP Request消息,以请求指定的IP地址和配置信息
DHCP Request消息中包含客户端希望使用的IP地址(通常是服务器提供的一个)
DHCP Acknowledge:

DHCP服务器收到DHCP Request消息后,会验证请求的IP地址是否仍然可用。如果IP地址可用,服务器会向客户端发送DHCP Acknowledge消息,确认IP地址分配成功
DHCP Acknowledge消息中包含客户端被分配的IP地址及其他网络配置信息
配置应用:

客户端收到DHCP Acknowledge消息后,会应用所获取的IP地址及其他配置信息。此时客户端与网络正式连接
DHCP广播过程的关键点:
广播地址:客户端使用广播地址发送DHCP Discover消息,以确保所有可能的DHCP服务器都能接收到请求
选择性:客户端可以收到多个DHCP Offer后进行选择,并向其中一个服务器发送DHCP Request来确认选择
确认:DHCP Acknowledge消息由服务器发送,确认了IP地址分配的最终结果

2.使用DHCP的好处 

(1)减少管理员的工作量
(2)避免输入错误的可能
(3)避免 IP 地址冲突
(4)当网络更改IP地址段时,不需要再重新配置每个用户的IP地址
(5)提高了IP地址的利用率
(6)方便客户端的配置

2.1为什么使用DHCP 

DHCP服务避免了因手动设置IP地址所产生的错误,同时也避免了把一个IP地址分配给多台工作站所造成的地址冲突。DHCP提供了安全、可靠且简单的TCP/IP网络设置,降低了配置 IP地址的负担

3.DHCP的模式与分配方式 

3.1分配方式

自动分配:是当DHCP客户机第一次成功地从DHCP服务器获取到一个IP地址后, 就永久地使用这个IP地址
手动分配:是由DHCP服务器管理员专门指定IP地址
动态分配:是当DHCP客户机第一次从DHCP服务器获取到IP地址后,并非永久地使用该地址,而是在每次使用完后,DHCP客户机就会释放这个IP地址,供其他客户机使用

3.2模式 

典型的C/S模式
在网络中架设一台专用的DHCP服务器,负责集中分配各种网络地址参数(主要包括IP地址、子网掩码、广播地址、默认网关地址、DNS 服务器地址);其他主机作为DHCP客户机,将网卡配置为自动获取地址,即可与DHCP服务器进行通信,完成自动配置过程

DHCP是C/S模式,DHCP服务端和客户端需要保持通信,DHCP基于UDP协议,双方都有可能会主动向对方发起通信,因此双方都需要监听端口
Server端:DHCP Server(运行dhcp服务)
UDP服务:监听端口 67(bootps)
Client端:DHCP Client(运行dhcp程序)
UDP服务:监听端口 68 (bootpc)

二、DHCP工作原理

客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
分为四个步骤:

1.四次回话 

客户机请求IP地址

当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址。此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器

服务器响应

当DHCP服务器接收到来自客户机请求IP地址的信息时,它就在自己的IP地址池中查找是否有合法的IP地址提供给客户机。如果有,DHCP服务器就将此IP地址做上标记, 加入到 DHCP Offer的消息中,然后DHCP服务器就广播一则DHCP Offer消息  

客户机选择IP地址

DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机。之后DHCP客户机会向服务器发送DHCP Request消息

服务器确定租约

DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息。当客户机收到DHCP ACK消息时,它就配置了IP地址,完成TCP/IP的初始化

DHCP的工作方式有点像你在找房子时的流程:

找房子:当你刚搬到一个新城市时,你需要找一处房子住下来。在网络中,新加入的设备也需要一个IP地址来“住”在网络上

发出广播:你会向周围的房东广播你的需求,告诉他们你正在找房子。在网络中,设备会向周围的DHCP服务器发出广播消息,告诉它们它们需要一个IP地址

收到房源信息:房东们收到你的广播后,如果有空房间,就会回复你,告诉你他们有可用的房源。在网络中,DHCP服务器收到广播后会回复设备,提供可用的IP地址和其他网络设置,比如网关和DNS服务器的地址

确认租房:你从收到的房源中选择一处合适的房子,然后告诉房东你要租这个房子。在网络中,设备选择一个DHCP服务器提供的IP地址,并向该服务器发送请求,确认租用这个IP地址

签订合同:房东确认接受你的请求后,你们就达成了租房协议,你可以搬进新家了。在网络中,DHCP服务器确认设备的请求后,将正式分配IP地址给设备,并提供其他网络配置信息,设备就可以开始使用这个IP地址与网络上的其他设备进行通信了

总体来说,DHCP广播过程就是一个设备在网络上寻找并租用IP地址的自动化过程,它使得设备能够快速、方便地加入并使用网络

2.重新登录 

关于重新登录的情况
DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request 请求信息

3.更新租约

当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约
客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约

租期达到50%(T1)时,DHCP客户端会自动以单播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCP NAK报文,则重新发送DHCP DISCOVER报文请求新的IP地址

当租期达到87.5%(T2)时,如果仍未收到DHCP服务器的应答,DHCP客户端会自动以广播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCP NAK报文,则重新发送DHCP DISCOVER报文请求新的IP地址

4.扩展

为什么会获得169.254.0.0/16网段的地址
一开始DHCP客户机初始化TCP/IP,通过UDP端口67向网络中发送一个DHCP DISCOVER广播包,请求租用IP地址。任何接收到DHCP DISCOVER广播包并且能够提供IP地址的DHCP服务器,都会通过UDP端口68给客户机回应一个DHCP OFFER广播包,提供一个IP地址。但是DHCP客户机在发出IP租用请求的DHCP DISCOVER广播包后,将花费1秒钟的时间等待DHCP服务器的回应,如果1秒钟没有服务器的回应,它会将这一广播包重新广播四次(以2,4,8和16秒为间隔,加上1~1000毫秒之间随机长度的时间)。四次之后,如果仍未能收到服务器的回应,则运行Windows的DHCP客户机将从169.254.0.0/16这个自动保留的私有IP地址(APIPA)中选用一个IP地址,而运行其他操作系统的DHCP客户机将无法获得IP地址

三、安装DHCP服务 

实验配置步骤:
1、yum安装dhcp服务
2、配置dhcp配置文件
3、启动服务
4、查看端口
5、验证服务

安装DHCP服务前的准备

rpm -q dhcp      #查看有没有软件包

yum install -y dhcp      #下载软件包

rpm -qc dhcp    #查看配置文件有哪些

cat /etc/dhcp/dhcpd.conf       #查看配置文件

cp -fp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf    

拷贝模板起名为dhcpd.conf     

四、DHCP局部配置并且测试

subnet 网段声明
一台DHCP服务器可以为多个网段提供服务,因此subnet网段声明必须有而且可以有多个。
注意别少了每行结尾的分号!

编辑配置文件

vim /etc/dhcp/dhcpd.conf

subnet 172.16.58.0 netmask 255.255.255.0 {
#default-lease-time 6000;
  range 172.16.58.210 172.16.58.220;
  option broadcast-address 172.16.58.255;
  option routers 172.16.58.200;
  option domain-name-servers 114.114.114.114;
}

客户端验证:
ipconfig /release
ipconfig /renew

dhcp默认日志记录在/var/log/messages

客户机预留指定的固定ip地址

编辑配置文件

vim /etc/dhcp/dhcpd.conf

添加配置信息然后保存退出

重启服务器

host 主机声明,作用于单个主机
#hardware ethernet 参数:指定对应主机的 MAC 地址
#fixed-address        参数:指定为该主机保留的IP地址 

验证方法跟上面一样

ipconfig /release
ipconfig /renew

ipconfig /all

在服务器端可以通过查看租约文件来了解服务器的 IP 地址分配情况,具体操作如下:

less /var/lib/dhcpd/dhcpd.leases
该租约文件中记录了分配出去的每个IP地址信息(租约记录), 包括IP地址、客户端的MAC 地址、租用的起始时间和结束时间等
该文件初始为空,且无需管理员手工配置,但管理员可以浏览此文件查看DHCP服务器的运行情况
文件包含租期声明,每次一个租期被获取,更新或释放,它的新值就被记录到文件的末尾 

客户端需要通过dhclient命令释放获取的IP租约时,可以结合“-r”选项。此时再通过执行ifconfig 命令就看不到分配的IP地址了
dhclient -r ens33

五、使用DHCP实现不同网段获取地址

5.1问题 

同网段可以通过广播消息来通信,来可以查找主机,那不同网段呢,不同网段不能广播吧,这个时候是不是可以使用DHCP中继这个服务吧,也就是使用中继的技术,你们之前是不是使用过华为的中继嘛,你配一个路由器或者配一个三层交换,然后呢,可以做个DHCP中继指向DHCP服务器,不就是能完成获取DHCP服务吗,就算不在同一网段我通过中继服务器转发不就可以了吗

5.2分析DHCP 

DHCP中继原理
当企业内部网络规模比较大时,通常通过 VLAN 将网络规划为多个不同的子网。但是在该情况下一台DHCP服务器无法为不同网段的客户机同时提供服务,因为DHCP协议使 用广播,而VLAN能隔离广播

5.3 两种方法可以解决

(1)为每个网段安装一台DHCP服务器,但这种方式的弊端是:资源浪费与不利于管理
(2)在连接不同网段的设备上开启DHCP中继功能,将DHCP这种特殊的广播信息在VLAN 之间转发,让其他VLAN的客户机也能从DHCP服务器获取IP地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/867969.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7.Android逆向协议-抓取安卓http和https数据包(设备需要root权限)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于:微尘网校 上一个内容:6.Android逆向协议-配置FD抓包环境 工具下载: 链接:https://pan.baidu.com/s…

Nestjs基础

一、创建项目 1、创建 安装 Nest CLI(只需要安装一次) npm i -g nestjs/cli 进入要创建项目的目录,使用 Nest CLI 创建项目 nest new 项目名 运行项目 npm run start 开发环境下运行,自动刷新服务 npm run start:dev 2、…

GuitarPro2024音乐软件#创作神器#音乐梦想

嘿,亲爱的朋友们!👋👋👋今天我要给你们安利一款超赞的软件——Guitar Pro。这款软件简直是吉他手的福音啊!🎉🎉🎉 Guitar Pro免费绿色永久安装包下载:&#…

YOLOv8 | 代码逐行解析(五) | YOLOv8中损失函数计算的详解包含Cls和Bbox计算的解析,小白必看(下)

一、本文介绍 本文给大家带来的是YOLOv8中的损失函数计算的完整解析,内容包括v8DetectionLoss的解析,以及BboxLoss的解析,如果你相对损失函数的计算原理,本文内容绝对会对你有所帮助,全文内容包含1万两千字&#xff0…

(十) Docker compose 本地部署 apollo

文章目录 1、apollo2、数据库准备3、启动后会用到的几个地址4、docker-compose运行 apollo方式一:使用容器 hostName 作为网络媒介方式二:使用端口映射固定 ip 作为网络媒介 6、客户端 1、apollo https://www.apolloconfig.com/#/zh/deployment/quick-s…

使用策略模式加工厂模式实现数据上传时的不同云平台的处理

在处理不同云存储的 SDK 和接口调用时可以使用策略模式加工厂模式实现了灵活的云存储上传处理 策略模式:可以为每个云存储(如阿里云、腾讯云等)创建一个策略类,实现统一的接口,来封装不同的上传逻辑。工厂模式&#x…

【代码管理的必备工具:Git的基本概念与操作详解】

一、Git 初识 1.提出问题 不知道你工作或学习时,有没有遇到这样的情况:我们在编写各种⽂档时,为了防止⽂档丢失,更改失误,失误后能恢复到原来的版本,不得不复制出⼀个副本,比如: “…

敏感词匹配DFA算法

算法简介与场景介绍 DFA算法,中文全称为确定性有穷自动机。它的基本思想是构建一个有穷自动机,当用户输入文本时,通过自动机的状态转换来快速匹配敏感词。具体特征是,有一个有效状态的集合和一些从一个状态通向另一个状态的边&am…

VuePress 的更多配置

现在,读者应该对 VuePress、主题和插件等有了基本的认识,除了插件,VuePress 自身也有很多有用的配置,这里简单说明下。 ‍ ‍ VuePress 的介绍 在介绍了 VuePress 的基本使用、主题和插件的概念之后,我们再来看看官…

简介空间复杂度

我们承接上一篇博客。我们写了时间复杂度之后,我们就要来介绍一下另一个相关复杂度了。空间复杂度。我觉得大家应该对空间复杂度认识可能比较少一些。我就是这样,我很少看见题目中有明确要求过空间复杂度的。但确实有这个是我们不可忽视的,所…

PXIe-7976【K410T】

起售价 RMB 152,880.00 块RAM(BRAM): 28620 kbit 动态RAM(DRAM): 2 GB FPGA: Kintex-7 410T PXI背板链路: PCI-Express Gen2 x 8 FPGA片: 63550 DSP片: 1540

ChatGPT-4o大语言模型优化、本地私有化部署、从0-1搭建、智能体构建等高级进阶

目录 第一章 ChatGPT-4o使用进阶 第二章 大语言模型原理详解 第三章 大语言模型优化 第四章 开源大语言模型及本地部署 第五章 从0到1搭建第一个大语言模型 第六章 智能体(Agent)构建 第七章 大语言模型发展趋势 第八章 总结与答疑讨论 更多应用…

昇思25天学习打卡营第12天|FCN图像语义分割

文章目录 昇思MindSpore应用实践基于MindSpore的FCN图像语义分割1、FCN 图像分割简介2、构建 FCN 模型3、数据预处理4、模型训练自定义评价指标 Metrics 5、模型推理结果 Reference 昇思MindSpore应用实践 本系列文章主要用于记录昇思25天学习打卡营的学习心得。 基于MindSpo…

LaTeX教程(014)-LaTeX文档结构(14)

LaTeX教程(014)- LaTeX \LaTeX LATE​X文档结构(14) 2.3.3 multitoc - 将目录设置为多栏 multitoc包的使用方法相当简单,只需要调用这个包,并将要设置为多栏(默认是双栏)的目录指定到包选项中即可。如\usepackage[toc]{multitoc},设置的就是…

Springboot使用WebSocket发送消息

1. 创建springboot项目&#xff0c;引入spring-boot-starter-websocket依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>完整项目依赖 <?xml ver…

Vue 使用 @click 绑定点击事件

https://andi.cn/page/621505.html

Python【打包exe文件两步到位】

Python打包Exe 安装 pyinstaller&#xff08;pip install pyinstaller&#xff09; 执行打包命令&#xff08;pyinstaller demo.py&#xff09; 打完包会生成 dist 文件夹&#xff0c;如下如

基于开源AI数据框架LlamaIndex构建上下文增强型LLA应用

引言 “将你的企业数据转化为可用于实际生产环境的LLM应用程序&#xff0c;”LlamaIndex主页用60号字体这样高亮显示。其副标题是“LlamaIndex是构建LLM应用程序的领先数据框架。”我不太确定它是否是业内领先的数据框架&#xff0c;但我认为它是一个与LangChain和Semantic Ker…

快行线冷链——创新仓配、共赢未来 主题沙龙在京成功举办

2024年7月7日下午&#xff0c;由京营建联盟、北京市大兴区餐饮行业协会、北京快行线冷链物流联合主办的“创新仓配&#xff0c;共赢未来——相信拥抱的力量”主题沙龙活动在北京篝野城市露营空间隆重举行。本次活动定向邀请了餐饮老板、餐饮企业供应链负责人及冻品经销商和相关…

电子电气架构 --- 智能座舱万物互联

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…