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

个人用云计算学习笔记 --16(DHCP 服务器)

文章目录

  • DHCP 服务器知识点整理
    • 一、DHCP 服务基础
      • 1. 服务背景与作用
      • 2. DHCP 通信过程
      • 3. 多 DHCP 服务器机制
    • 二、DHCP 服务器部署与配置
      • 1. 部署前提
      • 2. 安装与防火墙配置
      • 3. 核心配置(/etc/dhcp/dhcpd.conf)
        • (1)配置文件来源
        • (2)典型配置示例与说明
      • 4. 配置验证与服务启停
    • 三、DHCP 客户端配置与验证
      • 1. 客户端配置(Linux 系统)
      • 2. 客户端验证
    • 四、基于 MAC 地址的 IP 预留
      • 1. 应用场景
      • 2. 配置步骤
        • (1)获取客户端 MAC 地址
        • (2)配置 IP 预留(修改服务器 dhcpd.conf)
        • (3)重启服务与验证
    • 五、DHCP 中继服务器
      • 1. 中继作用
      • 2. 工作原理
      • 3. 中继部署(以 Linux 为例)
        • (1)实验环境
        • (2)服务器端配置(dhcp-server)
        • (3)中继端配置(dhcp-relay)
        • (4)客户端测试
    • 六、轻量级 DHCP 工具(Dnsmasq)
      • 1. 工具特点
      • 2. 安装与核心配置
        • (1)安装 Dnsmasq
        • (2)关键配置(/etc/dnsmasq.conf)
      • 3. Dnsmasq 作为 DHCP 中继
      • 4. 客户端验证

DHCP 服务器知识点整理

一、DHCP 服务基础

1. 服务背景与作用

  • 静态 IP 分配问题:在大型网络中,静态分配 IP 需避免地址重复,且新系统需手动配置,云环境中难以满足自动化需求。
  • DHCP 核心功能:动态主机配置协议(DHCP)自动分配网络参数,包括 IP 地址、默认网关、DNS 服务器、域及 NTP 服务器,实现集中化管理。
  • 协议版本:分为用于 IPv4 的 DHCPv4 和用于 IPv6 的 DHCPv6,本文重点讲解 DHCPv4。

2. DHCP 通信过程

DHCP 客户端与服务器的交互分为初始分配和租约续约两个阶段,共 6 个关键步骤:

阶段步骤详细描述
初始 IP 分配1. 客户端发送 DISCOVER客户端通过网卡发送DHCPDISCOVER数据包到广播地址255.255.255.255,因路由器默认不转发该广播,服务器需与客户端同物理网络(或配置 DHCP 中继)
2. 服务器响应 OFFER服务器接收DHCPDISCOVER后,发送DHCPOFFER数据包,包含自身 IP、分配给客户端的 IP、租约期限及其他网络参数(网关、DNS 等)
3. 客户端发送 REQUEST客户端收到DHCPOFFER后,广播DHCPREQUEST数据包,指定接受某台服务器的 IP(解决多服务器环境下的选择问题)
4. 服务器发送 ACK服务器接收DHCPREQUEST后,发送DHCPACK数据包,确认客户端对 IP 的独占使用权至租约到期
租约续约5. 客户端发起续约请求租约到期前,客户端发送DHCPREQUEST(renew)数据包请求续约
6. 服务器确认续约服务器响应DHCPACK(renew)数据包,同意客户端继续使用 IP(共 3 次续约机会)

在这里插入图片描述

3. 多 DHCP 服务器机制

  • 部署建议:同一物理网络不建议部署多台 DHCP 服务器,单台即可满足需求。

  • 多服务器交互:

    • 客户端可能收到多台服务器的DHCPOFFER,仅接受一台并通过DHCPREQUEST指定,其他服务器释放预留 IP。
    • 服务器权威性影响续约:非权威服务器忽略未知 IP 的DHCPREQUEST;权威服务器若发现 IP 不在自身管理范围,会发送DHCPNAK,客户端需重新申请 IP。
    • 默认配置:DHCP 服务器默认非权威,避免接管其他权威服务器的 IP。

二、DHCP 服务器部署与配置

1. 部署前提

  • 网络接口要求:使用ip addr命令确认服务器网络接口配置BROADCAST地址(例:ens160接口的brd 10.1.8.255)。
  • 静态 IP 要求:DHCP 服务器必须配置静态 IP,避免自身 IP 动态变化导致服务异常。

2. 安装与防火墙配置

# 1. 安装DHCP服务包
[root@server~]# dnf install -y dhcp-server# 2. 防火墙放行DHCP服务(临时+永久)
[root@server~]# firewall-cmd --add-service=dhcp
[root@server~]# firewall-cmd --add-service=dhcp --permanent

3. 核心配置(/etc/dhcp/dhcpd.conf)

(1)配置文件来源
  • 系统提供示例文件:

    /usr/share/doc/dhcp-*/dhcpd.conf.example
    

    可复制为正式配置文件:

    [root@server~]# cp /usr/share/doc/dhcp-*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
    
(2)典型配置示例与说明
[root@server ~ 10:25:51]# vim /etc/dhcp/dhcpd.conf
# 域名
option domain-name "qy.cloud";# DNS 服务器
option domain-name-servers 223.6.6.6, 223.5.5.5;# 默认租约时间
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;
}# 根据Mac地址配置固定IP
host client.laoma.cloud {hardware ethernet 00:0c:29:2f:9a:06;fixed-address 10.1.8.100;
}

4. 配置验证与服务启停

# 1. 验证配置文件语法(返回0表示无错误)
[root@server~]# dhcpd -t
[root@server~]# echo $?  # 检查返回值# 2. 启用并启动服务
[root@server~]# systemctl enable dhcpd --now# 3. 查看服务状态
[root@server~]# systemctl status dhcpd

三、DHCP 客户端配置与验证

1. 客户端配置(Linux 系统)

# 1. 添加自动获取IP的网络连接(指定接口ens192)
[root@client~]# nmcli connection add con-name dynamic type ethernet ifname ens192# 2. 激活该连接
[root@client~]# nmcli connection up dynamic

2. 客户端验证

# 查看接口IP配置(确认获取到DHCP分配的IP)
[root@client~]# ip addr show ens192# 示例输出(关键信息):
# inet 10.1.8.150/24 brd 10.1.8.255 scope global dynamic noprefixroute ens192
# valid_lft 597sec preferred_lft 597sec(租约剩余时间)

四、基于 MAC 地址的 IP 预留

1. 应用场景

为特定设备(如 Web 服务器、数据库服务器)分配固定 IP,确保其网络地址稳定。

2. 配置步骤

(1)获取客户端 MAC 地址
[root@client~]# ip link show ens192  # 查看ens192接口MAC
# 示例输出:link/ether 00:0c:29:ba:fd:88 brd ff:ff:ff:ff:ff:ff
(2)配置 IP 预留(修改服务器 dhcpd.conf)

/etc/dhcp/dhcpd.conf末尾添加:

host client.linux.fun {  # 自定义主机名hardware ethernet 00:0c:29:ba:fd:88;  # 客户端MAC地址fixed-address 10.1.8.30;              # 预留的固定IP
}
(3)重启服务与验证
# 服务器重启DHCP服务
[root@server~]# systemctl restart dhcpd# 客户端重新激活连接并验证
[root@client~]# nmcli connection up dynamic
[root@client~]# ip addr show ens192  # 确认IP为10.1.8.30

五、DHCP 中继服务器

1. 中继作用

解决 DHCP 客户端与服务器跨广播域(如不同子网、VLAN)的通信问题:客户端广播的DHCPDISCOVER会被三层设备丢弃,中继代理可转发 DHCP 报文。

2. 工作原理

中继在客户端与服务器间转发报文,将客户端的广播报文转为单播发送给服务器,服务器响应的单播报文经中继转发给客户端,交互仍遵循 “发现 - 提供 - 请求 - 确认” 四阶段。

3. 中继部署(以 Linux 为例)

(1)实验环境
主机名IP 地址虚拟网络角色
dhcp-server.linux.fun10.1.8.10/24vmnet8DHCP 服务器
dhcp-relay.linux.fun10.1.8.20/24、10.1.1.20/24vmnet8、vmnet1DHCP 中继
dhcp-client.linux.fun自动获取vmnet1DHCP 客户端
(2)服务器端配置(dhcp-server)
  1. 配置双子网地址池:在/etc/dhcp/dhcpd.conf中添加10.1.1.0/24子网配置(参考前文 “典型配置”)。

  2. 配置路由

    :确保服务器能访问中继的

    10.1.1.20
    
    [root@dhcp-server~]# nmcli connection modify ens160 ipv4.routes '10.1.1.20/32 10.1.8.20'
    [root@dhcp-server~]# nmcli connection up ens160
    
(3)中继端配置(dhcp-relay)
  1. 安装中继服务

    [root@dhcp-relay~]# dnf install -y dhcp-relay
    
  2. 修改中继服务配置

    # 复制服务文件并编辑
    [root@dhcp-relay~]# cp /usr/lib/systemd/system/dhcrelay.service /etc/systemd/system/dhcrelay.service
    [root@dhcp-relay~]# vim /etc/systemd/system/dhcrelay.service
    # 修改ExecStart,指定DHCP服务器IP:
    ExecStart=/usr/sbin/dhcrelay -d --no-pid 10.1.8.10
    
  3. 启用中继服务

    [root@dhcp-relay~]# systemctl enable dhcrelay.service --now
    
  4. 开启路由转发

    [root@dhcp-relay~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
    [root@dhcp-relay~]# sysctl -p /etc/sysctl.conf  # 生效配置
    
(4)客户端测试

同 “DHCP 客户端配置与验证” 步骤,确认客户端能跨网段获取 IP。

六、轻量级 DHCP 工具(Dnsmasq)

1. 工具特点

集 DNS 缓存、DHCP 服务器、DHCP 中继、TFTP 服务器于一体,轻量易配置,适用于个人或小型网络。

2. 安装与核心配置

(1)安装 Dnsmasq
[root@server~]# dnf install -y dnsmasq
(2)关键配置(/etc/dnsmasq.conf)
# 1. IP地址池:10.1.8.50-150,掩码24,租约12小时
dhcp-range=10.1.8.50,10.1.8.150,255.255.255.0,12h# 2. MAC绑定固定IP(租约45分钟)
dhcp-host=00:0c:29:ba:fd:88,10.1.8.30,45m# 3. 配置网关
dhcp-option=option:router,10.1.8.2# 4. 配置DNS服务器
dhcp-option=option:dns-server,218.2.135.1# 5. 配置域搜索列表
dhcp-option=option:domain-search,linux.fun,example.com# 6. 配置NTP服务器(可选)
dhcp-option=option:ntp-server,1.2.3.4,1.2.3.5

3. Dnsmasq 作为 DHCP 中继

在中继主机(dhcp-relay)的/etc/dnsmasq.conf中添加:

# 转发10.1.1.20接口的DHCP请求到10.1.8.10(DHCP服务器)
dhcp-relay=10.1.1.20,10.1.8.10

启用服务并开启路由转发(同前文 “中继端配置” 步骤)。

4. 客户端验证

同 “DHCP 客户端配置与验证”,可通过route -n(查看网关)、cat /etc/resolv.conf(查看 DNS)进一步确认配置生效。

http://www.dtcms.com/a/414177.html

相关文章:

  • 【Linux】基础IO与文件描述符
  • ​​FFmpeg 教程:从入门到精通,探索多媒体处理的瑞士军刀​
  • 使用ffmpeg8.0的whisper模块语音识别
  • 免费版Markdown 编辑器:Typora
  • 个人建网站有什么好处网站运营需要 做哪些工作
  • MySQL库、表的操作
  • FileProvider 配置必须针对 Android 7.0+(API 24+)做兼容
  • 混合止损策略在加密货币交易中的应用
  • Java模拟实现socket通信
  • iSCSI服务器
  • PyQt5 界面美化:从基础到高级的完整指南
  • 【Linux系列】让 Vim “跑”起来:实现一个会动的进度条
  • 上海商务网站建设wordpress 云相册
  • LLM - 构建AI智能体的完整指南:7步流程图与框架实战
  • springboot523基于Spring Boot的大学校园生活信息平台的设计与实现
  • Kubernetes 安全管理:认证、授权与准入控制全面解析
  • 江苏省住房城乡建设厅门户网站淄博企业网站
  • SpringBoot整合JakartaMail,实现发送邮箱功能
  • 开发 Flutter Windows 应用,如何安装工具链工具链和SDK
  • 杂记 10
  • 错误解决:Flutter找不到合适的Visual Studio 工具链
  • 基于KingbaseES集群管理实战:从部署运维到高可用架构深度解析
  • NXP - 用MCUXpresso IDE v25.6.136的工具链编译Smoothieware固件工程
  • 【影刀RPA】手机应用自动化
  • 有什么字体设计网站网站建设中的安全问题
  • 【开题答辩全过程】以 SpringBoot房屋出租管理系统为例,包含答辩的问题和答案
  • QT6中Column View与QUndoView功能与用法
  • Layui 使用
  • 如何优化 C# MVC 应用程序的性能
  • Uni-App 页面跳转监控实战:快速定位路由问题