目录
DHCP前言:
在DHCP还未诞生的年代,所有终端的IP地址都需要手工配置,而手工配置IP地址可能导致几个问题:
1.灵活性差
2.容易出错
3.容易出现地址冲突
4.工作量大
5.对人员素质有一定要求
基本概念:
·DHCP,全名是Dynamic Host Configuration Protocol,动态主机配置协议,即是一种对主机IP地址进行一个动态配置和管理的协议,无需手工人员
·DHCP采用C/S通信协议,协议报文基于UDP进行交互,采用了UDP67(Server)和UDP68(Client)两个端口号
·DHCP的重磅出世,使得传统的手工配置方式迅速被其取代,DHCP相对于手工配置有如下优点:
1.效率高
2.灵活性强
3.易于管理
4.基于DHCP协议报文的设计,不会产生地址冲突
DHCP常见报文与工作流程:
这是比较常见的一次DHCP报文交互流程,即四次握手
在参与DHCP四次握手的只有两个角色,一个是DHCP Server,一个是DHCP Client
1)DHCP Discover(DHCP发现报文):这是DHCP客户端为了发现网络中的DHCP服务器而以广播的方式发送的报文。即 DHCP Client——>DHCP Server
2)DHCP Offer(DHCP提供报文):这是DHCP服务端向DHCP客户端发送的报文。但是,这里是单播,源地址是DHCP服务器本地地址,而目的地址即是DHCP服务器要向DHCP客户端分配的地址,因此这里是以一个单播的形式发送的。即DHCP Server ——> DHCP Client
3)DHCP Request (DHCP请求报文):这是DHCP客户端向DHCP服务器请求使用此地址的报文,因为此时DHCP客户端还未正式获得该地址,因而没有地址的他仍然使用广播的方式发送请求报文。即DHCP Client——> DHCP Server
4)DHCP ACK(DHCP确认报文):这是DHCP服务器向DHCP客户端发送的确认报文,即向DHCP客户端正式通知他能够使用所分配的这个地址
DHCP常规配置类型:
首先放置一个topo
1.DHCP接口配置:
DHCP接口配置,这是最简单的一种DHCP配置方式
基本原理就是,构建一个以当前配置接口的IP地址为网关,并以该IP地址所在的网段分配地址的一个接口地址池,相当于是动态生成地址池
2.DHCP全局配置:
DHCP全局配置,这是一种较为复杂的DHCP配置方式,它需要手动构建一个全局地址池,然后在接口上应用
虽然配置要比接口地址池复杂一些,但是看起来更直观,相比接口配置的优势就是网关能够自定义,而接口地址池的网关只能以当前配置接口的IP地址为网关,局限性较大,如在VRRP场景下,DHCP就不可能采用接口配置了,而只能采用一个全局配置
DHCP跨三层分配地址出现的问题与解决方案
1.DHCP跨三层分配地址出现的问题:
阅读了上述的DHCP工作流程,理当知道,在四次握手中,DHCP客户端向DHCP服务端发送的报文都是以广播的形式发送的,因为在正式获得地址前,DHCP客户端是没有地址的,因而不能发送单播地址。但是arp广播不能跨三层,那么此时就出现一个问题:DHCP跨三层如何分配地址?
2.DHCP跨三层分配地址的解决方案:
前言:
为了解决这种问题,DHCP还有一种特殊的配置方式——中继配置
原理:
这是一个简单的中继场景的topo
中继的原理也很简单,首先由DHCP中继者接收DHCP Client的广播报文,然后DHCP中继者将广播报文变为一个单播报文,单播源地址为本端接收了DHCP Client广播报文的地址,单播目的地址则是DHCP Server与DHCP Relay的直连地址。并且,DHCP Server要保证对DHCP Client所在网段的路由可达,四次握手才能正常进行。
配置实施与抓包:
配置完后我们可以抓包看看
这是SW1的g0/0/2口的包,可以看到此时DHCP发现报文与DHCP请求报文还是广播报文
这是SW1的g0/0/1口的包,可以看到此时DHCP发现报文与DHCP请求报文变为了单播报文,并且与我上述理论相符,是以DHCP中继者接收到DHCP Client发送的广播报文的地址为源地址,以DHCP服务器的与DHCP中继者直连口为目的地址
DHCP安全机制:
前言:
在目前这个错综复杂的现网环境中,DHCP的安全性面临着各种各样的挑战,如DHCP仿冒者攻击、DHCP中间人攻击、DHCP饿死攻击等,DHCP也相应装配了各种安全机制,以防范来自四方八方的攻击
1.DHCP仿冒者攻击:
简介:
DHCP仿冒者攻击,即仿冒成DHCP服务器向DHCP Client提供DHCP服务器,如图
这时候DHCP客户端该如何甄别谁是正确的、可信任的DHCP服务器呢?
防御措施:
简介:
dhcp有一种嗅探技术,即DHCP Snooping,其主要作用是用来屏蔽非法接入网络的非法dhcp服务器,即屏蔽dhcp仿冒者
配置实施:
2.DHCP中间人攻击/ARP欺骗:
简介:
DHCP中间人攻击,其实本质就是ARP欺骗。
如,用户发送DHCP广播报文时,DHCP中间人利用ARP机制,利用DHCP Server IP与DHCP中间人的MAC构建一个ARP映射关系,然后再以DHCP Client IP与DHCP中间人的MAC构建一个ARP映射关系,使得用户和DHCP Server之间的流量经过中间人转发,来实现对DHCP通信路径的监听,并实现进一步的操纵
防御措施:
简介:
DHCP还支持一种DAI技术,即Dynamic ARP inspection动态ARP检测,可以有效的针对中间人攻击进行防御。不过由于DAI依赖于DHCP Snooping绑定表来进行MAC/IP的合法性检查,因此要先使能DHCP嗅探才能使能DAI
配置实施:
DAI有两种配置方式,接口配置和vlan配置
1.基于接口配置:
基于接口对来往arp报文进行一个合法性检查,局限性,不能防护到所有设备,且只能在已知中间人来自哪个接口的情况下配置
2.基于vlan配置
基于vlan对vlan内所有arp报文进行一个合法性检查,实现一个全面的安全防护,推荐用这种配置方式
3.DHCP饿死攻击/DHCP耗尽攻击:
简介:
饿死攻击会通过变换CHADDR值(Client Hardware Address)中的MAC地址大量地向DHCP服务器发送DHCP Discovery报文申请IP地址,使DHCP地址池迅速耗尽,无法为正常的用户分配地址。
主要问题在于,DHCP服务器无法区分恶意申请者与正常申请者。
防御措施:
简介:
对于饿死攻击,可以通过配置DHCP嗅探的dhcp最大用户数目来防御,防止攻击者通过变换CHADDR值中的MAC地址大量发送DHCP请求。尽管这种方法既能基于vlan配置,也能基于接口配置,但是这种方法有着一个局限性,他是通过限制一个全局的DHCP用户数目来防止饿死攻击,是比较被动的方法
对于饿死攻击,正确的做法应该是使用dhcp嗅探的dhcp snooping check dhcp-request 功能,这种功能能够检测DHCP请求报文里面的参数,实现绑定表匹配检查功能来防御攻击,并且这种功能能够基于vlan部署,实现一个全面的安全防护
配置实施:
IPSG(由于在以上攻击中未被提及故单独列出):
基本概念:
IPSG是一种基于二层口的源地址过滤技术。它能够防止恶意主机伪造合法主机的IP地址来仿冒合法主机,还能确保非授权主机不能通过自己指定IP地址的方式来访问网络或攻击网络,只能通过DHCP获取,并且能利用绑定表对来往数据包的IP源地址进行匹配检查,可以很好的防止内网用户乱改IP的现象。同样也可以在二层口或vlan下配置,推荐在vlan下配置,以实现全面的IP源防护
配置实施:
尾声:
DHCP基本了解这么多应该就可以了,那么DHCP的故事就到此告一段落拉,我们下次再见