[网络工程师]-应用层协议-DHCP

news2025/1/27 12:54:35

        BOOTP是最早的主机配置协议,动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)则是在其基础上进行了改良的协议,是一种用于简化主机IP配置管理的IP管理标准。通过DHCP协议,DHCP服务器为DHCP客户端进行动态IP地址分配,同时DHCP客户端在配置时不必指明DHCP服务器的IP地址就能获取DHCP服务。当同一子网内有多台DHCP服务器时,在默认情况下,客户机采用最先到达的DHCP服务器分配IP地址。

1、DHCP基础

        DHCP服务器使用UDP的67端口来监听和接收客户请求消息,保留UDP的68端口来接收来自DHCP服务器的消息回复。

        使用DHCP中继代理可以跨网段提供DHCP服务,就是在DHC客户和服务器之间转发DHCP消息的主机或路由器。

        当DHCP客户端无法找到对应的服务器、获取合法的IP地址失败时,会在自动专用IP服务(Automatic Private IP Address,APIPA)中选取一个地址作为主机IP地址,该APIPA使用B类地址的保留地址,范围为169.254.0.0~169.254.255.255。在获取APIPA地址失败之前,获取的IP地址为0.0.0.0。

2、DHCP工作过程

        DHCP的工作过程如下图:

        (1)DHCP Discover

        DHCP客户机发送DHCP Discover消息,其封包的源地址是0.0.0.0,目标地址是255.255.255.255。

        (2)DHCP Offer

        DHCP服务器接收DHCP Discover后,通过UDP的68端口给客户机回应DHCP Offer信息,其中包含一个还没有被分配的有效IP地址,此处也是使用广播的形式。

        (3)DHCP Requset

        客户机可能从不止一台DHCP服务器收到DHCP Offer消息,客户机选择最先到达的DHCP Offer并发送DHCP Request消息包,此处也是使用广播的形式。

        (4)DHCP ACK

        DHCP服务器向客户机发送一个确认DHCP ACK信息,信息中包括IP地址、子网掩码、默认网关、DNS服务器地址以及IP地址的租约(默认为8天)。

        (5)DHCP客户端重新登录

        获取IP地址的DHCP客户端重新联网时,不再发送DHCP Discover,直接发送包含前次分配地址信息的DHCP Request请求(使用广播)。DHCP服务器收到请求后,如果该地址可用,则返回DHCP ACK确认;否则发送DHCP NACK信息否认。收到DHCP NACK的客户端需要从第一步开始重新申请IP地址。

        (6)更新租约

        DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期约,期满后,DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新IP租约。DHCP客户机启动及IP租约期限过一半时,DHCP客户机会自动向DHCP服务器发送更新IP租约。

下面列出DHCP的8种报文:

DHCP报文类型作用
DHCP Discover发送IP租用请求,用于发现DHCP服务器
DHCP OfferDHCP服务器收到Discover请求后,在地址池中查找合适的IP地址,加上相应的租约期限和其他配置信息,构造一个Offer报文发送给客户端
DHCP RequestDHCP客户端选择最先到达的Offer报文并回Request消息包,通告选择的服务器,希望获取所分配的IP地址
DHCP ACKDHCP服务器收到Request消息后,根据报文中携带的用户MAC地址查找有没有相应的租约记录,如果则发送一个ACK信息,包含IP地址、掩码、网关、DNS服务器、租约(默认8天)信息。
DHCP NACKDHCP服务器收到Request消息后,没有发现有相应的租约记录或者由于某些原因无法正常分配IP地址,则向客户端发送NACK应答报文,通知用户无法分配合适的IP地址。
DHCP Release当DHCP客户端释放分配的IP地址时,则向DHCP服务器发送Release报文,请求DHCP服务器释放对应的IP地址。
DHCP DeclineDHCP客户端收到ACK报文后,发现地址冲突或者地址不可用,则向服务器发送Decline报文,通知服务器所分配的IP地址不可用,以期望获得新的IP地址。
DHCP Inform如果DHCP客户端需要从服务器获取更详细的配置信息,则向DHCP服务器发送Inform请求。目前基本不用这种报文。

3、DHCP管理

        由于用户对租约的IP地址时间要求不同,需要对分配的IP地址区别对待。解决方法是将所有使用DHCP协议获取IP地址的主机划分为不同的类别进行管理。

3.1 DHCP Relay

        DHCP Relay(DHCP中继)可以实现在不同子网和物理网段之间处理和转发DHCP的功能。DHCP客户机和服务器在同一物理网段,则客户机可以正确地获得动态分配的IP地址;如果不在同一个物理网段,则需要开启DHCP Relay Agent(中继代理)。

3.2 DHCP Snooping

        DHCP Snooping(DHCP嗅探)对客户端和服务器之间的DHCP交互报文进行监视,把用户获取到的IP地址、用户MAC地址、租约时间等信息记录到DHCP Snooping用户数据库,通过建立和维护DHCP Snooping,绑定表过滤不可信任的DHCP信息。当交换机开启了DHCP Snooping后,会对DHCP报文进行侦听,并可以从接收到的DHCP Request或DHCP ACK报文中提取并记录IP地址和MAC地址信息。另外,DHCP Snooping允许将某个物理端口设置为信任端口或不信任端口,信任端口可以正常接收并转发DHCP Offer报文;而不信任端口会将接收到的DHCP Offer报文丢弃。这样可以完成交换机对假冒DHCP服务器的屏蔽作用,确保客户端从合法的DHCP服务器处获取IP地址。

        DHCP Snooping的作用有:

        (1)保证DHCP客户端从合法的DHCP服务器处获取IP地址;

        (2)记录DHCP客户端IP地址与MAC地址的对应关系;

        (3)可解决应用DHCP时遇到的各种网络攻击,如中间人攻击、DHCP仿冒服务器攻击、IP/MAC Soofing攻击等。

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

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

相关文章

集合学习笔记——Collection 全家桶

Collection是我们日常开发中使用频率非常高的集合,它的主要实现有List和Set,区别是List是有序的,元素可以重复;Set是无序的,元素不可以重复,我们简单看下继承关系: List的实现类主要线程不安全的ArrayList和LinkedList…

推挽输出和开漏输出-三极管-mos管

一、推挽输出 1.1推挽输出的概念 推挽(push-pull)输出是由两个MOS或者三极管组成,两个管子始终保持一个导通,另一个截止的状态。 图1 推挽电路示意图 当输入高电平时,叫做推; 上管Q1导通,下管…

【目标检测】Faster R-CNN论文的讲解

目录:Faster R-CNN论文的讲解一、前言二、回顾Fast R-CNN三、引入Faster R-CNN四、Faster R-CNN的介绍4.1 框架结构4.2 RPN如何产生候选区域的4.3 损失函数4.4 训练候选框提取网络4.5 RPN和Fast R-CNN共享特征的方法4.5.1 交替训练法4.5.2 近似联合训练法一、前言 …

C语言——学生信息管理系统

目录 功能展示 界面展示 所有功能模块: 功能1:菜单模块(显示功能菜单) 功能2:增加学生信息 功能3:输出学生信息(查看所有学习信息) 功能4:修改学生信息 功能5&a…

python3-GUI概述及应用

目录一、什么是GUI二、Python GUIPySimpleGUI概述一、PySimpleGUI简介二、PySimpleGUI特征三、输出设备hello,world猜数字一、玩家猜数字二、电脑猜数字21点游戏一、21点游戏简介二、程序代码一、什么是GUI 图形用户界面(Graphical User Interface,简称…

十六、CANdelaStudio深入-CDD与CDDT的差异(新建自定义服务)

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的CDD与CDDT的差异与新建自定义服务,欢迎…

数字图像处理(一)——什么是数字图像

一、什么是数字图像处理? 一副图像可以被定义为一个二维函数f(x,y),其中x和y是空间平面坐标,而对任意一对空间坐标(x,y)处幅值f称为图像在该点的强度或者灰度。当x和y以及灰度值f是有限的离散数值时,我们称该图像为数字图像。像素…

排序算法简述

一、概述 常见的排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序、桶排序、基数排序,这些排序各自有各自的特点。按照时间时间复杂度可以分为 O(n^2):冒泡、插入、选择排序;O(nlogn):归并、快速排序;O(n):桶排序、计数排序、基…

[附源码]java毕业设计自治小区物业设备维护管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[附源码]Python计算机毕业设计房地产销售系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

SSM+Mysql实现的共享单车管理系统(功能包含分角色,登录、用户管理、服务点管理、单车管理、分类管理、学生信息管理、单车租赁、信息统计、系统设置等)

博客目录SSMMysql实现的共享单车管理系统实现功能截图系统功能使用技术代码完整源码SSMMysql实现的共享单车管理系统 本系统一个学校共享单车管理的项目,通过线上系统化的管理,可以为后续的运营以及单车的项目运转提供极大的帮助。 (文末查看完整源码) …

【计算机视觉(CV)】基于图像分类网络VGG实现中草药识别(二)

【计算机视觉(CV)】基于图像分类网络VGG实现中草药识别(二) 作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项…

Graph (discrete mathematics)

In mathematics, and more specifically in graph theory, a graph is a structure amounting to a set of objects in which some pairs of the objects are in some sense “related”. The objects correspond to mathematical abstractions called vertices (also called n…

餐厅食材采购信息管理系统的设计与实现

摘 要 网络的广泛应用给生活带来了十分的便利。所以把餐厅食材采购信息管理与现在网络相结合,利用JSP技术建设餐厅食材采购信息管理系统,实现餐厅食材采购的信息化。则对于进一步提高餐厅食材采购信息管理发展,丰富餐厅食材采购信息管理经验…

SpringBoot SpringBoot 原理篇 3 核心原理 3.5 启动流程【4】【5】【6】

SpringBoot 【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇3 核心原理3.5 启动流程【4】【5】【6】3.5.1 看源码咯3.5.2 总结3 核心原理 …

剑指 Offer 10- I. 斐波那契数列

一、题目描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) 0, F(1) 1 F(N) F(N - 1) F(N - 2), 其中 N > 1. 斐波那契数列由 0 和…

leetcode:6248. 统计中位数为 K 的子数组【问题转化 + 排序二分】

目录题目截图题目分析ac code总结题目截图 题目分析 找到k的位置然后一步步往左走,一步步往右走统计左边和右边的比当前k小的和比k大的lst [[small, big]],分为left和right两部分可以先一侧的单独看small和big,找到big - small 0或者1的即…

NETCONF、RESTCONF和YANG

目录 一、NETCONF、RESTCONF和YANG是之间什么关系? 二、Netconf简介 2.1、一般使用工具:MG-Soft 简介 三、Netconf YANG 原理与实践 3.1、NETCONF协议 3.2、YANG建模语言 3.3、RESTCONF协议 网管协议: SNMP(基于UDP&#…

C++员工考勤管理系统

目录 1 考勤管理系统的设计 1 1.1 需求分析 1 1.2 功能模块构成 1 1.3 数据库结构设计 2 2 考勤管理系统的实现 4 2.1 系统登陆功能的实现 4 2.2 基本信息管理模块 5 4.2.1 节假日信息管理 5 4.2.2 部门信息管理 6 4.2.3 员工信息管理 8 2.3 考勤管理模块 10 4.3.1 出勤信息管理…

怎么才能学会Python?

前言 新手小白学Python在还没有人带的情况下很容易半途而废,首先给大家总结一下我这两年Python的学习、开发经验遇到一些问题,大家首先得正视这些问题,因为超90%的人在初学Python时都会也遇到。 ①自学网上资料多,但质量参差不齐…