wifi DHCP流程
创始人
2024-04-21 21:20:45
0

DHCP概念:

动态主机配置协议 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),是一个应用层协议。该协议允许服务器向客户端动态分配 IP 地址和配置信息。
知识补充:

BOOTP(Bootstrap Protocol,引导程序协议):
是一种引导协议,基于IP/UDP协议,也称自举协议,是DHCP协议的前身。BOOTP用于无盘工作站的局域网中,可以让无盘工作站从一个中心服务器上获得IP地址。通过BOOTP协议可以为局域网中的无盘工作站分配动态IP地址,这样就不需要管理员去为每个用户去设置静态IP地址。BOOTP使用UDP,通常与TFTP协同工作。

BOOTP vs. DHCP

  • DHCP可以说是BOOTP的增强版本,比较起BOOTP,DHCP透过"租约"的概念,有效且动态的分配客户端的IP设定,而且,作为兼容考虑,DHCP也完全照顾了BOOTP Client的需求。
  • 必须至少有一台DHCP工作在网络上面,它会监听网络的DHCP请求。它提供两种IP定位方式:自动分配,一旦DHCP客户端第一次成功的从DHCP服务器租用到IP地址之后,就永远使用这个地址;动态分配,当DHCP第一次从HDCP服务器端租用到IP地址之后,并非永久的使用该地址,只要租约到期,客户端就得释放。
  • DHCP除了可以动态的进行设定IP地址之外,还能够直接将一些IP保留下来给一些特殊用途的机器进行使用。另外一个方面,它能够直接按照硬件地址来固定的分配IP地址。
  • DHCP与BOOTP的不同点在于,BOOTP也可以完成给主机分配IP地址的任务,但它要求主机的硬件地址必须被手工输入到BOOTP表中。可以讲DHCP看成一个动态的BOOTP。但是,BOOTP还可以将用来引导主机的操作系统发送给主机。而DHCP不可以。

DHCP协议支持C/S(客户端/服务器)结构,主要分为两部分:

  1. DHCP客户端:通常为网络中的PC、打印机等终端设备,使用从DHCP服务器分配下来的IP信息,包括IP地址、DNS等。
  2. DHCP服务器:所有的IP网络设定信息都由DHCP服务器集中管理,并处理客户端的DHCP请求。
    DHCP采用UDP作为传输协议,客户端发送消息到DHCP服务器的的67号端口,服务器返回消息给客户端的68号端口。

通常DHCP 服务器至少向客户端提供以下信息:

  • IP 地址
  • 子网掩码
  • 默认网关
    还可以提供其他信息,如域名服务 (DNS) 服务器的地址和 Windows Internet 名称服务 (WINS) 服务器的地址。

DHCP服务器为客户端分配IP地址有三种形式:

  • 管理员将一个IP地址固定分配给一个客户端。
  • 随机地将地址永久性分配给客户端。
  • 随机地将地址分配给客户端使用一段时间。
    第三种是最常见的使用形式。地址的有效使用时间段称为租用期,租用期满之前,客户端必须向服务器请求继续租用。服务器接受请求后才能继续使用,否则无条件放弃。

默认情况下,路由器隔离广播包,不会将收到的广播包从一个子网发送到另一个子网。当DHCP服务器和客户端不在同一个子网时,充当客户端默认网关的路由器将广播包发送到DHCP服务器所在的子网,这一功能就称为DHCP中继(DHCP Relay)。

DHCP在工作过程中涉及到的报文种类及其作用如下:

  1. DHCP DISCOVER:客户端开始DHCP过程的第一个报文,是请求IP地址和其它配置参数的广播报文。
  2. DHCP OFFER:服务器对DHCP DISCOVER报文的响应,是包含有效IP地址及配置的单播(或广播)报文。
  3. DHCP REQUEST:客户端对DHCP OFFER报文的响应,表示接受相关配置。客户端续延IP地址租期时也会发出该报文。
  4. DHCP DECLINE:当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止使用该IP地址。
  5. DHCP ACK :服务器对客户端的DHCP REQUEST报文的确认响应报文。客户端收到此报文后,才真正获得了IP地址和相关的配置信息。
  6. DHCP NAK:服务器对客户端的DHCP REQUEST报文的拒绝响应报文。客户端收到此报文后,会重新开始新的DHCP过程。
  7. DHCP RELEASE:客户端主动释放服务器分配的IP地址。当服务器收到此报文后,则回收该IP地址,并可以将其分配给其它的客户端。
  8. DHCP INFORM:客户端获得IP地址后,发送此报文请求获取服务器的其它一些网络配置信息,如DNS等。
    DHCP服务器向DHCP客户端出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。为了能继续使用原先的IP地址,DHCP客户端会向DHCP服务器发送续租的请求。

DHCP续租的工作流程描述如下:

  1. 在使用租期过去50%时刻处, 客户端向服务器发送单播DHCP REQUEST报文续延租期。
  2. 如果收到服务器的DHCP ACK报文,则租期相应向前延长,续租成功。如果没有收到DHCP ACK报文,则客户端继续使用这个IP地址。在使用租期过去87.5%时刻处,向服务器发送广播DHCP REQUEST报文续延租期。
  3. 如果收到服务器的DHCP ACK报文,则租期相应向前延长,续租成功。如果没有收到DHCP ACK报文,则客户端继续使用这个IP地址。在使用租期到期时,客户端自动放弃使用这个IP地址,并开始新的DHCP过程。

抓包分析

如下是我在Tcpdump中抓到的log:
使用bootp或者dhcp筛选包如下:
在这里插入图片描述
截取后,分析一下如下包:在这里插入图片描述

第一个包:如果之后收到的Offer报文中的Transaction ID与PC模拟出的不同,PC会将该Offer报文直接丢弃。
在这里插入图片描述

第二个包
在这里插入图片描述
在这里插入图片描述
第三个包:在这里插入图片描述

在这里插入图片描述
第四个包:
在这里插入图片描述
在这里插入图片描述
第五个包:DHCP Release报文为PC释放IP时发出的报文。
在这里插入图片描述
注意:
DHCP Release的传输ID与上面分配流程不一致。

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...