DHCP笔记

news2024/12/25 23:53:42

目录

DHCP动态主机配置协议——UDP67/68端口

DHCP获取IP地址

客户端首次获取IP地址

客户端再次获取IP地址

租期/续租

DHCP的工作报文

DHCP的配置

案例


DHCP动态主机配置协议——UDP67/68端口

DHCP是应用层协议,采用C/S服务模式,只能在一个广播域内工作

67端口(服务器端)         68端口(客户端)

DHCP获取IP地址

客户端首次获取IP地址

(1)客户端

DHCP discover包——广播发送,用来寻找网络中的DHCP服务器端(工作范围:一个广播域)

(2)服务器端

DHCP offer包——既可以广播发送也可以单播发送(区分厂商:华为→单播)(该数据包具备单播条件),携带可用IP地址

(3)客户端

DHCP request包——广播发送(但是具备单播条件),请求一个IP地址(最先收到的offer包中携带的IP地址)

(4)服务器端

DHCP ack包——既可以广播发送也可以单播发送(具备单播条件),确认IP地址分配

客户端再次获取IP地址

(1)客户端

DHCP request包——单播发送,请求一个IP地址(最先收到的offer包中携带的IP地址)

(2)服务器端

DHCP ack包——既可以广播发送也可以单播发送(区分厂商:华为→单播)(具备单播条件)

租期/续租

DHCP的租期——可以使用IP地址的期限

默认24h(在24h内都可以使用这个IP地址)

DHCP的续租过程:

T1时间:租期的50%,默认12h

T2时间:租期的87.5%,默认21h

1、到达T1时间,客户端向服务器发送单播DHCP request报文延续租期(刷新为24h)。如果收到服务器的DHCP ack报文,则续租成功。如果没有收到DHCP ack报文,则客户端继续使用这个IP地址。

2、直到到达T2时间,向服务器广播发送DHCP request报文延续租期。如果收到服务器的DHCP ack报文,则续租成功。如果没有收到DHCP ack报文,则客户端继续使用这个IP地址。在使用租期到期时,客户端自动放弃使用这个IP地址,并开始新的DHCP过程。

DHCP的工作报文

报文类型含义
DHCP discover客户端用来寻找DHCP服务器
DHCP offer服务器端用来响应discover报文,携带可用IP地址
DHCP request客户端请求配置确认,或者续租
DHCP ack服务器端对request报文的确认响应
DHCP nak服务器对客户端的DHCP request报文的拒绝响应报文。客户端收到此报文后,会重新开始新的DHCP过程
DHCP release客户端主动释放服务器分配的IP地址。当服务器收到此报文后,则回收该IP地址,并可以将其分配给其它的客户端

DHCP的配置

1.路由器接口配置IP地址

2.开启DHCP服务

[R1]dhcp enable

3.创建IP地址池

[R1]ip pool abc

Info: It's successful to create an IP address pool.

[R1-ip-pool-abc]

4.宣告可以下发的IP地址段

[R1-ip-pool-abc]network 192.168.1.0 mask 24

5.告知网关地址

[R1-ip-pool-abc]gateway-list 192.168.1.1

6.下发的DNS服务器的IP地址

[R1-ip-pool-abc]dns-list 8.8.8.8 114.114.114.114

7.进入相应接口激活DHCP服务

[R1]interface g0/0/0

[R1-GigabitEthernet0/0/0]dhcp select global

案例

测试结果:

点击应用DHCP

PC1

PC2

PC3

PC4

 

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

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

相关文章

TortoiseSVN使用-授权访问

文章目录 3.4.6 授权访问 3.4.6 授权访问 总结: 如果是匿名访问(就是不用输入用户名密码的访问方式),请只开启anon-access write如果授权访问,请先设置anon-access none,然后打开3个:auth-a…

C++ “类与对象”

类与对象的概念 类相当于是结构体的声明,是结构体的设计图,而对象是利用设计图的创造的产物. (1).类的大小计算 类的大小计算时与结构体类似,但函数是不计入大小的(函数放在单独的公共空间). 在…

贝叶斯学习(Bayesian Learning)提高篇

Advanced Bayesian Learning 前言Review Bayes Optimal ClassifierNaive Bayes Classifier这里其实不太懂ExampleLaplace smoothing加完之后原数据的比例会发生变化分子1,如何确定分母的加数 Naive Bayes for Document Classi cationProblem statementDocument repr…

C语言猜数字小游戏

今天,我们来写一个猜数字小游戏,这个游戏的大致规则如下:👇 1.电脑会随机生成一个数1~100 2.猜数字 a> 猜大了,提醒猜大了,继续猜 b> 猜小了,提醒猜小了,继续彩 c> 猜对了&…

Windows下版本控制器(SVN)-启动服务器端程序

文章目录 3.3 启动服务器端程序 3.3 启动服务器端程序 ①SVN 服务器必须处于运行状态才能响应客户端请求,帮助我们管理项目文件。 所以我们必须将 SVN 服务器启动起来。启动 SVN 服务器有两种方法,一个是命令 行方式,一个是注册 Windows 服务…

基于容器平台 ACK 快速搭建 Stable Diffusion

作者:子白 本文介绍如何在阿里云容器平台 ACK 上快速搭建一套可对外提供服务的 Stable Diffusion。 CPU 版本 前提条件 已创建 Kubernetes 托管版集群。具体操作,请参见创建 Kubernetes 托管版集群[1]。 📍无需 GPU,节点需要…

数据库系统概论--第三章课后习题

1.试述SQL的特点。 答:SQL有以下特点: ①综合统一:SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体。在关系模型中实体和实体间的联系均用关系表示,这种数据结构的单一性带来了数据操作符的统一性,查找、插入、删除、更新等每一种操作都只需一种操作…

NestJS(1)初识 NestJS 和 Hello, World

初识 NestJS 先来看下官网对 NestJS 的介绍。 Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架。它利用 JavaScript 的渐进增强的能力,使用并完全支持 TypeScript (仍然允许开发者使用纯 JavaScript 进行开发&#xff…

YARN On Mapreduce搭建与wordCount案例实现

文章目录 1.前言1.YARN 集群搭建1.1 ResourceManager High Availability 架构图1.2 配置文件mapred-site.xmlyarn-site.xml 1.3 启动服务和rm启动yarn启动rm资源管理访问页面查看集群状态 2.运行官方的WC案例2.1 运行jar准备一个data.txt文件日志查看输出 1.前言 YARN的基本思…

JVM原理

JVM 什么是JVM? JVM是一种虚拟出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言最重要的特点就是跨平台运行。 使用J…

Nginx之rewrite与location重写功能

一、常用的Nginx 正则表达式 字符涵义以及示例^匹配输入字符串的起始位置$匹配输入字符串的结束位置*匹配前面的字符零次或多次;如“ol*”能匹配“o”及“ol”、“oll”匹配前面的字符一次或多次;如“ol”能匹配“ol”及“oll”、“olll”,但…

GoJS Beginner Tutorial #1

1.关系图: gojs部件由一个或多个gojs面板组成,这些面板包含和组织各种gojs图形对象 通常使用go.GraphObject.make创建一个GraphObject,我们通过使用$符号变量缩短了该函数的名称 这个函数的第一个参数,往往是你想要制作的GraphOb…

Sentinel同时配置fallback和blockHandler的问题

Spring Cloud在使用Sentinel进行服务降级和熔断时,如果同时配置了fallback和blockHandler,则在服务熔断后,抛出的BlockException不会再fallback逻辑中执行,而是在blockHandler逻辑中执行。 首先来看只配置了fallback的情况&#x…

Python文件管理【open和with open的使用】

一、文件的操作步骤 基本都是三个步骤: 打开文件、读写文件、关闭文件 1.open()函数 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新的文件,语法如下: open(name,mode) name&#xff…

LeafLet加载自定义Legend的设计与实现

背景 众所周知,在GIS的世界里,图例和地图永远是一对一起出现的对象。在地图上表示地理环境各要素,比如山脉、河流、城市、铁路等所用的符号叫做图例。这些符号所表示的意义,常注明在地图的边角上。图例是表达地图内容的基本形式和…

引用与指针:在C++中如何做出正确的选择?

文章目录 前言1. 引用入门2. 引用作为函数传参3. 引用作为函数返回值4. 引用和指针5. 其他区别 前言 引用是 C 的新增内容,在实际开发中会经常使用,它就如同C语言的指针一样重要,但它比指针更加方便和易用,有时候甚至是不可或缺的…

使用YOLOV5-6.2预训练模型(yolov5s)进行detect的详细说明(detect.py)文件解析

目录 准备源文件和预训练文件下载python版本以及torch版本说明:文件目录说明测试文件 detect.py使用测试单张图片测试一个文件夹里的图片 准备 源文件和预训练文件下载 下载链接:https://github.com/ultralytics/yolov5/releases/tag/v6.2 源文件和预训…

数据科学与机器学习在软件开发中的应用

数据科学和机器学习是现代软件开发的重要组成部分,可以帮助开发人员更好地理解和分析数据,从而提高软件的质量和性能。在本篇博客中,我将深入探讨数据科学和机器学习在软件开发中的应用,并讨论它们如何帮助我们创建更好的软件。 …

你最想知道的APP自动化测试项目实战详解

目录 一、引言 二、APP自动化测试的基本概念 三、APP自动化测试的流程 四、APP自动化测试的最佳实践 五、常见的APP自动化测试工具 六、APP自动化测试的挑战和解决方案 七、结论 一、引言 随着移动设备的普及和应用市场的繁荣,越来越多的企业开始开发和发布移…

【手撕MyBatis源码】执行器与缓存

文章目录 概述执行器(Executor)执行器总结 缓存MyBatis缓存概述一级缓存(LocalCache)Spring集成MyBatis后一级缓存失效的问题二级缓存二级缓存组件结构二级缓存的使用为什么要提交之后才能命中二级缓存?二级缓存结构二级缓存执行流程 概述 通过一条修改语句,我们来…