DHCP
一、技术背景
传统的手工配置网络参数需要每个用户都手动配置IP地址、掩码、网关、DNS等多个参数。
会存在一些问题:人员素质要求高;容易出错;灵活性差;IP地址资源利用率低;工作量大
二、概念
1.动态主机配置协议
DHCP:dynamic host configuration protocol
C/S架构的 client Server—-()
基于UDP的应用层协议 协议号 67(服务端) 68(客户端)
2.如何工作的:
在Server上提供 地址池:提供一个/多个 范围的IP地址—-地址池是管理员定义的
client 向server发起 请求IP地址的报文,当server收到后,向client 提供IP地址
3.工作过程:
1.client 先去寻找网络中 可用的DHCP Server的位置
2.Server 向clinet 回复 响应的信息
3.client 向server 发起请求IP地址的报文
4.Server 向client 提供IP地址、掩码、网关、DNS等相关配置的信息
4.client获取到这些信息,配置给自己的网卡
针对工作过程,存在四种报文
dhcp discover —>寻找网络中的Server
dhcp offer —>server 向 client 的响应、发送配置信息
dhcp request —>client 向 server请求IP地址等相关信息
dhcp ack —>server 向 client 发出回应
tips:
client:PC机、打印机、手机、摄像头等网络终端来充当
Server:服务器主机、具有路由功能的三层交换机、路由器
三、工作过程
阶段一:
1.client 发送 DHCP discover 报文: 客户端发送的 广播报文,用于寻找网络中的DHCP服务器
2.server 发送 DHCP offer :携带server的IP地址,同时还有分配出来的IP地址等信息
3.client 向server 发送 dhcp的request 报文,针对offer报文携带的IP地址等信息,向server发起时候可用的请求
4.DHCP ack 针对请求做出回应,client获取到了IP地址
5.client 获取到IP地址之后,向广播域内广播发送3个无故ARP/免费ARP,确认一下网络中是否已经存在这个IP地址,避免IP地址冲突
阶段二:租期更新
阶段三:DHCP重绑定 如果阶段二没有成功,则会发送阶段三的通信内容
tips:
如果通过DHCP没有获取的IP地址,windows主机会自动分配一个IP地址 169.254.x.x,这个地址是不可用的
四、DHCP的配置(在路由器或三层交换机上配置)
DHCP在接口上进行配置(把地址池建立在了接口上)
1.全局开启dhcp功能
dhcp enable
2.给接口配置IP地址——-在接口上无形创建了一个和接口IP同网段的地址池
3.选择 地址池的模式为接口模式: dhcp select interface
4.指定dns服务器的地址
5.指定要排除的IP地址
6.指定租期
DHCP在全局上进行配置
1.全局开启DHCP服务功能
2.创建DHCP地址池—给地址池起个名字
3.指定地址池的大小
4.指定网关
5.指定DNS服务器
6.指定租期
7.在接口上选择dhcp为全局模式
五、DHCP面临的安全威胁
1.DHCP饿死攻击/地址耗尽
*攻击原理:攻击者仿冒DHCP Server,向客户端分配错误的IP地址及提供错误的网关地址等参数,导致客户端无法正常访问网络。
*漏洞分析:DHCP客户端接收到来自DHCP Server的DHCP消息后,无法区分这些DHCP消息是来自仿冒的DHCP Server,还是来自合法的DHCP Server。
2.仿冒DHCP Server攻击
*攻击原理:攻击者利用ARP机制,让PC-A学习到IP-S与MAC-B的映射关系,又让Server学习到IP-A与MAC-B的映射关系。如此一来,PC-A与Server之间交互的IP报文都会经过攻击者中转。
*漏洞分析:从本质上讲,中间人攻击是一种Spoofing IP/MAC攻击,中间人利用了虚假的IP地址与MAC地址之间的映射关系来同时欺骗DHCP的客户端和服务器。
3.DHCP中间人攻击