DHCP简介
定义
动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种用于集中对用户IP地址进行动态管理和配置的技术。即使规模较小的网络,通过DHCP也可以使后续增加网络设备变得简单快捷。
DHCP是在BOOTP(BOOTstrap Protocol)基础上发展而来,但BOOTP运行在相对静态(每台主机都有固定的网络连接)的环境中,管理员为每台主机配置专门的BOOTP参数文件,该文件会在相当长的时间内保持不变。DHCP从以下两方面对BOOTP进行了扩展:
- DHCP允许计算机动态地获取IP地址,而不是静态为每台主机指定地址。
- DHCP能够分配其他配置参数,例如客户端的启动配置文件,使客户端仅用一个消息就获取它所需要的所有配置信息。
DHCP协议由RFC 2131定义,采用客户端/服务器通信模式,由客户端(DHCP Client)向服务器(DHCP Server)提出配置申请,服务器返回为客户端分配的配置信息。
DHCP可以提供两种地址分配机制,网络管理员可以根据网络需求为不同的主机选择不同的分配策略。
-
动态分配机制:通过DHCP为主机分配一个有使用期限(这个使用期限通常叫做租期)的IP地址。
这种分配机制适用于主机需要临时接入网络或者空闲地址数小于网络主机总数且主机不需要永久连接网络的场景。
-
静态分配机制:网络管理员通过DHCP为指定的主机分配固定的IP地址。
相比手工静态配置IP地址,通过DHCP方式静态分配机制避免人工配置发生错误,方便管理员统一维护管理。
受益
DHCP受益主要有以下两点:
-
降低客户端的配置和维护成本
DHCP易配置部署,对于非技术用户,DHCP能够将客户端与配置相关的操作降至最低,并能够降低远程部署和维护成本。
-
集中管理
DHCP服务器可以管理多个网段的配置信息,当某个网段的配置发生变化时,管理员只需要更新DHCP服务器上的相关配置即可。
组网需求
如图1所示,某企业为办公终端规划了两个网段,网段10.1.1.0/24内PC为员工固定办公终端,网段10.1.2.0/24供企业出差人员临时接入网络。为方便管理员统一,希望企业终端能够自动获取IP地址和DNS服务器IP地址(当用户希望以域名方式访问时需要配置域名解析的DNS服务器)。其中,企业管理者的办公PC(Client_1)由于业务需要,希望使用固定IP地址为10.1.1.100/24。
配置思路
基于接口地址池的DHCP服务器的配置思路如下:
通过在Switch上配置DHCP服务器,实现为企业的两个网段内终端动态分配IP地址和DNS服务器地址。其中,网段10.1.1.0/24内PC为员工固定办公终端,IP地址租期配置为30天,并通过DHCP静态方式为DHCP Client_1分配固定IP地址(10.1.1.100/24);网段10.1.2.0/24供企业出差人员临时接入网络,IP地址租期配置为2天。
操作步骤
- 使能DHCP服务
<HUAWEI> system-view [HUAWEI] sysname Switch [Switch] dhcp enable
- 配置接口加入VLAN
# 配置GE0/0/1接口加入VLAN10。
[Switch] vlan batch 10 to 11 [Switch] interface gigabitethernet 0/0/1 [Switch-GigabitEthernet0/0/1] port link-type hybrid [Switch-GigabitEthernet0/0/1] port hybrid pvid vlan 10 [Switch-GigabitEthernet0/0/1] port hybrid untagged vlan 10 [Switch-GigabitEthernet0/0/1] quit
# 配置GE0/0/2接口加入VLAN11。
[Switch] interface gigabitethernet 0/0/2 [Switch-GigabitEthernet0/0/2] port link-type hybrid [Switch-GigabitEthernet0/0/2] port hybrid pvid vlan 11 [Switch-GigabitEthernet0/0/2] port hybrid untagged vlan 11 [Switch-GigabitEthernet0/0/2] quit
- 配置VLANIF接口IP地址
# 配置VLANIF10接口地址。
[Switch] interface vlanif 10 [Switch-Vlanif10] ip address 10.1.1.1 24 [Switch-Vlanif10] quit
# 配置VLANIF11接口地址。
[Switch] interface vlanif 11 [Switch-Vlanif11] ip address 10.1.2.1 24 [Switch-Vlanif11] quit
- 配置接口地址池
# 配置VLANIF10接口下的客户端从接口地址池中获取IP地址和相关网络参数。
[Switch] interface vlanif 10 [Switch-Vlanif10] dhcp select interface [Switch-Vlanif10] dhcp server gateway-list 10.1.1.1 [Switch-Vlanif10] dhcp server lease day 30 [Switch-Vlanif10] dhcp server domain-name example.com [Switch-Vlanif10] dhcp server dns-list 10.1.3.1 [Switch-Vlanif10] dhcp server static-bind ip-address 10.1.1.100 mac-address 00e0-fc12-3456 [Switch-Vlanif10] quit
# 配置VLANIF11接口下的客户端从接口地址池中获取IP地址和相关网络参数。
[Switch] interface vlanif 11 [Switch-Vlanif11] dhcp select interface [Switch-Vlanif11] dhcp server gateway-list 10.1.2.1 [Switch-Vlanif11] dhcp server lease day 2 [Switch-Vlanif11] dhcp server domain-name example.com [Switch-Vlanif11] dhcp server dns-list 10.1.3.1 [Switch-Vlanif11] quit
- 配置DHCP数据保存功能,设备发生故障时,可以在系统重启后,执行命令dhcp server database recover,从存储设备文件恢复DHCP数据。
[Switch] dhcp server database enable
- 验证配置结果
# 在Switch上执行命令display ip pool来查看接口地址池的分配情况,“Used”字段显示已经分配出去的IP地址数量。假设企业员工固定办公终端有100个,出差人员接入3个。
[Switch] display ip pool interface vlanif10Pool-name : Vlanif10Pool-No : 0Lease : 30 Days 0 Hours 0 MinutesDomain-name : example.comDNS-server0 : 10.1.3.1NBNS-server0 : -Netbios-type : -Position : InterfaceStatus : UnlockedGateway-0 : 10.1.1.1Network : 10.1.1.0Mask : 255.255.255.0VPN instance : --Logging : DisableConflicted address recycle interval: -Address Statistic: Total :253 Used :100Idle :153 Expired :0Conflict :0 Disabled :0-------------------------------------------------------------------------------Network sectionStart End Total Used Idle(Expired) Conflict Disabled-------------------------------------------------------------------------------10.1.1.1 10.1.1.254 253 100 153(0) 0 0-------------------------------------------------------------------------------
[Switch] display ip pool interface vlanif11Pool-name : Vlanif11Pool-No : 1Lease : 2 Days 0 Hours 0 MinutesDomain-name : example.comDNS-server0 : 10.1.3.1NBNS-server0 : -Netbios-type : -Position : InterfaceStatus : UnlockedGateway-0 : 10.1.2.1Network : 10.1.2.0Mask : 255.255.255.0VPN instance : --Logging : DisableConflicted address recycle interval: -Address Statistic: Total :253 Used :3Idle :250 Expired :0Conflict :0 Disabled :0-------------------------------------------------------------------------------Network sectionStart End Total Used Idle(Expired) Conflict Disabled-------------------------------------------------------------------------------10.1.1.1 10.1.1.254 253 3 250(0) 0 0-------------------------------------------------------------------------------
在Client_1(操作系统以Windows 7为例)上查看IP地址信息,可以看到Client_1已经获取到IP地址10.1.1.100/24。
C:\Documents and Settings\Administrator>ipconfigWindows IP ConfigurationEthernet adapter Local Area Connection 2:Connection-specific DNS Suffix . :IPv4 Address. . . . . . . . . . . : 10.1.1.100Subnet Mask . . . . . . . . . . . : 255.255.254.0Default Gateway . . . . . . . . . : 10.1.1.1
在其他DHCP客户端(以10.1.1.0/24网段中操作系统为Windows 7的某终端为例)上查看IP地址信息,可以看到已经成功获取到IP地址。
C:\Documents and Settings\Administrator>ipconfigWindows IP ConfigurationEthernet adapter Local Area Connection 2:Connection-specific DNS Suffix . :IPv4 Address. . . . . . . . . . . : 10.1.1.51Subnet Mask . . . . . . . . . . . : 255.255.254.0Default Gateway . . . . . . . . . : 10.1.1.1
配置文件
Switch的配置文件
# sysname Switch # vlan batch 10 to 11 # dhcp enable # dhcp server database enable # interface Vlanif10ip address 10.1.1.1 255.255.255.0dhcp select interfacedhcp server gateway-list 10.1.1.1dhcp server static-bind ip-address 10.1.1.100 mac-address 00e0-fc12-3456dhcp server lease day 30 hour 0 minute 0dhcp server dns-list 10.1.3.1dhcp server domain-name example.com # interface Vlanif11ip address 10.1.2.1 255.255.255.0dhcp select interfacedhcp server gateway-list 10.1.2.1dhcp server lease day 2 hour 0 minute 0dhcp server dns-list 10.1.3.1dhcp server domain-name example.com # interface GigabitEthernet0/0/1port link-type hybridport hybrid pvid vlan 10port hybrid untagged vlan 10 # interface GigabitEthernet0/0/2port link-type hybridport hybrid pvid vlan 11port hybrid untagged vlan 11 # return
相关文章:

DHCP简介
定义 动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种用于集中对用户IP地址进行动态管理和配置的技术。即使规模较小的网络,通过DHCP也可以使后续增加网络设备变得简单快捷。 DHCP是在BOOTP(BOOTstrap Protoc…...
Hadoop生态系统中一些关键组件的详细解析
1. Hadoop核心组件 HDFS(Hadoop Distributed File System): 分布式文件存储系统。提供高吞吐量的数据访问,非常适合用于大规模数据集。有高容错性,通过在多个节点间复制数据块来实现。 MapReduce: 一种编程模型,用于在…...
功能强大的开源数据中台系统 DataCap 2024.01.1 发布
推荐一套基于 SpringBoot 开发的简单、易用的开源权限管理平台,建议下载使用: https://github.com/devlive-community/authx 推荐一套为 Java 开发人员提供方便易用的 SDK 来与目前提供服务的的 Open AI 进行交互组件:https://github.com/devlive-commun…...

Redis的bitmap使用不当,我内存爆了
背景 最近发现Redis的内存持续暴涨, 涨的有点吓人,机器都快扛不住了,不得不进行Redis内存可视化分析,发现大量的String类型的大key 经分析,最近上线了页面UV的统计,那目前如何做的呢? 通过访…...
基于python的新闻爬虫
咱们这个任务啊,就是要从一个指定的网站上,抓取新闻内容,然后把它们整整齐齐地保存到本地。具体来说,就是要去光明网的板块里,瞅瞅里面的新闻,把它们一条条地保存下来。 首先,咱得有个网址&…...
C#基础题
值类型和引用类型之间的区别是什么? 值类型在内存中存储实际值,而引用类型存储对对象的引用。值类型在栈上分配内存,而引用类型在堆上分配内存。值类型是不可变的,而引用类型是可变的。值类型的大小是固定的,而引用类型…...

AI大语言模型学习笔记之三:协同深度学习的黑魔法 - GPU与Transformer模型
Transformer模型的崛起标志着人类在自然语言处理(NLP)和其他序列建模任务中取得了显著的突破性进展,而这一成就离不开GPU(图形处理单元)在深度学习中的高效率协同计算和处理。 Transformer模型是由Vaswani等人在2017年…...

c++阶梯之auto关键字与范围for
auto关键字(c11) 1. auto关键字的诞生背景 随着程序的逐渐复杂,程序代码中用到的类型也越来越复杂。譬如: 类型难以拼写;含义不明确容易出错。 比如下面一段代码: #include <string> #include &…...

第八篇:node模版引擎Handlebars及他的高级用法(动态参数)
🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📘 引言: …...

css3 属性 backface-visibility 的实践应用
backface-visibility 是一个用于控制元素在面对屏幕不同方向时的可见性的CSS3特性。它有两个可能的值: visible:当元素不面向屏幕(即背面朝向用户)时,元素的内容是可以被看到的。hidden:当元素不面向屏幕…...

嵌入式学习第十七天
C语言小项目: 制作俄罗斯方块小游戏(全部) 主函数部分 #include <stdio.h> #include <unistd.h> #include <string.h> #include <signal.h> #include <stdlib.h> #include <time.h> #include "b…...

使用Python的Turtle模块简单绘制烟花效果
import turtle import random# 初始化屏幕 screen turtle.Screen() screen.bgcolor("black") screen.title("烟花模拟")# 创建一个Turtle来绘制烟花 firework turtle.Turtle() firework.hideturtle() firework.speed(0) # 设置绘图速度为最快# 绘制烟花…...

数学建模-退火算法和遗传算法
退火算法和遗传算法 一.退火算法 退火算法Matlab程序如下: [W]xlsread(D:100个目标经度纬度);>> x[W(:,1)];>> y[W(:,2)];>> w[x y];;d1[70, 40];>> w[d1;w;d1]ww*pi/180;%角度化成弧度dzeros(102);%距离矩阵初始化for i1:101…...

Qt开源版 vs 商业版 详细比较!!!!
简单整理Qt开源版与商业版有哪些差别,仅供参考。 简单对比 开源版商业版许可证大部分采用对商业使用不友好的LGPLv3具备商业许可证保护代码专有许可证相关大部分模块使用LGPLv3和部分模块使用GPL组成仅第三方开源组件使用Qt的其他许可证Qt模块功能支持支持技术支持…...

华为云CodeArts Snap荣获信通院优秀大模型案例及两项荣誉证书
2024年1月25日,中国人工智能产业发展联盟智能化软件工程工作组(AI for Software Engineering,下文简称AI4SE)在京召开首届“AI4SE创新巡航”活动。在活动上,华为云大模型辅助系统测试代码生成荣获“2023AI4SE银弹优秀案…...
小程序的应用、页面、组件生命周期(超全版)
小程序生命周期 应用的生命周期 onLaunch: 初始化小程序完成时触发,且全局只触发一次; onShow: 小程序初始化完成(启动)或从后台切换到前台显示时触发; onHide: 小程序从前台切换到后台隐藏时触发(如切换…...

TCP四次握手
TCP 协议在关闭连接时,需要进行四次挥手的过程,主要是为了确保客户端和服务器都能正确地关闭连接。 # 执行流程 四次挥手的具体流程如下: 客户端发送 FIN 包:客户端发送一个 FIN 包,其中 FIN 标识位为 1,…...

EBC金融英国CEO:高波动性周期下,如何寻找市场的稳定性?
利率主导的市场,将在2024年延续。目前,固收市场对于降息的定价,正通过利率传导至不同资产中。尽管市场迫切利用通胀去佐证降息,但各国央行仍囿于通胀目标的政策桎梏。政策和市场预期的博弈将继续牵动市场脉搏,引发价格…...

C++ Web 编程
什么是 CGI? 公共网关接口(CGI),是一套标准,定义了信息是如何在 Web 服务器和客户端脚本之间进行交换的。CGI 规范目前是由 NCSA 维护的,NCSA 定义 CGI 如下:公共网关接口(CGI&…...

docker笔记整理
Docker 安装 添加yum源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装docker yum -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin 启动docker systemctl start docker 查看docker状态 s…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...