DHCP协议原理与应用

news2024/11/14 20:33:36

DHCP协议原理与应用

  • 一、DHCP协议概述
    • 1.1、场景描述
      • 1.1.1、场景描述1
      • 1.1.2、场景描述2
      • 1.1.3、场景描述3
  • 二、DHCP协议工作原理
    • 2.1、DHCP简介
    • 2.2、DHCP协议名词解释
    • 2.3、DHCP服务器配置
    • 2.4、PC的DHCP设置
    • 2.5、DHCP协议工作过程
    • 2.6、DHCP协议报文及用途
    • 2.7、DHCP报文介绍
      • 2.7.1、DHCP Discover
      • 2.7.2、DHCP Offer
      • 2.7.3、DHCP Request
      • 2.7.4、DHCP Ack
    • 2.8、DHCP协议的租约
  • 三、DHCP常见部署方式
    • 3.1、校园网中常见的DHCP服务部署方式
      • 3.1.1、方式一:网关交换机作为DHCP服务器
      • 3.1.2、方式二:部署专用DHCP服务器
  • 四、DHCP相关安全设计
    • 4.1、DHCP应用服务在校园网运营过程中可能存在的问题
    • 4.2、使用IP source guard解决用户手动配置IP地址问题
    • 4.3、使用DHCP Snooping实现防非法DHCP服务器问题(1)
    • 4.4、使用DHCP Snooping实现防非法DHCP服务器问题(2)
  • 五、简单的DHCP实验

  • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

一、DHCP协议概述

1.1、场景描述

1.1.1、场景描述1

  • 笔记本、台式电脑、手机、智能家电、智能穿戴等设备和我们的生活息息相关。但是,这一切连接互联网的基础就是IP地址。
  • 如何在用户无感知的体验情况下高效且安全的获得IP地址?

在这里插入图片描述

1.1.2、场景描述2

在这里插入图片描述

1.1.3、场景描述3

  • 手动配置IP地址存在什么问题?

在这里插入图片描述

二、DHCP协议工作原理

2.1、DHCP简介

  • DHCP(Dynamic Host Configuration Protocol),动态主机配置协议。
  • 定义在RFC2131中, C/S架构,为终端设备提供TCP/IP参数(IP地址、掩码、网关、DNS等)的自动配置。
  • DHCP报文格式和BootP(RFC951、RFC1542)报文兼容,保证了互操作。

在这里插入图片描述

2.2、DHCP协议名词解释

  • DHCP Client:
    • DHCP客户机,即用户终端设备,可以是手机、电脑、打印机等需要接入网络的终端设备。
  • DHCP Server:
    • DHCP服务器,为终端分配网络参数,管理地址池。

在这里插入图片描述

2.3、DHCP服务器配置

在这里插入图片描述

#Step 1:开启DHCP服务
service dhcp

#Step 2:配置DHCP服务器
ip dhcp pool Ruijie
network 172.16.10.0 255.255.255.0
dns-server 8.8.8.8 
default-router 172.16.10.254

2.4、PC的DHCP设置

在这里插入图片描述

  • 释放通过DHCP方式获取到的IP地址。

在这里插入图片描述

  • 重新通过DHCP方式获取IP地址。
    在这里插入图片描述

2.5、DHCP协议工作过程

在这里插入图片描述

2.6、DHCP协议报文及用途

在这里插入图片描述

2.7、DHCP报文介绍

2.7.1、DHCP Discover

  • DHCP Discover
    • 该报文为PC发出的第一个请求报文,为广播报文,主要作用是用来发现DHCP服务器,但PC并不知道DHCP的IP地址,因此目的MAC和目的IP地址都为广播。

在这里插入图片描述

2.7.2、DHCP Offer

  • DHCP Offer
    • 该报文为DHCP服务器返回的第一个报文,当网络中存在多台DHCP服务器时,PC只会保留先收到的DHCP Offer。DHCP Offer中包含DHCP服务器可以为PC分配的IP地址、网关IP、DNS参数等配置信息。

在这里插入图片描述

2.7.3、DHCP Request

  • DHCP Request
    • PC发出的第二条请求报文,PC根据服务器返回的Offer中的信息,发起正式申请。

在这里插入图片描述

2.7.4、DHCP Ack

  • DHCP ACK
    • 服务器收到PC的请求报文后,从地址池中分配相应的IP地址返回给PC。

在这里插入图片描述

2.8、DHCP协议的租约

  • 租约50%时刻
    • 客户端主动向服务器发送DHCP request报文,请求更新租约时间;
      • 若服务器可用,回复DHCP ack,更新租约;
      • 若服务器不可用,回复DHCP nak,不更新租约;
  • 租约87.5%时刻
    • 客户端主动向服务器发送DHCP request报文,请求更新租约时间;
      • 若服务器可用,回复DHCP ack,更新租约;
      • 若服务器不可用,回复DHCP nak,不更新租约;
  • 待到租约时间过去,客户端会重新发送DHCP discover报文。

三、DHCP常见部署方式

3.1、校园网中常见的DHCP服务部署方式

在这里插入图片描述

  • 方式一:网关交换机作为DHCP服务器
    • 优势:节省一台服务器资源。
    • 劣势:地址池配置分散在网络中多台汇聚网关交换机上,无法集中管理。
  • 方式二:网关交换机作为DHCP中继,在服务器区部署一台专用的DHCP服务器
    • 优势:集中管理,不需要每一个网段都配置一个DHCP服务器,节约资源。
    • 劣势:需要占用一台服务器资源。

3.1.1、方式一:网关交换机作为DHCP服务器

  • 每台汇聚网关交换机上都为其下联用户PC网段配置DHCP地址池。
#Step 1. 开启DHCP服务
service dhcp

#Step 2. VLAN 内用户的DHCP地址池信息
ip dhcp pool VLAN10_POOL
network 172.16.10.0 255.255.255.0
default-router 172.16.10.1 
dns-server 202.106.0.20 211.0.23.32 

#Step 3. 配置VLAN 内用户的网关
interface vlan 20 
ip address 172.16.20.1 255.255.255.0

在这里插入图片描述

3.1.2、方式二:部署专用DHCP服务器

  • 网关交换机作为DHCP中继,在服务器区部署一台专用的DHCP服务器。
  • 要保证作为DHCP中继的网关设备与DHCP服务器之间IP/路由可达。
#Step1:网关设备的DHCP中继配置:
service dhcp
int vlan 10 //需要配置中继的VLAN
ip helper-address 192.168.1.1 //服务器地址

#Step2:服务器配置DHCP服务
Windows Server/Linux/专用设备

在这里插入图片描述

四、DHCP相关安全设计

4.1、DHCP应用服务在校园网运营过程中可能存在的问题

  • 用户使用静态IP地址接入
    • 部分用户手动配置IP地址,但DHCP服务器是不知道的,因此在为DHCP用户分配IP地址的时候,用户通过DHCP获取到的IP地址,在网络中是已经使用的,导致了IP地址冲突。
  • 用户架设非法DHCP服务器
    • 在同一VLAN中,如果存在恶意用户私自架设了一台DHCP服务器,那么将会使该VLAN内的用户获取到错误的IP地址,导致无法接入进校园网。

4.2、使用IP source guard解决用户手动配置IP地址问题

  • 使用DHCP Snooping相关功能,可以实现防止下联用户使用静态IP地址接入网络(ip source guard功能)。

在这里插入图片描述

#接入交换机上配置:
ip dhcp snooping
interface f0/1
ip verify source port-security 
interface f0/2
ip verify source port-security

#备注:接入交换机会窥探DHCP报文交互的过程,并从DHCP ACK报文中提取相关IP和MAC信息,将其绑定在硬件表项中,这样只有经过DHCP方式获取IP地址的主机,其IP和MAC才会被交换机所允许转发,而非DHCP方式设置IP地址,这样的报文会被交换机丢弃

4.3、使用DHCP Snooping实现防非法DHCP服务器问题(1)

  • 在接入交换机上使用DHCP Snooping相关功能,可以实现防止下联用户架设非法DHCP服务器。
    在这里插入图片描述

4.4、使用DHCP Snooping实现防非法DHCP服务器问题(2)

  • 在接入交换机上使用DHCP Snooping相关功能,可以实现防止下联用户架设非法DHCP服务器。
  • 以下为DHCP Snooping配置步骤:
#Step1:接入交换机上开启DHCP Snooping
ip dhcp snooping

#Step2:指向合法DHCP服务器的接口设置为信任接口
interface f0/24
ip dhcp snooping trust

#备注:其他接口默认都为非信任接口

在这里插入图片描述

五、简单的DHCP实验

1、拓扑:

在这里插入图片描述

2、R1的配置:

  • 基础配置:
Ruijie>enable 
Enable password isn't set up, please set the password.

Please Set the password:****

The input password is weak password, default min-size(8) and should contain three different characters, and could not be similar to username!

Please check the password:****

Set the password success!


Ruijie#configure terminal 
Enter configuration commands, one per line.  End with CNTL/Z.
*Aug 21 13:34:18: %ZAM-6-EVENT: zam status changes to IDLE for entering config mode

Ruijie(config)#hostname R1			#更改设备名称

R1(config)#show interfaces status 	#查看物理接口信息
Interface                                Status    Vlan   Duplex   Speed     Type  
---------------------------------------- --------  ----   -------  --------- ------
GigabitEthernet 0/0                      up        1      Full     1000M     copper
GigabitEthernet 0/1                      down      1      Unknown  Unknown   copper
GigabitEthernet 0/2                      down      1      Unknown  Unknown   copper
GigabitEthernet 0/3                      down      1      Unknown  Unknown   copper
GigabitEthernet 0/4                      down      1      Unknown  Unknown   copper
GigabitEthernet 0/5                      down      1      Unknown  Unknown   copper
GigabitEthernet 0/6                      down      1      Unknown  Unknown   copper
GigabitEthernet 0/7                      down      1      Unknown  Unknown   copper
GigabitEthernet 0/8                      down      1      Unknown  Unknown   copper
GigabitEthernet 0/9                      down             Unknown  Unknown   copper

R1(config)#int g0/0			#进入接口
R1(config-if-GigabitEthernet 0/0)#no switchport 		#模拟器中默认是二层接口,需要切换成三层口

R1(config-if-GigabitEthernet 0/0)#show ip int b			#查看三层接口信息
Interface                                IP-Address(Pri)      IP-Address(Sec)      Status                 Protocol 
GigabitEthernet 0/0                      no address           no address           up                     down     
VLAN 1                                   no address           no address           down                   down     

R1(config-if-GigabitEthernet 0/0)#ip add 192.168.1.1 24	#配置IP地址
R1(config-if-GigabitEthernet 0/0)#show ip int b
Interface                                IP-Address(Pri)      IP-Address(Sec)      Status                 Protocol 
GigabitEthernet 0/0                      192.168.1.1/24       no address           up                     up       
VLAN 1                                   no address           no address           down                   down 
  • DHCP服务器配置:
R1(config)#service dhcp 			#开启dhcp服务,华为是dhcp enable,思科默认开启
R1(config)#ip dhcp pool dhcp		#配置dhcp的地址池,地址池的名字是dhcp
R1(dhcp-config)#network 192.168.1.0 255.255.255.0	#配置地址空间
R1(dhcp-config)#default-router 192.168.1.1			#配置默认网关
R1(dhcp-config)#dns-server 114.114.114.114 223.5.5.5	#配置dns,可以同时配置多个dns服务器,也可以只配置一个

3、PC1的配置:(由于模拟器的PC机有bug,这里用路由器代替PC机)

  • PC机的bug:
VPCS> ip dhcp	#获取不到IP地址
DDORRR
Can't get ip address from dhcp server
  • 路由器配置:
Ruijie>enable 
Enable password isn't set up, please set the password.

Please Set the password:****

The input password is weak password, default min-size(8) and should contain three different characters, and could not be similar to username!

Please check the password:****

Set the password success!

Ruijie#conf*Aug 21 14:05:54: %HTTPD-5-USER_CHANGE: The password of web management account "admin" is changed.
 t
Enter configuration commands, one per line.  End with CNTL/Z.
*Aug 21 14:05:55: %ZAM-6-EVENT: zam status changes to IDLE for entering config mode
Ruijie(config)#hostname PC1
PC1(config)#int g0/0
PC1(config-if-GigabitEthernet 0/0)#no switchport 

PC1(config-if-GigabitEthernet 0/0)#ip address dhcp 		#日志提醒分配的IP地址是192.168.3 掩码是255.255.255.0
PC1(config-if-GigabitEthernet 0/0)#*Aug 21 14:08:01: %DHCP_CLIENT-4-ADDRESS_CONFLICT: DHCP address 192.168.1.3 mask 255.255.255.0 conflicted with the address on interface VLAN 1.	

PC1(config-if-GigabitEthernet 0/0)#show ip int b		#这里查看会发现错误,是由于模拟器的原因,需要将vlan 1关闭
Interface                                IP-Address(Pri)      IP-Address(Sec)      Status                 Protocol 
GigabitEthernet 0/0                      no address           no address           up                     down     
VLAN 1                                   192.168.1.2/24       no address           down                   down     

#真正的流程
Ruijie(config)#hostname PC1
PC1(config)#int vlan 1
PC1(config-if-VLAN 1)#no ip address 		#把vlan 1 禁用
%notice: all IPv4 addresses on this interface are removed.

PC1(config-if-VLAN 1)#exit
PC1(config)#int g0/0
PC1(config-if-GigabitEthernet 0/0)#no switchport 
PC1(config-if-GigabitEthernet 0/0)#ip address dhcp

PC1(config-if-GigabitEthernet 0/0)#*Aug 21 14:34:00: %DHCP_CLIENT-6-ADDRESS_ASSIGN: Interface GigabitEthernet 0/0 assigned DHCP address 192.168.1.5, mask 255.255.255.0.

PC1(config-if-GigabitEthernet 0/0)#show ip int b		#成功
Interface                                IP-Address(Pri)      IP-Address(Sec)      Status                 Protocol 
GigabitEthernet 0/0                      192.168.1.5/24       no address           up                     up       
VLAN 1                                   no address           no address           down                   down  

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

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

相关文章

面试之快速学习STL-迭代适配器

先放一张大图 参考&#xff1a;http://c.biancheng.net/view/7255.html 1. 反向迭代器 例子&#xff1a; std::list<int> values{1,2,3,4,5};auto start_it values.rbegin();const auto end_it values.rend();//start_it end_it std::reverse_iterator<std::lis…

HCIP 三层架构实验

三层架构实验 拓扑和思路拓扑思路LSW配置LSW1LSW2LSW3 DHCPLSW2LSW1 ACL外网冗余 拓扑和思路 拓扑 思路 首先划分网段&#xff0c;然后LSW1和LSW2和R1可以用ospf宣告就行&#xff0c;然后R1写条缺省指向R2 然后可以将LSW1和LSW2三合一&#xff0c;给交换机配置换分组&#x…

用电脑软件0代码设计WS2812显示效果(含软件下载地址)

用电脑软件设计WS2812显示效果 ws2812显示效果设计软件和单片机程序文件 单片机型号为8脚的STC8G1K08A或STC8G1K17A或者16脚的STC8G1K08或STC8G1K17 烧录时晶振选择22.1184M 百度网盘下载地址&#xff1a;链接: https://pan.baidu.com/s/1cVvA604IKtZ-cIqTX8Jgzw?pwd1234 提取…

数学分析:体形式

确实&#xff0c;面积应该是没有正负的&#xff0c;或者说和曲面的定向应该是无关的。我们用微分形式的积分定义了具有参数形式的曲面的面积。所以这个意思就是说&#xff0c;对于不同的曲面的定向&#xff0c;微分形式应该也不同。 这就是体形式的具体样子&#xff0c;得到每…

中科大 Epc 综合英语经验贴

免修规定考试形式1. 听力&#xff08;813131320分&#xff09;2. 单词&#xff08;20120分&#xff09;3. 语法结构&#xff08;10110分&#xff09;4. 阅读&#xff08;5篇&#xff0c;每题两分&#xff0c;52550分&#xff09; 机考答题建议 免修规定 研究生英语课免修规定&…

已解决Gradle错误:“Unable to load class ‘org.gradle.api.plugins.MavenPlugin‘”

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

<指针进阶>指针数组和数组指针傻傻分不清?

✨Blog&#xff1a;&#x1f970;不会敲代码的小张:)&#x1f970; &#x1f251;推荐专栏&#xff1a;C语言&#x1f92a;、Cpp&#x1f636;‍&#x1f32b;️、数据结构初阶&#x1f480; &#x1f4bd;座右铭&#xff1a;“記住&#xff0c;每一天都是一個新的開始&#x1…

数学建模大全及优缺点解读

分类模型 1、距离聚类&#xff08;系统聚类&#xff09;&#xff08;常用&#xff0c;需掌握&#xff09; 优点&#xff1a; ①将一批样本数据按照他们在性质上的亲密程度在没有先验知识的情况下自动进行分类 ②是一种探索性的分析方法&#xff0c;分类结果不一定相同 例如&am…

Stable Diffusion训练Lora模型

以下内容参考:https://www.bilibili.com/video/BV1Qk4y1E7nv/?spm_id_from333.337.search-card.all.click&vd_source3969f30b089463e19db0cc5e8fe4583a 1、训练Lora的2个重点步骤 第一步&#xff0c;准备训练要使用的图片&#xff0c;即优质的图片 第二部&#xff0c;为…

6.物联网LWIP之并发服务器编程

一。并发服务器&#xff08;多线程&#xff09;实现 #include "socket_udp_server.h" #include "socket_tcp_server.h" #include "socket_wrap.h" #include "ctype.h"static char ReadBuff[BUFF_SIZE];/*** brief udp 服务器任务* p…

深度学习论文: Learning Transferable Visual Models From Natural Language Supervision

深度学习论文: Learning Transferable Visual Models From Natural Language Supervision Learning Transferable Visual Models From Natural Language Supervision PDF: https://arxiv.org/pdf/2103.00020.pdf 官方代码: https://github.com/OpenAI/CLIP PyTorch代码: https:…

vector(介绍)

目录 1.vector的介绍及使用 1.1 vector的介绍 1.2 vector的使用 1.2.1 vector的定义 1.2.2 vector iterator 的使用 1.2.3 vector 空间增长问题 1.2.4 vector 增删查改 1.2.5 vector 迭代器失效问题。&#xff08;重点&#xff09; 2.vector深度剖析及模拟实现 2.1 使用…

PHP“牵手”淘宝商品评论数据采集方法,淘宝API接口申请指南

淘宝天猫商品评论数据接口 API 是开放平台提供的一种 API 接口&#xff0c;它可以帮助开发者获取商品的详细信息&#xff0c;包括商品的标题、描述、图片等信息。在电商平台的开发中&#xff0c;详情接口API是非常常用的 API&#xff0c;因此本文将详细介绍详情接口 API 的使用…

深入理解Semaphore

Semaphore&#xff08;信号量&#xff09;是操作系统中PV操作的原语在java中的实现&#xff0c;它也是基于AQS实现的。其中PV操作是操作系统中一种实现进程互斥与同步的有效方法。PV操作与信号量&#xff08;S&#xff09;的处理有关&#xff0c;P表示通过&#xff0c;V表示释放…

2023.8 - java - 泛型

泛型问题的引出&#xff1a; jdk 1.5 引出泛型 // package 泛型; public class index {public static void main (String[] args){test t new test();t.setContent("aaa");int a (int) t.getContent();System.out.println(a);} }class test{Object content;publi…

分享图片 | 快速浏览网页资源,批量保存、一键分享图片

前言 小伙伴学习吉他&#xff0c;有时需要在互联网搜索曲谱资源&#xff0c;而多数曲谱均为图片&#xff0c;并且为多页&#xff0c;在电脑上显示练习很不方便&#xff0c;需要停下来点击鼠标进行翻页&#xff0c;影响练习的连贯性。 为了解决上述问题&#xff0c;通常把图片…

【数据分析入门】Jupyter Notebook

目录 一、保存/加载二、适用多种编程语言三、编写代码与文本3.1 编辑单元格3.2 插入单元格3.3 运行单元格3.4 查看单元格 四、Widgets五、帮助 Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算&#xff1a;开发、文档编写、运行代码和展示结果。 …

产品流程图是什么?怎么做?

产品流程图是什么&#xff1f; 产品流程图是一种图形化的表达方式&#xff0c;用于描述产品开发、制造、销售、使用等各个阶段中涉及的流程、步骤和关系。它通过图形符号、箭头、文本等元素&#xff0c;展示了产品的各个环节之间的关联和顺序&#xff0c;通常被用于可视化产…

IT项目即将上线:项目经理的前夜清单

在IT项目的生命周期中&#xff0c;投产前的准备是至关重要的。作为项目经理&#xff0c;你需要确保所有的细节都已经准备好&#xff0c;以确保项目的顺利上线。以下是一份详细的清单&#xff0c;帮助项目经理在项目投产前进行全面的准备。 1. 项目的回顾 在项目即将上线之前&…

stm32的命令规则

stm32型号的说明&#xff1a;以STM32F103RBT6这个型号的芯片为例&#xff0c;该型号的组成为7个部分&#xff0c;其命名规则如下&#xff1a;