当前位置: 首页 > news >正文

dhcpd服务器的配置与管理(超详细!!!)

前提条件:

(1)虚拟机能够联网(如果nat模式不能联网的看另一期)

CentOS7 NAT模式不能联网-CSDN博客

(2)系统是Centos8,因为下载的dhcp-server软件包版本和Centos7不匹配,如果你能成功下载 dhcp-server就行

阿里云镜像: https://mirrors.aliyun.com/centos/

这个版本是最完整版的,具体想要什么版本根据自己的需求

一、了解DHCP

        在企业网络中,一般会涉及主机等终端设备进行资源互访的情况,因此每个终端都需要配置IP地址等网络参数才能接入网络。在小型网络中,终端数量很少,可以手动配置IP地址,但是在中大型网络中,终端数量很多,手动配置 IP 地址工作量大,而且配置时容易导致IP地址冲突等错误,DHCP 可以为网络终端动态分配 IP 地址,解决了手工配置IP地址时的各种问题。

        DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)是一种简化主机ip地址分配管理的TCP/IP标准协议,是通过服务器集中管理网络上使用的IP地址及其相关配置信息,以减少管理 IP 地址配置的复杂性。Linux 提供了DHCP服务,它允许服务器履行DHCP的职责,并且通过网络自动配置启用了 DHCP功能的客户端。

        在使用DHCP时,网络中至少有一台拥有DHCP服务的Server/PC,客户端需要设置成自动获得IP地址。客户端在向服务器请求一个IP地址时,如果DHCP 服务器的IP地址数据中能提供IP,则登记IP信息并分配这个地址给客户端使用,顺带相关的配置选项。

二、DHCP工作过程

        当DHCP客户端第一次启动时,它通过一系列的步骤获得 TCP/IP 配置信息和 IP 地址的租期。租期是指 DHCP 客户端从 DHCP 服务器获得完整的 TCP/IP配置后对该TCP/IP配置的保留使用时间。客户端从服务器上获得完整的TCP/IP配置要经过4个过程。

        (1)发现阶段:由于客户端并不知道DHCP服务器的地址,因此会用0.0.0.0作为源地址,255.255.255.255作为目标地址,向网络上广播一个 DHCP Discover 消息报文,报文中包含了客户端的 MAC地址和NetBIOS名字。与客户端在同一物理网段上的每一台安装了TCP/IP协议的计算机都会收到该广播报文,但只有DHCP服务器才会做出响应。

        (2)提供阶段:网络中的DHCP服务器收到来自客户端的DHCP Discover报文后,会从IP地址池中挑选一个尚未出租的 IP 地址预分配给 DHCP客户端,并且在网络上广播一个DHCP Offer 响应报文,该报文包含了客户端的MAC地址、服务器所提供的IP地址、子网掩码、租用期限,以及DHCP 服务器本身的 IP 地址。若网络中有多台DHCP服务器,则这些DHCP 服务器都会广播各自的DHCP Offer报文。

        (3)请求阶段:如果客户端收到网络上多台DHCP服务器的响应报文,则DHCP客户端只接收第一个收到的 DHCP Offer 提供的信息,并向网络发送一个DHCP Request广播报文,以此告诉所有 DHCP 服务器它将选择哪一台 DHCP服务器提供的IP地址。

        (4)确认阶段:当DHCP 服务器收到DHCP 客户端回答的 DHCP Request广播报文之后,查看报文中服务方的IP地址,确认自己是否被选为服务方。若未选中则撤销预分配的IP地址等信息,若被选择则发送一个 DHCP ACK报文,该报文包括一个租用期限和客户所请求的其他配置信息。客户端收到 DHCP ACK报文后,配置它的TCP/IP属性并加入网络中。

       注:客户端发送DHCP Discover后,如果没有 DHCP 服务器响应客户端的请求,客户端会随机使用169.254.0.0/16 网段中的一个 IP 地址临时配置本机地址。此后,每隔5分钟发送一个DHCP Discover消息报文,尝试与DHCP服务器进行通信,若联系成功则使用由 DHCP 服务器提供的 IP 地址来更新自己的配置。

三、安装与启动DHCP服务

        例题:公司有台 Linux服务器采用静态IP地址配置,现要对同网段的IT部进行IP地址分配,请按以下需求进行DHCP服务器搭配,保障IT部所有PC都可以正常获得正确的网络IP信息。
        网段为192.168.159.135/24,DHCP 服务器,网关为192.168.159.1,分配的地址段为192.168. 159.50~192.168.159.60,租约时间默认;Centos8(克隆) PC1模拟自动获取

配置步骤如下:
按需求进行环境准备和信息采集,如表所示。

主机操作系统IP地址MAC地址
ServerCentos8192.168.159.13500:0c:29:c0:7f:2f
PC1Centos8(克隆)自动获取00:0c:29:a3:8e:a5
(1)先克隆一个Centos系统 

注意 将克隆的Centos的虚拟网络编辑器中的“使用本地DHCP服务将IP地址分配给虚拟机”这个选项关闭!!!

(2)开启Server虚拟机 ,首先更新yum源
cd /etc/yum.repos.d

备份原来的源

mkdir bak

 开始更新yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

建立新的元数据缓存 

yum makecache

 

(3) 安装DHCP服务
yum install dhcp-server

  (4)配置dhcp主配置文件
vi /etc/dhcp/dhcpd.conf

subnet 192.168.159.0 netmask 255.255.255.0{

range dynamic-bootp 192.168.159.50 192.168.159.60;

option routers 192.168.159.1;

}

子网ip和掩码都可以查看 

 (5) 检查配置

dhcpd -t

(6)Server 设置静态ip地址 
cd /etc/sysconfig/network-scripts/

 vi ifcfg-ens33 

修改内容有:

BOOTPROTO=static  //改为静态的

ONBOOT=yes            //开机时自动启动
IPADDR=192.168.159.135  //IP地址
NETMASK=255.255.255.0 //子网掩码
GATEWAY=192.168.159.1 //网关

 

 重载配置信息 

systemctl restart NetworkManager.service 

重启网络服务 

nmcli connection up ens33
(7)使用ifconfig查看 DHCP Server的ip

 (8)重启dhcpd服务
systemctl restart dhcpd
(9) 开启客户端虚拟机,在PC1客户端(克隆的Centos系统)配置网络配置文件
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33

BOOTPROTO改为dhcpONBOOT改为yes 

 

BOOTPROTO:指定引导协议。no表示不使用引导协议(如DHCP或BOOTP)来获取IP地址。

ONBOOT:指定是否在系统启动时自动启动网络接口。no表示在系统启动时不会自动启动这个接口。

修改后要重启network

systemctl restart network
(10)在PC1客户端设置动态获取IP地址 
nmcli connection modify ens33 ipv4.method auto
nmcli connection up ens33

使用 ifconfig 查看PC1客户端(克隆的Centos系统)的ip

结果已经成功分配ip地址

如果你有多个克隆的虚拟机自动获取ip那么结果如下:

相关文章:

dhcpd服务器的配置与管理(超详细!!!)

前提条件: (1)虚拟机能够联网(如果nat模式不能联网的看另一期) CentOS7 NAT模式不能联网-CSDN博客 (2)系统是Centos8,因为下载的dhcp-server软件包版本和Centos7不匹配,如果你能成…...

Qml之基本控件

一.Qml常用控件 1.Text(显示普通文本和富文本) 1.1显示普通文本: Window { visible: true width: 320 height: 240 title: qsTr("Hello World") Text { text: "Hello World!" font.family: "Helvetica" font.pointSize: 24 color:…...

【Java从入门到放弃 之 Stream API】

Java Stream API Stream API行为参数化传递代码Lambda表达式Lambda 表达式的语法方法引用 Lambda 表达式的实际应用集合操作并发编程 Lambda 表达式的注意事项总结 Stream API Java8提供了一个全新的API - Stream。引入这个Stream的主要目的,一个是可以支持更好的并…...

Ruby On Rails 笔记1——Rails 入门

突然想跟着官方文档把Ruby On Rails过一遍,把一些有用的记下来就可以一直看了,do它! https://guides.rubyonrails.org/v7.2/ 注:官网是英文文档,我自己翻译了一下,不确保完全准确,只供自己学习开发使用。 …...

高效开发 Python Web 应用:FastAPI 数据验证与响应体设计

高效开发 Python Web 应用:FastAPI 数据验证与响应体设计 目录 🧑‍💻 FastAPI 的数据验证系统与 Pydantic 模型📦 响应体与模型:定义响应数据的最佳实践🔄 响应模型与查询参数的结合:增强灵活…...

基于“开源 2+1 链动 O2O 商城小程序”的门店拉新策略与流程设计

摘要:在数字化商业浪潮席卷之下,实体门店面临着激烈的市场竞争,如何高效拉新成为关乎门店生存与发展的关键问题。本文聚焦于“开源 21 链动 O2O 商城小程序”,深入探讨结合多种手段的门店拉新策略及详细流程设计。通过剖析到店扫码…...

33.5 remote实战项目之设计prometheus数据源的结构

本节重点介绍 : 项目要求 通过remote read读取prometheus中的数据通过remote write向prometheus中写入数据 准备工作 新建项目 prome_remote_read_write设计prometheus 数据源的结构初始化 项目要求 通过remote read读取prometheus中的数据通过remote write向prometheus中写…...

微服务springboot详细解析(一)

目录 1.Spring概述 2.什么是SpringBoot? 3.第一个SpringBoot程序 4.配置参数优先级 5.springboot自动装配原理 6.SpringBootApplication&SpringApplication.run 7.ConfigurationProperties(prefix "") 8.Validated数据校验 29、聊聊该如何写一…...

深入探讨Go语言中的双向链表

简介 双向链表是链表家族中的一种高级结构,每个节点不仅指向下一个节点,还指向上一个节点。今天,我们将学习如何在Go语言中实现和操作这种灵活的数据结构。 双向链表的优缺点 优点: 可以从任一方向遍历链表,灵活性高…...

Fastapi + vue3 自动化测试平台---移动端App自动化篇

概述 好久写文章了,专注于新框架,新UI界面的实践,废话不多说,开搞 技术架构 后端: Fastapi Airtest multiprocessing 前端: 基于 Vue3、Vite、TypeScript、Pinia、Pinia持久化插件、Unocss 和 Elemen…...

ElasticSearch easy-es 聚合函数 group by 混合写法求Top N 词云 分词

1.将用户访问记录表数据同步到ES&#xff0c;并且分词&#xff0c;获取用户访问最多前十条词语。 Elasticsearch、Easy-es 快速入门 SearchAfterPage分页 若依前后端分离 Ruoyi-Vue SpringBoot 使用结巴分词器 <!-- 分词器--><dependency><groupId>com.hua…...

在 ASP.NET C# Web API 中实现 Serilog 以增强请求和响应的日志记录

介绍 日志记录是任何 Web 应用程序的关键方面。它有助于调试、性能监控和了解用户交互。在 ASP.NET C# 中&#xff0c;集成 Serilog 作为记录请求和响应&#xff08;包括传入和传出的数据&#xff09;的中间件可以显著提高 Web API 的可观察性和故障排除能力。 在过去的几周里&…...

2024年顶级小型语言模型前15名

本文&#xff0c;我们将深入了解2024年备受瞩目的十五款小型语言模型&#xff08;SLMs&#xff09;&#xff0c;它们分别是Llama 3.1 8B、Gemma2、Qwen 2、Mistral Nemo、Phi-3.5等。这些SLMs以其精巧的体积和高效率著称&#xff0c;它们不需要依赖庞大的服务器资源&#xff0c…...

精通 Python 网络安全(一)

前言 最近&#xff0c;Python 开始受到越来越多的关注&#xff0c;最新的 Python 更新添加了许多可用于执行关键任务的包。我们的主要目标是帮助您利用 Python 包来检测和利用漏洞&#xff0c;并解决网络挑战。 本书将首先带您了解与网络和安全相关的 Python 脚本和库。然后&…...

【python自动化二】pytest集成allure生成测试报告

pytest本身不会直接生成测试报告&#xff0c;而allure是一种生成测试报告的公共插件&#xff0c;可与多种测试框架配合生成测试报告&#xff0c;本文介绍下如何集成allure生成测试报告。 1.allure安装 1.安装allure-pytest 先安装allure的pytest插件&#xff0c;用于在pytes…...

网络版本的通讯录青春版(protobuf)

环境搭建 Protobuf 还常⽤于通讯协议、服务端数据交换场景。 因为我们主要目的只是为了学习protobuf&#xff0c;因此对于客户端&#xff0c;原本应该具备&#xff1a; 新增⼀个联系⼈ ◦ 删除⼀个联系⼈ ◦ 查询通讯录列表 ◦ 查询⼀个联系⼈的详细信息 这样四个功能。 …...

开源模型应用落地-安全合规篇-用户输入价值观判断(三)

一、前言 在深度合规功能中,对用户输入内容的价值观判断具有重要意义。这一功能不仅仅是对信息合法性和合规性的简单审核,更是对信息背后隐含的伦理道德和社会责任的深刻洞察。通过对价值观的判断,系统能够识别可能引发不当影响或冲突的内容,从而为用户提供更安全、更和谐的…...

神经网络入门实战:(十四)pytorch 官网内置的 CIFAR10 数据集,及其网络模型

(一) pytorch 官网内置的网络模型 图像处理&#xff1a; Models and pre-trained weights — Torchvision 0.20 documentation (二) CIFAR10数据集的分类网络模型&#xff08;仅前向传播&#xff09;&#xff1a; 下方的网络模型图片有误&#xff0c;已做修改&#xff0c;具…...

【Rust在WASM中实现pdf文件的生成】

Rust在WASM中实现pdf文件的生成 前言概念和依赖问题描述分步实现pdf转Blob生成URL两种方式利用localstorage传递参数处理图片Vec<u8>到pdf格式的Vec<u8>使用rust创建iframe显示pdf的Blob最后 前言 实现了一个通用的前端jpg转pdf的wasm,因为动态响应框架无法直接打…...

在MySQL中执行sum case when报错:SUM does not exist

1. 报错 在pgsql中能正常运行的一段SQL在MySQL中运行的时候报错了&#xff1a; SELECT DATE( hr.handle_time ) AS statsDate,SUM ( CASE WHEN hma.app_type IN ( 2, 5 ) THEN ch_money ELSE 0 END ) AS aliPayAmt,SUM ( CASE WHEN hma.app_type IN ( 1, 4 ) THEN ch_money EL…...

【openssl】相关指令

熟悉下相关概念 x509&#xff1a;证书标准pem和der&#xff1a;两种&#xff08;包括公私钥、证书签名请求、证书等内容的&#xff09;的格式&#xff0c;前者是文本形式&#xff0c;linux常用&#xff0c;后者是二进制形式&#xff0c;windows常用&#xff0c;仅仅是格式&…...

实例分割详解

实例分割详解 引言 实例分割是计算机视觉领域的一项复杂任务&#xff0c;它要求模型能够识别图像中不同类别的对象&#xff0c;并对每个单独的对象进行像素级别的分类。与语义分割不同的是&#xff0c;实例分割不仅要区分不同的类别&#xff0c;还要识别同一类别中的不同个体…...

D87【python 接口自动化学习】- pytest基础用法

day87 pytest运行参数 -m -k 学习日期&#xff1a;20241203 学习目标&#xff1a;pytest基础用法 -- pytest运行参数-m -k 学习笔记&#xff1a; 常用运行参数 pytest运行参数-m -k pytest -m 执行特定的测试用例&#xff0c;markers最好使用英文 [pytest] testpaths./te…...

浅谈MySQL路由

华子目录 mysql-router介绍下载mysql-router安装mysql-router实验 mysql-router介绍 mysql-router是一个对应用程序透明的InnoDB Cluster连接路由服务&#xff0c;提供负载均衡、应用连接故障转移和客户端路由利用路由器的连接路由特性&#xff0c;用户可以编写应用程序来连接到…...

matlab中disp,fprintf,sprintf,display,dlmwrite输出函数之间的区别

下面是他们之间的区别&#xff1a; disp函数与fprintf函数的区别 输出格式的灵活性 disp函数&#xff1a;输出格式相对固定。它会自动将变量以一种比较直接的方式显示出来。对于数组&#xff0c;会按照行列形式展示&#xff1b;对于字符串&#xff0c;直接原样输出并换行。例如…...

30.100ASK_T113-PRO 用QT编写视频播放器(一)

1.再buildroot中添加视频解码库 X264, 执行 make menuconfig Target packages -->Libraries --> Multimedia --> X264 CLI 还需要添加 FFmpeg 2. 保存,重新编译 make all 3.将镜像下载开发板...

Linux-GPIO应用编程

本章介绍应用层如何控制 GPIO&#xff0c;譬如控制 GPIO 输出高电平、或输出低电平。 只要是用到GPIO的外设&#xff0c;都有可能用得到这些操作方法。 照理说&#xff0c;GPIO的操作应该是由驱动层去做的&#xff0c;使用寄存器操作或者GPIO子系统之类的框架。 但是&#xff0…...

opencvocr识别手机摄像头拍摄的指定区域文字,文字符合规则就语音报警

安装python&#xff0c;pycharm&#xff0c;自行安装。 Python下安装OpenCv 2.1 打开cmd,先安装opencv-python pip install opencv-python --user -i https://pypi.tuna.tsinghua.edu.cn/simple2.2 再安装opencv-contrib-python pip install opencv-contrib-python --user …...

微服务即时通讯系统(5)用户管理子服务,网关子服务

用户管理子服务&#xff08;user文件&#xff09; 用户管理子服务也是这个项目中的一个业务最多的子服务&#xff0c;接口多&#xff0c;但是主要涉及的数据表只有user表&#xff0c;Redis的键值对和ES的一个搜索引擎&#xff0c;主要功能是对用户的个人信息进行修改管理&#…...

postgreSQL安装后启动有The application server could not be contacted问题

不得不说pgsql是真的麻烦,找问题找了几个小时才解决.直接步入主题吧 首先问题如下 安装后,双击启动就出现上述问题 首先删除路径为 c:\Users\your_name\AppData\Roaming\pgAdmin 之内的所有文件和文件夹, 如果找不到AppData,就把这个点开 接着找到你安装pgsql的路径,我的是D…...