Linux CentOS 8(DHCP的配置与管理)


Linux CentOS 8(DHCP的配置与管理)


目录

    • 一、项目介绍
    • 二、DHCP服务简介
    • 三、DHCP工作原理
    • 四、配置DHCP服务
      • 4.1 项目配置准备
      • 4.2 dhcpd配置文件框架与参数说明
      • 4.3 登录客户机验证
      • 4.4 客户端IP地址的释放与重新申请
      • 4.5 保留特定IP地址


一、项目介绍

当计算机中的网络变得多且复杂的时候,逐一为多台计算机去配置IP地址将会变得繁琐不堪。为了更高效地完成这项工作,工程师常会采用动态主机配置协议(Dynamic Host Configuration Protocol, DHCP)来自动为客户端配置IP地址、子网掩码和默认网关等信息。

二、DHCP服务简介

DHCP动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(DHCP client),并且大部分DHCP协议通信以广播方式进行。DHCP通常被用于局域网环境,主要有两个作用:一是用于内部网或网络服务供应商自动分配IP地址,使客户端动态地获得IP地址、Gateway地址和DNS服务器地址等信息;二是给予用户以内部网管理员身份对所有计算机作集中管理的手段,并提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。

三、DHCP工作原理

由于在IP地址动态获取过程中采用广播方式发送报文,因此要求DHCP客户端和服务器位于同一个网段内。如果DHCP客户端和DHCP服务器位于不同的网段,则需要通过DHCP中继来中继转发DHCP报文。

通过DHCP中继完成动态配置的过程中,客户端与服务器的处理方式与不通过DHCP中继时的处理方式基本相同。下面仅以DHCP客户端与DHCP服务器在同一网段的情况为例,说明DHCP协议的工作过程。

客户端为了动态获取并使用一个合法的IP地址,需要经历以下几个阶段,如图1所示:

在这里插入图片描述

图1
  • 发现阶段:即DHCP客户端通过发送DHCP Discover报文来寻找DHCP服务器并的阶段。

  • 提供阶段:即DHCP服务器通过回复DHCP Offer报文来提供IP地址的阶段。

  • 选择阶段:即DHCP客户端通过发送DHCP Request报文来请求某台DHCP服务器提供的IP地址的阶段。

  • 确认阶段:即DHCP服务器通过回复DHCP Ask报文来确认所提供的IP地址的阶段。

详细过程:

1)发现阶段
在发现阶段,DHCP客户端通过发送DHCP Discover报文来寻找DHCP服务器。

由于DHCP服务器的IP地址对于客户端来说是未知的,所以DHCP客户端以广播方式发送DHCP Discover报文。广播信息中包含DHCP客户端的MAC地址和计算机名,以便DHCP服务器确定是哪个客户端所发送的请求。所有收到DHCP Discover报文的DHCP服务器都会发送回应报文,而DHCP客户端据此也可以知道网络中存在的DHCP服务器的位置。

该DHCP Discover包的源IP地址为0.0.0.0,目标IP地址为255.255.255.255。

2)提供阶段
在提供阶段,DHCP服务器通过发送DHCP Offer报文来回复DHCP客户端。

网络中接收到DHCP Discover报文的DHCP服务器,会选择一个合适的IP地址,连同IP地址租约期限和其他配置信息(如网关地址,域名服务器地址等)一同通过DHCP Offer报文发送给DHCP客户端。

DHCP服务器通过地址池保存可供分配的IP地址和其他配置信息。当DHCP服务器接收到DHCP请求报文后,将从IP地址池中取得空闲的IP地址及其他的参数,并对该IP地址做上标记,最后以广播的方式发送回客户端。

该DHCP Offer包的源IP地址为DHCP服务器的IP地址,目标IP地址为255.255.255.255。

3)选择阶段
在选择阶段,DHCP客户端通过发送DHCP Request报文给客户端请求IP地址。

如果有多台DHCP服务器同时向DHCP客户端回应DHCP Offer报文,则DHCP客户端只接受第一个收到的DHCP Offer报文。并以广播方式向这台服务器发送DHCP Request报文。该报文包含了DHCP客户端自己的MAC地址、接收的租约中的IP地址、提供此租约的DHCP服务器地址等,其他DHCP服务器将收回它们为此DHCP客户端所保留的IP地址租约,以给其他DHCP客户端使用。

该DHCP Request包的源IP地址为0.0.0.0,目标IP地址为255.255.255.255。

4)确认阶段
在确认阶段,DHCP服务器通过发送DHCP Ask报文来回应客户端。

收到DHCP客户端发送的DHCP Request请求报文后,DHCP服务器根据DHCP Request报文中携带的MAC地址来查找有没有相应的租约记录。如果有,则发送DHCP Ask报文作为应答,通知DHCP客户端可以使用分配的IP地址。

DHCP客户端收到DHCP服务器返回的DHCP Ask报文确认报文后,会以广播的方式发送ARP报文,探测是否有主机使用服务器分配的IP地址,如果在规定的时间内没有收到回应,客户端才使用此地址。否则,客户端会发送DHCP-Decline报文给DHCP服务器,通知DHCP服务器该地址不可用,并重新申请IP地址。

如果DHCP服务器收到DHCP Request报文后,没有找到相应的租约记录,或者由于某些原因无法正常分配IP地址,则发送DHCP-Nak报文作为应答,通知DHCP客户端无法分配合适IP地址。DHCP客户端需要重新发送DHCP-Discover报文来请求新的IP地址。

该DHCP Ask包的源IP地址为DHCP服务器的UP地址,目标IP地址为255.255.255.255。

5)获取IP地址后的处理过程

  • 客户端重新登录时的IP处理

DHCP客户端获得分配的IP地址后,在每次重登网路时,都只需直接发送DHCP Request报文,DHCP服务器会尝试继续将之前分配的IP地址再发送给客户端,并回应DHCP Ask报文。如果DHCP服务器不能再分配之前那个IP地址(如这个IP已分配给其他客户端使用),那么服务器将会回应客户端DHCP Nack报文给予否认。当客户端收到该报文后,它将再次发送DHCP Discover报文重新请求新的IP地址。

而如果客户端改变了所处的网络,在开机时联系不上DHCP客户端,那么即使租约并未到期,客户端也会将所获得的IP地址释放掉。

  • IP地址的续约

DHCP的租约期限一般为8天,客户端一般在租约达到50%时即四天时,会直接向提供租约的DHCP服务器发送DHCP Request报文,请求更新地址租约。如果DHCP服务器应答则获得租约延期。如果DHCP服务器未应答,则在租约达到87.5%时,客户端会再次发送同样的报文请求续约,如果DHCP仍是未应答,则在租约达100%时,客户端发送DHCP Discover报文进行租约申请,如果DHCP始终未应答,那么此时客户端将会放弃当前IP地址,从而获得一个“169”网段的IP地址。

扩展:
a. DHCP服务器在提供阶段为客户端分配IP地址时,服务器首先需要确认所分配的IP没有被网络上的其他设备所使用。DHCP服务器通过发送ICMP Echo Request(ping)报文对分配的IP进行探测。如果在规定的时间内没有应答,那么服务器就会再次发送ping报文。到达规定的次数后,如果仍没有应答,则所分配的IP地址可用。否则将探测的IP地址记录为冲突地址,并重新选择IP地址进行分配。

b. DHCP服务器为客户端分配的IP地址的优先次序如下:
① 与客户端MAC地址或客户端ID静态绑定的IP地址;
②DHCP服务器记录的曾经分配给客户端的IP地址;
③ 客户端发送的DHCP Offer报文中Option 50字段指定的IP地址;
④ 在DHCP地址池中,顺序查找可供分配的IP地址,最先找到的IP地址;
⑤如果未找到可用的IP地址,则依次查询租约过期、曾经发生过冲突的IP地址,如果找到则进行分配,否则将不予处理。

四、配置DHCP服务

4.1 项目配置准备

(1) 部署DHCP服务之前应该先进行IP地址规划,明确哪些IP地址用于哪些客户端,哪些IP地址用于手工指定的主机上。同时,用于手工配置的IP地址,一定要排除掉保留地址,或者采用地址池之外的可用IP地址,否则会造成IP地址冲突。

(2) DHCP服务器主机与客户端能相互连通。

(3) 在原始的Linux上默认没有安装DHCP,先搭好yum仓库源,再运行“yum install dhcp-server” 安装DHCP服务。Linux系统中的DHCP服务的软件名为dhcp,服务名为dhcpd

(4) 安装完成之后,执行“systemctl enable dhcpd” 命令将服务设置为开机自动运行。

[root@localhost ~]# yum install dhcp-server -y
[root@localhost ~]# systemctl enable dhcpd 

(5) 复制样例文件到主配置文件。

[root@localhost ~]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf

4.2 dhcpd配置文件框架与参数说明

(1)在dhcpd.conf中,每行开头的“#”表示注释,除了注释以外,其他每一行都应以“ ”结尾。

(2)dhcpd.conf配置文件的格式如下:

#全局配置
全局参数/选项;                            #全局生效
#局部配置
声明 {配置选项/局部参数;配置选项/局部参数;                      #局部生效……
}全局配置 可以包含参数或选项,该部分对整个DHCP服务器生效。
局部配置 通常由声明部分来表示,该部分仅对局部生效,比如只对某个IP作用域生效。

(3)基础参数介绍:

配置内容,如图2所示:
在这里插入图片描述

图2
参数说明
option domain-name-servers 192.168.1.1定义DNS服务器IP地址
subnet 192.168.10.0 netmask 255.255.255.0定义客户端的子网掩码
range 192.168.10.11 192.168.10.30定义用于分配的IP地址池
option routers 192.168.10.254定义客户端的网关地址
default-lease-time 600默认超过时间,单位是秒
max-lease-time 7200最大超时时间,单位是秒
host client(主机名)主机名可由自己随意命名
hardware ethernet xxx指定网卡接口的类型与MAC地址
fixed-address 192.168.10.16将某个固定的IP地址分配给指定主机

(4)最后重启dhcpd服务。

[root@localhost network-scripts]# systemctl restart dhcpd           #重启dhcpd服务

4.3 登录客户机验证

(1)由于虚拟机 VMWare 本身默认开启了 DHCP 服务,如果不将它关闭,客户端可能会获取到其他地址池的IP地址。所以我们需要将 VMnet1 和 VMnet8 的 DHCP 服务关闭。

打开 VMWare 虚拟机功能选项卡中的【编辑】,打开【虚拟网络编辑器】,然后在弹出的界面中分别给 VMnet1 和 VMnet8 取消勾选【使用本地 DHCP 服务将 IP 地址分配给虚拟机】,如图3所示:
在这里插入图片描述

图3

(2)本次实验使用的客户机为Windows7。对应地,打开【网络共享中心】,在网卡的属性配置中,给IPv4的网络勾选【自动获得IP地址】,如图4所示:
在这里插入图片描述

图4

(3)等待IP地址获取结束后,打开系统的【命令提示符】,输入“ipconfig /all ‘查看IP地址等信息,如图5所示:
在这里插入图片描述

图5

(4)可以看见该客户机的IP地址是由 DHCP 服务自动获取的,并且属于原先配置的IP地址池范围内。

4.4 客户端IP地址的释放与重新申请

(1)在【命令提示符】中输入ipconfig /release释放已获得的IP地址,再输入ipconfig /renew 进行重新申请IP地址。

\Users\client > ipconfig /release                 #释放已获得的IP地址
\Users\client > ipconfig /renew                  #重新申请IP地址

(2)IP地址的分别变化,如图6、图7所示:
在这里插入图片描述

图6

在这里插入图片描述

图7

4.5 保留特定IP地址

(1)保留IP地址是通过将客户端的MAC地址与需要保留的IP地址进行绑定而实现的。整个配置需要用到host声明和hardwarefixed-address参数。

host声明和hardwarefixed-address参数在上文【基础参数介绍】已有说明。指定网卡的MAC地址需要在对应客户端上查询,在【命令提示符】中输入“ipconfig /all“ 后可获知主机的MAC地址。

(2)在dhcpd.conf配置文件中添加以下配置信息,如图8所示:
在这里插入图片描述

图8
[root@localhost network-scripts]# systemctl restart dhcpd           #重启dhcpd服务

(3)在客户端上验证
在客户端上的【命令提示符】中输入,如图9所示:

\Users\client > ipconfig /release                 #释放已获得的IP地址
\Users\client > ipconfig /renew                  #重新申请IP地址

在这里插入图片描述

图9

(4)可以看见该客户机的IP地址是由DHCP服务自动获取的,并且是DHCP服务器配置里所指定的保留IP地址。


制作成员: 裕新
排版: 裕新
初审: 杨佳佳
复审: 二月二

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

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

相关文章

MATLAB Simulink和S7-1200PLC MOBUSTCP通信

MATLAB Simulink和SMART PLC OPC通信详细配置请查看下面文章链接: MATLAB和西门子SMART PLC OPC通信-CSDN博客文章浏览阅读749次,点赞26次,收藏2次。西门子S7-200SMART PLC OPC软件的下载和使用,请查看下面文章Smart 200PLC PC Access SMART OPC通信_基于pc access smart的…

asp.net 学校资源信息管理系统VS开发sqlserver数据库web结构c#编程计算机网页项目

一、源码特点 asp.net 学校资源信息管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 asp.net学校资源管理系统 二、功能介绍 本系统使用Microsoft Visual Studio 2019为开发工具,SQL …

【云服务器选型指南:五大关键】

云服务器选型指南 写在前面 在云计算时代,云服务器(Elastic Compute Service, ECS)凭借其简单高效、安全可靠、处理能力可弹性伸缩等特点,成为构建稳定、安全应用的首选。相比物理服务器,云服务器的管理方式更为简单…

23111706[含文档+PPT+源码等]计算机毕业设计SSM框架网上书城全套微信支付电商购物

文章目录 **软件开发环境及开发工具:****项目功能介绍:****论文截图:****实现:****代码片段:** 编程技术交流、源码分享、模板分享、网课教程 🐧裙:776871563 软件开发环境及开发工具&#xff…

SpringMVC 进阶

SpringMVC 进阶 一、拦截器 SpringMVC 中 Interceptor 拦截器的主要作⽤是拦截⽤⼾的请求并进⾏相应的处理。⽐如通过它来进⾏权限验证,或者是来判断⽤⼾是否登陆等操作。对于 SpringMVC 拦截器的定义⽅式有两种: 实现接⼝:org.springfram…

【科技素养】蓝桥杯STEMA 科技素养组模拟练习试卷F

1、常见的加密算法可以分为对称加密算法和非对称加密算法,以下关于它们的描述正确的是 A、AES是一种常见的非对称加密算法 B、凯撒密码是一种非对称加密 C、非对称加密算法的解密使用的秘钥与加密不同 D、对称加密算法无法被暴力破解 答案:C 2、12根…

python django 小程序点餐源码

开发工具: PyCharm mysql5.7,微信开发者工具 技术说明: python django html 微信小程序 代码注释齐全,没有多余代码,适合学习(毕设),二次开发,包含论文技术相关文档。 功能介绍&#xff1a…

【TEC100TAI-KIT】青翼科技基于复微青龙JFMQL100TAI的全国产化智能异构计算平台

板卡概述 TEC100TAI-KIT是我司自主研制的一款基于上海复旦微电子复微青龙100TAI的全国产智能异构计算平台开发套件,该套件包含1个复微青龙100TAI核心板和1个PCIE规格的扩展底板。 该套件的核心板集成了100TAI的最小系统,包含一颗JFMQL100TAI900片上系统…

机器学习:十大算法快速回顾

一、说明 对于机器学习的是个经典算法,本篇将展示一个回顾,注意,本篇不是具体原理信息介绍,没有代码,但是对于初学者是一个有益的导读。 二. 线性回归 2.1 算法描述 有没有想过数据奇才如何预测未来?输入线…

今天遇到Windows 10里安装的Ubuntu(WSL)的缺点

随着技术的发展,越来越多开发者转向使用 Windows Subsystem for Linux(WSL)在 Windows 10 上进行开发,也就是说不用虚拟机,不用准备多一台电脑,只需要在Windows 10/11 里安装 WSL 就能体验 Linux 系统。因此…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(五)

公共字段自动填充 1.1 问题分析1.2 实现思路1.3 代码开发1.3.1 步骤一1.3.2 步骤二1.3.3 步骤三 1.4 功能测试 1.1 问题分析 在前面我们已经完成了后台系统的员工管理功能和菜品分类功能的开发,在新增员工或者新增菜品分类时需要设置创建时间、创建人、修改时间、修…

CF1899C Yarik and Array(DP,贪心)

题目链接 题目 A subarray is a continuous part of array. Yarik recently found an array a of n elements and became very interested in finding the maximum sum of a non empty subarray. However, Yarik doesn’t like consecutive integers with the same parity, s…