DHCP 服务配置与管理笔记

一、DHCP 核心概念

1. DHCP 定义与功能

  • DHCP (Dynamic Host Configuration Protocol):动态主机配置协议
  • 核心功能
    • 自动分配 IP 地址
    • 提供子网掩码、网关、DNS 等网络参数
    • 管理 IP 地址租约周期
  • 典型应用:ADSL拨号、企业无线网络、移动办公环境

2. 工作过程详解

ClientServerDHCP Discover (广播)DHCP Offer (广播)DHCP Request (广播)DHCP Ack (广播)ClientServer

3. 端口与协议

组件端口协议说明
DHCP Server67UDP接收客户端请求
DHCP Client68UDP接收服务器响应
DHCPv6 Client546UDPIPv6客户端通信端口

4. 关键术语

术语说明
作用域 (Scope)可分配的 IP 地址范围 (如 192.168.1.0/24)
地址池作用域内可分配的 IP 地址集合
租约 (Lease)客户端使用 IP 地址的授权期限
保留地址为特定 MAC 地址固定分配的 IP
中继代理跨网段转发 DHCP 请求的路由器组件

二、DHCP 服务器部署

环境要求

  • 网络模式:必须使用仅主机 (Host-Only)NAT 模式
  • 禁止桥接:避免干扰实际网络中的 DHCP 服务

安装与配置流程

  1. 安装软件包

    yum -y install dhcp
    
  2. 配置文件初始化

    cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
    
  3. 主配置文件详解 (/etc/dhcp/dhcpd.conf)

    # 全局配置 (作用于所有子网)
    option domain-name "example.com";
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    default-lease-time 600;       # 默认租约时间 (秒)
    max-lease-time 7200;          # 最大租约时间 (秒)# 子网声明 (关键配置)
    subnet 192.168.100.0 netmask 255.255.255.0 {range 192.168.100.50 192.168.100.100;    # 地址池范围option domain-name-servers yangduhan.example.com;		#DNSoption domain-name "example.com";		#域名option routers 192.168.100.254;          # 默认网关#option broadcast-address 10.5.5.31; # 广播地址,不需要注释掉
    }# 固定地址分配 (MAC 绑定)
    host server30 {hardware ethernet 00:0c:29:e0:86:70;  # 客户端 MAC 地址fixed-address 192.168.100.150;            # 固定分配的 IP,地址池内外都行option host-name "server30";           # 可选:指定主机名
    }
    
  4. 服务管理

    systemctl restart dhcpd    # 重启服务
    systemctl enable dhcpd     # 设置开机自启
    systemctl status dhcpd     # 检查服务状态
    
  5. 防火墙配置

    firewall-cmd --permanent --add-service=dhcp
    firewall-cmd --reload
    

客户端配置

  1. 网卡配置文件 (/etc/sysconfig/network-scripts/ifcfg-ens33)
    关键修改:

    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    BOOTPROTO=dhcp      # 启用 DHCP 协议
    ONBOOT=yes          # 开机自动激活
    # 删除以下行:
    # IPADDR=
    # NETMASK=
    # GATEWAY=
    # DNS1=
    
  2. 重启网络服务

    systemctl restart NetworkManager   # 推荐使用
    # 或
    systemctl restart network
    #查看ip是否获取
    ip a
    

租约管理

  • 租约文件位置/var/lib/dhcpd/dhcpd.leases

  • 查看租约信息

    less /var/lib/dhcpd/dhcpd.leases
    
  • 租约文件结构

    lease 172.16.30.50 {starts 5 2023/08/11 12:34:56;ends 5 2023/08/11 12:44:56;hardware ethernet 00:0c:29:xx:xx:xx;uid 01:00:0c:29:xx:xx:xx;
    }
    

三、DHCP 中继配置

网络拓扑

DHCP 请求
转发请求
响应
返回响应
DHCP 客户端
中继服务器
DHCP 服务器

中继服务器配置步骤

  1. 网络配置

    • ens33 (NAT 网络):192.168.100.254
    • ens36 (Host-Only):192.168.200.254
  2. 启用 IP 转发

    # 临时生效
    sysctl -w net.ipv4.ip_forward=1# 永久生效
    echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
    sysctl -p
    
  3. 配置网卡接口
    ens33–NAT模式—192.168.100.254
    ens36–vmnet模式(仅主机)—192.168.200.254

  4. 安装 DHCP 中继软件

    yum -y install dhcp
    
  5. 启动 DHCP 中继服务

    dhcrelay -d -i ens36 -i ens33 192.168.100.20
    

    参数说明

    • -d:前台运行(调试模式)
    • -i:指定监听接口
    • 192.168.100.20:DHCP 服务器 IP

生产环境推荐配置

dhcp服务器

网卡--ens33--NAT模式---192.168.100.20
vim /etc/dhcp/dhcpd.conf
#只保留以下内容
subnet 192.168.100.0 netmask 255.255.255.0 {
}
# A slightly different configuration for an internal subnet.
subnet 192.168.200.0 netmask 255.255.255.0 {range 192.168.200.50 192.168.200.100;option routers 192.168.200.254;default-lease-time 600;max-lease-time 7200;
}
#重启服务
systemclt  restart   dhcpd
# 创建 systemd 服务单元
cat > /etc/systemd/system/dhcrelay.service <<EOF
[Unit]
Description=DHCPv4 Relay Agent
After=network.target[Service]
ExecStart=/usr/sbin/dhcrelay -d --no-pid 192.168.100.20
Restart=always[Install]
WantedBy=multi-user.target
EOF# 启用服务
systemctl daemon-reload
systemctl start dhcrelay
systemctl enable dhcrelay

四、排错与监控

服务端排错

# 检查配置文件语法
dhcpd -t# 查看服务日志
journalctl -u dhcpd -f# 监听 DHCP 流量
tcpdump -i ens33 port 67 or port 68 -vv

客户端排错

# 释放当前租约
dhclient -r# 重新获取 IP
dhclient -v# 查看获得的参数
ip a show dev ens33
cat /etc/resolv.conf

五、最佳实践

  1. 作用域规划原则

    • 保留 20% IP 地址用于静态分配
    • 设置合理的租约时间:
      • 办公网络:8 小时
      • 公共无线:1 小时
      • 服务器:永久保留
  2. 安全增强

    # 防止未授权 DHCP 服务器
    deny unknown-clients;# MAC 地址白名单
    allow known-clients;
    
  3. 高可用方案

    • 主从模式:两台 DHCP 服务器划分 80%/20% 地址池
    • 负载均衡:配置 DHCP 冗余协议 (DRCP)

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

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

相关文章

WebSocket 在多线程环境下处理 Session并发

WebSocket 在多线程环境下处理 Session并发时&#xff0c;常见问题包括状态冲突&#xff08;如 IllegalStateException&#xff09;、消息乱序、连接超时等。以下是综合各技术方案的解决方案&#xff0c;分为单机多线程和分布式集群两类场景&#xff1a;&#x1f512; 一、单机…

JDBC的连接过程(超详细)

JDBC&#xff08;Java Database Connectivity&#xff09;是 Java 用于访问数据库的标准 API&#xff0c;它允许 Java 程序与各种不同类型的数据库进行交互&#xff0c; 其连接数据库的过程主要包含以下几个步骤&#xff1a;1. 导入 JDBC 驱动依赖在使用 JDBC 连接数据库之前&a…

本地WSL部署接入 whisper + ollama qwen3:14b 总结字幕校对增强版

1. 实现功能 M4-4: 校对增强版 (最终完全体) 本脚本是整个 Module 的最终形态&#xff0c;采用了“代码预处理 LLM校对”的终极方案&#xff1a; 代码预处理: 确定性地在每个语音片段后添加逗号&#xff0c;生成一份“标点草稿”。LLM校对: LLM 的任务被简化为“校对和修正”这…

MySQL数据库简介

1 简介 MySQL是一个关系型数据库管理系统&#xff0c;由瑞典 MySQL AB公司开发&#xff0c;属于 Oracle 旗下产品&#xff0c;是当今最流行的关系型数据库管理系统之一&#xff0c;在 WEB应用方面&#xff0c;MySQL是最好的RDBMS (Relational Database Management System&#…

[Oracle] UNPIVOT 列转行

Oracle数据库中的UNPIVOT是一种用于将列转换为行的SQL操作&#xff0c;它允许用户将多个列的数据转换为多行的形式&#xff0c;以便进行更灵活的数据分析和报表生成UNPIVOT主要用于将宽表(多列)转换为长表(多行)&#xff0c;减少表的列数&#xff0c;增加行数语法格式SELECT pi…

node.js 学习笔记3 HTTP

path模块 path模块主要用于操作路径。要使用path&#xff0c;首先需要引入path模块。require(path) path.resolve 用于拼接规范的绝对路径。 如果想拼接一个路径&#xff0c;有时候是使用字符串手动拼接的&#xff0c;但由于系统的规范不同&#xff0c;路径中的\和/无法统一…

Flutter Dialog、BottomSheet

属性说明title标题content内容actions按钮applicationName说明文字applicationVersion版本applicationLegalese版本基本使用class MyState extends State {AlertDialog delDialog(BuildContext context) {AlertDialog alertDialog AlertDialog(title: Text("提示"),…

《算法导论》第 19 章 - 斐波那契堆

引言斐波那契堆&#xff08;Fibonacci Heap&#xff09;是一种高效的可合并堆数据结构&#xff0c;由 Michael L. Fredman 和 Robert E. Tarjan 于 1984 年提出。它在许多优先队列操作中提供了极佳的 amortized&#xff08;摊还&#xff09;时间复杂度&#xff0c;尤其适用于需…

MySQL-日志

MySQL-日志前言一、错误日志&#xff08;error log&#xff09;二、慢查询日志(slow query log)三 、一般查询日志(general log)四、 事务日志重做日志&#xff08;redo log&#xff09;回滚日志&#xff08;undo log&#xff09;五、 二进制日志(bin log)/归档日志 > 数据同…

嵌入式C语言编程:策略模式、状态模式和状态机的应用

概述 在没有面向对象语法的C语言中&#xff0c;策略&#xff08;Strategy&#xff09;模式和状态&#xff08;State&#xff09;模式都通过“上下文 接口”组合来模拟多态。 它们在代码结构上几乎一致&#xff0c;但设计意图和应用场景却差异很大。 本文分三部分深入剖析&…

人工智能、机器学习、深度学习:2025技术革命的深度解析

目录 人工智能、机器学习、深度学习&#xff1a;技术革命的深度解析 引言 第一部分&#xff1a;人工智能的起源与演进 1.1 人工智能的定义 1.2 人工智能的历史 1.3 人工智能的关键概念 a.知识表示&#xff08;Knowledge Representation&#xff09; b.搜索算法&#xf…

【Python】常用内置模块

1.os 文件目录 import os# 创建文件夹 os.mkdir(dir) # 判断文件是否存在 os.path.exists(path) # 列出文件夹下文件列表 os.listdir(dir)""" 常用 """ # 当前文件相对路径 os.getcwd()# 当前文件绝对路径 os.path.abspath(__file__)# 当前文…

(Python)爬虫进阶(Python爬虫教程)(CSS选择器)

源代码&#xff1a;#导入库 import requests from bs4 import BeautifulSoup import pandas as pd#爬虫函数 def scrape_books():#1.基本网址连接base_url "http://books.toscrape.com"#2.获取基本网址responserequests.get(base_url)#3.检查是否正常访问if respons…

第七节 自然语言处理与Bert

自然语言处理与BERT模型&#xff1a;从基础到实践入门 自然语言处理&#xff08;NLP&#xff09;的核心目标之一是让计算机理解人类语言的语义和上下文。本文将从基础的字词表示出发&#xff0c;逐步解析传统模型的局限性、Self-attention的突破性思想&#xff0c;以及BERT如何…

攻击者瞄准加密技术的基础:智能合约

虽然利用许多智能合约中的安全漏洞已经成为网络攻击者的长期目标&#xff0c;但越来越多的安全公司开始关注使用欺诈性或混淆的智能合约从加密货币账户中窃取资金的骗局。 根据网络安全公司 SentinelOne 本周发布的分析报告&#xff0c;在最近一次引人注目的攻击中&#xff0c…

基于开源AI大模型、AI智能名片与S2B2C商城小程序的零售智能化升级路径研究

摘要&#xff1a;在零售业数字化转型浪潮中&#xff0c;人工智能技术正从“辅助工具”向“核心生产力”演进。本文聚焦开源AI大模型、AI智能名片与S2B2C商城小程序的协同应用&#xff0c;提出“数据感知-关系重构-生态协同”的三维创新框架。通过分析智能传感、动态画像与供应链…

机器学习 朴素贝叶斯

目录 一.什么是朴素贝叶斯 1.1 从 “概率” 到 “分类” 二.朴素贝叶斯的数学基础&#xff1a;贝叶斯定理 2.1 贝叶斯定理公式 2.2 从贝叶斯定理到朴素贝叶斯分类 2.3 “朴素” 的关键&#xff1a;特征独立性假设 三、朴素贝叶斯的三种常见类型 3.1 高斯朴素贝叶斯&…

A Logical Calculus of the Ideas Immanent in Nervous Activity(神经网络早期的M-P模型)

哈喽&#xff0c;各位朋友大家上午好&#xff01;今天我们要一起啃下这篇神经科学与逻辑学交叉领域的奠基之作——McCulloch和Pitts的《A Logical Calculus of the Ideas Immanent in Nervous Activity》。这篇论文篇幅不长&#xff0c;但每一个定理、每一个假设都像精密齿轮&a…

大语言模型提示工程与应用:提示工程-提升模型准确性与减少偏见的方法

语言模型可靠性优化 学习目标 在本课程中&#xff0c;我们将学习通过提示工程提升模型事实准确性、减少偏见的有效方法。 相关知识点 语言模型可靠性优化 学习内容 1 语言模型可靠性优化 1.1 事实准确性增强 LLM可能生成看似合理但实际虚构的内容。优化策略包括&#x…

遇到前端导出 Excel 文件出现乱码或文件损坏的问题

1. 检查后端返回的数据格式确认接口响应&#xff1a;确保后端返回的是二进制流&#xff08;如 ArrayBuffer&#xff09;或 Base64 编码的 Excel 文件&#xff0c;而非 JSON 字符串。用浏览器开发者工具&#xff08;Network 标签&#xff09;检查接口响应类型&#xff1a;正确的…