DHCP 中继(DHCP Relay)是一种允许跨网段分配 IP 地址的技术,无需在每个子网部署 DHCP 服务器。以下是其原理和配置方法的详细说明:

一、核心原理

1. 为什么需要 DHCP 中继?
  • 问题:DHCP 客户端通过广播(255.255.255.255)寻找服务器,但广播无法跨网段传播。
  • 解决方案:在子网边界设备(如路由器、三层交换机)上配置 DHCP 中继,将广播请求转换为单播转发给 DHCP 服务器。
2. 工作流程
  1. 客户端请求:DHCP 客户端发送广播请求(Discover)。
  2. 中继接收:中继设备(如路由器)收到广播后,封装请求为单播(添加 giaddr 字段,即中继接口 IP)。
  3. 服务器响应:DHCP 服务器收到单播请求,根据 giaddr 字段选择合适的地址池,回复单播响应。
  4. 中继转发:中继设备将响应转发给客户端。

 

DHCP中继实验

一、项目背景

Langlang需要对DHCP的客户端进行地址分配,但DHCP服务器与DHCP客户端不在同一个网络范围,Langlang不知道怎么解决这个问题,请你帮帮他。

二、项目拓扑图

三、设备命名与IP地址规划

设备名

接口编号

IP地址规划

R1

GE0/0

192.168.1.1/24

R2

GE0/0

192.168.1.2/24

GE0/1

192.168.2.254/24

R3

GE0/0

DHCP获取

 

四、项目需求

1. 按照图示连接好线缆

2. 配置DHCP,R1为DHCP服务器,需要跨越网段为R3分配IP地址

3. 假设192.168.2.1~192.168.2.9已经被其他设备固定使用,所以需要排除该地址段

五、配置思路

第一步:按照图示连接好线缆并配置IP地址

第二步:在R1上使用DHCP功能,配置DHCP地址池,并配置相关参数信息

第三步:在R2上使用DHCP中继功能,使其知道服务器在网络中的位置

第四步:需要使Server与Client之间网络连通

第五步:设置Forbidden IP,排除192.168.2.1~192.168.2.9

六、具体实施

步骤一:首先配置好每个接口IP地址

R1:

<H3C>sys
System View: return to User View with Ctrl+Z.
[H3C]sysname R1
[R1]int g0/0
[R1-GigabitEthernet0/0]ip add 192.168.1.1

R2:

<H3C>sys
System View: return to User View with Ctrl+Z.
[r2]sysname R2
[R2]int g0/0
[R2-GigabitEthernet0/0]ip add 192.168.1.2
[R2-GigabitEthernet0/0]quit
[R2]int g0/1
[R2-GigabitEthernet0/1]ip add 192.168.2.254 24
[R2-GigabitEthernet0/1]quit

步骤二:在R1上使用DHCP功能

R1]dhcp enable
#使能DHCP功能,缺省未使能该功能

步骤三:在R1配置ip地址池

[R1]dhcp server ip-pool 1
#DHCP服务IP地址池名为1
[R1-dhcp-pool-1]network 192.168.2.0 mask 255.255.255.0
#该地址池地址范围为192.168.2.0~192.168.2.255
[R1-dhcp-pool-1]gateway-list 192.168.2.254
#网关为192.168.2.254
[R1-dhcp-pool-1]dns-list 114.114.114.114
#DNS为114.114.114.114
[R1-dhcp-pool-1]expired day 1
#设置租期时间为1天
[R1-dhcp-pool-1]quit
#返回上一级视图
[R1]dhcp server forbidden-ip 192.168.2.1 192.168.2.9
#DHCP服务器排除地址192.168.2.1~192.168.2.9

步骤四:在R2配置DHCP中继

[R2]dhcp enable
#使能DHCP功能
[R2]interface GigabitEthernet 0/1
#进入GE0/1接口视图
[R2-GigabitEthernet0/1]dhcp select relay 
#设置GE0/1接口为DHCP中继接口,后续收到DHCP报文会进行代理转发
[R2-GigabitEthernet0/1]dhcp relay server-address 192.168.1.1
#告诉中继接口,DHCP服务器的IP地址为192.168.1.1

步骤五:在R3上设置接口IP地址为DHCP获取

[R3]interface GigabitEthernet 0/0
#进入GE0/0接口视图
[R3-GigabitEthernet0/0]ip address dhcp-alloc
#设置接口IP地址为DHCP获取

步骤六:查看DHCP客户端IP地址获取情况

#此时获取了一个以169.254.X.X/16的地址,此地址代表没有正确获取到DHCP地址所产生的地址(配置错误、地址池没有空闲的地址、网络不通均有可能等情况)

#此环境中是因为DHCP Server与DHCP Client之间的网络不通导致

[R3]display ip interface brief 
*down: administratively down
(s): spoofing  (l): loopback
Interface           Physical Protocol IP address/Mask    VPN instance Description  
GE0/0               up       up       169.254.3.0/16     --           --
………………

步骤七:在DHCP Server上配置一条去往DHCP Client的路由,使其网络互通

R1:

R1]ip route-static 192.168.2.0 24 192.168.1.2
#手动配置IP路由目标网络为192.168.2.0/24,下一跳为192.168.1.2

步骤八:重启DHCP Client接口

R3

[R3]interface GigabitEthernet 0/0
#进入GE0/0接口视图

 

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

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

相关文章

ABP VNext + RediSearch:微服务级全文检索

ABP VNext RediSearch&#xff1a;微服务级全文检索 &#x1f680; &#x1f4da; 目录ABP VNext RediSearch&#xff1a;微服务级全文检索 &#x1f680;&#x1f4da; 一、背景与动机 &#x1f680;&#x1f6e0;️ 二、环境与依赖 &#x1f433;2.1 Docker Compose 启动 R…

TensorFlow深度学习实战——基于自编码器构建句子向量

TensorFlow深度学习实战——基于自编码器构建句子向量 0. 前言1. 句子向量2. 基于自编码器构建句子向量2.1 数据处理2.2 模型构建与训练 3. 模型测试相关链接 0. 前言 在本节中&#xff0c;我们将构建和训练一个基于长短期记忆 (Long Short Term Memory, LSTM) 的自编码器&…

C语言使用Protobuf进行网络通信

笔者前面博文Go语言网络游戏服务器模块化编程介绍了Go语言在开发网络游戏时如何进行模块化编程&#xff0c;在其中使用了Protobuf进行网络通信。在Protobuf官方实现中并没有生成C语言的实现&#xff0c;不过有一个开源的protobuf-c可以使用。 先来看看protobuf-c生成的代码&am…

vue3 随手笔记12--组件通信方式9/5--useAttrs

一 什么是useAttrsuseAttrs 是 Vue 3 Composition API 中提供的一个函数&#xff0c;它属于 Vue 的组合式 API 工具集的一部分。通过 useAttrs&#xff0c;你可以访问传递给组件但未被声明为 props 的所有属性。这对于处理非 prop 特性&#xff08;attributes&#xff09;特别有…

HumanRisk-自动化安全意识与合规教育平台方案

权威数据显示&#xff0c;74%以上的数据泄露与网络安全事件归根结底与人为因素有关&#xff0c;60%以上的网络安全事件是由内部人员失误造成的。这一现状揭示了一个核心命题&#xff1a;网络安全威胁正从技术漏洞转向“人为因素风险”。Gartner的调查发现&#xff0c;即便接受了…

2025年食品科学与健康大数据国际会议(SHBD 2025)

2025年食品科学与健康大数据国际会议 2025 International Conference on Food Science and Health Big Data&#xff08;一&#xff09;大会信息 会议简称&#xff1a;ICFSHBD 2025 大会地点&#xff1a;中国上…

CompareFace人脸识别算法环境部署

一、docker 安装 步骤1&#xff1a;启用系统功能 右键开始菜单 → 应用和功能 → 点击 程序和功能 → 勾选 Hyper-V 和 Windows子系统Linux 步骤2&#xff1a;获取安装包 访问Docker官网安装包下载页 &#xff0c;下载「Docker Desktop Installer.rar」压缩包 步骤3&#…

STM32固件升级设计——内部FLASH模拟U盘升级固件

目录 一、功能描述 1、BootLoader部分&#xff1a; 2、APP部分&#xff1a; 二、BootLoader程序制作 1、分区定义 2、 主函数 3、配置USB 4、配置fatfs文件系统 5、程序跳转 三、APP程序制作 四、工程配置&#xff08;默认KEIL5&#xff09; 五、运行测试 结束语…

操作系统引导过程

操作系统引导是指计算机利用 CPU 运行特定程序&#xff0c;通过程序识别硬盘&#xff0c;识别硬盘分区&#xff0c;识别硬盘分区上的操作系统&#xff0c;最后通过程序启动操作系统。 引导流程&#xff08;8步核心环节&#xff09; 1. 激活CPU 加电后CPU自动读取 ROM中的Boot…

Safetensors与大模型文件格式全面解析

Safetensors是一种专为存储大型张量数据设计的文件格式&#xff0c;由Hugging Face团队开发&#xff0c;旨在提供安全高效的模型参数存储解决方案。下面将详细介绍Safetensors格式及其特点&#xff0c;并全面梳理当前主流的大模型文件格式。 一、Safetensors格式详解 1. 基本概…

分布式理论:CAP、Base理论

目录 1、CAP理论 1.1、介绍 1.2、CAP的三种选择 1.3、CAP的注意事项 2、BASE理论 2.1、定义介绍 2.2、最终一致性的介绍 2.3、BASE的实现方式 2.4、与ACID的对比 3、CAP与BASE的联系 4、如何选择CAP 前言 在分布式系统中&#xff0c;CAP理论和BASE理论是指导系统设计…

【最新】飞算 JavaAl安装、注册,使用全流程,让ai自己给你写代码,解放双手

目录 飞算 JavaAl 产品介绍 安装飞算 JavaAl 第一步&#xff1a;点击 File->Setting 第二步&#xff1a;点击 Plugins 第三步&#xff1a;搜索 CalEx-JavaAI 第四步&#xff1a;点击 Install 进行安装 第五步&#xff1a;点击 Install &#xff0c;查看安装好的飞算…

无人设备遥控器之姿态控制算法篇

无人设备遥控器的姿态控制算法通过传感器数据融合、控制算法优化和执行机构调节实现动态平衡&#xff0c;核心算法包括PID控制、自适应控制、模型预测控制&#xff08;MPC&#xff09;&#xff0c;以及数据融合中的互补滤波和卡尔曼滤波&#xff0c;同时涉及四元数算法和深度强…

【加解密与C】Base系列(三)Base85

Base85 编码简介 Base85&#xff08;也称为 Ascii85&#xff09;是一种二进制到文本的编码方案&#xff0c;用于将二进制数据转换为可打印的ASCII字符。它的效率高于Base64&#xff0c;但生成的字符串可能包含特殊字符&#xff08;如引号或反斜杠&#xff09;&#xff0c;需在…

Docker企业级应用:从入门到生产环境最佳实践

一、Docker核心概念与架构 1.1 Docker技术栈 #mermaid-svg-CUEiyGo05ZYG524v {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-CUEiyGo05ZYG524v .error-icon{fill:#552222;}#mermaid-svg-CUEiyGo05ZYG524v .error-te…

8、保存应用数据

目录用户首选项的使用用户首选项主要API用户首选项开发流程用户首选项开发实践关系型数据库的使用关系型数据库工作流程关系型数据库开发实践用户首选项的使用 用户首选项主要API 用户首选项开发流程 成功的获取了一个名为myStore的Preferences实例 保存了一个键值对&#x…

(C++)list列表相关基础用法(C++教程)(STL库基础教程)

源代码&#xff1a;#include <iostream> #include <list>using namespace std;int main(){list<int> numbers{10,20,30};numbers.push_front(5);numbers.push_back(40);auto it numbers.begin();advance(it,2);numbers.insert(it,15);cout<<"该列…

Spring CGLIB私有方法访问成员变量为null问题

场景 代码 RestController public class TestJob {Autowiredprivate XxService xxService;XxlJob("testCGLIB")private void doTest(){System.out.println("方法调用");System.out.println("成员变量注入:"(xxService!null));this.doInnerTest()…

Paimon本地表查询引擎LocalTableQuery详解

LocalTableQueryLocalTableQuery 是 Paimon 中实现本地化、带缓存的表查询的核心引擎。它的主要应用场景是 Flink 中的 Lookup Join。当 Flink 作业需要根据一个流中的 Key 去关联一个 Paimon 维表时&#xff0c;LocalTableQuery 可以在 Flink 的 TaskManager 节点上&#xff0…

使用协程简化异步资源获取操作

异步编程的两种场景 在异步编程中&#xff0c;回调函数通常服务于两种不同场景&#xff1a; 一次性资源获取&#xff1a;等待异步操作完成并返回结果。持续事件通知。监听并响应多个状态变更。 Kotlin为这两种场景提供了解决方案&#xff1a;使用挂起函数简化一次性资源获取…