Linux运维-DHCP服务器

DHCP服务器的配置与管理

项目场景

学校各部门共有180台电脑,除了计算机学院的教师会配置电脑的网络连接,其他部门的老师和工作人员均不会,为了提高网络的管理效率,技术人员决定配置一台DHCP服务器,来提供动态的IP地址分配,不会配置网络连接的人员选择自动获取IP即可。

DHCP基础知识

(1)什么是DHCP?
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作。主要是用来给网络客户机分配动态IP地址、子网掩码、网关地址、DNS服务器地址。

(2)DHCP的主要功能
主要有两个功能:
①给内部网络或网络服务供应商自动分配IP地址。
②给用户或者内部网络管理员作为对所有计算机作中央管理的手段。

(3)DHCP的优点
1)DHCP避免了由于需要手动在每个计算机上输入值而引起的配置错误。DHCP还有助于防止由于在网络上配置新的计算机时重新使用以前已分配的IP地址而引起的地址冲突。

2)使用DHCP服务器可以大大降低用于配置和重新配置网上计算机的时间。可以配置服务器,使其在分配地址租约时提供全部的其他配置值,如:网关地址、DNS服务器地址等。

3)DHCP租约续订过程中,有助于确保客户端计算机配置需要经常更新的情况,如:使用移动设备频繁封盖位置的用户。

(4)DHCP常用的术语
①DHCP服务器:提供DHCP服务的计算机。
②DHCP客户端:启用DHCP设置的计算机,就是需要DHCP服务的设备。
③作用域:一个完整连续的可用IP地址范围,DHCP服务主要就是通过作用域来管理网络分布,IP地址分配及其它相关配置参数。
④超级作用域:管理级的作用域集合,用于支持同一物理网络上的多个逻辑IP子网,超级作用域包含子作用域的列表,对子作用域进行统一管理。
⑤排除范围:排除范围是作用域内从DHCP服务中排除的有限IP地址序列,排除范围确保在这些范围中的任何地址都不是由网络上的服务器提供给DHCP客户机,(就相当于保留地址,比如网络中网络打印机地址需要固定,就不能把这个地址再给客户机)
⑥地址池:在定义DHCP作用域并应用排除范围之后,剩余的地址在作用域内形成可用地址池,就是作用域中可用IP的范围,这时的地址才可以由DHCP服务器动态分配给DHCP客户端使用。
⑦租约:客户计算机可以使用动态分配IP地址的时间,这个时间可以由DHCP服务器设置。当一台客户机发出租约后,此租约被看作是活动的,在租约终止前,客户机可以向DHCP服务器请求更新其租约。当租约到期或被服务器删除后,就变动不活动的了,租约的持续时间决定了租约什么时候终止及客户机隔多久向DHCP服务器更新其租约 。
⑧预约:创建从DHCP服务器客户机的永久地址租约指定,预约可以保证子网上的特定设备总是使用相同的IP地址(如网络打印机的IP,DHS服务器的等)
⑨选项类型:当DHCP服务器向DHCP客户机提供租约服务时可以指定的其它客户机的配置参数,典型的这些选项类型由各个作用域启用和配置。大多数选项在RFC21232中预定了,如需要,可以在DHCP管理器定义并添加自定义选项类型。
⑩选项类别:DHCP服务器用于进一步提供给客户机的选项类型的方法,选项类别可以在用户的DHCP服务器上配置以提供特定的客户机支持。

(5)DCHP的工作流程
客户机首次获取IP租约,需要经过4个阶段与DHCP服务器建立联系。

  1. IP租用请求:客户机通过UDP端口67广播一个DHCPDISCOVER信息包,向网络上的任意一个DHCP服务器请求提供IP租约。
  2. IP租用提供:网络上所有的DHCP服务器均会收到此信息包,每台DHCP服务器通过UDP端口68给客户机回应一个DHCPOFFER广播包,提供一个IP地址。
  3. IP租用选择:客户机收到多台DHCP服务器的OFFER后,会选择第一个收到的OFFER包,并向网络广播一个DHCPREQUEST消息包,表明自己已接受了一个DHCP服务器提供的IP地址。该广播包中包含所接受的IP地址和服务器的IP地址。
  4. IP租用确认:被客户机选择的DHCP服务器在收到REQUEST广播后,会广播给客户机一个DHCPACK消息包,表明接受客户机的选择,并将这一IP地址的合法租用以及其他配置信息放入广播包发给客户机。客户机收到ACK包后配置TCP/IP,租用过程完成,可以在网络中通信。

(6)DHCP客户的IP租约更新(续约):
取得IP租约后,客户机必须定期更新租约,否则租约到期就不能继续使用IP地址。按照默认规定,每当租用时间超过租约的50%和87.5%时,客户机就必须发出REQUEST信息包,向服务器请求更新租约。

(7)DHCP中继代理(dhcprelay):当DHCP服务器的IP地址要与分配的IP地址不在一个子网时,需要一个支持DHCP请求转发的硬件路由器,如果没有,就需要在DHCP服务器的子网上架设DHCP中继代理。

(6)DHCP分配地址的方式
①自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。

②动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。

③手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。

三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。

与DHCP相关的文件

  • DHCP守护进程: /usr/sbin/dhcpd
  • DHCP中继代理守护进程:/usr/sbin/dhcprelay
  • DHCP服务单元配置文件:/usr/lib/systemd/system/dhcpd.service
  • 主配置文件(IPv4):/etc/dhcp/dhcpd.conf
  • DHCP租约文件(IPv4):/var/lib/dhcpd/dhcpd.leases
  • 主配置文件模板(IPv4):/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example

DHCP的主配置文件

DCHP安装结束后, DHCP端口监听程序 dhcpd配置文件是/etc/dhcp目录中的名为dhcpd.conf的文件。dhcpd.conf文件通常包括三部分:parameters、declarations 、option。
①DHCP配置文件中的parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户。主要内容如下:

  • ddns-update-style
  • 说明:配置DHCP-DNS 互动更新模式。
  • default-lease-time
  • 说明:指定默认地址租赁时间的长度,单位是秒。
  • max-lease-time
  • 说明:指定最大租赁时间长度,单位是秒。
  • hardware
  • 说明:指定网卡接口类型和MAC地址。
  • server-name
  • 说明:通知DHCP客户服务器名称。
  • get-lease-hostnames flag
  • 说明:检查客户端使用的IP地址。
  • fixed-address ip
  • 说明:分配给客户端一个固定的地址。
  • authritative
  • 说明:拒绝不正确的IP地址的要求。

② DHCP配置文件中的declarations (声明):用来描述网络布局、提供客户的IP地址等。主要内容如下:

  • shared-network
  • 说明:用来告知DHCP服务器某些IP子网其实是共享同一个物理网络,在此声明可以使用多个subnet声明多个逻辑子网络。
  • subnet
  • 说明:描述一个IP地址是否属于该子网。
  • range 起始IP 终止IP
  • 说明:提供动态分配IP 的地址范围。
  • host 主机名称
  • 说明:为特定的DHCP客户机提供IP网络参数。
  • group
  • 说明:为一组参数提供声明。
  • allow unknown-clients ;deny unknown-client
  • 说明:是否动态分配IP给未知的使用者。
  • allow bootp;deny bootp
  • 说明:是否响应激活查询。
  • allow booting;deny booting
  • 说明:是否响应使用者查询。
  • filename
  • 说明:开始启动文件的名称,应用于无盘工作站。
  • next-server
  • 说明:设置服务器从引导文件中装如主机名,应用于无盘工作站。

③ DHCP配置文件中的option(选项):用来配置DHCP可选参数,全部用option关键字作为开始,主要内容如下:

  • subnet-mask
  • 说明:为客户端设定子网掩码。
  • domain-name
  • 说明:为客户端指明DNS名字。
  • domain-name-servers
  • 说明:为客户端指明DNS服务器的IP地址。
  • host-name
  • 说明:为客户端指定主机名称。
  • routers
  • 说明:为客户端设定默认网关。
  • broadcast-address
  • 说明:为客户端设定广播地址。
  • ntp-server
    说明:为客户端设定网络时间服务器的IP地址。
  • time-offset
  • 说明:为客户端设定与格林威治时间的偏移时间,单位是秒。

默认dhcpd.conf配置文件中是没有配置内容的,其中有3行说明文字,如图所示。第1行告诉我们这个是DHCP服务的配置文件,第2行告诉我们可以参照样例文件/usr/share/doc/dhcp*/dhcpd.conf.example来配置。也可以将样例文件直接复制过来进行修改。第3行告诉我们可以使用man命令查看dhcpd.conf的帮助手册。

[root@localhost dhcp-common-4.2.5]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#

配置实施

实施流程

1.安装DHCP服务器
2.DHCP服务器基础配置
3.配置Linux客户机DHCP服务器并测试
4.配置Windows客户机DHCP服务器并测试

DHCP服务器配置流程

(1)安装DCHP服务程序
查看可安装的DHCP软件包信息。
yum info dhcp
在这里插入图片描述

安装DHCP软件包:
yum -y install dhcp
在这里插入图片描述

查看系统有没有安装DHCP:rpm -ql dhcp
在这里插入图片描述

查看安装状况: rpm -qa|grep dhcp
在这里插入图片描述

(2)编辑主配置文件dhcpd.conf ,指定IP作用域。
配置实例

配置用于在局域网中提供DHCP服务,要求实现如下功能:

  1. 默认租约时间为18000秒;最大租约时间为36000秒。
  2. 局域网内所有主机的域名为 lhg.com。
  3. 客户机使用的DNS服务器的IP地址是192.168.88.1和192.168.88.251。
  4. 在子网192.168.88.0/24中用于动态分配的IP地址范围从192.168.0.100~192.168.88.199(地址池)。
  5. 所有分配的IP地址的子网掩码是255.255.255.0,默认网关地址是192.168.88.1。
  6. 在子网192.168.0.0/24中有名为STU的服务器主机,需要固定分配IP地址为192.168.88.250,该服务器网络接口的MAC地址是00:A0:78:8E:9E:AA,STU主机的其他配置内容那个使用所在子网的默认配置。
  7. 在子网192.168.88.0/24中有一台提供TFTP服务的服务器192.168.88.252,且PXE的启动引导器为pxelinux.0。

什么是PXE?
PXE的全程是preboot execute environment,光从英文名看不出什么来。它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准,具体的标准说明可以在http://www.pix.net/software/pxeboot/archive/pxespec.pdf找到。
PXE有什么用?
前面已经提到,PXE是用来通过网络引导系统的,但是为什么要这么做呢?可以参考下面的场景:
你现在有1台电脑需要装系统,那么很简单,你拿上一个U盘安装盘插在这台电脑上,然后从U盘启动,之后就可以手动安装系统了;但如果你现在有100台电脑,如果你在拿着一个U盘安装盘一台台安装,那效率肯定是太低了,这个时候PXE就派上用场了。
某公司对信息安全要求比较高,需要使用无盘系统(系统不在本地电脑上,而在公司特定的服务器上),这个时候也需要使用PXE。
你想要一台远程的电脑运行你手上特定的系统,这个时候你就可以在本地布置一个你手上的系统,然后通过PXE启动你本地的系统(这个可能需要额外的支持,比如BMC,因为要远程)。

那要使用PXE呢,就需要有两个前提
1、网卡支持PXE(现在网卡一般情况都支持)
2、BIOS开启PXE(也就是你的问题)
(为什么就能给我安装很多操作系统)
第一步:PXE-client发送请求去找dhcp服务器获取地址
第二步:DHCP应答请求并回应分配的IP地址,pxelinux启动程序(TFTP)的位置,以及配置文件的位置
第三步:PXE-client请求下载启动文件PXE客户端收到回应后,向TFTP服务器请求下载所需的启动系统安装文件
第四步:TFTP服务器响应请求并传送文件当TFTP服务器收到请求后,服务器会响应请求并应答请求,之后传送所需的文件给客户端
第五步:PXE-client请求下载自动应答文件PXE客户端通过文件成引导linux安装后,接着读取文件中指定的自动应答文件ks.cfg,然后根据文件位置请求下载镜像
第六步:客户端安装系统有了镜像之后就能安装操作系统了

dhcpd.conf 是DHCP服务的配置文件,DHCP服务所有参数都是通过修改dhcpd.conf 文件来实现,安装后dhcpd.conf 是没有做任何配置的,将/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example 复制为/etc/dhcp/dhcpd.conf 文件进行配置。
前述实例的dhcpd.conf配置文件:

#定义所支持的DNS动态更新类型(必选)
ddns-update-style none;
#忽略客户机更新DNS记录
ignore client-updates;
#默认租约时间为18000秒
Default-lease-time  18000;
#最大租约时间为36000秒
Max-lease-time  36000;#定义作用域(IP子网)
subnet 192.168.88.0 netmask 255.255.255.0  {
#给客户端分配地址的范围range 192.168.88.100   192.168.88.199;
#为客户端指定网关option routers 192.168.88.1;
#为客户端指定子网掩码option subnet-mask 255.255.255.0;
#为客户端指定DNS域名option domain-name "lhg.com";
#为客户端指定DNS服务器的IP地址option domain-name-servers 192.168.88.1, 192.168.88.251;
#为客户端设置网络时间服务器的IP地址option ntp-servers   192.168.88.1;
# 备注名称,可以自行定义。host  STU     {#静态绑定mac和iphardware ethernet  00:A0:78:8E:9E:AA;#固定分配的地址fixed-address 192.168.88.250;        }
#远程启动服务器地址next-server 192.168.88.252;
#获取远程启动服务器地址后下载pxelinux.0这个文件filename "pxelinux.0";
}

注意要dhcp服务器的网段要与Linux服务器网段一致,否则无法启动,写配置文件的时候注意修改IP地址

DHCP配置检查与服务启动

dhcpd –t                #检查配置文件语法的正确性
systemctl enable dhcpd             #设置开机启动
systemctl start dhcpd                #启动dhcp服务
systemctl status dhcpd              #查看DHCP服务状态

在这里插入图片描述

在这里插入图片描述

底下那个红色的是因为虚拟机中的虚拟网卡virbr0,在CentOS 7的安装过程中如果有选择相关虚拟化的的服务安装系统后,启动网卡时会发现有一个以网桥连接的私网地址的virbr0网卡,这个是因为在虚拟化中有使用到libvirtd服务生成的,如果不需要可以关闭后去掉。
直接将libvirtd服务卸载,这样也就不会生成虚拟网卡,更是一劳永逸,待需要使用时,再安装该服务即可。操作命令如下:
yum remove libvirt-libs.x86_64
(非必须操作)

(3)配置Linux客户机DHCP服务器并测试

1、通过“网络连接”继续配置。
进入桌面系统后,在左上角点击“应用程序”→“系统工具”→“设置”单击后进入“设置”对话框窗口,找到网络(左边往下划拉鼠标)。进入对话框后选择“有线连接”→点“+”→,名称输入“System eth0”→“ipv4设置”选项卡,在“ipv4设置”选项卡上,在“方法”下列列表框中选择“自动(DHCP)”。
在这里插入图片描述

2、也可使用nmtui测试

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

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

相关文章

gin源码实战 day1

gin框架源码实战day1 Radix树 这个路由信息: r : gin.Default()r.GET("/", func1) r.GET("/search/", func2) r.GET("/support/", func3) r.GET("/blog/", func4) r.GET("/blog/:post/", func5) r.GET("/…

5G端到端案例三:锚点基站侧5G连接与VOLTE专载建立流程冲突导致CSFB回落问题

1. 问题描述: NSA组网场景下,语音业务仍使用4G VoLTE方案,在拉网测试中,发现存在较多流程交叉导致的VOLTE接入失败的问题。 流程冲突时的空口信令表现为,终端添加SCG流程与语音专载流程冲突时,专有承载建…

重点媒体如何投稿?考核稿件投稿指南

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 机构组织,国企央企都需要定期将相关新闻投递到央媒,官媒,或者地方重点媒体中,那么如何进行投稿了,今天就与大家分享下。 央媒投…

vue-nextTick(nextTick---入门到离职系列)

官方定义 在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法&#xff0c;获取更新后的 DOM。 个人理解 假设我们更改了某个 dom 元素内部的文本&#xff0c;而这时候我们想直接打印这个更改之后的文本是需要 dom 更新之后才会实现的。 小案例 <tem…

聊一聊EGO-Planner膨胀系数的大小对无人机避障飞行的影响

EGO-Planner简介 EGO-Planner作为业界知名的无人机轨迹规划算法&#xff0c;其优势在于能够在复杂环境中快速规划出安全、平滑且动态可行的飞行轨迹。在这个算法中&#xff0c;膨胀系数发挥着关键作用。它通过扩大障碍物的感知范围&#xff0c;提供额外的安全边距&#xff0c;…

NOIP2018-J-4-对称二叉树的题解

原题描述&#xff1a; 题目描述 时间&#xff1a;1s 空间&#xff1a;256M 一棵有点权的有根树如果满足以下条件&#xff0c;则被轩轩称为对称二叉树&#xff1a; 1. 二叉树&#xff1b; 2. 将这棵树所有节点的左右子树交换&#xff0c;新树和原树对应位置的结构相同且…

【深度学习】LoRA: Low-Rank Adaptation of Large Language Models,论文解读

文章&#xff1a; https://arxiv.org/abs/2106.09685 文章目录 摘要介绍LoRA的特点什么是低秩适应矩阵&#xff1f;什么是适应阶段&#xff1f;低秩适应矩阵被注入到预训练模型的每一层Transformer结构中&#xff0c;这一步是如何做到的&#xff1f; 摘要 自然语言处理的一个重…

计算机网络-网络互联与互联网(一)

1.常用网络互联设备&#xff1a; 1层物理层&#xff1a;中继器、集线器2层链路层&#xff1a;网桥、交换机3层网络层&#xff1a;路由器、三层交换机4层以上高层&#xff1a;网关 2.网络互联设备&#xff1a; 中继器Repeater、集线器Hub&#xff08;又叫多端口中继器&#xf…

图论(算法竞赛、蓝桥杯)--Dijkstra算法最短路

1、B站视频链接&#xff1a;D02 最短路 Dijkstra 算法_哔哩哔哩_bilibili 题目链接&#xff1a;【模板】单源最短路径&#xff08;弱化版&#xff09; - 洛谷 #include <bits/stdc.h> using namespace std; #define INF 2147483647 int n,m,s,a,b,c; const int N100010…

Redis的主从复制和哨兵模式

Redis的主从复制和哨兵模式 Redis集群搭建&#xff08;一主二从&#xff09;replication 主从复制配置文件 redis.confRedis主从复制工作原理全量复制增量复制redis主从复制策略 搭建集群 &#xff08;主从复制引入&#xff09; 哨兵模式概念哨兵配置文件 sentinel.conf哨兵配置…

ArcgisForJS如何使用ArcGIS Server发布的切片地图服务?

文章目录 0.引言1.准备海量地理数据2.ArcGIS Server发布切片地图服务3.ArcgisForJS使用ArcGIS Server发布的切片地图服务 0.引言 ArcGIS Server是一个由Esri开发的地理信息系统&#xff08;GIS&#xff09;服务器软件&#xff0c;它提供了许多功能&#xff0c;包括发布切片地图…

java面试设计模式篇

面试专题-设计模式 前言 在平时的开发中&#xff0c;涉及到设计模式的有两块内容&#xff0c;第一个是我们平时使用的框架&#xff08;比如spring、mybatis等&#xff09;&#xff0c;第二个是我们自己开发业务使用的设计模式。 面试官一般比较关心的是你在开发过程中&#…

挑战杯 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度&#xff0c;召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…

Oracle迁移到mysql-导出mysql所有索引和主键

导出建库表索引等&#xff1a; [rootlnpg ~]# mysqldump -ugistar -pxxx -h192.168.207.143 --no-data -d lndb > lndb20230223-1.sql 只导出索引&#xff1a;参考&#xff1a;MYSQL导出现有库中的索引脚本_mysql 导出数据库所有表的主键和索引-CSDN博客 -- MYSQL导出现有…

TCP Keepalive 和 HTTP Keep-Alive

HTTP 的Keep-Alive 在 HTTP 1.0 中默认是关闭的&#xff0c;如果浏览器要开启 Keep-Alive&#xff0c;它必须在请求的包头中添加&#xff1a; Connection: Keep-Alive然后当服务器收到请求&#xff0c;作出回应的时候&#xff0c;它也添加一个头在响应中&#xff1a; Connec…

相信未来:技术的进步意味着重构

十年以来&#xff0c;呼声最高&#xff1a;AI、BigData、Cloud Service。 以本人看来&#xff0c;仅AI技术的进步和应用&#xff0c;整个软件行业&#xff0c;所有软件将被重构。 提醒&#xff1a;非大学毕业、非计算机及相关专业&#xff0c;在IT这个行业&#xff0c;特别是…

主流开发语言和开发环境:探索编程世界的基础

在当今这个快速发展的技术时代&#xff0c;软件开发已经成为推动创新的重要力量。无论是构建下一代应用、开发先进的算法还是创建复杂的系统&#xff0c;选择合适的编程语言和开发环境都是至关重要的。在本文中&#xff0c;我们将探讨当前流行的几种主流开发语言以及它们常用的…

MATLAB使用绘图plot制作动态GIF

文章目录 1 前言2 DemoDemo 1 - 不使用函数Demo 2 - 使用函数 1 前言 在PPT展示或者博客创作中&#xff0c;有时需要插入动态图如GIF&#xff0c;来演示算法效果或者结果。在MATLAB中&#xff0c;可以通过一些代码&#xff0c;将绘图plot转化为动态的GIF。 其大致方法为&…

【MySQL】如何理解事务

一、引出事务 假设我们有一张用户表&#xff0c;如图所示&#xff1a; 我们现在的需求是&#xff1a;小红向小明转账100块 那么我们可以执行如下指令&#xff1a; update user set salary salary-100 where id1;//第一条语句小红转一百 update user set salary salary100 …

学习使用在mysql中查询指定字段字符串包含多个字符串的方法

学习使用在mysql中查询指定字段字符串包含多个字符串的方法 使用LIKE关键字使用REGEXP关键字使用FIND_IN_SET函数使用INSTR函数和AND关键字 使用LIKE关键字 SELECT * FROM table_name WHERE column_name LIKE %string1% AND column_name LIKE %string2%;使用LIKE关键字&#x…