Linux复习笔记(五) 网络服务配置(dhcp)

news2025/5/15 22:26:00

二、网络服务配置

2.5 dhcp服务配置(不涉及实际操作)

要求:知道原理和常见的参数配置就行

2.5.1 概述DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种用于自动分配和管理IP地址的网络协议,旨在简化网络设备配置并提高IP地址利用率。以下是其核心内容的综合概述:

​协议定位​

  • DHCP属于OSI模型的应用层协议,基于UDP传输,使用​67号端口(服务器)​​和​​68号端口(客户端)​进行通信

​核心功能​

  • ​动态IP分配​​:自动为客户端分配IP地址、子网掩码、默认网关、DNS服务器等网络参数
  • ​地址管理​​:通过租约机制(Lease Time)控制IP地址的有效期,支持地址回收与复用,避免资源浪费
  • ​兼容性​​:支持与静态IP设备共存,并兼容早期的BOOTP协议

​地址分配方式​

  • ​动态分配​​(Dynamic Allocation):临时分配带租期的IP地址,到期后可回收(最常见方式)
  • ​自动分配​​(Automatic Allocation):永久分配固定IP地址给特定设备
  • ​手动分配​​(Manual Allocation):管理员手动指定IP地址,DHCP仅负责告知客户端

2.5.2 DHCP工作原理(DORA流程)

DHCP通过四个步骤完成地址分配,称为​​DORA流程​​:

​Discover(发现)​

  • 客户端以广播形式发送DHCP Discover报文,寻找可用DHCP服务器

​Offer(提供)​

  • 服务器响应DHCP Offer,包含推荐的IP地址及配置信息(可能多台服务器响应)

​Request(请求)​

  • 客户端选择其中一个Offer,广播DHCP Request确认所选服务器

​Acknowledge(确认)​

  • 服务器发送DHCP ACK正式分配地址,或DHCP NAK拒绝请求(如地址冲突) 
消息名称消息的作用
发现阶段 (DHCP Discover)客户端寻找 DHCP 服务器,请求分配 IP 地址等网络配置信息
提供阶段 (DHCP Offer)服务器回应 DHCP 客户端请求,提供可被租用的网络配置信息
选择阶段 (DHCP Request)客户端租用选择网络中某一台 DHCP 服务器分配的网络配置信息
确认阶段 (DHCP Ack)DHCP 服务器对 DHCP 客户端的租用选择进行确认
 发现阶段

在本阶段中,客户机寻找 DHCP 服务器,请求获取 IP 资源。

客户机状态:客户机没有 IP 地址,客户机不知道 DHCP 服务器地址。
处理方式:客户机发送 Discover 数据包。

  • 以广播形式发出

  • 不同客户机发送的 Discover 包通过数据包的 MAC 地址来区分。

关键信息解析
源 MAC 地址客户端网卡的 MAC 地址
目的 MAC 地址FF:FF:FF:FF:FF:FF (广播地址)
源 IP 地址0.0.0.0
目的 IP 地址255.255.255.255(广播地址)
源端口号68(UDP)
目的端口号67(UDP)
客户端硬件地址标识客户端网卡的 MAC 地址
客户端 ID客户端网卡的 MAC 地址
DHCP 包类型DHCP Discover

 

提供阶段
  • 在本阶段中,LAN 中所有的 DHCP 服务器在收到客户机发送的 Discover 包后都会对其响应,发送响应数据包(Offer)。Offer 包中包含了响应信息(IP 地址、NETMASK 地址、BROADCAST 地址、DNS 地址等等,以及其他相关信息)。最关键的 IP 地址是由 DHCP 服务器在其地址池中挑选的未使用的 IP 地址。
关键信息解析
源 MAC 地址DHCP 服务器网卡的 MAC 地址
目的 MAC 地址FF:FF:FF:FF:FF:FF(广播地址)
源 IP 地址192.168.110.10
目的 IP 地址255.255.255.255(广播地址)
源端口号67(UDP)
目的端口号68(UDP)
可用的 IP 地址192.168.110.128
子网掩码255.255.255.0
网关地址等其他参数Gateway:192.168.110.2
DNS:192.168.110.30
参数的租约(按实际,如 6 小时)
客户端 MAC客户端网卡的 MAC 地址
DHCP 服务器 ID192.168.110.10(服务器 IP)
DHCP 包类型DHCP Offer

选择阶段
  •  DHCP客户机可能会获取多个DHCP服务器的Offer包,其只能使用第一个获得的Offer包中的 IP作为自己的IP地址其余Offer包将不再处理,并且 DHCP客户端收到服务器的DHCP Offer后,不会直接将该租约配置在TCP/IP参数上,它还须向服务器发送DHCP Request包以确认租用。DHCP Request包含如下关键信息(DHCP服务器IP:192.168.110.10/24,DHCP客户端IP:192.168.110.128/24),以广播的形式发送。DHCP Request包含关键信息及解析如表所示。
关键信息解析
源 MAC 地址DHCP 客户端网卡的 MAC 地址
目的 MAC 地址FF:FF:FF:FF:FF:FF(广播地址)
源 IP 地址0.0.0.0
目的 IP 地址255.255.255.255 (广播地址)
源端口号68(UDP)
目的端口号67(UDP)
客户端 MAC客户端网卡的 MAC 地址
客户端请求的 IP192.168.110.128
服务器 ID192.168.110.10
DHCP 包类型DHCP Request
确认阶段
  • DHCP服务器收到客户端的DHCP Request包后,将通过发送DHCP Ack消息给客户端,完成IP地址租约的签订。DHCP Ack包以广播形式发送。客户端收到该数据包即准备使用服务器提供的IP地址等网络配置参数信息完成TCP/IP参数的配置。没有被选中的服务器则会收回自己分配的IP地址到地址池中,等待下一次分配。DHCP Ack包含的关键信息及解析如表所示。  
关键信息解析
源 MAC 地址DHCP 服务器网卡的 MAC 地址
目的 MAC 地址FF:FF:FF:FF:FF:FF(广播地址)
源 IP 地址192.168.110.10
目的 IP 地址255.255.255.255(广播地址)
源端口号67(UDP)
目的端口号68(UDP)
客户端 IP 地址192.168.110.128
客户端子网掩码255.255.255.0
网关地址等网络参数Gateway:192.168.110.2
DNS:192.168.110.30
网络参数的租约(按实际)
客户端 MAC客户端网卡的 MAC 地址
DHCP 服务器 ID192.168.110.10
DHCP 包类型DHCP Ack
重新登录
  • 为了提高效率,当客户机关闭后重新进入网络时,将直接进入选择阶段,向上一次分配 地址的DHCP服务器发送request信息,询问上一次分配的IP地址能否重新使用。 如果上一次的IP地址没有分配给别的机器,则DHCP服务器会发出一个确认信息,将其分配给该客 户机。 如果上一次分配的地址已经分配给别的机器,则客户机需要重新从第一步开始进行地址申请。 
​租约续期​​:
  • 在租期50%(T1时间点)时,客户端单播请求续约
  • 若未成功,租期87.5%(T2时间点)改为广播请求
  • 租期结束后仍未续约,客户端释放IP并重启DORA流程 
DHCP客户端租用失败的自动配置 

DHCP客户端在发出DHCP Discover广播包后,将花费1秒钟的时间等待DHCP服务器的回应,如果等待1秒钟后没有收到服务器的回应,它会将这个广播包重新广播四次(以2、4、8和16秒为间隔,加上1~1000毫秒随机长度的时间)。四次广播之后,如果仍然不能够收到服务器的回应,则将从169.254.0.0/16网段内随机选择一个IP地址作为自己的TCP/IP参数。

DHCP中继代理服务​

DHCP中继代理(DHCP Relay Agent)是一种网络服务或设备,用于在不同子网之间转发DHCP请求和响应,解决客户端与服务器不在同一广播域时的IP地址分配问题。

核心作用​

​跨子网地址分配​
DHCP客户端通过​​广播​​发送请求(如DHCP Discover),但广播报文无法跨越路由器到达其他子网。中继代理将客户端的广播请求转换为​​单播​​,转发至远程DHCP服务器,实现跨子网通信

工作原理(以IP分配为例)​
  1. ​客户端广播请求​
    客户端发送​​DHCP Discover​​广播报文,中继代理通过监听接口接收请求

  2. ​中继代理处理与转发​

    • ​填充giaddr​​:将客户端子网信息写入报文的giaddr字段。
    • ​单播转发​​:将修改后的报文以单播形式发送至预配置的DHCP服务器
  3. ​服务器响应与回传​

    • 服务器根据giaddr选择地址池,生成​​DHCP Offer​​单播回复至中继代理。
    • 中继代理将Offer广播回客户端子网,完成后续DHCP Request和ACK交互
  4. ​租约续期优化​
    客户端后续续租请求(DHCP Request)可直接单播至服务器,无需中继代理参与,减少网络开销

2.5.3 DHCP服务常用文件及参数解析 

主配置文件/etc/dhcp/dhcpd.conf 
配置文件结构​

DHCP主配置文件(/etc/dhcp/dhcpd.conf)由三部分组成:​参数​​(全局/局部)、​​选项​​(option)和​​声明​​(如subnet、host),三者共同定义IP分配规则。

核心组件解析与示例​
​1. 参数(Parameters)​
  • ​作用​​:定义DHCP服务的行为特性(如租约时间、动态更新策略等)。
  • ​分类​​:
    • ​全局参数​​:在声明外部定义,对所有作用域生效。
    • ​局部参数​​:在声明内部定义,仅作用于当前声明范围。

​常用参数示例​

# 全局参数
ddns-update-style interim;          # 启用DNS动态更新
default-lease-time 3600;             # 默认租约1小时(单位:秒)
max-lease-time 7200;                # 最大租约2小时

# 局部参数(在subnet声明内)
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;
    ignore client-updates;           # 忽略客户端发起的DNS更新
}
常用参数功能
ddns-update-style {none|interim|ad-hoc}支持的 DNS 动态更新类型,必选且仅在全局配置中使用。none:不支持动态更新;interim:DNS 互动更新;ad-hoc:特殊更新模式。
{allow|ignore} client-updates允许或忽略客户机更新 DNS 记录,仅在全局配置中使用。
default-lease-time {秒数}指定客户端默认租约时间,全局、局部配置均可使用。
max-lease-time {秒数}指定客户端最大租约时间,在全局、局部配置均可使用。
range {起始 IP 地址} {终止 IP 地址}定义 IP 子网范围,在 subnet 声明中。一个 subnet 中可以有多个 range 参数,且多个 range 所定义的 IP 地址范围不能重复。
hardware Ethernet {MAC 地址}指定网卡的 MAC 地址,用在 subnet 声明中。
fixed-address {IP 地址}分配给客户端固定的 IP(也就是保留地址),在 host 声明中使用。与 hardware 参数成对使用。
server-name 主机名DHCP 服务器的主机名,在全局、局部配置均可使用。
 ​​2. 选项(Options)​
  • ​作用​​:为客户端分配具体的网络参数(如网关、DNS服务器)。
  • ​格式​​:option <参数名> <值>;支持全局或局部作用域

​常用选项示例​​:

option routers 192.168.1.1;                     # 默认网关
option domain-name-servers 8.8.8.8, 8.8.4.4;     # DNS服务器(多个IP逗号分隔)
option subnet-mask 255.255.255.0;                # 子网掩码(可省略,DHCP自动推导)
常见选项功能
option subnet - mask {子网掩码}为客户端指定子网掩码,可以省略
option routers {网关 IP 地址}为客户端指定默认网关,常用
option domain - name - servers {DNS 服务器 IP 地址}为客户端指定 DNS 服务器的 IP 地址,常用
option domain - name {“域名”}为客户端指定 DNS 域名,可以省略
option host - name {“主机名”}为客户端指定主机名,可以省略
option ntp - server {IP 地址}为客户端指定时间服务器的 IP,可以省略
option broadcast - address {广播地址}为客户端指定广播地址,可以省略
3. 声明(Declarations)​
​(1) subnet声明​
  • ​作用​​:定义子网作用域,分配IP地址池及相关参数。
  • ​示例​​:
subnet 10.254.239.32 netmask 255.255.255.224 {
    range dynamic-bootp 10.254.239.40 10.254.239.60;  # 动态IP范围
    option routers 10.254.239.1;                       # 子网网关
    option broadcast-address 10.254.239.31;            # 广播地址
}

​说明​​:

  • range指定可分配的IP地址范围,支持多个不重叠的range。
  • dynamic-bootp表示同时支持DHCP和BOOTP客户端。

​(2) host声明​
  • ​作用​​:为特定主机(基于MAC地址)分配固定IP(保留地址)。
  • ​示例​​:
host printer {
    hardware ethernet 08:00:07:26:c0:a5;    # 绑定MAC地址
    fixed-address 192.168.1.50;             # 固定IP
    option host-name "office-printer";      # 指定主机名
}

​说明​​:

  • hardware ethernet必须与客户端网卡MAC地址一致。
  • fixed-address可以是IP或域名(需DNS解析)。

​(3) group声明​
  • ​作用​​:将多个主机或子网分组,共享同一组参数或选项。
  • ​示例​
group {
    option domain-name "corp.example.com";   # 组内共享DNS域名
    host server1 {
        hardware ethernet 00:11:22:33:44:55;
        fixed-address 10.0.1.10;
    }
    host server2 {
        hardware ethernet aa:bb:cc:dd:ee:ff;
        fixed-address 10.0.1.11;
    }
}

 ​​(4) range声明​

  • ​作用​​:在subnet中声明可分配的IP地址范围。
  • ​示例​​:
subnet 192.168.2.0 netmask 255.255.255.0 {
    range 192.168.2.10 192.168.2.100;    # 主IP池
    range 192.168.2.150 192.168.2.200;   # 扩展IP池(不可与主池重叠)
}

4、综合配置示例​

​场景​​:为办公网(192.168.1.0/24)分配动态IP,并为打印机和服务器保留固定地址。

# 全局配置
ddns-update-style none;                   # 禁用DNS动态更新
default-lease-time 7200;                  # 默认租约2小时
max-lease-time 14400;                     # 最大租约4小时
option domain-name-servers 192.168.1.2;   # 全局DNS服务器

# 子网声明
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;    # 动态IP范围
    option routers 192.168.1.1;           # 网关
    option broadcast-address 192.168.1.255;

    # 保留地址(host声明)
    host printer {
        hardware ethernet 08:00:07:26:c0:a5;
        fixed-address 192.168.1.50;
    }
    host fileserver {
        hardware ethernet 00:0c:29:ab:cd:ef;
        fixed-address 192.168.1.10;
    }
}

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

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

相关文章

windows版redis的使用

redis下载 Releases microsoftarchive/redishttps://github.com/microsoftarchive/redis/releases redis的启动和停止 进入路径的cmd 启动&#xff1a;redis-server.exe redis.windows.conf 停止&#xff1a;ctrlc 连接redis 指定要连接的IP和端口号 -h IP地址 -p 端口…

Java版OA管理系统源码 手机版OA系统源码

Java版OA管理系统源码 手机版OA系统源码 一&#xff1a;OA系统的主要优势 1. 提升效率 减少纸质流程和重复性工作&#xff0c;自动化处理常规事务&#xff0c;缩短响应时间。 2. 降低成本 节省纸张、打印、通讯及人力成本&#xff0c;优化资源分配。 3. 规范管理 固化企…

NineData 社区版 V4.1.0 正式发布,新增 4 条迁移链路,本地化数据管理能力再升级

NineData 社区版 V4.1.0 正式更新发布。本次通过新增 4 条迁移链路扩展、国产数据库深度适配、敏感数据保护增强‌等升级&#xff0c;进一步巩固了其作为高效、安全、易用的数据管理工具的定位。无论是开发测试、数据迁移&#xff0c;还是多环境的数据管理&#xff0c;NineData…

进阶2_1:QT5多线程与定时器共生死

1、在widget.ui中使用 LCD Number控件 注意&#xff1a;若 LCD 控件不是多线程&#xff0c;LCD控件则会瞬间自增到最大的数值&#xff0c;如上图&#xff0c;说明两者都是多线程处理 2、实现方式 1、创建 LCD 控件并修改为 LCD1 2、创建任务类 mytask. h&#xff0c;对任务类…

在虚拟机Ubuntu18.04中安装NS2教程及应用

NS2简介 一、主要组成部分&#xff1a; 1.NS2&#xff1a;模拟器本身&#xff0c;负责执行TCL脚本进行模拟&#xff0c;并生成trace文件输出结果。 2.NAM&#xff1a;网络动画模拟器&#xff0c;用于将模拟结果可视化。 二、使用的语言&#xff1a; 1.C&#xff1a;NS2中最重要…

VBA —— 第6章子程序与函数

子程序&#xff1a;实现特定功能的程序代码块 子程序语法&#xff1a; [修饰符] Sub 子程序名称([参数1&#xff0c;参数2&#xff0c;参数3]) 代码块 End Sub 子程序如何调用&#xff1a; 1 . 子程序名 [参数1&#xff0c;参数2&#xff0c;...] 2. Call 子程序名 [(参…

全新开发-iVX图形化编程VS完整IDE

本文针对传统软件开发的效率与可控性矛盾&#xff0c;系统阐释 iVX"图形化编程 全栈 IDE" 的复合架构如何突破行业瓶颈。通过 "可视化建模 - 标准代码生成 - 独立运行" 的技术闭环&#xff0c;iVX 实现开发效率提升 60% 与源码完全可控的双重目标。研究揭…

【Linux系列】跨平台安装与配置 Vim 文本编辑器

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

十天学会嵌入式技术之51单片机—day-10

第 20 章 18B20 温度检测 20.1 18B20 概述 20.1.1 简介 18B20 是一种常用的数字温度传感器&#xff0c;广泛应用于环境监测、工业控制、家居自动化 和设备温度监控等领域。 20.1.2 引脚功能 18B20 引脚功能如下图所示&#xff0c;需要特别强调的是&#xff0c;18B20 采用 1-…

【C++】17. 多态

上一章节中我们讲了C三大特性的继承&#xff0c;这一章节我们接着来讲另一个特性——多态 1. 多态的概念 多态(polymorphism)的概念&#xff1a;通俗来说&#xff0c;就是多种形态。多态分为编译时多态(静态多态)和运行时多态(动态多态)&#xff0c;这里我们重点讲运行时多态…

家用或办公 Windows 电脑玩人工智能开源项目配备核显的必要性(含 NPU 及显卡类型补充)

一、GPU 与显卡的概念澄清 首先需要明确一个容易误解的概念&#xff1a;GPU 不等同于显卡。 显卡和GPU是两个不同的概念。 【概念区分】 在讨论图形计算领域时&#xff0c;需首先澄清一个常见误区&#xff1a;GPU&#xff08;图形处理单元&#xff09;与显卡&#xff08;视…

实现一个简单的 TCP 客户端/服务器

注意&#xff1a; TCP 三次握手建立连接建立连接后&#xff0c;TCP 提供全双工的通信服务&#xff0c;也就是在同一个连接中&#xff0c;通信双方 可以在同一时刻同时写数据&#xff0c;相对的概念叫做半双工&#xff0c;同一个连接的同一时刻&#xff0c;只能由一方来写数据T…

对抗帕金森:在疾病阴影下,如何重掌生活主动权?

帕金森病&#xff0c;一种影响全球超 1000 万人的神经退行性疾病&#xff0c;正无声地改变着患者的生活轨迹。随着大脑中多巴胺分泌减少&#xff0c;患者逐渐出现肢体震颤、肌肉僵硬、步态迟缓等症状&#xff0c;甚至连扣纽扣、端水杯这类日常动作都变得艰难。更棘手的是&#…

鸿蒙 UIAbility组件与UI的数据同步和窗口关闭

使用 EventHub 进行数据通信 Stage模型概念图 根据 Stage 模型概念图 UIAbility 先于 ArkUI Page 创建 所以&#xff0c;事件要先 .on 订阅 再 emit 发布 假如现在有页面 Page1 和他的 UIAbility // src/main/ets/page1ability/Page1Ability.ets onCreate(want: Want, laun…

Vue3学习(组合式API——计算属性computed详解)

目录 一、计算属性computed。 Vue官方提供的案例。(普通写法与计算属性写法) 使用计算属性computed重构——>简化描述响应式状态的复杂逻辑。 &#xff08;1&#xff09;计算属性computed小案例。 <1>需求说明。&#xff08;筛选原数组——>得新数组&#xff09; &…

Android Studio 模拟器配置方案

Android Studio 模拟器配置方案 1.引言2.使用Android Studio中的模拟器3.使用国产模拟器1.引言 前面介绍【React Native基础环境配置】的时候需要配置模拟器,当时直接使用了USB调试方案,但是有些时候可能不太方便连接手机调试,比如没有iPhone调不了ios。接下来说明另外两种可…

k8s中ingress-nginx介绍

1. 介绍 Ingress是一种Kubernetes资源&#xff0c;用于将外部流量路由到Kubernetes集群内的服务。与NodePort相比&#xff0c;它提供了更高级别的路由功能和负载平衡&#xff0c;可以根据HTTP请求的路径、主机名、HTTP方法等来路由流量。可以说Ingress是为了弥补NodePort在流量…

字节DeerFlow开源框架:多智能体深度研究框架,实现端到端自动化研究流程

&#x1f98c; DeerFlow DeerFlow&#xff08;Deep Exploration and Efficient Research Flow&#xff09;是一个社区驱动的深度研究框架&#xff0c;它建立在开源社区的杰出工作基础之上。目标是将语言模型与专业工具&#xff08;如网络搜索、爬虫和Python代码执行&#xff0…

算法第十八天|530. 二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

530. 二叉搜索树的最小绝对差 题目 思路与解法 第一想法&#xff1a; 一个二叉搜索树的最小绝对差&#xff0c;从根结点看&#xff0c;它的结点与它的最小差值一定出现在 左子树的最右结点&#xff08;左子树最大值&#xff09;和右子树的最左结点&#xff08;右子树的最小值…

微服务调试问题总结

本地环境调试。 启动本地微服务&#xff0c;使用公共nacos配置。利用如apifox进行本地代码调试解决调试问题。除必要的业务微服务依赖包需要下载到本地。使用mvn clean install -DskipTests进行安装启动前选择好profile环境进行启动&#xff0c;启动前记得mvn clean清理项目。…