Linux中DHCP服务器配置和管理

文章目录

  • 一、DHCP服务
    • 1.1、DHCP的工作流程
    • 1.2、DHCP的工作模式
    • 1.3、dhcp的主要配置文件
  • 二、安装DHCP服务
    • 2.1、更新yum源
    • 2.2、安装DHCP服务软件包
    • 2.3、配置DHCP服务
    • 2.4、启用DHCP服务(解决报错)
      • 2.4.1、查看dhcpd服务的状态和最近的日志条目
      • 2.4.2、查看与dhcpd服务相关的详细日志,包括错误信息
      • 2.4.3、添加指定接口解决问题


一、DHCP服务

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)能动态地为客户端计算机分配IP地址以及设置其他网络信息。通过DHCP协议,网络管理员能够对网络中的IP地址进行集中管理和自动分配,能有效地节约IP地址,简化网络配置以及减少IP地址冲突。

1.1、DHCP的工作流程

DHCP的工作原理包括发现阶段、提供阶段、请求阶段、确认阶段和续约阶段。

  • 发现阶段:在发现阶段,当DHCP客户端首次登录网络时,它会通过UDP端口67向网络中发送一个DHCPDISCOVER数据包,该数据包包含客户的MAC地址和计算机名等信息。由于客户端还不知道自己属于哪个网络,因此源IP地址为0.0.0.0,目标IP地址为255.255.255.255,这样该信息会在整个网络中广播。只有DHCP服务器会对这种广播信息做出响应。
  • 提供阶段:在提供阶段,收到DHCPDISCOVER数据的DHCP服务器会从尚未分配的IP地址中选择一个并通过网络广播一个DHCPOFFER消息给客户端,该消息包含客户的MAC地址、服务器提供的IP地址、子网掩码、租期以及提供IP的DHCP服务器的IP。此时仍使用广播进行通讯,并且DHCP Server会为此客户保留它提供的IP地址,以免分配给其他DHCP客户。
  • 请求阶段:在请求阶段,如果客户机收到多台DHCP服务器的响应,则只选择其中一个DHCP OFFER(通常是最先到达的那个),并向网络发送一个DHCP REQUEST广播数据包。这个数据包告知所有DHCP服务器,它将接受哪一台服务器提供的IP地址。此时,由于未得到DHCP Server的最后确认,客户端仍然使用0.0.0.0为源IP地址,255.255.255.255为目标地址进行广播。
  • 确认阶段:在确认阶段,当DHCP Server接收到客户机的DHCP REQUEST后,会广播返回给客户机一个DHCP ACK消息包,表明已经接受客户机的选择,并将这一IP地址的合法租用以及其他的配置信息都放入该广播包发给客户机。此后,客户机会对所获取的IP地址执行冲突检测,确保没有其它机器使用该IP地址。
  • 续约阶段:在续约阶段,由于客户机申请的IP地址有一定的时间限制,因此在租约到期前,客户机会向DHCP服务器发送一个续约的请求。通常客户机会在租期过去50%的时候,直接向为其提供IP地址的DHCP Server发送DHCP REQUEST消息包。如果客户机接收到该服务器回应的DHCP ACK消息包,它将根据包中所提供的新租期及其他已更新的TCP/IP参数更新自己的配置,完成IP租用更新。

在这里插入图片描述

1.2、DHCP的工作模式

DHCP的工作模式主要有三种:接口模式、全局模式和中继模式。

在接口模式下,DHCP服务器将接口地址直接作为网关分配给客户端。这种模式适用于配置简单且规模较小的网络环境,因为路由器或三层交换机将自己的接口地址直接作为网关分发给PC端。该模式的配置较为简洁,通常只需要两行命令即可完成设置。

而在全局模式下,DHCP服务器需要独立创建一个地址池,并设置该地址池的网关、网段和DNS服务等参数。这种模式适用于大规模网络环境,可以实现对多个网段的动态IP地址分配和集中管理。例如,在一个企业网络中,通过全局模式可以灵活地为不同部门或位置的设备分配合适的IP地址和网络参数。

当DHCP服务器与客户端不在同一个网段时,则需要使用中继模式。在这种模式下,一个中间设备(如路由器或交换机)充当中继代理,传递DHCP报文,使得客户端能够获取到DHCP服务器提供的IP地址及其他网络配置信息。这种模式适用于分布式网络环境,有助于扩大DHCP服务的覆盖范围,确保不同网段内的设备也能获得正确的网络配置。

在这里插入图片描述

1.3、dhcp的主要配置文件

  • dhcpd.conf:这是DHCP服务的主配置文件,位于/etc/dhcp/dhcpd.conf。它包含了DHCP服务的全局配置和特定网络设置。在此文件中,可以设定IP地址的分配范围、默认和最大租约时间、选项设置如子网掩码、DNS服务器、域等。

  • dhcpd.conf.sample:这是一个示例配置文件,通常位于/usr/share/doc/dhcp-版本号/dhcpd.conf.sample。在首次配置DHCP服务时,管理员通常会将这个示例文件复制到/etc/dhcp/dhcpd.conf作为起点进行修改。

  • dhcrelay:这是DHCP中继服务的配置文件,位于/etc/dhcp/dhcrelay。当DHCP客户和服务器不在同一个子网时,需要用到DHCP中继。该文件配置了如何将DHCP请求从一个子网转发到另一个子网的DHCP服务器。

  • dhcpd.leases:此文件记录了已经分配的IP租约信息,路径为/var/lib/dhcpd/dhcpd.leases。每次DHCP服务器分配一个地址时,都会在这个文件中记录下来,包括租约时间、客户机硬件地址、分配的IP等信息。

  • dhclient.leases:这是客户端的租约文件,路径为/var/lib/dhclient/dhclient.leases。记录了客户端从DHCP服务器获得的租约信息。

  • dhcpd:这是DHCP服务的服务启动脚本,位于/etc/rc.d/init.d/dhcpd。用于启动和停止DHCP服务。

  • dhcrelay:这是DHCP中继服务的服务启动脚本,路径为/etc/rc.d/init.d/dhcrelay。

  • dhcpd@.service:这是systemd系统的服务启动脚本,用于通过systemctl命令管理DHCP服务的运行状态。

二、安装DHCP服务

2.1、更新yum源

[root@iZbp17noooeednslvykei8Z ~]# yum update
## 或
[root@iZbp17noooeednslvykei8Z ~]# dnf update -y
CentOS Stream 9 - BaseOS                                                                                   30 MB/s | 8.2 MB     00:00    
CentOS Stream 9 - AppStream                                                                                49 MB/s |  20 MB     00:00    
CentOS Stream 9 - Extras packages                                                                         326 kB/s |  18 kB     00:00    
Dependencies resolved.
==========================================================================================================================================Package                                     Architecture          Version                                 Repository                Size
==========================================================================================================================================
Installing:kernel                                      x86_64                5.14.0-480.el9                          baseos                   1.5 Mkernel-core                                 x86_64                5.14.0-480.el9                          baseos                    17 Mkernel-devel                                x86_64                5.14.0-480.el9                          appstream                 22 Mkernel-modules                              x86_64                5.14.0-480.el9                          baseos                    36 Mkernel-modules-core                         x86_64                5.14.0-480.el9   

2.2、安装DHCP服务软件包

[root@iZbp17noooeednslvykei8Z ~]# dnf install -y dhcp-server
Last metadata expiration check: 0:07:11 ago on Sat 03 Aug 2024 10:07:39 AM CST.
Dependencies resolved.
==============================================================================================================================================================================================Package                                       Architecture                             Version                                                Repository                                Size
==============================================================================================================================================================================================
Installing:dhcp-server                                   x86_64                                   12:4.4.2-19.b1.el9                                     baseos                                   1.2 MTransaction Summary
==============================================================================================================================================================================================
Install  1 PackageTotal download size: 1.2 M
Installed size: 3.9 M
Downloading Packages:
dhcp-server-4.4.2-19.b1.el9.x86_64.rpm                                                                                                                         12 MB/s | 1.2 MB     00:00    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                          12 MB/s | 1.2 MB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                                                                                                                                      1/1 Running scriptlet: dhcp-server-12:4.4.2-19.b1.el9.x86_64                                                                                                                                1/1 Installing       : dhcp-server-12:4.4.2-19.b1.el9.x86_64                                                                                                                                1/1 Running scriptlet: dhcp-server-12:4.4.2-19.b1.el9.x86_64                                                                                                                                1/1 Verifying        : dhcp-server-12:4.4.2-19.b1.el9.x86_64                                                                                                                                1/1 Installed:dhcp-server-12:4.4.2-19.b1.el9.x86_64                                                                                                                                                       Complete!

2.3、配置DHCP服务

[root@iZbp17noooeednslvykei8Z ~]# vi /etc/dhcp/dhcpd.conf
[root@iZbp17noooeednslvykei8Z ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp-server/dhcpd.conf.example
#   see dhcpd.conf(5) man page
subnet 192.168.1.0 netmask 255.255.255.0 {range 192.168.1.100 192.168.1.200;option routers 192.168.1.1;option domain-name-servers 8.8.8.8, 8.8.4.4;
}
  • subnet:指定子网的网络地址和子网掩码。
  • range:指定分配给客户端的IP地址范围。
  • option routers:指定默认网关的IP地址。
  • option domain-name-servers:指定DNS服务器的IP地址。

2.4、启用DHCP服务(解决报错)

[root@iZbp17noooeednslvykei8Z ~]# systemctl start dhcpd
Job for dhcpd.service failed because the control process exited with error code.
See "systemctl status dhcpd.service" and "journalctl -xeu dhcpd.service" for details.

上述代码中报错Job for dhcpd.service failed because the control process exited with error code.
See “systemctl status dhcpd.service” and “journalctl -xeu dhcpd.service” for details.

2.4.1、查看dhcpd服务的状态和最近的日志条目

[root@iZbp17noooeednslvykei8Z ~]# systemctl status dhcpd.service
× dhcpd.service - DHCPv4 Server DaemonLoaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; preset: disabled)Active: failed (Result: exit-code) since Sat 2024-08-03 10:17:21 CST; 2min 28s agoDocs: man:dhcpd(8)man:dhcpd.conf(5)Process: 49039 ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS (code=exited, status=1/FAILURE)Main PID: 49039 (code=exited, status=1/FAILURE)CPU: 9msAug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: have been made to the base software release in order to make
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: it work better with this distribution.
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: 
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: Please report issues with this software via:
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: https://issues.redhat.com/
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: 
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: exiting.
Aug 03 10:17:21 iZbp17noooeednslvykei8Z systemd[1]: dhcpd.service: Main process exited, code=exited, status=1/FAILURE
Aug 03 10:17:21 iZbp17noooeednslvykei8Z systemd[1]: dhcpd.service: Failed with result 'exit-code'.
Aug 03 10:17:21 iZbp17noooeednslvykei8Z systemd[1]: Failed to start DHCPv4 Server Daemon.

运行状态解析:

  • have been made to the base software release in order to make it work better with this distribution:这条日志信息表明 dhcpd 服务在启动时遇到了问题,可能是因为 dhcpd 服务在当前系统中不兼容。
  • Please report issues with this software via: https://issues.redhat.com/:这条日志信息表明 dhcpd 服务的开发者提供了一个错误报告的链接,用于报告 dhcpd 服务的错误。
  • exiting:这条日志信息表明 dhcpd 服务在启动失败后直接退出了。
  • Main process exited, code=exited, status=1/FAILURE:这条日志信息表明 dhcpd 服务的主进程在启动失败后退出了,状态为失败。

2.4.2、查看与dhcpd服务相关的详细日志,包括错误信息

[root@iZbp17noooeednslvykei8Z ~]# journalctl -xeu dhcpd.service
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: 
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: 
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: Not configured to listen on any interfaces!
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: 
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: This version of ISC DHCP is based on the release available
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: on ftp.isc.org. Features have been added and other changes
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: have been made to the base software release in order to make
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: it work better with this distribution.
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: 
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: Please report issues with this software via:
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: https://issues.redhat.com/
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: 
Aug 03 10:17:21 iZbp17noooeednslvykei8Z dhcpd[49039]: exiting.
Aug 03 10:17:21 iZbp17noooeednslvykei8Z systemd[1]: dhcpd.service: Main process exited, code=exited, status=1/FAILURE
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://access.redhat.com/support
░░ 
░░ An ExecStart= process belonging to unit dhcpd.service has exited.
░░ 
░░ The process' exit code is 'exited' and its exit status is 1.
Aug 03 10:17:21 iZbp17noooeednslvykei8Z systemd[1]: dhcpd.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://access.redhat.com/support
░░ 
░░ The unit dhcpd.service has entered the 'failed' state with result 'exit-code'.
Aug 03 10:17:21 iZbp17noooeednslvykei8Z systemd[1]: Failed to start DHCPv4 Server Daemon.
░░ Subject: A start job for unit dhcpd.service has failed
░░ Defined-By: systemd
░░ Support: https://access.redhat.com/support
░░ 
░░ A start job for unit dhcpd.service has finished with a failure.
░░ 
░░ The job identifier is 3222 and the job result is failed.[2]+  Stopped                 journalctl -xeu dhcpd.service

2.4.3、添加指定接口解决问题

[root@iZbp17noooeednslvykei8Z ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp-server/dhcpd.conf.example
#   see dhcpd.conf(5) man page
subnet 192.168.1.0 netmask 255.255.255.0 {range 192.168.1.100 192.168.1.200;option routers 192.168.1.1;option domain-name-servers 8.8.8.8, 8.8.4.4;interface eth0;
}
[root@iZbp17noooeednslvykei8Z ~]# systemctl restart dhcpd
[root@iZbp17noooeednslvykei8Z ~]# systemctl status dhcpd.service
● dhcpd.service - DHCPv4 Server DaemonLoaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; preset: disabled)Active: active (running) since Sat 2024-08-03 14:49:09 CST; 17s agoDocs: man:dhcpd(8)man:dhcpd.conf(5)Main PID: 50104 (dhcpd)Status: "Dispatching packets..."Tasks: 1 (limit: 22541)Memory: 4.6MCPU: 10msCGroup: /system.slice/dhcpd.service└─50104 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid

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

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

相关文章

<网络> 网络套接字编程(二)

文章目录 目录 文章目录 一、简单的TCP网络程序 1. 服务器创建套接字 2. 服务器绑定 3. 服务器监听 listen 4. 服务器获取连接 accept 5. 服务器处理请求 6. 客户端创建套接字 7. 客户端连接服务器 connect 8. 客户端发起请求 9. 服务器测试 10. 单执行流服务器弊端 二、多进程…

技术成神之路:设计模式(二十一)外观模式

相关文章:技术成神之路:二十三种设计模式(导航页) 介绍 外观模式(Facade Pattern)是一种结构型设计模式,它为子系统中的一组接口提供一个统一的接口。外观模式定义了一个高层接口,使得子系统更容易使用。 …

【Vulnhub靶场】DC-2

DC-2 靶场下载地址:https://download.vulnhub.com/dc/DC-2.zip 目标 本机IP:192.168.118.128 靶机IP:192.168.118.0/24 信息收集 常规我使用nmap三扫描,扫存活主机、扫端口、扫服务 第一步探测到存活主机IP为:192.1…

时序分解 | TTNRBO-VMD改进牛顿-拉夫逊算法优化变分模态分解

时序分解 | TTNRBO-VMD改进牛顿-拉夫逊算法优化变分模态分解 目录 时序分解 | TTNRBO-VMD改进牛顿-拉夫逊算法优化变分模态分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 (创新独家)TTNRBO-VMD改进牛顿-拉夫逊优化算优化变分模态分解TTNRBO–VMD 优化VMD分解层数K和…

MySQL任意版本安装卸载和数据库原理图绘制

MYSQL任意版本安装和卸载 安装: 1、解压文件 --- 不能出现中文路径 2、在解压目录(安装目录)下: 1>.创建data文件夹 2>.创建配置文件my.txt 然后修改成ini格式 3、修改配置文件 basedirD:\\mysql\\mysql-5.7.28-winx64…

后台进程注册的ContentObserver接收到的回调晚10秒钟

后台进程中的ContentObserver延迟回调晚10秒钟 在Android系统中,后台进程注册的ContentObserver会有一个延迟回调机制,通常延迟10秒左右。这种机制的设计是为了优化系统资源,减少后台进程频繁监听数据变化带来的资源消耗。 背景 当应用处于…

RabbitMQ集群搭建及使用

1. 概述 前提条件:linux服务器下已经安装好了docker服务。 本文档将搭建一个三台RabbitMQ的集群,包括三个RabbitMQ容器安装在同一服务器和三台不同的服务器。 2. 集群搭建 在一台服务器上创建三个RabbitMQ容器。 2.1.1. 创建容器 执行以下命令创建三…

Python实现PSO粒子群优化DBSCAN膨胀聚类模型(DBSCAN算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后关注获取。 1.项目背景 随着大数据时代的到来,从海量数据中提取有用信息变得至关重要。聚类分析作为一种无监督…

Telephony中ITelephony的AIDL调用关系

以Android14.0源码讲解 ITelephony来自framework下的com.android.internal.telephony包下 frameworks/base/telephony/java/com/android/internal/telephony/ITelephony.aidl这个接口用于与Phone交互的界面,主要由TelephonyManager类使用,一些地方仍在…

【电机控制】相电流重构——单电阻采样方案

【电机控制】相电流重构——单电阻采样方案 文章目录 [TOC](文章目录) 前言一、基于单电阻采样电流重构技术原理分析1.1 单电阻采样原理图1.2 基本电压矢量与电流采样关系 二、非观测区2.1 扇区过渡区2.2 低压调制区 三、非观测区补偿——移相法四、参考文献总结 前言 使用工具…

C++11实践指北

C11:书、在线工具、库。 书 1. 《现代C语言核心特性解析》 覆盖 C11~C20 特性的讲解。 视频跟读:https://www.bilibili.com/video/BV1nN4y1j7fv 现代CPP随笔_0CCh - 每天5分钟了解现代C新特性 2. 《C Primer》第五版 基于 C11 的 C 入门书。 正在看…

java基础面试题一

目录 1、Java语言概述 1.1一个”.java”源文件中是否可以包括多个类?有什么限制 1.2Java 的优势 1.3常用的几个命令行操作都有哪些?(至少4个) 1.4Java 中是否存在内存溢出、内存泄漏?如何解决?举例说明 1. 内存溢出&#xf…

RocketMQ | 源码分析 | Broker控制器的启动

在分布式消息中间件的领域中,RocketMQ 以其高性能、高可靠性和强大的功能占据着重要的地位。而 Broker 作为 RocketMQ 的核心组件之一,其控制器的启动过程涉及到众多关键环节和复杂的逻辑。理解这个过程对于深入掌握 RocketMQ 的运行机制以及在实际应用中…

从0开始深度学习(22)——从全连接层到卷积

多层感知机在处理图像这种高维数据时,因为模型需要大量的数据来训练这么多参数,会导致巨大的计算成本,还会增加过拟合的风险,所以人们选择使用卷积神经网络 1 不变性 在计算机视觉和深度学习领域,特指模型对输入数据中…

MySQL8.0.40编译安装

近期MySQL发布了8.0.40版本,与之前的版本相比,部分依赖包发生了变化,因此重新编译一版,也便于大家参考。 1. 下载源码 选择对应的版本、选择源码、操作系统 如果没有登录或者没有MySQL官网账号,可以选择只下载 2. 进…

系统性能优化——绑核

简要 绑核正如其名,将线程/进程绑定在一个或多个CPU核心。该技术可以使进程或线程在特定的处理器上运行,而不会被操作系统调度到其他处理器上。这里有两层含义。 如果线程被绑定在指定核心上,则只会在该核心上运行,即使其他核心…

2024年CentOS镜像下载地址,包括CentOS官网、国内镜像下载,超详细也

这里给大家提供了4种镜像下载地址,包括CentOS官方镜像下载、阿里云开源镜像站下载、网易开源镜像下载搜狐开源镜像下载。 1.CentOS官网镜像下载 因为服务器在国外所以打开CentOS官方网站的时候可能会比较慢。大家可以选择后面几种国内镜像下载方式。 1.1进入CentO…

【面试经典150】day 8

#1024程序员节 | 征文# 作为一个未来的程序员,现在我要继续刷题了。 力扣时刻。 目录 1.接雨水 2.罗马数字转整数 3.最后一个单词的长度 4.最长公共前缀 5.反转字符串中的单词 1.接雨水 好好好好好好,一开始就接雨水。我记得接了n次了。。。 痛苦战…

矩阵概念 和 性质

目录 一、矩阵因式分解 二、矩阵在图形学的运用 一、矩阵因式分解 1、先将矩阵化为上三角阵,得到U 2、每个主元列以下元素 主元 得到下三角阵 二、矩阵在图形学的运用 二维移动: 子空间H: 零向量属于H 对H中任意向量u、v,uv…

spyglass关于cdc检测的一处bug

最近在使用22版spyglass的cdc检测功能,发现struct_check的cdc检测实际时存在一些bug的。 构造如下电路,当qualifier和destination信号汇聚时,如果des信号完全将qualifier gate住,sg仍然会报ac_sync。当然此问题可以通过后续funct…