DHCP原理1-单个局域网出现多个DHCP服务器会发生什么

1. 背景

        DHCP全称是Dynamic Host Configuration Protocol。其协议标准是RFC1541(已被RFC2131取代),主要实现服务器向客户端动态分配IP地址(如IP地址、子网掩码、网关、DNS)和配置信息。其系统架构是标准的C/S架构。RFC2131标准是基于Bootstrap 协议 (BOOTP)。

TCP/IP协议4层模型

        DHCP是处于上图中的应用层,传输层使用了UDP,可以通过网络分析工具对此进行分析。客户端通过68端口发出广播请求,服务器通过67端口发送广播回应请求。

2. 消息格式

TCP/IP二进制协议帧结构

3. 通信流程

DHCP通信流程

         如上图所示,DHCP的流程分为4步:DHCPDISCOVER(发现)、DHCPOFFER(提供)、DHCPREQUEST(请求)、DHCPACK(确认)。

3.1. DHCPDISCOVER

        DHCP 客户端向范围内的所有可用 DHCP 服务器发送 DHCP 发现广播请求。客户端发送 DHCPDISCOVER 数据包,其UDP的目标地址为 255.255.255.255,源地址为 0.0.0.0。 DHCP 部分将数据包标识为发现数据包,并使用网卡的物理地址在两个位置标识客户端。

3.2. DHCPOFFER

        从 DHCP 服务器接收 DHCP 提供广播响应,提供可用的 IP 地址租约。收到DHCPDISCOVER阶段发送的数据包后,DHCP 服务器通过发送 DHCPOFFER 数据包进行响应,其源地址为DHCP服务器地址,目标地址为255.255.255.255,DHCP 部分将数据包标识为 Offer。

3.3. DHCPREQUEST

        DHCP 客户端广播请求在结束时要求提供 IP 地址租约和 DHCP 广播确认。客户端通过发送 DHCPREQUEST 来响应 DHCPOFFER。 在以下捕获的 IP 部分中,客户端的源地址仍为 0.0.0.0,数据包的目标地址仍为 255.255.255.255。 客户端保留 0.0.0.0,因为客户端尚未收到来自服务器的验证,可以开始使用提供的地址。 目标仍会广播,因为多个 DHCP 服务器可能已响应,并且可能保留对客户端提供的套餐的预留。 这让其他 DHCP 服务器知道他们可以释放其提供的地址并将其返回到其可用池。

3.4. DHCPACK

        DHCP 服务器使用 DHCPACK 响应 DHCPREQUEST,从而完成初始化周期。 源地址是 DHCP 服务器 IP 地址,目标地址仍为 255.255.255.255。

4. 多DHCP问题

        并不是同一网络出现多个DHCP服务器就一定存在问题,如为了增加网络的稳定性网络中设置了两个DHCP服务器,分别负责两段ip的分配保证分出去的ip不会出现冲突,当一个DHCP服务器出现异常后另外一个也可以正常工作;如为了方便特殊网络设备的管理,在DHCP基础上架设了一个私有的DHCP服务器,仅仅为特殊设备分配IP,并不为普通设备分配IP。当然一般情况下同一网络出现多DHCP会出现网络问题,要么是ip地址分配错误,要么是ip出现冲突。

        在中小型网络中多DHCP服务器冲突是一种常见的网络故障,在该网络情况下可能会出现一些网络设备可能会联网异常,使用wireshak或者tcpdump工具对网络中端口68或67上的UDP进行监听,然后对数据进行分析找到DHCP服务器的MAC地址。

5. 参考协议标准

RFC 编号

标题

说明

链接

RFC 1541

Dynamic Host Configuration Protocol (DHCP)

DHCP 早期版本规范

RFC 1541

RFC 2131

Dynamic Host Configuration Protocol (DHCP)

DHCP 核心规范,替代了 RFC 1541

RFC 2131

RFC 2132

DHCP Options and BOOTP Vendor Extensions

定义了 DHCP 选项和 BOOTP 扩展

RFC 2132

RFC 3315

Dynamic Host Configuration Protocol for IPv6 (DHCPv6)

适用于 IPv6 网络的 DHCP 协议

RFC 3315

RFC 3646

DNS Configuration options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6)

定义了在 IPv6 网络中传递 DNS 配置信息的选项

RFC 3646

RFC 6221

Lightweight DHCPv6 Relay Agent

定义了轻量级的 DHCPv6 中继代理

RFC 6221

       

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

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

相关文章

自学SAP是学习ECC版本还是S4版本?

很多人想学SAP,问我应该学ECC版本还是S4版本,我的建议如果你是自学的话,我个人建议使用ECC版本就行,因为这两个版本前台业务和后台配置的操作差异并不大,主要差异在于数据库的差异,前台业务操作和后台系统配…

OS复习笔记ch12-1

文件系统 概述 文件是大多数应用程序的核心要素,文件系统是操作系统对用户来说最重要的部分之一。 本章的主要内容见下图: 文件,大家耳熟能详的就是的docx、pdf、jpg、MP4等各种后缀文件,根据任务需要文件又分成了文本、图片、…

构建可维护的返利系统:最佳实践与常见问题

构建可维护的返利系统:最佳实践与常见问题 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在当今竞争激烈的电商市场中,返利系统作为一…

mediasoup源码分析(七)transport传输

transport传输 一、Tansport 转发到Producer二、RtpStreamRecv 处理收到的包三、数据传输到Router,再分发到Consumertips 一、Tansport 转发到Producer Transport收到数据packet后,会解析出packet中所带的ssrc字段,然后基于ssrc找到该数据的…

超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!

众所周知,实时目标检测( Real-Time Object Detection )一直由 YOLO 系列模型主导。 飞桨在去年 3 月份推出了高精度通用目标检测模型 PP-YOLOE ,同年在 PP-YOLOE 的基础上提出了 PP-YOLOE 。后者在训练收敛速度、下游任务泛化能力以及高性能部署能力方面…

django使用uuid的坑,据说有外国公司已经为此损失了超1w刀

错误的代码 import uuid from django.db import models class MyModel(models.Model): id models.CharField(max_length32, primary_keyTrue, editableFalse, defaultstr(uuid.uuid4())) # 其他字段...上述代码错误的地方在于,defaultstr(uuid.uuid4())这部分…

我国目前常用的卫星影像星座有哪些(高分二号、高分七号、吉林一号、高景一号······)

​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 中国目前的遥感卫星在数量、种类和应用领域上都取得了显著进展,覆盖了陆地、气象、海…

ViT:5 Knowledge Distillation

实时了解业内动态,论文是最好的桥梁,专栏精选论文重点解读热点论文,围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)…

第1章、数据库概览

1、数据管理的三个阶段(利用计算机进行数据管理) 人工管理阶段——>文件系统阶段——>数据库系统阶段 人工管理阶段的特点:①数据不能长期保存在计算机中、②数据与程序不具有独立性、③数据不共享。 文件系统阶段,文件系…

博弈论(Nim 游戏)

公平组合游戏ICG 若—个游戏满足: 由两名玩家交替行动;在游戏进程的任意时刻,可以执行的合法行动与轮到哪名玩家无关;不能行动的玩家判负; 则称该游戏为一个公平组合游戏。 NIM博弈属于公平组合游戏,但城建的棋类游戏,比如围棋,…

Java17 --- SpringSecurity之前后端分离处理

目录 一、实现前后端分离 1.1、导入pom依赖 1.2、认证成功处理 1.3、认证失败处理 1.4、用户注销处理 1.5、请求未认证处理 1.6、跨域处理 1.7、用户认证信息处理 1.8、会话并发处理 一、实现前后端分离 1.1、导入pom依赖 <dependency><groupId>co…

Zabbix 7.0 LTS新特征

Zabbix 7.0 LTS版本是基于GNU Affero通用公共许可证第3版&#xff08;AGPLv3&#xff09;发布的&#xff0c;7.0 LTS更新了许多新的功能&#xff0c;包含合成终端用户Web监控、Zabbix proxy高可用性和负载均衡、重大性能和可扩展性提升、原生多因子认证&#xff08;MFA&#xf…

【python】python股票量化交易策略分析可视化(源码+数据集+论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

计组_计算机概要与设计

2024.06.23~2024.06.27&#xff1a;计算机组成原理学习笔记 CH1 计算机概要与设计 1.1 计算机的分类1.1.1 传统按照应用分类1.1.2 后PC时代1.1.3 存储容量 1.2 八大伟大设计思想1.2.1 两个设计原则1.2.2 四个提高性能1.2.3 存储器层次1.2.4 冗余提高可靠性 1.3 软硬件基础1.3.1…

React之useEffect

在React中&#xff0c;useEffect 是一个非常重要的Hook&#xff0c;它用于管理副作用操作。副作用指的是那些不直接与组件渲染相关的操作&#xff0c;例如数据获取、订阅、手动DOM操作等。本文将详细介绍 useEffect 的概念、基础使用、参数说明以及如何清除副作用&#xff0c;并…

软复位和硬复位

“硬复位”和“软复位”&#xff1a; 硬复位&#xff08;hard reset&#xff09;&#xff1a;通过外部复位引脚或者电源重启来实现的复位方式。 当硬复位信号有效时&#xff0c;系统会停止所有操作&#xff0c;并将所有寄存器和状态重置为初始状态。硬复位通常由硬件按钮或电…

【fastapi+mongodb】使用motor操作mongodb(三)

本篇文章介绍mongodb的删和改&#xff0c;下面是前两篇文章的链接&#xff1a; 【fastapimongodb】使用motor操作mongodb 【fastapimongodb】使用motor操作mongodb&#xff08;二&#xff09; delete delete 的用法基本和查找一致&#xff0c;包括delete_one&#xff08;删除…

借助AI快速提高英语听力:如何获得适合自己的听力材料?

英语听力是英语学习中的一个重要组成部分&#xff0c;它对于提高语言理解和交流能力至关重要。可理解性学习&#xff08;comprehensible input&#xff09;是语言习得理论中的一个概念&#xff0c;由语言学家Stephen Krashen提出&#xff0c;指的是学习者在理解语言输入的同时&…

如何使用STL中的模板类

在C中&#xff0c;标准模板库&#xff08;STL&#xff09;提供了大量的模板类&#xff0c;这些类可以处理各种类型的数据&#xff0c;从而极大地提高了代码的复用性和灵活性。要使用STL中的模板类&#xff0c;你需要遵循一些基本的步骤和约定。 以下是一些使用STL模板类的基本…

时空预测 | 基于深度学习的碳排放时空预测模型

时空预测 模型描述 数据收集和准备&#xff1a;收集与碳排放相关的数据&#xff0c;包括历史碳排放数据、气象数据、人口密度数据等。确保数据的质量和完整性&#xff0c;并进行必要的数据清洗和预处理。 特征工程&#xff1a;根据问题的需求和领域知识&#xff0c;对数据进行…