什么是DHCP?它的工作原理和流程是什么样的。

2022-11-17 1765阅读

温馨提示:这篇文章已超过513天没有更新,请注意相关的内容是否还可用!

一、DHCP简介

什么是DHCP?它的工作原理和流程是什么样的。
(图片来源网络,侵删)
什么是DHCP?它的工作原理和流程是什么样的。
(图片来源网络,侵删)

1.1什么是DHCP?

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),是一种用于集中对用户的IP进行管理和配置的技术。解决了手动配置IP地址繁琐的过程,就算在规模较小的网络中dhcp服务器实验报告,也可以通过DHCP使后续增加网络设备的IP配置变得简单快捷。

1.2DHCP的诞生?

为了解决IP地址等网络参数的配置问题,IETF组织制定了BOOTP协议。BPPTP协议运行在相对静态的环境中,管理员需要为每台主机配置专门的BOOTP参数文件才可使用。针对BOOTP的各种不足,IETF又研发了一个新的协议,提供动态的分配和配置网络配置参数(即IP地址)的协议dhcp服务器实验报告,即为DHCP。

1.3DHCP的作用是什么?

DHCP用一块IP地址区间分配IP给所有的终端,实现对IP地址动态统一的管理和配置。

1.4DHCP用在哪里?

动态主机配置协议DHCP采用客户端/服务器(C/S)通信模式,是一个用于局域网的协议,位于OSI参考模型的应用层,使用UDP协议进行通信。

1.5租期

DHCP服务器分配给每个客户端的IP地址定义一个使用期限,该使用期限被称为租期。

在租期到期前,DHCP客户端如果仍需要使用该IP地址,可以请求延长租期;如果不需要,可以主动释放该IP地址。在没有其他空闲地址可用的情况下,DHCP服务器会把客户端主动释放的IP地址分配给其他客户端。

什么是DHCP?它的工作原理和流程是什么样的。

DHCP服务器动态分配的所有IP地址都受租期时长的限制,不同的DHCP服务器配置的租期时长可以不同。静态分配的IP地址不受租期时长的限制,使用期限为无限长。

DHCP客户端不会等到租期到期后再申请IP地址,这样会导致IP地址被服务器回收,然后分配给其他客户端。为保证能够使用原来的IP地址,客户端会在租期到期前的某个时间点就开始申请延长租期。

1.6地址池

地址池指的是DHCP服务器可以为客户端分配的所有IP地址的集合。除IP地址外,地址池内还可以配置租期、子网掩码、默认网关等网络参数。在DHCP服务器为客户端分配IP地址时,这些网络参数也一并分配给客户端。

1.7 DHCP的报文介绍

DHCP报文格式是在BOOTP报文格式的基础上发展而来,因此,DHCP服务器支持与BOOTP客户端之间进行交互。DHCP报文如下图所示,单位为字节。

什么是DHCP?它的工作原理和流程是什么样的。

Op:表示报文的类型,取值为1或2,1为客户端请求报文,2为服务器响应报文

Htype:表示硬件类型。不同的硬件类型取值不同,最常见的值是1,表示以太网(10Mb)。

Hlen:表示硬件地址长度,以太网的值为6。

Hops:表示当前的DHCP报文经过的DHCP中继的数目。该字段由客户端或服务器设置为0,每经过一个DHCP中继时,该字段加1。此字段的作用是限制DHCP报文所经过的DHCP中继数目。服务器和客户端之间的DHCP中继数目不能超过16个,也就是Hops值不能大于16,否则DHCP报文将被丢弃。

Xid:表示DHCP客户端选取的随机数,使DHCP服务器的回复与DHCP客户端的报文相关联。

Secs:表示客户端从开始获取地址或地址续租更新后所用的时间。单位是秒。

Flags:表示标志字段。只。

Ciaddr:表示客户端的IP地址。可以是服务器分配给客户端的IP地址或者客户端已有的IP地址。客户端在初始化状态时没有IP地址,此字段为0.0.0.0。

Yiaddr:表示服务器分配给客户端的IP地址。当服务器进行DHCP响应时,将分配给客户端的IP地址填入此字段。

Siaddr:DHCP客户端获得启动配置信息的服务器的IP地址。

Giaddr:表示第一个DHCP中继的IP地址。

Chaddr:表示客户端的MAC地址。

Sname:表示客户端获取配置信息的服务器名字。

什么是DHCP?它的工作原理和流程是什么样的。

File:表示客户端需要获取的启动配置文件名。

Options:表示DHCP的选项字段,最多为312字节。

二、DHCP的工作流程和原理描述

1.DHCP客户端接入服务器的过程。

如下图描述一般场景时DHCP的工作流程。主要分为四步。

什么是DHCP?它的工作原理和流程是什么样的。

1.发现阶段

首次接入网络的DHCP客户端并不清楚DHCP服务器的IP地址,为了得到DHCP服务器的IP地址,DHCP客户端以广播方式发送DHCP DISCOVER报文。(DHCP DISCOVER报文中携带了客户端的MAC地址、请求参数表项、广播标志位等信息)。

2.提供阶段

与DHCP客户端位于同意网段的DHCP服务器都会收到DHCP DISCOVER报文,DHCP服务器选择跟接收DHCP DISCOVER报文接口的IP地址处于同一网段的地址池,并且从中选择一个可用的IP地址,然后通过DHCP OFFER报文发送给DHCP客户端。

什么是DHCP?它的工作原理和流程是什么样的。

3.请求阶段

如果有多个DHCP服务器向DHCP客户端回应DHCP OFFER报文,DHCP客户端一般只接收第一个收到的DHCP OFFER报文。在收到DHCP OFFER报文之后,DHCP 客户端以广播方式发送DHCP REQUEST报文,DHCP REQUEST报文中包含客户端想选择的DHCP服务器标识符和客户端IP地址。

DHCP客户端广播发送DHCP REQUEST报文通知所有的DHCP服务器,它将选择某个DHCP服务器提供的IP地址,其他的DHCP服务器则会将分配给该DHCP客户端的IP地址分配给其他DHCP客户端。

4.确认阶段

当DHCP服务器收到DHCP客户端发送的DHCP REQUEST报文后,DHCP服务器回应DHCP ACK报文,表示DHCP REQUEST报文中请求的IP地址,分配给客户端使用。

2.在有中继场景时DHCP客户端接入服务器的过程

DHCP中继在DHCP服务器和DHCP客户端之间转发DHCP报文,以保证DHCP服务器和DHCP客户端可以正常交互。下面仅针对DHCP中继的工作原理进行介绍。这种情况出现在DHCP客户端无法直接连接到DHCP服务器,需要通过中继进行沟通。

在有中继场景时DHCP客户端接入网络实例如下图所示。

在有中继的场景下,第一步的发现阶段和第二部的选择阶段会出现一些小小的变动。具体如下。

1.发现阶段

DHCP中继接收到DHCP客户端广播发送的DHCP DISCOVER报文后。

1.首先检查DHCP报文中的hops(表示当前的DHCP报文经过的DHCP中继的数目)字段,如果大于16,则丢弃DHCP报文。否则,将hops字段加1;

2.检查DHCP报文中的giaddr(表示第一个DHCP中继的IP地址。)字段,如果是0,将giaddr字段设置为接收DHCP DISCOVER报文的接口IP地址。如果不是0,则不修改该字段。

3.将DHCP报文的目的IP地址改为DHCP服务器或下一跳中继的IP地址,源地址改为中继连接客户端的接口地址,通过路由转发将DHCP报文单播发送到DHCP服务器或下一跳中继。

2.选择阶段

DHCP服务器接收到DHCP DISCOVER报文后,选择与报文中giaddr(表示第一个DHCP中继的IP地址。)字段为同一网段的地址池,并为客户端分配IP地址等参数,然后向giaddr字段标识的DHCP中继单播发送DHCP OFFER报文。

DHCP中继收到DHCP OFFER报文后,会进行如下处理:

1.检查报文中的giaddr字段,如果不是接口的地址,则丢弃该报文;

2.DHCP中继检查报文的广播标志位。如果广播标志位为1,则将DHCP OFFER报文广播发送给DHCP客户端;否则将DHCP OFFER报文单播发送给DHCP客户端。

3.请求阶段

4.确认阶段

(如上一致)

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]