DHCP的原理及配置

news2024/11/27 21:11:28

目录

一、了解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.coloradmin.cn/o/1904583.html

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

相关文章

PyQt5中如何实现指示灯点亮和指示灯熄灭功能

一般上位机界面都会涉及指示灯点亮和指示灯熄灭功能,从网上下载该功能的上位机界面,学习如何使用PyQt5搭建具备指示灯点亮和指示灯熄灭效果的界面。 1. 上位机界面的效果展示 使用PyQt5实现以下界面,界面效果如下,界面图片是从网…

【CUDA】

笔者在学习Softmax实现时遇到了一个问题,很多文章直接将softmax的计算分成了五个过程,而没有解释每个过程的含义,尤其是在阅读这篇文章时,作者想计算最基本的softmax的效率,以展示可行的优化空间: 贴一个g…

相见恨晚的《新程序员》 AI 专辑

声明:本文并不什么“软文”,是我的真实感受分享。本人和《新程序员》无任何利益关系,读者购买专栏我不会获得任何分成。 一、前言 前不久有位朋友送我一本 CSDN 出品的 《新程序员 006:人工智能新十年》 的杂志。 说实话&#x…

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

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

谷粒商城学习笔记-16-人人开源搭建后台管理系统

文章目录 一,克隆前/后端代码1,克隆前端工程renren-fast-value2,克隆后端工程renren-fast 二,集成后台管理系统的后端代码三,启动后台管理系统四,前端系统的安装和运行1,下载安装VSCode2&#x…

【TB作品】51单片机 Proteus仿真 超声波LCD1602ADC0832 身高体重测量仪

00024 超声波LCD1602ADC0832 实验报告:基于51单片机的身高体重测量仪设计 背景介绍 本实验设计并实现了一个基于51单片机的身高体重测量仪。该系统利用超声波传感器测量高度,通过ADC0832模数转换芯片获取重量数据,并使用LCD1602显示屏显示…

26_嵌入式系统网络接口

以太网接口基本原理 IEEE802标准 局域网标准协议工作在物理层和数据链路层,其将数据链路层又划分为两层,从下到上分别为介质访问控制子层(不同的MAC子层,与具体接入的传输介质相关),逻辑链路控制子层(统一的LLC子层,为上层提供统…

【JavaSE复习】数据结构、集合

JavaSE 复习 1.数据结构1.1 查找1.1.1 基本查找1.1.2 二分查找1.1.3 插值查找1.1.4 斐波那契查找1.1.5 分块查找1.1.6 分块查找的扩展(无规律数据) 1.2 排序1.2.1 冒泡排序1.2.2 选择排序1.2.3 插入排序1.2.4 快速排序 2. 集合2.1 基础集合2.1.1 集合和数…

MATLAB制作一个简单的函数绘制APP

制作一个函数绘制APP,输入函数以及左右端点,绘制出函数图像。 编写回调函数: 结果:

D1.排序

1.快速排序 双指针 采用分治的思想,基于一个数作为标准,进行分治 步骤: 确定分界点的值。x q[l]、q[(lr)/2]、q[r]、随机 都可以;划分区间:使得小于等于x的数放在数组的左边;大于等于x的数放在数组的右边…

【C语言】 —— 编译和链接

【C语言】 —— 编译和链接 一、编译环境和运行环境二、翻译环境2.1、 预处理2.2、 编译(1)词法分析(2)语法分析(3)语义分析 2.3、 汇编2.4、链接 三、运行环境 一、编译环境和运行环境 平时我们说写 C语言…

【电机控制】EG2134无刷电机驱动、控制一体板——开环、无感SMO验证

【电机控制】EG2134无刷电机驱动、控制一体板——开环、无感SMO验证 文章目录 前言一、硬件二、软件三、开环SVPWM四、SMO无感观测器闭环控制五、参考文献总结 前言 【电机控制】直流有刷电机、无刷电机汇总——持续更新 【电机控制】EG2134无感FOC驱控一体板-滑模观测器 使用…

详解Linux的shell脚本基础指令

一、shell简介 是Linux系统的用户界面,它提供用户与内核的一种交互方式。它接收用户输入的命令,并把它送入内核去执行,是一个命令解释器。 脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以…

数学系C++(六七)

目录 * &指针与地址 void指针 指针可以等于: const 指向常量的指针 const int *px 常指针 int * const px 指向常量的常指针const 类型标识符 * const 指针名 指针加减: 指针恒等式 函数指针【待续】 指针型函数: 指向函数的…

【mindspore进阶】02-ResNet50迁移学习

Mindspore 应用(2)ResNet50迁移学习 在实际应用场景中,由于训练数据集不足,所以很少有人会从头开始训练整个网络。普遍的做法是,在一个非常大的基础数据集上训练得到一个预训练模型,然后使用该模型来初始化…

关于Python的电影信息爬取与数据可视化分析报告

目录 1 引言 1.1 研究背景 1.2 研究目的 1.3 研究意义 2 相关技术介绍 2.1 Python语言及其应用领域 2.2 网络爬虫技术 2.3 数据可视化技术 2.4 PyCharm 2.5 Jupyter Notebook 3 数据爬取 4 数据预处理 5 数据分析及可视化 5.1数据分析背景 5.2从电影评分角度分析…

嵌入式开发SPI基本介绍与应用

目录 #SPI通信协议 #SPI基础概念 #SPI通信模式 #SPI通信时序类型 前言:本篇笔记参考嘉立创的开发文档,连接放在最后。 #SPI通信协议 #SPI基础概念 Serial Peripheral Interface 缩写SPI 翻译:串行外设接口 同步串行通信协议&…

运维系列.Nginx配置中的高级指令和流程控制

运维专题 Nginx配置中的高级指令和流程控制 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/…

镭速实现大文件传输软件预览功能

在当前的数字时代,大文件传输软件成为了提高工作效率和文件管理便捷性的关键工具。镭速作为其中的一员,以其独特的功能和优势,为用户提供了多样化的文件预览和传输解决方案。 目前镭速支持对文档格式文件,一般图片格式及视频格式…

非比较排序 计数排序

1.核心思路 首先要找出max 和 min,最大值 - 最小值 1,就可以计算出数据在什么范围然后创建计数数组大小,a[i] - min 在数组的相对位置计数 通过自然序列排序然后把计数好的值,按照顺序依次放回原数组即可 动图解释,其…