DHCP协议及其抓包分析

DHCP

1.DHCP概述

DHCP是Bootstrap协议的一种扩展,基于UDP协议,客户端的端口号是68,服务器的端口号是67

Application Layer DHCP
Transport Layer UDP
Network Layer IP
Data-link Layer NO-limited
Physical Layer NO-limited

DHCP协议特性

1.保证任何IP地址在同一时刻只能由一个DHCP客户机所使用

2.DHCP应当可以给用户分配永久的IP地址

3.DHCP应当可以通过其他方法获得IP地址的主机共存(如手工配置IP地址的主机)

4.DHCP服务器应当向现有的DHCP客户端提供服务

DHCP数据包结构

在这里插入图片描述

  • 操作码(1字节):该字段用于定义BOOTP报文类型。请求报文1,应答报文为2。
  • 硬件类型(1字节):用于定义物理网络的类型。每种类型的网络被分配一个整数。10M以太网,这个字段值为1
  • 硬件地址长度(1字节):用于定义以字节为单位的物理地址长度。对于以太网,该字段值为6.
  • 条数(1字节):该字段的初始值为0 ,DHCP中继代理负责填写这一字段。
  • 事务标识(4字节):由DHCP客户随机选择,用来对DHCP请求/应答报文进行匹配,DHCP服务器在应答报文中返回同样的值。
  • 秒数(2字节):由DHCP客户端设置,给出DHCP从获得IP地址或更新租约所经历的时间。
  • 标志:该字段最高位是广播标志位,其余位必须设为0。当DHCP客户不知道自己的IP地址时,要设置广播标志,通知服务器发送应答报文时采用IP广播方式。
  • 客户IP地址:如果DHCP客户知道自己的IP地址,则在发送请求时,将自己的IP地址填入该字段,同时将前面的广播标志位设为0,通知服务器以单播方式发送应答报文;如果DHCP客户不知道自己IP地址,则该字段全部填0
  • 您的IP地址:DHCP服务器返回给客户的IP地址
  • 服务器IP地址:由DHCP服务器在DHCPOFFER和DHCPACK报文中提供的引导服务器IP地址
  • 网关IP地址:
  • 客户硬件地址:
  • 服务器名字:
  • 引导文件名:
  • 选项(长度可变):

常用的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
  • 82 relay agent
  • 255 end

DHCP报文8种类型

报文类型 含义
DHCP DISCOVER 客户端用来寻找DHCP服务器
DHCP OFFER DHCP服务器用来响应DHCP DISCOVER报文,此报文携带了各种配置信息
DHCP REQUEST 客户端请求配置确认,或者续借租期
DHCP ACK 服务器对REQUSET报文的确认响应报文
DHCP NAK 服务器对REQUSET报文的拒绝响应报文(广播)
DHCP RELEASE 客户端要释放地址时来通知服务器。(单播)
DHCP DECLINE decinePC收到DHCP服务器的地址后,发送分配地址免费ARP,如果有回应,会发送DHCP DECINE报文(即向DHCP报告该IP被占用)
DHCP INFORM PC单独请求域名、DNS这些参数的时候

在这里插入图片描述

2.DHCP协议工作原理

工作过程:

(1)请求IP地址

1.发现阶段。DHCP客户机以广播方式发送DHCP DISCOVER报文

2.提供阶段。DHCP服务器提供IP地址的阶段。收到DHCPdiscover报文后,从IP地址池中选择一个尚未分配的IP地址分配给DHCp客户机,向DHCP客户发送包含租借的IP地址和其他配置参数的DHCPoffer。

3.选择阶段。DHCP客户选择IP地址的阶段。如果多台DHCP服务器向该DHCP客户发送DHCPoffer报文,则DHCP客户从中随机挑选,然后以广播方式向各DHCP服务器回应DHCPrequest,宣告宣告使用他挑中的DHCP服务器提供的地址,并正式请求DHCP服务器分配地址。其他发送DHCPoffer报文的DHCP服务器接收到该报文后,将释放已经offer(预分配)DHCP客户的IP地址。

如果发送给DHCP客户的DHCPoffer报文中包含无效的配置参数,DHCP客户会发送DHCPdecline报文拒绝。

4.确认阶段。DHCP服务器确认所提供的的IP地址的阶段。当DHCP服务器收到DHCPrequest报文后,向客户发送包含它所提供的IP地址及其他配置信息的DHCPACK确认报文。然后DHCP客户将接收并使用IP地址及其他TCP/IP配置参数

(2)续租IP地址

在DHCP中,每个IP地址都是有一定租期的,若租期已到,则DHCP服务器就可以将该IP地址分配给其他计算机。续租在租期达到50%时就将启动,DHCP客户发送DHCPrequest报文请求续租,若服务端回复DHCPack报文,续租成功。若此次不成功在租期87.5%时再次续租。若DHCP服务器回复则续租成功。否则租期一到释放该IP地址

(3)释放IP地址

DHCP客户可以通过向DHCP服务器发送DHCErelease报文主动释放IP地址,同时将IP地址设置为0.0.0.0

在这里插入图片描述

3.DHCP中继及snooping

DHCP中继

考虑到成本,无需每个子网都配备一台DHCP服务器,所以DHCP协议应当可以通过路由器或者BOOTP代理透传(DHCP中继)。

由于DHCP请求报文采用广播方式发送报文,因此当DHCP客户端和DHCP服务器处于不同子网时,必须要通过DHCP中继进行通信,最终获取到IP地址。

多个网络上的DHCP客户端可以使用同一个DHCP服务器,既节省了成本,又便于进行集中管理

在这里插入图片描述

DHCP Snooping

DHCP Snooping是 DHCP 的一种安全特性,主要应用在 交换机 上,作用是屏蔽接入网络中的非法的 DHCP 服务器。即开启 DHCP Snooping 功能后,网络中的客户端只有从管理员指定的 DHCP 服务器获取 IP 地址。

DHCP在设计上未从分考虑安全因素,从而留下了许多安全漏洞,使得DHCP很容易受到攻击。实际网络中,针对DHCP的攻击行为主要有以下三种:

DHCP饿死攻击

攻击原理:攻击者持续大量的向DHCP Server申请地址,直到耗尽DHCP Server地址池中的IP地址,导致DHCP Server不能给正常的用户进行分配。

解决方法:通过校验CHADDR与MAC值。

在这里插入图片描述

仿冒DHCP Server攻击

攻击原理:攻击者仿冒DHCP Server,向客户端分配错误的IP地址及提供错误的网关地址等,导致客户端无法正常访问网络。

解决办法:通过配置trust与untrust口区分转发。

在这里插入图片描述

DHCP中间人攻击

攻击原理:攻击者利用ARP机制,让PC-A学习到IP-S与MAC-B的映射关系,又让Server学习到IP-A与MAC-B的映射关系。如此一来,PC-A与Server之间交付的IP报文都会经过攻击者中转。

解决办法:开启ARP检测。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43710889/article/details/108473495