DHCP概述

(Dynamic Host Configure Protocol)自动为客户机分配IP地址,位于OSI模型的应用层

应用场景: 公司里的员工每个人都手动输入IP地址很麻烦并且可能会出错,需要公司IT管理员去进行操作,在这个场景下,需要使用DHCP服务器去给客户端分发管理IP地址

DHCP的两个作用

  1. 用于内部网或网络服务供应商自动分配IP地址给用户
  2. 用于内部网管理员对所有电脑作中央管理

DHCP优点:

  • 减少工作量,避免IP冲突,提高地址利用率
  • 可用保留IP,分配给特殊客户端
  • 特殊应用,如无IP场景,安装操作系统

DHCP缺点:

  • DHCP服务器单点故障
  • DHCP如果配置错误,全网不可用
  • 多子网情况,需要配置路由器或交换机

DHCP相关概念

  • 地址池/作用域:(IP、子网掩码、网关、DNS、租期)
  • DHCP协议的端口号 67/68 —netstat -an 来查看

DHCP原理

也称为租约过程,分为4个步骤DORA

  1. 客户机发送DHCP Discovery 广播包

    客户机开机启动时,发送一个广播请求IP地址(包含客户机的MAC地址,每个电脑的网卡都有一个固化在里面的MAC地址,不能改变)

  2. 服务器响应DHCP Offer 广播包

    任何收到请求的DHCP服务器都会检查其内部数据库并进行响应,其中提供一个可用的 IP 地址 (但没有子网掩码,网关等参数)

  3. 客户机发送DHCP Request 广播包

    客户机可能收到一个或者多个DHCP Offer(正常情况下都收到一个),从中随机选择IP(也可以认为是确认使用那个IP),并发送Request给这个服务器,表示接收该DHCP Offer

  4. 服务器发动DHCP ACK 广播包

    ACK: acknowledge 确认

    服务器收到了request后,就确定了租约,从数据库中标记该IP地址已经被使用,并给客户端发送DHCP ACK数据包,提供网卡详细参数,IP,子网掩码,DNS,租期等。

如果客户端发送DISCOVER后,没有服务器响应,就会隔一段时间再次发送 DISCOVER,如果任然没有收到OFFER,客户端会使用备用配置(私有地址 169.xxx.xxx.xxx) 此后,客户端每隔5分钟,会继续发送DISCOVER

DHCP续约

租期是工程师自己设置的,当租期过50%后,客户机会再次发送DHCP Request 包进行续约,如果服务器响应DHCP ACK,客户端就可用进行租约更新,如果服务器没有响应,则将继续使用当前IP,并在87.5%再次发送DHCP Request 包,进行续约,如果任无响应,释放IP地址,并重新发送DHCP Discovery广播包来获取IP地址(如果有,那么原来的作废,用新的),当没有任何服务器响应时,自动给自己分配一个169.254.x.x/16,属于全球统一无效地址,用于临时内网通信。

当客户机用了一会关机不用了,那么默认到了租期后IP才会返回,如果一会又开始用了,只要租期没到,那么和以前是同一个IP

我们也可用手动进行租约的更新

1
2
ipconfig /release    释放IP(取消租约,或者改为手动配置IP,也可以释放租约)
ipconfig /renew 重新获取IP(有IP时发送Request,没有IP时发送Discovery

部署DHCP服务器

  1. IP地址固定(服务器必须固定IP地址,主要IP必须和将来分配给员工的IP在同一网段)

  2. 安装DHCP服务器插件/软件

    这个插件微软以及内置好了,我们需要的就是去系统镜像的光盘里,选择安装可选的windows组件,然后找到网络服务,双击打开,找到里面的DHCP服务然后打对勾,安装。

    cmd里 netstat -an 可以看到 67,68端口,这里其实工作的时候是为了兼容老机器,67为xp等一些老版本,68为win7等一些新机器来提供。

  3. 新建作用域以及作用域选项

    在开始菜单,管理工具里找到DHCP,然后我们打开,在我们服务器上右键选择新建作用域,配置好后就可以了。配置时有一个wins服务器这个不用管,是比较老的了

  4. 激活

  5. 客户机验证,图形界面禁用和启用网卡来刷新。或者使用下面的命令

    1
    2
    ipconfig /release    释放IP(取消租约,或者改为手动配置IP,也可以释放租约)
    ipconfig /renew 重新获取IP(有IP时发送Request,没有IP时发送Discovery

    使用VMware时,如果获取的不是自己设置的IP 那是因为虚拟机 MVnet的交换机里内置了一个DHCP,所以我们需要把它关掉,在工具栏编辑里找到虚拟网络编辑器,在右下角选择更改设置,选中我们连接的交换机,勾掉“使用本地DHCP服务将IP分配给虚拟机”

地址保留

在服务器DHCP里我们可以对指定的MAC地址固定动态分配的IP,右键新建保留,然后就可用把IP和MAC地址进行绑定保留

DHCP服务器数据库维护

windows server DHCP的数据库默认在 c:\windows\system32\dhcp 中,系统默认每60分钟备份存放于 backup文件夹中,我们以可以手动备份

DHCP攻击防御

1.攻击DHCP服务器:频繁发送伪装的DHCP请求,知道将DHCP地址池资源耗尽
防御:在交换机(管理型)的端口上做动态MAC地址绑定

2.伪装DHCP服务器攻击:通过将自己伪装成DHCP服务器,为客户机提供非法IP
防御:在交换机(管理型),除合法的DHCP服务器所在接口外,全部设置为精致发送DHCP Offer 广播包