DHCP学习

news2025/4/11 15:18:16

目录

DHCP基本认识和原理

场景一、同网段DHCP

场景二、不同段DHCP(中继DHCP)


DHCP基本认识和原理

DHCP(Dynamic Host Configuration Protocol动态主机协议)。

作用:为局域网络中主机动态分发地址,以及集中管理局域网中主机。

端口号:UDP68\67
客户端DHCP请求服务器时使用的端口为UDP68,服务器响应客户端DHCP请求使用的端口为UDP67

工作原理:

1、发现阶段
客户端广播向所有服务器发送DHCP discover报文。(此时客户端DHCP请求使用的端口为UDP 68)

2、提供阶段
DHCP服务器使用DHCP offer回应DHCP客户端。(服务器回应客户端时使用的端口为UDP 67,客户端选择最先回复DHCP offer报文作为客户端请求的服务器)

3、选择阶段
DHCP客户端广播发送DHCP request选择报文。

4、确认阶段
服务器回应DHCP ack确认报文。

DHCP四个阶段的工作内容:

一、发现阶段的客户端是不知道服务器的IP地址的所以会广播发送DHCP discover报文寻找DHCP服务器,目标地址为255.255.255.255,只要在这个网络中的IP地址的服务器都可以接收到DHCP客户端的IP地址请求。

二、提供阶段:DHCP服务器收到DHCP客户端发送的DHCP discover报文后回应DHCP offer报文,DHCPoffer报文中包含了分配给客户端指定mac地址的IP地址,dns,租期,网关等参数。网络内的所有客户端根据封装在DHCP offer报文中的mac地址选择是否接收此报文。

如果DHCP客户端发送的请求中带有期望的租期,那么DHCP服务器会根据自身设置的租期进行比较,给出客户端时间较短的租期。

DHCP服务器会把已经分配给客户端的地址组成一个正在使用的IP地址表,未分配的IP地址组成一个可分配的IP地址表,IP地址冲突的分成一个IP地址冲突表,不能分配的IP地址分到不能分配的表中。

DHCP服务器给DHCP客户端选择IP地址有五个优先顺序

1:DHCP服务器给指定的mac地址静态绑定分配IP地址
2:DHCP客户端在DHCP discover报文中的option50请求指定的IP地址
3:DHCP服务器曾经分配给客户端的IP地址
4:DHCP服务器随即分配IP地址

5:没有可分配地址的情况下DHCP服务器会找超过租期的IP地址和冲突的IP地址进行分配,有可用则分配,没有可用回复DHCP nak拒绝报文,来通知客户端没有可分配的IP地址,客户端会重新发送DHCPdiscover报文请求IP地址。

DHCP服务器为了避免分配的IP地址会冲突所以会在DHCPoffer报文中添加源地址来icmp echo request来检测是否用客户端使用该地址,如果有应答则分配另一个id地址,并划分到冲突地址表中, 没有则继续分配。

提供阶段不是最终的提供IP地址阶段,该阶段还需要等客户端16s回复,如果没有等到客户端回复则此IP地址为继续分配给下一个客户端。

三、选择阶段

DHCP客户端以广播方式发送DHCP discover报文,在同一个网段内有多个服务器回应DHCP offer报文则客户端会选择第一个回应DHCP offer的服务器来进行IP地址选择并广播发送DHCP request报文。

以广播方式发送DHCP REQUEST报文,是为了通知所有的DHCP服务器,它将选择某个DHCP服务器提供的IP地址,其他DHCP服务器可以重新将曾经分配给客户端的IP地址分配给其他客户端。

四、确认阶段

DHCP服务器收到DHCP客户端发送的DHCP request报文之后会回复DHCP ACK来确认分配IP地址。

DHCP客户端受到服务器发送过来的DHCP ACK之后会免费发送广播arp报文来探测在这个网段中是否有使用该IP地址的客户端,如果没有则使用该IP地址,如果有客户端会向服务器发送DECLINE报文,并重新向服务器请求IP地址,同时,服务器会将此地址列为冲突地址。当服务器没有空闲地址可分配时,再选择冲突地址进行分配,尽量减少分配出去的地址冲突。

如果因为DHCP客户端和DHCP服务器协商和DHCP服务器受到DHCP request报文过慢导致此IP地址已经分配给其他客户端,DHCP服务器会回复DHCP NAK报文给客户端,客户端受到DHCP NAk报文之后会重新发送DHCP discover报文寻找IP地址

DHCP发现和释放报文流程

场景一、同网段DHCP

拓扑:

思路:先配汇聚SW,再配置接入,最后PC

配置如下:

汇聚交换机

# 创建vlan

vlan batch 10 20

# 创建三层vlan,dhcp的网关

interface Vlanif10
 ip address 192.168.10.254 255.255.255.0
 dhcp select global
#
interface Vlanif20
 ip address 192.168.20.254 255.255.255.0
 dhcp select global

# 接口划分vlan

interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 10 20
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 10 20

# 使能dhcp

dhcp enable

# 配置dhcp
ip pool hcie
 gateway-list 192.168.10.254
 network 192.168.10.0 mask 255.255.255.0
 dns-list 8.8.8.8 114.114.114.114
#
ip pool hcie1
 gateway-list 192.168.20.254
 network 192.168.20.0 mask 255.255.255.0
 dns-list 8.8.8.8

 接入交换机1、2

vlan batch 10 20

#
interface Ethernet0/0/2
 port link-type access
 port default vlan 10
#
interface Ethernet0/0/3
 port link-type access
 port default vlan 20

pc配置为DHCP获取地址,使用命令ipconfig查看是否获取到地址,和ping测试。

 学习到的新知识点:

接口下dhcp select 的global和interface的区别(全局地址池和接口地址池)

1、全局地址池可以供其它任何的接口地址dhcp调用.
2、接口地址池就是指定了特定的接口才能分配到这部分的IP地址.

场景二、不同段DHCP(中继DHCP)

拓扑

 

 思路:

1.先把底层网络打通,由于有一个汇聚sw,所以汇聚使用vlanif100配置在g0/0/3,R2使用子接口在g0/0/1.1配置ip才能打通

2.配置ospf,由于dhcp-server发送dhcp报文没有路由,所以需要在汇聚上的ospf把该dhcp网段宣告进去

3.配置的是vlan,多dhcp的场景,所以汇聚使用vlanif来做网关

配置如下:

dhcp-server
#
interface GigabitEthernet0/0/0
 ip address 10.0.1.1 255.255.255.0

 dhcp select global 
#
ospf 100 
 area 0.0.0.0 
  network 10.0.1.1 0.0.0.0 

R2
#
interface GigabitEthernet0/0/0
 ip address 10.0.1.2 255.255.255.0 
#
interface GigabitEthernet0/0/1.1
 dot1q termination vid 100
 ip address 10.0.2.1 255.255.255.0 
 arp broadcast enable
#
ospf 100 
 area 0.0.0.0 
  network 10.0.1.2 0.0.0.0 
  network 10.0.2.1 0.0.0.0 
#
ip pool hcie1
 gateway-list 192.168.1.254 
 network 192.168.1.0 mask 255.255.255.0 
 dns-list 8.8.8.8 
#
ip pool hcie2
 gateway-list 192.168.2.254 
 network 192.168.2.0 mask 255.255.255.0 
 dns-list 8.8.8.8 
#
ip pool hcie3
 gateway-list 192.168.3.254 
 network 192.168.3.0 mask 255.255.255.0 
 dns-list 114.114.114.114 

HJ-1
#
vlan batch 10 20 30 100
#
interface Vlanif100
 ip address 10.0.2.2 255.255.255.0
#
interface GigabitEthernet0/0/3
 port link-type trunk
 port trunk allow-pass vlan 100
#
ospf 100
 area 0.0.0.0
  network 10.0.2.2 0.0.0.0
  network 192.168.1.254 0.0.0.0
  network 192.168.2.254 0.0.0.0
  network 192.168.3.254 0.0.0.0
#
interface Vlanif10
 ip address 192.168.1.254 255.255.255.0
 dhcp select relay
 dhcp relay server-ip 10.0.1.1
#
interface Vlanif20
 ip address 192.168.2.254 255.255.255.0
 dhcp select relay
 dhcp relay server-ip 10.0.1.1
#
interface Vlanif30
 ip address 192.168.3.254 255.255.255.0
 dhcp select relay
 dhcp relay server-ip 10.0.1.1
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 10 20 30

JR-1
vlan batch 10 20 30
#
interface Ethernet0/0/1
 port link-type access
 port default vlan 10
#
interface Ethernet0/0/2
 port link-type access
 port default vlan 10
#
interface Ethernet0/0/3
 port link-type access
 port default vlan 20
#
interface Ethernet0/0/4
 port link-type access
 port default vlan 20
#
interface Ethernet0/0/5
 port link-type access
 port default vlan 30
#
interface Ethernet0/0/6
 port link-type access
 port default vlan 30

实际效果:

 学习到新的知识点:dhcp-server回包需要路由,所以需要静态或者ospf等方式让它有路由回去。

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

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

相关文章

INMP441麦克风芯片--支持I2S、ESP32

1.简介 INMP441是InvenSense公司推出的一款具有底部端口的高信噪比、低功耗、数字输出的全向MEMS麦克风,信噪比高达61dB,使其成为近场应用的绝佳选择。INMP441的电路结构如图所示,包括MEMS声音传感器、模数转换器(ADC&#xff09…

人工智能的2022:技术的价值在于生产力

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

孤独的照片(思维)

Farmer John 最近购入了 NN 头新的奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一。 奶牛目前排成一排,Farmer John 想要为每个连续不少于三头奶牛的序列拍摄一张照片。 然而&#xff0…

初识Kubernetes:(2)Kubernetes环境搭建

初识Kubernetes:(2)Kubernetes环境搭建1 环境规划1.1 集群类型1.2 安装方式2 环境搭建2.1 minikube安装2.2 启动集群3 服务部署1 环境规划 1.1 集群类型 Kubernetes集群大致分为两类:一主多从和多主多从。 一主多从&#xff1a…

UE4 shader编程 基础学习笔记 --- 熟悉各个节点

Texture Sample:用所需要的纹理覆盖到Mesh上,展示效果,Mesh上存在漫反射 高光 环境变量的和制造出了左上角的纹理光照效果 该节点只能设置其黑白效果 0为黑,1为白 该节点可以调节R、G两个参数 该节点可以调节RGB三个参数 该节…

C#---第十八课:Debug调试技巧--Debug类、pin 、add watch、拖动断点、修改变量、两个断点的联动

文章目录1. 在output窗口中输出变量的内容----Debug类2. Pin变量 / add watch 实时监控变量的变化(1) pin to sources(2) add watch3. 自由拖动黄色箭头图标4. 直接修改变量的值5. 两个断点的联动(当一个断点触发,另一个断点才会触发debug)1.…

变革:区块链上的政府和企业应用

发表时间:2022年5月12日 信息来源:coingeek.com 区块链只与数字货币和金融交易挂钩的时代已经过去了。这项技术在过去十年中不断发展,今天,它为游戏、社交媒体应用、医疗保健以及供应链管理等多个领域提供着支持。相比其它领域&am…

SpringBoot 整合【Mybatis-Plus实现分页查询】

目录 1. 添加pom.xml依赖 2. 配置application.yml文件 3. mybatis-plus插件配置核心类 4. 启动类配置 5. 测试数据Sql脚本 6. mybatis-plus代码生成 7. 测试分页查询 1. 添加pom.xml依赖 <!--mybatis-plus--><dependency><groupId>com.baomidou</g…

Weighted Logistic Regression和Youtube时长预估

前段时间阅读了youtube的经典论文《Deep Neural Networks for YouTube Recommendations》&#xff0c;其通过weighted LR来实现时长预估&#xff0c;在其原文中对实现的描述非常短&#xff0c;大概意思是在损失函数中&#xff0c;对正例&#xff08;点击&#xff09;的交叉熵项…

中断的分类,中断指令,中断类型码,中断向量表,中断优先级

目录 PC机的中断系统 中断的分类 内部中断&#xff08;软件中断&#xff09; 故障 陷阱 异常终止 中断指令 指令类型中断指令 INT N 溢出中断指令 INTO 中断返回指令 IRET 外部中断&#xff08;硬件中断&#xff09; 非屏蔽中断&#xff08;NMI&#xff09; 可…

Springboot实现定时任务调度

前言 今天给大家分享一下&#xff0c;如何使用springboot快速实现简单的定时调度任务&#xff1f;有两种方法&#xff1a;基于注解的声明式调度任务注册&#xff1b;另外一种是基于实现SchedulingConfigurer的编程式的调度任务注册。 1. 基于注解&#xff08;Scheduled&#…

Problem Set 2

Regularized Normal Equation for Linear Re-gression Given a data set {ar(), y()}i1,.-.,m with x()∈ R" and g(∈ R, the generalform of regularized linear regression is as follows n (he(zr)- g)3入>0号 (1) ” 2m i1 j1 Derive the normal equation. 设 X[(…

P7 PyTorch 属性统计

目录 Norm min max argmax argmin prod sum dim keepdim topk & kthvalue eq&equal一 Norm 作用&#xff1a; 求范数 1.1 1阶范数 # -*- coding: utf-8 -*- """ Created on Thu Dec 22 21:48:02 2022author: cxf """ import torc…

前端_Vue_8.生命周期钩子、侦听器

文章目录一、生命周期钩子1.1. 注册生命周期钩子1.2. 生命周期图示二、侦听器2.1. 基本示例2.2. 深层侦听器2.3. 即时回调的侦听器2.4. 回调的触发时机2.5. this.$watch()2.6. 停止侦听器一、生命周期钩子 每个Vue组件实例在创建时都需要经历一系列的初始化步骤&#xff0c;比…

重要升级:SpreadJS 16.0 crack SpreadJS 2023

SpreadJS 16.0 crack&#xff0c;建议大家赶紧升级&#xff0c;速度提升65% Adds enhancements for TableSheet, Designer, Calculation, Shape and Workbook. December 22, 2022 - 16:53New Version Features New File Format New .sjs file format makes the ExcelIO process…

Java语法:final关键字

一、final是什么&#xff1f; final关键字是最终的意思&#xff0c;可以修饰&#xff08;类、方法、变量&#xff09;。 二、final的作用 修饰类&#xff1a;表明该类是最终类&#xff0c;不能被继承&#xff1b; 报错说明&#xff1a;不发从最终的Animal类继承 修饰方法&…

数论专题(2)莫比乌斯反演

今天我们开始莫比乌斯反演的学习.这篇博文特别多的公式,强迫症患者请勿观看 莫比乌斯反演 莫比乌斯函数: 定义莫比乌斯函数,当时,. 当是square-free number时,设的质因数分解有项,则; 否则,; 根据上面,我们不难验证也是积性函数 定理 ,即和互为彼此的逆 证明 设n的不…

4.防止数据权限越权

涉及的修改 这次提交内容很简单&#xff0c;就是在这些类的操作上&#xff0c;添加了 checkXxxDataScope()方法校验&#xff0c;下面来看下这个方法的实现 /*** 校验用户是否有数据权限* * param userId 用户id*/ Override public void checkUserDataScope(Long userId) {if (…

RMQ延迟队列

目录一、场景二、TTL和DLX三、开发步骤一、场景 “订单下单成功后&#xff0c;15分钟未支付自动取消” 1.传统处理超时订单 采取定时任务轮训数据库订单&#xff0c;并且批量处理。其弊端也是显而易见的&#xff1b;对服务器、数据库性会有很大的要求&#xff0c; 并且当处理大…

jeecg-boot前端实现表格插槽、定制化修改

大家好&#xff0c;我是雄雄。 前言 关于jeecg-boot&#xff0c;之前介绍过好多好多次&#xff0c;至于说这是个什么样的技术&#xff0c;这里不在详细介绍&#xff0c;大家可以在gitee或者百度上搜搜&#xff0c;大致了解一下。 因为是个开源的框架&#xff0c;所以一般小项目…