[网络工程师]-应用层协议-DHCP
创始人
2024-02-19 17:14:01
0

        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攻击等。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...