DHCP协议详解

DHCP协议详解

定义:DHCP(Dynamic Host Configuration Protocol)动态主机配置协议,主要作用是为局域网内的主机自动分配IP地址。DCHP工作在应用层,是BOOTP(Bootscrap Protocol)的一种扩展,使用UDP协议进行运输,UDP67和UDP68端口分别作为DHCPServer和DHCP Client的服务端口。DHCP协议内容在RFC2131中定义,而DHCP Options在RFC2132中定义。

DHCP的4次握手

测试方法:为了抓到DCHP工作过程的包,在cmd中使用ipconfig/release命令释放客户端ip地址,接着使用ipconfig/renew重新通过DHCP自动获得ip,使用wireshark抓到以下的包(如图1)。

图1:DCHP抓包结果

结合上图可以知道DHCP的4次握手内容如下:

1、客户端广播一个DHCPDiscover包,用来寻找DCHP服务器。

●源MAC: 固有MAC地址,源IP: 未分配,初始0.0.0.0

●目标MAC:FF-FF-FF-FF-FF-FF,目标IP: 255.255.255.255

2、服务器向发送Discover包的客户端MAC地址发送Offer,如图2(可能有多个DHCP服务器,但一般只处理最先收到的Offer)。

●通过分析包数据,目标MAC为客户端MAC,目标IP为将分配给客户端的IP(由于此时客户端还没有获得IP,因此,虽然IP不匹配也不会丢弃)。

●Offer的内容中有将分配给客户端的IP,其中的Options提供了DHCP服务器IP、租约时长、子网掩码、路由IP、DNS等内容。

3、客户端收到Offer后,广播一个Request租约请求,内容中Option包括客户端MAC、DHCP服务器IP、服务器提供的IP等内容。

●源MAC: 固有MAC地址,源IP: 仍然未分配,为0.0.0.0

●目标MAC: FF-FF-FF-FF-FF-FF,目标IP:255.255.255.255

4、DCHP服务器确认Request中的IP是否与发出的Offer相同,若相同,则向客户端发送DHCPACK确认信息,DHCPACK包与DHCPOFFER包的内容几乎完全一样,除了Option53:DHCP Message Type。客户端收到DHCP ACK后,通过ARP广播检测租约中IP是否冲突,若无冲突,则使用该IP。(RFC2131提到另一种冲突解决方案,DHCP服务器在发offer前,SHOULD ping一下租约IP,我的实验中没有抓到ICMP包)

图2:DCHP Offer内容

对于以前接入过的客户端

若原IP可用

测试方法:将DHCP客户端网线插拔。

对于连接过的设备,设备记忆有以前分配过的ip,则无需前两步,只进行客户端请求租用原先ip和服务端确认租用这两步,如图3。

若原IP被占用

测试方法:电脑使用DHCP获得IP后断开网线,将手机IP设为静态的电脑所获IP,然后插上网线,抓包结果如图4。

若原IP被占用,虽然收到DHCP服务器ACK确认报文,但仍被客户端拒绝,重新进行4次握手的过程。这里是客户端拒绝租约而不是DHCP服务器拒绝,如图5所示,客户端收到DHCP ACK报文,会广播针对租约IP的ARP解析包,检测到IP已被占用后,会广播DHCP Decline报文拒绝该租约,并在至少10秒后重新Discover。

图3:接入过的设备跳过DHCP握手前两步

图4:客户端拒绝DHCP ACK

图5:客户端Decline的过程

DHCP客户端释放IP

测试方法:cmd中输入ipconfig/release,或者将客户端IP由DHCP改为静态。

客户端会向服务器发送DHCP Release报文释放掉现有IP,如图6。

图6:客户端释放IP

 

附1:DHCP报文格式

DHCP Options Field

DHCP报文中的Options字段可以用来存放普通协议中没有定义的控制信息和参数。如果用户在DHCP服务器端配置了Options字段,DHCP客户端在申请IP地址的时候,会通过服务器端回应的DHCP报文获得Options字段中的配置信息。Option的格式由Type、Length、Value三部分组成。类型的取值范围为1-255。

Option 66

通过option 66字段携带TFTP server的ip地址。从而使设备可以从TFTP server上下载配置文件,通过TFTP server实现自动配置。

图6:FRC2132中的关于Option 66的定义

这种自动配置是如何实现的呢?首先要给DHCP服务器设置Option 66选项,当一个新的设备接入网络,它会发送DHCPDISCOVER广播寻找DHCP服务器来获得IP,这时DHCP服务器的Offer报文利用Option 66给设备提供TFTP服务器的地址,设备通过访问TFTP服务器获得预设的配置。

Option 66的值可以是TFTP服务器域名或IP,需要注意的是Option66的值通常不作为Option 66出现在DHCP packet中,而是被移到DHCP包中的sname(服务器主机名)中,而且域名可能已经被解析成IP地址放于siaddr(服务器IP地址)中。Option 67指定了从Option 66提供的服务器下载的文件名,通常被放在file(文件名)中。

还需要注意的是Option 66字段的Value值使用ascii编码,举例:若TFTP服务器IP为10.10.10.1,则翻译成16进制为31 30 2E 31 30 2E 31 30 2E 31。

时间: 2024-08-03 15:27:18

DHCP协议详解的相关文章

【转】DHCP协议详解

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

DHCP协议 详解

DHCP: 动态主机配置协议  TCP/IP协议想要运行正常的话,网络中的主机和路由器不可避免地需要配置一些信息(如接口的IP地址等).有了这些配置信息主机/路由器才能提供/使用特定的网络服务.  主机信息的必要元素有:IP地址.子网掩码.DNS服务器IP地址  TCP/IP协议配置主机信息主要有三种方法: 1. 手动配置 2. 动态获取 3. 根据特定算法计算.  在网络中,我们把主机分为两大类,服务器主机和客户端主机, + 服务器主机: 一般采用手动配置 + 客户端主机: 一般采用动态获取 

DHCP协议详解及实验

1.DHCP定义:主机动态配置协议(Dynamic Host Configuration Protocol)主要功能是自动获取IP地址.子网掩码.网关.DNS.下面为抓取笔记本WLAN通过DHCP获取的地址 无线局域网适配器 WLAN:    连接特定的 DNS 后缀 . . . . . . . :    描述. . . . . . . . . . . . . . . : Intel(R) Centrino(R) Wireless-N 1000    物理地址. . . . . . . . .

HTTP协议详解

HTTP协议详解 转载(http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html) 当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看.也希望对大家的开发工作或者测试工作有所帮助.使用Fidd

HTTP协议详解(真的很经典)

引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HTTP协议的主要特点可概括如下:1.支持客户/服务器模式.2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POS

HTTP协议详解 (转)

转自 http://blog.csdn.net/gueter/article/details/1524447 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HTTP协议的主要特点可概括如下:1.支持客户/服务

IP协议详解

IP协议详解 前言 本屌今天可算是累坏了,一大早起来本来寻思赶快centOS虚拟机玩玩吧,那天刚装了系统,本来的虚拟机没了,今天想着先把centOS装上,结果给个系统不停的给我扯淡啊,显示虚拟机上不去网,好不容易上去网了,ping不通主机,主机ping不通虚拟机,各种办法都试了,最后我吧VMware8那块网卡禁用了,卧槽!!啥都好了,本屌一直鼓捣到晚上八点,从早晨10点多.服了我自己了. 引入 在前面的学习中,我们简单地IP接力和IP地址后,咱们今天具体的说说IP协议的具体细节和设计哲学. IP

转:HTTP协议详解(真的很经典)

转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HT

HTTP协议详解以及URL具体访问过程

1.简介 1.1.HTTP协议是什么? 即超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准.从网络参考模型来看,它是属于应用层.它规定了计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器. 简单的来说,它就是基于应用层一个规范一个标准!通讯双发都需要遵守这一准则,这就是http协议! 1.2.http简史