前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >动态主机配置协议DHCP

动态主机配置协议DHCP

作者头像
十二惊惶
发布2024-02-28 20:52:28
1490
发布2024-02-28 20:52:28
举报
文章被收录于专栏:十二惊惶的网络安全研究记录

动态主机配置协议DHCP

[TOC]

代码语言:javascript
复制
#	掌握DHCP的报文格式
#	掌握DHCP的工作原理
DHCP简介:

动态主机配置协议(Dynamic Host Configuration Protocol )是一种动态指定IP地址的机制

  • DHCP服务器能自动为客户端分配IP地址,减少了客户机IP地址配置的复杂度和管理开销
  • DHCP服务器是安装了DHCP服务器软件的计算机,可在网络中设置一台或多台

分配给客户的IP是临时的,DHCP客户只能在有限的时间内使用该IP,这段时间称为租用期 租用期的数值应由DHCP服务器决定(默认1小时),DHCP客户也可在自己发送的报文中提出对租用期的要求。 当租期到了的时候,服务器可以把这个IP地址分配给别的主机使用。

DHCP使用UDP协议封装,使用UDP的熟知端口67和68,68是DHCP请求报文中的源端口,67是DHCP服务器的目标端口

DHCP报文格式:

  1. 操作码:1字节,表示是请求报文还是应答报文,1代表请求,2代表应答
  2. 硬件类型:1字节,表示正在使用的硬件技术的类型,1表示以太网。
  3. 硬件地址长度:1字节,如果是以太网,该字段值为6。
  4. 跳数:1字节,表示报文经过的DHCP中继的数目,请求报文每经过一个DHCP中继,该字段就加1。
  5. 事务ID:4字节,客户端发起一次请求时选择的随机数,服务器应答时返回客户同一个值,用来标识一次地址请求交互过程。
  6. 秒数:2字节,表示从客户端发出DHCP请求到现在所经过的秒数。
  7. 标志:2字节,第一个比特为广播响应标识位,用来标识dhcp服务器响应报文是采用单播还是广播发送。其余比特保留不用。
  8. 客户IP:4字节,如果客户已知道自己的IP,就写入,否则填入0。
  9. 你的IP:4字节,服务器分配给客户的IP。
  10. 服务器IP:4字节,由服务器填写,DHCP服务器的IP。
  11. DHCP中继IP:4字节,客户发出请求后报文经过的第一个DHCP中继的IP。客户硬件地址:16字节,由客户端设置。
  12. 服务器主机名:64字节,由服务器填写。
  13. 引导文件名:由服务器为客户指定的配置文件名称。
  14. 选项:可选选项字段,包含报文的类型、有效租期、DNS服务器的IP地址、wins服务器的IP地址等配置信息,格式如下:
静态地址分配与动态地址分配:
静态地址分配

将物理地址与IP地址绑定在一起,DHCP服务器将这个绑定文件存放在静态数据库中。 当有主机请求分配IP时,DHCP服务器首先检查静态数据库,若静态数据库存在所请求的物理地址条目,则将相应的IP地址返回给客户。

动态地址分配

DHCP服务器有一个存放IP地址的数据库(IP地址池)。当客户请求临时IP地址时,DHCP服务器就查找可用的IP地址分配给客户。

从DHCP服务器获得的IP地址是临时的,服务器预设了租用时间,租用时间到期时,客户就更新租用或停止使用这个IP地址。

服务器对更新租用可选择同意或不同意,如果不同意,客户就停止使用这个地址。

DHCP状态转换

一、初始化状态:

  • 当DHCP客户端首次启动时,它处于初始化状态。客户使用向UDP端口67广播DHCPDISCOVER报文(带有DHCPDISCOVER选项的请求报文)。

二、选择状态:

  • 发送DHCPDISCOVER报文后,客户就进入选择状态。收到请求报文的服务器用DHCPOFFER报文进行响应,提供了IP地址和租用时间,同时,服务器把提供的IP地址锁定,使这个地址不再提供给其它客户。
  • 如果客户没有收到DHCPOFFER报文,它就再尝试4次,每次间隔2s,如果仍然没有应答,客户就睡眠300s后再试

三、 请求状态 :

  • 客户选择多个DHCP服务器所提供的地址中的一个,并广播发送DHCPREQUEST报文,然后进入请求状态。
  • 客户在请求状态等待,直到收到服务器的DHCPACK报文,然后客户进入绑定状态。

四、绑定状态:

  • 绑定状态下,客户在租用时间到期之前可以使用这个IP地址。当租用时间到达50%时,客户发送另一个DHCPREQUEST报文请求更新,进入更新状态
  • 在绑定状态,客户也可以使用DHCPRELEASE报文取消租用,进入初始化状态。

五、更新状态:

  • 在更新状态下,如果客户收到更新租用的DHCPACK报文,就把计时器复位,然后回到绑定状态。
  • 如果没有收到DHCPACK报文,且租用时间已到达87.5%,客户将再次向服务器发送DHCPREQUEST报文,进入重新绑定状态。
DHCP运行过程

一、发现阶段:

  • DHCP客户寻找DHCP服务器的阶段。DHCP客户以广播方式发送DHCPDISCOVER报文来寻找DHCP服务器。

二、提供阶段:

  • 服务器向DHCP客户提供lP地址的阶段。网络中收到DHCPDISCOVER的DHCP服务器都会做出响应,从尚未出租的IP中挑选一个分配给客户,向客户发送一个包含出租的IP地址和其它设置的DHCPOFFER报文。

三、选择阶段:

  • DHCP客户端选择某台DHCP服务器提供的IP地址的阶段。
  • 如果有多台DHCP服务器向DHCP客户端发来的DHCPOFFER提供报文,则DHCP客户只接受第一个收到的DHCPOFFER提供报文,然后它就以广播方式回答一个DHCPREQUEST请求报文,该报文中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。

四、确认阶段:

  • DHCP服务器确认所提供的IP地址的阶段
  • 当DHCP服务器收到DHCP客户回答的DHCPREQUEST请求报文之后,它便向DHCP客户发送一个包含它所提供的IP地址和其它设置的DHCPACK确认报文,告诉DHCP客户可以使用它所提供的IP地址。然后DHCP客户便将其TCP/IP协议与网卡绑定,另外,除DHCP客户选中的服务器外,其它DHCP服务器都收回曾提供的IP地址

五、重新登录:

  • 以后DHCP客户每次重新登录网络时,就不需要再发送DHCPDISCOVER报文了,而是直接发送含有前一次所分配的IP地址的DHCPREQUEST请求报文。当服务器收到这一报文后,它会尝试让客户继续使用原来的IP地址,并回答一个DHCPACK确认报文。
  • 如果此IP地址已无法再分配给原来的客户时,服务器给客户回答一个DHCPNACK否认报文。原来的客户收到否认报文后,必须重新发送DHCPDISCOVER报文来请求新的IP地址。

六、更新租约:

  • 服务器给客户的IP地址有一个租借期限,期满后服务器会收回IP地址。如果客户要延长其IP租约,则必须更新租约。当时间到了租约期限的50%时,客户会自动向服务器发送更新其IP租约的DHCPREQUEST报文。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 动态主机配置协议DHCP
    • DHCP简介:
      • DHCP报文格式:
        • 静态地址分配与动态地址分配:
          • 静态地址分配
          • 动态地址分配
        • DHCP状态转换
          • DHCP运行过程
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档