DHCP协议分析
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)
是一个局域网的网络协议,主要用于给内部网络和网络服务供应商自动分配IP地址。前身又称,BOOTP。
DHCP使用UDP协议,有两个熟知端口:DHCP服务器为67,DHCP客户为68。DHCP分配IP地址的方式有:自动分配、动态分配和手工配置。前两种都是由DHCP服务器给客户端分配,自动分配的是永久性的IP地址,动态分配的IP地址过一段时间过期或能被客户端主动释放。手工配置由用户手动为客户端指定IP地址。
DHCP工作过程分为4个阶段:发现阶段(DHCP Discover)、提供阶段(DHCP Offer)、选择阶段(DHCP Request)和确认阶段(DHCP Ack)。
1)发现阶段,DHCP客户端以广播的形式寻找DHCP服务器
2)提供阶段,接收到DHCP Discover的服务器都会响应,DHCP服务器从未出租的IP地址中挑选一个给客户端,发送DHCP Offer包
3)选择阶段,DHCP客户端选择第一个收到的DHCP Offer包信息来接收,以广播方式回答一个DHCP Request请求信息
4)确认阶段,被选择的DHCP服务器确认所提供的IP地址,发送DHCP Ack,未被选择的服务器回收曾提供的IP地址。
DHCP数据包捕获方法:重启网卡。
Windows下对应命令:ipconfig/release -> ipconfig/renew
Linux下对应命令:ifdown etho -> ifup eth0
DHCP报文格式
DHCP抓包分析
发现数据包
1、源地址为0.0.0.0,因为客户端目前还没有IP地址;255.255.255.255是广播地址
2、使用的是UDP协议,源端口为68(客户端),目的端口为67(服务器)
3、Bootstrap Protocol就是DHCP协议
响应数据包
1、仍然是广播包
2、DHCP中有提供给客户端的IP地址192.168.0.102,租期为至少1天,子网掩码255.255.255.0等信息。
请求数据包
1、由于还没有获取到IP,源IP还是为0.0.0.0。目的IP为255.255.255.255,目的MAC依然是广播地址,表示告诉所有的DHCP服务器它所选择的地址。
2、BOOTP协议中包含所请求的IP地址和DHCP服务器标志符。
确认数据包
该包是DHCP流程的最后一步。