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

30.Linux DHCP 服务器 - 详解

文章目录

  • Linux DHCP 服务器
    • 简单回顾
    • DHCP工作步骤
      • 第一步:DHCP发现
      • 第二步:DHCP提供
      • 第三步:DHCP请求
      • 第四步:DHCP确认
    • 部署DHCP服务器
      • 安装DHCP软件包
      • 配置DHCP配置文件
    • 部署客户端网络

Linux DHCP 服务器

简单回顾

在大型网络中,系统静态分配IP地址会面临问题:

  1. 确保不在多个系统上配置同一个IP地址
  2. 部署新系统通常需要人工手动分配IP地址

所以面对大型网络我们一般采用动态主机配置协议DHCP,提供自动分配网络参数的方法,例如IP地址,默认网关,DNS服务器和域或者NTP服务器。

DHCP有两种协议:

本章节我们来一起学习DHCPv4。

DHCP工作步骤

第一步:DHCP发现

客户端以广播形式(目标地址为255.255.255.255)发送一个DHCP Discover数据包。

第二步:DHCP提供

DHCP服务器从自己的IP地址池中选出一个可用的IP地址,同样通过广播(因为客户端还没有IP,无法直接回复)发送一个DHCP Offer数据包。这个包里包含了准备分配的IP地址、子网掩码、网关、DNS服务器地址等信息。

第三步:DHCP请求

客户端广播发送一个DHCP Request数据包,里面包含了它选择的那个DHCP服务器的标识符和IP地址。这样做是为了通知所有DHCP服务器最终选择,让未被选中的服务器释放他们预留的IP地址。

第四步:DHCP确认

被选中的DHCP服务器发送一个DHCP ACK广播包。这个包包含了IP地址、租期以及所有网络配置参数的最终确认信息。

收到ACK后: 你的电脑就会应用这个IP地址和配置,然后就可以正常上网了。

部署DHCP服务器

安装DHCP软件包

[root@server ~ 17:00:44]# yum install -y dhcp

配置DHCP配置文件

dhcpd服务使用/etc/dhcp/dhcpd.conf配置文件。

首先看看配置文件内有没有模板

[root@server ~ 17:03:16]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#

可以看见文件提示配置文件的模板位置所在

我们将这个文件复制过来

[root@server ~ 17:03:16]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf

进行修改配置文件

[root@server ~ 17:09:02]# vim /etc/dhcp/dhcpd.conf
# 配置域名
option domain-name "hxl.cloud";
# 配置 DNS 服务器
option domain-name-servers 223.5.5.5, 223.6.6.6;
# 默认租约时间
default-lease-time 600;
# 最大租约时间
max-lease-time 7200;
# 配置日志级别
log-facility local7;
# 配置 DHCP 池
subnet 10.1.8.0 netmask 255.255.255.0 {
range 10.1.8.101 10.1.8.130;
#option domain-name-servers ns1.internal.example.org;
#option domain-name "internal.example.org";
option routers 10.1.8.2;
option broadcast-address 10.1.8.255;
#default-lease-time 600;
#max-lease-time 7200;
}

重新启动一下dhcpd服务

[root@server ~ 17:09:16]# systemctl restart dhcpd

部署客户端网络

为了测试DHCP功能,我们先给客户端添加一张新的网卡

在这里插入图片描述

并且关闭网络编辑器中自动的DHCP功能

在这里插入图片描述

先给新的网卡修改名字

[root@client ~ 17:16:41]# nmcli connection modify 有线连接\ 1 con-name ens37
[root@client ~ 17:17:04]# nmcli connection 
NAME   UUID                                  TYPE      DEVICE
ens33  4dd56f90-92f5-486f-9055-ba5a4c2ff049  ethernet  ens33
ens37  809b2329-c556-323b-8d49-bc4301b64b99  ethernet  --

给新网卡启动起来

[root@client ~ 17:18:58]# nmcli connection up ens37
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)
[root@client ~ 17:19:07]# nmcli connection 
NAME   UUID                                  TYPE      DEVICE
ens33  4dd56f90-92f5-486f-9055-ba5a4c2ff049  ethernet  ens33
ens37  809b2329-c556-323b-8d49-bc4301b64b99  ethernet  ens37
[root@client ~ 17:19:15]# ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128
ens33            UP             10.1.8.11/24 fe80::20c:29ff:fe55:a3e4/64
ens37            UP             10.1.8.102/24 fe80::90d1:9eb1:331e:5089/64

我们在服务器端设置的地址池是.101~.130的地址,这里给我们分配到一个.102的IP地址,我们再给服务器端的配置再做一些修改,让服务器根据MAC地址配置固定IP

首先我们查看新网卡的MAC地址

[root@client ~ 17:28:58]# ip -br link 
lo               UNKNOWN        00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>ens33            UP             00:0c:29:55:a3:e4 <BROADCAST,MULTICAST,UP,LOWER_UP>ens37            UP             00:0c:29:55:a3:ee <BROADCAST,MULTICAST,UP,LOWER_UP>

根据这个MAC地址,在/etc/dhcp/dhcpd.conf最后加上这样的配置

host client.hxl.cloud {
hardware ethernet 00:0c:29:55:a3:ee;
fixed-address 10.1.8.100 ;
}

这里我们设置.100的IP地址

重启服务端的dhcpd服务和客户端的网卡

# dhcp服务器
[root@server ~ 18:35:31]# systemctl restart dhcpd
# 客户端
[root@client ~ 18:32:48]# nmcli connection up  ens37
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/9)
[root@client ~ 18:35:52]# ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128
ens33            UP             10.1.8.11/24 fe80::20c:29ff:fe55:a3e4/64
ens37            UP             10.1.8.100/24 fe80::90d1:9eb1:331e:5089/64

可以发现,我们的新网卡地址变成了10.1.8.100,配置成功

http://www.hskmm.com/?act=detail&tid=19100

相关文章:

  • [K230学习笔记] 前言
  • 集训队作业3——qoj#11723
  • 2025 年推拉门品牌推荐排行榜发布:聚焦玻璃推拉门,钛镁合金推拉门,厨房推拉门,阳台推拉门,淋浴隔断推拉门选择指南!
  • 2025.9.27比赛总结
  • [K230学习笔记] 目录
  • 116.飞行员兄弟
  • 2025系统门窗品牌推荐榜单发布,吉缘等一线品质品牌隔音节能实力解析
  • 课程总结(作业2)
  • 旅游管理虚拟仿真实训室:打通理论与实践壁垒 - 详解
  • 【光照】[PBR][漫反射]实现方法对比
  • Xpath 提取数据
  • Java异常以及处理
  • 复习计划
  • RTC
  • 卡特兰数与反射容斥
  • 题解:QOJ9619/洛谷13568 [CCPC 2024 重庆站] 乘积,欧拉函数,求和(数论+状压DP)
  • Momentum Gradient Descent(动量梯度下降)
  • README
  • Halcon算子——2D几何变换
  • 深入解析:深度解析 CUDA-QX 0.4 加速 QEC 与求解器库
  • 实验作业1
  • 《C++程序设计》笔记p4 - 指南
  • 电脑显示器黑屏(闪烁:隔几秒中黑一两秒),向日葵远程正常——DeepSeek问答
  • 实用指南:iOS 26 兼容测试实战,机型兼容、SwiftUI 兼容性改动
  • 大中午记梦
  • 概率/期望 $dp$
  • 9.21~9.27 周总结
  • Jetbrains 全家桶激活码激活
  • 【深度学习计算机视觉】07:单发多框检测(SSD) - 指南
  • MZOI 2025.9.27