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地址

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

简介空间复杂度

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

在门店里造绿色氧吧!康养行业也这么卷了?

拼啥不如拼健康,现在的人算是活明白了,不但中老年人这样想,年轻人也这样干。你可能不知道,现在众多健康养生门店,逐渐成了年轻人“组团养生”的好去处,也是他们吃喝玩乐之外的新兴消费趋势。 而在看得见的…

无需服务器,浏览器跑700+AI模型?!【送源码】

Transformers.js 是一个创新的网络机器学习库,它将先进的 Transformer 模型直接带入浏览器,无需服务器端支持。这个库与 Hugging Face 的 Python transformers 库功能对等,提供相似的 API 接口来运行预训练模型,涵盖了自然语言处理…

Java引用的4种类型:强、软、弱、虚

在Java中,引用的概念不仅限于强引用,还包括软引用、弱引用和虚引用(也称为幻影引用)。这些引用类型主要用于不同的内存管理策略,尤其是在垃圾收集过程中。以下是对这四种引用类型的详细解释: 1. 强引用&am…

【实践分享】深度学习远程连接GPU

目录 前言 一、创建实例 二、上传文件 三、服务器上传 四、运行代码文件 前言 1、使用平台:恒源云 2、教程总结自B站大佬Larry同学发布的教程视频 一、创建实例 通俗:租用一台临时的电脑,电脑可自选GPU型号等,按照项目需…

品质至上!中国星坤连接器的发展之道!

在电子连接技术领域,中国星坤以其卓越的创新能力和对品质的不懈追求,赢得了业界的广泛认可。凭借在高精度连接器设计和制造上的领先地位,星坤不仅获得了多项实用新型专利,更通过一系列国际质量管理体系认证,彰显了其产…

【原理+使用】DeepCache: Accelerating Diffusion Models for Free

论文:arxiv.org/pdf/2312.00858 代码:horseee/DeepCache: [CVPR 2024] DeepCache: Accelerating Diffusion Models for Free (github.com) 介绍 DeepCache是一种新颖的无训练且几乎无损的范式,从模型架构的角度加速了扩散模型。DeepCache利…

树(相关知识点)

目录 结点的度:某一个结点所含有字数的个数 叶节点:最后一个结点 非终端节点:不是叶结点 兄弟结点:亲兄弟结点 树的度:最大节点的度 层次:根为第一层,根的子结点为第二层,以此类推 森林&am…

[附源码]基于Flask的演唱会购票系统

摘要 随着互联网技术的普及和发展,传统购票方式因其效率低下、流程繁琐等问题已难以满足现代社会的需求。本文设计并实现了一个基于Flask框架的演唱会购票系统,该系统集成了用户管理、演唱会信息管理、票务管理以及数据统计与分析等功能模块&#xff0c…

linux centos7.9 安装mysql5.7;root设置客户端登录、配置并发、表名大小写敏感等

查看centos版本 cat /etc/centos-releasecentos版本为7.9 查看是否已安装mariadb,安装了需要先删除 1.查看是否安装了mariadb和mysql,安装了需要先删除 mariadb是mysql的一个分支,但要安装mysql需要删除它 执行rpm -qa|grep mariadb,查看mariadb情况…

Hi6602 恒压恒流SSR电源方案

Hi6602是一款针对离线式反激电源设计的高性能PWM控制器。Hi6602内集成有通用的原边恒流控制技术,可支持断续模式和连续模式工作,适用于恒流输出的隔离型电源应用中。Hi6602内部具有高精度65kHz开关频率振荡器,且带有抖频功能可优化EMI性能。H…

AI大模型技术分析

一文读懂:AI大模型! 引言 近年来,随着深度学习技术的迅猛发展,AI大模型已经成为人工智能领域的重要研究方向和热点话题。AI大模型,指的是拥有巨大参数规模和强大学习能力的神经网络模型,如BERT、GPT等&…

java IO流(1)

一. 文件类 java中提供了一个File类来表示一个文件或目录(文件夹),并提供了一些方法可以操作该文件 1. 文件类的常用方法 File(String pathname)构造方法,里面传一个路径名,用来表示一个文件boolean canRead()判断文件是否是可读文件boolean canWrite()判断文件是否是可写文…

spring boot读取yml配置注意点记录

问题1:yml中配置的值加载到代码后值变了。 现场yml配置如下: type-maps:infos:data_register: 0ns_xzdy: 010000ns_zldy: 020000ns_yl: 030000ns_jzjz: 040000ns_ggglyggfwjz: 050000ns_syffyjz: 060000ns_gyjz: 070000ns_ccywljz: 080000ns_qtjz: 090…

【论文通读】RuleR: Improving LLM Controllability by Rule-based Data Recycling

RuleR: Improving LLM Controllability by Rule-based Data Recycling 前言AbstractMotivationSolutionMethodExperimentsConclusion 前言 一篇关于提升LLMs输出可控性的短文,对SFT数据以规则的方式进行增强,从而提升SFT数据的质量,进而间接帮…

数组算法(二):交替子数组计数

1. 官方描述 给你一个二进制数组nums 。如果一个子数组中 不存在 两个 相邻 元素的值 相同 的情况,我们称这样的子数组为 交替子数组 。 返回数组 nums 中交替子数组的数量。 示例 1: 输入: nums [0,1,1,1] 输出: 5 解释&#…

数学系C++ 排序算法简述(八)

目录 排序 选择排序 O(n2) 不稳定:48429 归并排序 O(n log n) 稳定 插入排序 O(n2) 堆排序 O(n log n) 希尔排序 O(n log2 n) 图书馆排序 O(n log n) 冒泡排序 O(n2) 优化: 基数排序 O(n k) 快速排序 O(n log n)【分治】 不稳定 桶排序 O(n…

一.2.(4)放大电路静态工作点的稳定;(未完待续)

1.Rb对Q点及Au的影响 输入特性曲线:Rb减少,IBQ,UBEQ增大 输出特性曲线:ICQ增大,UCEQ减少 AUUO/Ui分子减少,分母增大,但由于分子带负号,所以|Au|减少 2.Rc对Q点及Au的影响 输入特性曲…

【密码学】什么是密码?什么是密码学?

一、密码的定义 根据《中华人民共和国密码法》对密码的定义如下: 密码是指采用特定变换的方法对信息等进行加密保护、安全认证的技术、产品和服务。 二、密码学的定义 密码学是研究编制密码和破译密码的技术科学。由定义可以知道密码学分为两个主要分支&#x…

【做一道算一道】和为 K 的子数组

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2 示例 2: 输入:nums [1,2,3],…