DHCP的8类报⽂抓包以及option详解
DHCP(Dynamic Host Configuration Protocol﹐中⽂名为动态主机配置协议)它的前⾝是 BOOTP,它⼯作在OSI的应⽤层,是⼀种帮助计算机从指定的DHCP服务器获取它们的配置信息的⾃举协议。
DHCP使⽤客户端/服务器模式,请求配置信息的计算机叫做DHCP客户端,⽽提供信息的叫做DHCP的服务器。
DHCP为客户端分配地址的⽅法有三种:⼿⼯配置、⾃动配置、动态配置。
DHCP最重要的功能就是动态分配。除了IP地址,DHCP分组还为客户端提供其他的配置信息,⽐如⼦⽹掩码、域名、⽹关、DNS、租期等。这使得客户端⽆需⽤户动⼿就能⾃动配置连接⽹络。
DHCP的⼯作流程
DHCP8类报⽂
DHCP DISCOVER客户端⽤来寻DHCP服务器。
bootstrap dns 服务器DHCP OFFER DHCP服务器⽤来响应DHCP DISCOVER报⽂,此报⽂携带了各种配置信息。
DHCP REQUEST客户端请求配置确认,或者续借租期。
DHCP ACK服务器对REQUEST报⽂的确认响应。
DHCP NAK服务器对REQUEST报⽂的拒绝响应。(⼴播)
DHCP RELEASE客户端要释放地址时⽤来通知服务器。(单播)
DHCP DECLINE PC收到DHCP服务器的地址后,发送分配地址免费ARP,如果有回应,会发送DHCP DECLINE报⽂DHCP INFORM PC单独请求域名、DNS这些参数的时候
具体流程:
发现阶段:即DHCP客户机寻DHCP服务器的阶段。DHCP客户机以⼴播⽅式(因为DHCP服务器的IP地址对于客户机来说是未知
①发现阶段
的)、基于UDP的源端⼝号68,⽬的端⼝号67来发送DHCP DISCOVERr发现信息来寻DHCP服务器,即向地址255.255.255.255发送特定的⼴播信息。⽹络上每⼀台安装了TCP/IP协议的主机都会接收到这种⼴播信息,但只有DHCP服务器才会做出响应。
预提供阶段:(可以单播可以⼴播,取决于DHCP报⽂中的flag位)即DHCP服务器提供IP地址的阶段。在⽹络中接收
②预提供阶段
到DHCP discover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选⼀个分配给DHCP客户机,在本地形成⼀个绑定。向DHCP客户机发送⼀个包含出租的IP地址和其他设置的DHCP OFFER提供信息。【服务器在分配这个地址之间会ping⼀下这个分配的ip地址,如果没有Response就才会预分配这个地址】
选择阶段,即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCP offer提供③选择阶段
信息,则DHCP客户机只接受第⼀个收到的DHCP offer提供信息,然后它就以⼴播⽅式回答⼀个DHCP REQUEST请求信息,该信息中包含向它所选定的DHCP服务器(option 54中有所选DHCP服务器的ip地址)。报⽂之所以要以⼴播⽅式回答,⼀是为了通知所选DHCP服务器,⼆是请其他服务器收回分配的地址。
④确认阶段
确认阶段:(可以单播可以⼴播,取决于DHCP报⽂中的flag位)即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收
到DHCP客户机回答的DHCP request请求信息之后,检测之前在预分配阶段所绑定的信息,如若MAC地址⼀致,它便向DHCP客户机发送⼀个包含它所提供的IP地址和其他设置的DHCP ACK确认信息,告诉DHCP客户机可以使⽤它所提供的IP地址。然后DHCP客户机便将
其TCP/IP协议与⽹卡绑定,如果此时request报⽂的MAC地址与之前的绑定不符合,服务器不会回复DHCP ACK报⽂,那么服务器会回复⼀个DHCP NAK 报⽂,通知你这个地址你⽤不了。
重新登录:以后DHCP客户机每次重新登录⽹络时,就不需要再发送DHCP discover发现信息了,⽽是直接发送包含前⼀次所分配重新登录
的IP地址的DHCP request请求信息。当DHCP服务器收到这⼀信息后,它会尝试让DHCP客户机继续使⽤原来的IP地址,并回答⼀个DHCP ACK确认信息。如果此IP地址已⽆法再分配给原来的DHCP客户机使⽤时(⽐如此IP地址已分配给其它DHCP客户机使⽤),则DHCP服务器给DHCP客户机回答⼀个DHCP NAK否认信息。当原来的DHCP客户机收到此DHCP NAK否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。
更新租约:DHCP服务器向DHCP客户机出租的IP地址⼀般都有⼀个租借期限,期满后DHCP服务器便会收回出租的IP地址。如更新租约
果DHCP客户机要延长其IP租约,则必须更新其IP租约。当DHCP客户机启动时和IP租约期限过⼀半时,DHCP客户机都会⾃动向DHCP服务器发送单播DHCP REQUEST更新其IP租约的信息,当DHCP客户机启动时和IP租约期限过87.5%时,DHCP客户机都会⾃动向DHCP服务器发送⼴播DHCP REQUEST更新其IP租约的信息。收到DHCP ACK就续期,收到DHCP NAK就直接发送DHCP RELESE报⽂释放IP地址,然后开始重新⼀轮的DHCP
DHCP报⽂格式
OP:若是client送给server的封包,设为1,反向为2;
Htype:硬件类别,ethernet为1;
Hlen:硬件长度,ethernet为6;
Hops:若数据包需经过router传送,每站加1,若在同⼀⽹内,为0;
Transaction ID:事务ID,是个随机数,⽤于客户和服务器之间匹配请求和相应消息;
Seconds:由⽤户指定的时间,指开始地址获取和更新进⾏后的时间;
Flags:从0-15bits,最左⼀bit为1时表⽰server将以⼴播⽅式传送封包给 client,其余尚未使⽤;
Ciaddr:⽤户IP地址;
Yiaddr:客户IP地址;
Siaddr:⽤于bootstrap过程中的IP地址;
Giaddr:转发代理(⽹关)IP地址;
Chaddr:client的硬件地址;
Sname:可选server的名称,以0x00结尾;
File:启动⽂件名;
Options:,⼚商标识,可选的参数字段
常⽤的option:1 netmask
3 router
6 DNS
12 host name
51 ip address lease time
53 message type (dhcp报⽂8种类型)
54 server identification
55 parameter request list (需要服务器给你提供哪些东西:ip地址,域名,⽹关)
61 client identification
255 end
DHCP中继:在⽹关接⼝上:ip helper-address X.X.X.X,将⼴播的DHCP报⽂变成单播报⽂,进⾏跨越⽹段的DHCP ⾄于报⽂的各种抓包(包括中继),我放在附件⾥⾯了,需要的可以下载下,⽤Wireshark打开看看
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论