DHCP(Dynamic Host Configuration
Protocol)是一种动态的向Internet终端提供配置参数的协议。在终端提出申请后,DHCP可以向终端提供IP地址、网关、DNS服务器地址等参数。
DHCP是Bootstrap协议的一种扩展配置,基于UDP协议,客户端的端口号是68,服务器的端口号是67,位于OSI的应用层
为什么需要DHCP
1.在大型网络中,如果每台终端的地址都是不同的使用者来分配,那么就很容易出现地址相同的情况
2.在TCP/IP网络上,每台工作站在访问网络及其资源之前,都必须进行基本的网络配置,一些主要参数,诸如IP地址、子网掩码、缺省网关、DNS等必不可少还
可能需要添加一些附加的信息如IP管理协议之类
3.在大型网络中,确保所有主机都拥有正确的配置是一件相当困难的管理任务,
尤其对于含有漫游用户和笔记本电脑的动态网络更是如此。经常有计算机从一个
子网移到另一个子网或从网络中移除。手动配置或重新配置数量巨大的计算机可
能要花很长时间,而IP地址主机配置过程中的错误可能导致该主机无法于网络中
的其他主机通信
因此,需要有一种机制来简化IP地址的配置,实现IP的集中式管理。而IETF(网络Internet工程师任务小组)设计的动态主机配置协议正是这样一种机制
DHCP的好处
减少错误
通过配置DHCP,把手工配置IP地址所导致的错误减小到最低程度,例如已
分配的IP地址再次分配给另一台设备所造成的地址冲突等将大大减少
减少网络管理
TCP/IP配置是集中化和自动完成的,不需要网络管理员手工配
置。网络管理员能集中定义全局和特定子网的TCP/IP配置信息
使用DHCP选项可以自动给客户机分配全部范围的附加TCP/IP配
置值。客户机经常到处移动,这样便于它在新的地点重新启动
时,高效而又自动地进行配置,同时大部分路由器能转发DHCP
配置请求,这就减少了每个子网设置DHCP服务器的必要,除非
有其他原因
注意:考虑到成本,无需每个子网都配备一台DHCP服务器,所以DHCP应当可以通过路由器或BOOTP代理透传
DHCP协议中的报文
DHCP DISCOVER :客户端开始DHCP过程发送的包,是DHCP协议的开始
DHCP OFFER :服务器接收到DHCP
DISCOVER之后做出的响应,它包括了给予客户端的IP(yiaddr)、客户端的MAC地址、租约过期时间、服务器的识别符以及其他信息
DHCP REQUEST :客户端对于服务器发出的DHCP OFFER所做出的响应。在续约租期的时候同样会使用。
DHCP ACK :服务器在接收到客户端发来的DHCP
REQUEST之后发出的成功确认的报文。在建立连接的时候,客户端在接收到这个报文之后才会确认分配给它的IP和其他信息可以被允许使用。
DHCP NAK :DHCP ACK的相反的报文,表示服务器拒绝了客户端的请求。
DHCP RELEASE :一般出现在客户端关机、下线等状况。这个报文将会使DHCP服务器释放发出此报文的客户端的IP地址
DHCP INFORM :客户端发出的向服务器请求一些信息的报文
DHCP DECLINE :当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止使用该IP地址。
DHCP的流程
1、当客户机第一次接入网络时,客户机在本网段内广播DHCODISCOVER报文已发现网络中的DHCP服务器,DHCP Relay可将此报文广播到其他网段
2、服务器向客户机回应请求,并给出一个可用的IP地址。此地址并非真的被分配。但在给出此地之前,应当用ICMP ECHO REQUEST报文进行检查
3、当收到DHCPREQUEST报文后,服务器将客户机的网络的网络地址、硬件地址同分配的IP地址绑定,再将IP地址发送给客户机
4、当收到DHCPREQUEST报文后,如果发现其申请的地址无法被分配,则用DHCPNAK报文回应
5、客户机收到DHCPACK报文后,再对所有的参数进行一次最后的检查,如果发现由地址冲突存在,则使用DHCPDECLINE报文回复服务器
6、如果客户机放弃现在使用的IP地址,则它使用DHCPRELEASE报文通知服务器,服务器将此地址回收以备下次使用
7、当客户机的地址到达50%租用期时,客户机进入RENEW状态,使用DHCPREQUEST报文续约;当客户机的地址到达87.5%租用期时,客户机进入REBINDING状态,使用DHCPREQUEST报文续约
成为DHCPserver条件
必须有合法的IP地址
DHCP服务器IP分配三种方式
1)自动分配(Automatic Allocation)(MAC地址与IP绑定)
自动分配是当DHCP客户端第一次成功地从DHCP服务器端分配到一个IP地址之后,就永远使用这个地址。
2)动态分配(Dynamic Allocation)常用方式
动态分配是当DHCP客户端第一次从DHCP服务器分配到IP地址后,并非永久地使用该地址,每次使用完后,DHCP客户端就得释放这个IP地址,以给其他客户端使用。
3)手动分配
手动分配是由DHCP服务器管理员专门为客户端指定IP地址。
三种方式的区别:
1、自动分配和手动分配都是分配静态ip
2、自动分配需要在配置文件中配置IP与MAC对应关系,在在静态表中,获取IP必须通过DHCP服务器
3、手动分配需要人工操作,不需要通过DHCP服务器
4、动态分配有时效性
配置过程
「r1」dhcp enable
先启用dhcp,一台路由器上启用一次就可以
「r1」interface g0/0/1 -- 进入接口,给借口配地址,使其拥有合法的IP
「r1-g0/0/1」IP address 192.168.1.1 24
「r1-g0/0/1」q
「r1」IP pool xixi -- 建立一个IP池
「r1-pool-xixi」network 192.168.1.0 mask 255.255.255.0
给地址池划分网段
「r1-pool-xixi」gateway-list 192.168.1.1
给网段一个网关
「r1-pool-xixi」dns-list 114.114.114.114
给ip地址配置dns服务器
注:114.114.114.114是国内解析速度最快且最稳定的dns服务器,8.8.8.8是美国的dns服务器
「r1」interface g0/0/1 -- 进入配置dhcp的接口
「r1-g0/0/1」dhcp select global -- 选择dhcp的配置方式位全局模式
注:如果说是通过虚拟子借口下方地址,需要进入虚拟子借口,再在虚拟子借口上配置dhcp,最后将此接口调用给特定的vlan
配置过程
「r1」interface g0/0/1.1 -- 进入虚拟子借口
……中间过程一样
「r1」dot1q termination vid 1 -- 调用虚拟子接口给vlan
DHCP存在的安全问题以及防范方法
一、DHCP饿死攻击
CHADDR:客户端的硬件地址(源MAC地址)
攻击原理:攻击者持续大量的向服务器申请IP地址,导致服务器地址池地址耗尽,从而不能正常给客户分配地址。
利用的漏洞:DHCP服务器无法分辨主机。
防御:DHCP
snooping(窥探)防饿死攻击----致性检查(request报文帧头mac地址和chaddr报文字段是否相同,相同才转发)、限制接口允许学习的DHCP
snoping绑定表项的MAC数量。
二、仿冒服务器攻击
攻击原理:攻击者仿冒服务器,向客户端分配错误的网关地址等参数,导致客户无法正常的访问网络。
利用的漏洞:主机无法分辨合法的服务器。
防御:DHCP Snooping防伪冒服务器攻击---配置信任接口和非信任接口(默认都为非信任接口,需要手动修改)
为防止DHCP Server仿冒者攻击,还可为DHCP Snooping配置白名单规则。
把DHCP客户端和服务器加入白名单列表,DHCP
Snooping只上送白名单范围内的DHCP报文,对于不在白名单范围内的报文直接走硬件转发不上送CPU,以防止黑客攻击
三、中间人攻击
中间人攻击:中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信设备之间,并且盗用这两台设备的信息分别与对端设备通信,这台计算机就称为“中间人”。
中间人向客户端发送带有自己MAC和服务器IP的报文,让客户端学到中间人的MAC,达到仿冒DHCP
Server的目的。达到目的后,客户端发到服务器的报文都会经过中间人。同理,中间人盗用客户端的IP与服务器进行通信。从而由中间人完成服务器和客户端的数据交换。在服务器看来,所有的报文都是来自或者发往客户端;在客户端看来,所有的报文也都是来自或者发往服务器端。但实际上这些报文都是经过了中间人的“二手”信息。
防御:交换机添加DHCP snooping表,查看映射,攻击不符合的报文
四、IP/MAC Snoop攻击
Spoofing攻击:欺骗攻击,通过伪造他人的信息,攻击者可以假扮成合法的用户来使用网络服务,但真正的合法用户却不能获得服务。
攻击者向服务器发送带有合法用户IP和MAC的报文,令服务器误以为已经学到这个合法用户的IP和MAC。服务器将合法信息都发往攻击者,而真正的合法用户不能从服务器获得服务
DHCP Snooping表
DHCP Snooping是DHCP安全特性,通过截获DHCP Server与DHCP
Client之间的DHCP报文,建立和维护一张记录Client信息的绑定表,同时对报文进行分析和处理,过滤从非信任端口收到的服务器侧发回的响应DHCP报文,为DHCP提供安全服务。另外,DHCP
Snooping可以与IP Source Guard、动态ARP检测DAI(Dynamic ARP
Inspection)联动,实现对非法IP报文、非法ARP报文的过滤。DHCP Snooping绑定表包含用户MAC地址、IP地址、租用期、VLAN
ID、接口等信息。
DHCP Snooping具有以下价值:
* 设备具有防御网络上DHCP攻击的能力,增强了设备的可靠性,保障通信网络的正常运行。
* 为用户提供更安全的网络环境,更稳定的网络服务。
* UPE设备AC侧和网络侧对DHCP上送报文做精细化过滤。 -- 直接连接用户的设备称为下层PE(Underlayer
PE)或用户侧PE(User-end PE),简称UPE。 UPE主要完成用户接入功能。
SPE:接入UPE并位于网络内部的设备称为上层PE(Superstratum PE)或运营商侧PE(Service Provider-end PE),简称SPE
当配置了DHCP Snooping功能后,它可以将交换机的接口分为信任接口与不信任接口,DHCP Snooping只对信任接口
上送DHCP请求和应答报文。DHCP Snooping可以根据信任接口收到的报文信息生成DHCP Snooping绑定表。DHCP
Snooping绑定表是DHCP Snooping的一个重要概念,它是进行报文检查的基本信息表。Option
82是DHCP报文的一个特殊字段,它可以用来标识DHCP报文的发送路径,有助于建立精确到接口的绑定表项。此外,还可以为DHCP
Snooping配置白名单功能,以精确控制信任的客户端或者服务器发送的报文上送行为。
把网络侧的接口配置为Trusted模式,把用户侧的接口配置为Untrusted模式,凡是从Untrusted接口收到的DHCP Reply报文全部丢弃。
DHCP Snooping允许将某个物理端口设置为信任端口或不信任端口,一般把与合法DHCP服务器连接的接口
设置为信任(Trusted)接口,其它接口都设为不信任(Untrusted)接口。当使能了DHCP Snooping时,所有接口都默认为不信任接口。
DHCP Snooping绑定表
绑定表是接入用户的信息集合,它包括:IP地址、MAC地址、接口及VLAN信息。DHCP Snooping绑定表包括动态绑定表和静态绑定表。
动态绑定表是在使能了DHCP Snooping功能后自动生成,静态绑定表是由手动配置的。
* 动态生成DHCP Snooping绑定表
对于通过DHCP动态获取IP的用户,交换机通过侦听信任接口收到的DHCP Reply报文,获取DHCP Server分配给用户的信息动态生成DHCP
Snooping绑定表。
* 静态配置DHCP Snooping绑定表
对于静态IP用户,可以通过命令行配置静态DHCP Snooping绑定表项,此时需要准备用户的IP地址、MAC地址、用户所属VLAN
ID、用户所属接口信息。
DHCP Snooping绑定表的老化:
* 对于动态绑定表,当绑定表中的IP地址租期到期后,该IP地址的表项将被删除。
* 对于静态用户,只能通过命令行删除。