DHCP动态主机配置协议

DHCP概述

DHCP是什么

  • DHCP:Dynamic Host Configuration Protocol:动态主机配置协议
  • DHCP是一种集中对用户IP地址进行动态管理和配置的技术

DHCP作用:

  • 作用:实现IP地址的动态分配和集中管理
  • 优势:避免手工配置IP地址,提高工作效率,避免出错,且能快速适应网络变化

DHCP角色

  • DHCP客户端:需要获取IP地址的设备
  • DHCP服务器:负责为DHCP客户端分配IP地址等网络参数的设备
  • DHCP中继:负责DHCP服务器和DHCP客户端之间的DHCP报文
    ps:企业网络中一般不需要部署DHCP中继

DHCP服务器给首次接入网络中的客户端分配网络参数的工作原理

  • 发现阶段:客户端广播发送DHCP Discover报文(DHCP发现报文,客户端找DHCP服务器,请求IP地址)
  • 提供阶段:服务端收到客户端发的报文后,会单播回复DHCP Offer报文(DHCP回应报文,服务器给客户端发IP地址、网关、DNS等)
  • 选择阶段:客户端收到Offer报文后,会再次广播发送DHCP Request报文(DHCP请求报文,客户端广播告知所有的服务器,选择了某某IP地址)
  • 确认阶段:服务器收到客户端发的报文后,会单播回复DHCP ACK报文(DHCP确认报文,确认分配结果,只有发了ACK报文,客户端才可以使用IP)

基于全局的DHCP实验

拓扑

需求:PC1/PC2能够自动获取IP地址、网关、DNS

配置步骤:

第一步:在系统视图下开启DHCP功能

第二步:配置IP地址池

  • 创建IP地址池
  • 配置可分配的IP地址段
  • 配置网关地址
  • 配置DNS地址
  • 配置租期

第三步:配置R1路由器接口的IP地址

  • 这个接口接收客户端发的报文,这个接口的IP地址,即客户端的网关地址
  • 在这个接口下开启基于全局的DHCP功能

第四步:验证结果

配置命令:

  • [R1]dhcp enable //开启DHCP功能
  • [R1]ip pool tedu //创建IP地址池
  • [R1-ip-pool-tedu]network 192.168.1.0 mask 24 //配置可分配的地址段
  • [R1-ip-pool-tedu]gateway-list 192.168.1.254 //配置网关地址
  • [R1-ip-pool-tedu]dns-list 8.8.8.8 //配置DNS地址
  • [R1-ip-pool-tedu]lease day 1 //配置租期
  • [R1-ip-pool-tedu]quit
  • [R1]int g0/0/0
  • [R1-G0/0/0]ip address 192.168.1.254 24 //此接口IP地址和网关地址一致
  • [R1-G0/0/0]dhcp select global //在接口下开启基于全局的DHCP

验证与测试:

  • PC1和PC2选择获取地址的方式为DHCP
  • 然后PC1和PC2在命令行中,使用ipconfig 命令查看IP地址

数据抓包

抓包

基于全局的dhcp:

  • [R1]ip pool tedu
  • [R1-ip-pool-tedu]excluded-ip-address 192.168.1.250 192.168.1.253 //在基于全局的IP地址池中做地址排除,排除的IP地址不做dhcp分发
  • display ip pool name tedu all //查看全局IP地址池中全部地址信息
  • display ip pool name tedu used //查看全局IP地址池中已分发的IP地址

基于接口的DHCP实验

配置命令:

  • [R1]dhcp enable //开启dhcp功能
  • [R1]int g0/0/0
  • [R1-G0/0/0]ip address 192.168.1.254 24
  • [R1-G0/0/0]dhcp select interface //开启基于接口的dhcp 功能
  • [R1-G0/0/0]dhcp server dns-list 8.8.8.8
  • [R1-G0/0/0]dhcp server lease day 1

DHCP中继实验

中继

配置命令

配置DHCP服务器

  • [R2-DHCP]dhcp enable //开启dhcp 功能
  • [R2-DHCP]ip pool ntd //创建IP地址池
  • [R2-DHCP-ip-pool-ntd]network 192.168.10.0 mask 24
  • [R2-DHCP-ip-pool-ntd]gateway-list 192.168.10.254
  • [R2-DHCP-ip-pool-ntd]dns-list 8.8.8.8
  • [R2-DHCP-ip-pool-ntd]excluded-ip-address 192.168.10.253

DHCP中继配置:

  • [R1-zj]dhcp enable
  • [R1-zj]int g0/0/0
  • [R1-zj-G0/0/0]ip add 192.168.20.10 24
  • [R1-zj-G0/0/0]int g0/0/1
  • [R1-zj-G0/0/1]ip add 192.168.10.254 24
  • [R1-zj-G0/0/1]dhcp select relay //在接口上开启dhcp中继功能
  • [R1-zj-G0/0/1]dhcp relay server-ip 192.168.20.20 //指定dhcp服务器的IP地址

接口上调用中继

  • [R2-DHCP]int g0/0/0
  • [R2-DHCP-GigabitEthernet0/0/0]ip add 192.168.20.20 24
  • [R2-DHCP-GigabitEthernet0/0/0]dhcp select global

租期

租期T1:

  • 当IP地址的租用时间到达50%时,客户机会以单播方式向服务器发送Request 请求报文,请求更新IP地址租期。
    DHCP 服务器如果回复DHCP ACK确认报文给客户机,代表租期更新成功,从0开始

租期T2:

  • 如果DHCP服务器一直没有回应,那么在IP地址的租用时间到达87.5%时,客户机会以广播方式向服务器发送Request 请求报文,请求更新IP地址租期
  • DHCP服务器如果回复DHCP ACK 确认报文给客户机,代表租期更新成功,从0开始

恢复接口上VLAN的缺省配置(让access/trunk/顺利切换)

access接口恢复默认配置(缺省配置)

  • SW1]vlan batch 10 20
  • [SW1]interface g0/0/1
  • [SW1-GigabitEthernet0/0/1]port link-type access
  • [SW1-GigabitEthernet0/0/1]port default vlan 10
  • [SW1-GigabitEthernet0/0/1]port link-type trunk //将接口模式修改为trunk(失败)
  • Error: Please renew the default configurations. :错误:请更新默认配置

如何解决:如何恢复接口上VLAN的缺省配置

第一种方法:
  • [SW1-GigabitEthernet0/0/1]port default vlan 1 //接口pvid恢复为vlan1
  • [SW1-GigabitEthernet0/0/1]port link-type trunk //将接口模式修改为trunk(成功)
第二种方法:
  • [SW1-GigabitEthernet0/0/1]undo port default vlan //恢复接口上VLAN的缺省配置
  • [SW1-GigabitEthernet0/0/1]port link-type trunk //将接口模式修改为trunk(成功)

trunk接口恢复默认配置(缺省配置)

  • [SW1]vlan batch 10 20
  • [SW1]interface g0/0/1
  • [SW1-G0/0/1]port link-type trunk
  • [SW1-G0/0/1]port trunk allow-pass vlan 10 20
  • [SW1-G0/0/1]port link-type access //将接口模式修改为access(失败)
  • Error: Please renew the default configurations. :错误:请更新默认配置

如何解决:如何恢复接口上VLAN的缺省配置

  • [SW1-G0/0/1]undo port trunk allow-pass vlan 10 20 //恢复默认
  • [SW1-G0/0/1]port link-type access //将接口模式修改为access(成功

ps:

  • [SW1-G0/0/1]undo port trunk allow-pass vlan all //删除所有vlan
  • [SW1-G0/0/1]port link-type access //无法修改报错
    Error: Please renew the default configurations.

如何解决:恢复默认配置: undo port trunk allow-pass vlan all 的时候把所有vlan 都干掉了,所以我们要恢复vlan1

第一种方法:
  • [SW1-G0/0/1]undo port trunk allow-pass vlan 2 to 4094 //只删除2 to 4094 不删除vlan1
  • [SW1-G0/0/1]port link-type access //修改成功
第二种方法:
  • [SW1-G0/0/1]undo port trunk allow-pass vlan all //删除所有vlan
  • [SW1-G0/0/1]port trunk allow-pass vlan 1 //补上vlan1,恢复默认
  • [SW1-G0/0/1]port link-type access //修改成功

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

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

相关文章

linux编译gdb

下载 我下载了8.3 Index of /gnu/gdb 编译 make cleanmake diskclean./configure \--without-x \--disable-werrormake make install

微信小程序的自定义组件

一、创建自定义组件 (1)定义: 把页面重复的代码部分封装成为一个自定义组件,以便在不同的页面中重复使用,有助于代码的维护。 (2)组成: 自定义组件的组成:json文件&a…

.gitignore文件使用指南

.gitignore文件使用指南 .gitignore 文件的作用 忽略不需要的文件:避免将不必要的文件(如编译生成的文件、临时文件、日志文件等)提交到代码仓库。保护敏感信息:防止本地配置文件(如数据库配置文件、API 密钥等&…

阅读笔记——《代码整洁之道》ch2

引言 clean-code ch2阅读笔记 有意义的命名 名副其实 选择体现本意的名称能让人更容易理解和修改代码。 避免误导 怎么能知道该调用哪个函数呢? getActiveAccount(); getActiveAccounts(); getActiveAccountInfo();moneyAmount与money没区别,customerInfo与customer没区别。…

代码随想录-算法训练营day39【动态规划02:不同路径】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第九章 动态规划part02● 62.不同路径 ● 63. 不同路径 II 今天开始逐渐有 dp的感觉了,题目不多,就两个 不同路径,可以好好研究一下详细布置 62.不同路径 本题大家掌握动态规划的方…

Elasticsearch 搜索引擎实现对文档内容进行快速检索(保姆级教程)

本文主要讲解ES如何从提取文档中提取内容(word、pdf、txt、excel等文件类型),实现快速检索文档内容实现。 特别说明一下,为什么用7.10.0版本,因为在项目中除了精确匹配的要求,也会有模糊查询(关…

Android 异常开机半屏重启代码分析

Android 的稳定性是 Android 性能的一个重要指标,它也是 App 质量构建体系中最基本和最关键的一环;如果应用经常崩溃,或者关键功能不可用,那显然会对我们的留存产生重大影响所以为了保障应用的稳定性,我们首先应该树立…

在vue3+typescript中使用d3 version 7注意的地方

前几天在做一个前端项目,需要在一个vue3typescript的项目中使用d3 上次做vue2d3v5的项目已经很多年了,这次不仅是vue3,用的typescript,而且d3也升级到v7了,有很多东西不一样了。 这里记录一下,避免日后忘…

go-Expect-实验

实验脚本程序 test.sh read -p "Would you like to rejoin it to the cluster? [y/N]:" v echo if [ "$v" "y" ];thenecho "$(date %s)shark A" >> ./test.log fi read -p "Would you like to rejoin it to the cluste…

JDK14和JDK1.14相同吗?

关于Java开发工具包(JDK)的命名,我们可以从Java版本的发展历史来详细解析其命名规则。 在Java的早期版本中,JDK的版本号使用了“1.x”的格式,其中“x”是版本号,如JDK 1.0、JDK 1.1、JDK 1.2等。然而&…

Zynq UltraScale+ RFSoC 配置存储器器件

Zynq UltraScale RFSoC 配置存储器器件 下表所示闪存器件支持通过 Vivado 软件对 Zynq UltraScale RFSoC 器件执行擦除、空白检查、编程和验证等配置操 作。 本附录中的表格所列赛灵思系列非易失性存储器将不断保持更新 , 并支持通过 Vivado 软件对其中所列…

【C语言】6.C语言VS实用调试技巧(2)

文章目录 6.调试举例17.调试举例28.调试举例3&#xff1a;数组9.编程常⻅错误归类9.1 编译型错误9.2 链接型错误9.3 运⾏时错误 – 6.调试举例1 求 1!2!3!4!…10! 的和。 int main() {int n 0;int i 0;int ret 1;int sum 0;for (n 1; n < 3; n) {for (i 1; i < …

knife4j案例

1.导入 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId> </dependency>2.在配置类中加入 knife4j 相关配置并设置静态资源映射&#xff08;否则接口文档页面无法访问&#xff…

就这?轻轻松松在RK356X Android11适配ML307R Cat.1模组

开源鸿蒙硬件方案领跑者 触觉智能 Industio 本文基于IDO-SXB3568主板&#xff0c;介绍Android11平台上适配中移物联ML307R Cat.1 4G模组的方法。该方法适用于触觉所有RK356X的主板。 IDO-SXB3568是触觉智能推出的RK3568行业主板&#xff0c;预计6月上旬正式上架售卖。该行业主…

CCF PTA 2022年11月C++大富翁游戏

【问题描述】 小明很喜欢玩大富翁游戏&#xff0c;这个游戏的规则如下&#xff1a; 1、游戏地图是有 N 个格子&#xff0c;分别编号从 1 到 N。玩家一开始位于 1 号格子。 2、地图的每个格子上都有事件&#xff0c;事件有以下两种类型&#xff1a; A&#xff09;罚款 x 枚金币…

使用Locust进行性能测试:快速指南与Python代码示例

性能测试是确保应用能够在预期负载下正常运行的关键步骤。在各种性能测试工具中&#xff0c;Locust以其轻量级、易用性以及可扩展性脱颖而出。它是一个用Python编写的开源性能测试工具&#xff0c;不仅能够模拟数以万计的用户对网站或应用程序进行压力测试&#xff0c;还允许测…

鸿蒙OS开发:【一次开发,多端部署】(应用UX设计原则)

应用UX设计原则 设计原则 当为多种不同的设备开发应用时&#xff0c;有如下设计原则&#xff1a; 差异性 充分了解所要支持的设备&#xff0c;包括屏幕尺寸、交互方式、使用场景、用户人群等&#xff0c;对设备的特性进行针对性的设计。 一致性 除了要考虑每个设备的特性…

shell脚本基础(简单if结构)

简单if结构 简单的if结构是&#xff1a; if expression then command command … fi 在使用这种简单if结构时&#xff0c;要特别注意测试条件后如果没有“&#xff1b;”&#xff0c;则then语句要换行&#xff0c;否则会产生不必要的错误。如果if和then可以处于同一行&#xff…

54.指针

目录 一.什么是指针&#xff1f; 二&#xff0e;定义一个指针变量 三&#xff0e;指针变量类型 四&#xff0e;取地址运算符& 五.取值运算符* 六.视频教程 一.什么是指针&#xff1f; 口语中的指针一般指指针变量&#xff0c;指针变量存放的是一个地址。普通变量存放…

电脑缺失api-ms-win-crt-runtime-l1-1-0.dll文件的几种修复方法

当您在使用电脑过程中遇到程序启动失败&#xff0c;提示缺少“api-ms-win-crt-runtime-l1-1-0.dll”文件时&#xff0c;不必过于焦虑&#xff0c;此问题通常与Windows系统的Visual C Redistributable组件未正确安装或损坏有关。小编将介绍5种修复电脑缺失api-ms-win-crt-runtim…