DHCP详解

DHCP,DNS和HTTP是3种常见的高层协议。

一,动态主机配置协议DHCP

1,DHCP简介

DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。

DHCP的前身是BOOTP协议(Bootstrap Protocol),BOOTP被创建出来为连接到网络中的设备自动分配地址,后来被DHCP取代了,DHCP比BOOTP更加复杂,功能更强大。后面可以看到,在用Wireshark过滤显示DHCP包,需要输入过滤条件BOOTP,而不是DHCP,但或许是因为我使用的Wireshark版本是比较旧的1.12.9,没有在新版本中尝试过,也许可以输入DHCP让其只显示DHCP包。

2,DHCP的实现

这里写图片描述 
DHCP的实现分为4步,分别是: 
第一步:Client端在局域网内发起一个DHCP Discover包,目的是想发现能够给它提供IP的DHCP Server。 
第二步:可用的DHCP Server接收到Discover包之后,通过发送DHCP Offer包给予Client端应答,意在告诉Client端它可以提供IP地址。 
第三步:Client端接收到Offer包之后,发送DHCP Request包请求分配IP。 
第四步:DHCP Server发送ACK数据包,确认信息。


二,利用Wireshark抓取DHCP包

1,分析

要想抓取到DHCP包,先要保证有可用的DHCP服务器,然后将主机IP地址获取方式设置为自动获取。如果主机在抓包之前已经联网,需要先断开主机的网络连接,然后再连接网络。在cmd下使用命令ipconfig来完成网络断开与连接的过程:

<code class="hljs dos has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"> <span class="hljs-winutils" style="color: rgb(0, 0, 136); box-sizing: border-box;">ipconfig</span> /release 断开主机当前的网络连接 
 <span class="hljs-winutils" style="color: rgb(0, 0, 136); box-sizing: border-box;">ipconfig</span> /renew   请求连接网络
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul>

在cmd中可以使用ipconfig /?查看各参数的含义: 
这里写图片描述 
(1)ipconfig /release 
断开当前的网络连接,主机IP变为0.0.0.0,主机与网络断开,不能访问网络。 
(2)ipconfig /renew 
更新适配器信息,请求连接网络,这条命令结束之后,主机会获得一个可用的IP,再次接入网络。

2,开始抓包

实验环境:Win10,Wireshark1.12.9,有线连接 
(1)在Wireshark中点击start开始抓包,在过滤栏输入bootp,使其只显示DHCP数据包。 
(2)在cmd中输入ipconfig /release 断开网络连接。 
这里写图片描述 
可以看到此时所有的网卡都已经断开。以太网处于断开状态。

这里写图片描述
Wireshark中截获到一个DHCP Release数据包。

(3)在cmd中输入ipconfig /renew 请求网络连接。 
这里写图片描述
此时,可以看到在Wireshark中新增了4个DHCP数据包: 
数据包1:DHCP Discover 
数据包2:DHCP Offer 
数据包3:DHCP Request 
数据包4:DHCP ACK

这里写图片描述 
等待这条命令执行完毕之后,在cmd中可以看到主机被分配了IP,主机成功连入网络中。

(4)为了后续分析使用,我们再执行一次ipconfig /renew: 
这里写图片描述
可以看到Wireshark中新增了3个数据包:DHCP ACK;DHCP Request;DHCP ACk。 
如果再次使用ipconfig /renew,每执行一次会新增2个数据包:DHCP Request;DHCP ACk。

三,DHCP包分析

下面着重来分析当执行,ipconfig /renew这条命令产生的4个DHCP数据包,这4个数据包代表了客户机和DHCP服务器的交互过程,也是IP动态分配的过程。 
这里写图片描述 
1,DHCP Discover数据包 
(1)Client端使用IP地址0.0.0.0发送了一个广播包,可以看到此时的目的IP为255.255.255.255。Client想通过这个数据包发现可以给它提供服务的DHCP服务器。

(2)从下图可以看出,DHCP属于应用层协议,它在传输层使用UDP协议,目的端口是67。 
这里写图片描述

2,DHCP Offer包 
当DHCP服务器收到一条DHCP Discover数据包时,用一个DHCP Offerr包给予客户端响应。 
这里写图片描述 
(1)DHCP服务器仍然使用广播地址作为目的地址,因为此时请求分配IP的Client并没有自己ip,而可能有多个Client在使用0.0.0.0这个IP作为源IP向DHCP服务器发出IP分配请求,DHCP也不能使用0.0.0.0这个IP作为目的IP地址,于是依然采用广播的方式,告诉正在请求的Client们,这是一台可以使用的DHCP服务器。

(2)DHCP服务器提供了一个可用的IP,在数据包的Your (client) IP Address字段可以看到DHCP服务器提供的可用IP。

(3)除此之外,如图中红色矩形框的内容所示,服务器还发送了子网掩码,路由器,DNS,域名,IP地址租用期等信息。

3,DHCP Request包 
当Client收到了DHCP Offer包以后(如果有多个可用的DHCP服务器,那么可能会收到多个DHCP Offer包),确认有可以和它交互的DHCP服务器存在,于是Client发送Request数据包,请求分配IP。 
此时的源IP和目的IP依然是0.0.0.0和255.255.255.255。

4,DHCP ACK包 
服务器用DHCP ACK包对DHCP请求进行响应。 
这里写图片描述 
在数据包中包含以下信息,表示将这些资源信息分配给Client. 
Your(client) IP address:分配给Client的可用IP。 
后面有许多项option信息,前两项是DHCP服务器发送的消息类型(ACK)和服务器的身份标识,后面几项是: 
Subnet Mask:Client端分配到的IP的子网掩码; 
Router:路由器 
Domain Name Server:DNS,域名服务器 
Domain Name:域名 
IP Address Lease Time:IP租用期。


四,DHCP starvation attack

1,DHCP starvation attack,DHCP饥饿攻击 
其实各种各样的攻击技术总是会让人觉得兴奋。抛却道德不谈,必须承认的是,制造这些攻击的人都是高智商。

有许多中攻击DHCP的技术,这里介绍其中一种,有点类似于SYN 洪范攻击。 
DHCP starvation attack,中文即DHCP饥饿攻击,可以顾名思义一下,饥饿攻击,就是大量地进食,把可以吃的食物全部吃完,然后让其他人没得吃,最后给其他人提供一些毒药,把人家毒死,姑且可以这样浅显地认为。

下面来说这种攻击是如何实现的。一些不法分子,伪造合法的MAC地址,不断地向DHCP服务器发出DHCP Request包,最后耗尽服务器的可用IP,于是原有的这台DHCP服务器便不能够给客户端分配IP了,此时不法分子再伪造一台DHCP服务器,给客户端分配IP,将客户端的默认网关和DNS都设置成自己的机器,于是便可以对客户端进行中间人攻击。


  • 130
    点赞
  • 596
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
### 回答1: IPv6 DHCP池是用于IPv6网络中分配IPv6地址和其他配置参数的资源池。DHCP是动态主机配置协议,它允许设备在加入网络时自动获取各种网络配置。 IPv6 DHCP池包含了一组可用的IPv6地址和其他配置参数,比如网关、DNS服务器和域名等。当设备加入网络时,它可以向DHCP服务器发送一个请求,从这个池中获取一个可用的IPv6地址和其他配置参数。 IPv6 DHCP池的详解包括以下内容: 1. IPv6地址分配:DHCP服务器从IPv6地址池中选择一个可用的IPv6地址分配给设备。IPv6地址池通常包含一系列连续的IPv6地址,DHCP服务器按顺序从中选择一个地址分配给设备。 2. 其他配置参数:除了IPv6地址之外,DHCP服务器还可以为设备提供其他配置参数。这些参数可以包括默认网关、DNS服务器、域名、MTU和其他自定义选项等。设备可以使用这些配置参数来正确配置自己的网络连接。 3. 地址回收和再分配:当设备离开网络或释放IPv6地址时,该地址将会被收回并重新加入IPv6地址池中。这样,当新设备加入网络时,它可以获取到一个之前被释放的地址,提高了地址资源的利用率。 4. 配置控制:DHCP服务器可以通过控制IPv6地址池中可用地址的数量来限制网络中设备的数量。通过配置控制,管理员可以确保网络资源的合理分配和管理。 可以说,IPv6 DHCP池为IPv6网络中设备的自动配置提供了一种简单而有效的方法。管理员可以通过配置和管理IPv6 DHCP池来确保设备能够获得正确的网络配置,并提高IP地址资源的利用率。 ### 回答2: IPv6 DHCP池是一种IPv6地址分配管理工具,它允许网络管理员为使用IPv6协议的设备动态分配全局唯一的IPv6地址。 IPv6 DHCP池包含一系列IP地址,这些地址可以被DHCP服务器分配给设备。DHCP服务器首先为设备分配一个IPv6地址,然后为其分配其他网络配置信息,例如子网掩码、默认网关和DNS服务器地址等。 IPv6 DHCP池的详解包括以下几个方面: 1. 子网和地址范围:管理员需要指定一个包含IPv6地址的子网,并为其中的地址范围设置起始地址和结束地址。DHCP服务器将从此范围内为设备动态分配IPv6地址。 2. 端口配置:DHCP服务器需要配置网络接口,以便接收和发送IPv6 DHCP消息。通常,服务器的端口将与需要进行地址分配的子网进行绑定。 3. 地址分配策略:管理员可以根据实际需求设置不同的分配策略。例如,管理员可以选择按照设备的MAC地址、设备类型或其他标识符来分配IPv6地址。 4. 地址池选项:管理员可以配置其他选项,如掩码长度、地址预留、地址重用等。这些选项可以根据网络需求进行调整。 5. 协议支持:IPv6 DHCP池通常支持各种IPv6协议,如SLAAC(Stateless Address Autoconfiguration)和DHCPv6(Dynamic Host Configuration Protocol for IPv6)。DHCPv6提供了更灵活的地址分配和配置选项。 总之,IPv6 DHCP池是一种用于动态分配IPv6地址和配置信息的工具,可以方便地为使用IPv6的设备提供网络连接。通过合理配置不同的参数和选项,管理员可以根据网络需求实现灵活和高效的IPv6地址分配。 ### 回答3: IPv6 DHCP池是用于分配IPv6地址的一组地址范围。DHCP代表动态主机配置协议,它是一种网络协议,允许设备自动获得IP地址和其他网络配置信息,而无需手动配置。IPv6是下一代互联网协议,提供了更大的地址空间和更好的网络性能。 当IPv6 DHCP服务配置为DHCP池模式时,它会将一组IPv6地址范围分配给设备。池中的每个地址范围都可以包含多个可用的IPv6地址。当设备连接到网络时,它会向DHCP服务器发送一个地址请求,DHCP服务器会从池中选择一个可用的IPv6地址并将其分配给设备。这个过程使得网络管理员能够轻松地管理和分配IPv6地址,而无需手动为每个设备配置地址。 IPv6 DHCP池的一些常见配置选项包括: - IPv6地址范围:指定用于分配的IPv6地址范围。这个范围可以是连续的地址段,也可以是多个不连续的地址段。 - 地址租期:指定分配给设备的IPv6地址的有效期。设备在租期到期之前必须续约或重新请求地址。 - DNS服务器:指定分配给设备的DNS服务器的IPv6地址。这样设备就可以解析域名和访问互联网。 - 默认网关:指定设备的IPv6默认网关的地址。默认网关用于将设备的数据发送到其他网络。 - 附加选项:可以添加其他自定义配置选项,例如IPv6前缀长度或其他网络参数。 使用IPv6 DHCP池可以简化IPv6地址分配过程,提高网络管理效率。它允许网络管理员集中管理大量设备的IPv6地址,并自动分配这些地址给设备。此外,IPv6 DHCP池还可以通过指定其他网络配置选项,如DNS服务器和默认网关,为设备提供更好的网络连接和互联网访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值