DHCP报文

一:DHCP协议

● 链路层头: 承载报文的链路层信息头,常见的有Ethernet_II格式、802.1Q格式、 IEEE802.3格式、令牌环链路层头格式等。
● IP头: 标准的IP协议头,IPV4中长度为20bytes,包括了SrcIp(源IP),DstIp(目的IP)等信息。
● UDP头: 8bytes,包括了SrcPort(源端口),DstPort(目的端口),报文长度及UDP校验和等信息。
● DHCP报文:具体的DHCP报文内容。

二、DHCP报文类型详解

  1. DHCP Discover
    DHCP客户端请求地址时,并不知道DHCP服务器的位置,因此DHCP客户端会在本地网络内以广播方式发送请求报文,这个报文成为Discover报文,目的是发现网络中的DHCP服务器,所有收到Discover报文的DHCP服务器都会发送回应报文,DHCP客户端据此可以知道网络中存在的DHCP服务器的位置。
  2. DHCP Offer
    DHCP服务器收到Discover报文后,就会在所配置的地址池中查找一个合适的IP地址,加上相应的租约期限和其他配置信息(如网关、DNS服务器等),构造一个Offer报文,发送给用户(可以广播、也可以单播),告知用户本服务器可以为其提供IP地址。(注意,只是告诉client可以提供,是预分配,还需要client通过ARP检测该IP是否重复)
  3. DHCP Request
    客户端会在两种情况下发送DHCP Request
    1) DHCP客户端可能会收到来自DHCP服务器的很多Offer,所以必须在这些回应中选择一个。Client通常选择第一个回应Offer报文的服务器作为自己的目标服务器,并回应一个广播Request报文,通告选择的服务器。注意,"Client通常选择第一个回应Offer报文的服务器作为自己的目标服务器"这里存在一个安全问题,如果我们的伪DHCP服务器能比原始DHCP服务器先发送Offer数据包,就能达到欺骗的目的,从而劫持目标用户的流量
    2) 获取DHCP客户端成功获取IP地址后,在地址使用租期过去1/2时,会向DHCP服务器发送单播Request报文续延租期,如果没有收到DHCP ACK报文,在租期过去3/4时,发送广播Request报文续延租期。
  4. DHCP ACK
    DHCP服务器收到Request报文后,根据Request报文中携带的用户MAC来查找有没有相应的租约记录(即之前的预分配过程中登记的那个MAC),如果有则发送ACK报文作为回应,通知用户可以使用分配的IP地址。
    DHCP NAK
    如果DHCP服务器收到Request报文后,没有发现有相应的租约记录或者由于某些原因无法正常分配IP地址,则发送NAK报文作为回应,通知用户无法分配合适的IP地址。
  5. DHCP Release
    当用户不再需要使用分配IP地址时,就会"主动"向DHCP服务器发送Release报文,告知服务器用户不再需要分配IP地址,DHCP服务器会释放被绑定的租约(在数据库中清除某个MAC对某个IP的租约记录,这样,这个IP就可以分配给下一个请求租约的MAC)
  6. DHCP Decline
    DHCP客户端收到DHCP服务器回应的ACK报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则发送Decline报文,通知服务器所分配的IP地址不可用,我们在手工设置静态IP、或者DHCP分配中有时会遇到"检测到IP冲突"的提示就是因为客户端利用ARP机制来在当前内网中确认当前指定的IP是否已经被占用
  7. DHCP Inform
    DHCP客户端如果需要从DHCP服务器端获取更为详细的配置信息,则发送Inform报文向服务器进行请求,服务器收到该报文后,将根据租约进行查找,找到相应的配置信息后,发送ACK报文回应DHCP客户端

原文地址:https://blog.51cto.com/13824921/2413068

时间: 2024-08-30 14:39:30

DHCP报文的相关文章

【基础】通过抓包分析微软DHCP报文和其它系统DHCP报文的不同(对比后才知道微软有多次)

1.    实验网络拓扑 使用ENSP模拟器(版本V100R002C00 1.2.00.350) 2.      实验需求: 1)       使用华为模拟器配置DHCP为C1自动分配IP地址 2)     使用VMware station搭建WindowsServer2008 DHCP服务器,并为Windows客户机分配IP地址 3)       使用wireshark抓取DHCP数据包 3.    实验步骤: 1)     华为设备IP地址规划配置如下: R2是G0/0/0的ip为192.1

DHCP报文格式

DHCP报文格式 报文格式 DHCP报文是承载于UDP上的高层协议报文,采用67(DHCP服务器)和68(DHCP客户端)两个端口号. DHCP的报文格式如下图所示. 图1 DHCP报文格式 DHCP报文中各字段的含义: 字段 长度 含义 OP 1字节 表示报文的类型: 1:客户端请求报文 2:服务器响应报文 htype 1字节 表示硬件地址的类型.对于以太网,该类型的值为“1”. hlen 1字节 表示硬件地址的长度,单位是字节.对于以太网,该值为6. Hops 1字节 跳数.客户端设置为0,

dhcp报文类型

DHCP DiscoverDHCP客户端请求地址时,并不知道DHCP服务器的位置,因此DHCP客户端会在本地网络内以广播方式发送请求报文,这个报文成为Discover报文,目的是发现网络中的DHCP服务器,所有收到Discover报文的DHCP服务器都会发送回应报文,DHCP客户端据此可以知道网络中存在的DHCP服务器的位置. DHCP OfferDHCP服务器收到Discover报文后,就会在所配置的地址池中查找一个合适的IP地址,加上相应的租约期限和其他配置信息(如网关.DNS服务器等),构

DHCP报文交互流程

1.发现阶段,即DHCP客户机寻找DHCP服务器的阶段(DHCPdiscover) DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCPdiscover发现信息来寻 找DHCP服务器,即向地址255.255.255.255发送特定的广播信息.网络上每一台安装了TCP/IP协议的主机都会接收到 这种广播信息,但只有DHCP服务器才会做出响应. 2.提供阶段,即DHCP服务器提供IP地址的阶段(DHCPoffer) 在网络中接收到DHCPdiscover发现信息

DHCP获取IP地址过程中捕获的报文—三级网络总结(二)

上一篇文章主要说了一下知识点中的IP地址的考点,这一篇我打算说说DHCP获取IP地址过程中捕获的报文的这个考点,都是自己的理解,有错误欢迎指正. DHCP是应用层协议,UDP是传输层协议,IP是网络层协议,以太网是链路层协议.数据在网络上传输的时候要自顶向下逐层封装的,典型的DHCP过程是这样的: 1:客户机向服务器发送DHCP_DISCOVER报文,申请IP. 2:服务器向客户机返会DHCP_OFFER报文,指定一个将要分配的IP. 3:客户机向服务器发送DHCP_REQUEST报文,请求这个

DHCP协议报文分析

DHCP协议分析 一.DHCP简介 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用来为网络设备动态地分配 IP地址等网络配置参数. DHCP 采用客户端/服务器通信模式,由客户端向服务器提出请求分配网络配置参数的申请,服务器返回为客户端分配的 IP 地址等配置信息,以实现 IP 地址等信息的动态配置. 二.DHCP工作过程 1.IP 地址动态获取过程 2.主要通过四个阶段进行: A.发现阶段,即 DHCP 客户端寻找 DHCP 服务器的阶段

DHCP的8类报文抓包以及option详解

DHCP(Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议)它的前身是 BOOTP,它工作在OSI的应用层,是一种帮助计算机从指定的DHCP服务器获取它们的配置信息的自举协议. DHCP使用客户端/服务器模式,请求配置信息的计算机叫做DHCP客户端,而提供信息的叫做DHCP的服务器. DHCP为客户端分配地址的方法有三种:手工配置.自动配置.动态配置. DHCP最重要的功能就是动态分配.除了IP地址,DHCP分组还为客户端提供其他的配置信息,比如子

六、DHCP获取IP地址过程中捕获的报文

DHCP是应用层协议,UDP是传输层协议,IP是网络层协议,以太网是链路层协议.数据在网络上传输的时候要自顶向下逐层封装的,典型的DHCP过程是这样的:1:客户机向服务器发送DHCP_DISCOVER报文,申请IP.2:服务器向客户机返会DHCP_OFFER报文,指定一个将要分配的IP.3:客户机向服务器发送DHCP_REQUEST报文,请求这个IP.4:服务器PING几次(一般是3次)这个IP,如果没得到响应的话,就说明这个IP现在空闲,可以分配给客户机,所以向客户机发送DHCP_ACK报文,

DHCP原理及报文格式

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是IETF为实现IP的自动配置而设计的协议,它可以为客户机自动分配IP地址.子网掩码以及缺省网关.DNS服务器的IP地址等TCP/IP参数.了解DHCP工作过程可以帮助我们排除有关DHCP服务遇到的问题.DHCP 协议是基于UDP层(这也就是说在snort检测过程中,只能看UDP的包)之上的应用,dhcp使用udp携带报文,udp封装在ip数据包中发送.我们先来看下dhcp报文格式 OP:若是cl