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地址 |
---|---|---|---|
Server | Centos8 | 192.168.159.135 | 00:0c:29:c0:7f:2f |
PC1 | Centos8(克隆) | 自动获取 | 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改为dhcp,ONBOOT改为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,并且分词,获取用户访问最多前十条词语。 Elasticsearch、Easy-es 快速入门 SearchAfterPage分页 若依前后端分离 Ruoyi-Vue SpringBoot 使用结巴分词器 <!-- 分词器--><dependency><groupId>com.hua…...

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

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

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

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

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

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

神经网络入门实战:(十四)pytorch 官网内置的 CIFAR10 数据集,及其网络模型
(一) pytorch 官网内置的网络模型 图像处理: Models and pre-trained weights — Torchvision 0.20 documentation (二) CIFAR10数据集的分类网络模型(仅前向传播): 下方的网络模型图片有误,已做修改,具…...

【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中运行的时候报错了: 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:证书标准pem和der:两种(包括公私钥、证书签名请求、证书等内容的)的格式,前者是文本形式,linux常用,后者是二进制形式,windows常用,仅仅是格式&…...

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

D87【python 接口自动化学习】- pytest基础用法
day87 pytest运行参数 -m -k 学习日期:20241203 学习目标:pytest基础用法 -- pytest运行参数-m -k 学习笔记: 常用运行参数 pytest运行参数-m -k pytest -m 执行特定的测试用例,markers最好使用英文 [pytest] testpaths./te…...

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

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

30.100ASK_T113-PRO 用QT编写视频播放器(一)
1.再buildroot中添加视频解码库 X264, 执行 make menuconfig Target packages -->Libraries --> Multimedia --> X264 CLI 还需要添加 FFmpeg 2. 保存,重新编译 make all 3.将镜像下载开发板...

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

opencvocr识别手机摄像头拍摄的指定区域文字,文字符合规则就语音报警
安装python,pycharm,自行安装。 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)用户管理子服务,网关子服务
用户管理子服务(user文件) 用户管理子服务也是这个项目中的一个业务最多的子服务,接口多,但是主要涉及的数据表只有user表,Redis的键值对和ES的一个搜索引擎,主要功能是对用户的个人信息进行修改管理&#…...

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