一、DHCP概述
1.DHCP是什么
- 动态主机配置协议,是一个局域网的协议(Dynamic Host Configuration Protocol)
- 当我们的主机选择自动获取IP地址时,主机会用DHCP协议与DHCP服务器通信,得到提供的IP地址等信息
2.DHCP作用
- 自动分配IP地址
3.DHCP的地址池和端口号
- 地址池/作用域:DHCP服务器上一个存放(IP、子网掩码、网关、DNS、租期)的池子,当有主机请求DHCP服务时,就会将地址池中的数据分配给主机
- DHCP端口号:UDP 67/68
4.DHCP相比手动配IP的优势
- 减少工作量、避免IP冲突、提高地址利用率(通过设置租期反复利用地址)
二、DHCP原理
1.DHCP租约过程
-
客户机发送DHCP Discovery广播包
客户机广播请求IP地址(广播包中包含客户机的MAC地址—自己身份的唯一标识),广播包只能在同一个局域网内传播,即同一个网段,所以DHCP固定的IP要和地址池中提供的IP为同一网段。后面会学习
-
服务器响应DHCP Offer广播包
服务器响应提供的IP地址(但无子网掩码、网关等参数)—因为可能不止一台DHCP响应,不可能一收到请求就发送地址池中的全部网络数据
-
客户机发送DHCP Request广播包
客户机选择IP(确认使用),同时通过广播发送是为了告诉其他的DHCP服务器,我已经选择好了,不用你们的IP,先收到哪个DHCP Offer广播包就使用哪个IP
-
服务器发送DHCP ACK广播包
服务器确定了租约,并提供网卡详细参数IP、掩码、网关、DNS、租期等(看到ACK就表示确认的含义)。DHCP服务器上会形成租约列表,记录你的MAC对应哪个IP,租期是多久等,如果其他主机再请求DHCP服务,就不会再使用这个IP
- 注意特殊的节点:
- 当本地连接被①禁用再重启、②关机再重启、③拔网线、或者④
ipconfig /release
再renew
都会重新发送DHCP Discovery广播包。但是注意前三点都不会释放IP地址,再发送Discovery广播包不会重新获取IP,服务器只会发送ACK确定租约—租期从这一刻重新开始倒计时了;而第四点release会释放IP地址,那么服务器会将此IP放到地址池中,下一次再renew发送请求,服务器会在地址池中随机取IP和租期等发给主机。 - 当主机已经获取了IP地址,但是
ipconfig /renew
时,会发送Request广播包,重新获取租约,IP不变 - 如果MAC地址发来Discovery广播包,但是租约表中有给此MAC分配的IP地址且租期没到,则直接发送ACK广播包给对应MAC地址的主机,并确定租约。
- 当本地连接被①禁用再重启、②关机再重启、③拔网线、或者④
2.DHCP续约
-
当50%过后,客户机会再次发送 DHCP Request包—进行续约,若服务器无响应,则继续使用
-
在87.5%再次发送 DHCP Request包—进行续约,若仍然无响应,会释放IP地址,并重新发送DHCP Discovery广播包来获取IP地址
-
当无任何服务器响应时,网卡自动给自己分配一个169.254.x.x/16
169.254.x.x/16(子网掩码前16位为1) 属于全球统一无效地址,用于临时内网通信!
注意:这个续约给的租期不是累加的,是从续约这一刻开始的重新租期,比如我第一次的租约为24小时,12小时后续约,服务器又分配给我24小时租约,那么我现在的租约就是24小时,不会12+24累加
三、DHCP攻击与防御
分为两种攻击:伪装成DHCP服务器攻击;攻击DHCP服务器
-
攻击DHCP服务器:
坏蛋主机通过伪造很多MAC地址,频繁的发送伪装DHCP请求,直到将DHCP地址池资源耗尽
-
防御方法:使用管理型交换机;在交换机端口上做动态MAC地址绑定(后面学习)
因为管理型交换机的端口会识别DHCP服务请求,并且有动态MAC地址绑定的功能—比如现在坏蛋主机连接到的交换机上,当主机第一次发送任何包时,交换机就会记录这个端口连接的主机的MAC地址,如果现在坏蛋主机发送伪装DHCP请求包,包中就肯定包含伪造的MAC地址,那么交换机就会动态绑定伪造的MAC地址到接入的这个端口,那么如果再次伪造请求或者使用真正的MAC地址请求DHCP时,消息就被交换机阻拦了。交换机会按照设定好的解决措施处理。
-
伪装成DHCP服务器攻击:
hack通过将自己部署为DHCP服务器,为客户机提供非法ip地址,使用户不能上网
-
防御方法:在企业级管理型交换机的端口上设置阀门—禁止除合法的DHCP服务器外的任何人发送DHCP Offer广播包
四、部署DHCP服务器
1.生活中的DHCP服务器
- 家里用的无线路由器,厂家在生产时就把无线路由器部署为DHCP了,手机连上路由器就可以获取地址上网。
- 大型公司中都会专门买设备部署成DHCP服务器,而且不止一台,有备用的
2.服务器软件
- 在服务器系统win2003,win2008中,如果想要此服务器提供什么服务,需要对应的服务器软件来开启服务对应的端口,并且通过服务器软件将服务器部署成可以提供xxx服务的xxx服务器。所以一般部署都是需要使用系统自带已经安装好的服务器软件或者去下载对应的服务器软件
- 对于win2008以上版本,系统会已经安装好一些服务;其他的服务,系统已经将所有需要的服务器软件的安装包放到了C盘,我们通过管理工具—服务器管理器—添加角色—选择想要安装的服务即可
- 对于win2003老版本,所需要的服务器软件都放入了win2003的光盘中(使用对应系统的ISO镜像文件),插入光盘在光驱中安装组件即可。
3.windows系统部署DHCP服务器
-
IP地址固定(服务器必须固定IP地址)
-
安装DHCP服务插件
-
系统已经安装好的服务器软件在
管理工具
中 -
win2003没有的服务器软件需要插入03光盘在光盘中下载需要的
windows组件
-
-
新建作用域及作用域选项
-
给作用域起名:一般公司内部会划分很多网段,每一个网段都要创建对应的作用域,分配属于此网段范围内的IP地址,所以起名最好见作用域名知部门名
-
一般在新建作用域前要合理规划好IP地址,前后要留出空闲的IP供同局域网中其他服务器使用
-
添加排除地址:表示在作用域地址范围内还有哪些地址不能使用
-
设置租期:根据场所的人员的流动情况来合理的设置租期
-
设置为不同网段的主机分配的网关IP、DNS服务器IP(运营商提供的)都需要问清楚,不随便填
-
-
激活
- 如果不激活,即使下载了HDCP服务器软件,该主机的67/68端口也没有开启,就无法提供服务,激活即开启了UDP 67/68端口号
-
客户机验证:
- 命令:
ipconfig /release #释放IP(取消租约,或者改为手动配置IP,也可以释放租约) ipconfig /renew #重新获取IP(有IP时,发送request续约,无IP时发送Discovery重新获取IP
-
如果主机选择自动获取IP地址,即发送DHCP Discovery广播包,如果局域网内长时间无服务器响应,那么主机就会配置一个临时的IP地址
-
此时就需要使用命令释放IP重新获取IP、拔网线、禁用再重连本地连接等方法,去请求已经配置好的DHCP服务器
-
成功
-
如果租约建立成功,DHCP服务器上会记录
-
4.地址保留
-
对指定的MAC地址,固定动态分配IP地址
-
需要知道保留对象的MAC地址,这个MAC地址主机只要发送DHCP请求IP,那么就会给这台主机固定的IP地址和相关信息,不会随机从地址池中选取,但是DNS服务器IP和网关IP不会变,该作用域中当时设置的什么就分配什么给主机
5.DHCP备份
-
备份服务器的所有作用域,当服务器宕机后,可以使用备份文件在其他DHCP服务器上进行还原所有配置
-
在服务器名称上右键备份,会备份这台服务器上的所有作用域,因为一个公司会划分很多网段,每一个网段都要设置对应的作用域,不能说我用10.1.1.0这个网段的作用域给20.1.1.0这个网段的主机分配。
小贴士:DHCP服务器软件上的服务器名称点击右键删除是删除软件显示界面上的服务器名称,而部署好的DHCP服务器不会删除
即上图所示
。但是这个服务器名下的作用域是可以删除的。如果备份了,对着服务器名称点击还原,既可以恢复。如果因为误删了服务器名称,可以通过右键DHCP–浏览–高级–立即查找,选中DHCP服务器名称重新显示![]()
6.选项优先级
-
作用域选项>服务器选项
服务器选项中设置的信息为所有作用域共有的,而作用域选项中设置的信息为本作用域共有的。
如果服务器选项和作用域选项中设置了相同的信息,则以作用域中的为准
-
当服务器上有多个作用域时,可以在服务器选项上设置DNS服务器;但不能设置网关IP,因为不同网段的网关不同。
五、易错点和小问题
-
DHCP服务器只能提供和DHCP服务器的IP所在网段相同的IP地址,且一台DHCP服务器上创建的作用域必须为不同网段,即一个网段只能创建一个作用域用来分配属于此网段的IP地址
比如现在给DHCP服务器IP设置为10.1.1.1(255.255.0.0),现在给DHCP服务器上创建两个作用域:作用域1分配IP范围为10.1.1.20-10.1.1.250;作用域2IP范围为10.2.1.21-10.2.1.254;(不能是和作用域1一个网段的比如10.1.1.2-10.1.1.19这种)
那么现在属于同一局域网内的一台主机自动获取IP地址,最后分配到的地址只能是DHCP作用域1里的地址,DHCP不能提供10.1.0.0网段外的地址池中的地址
-
如果实验中虚拟主机始终分配不到由自己搭建的DHCP服务器提供的IP地址,可能的原因是虚拟机主机连接的交换机中默认设置了DHCP服务器分配IP,多台服务器,主机先收到哪台的Offer广播包就用哪台的IP。
解决办法:
需要打开虚拟机的编辑选项–虚拟网络编辑器–查看虚拟主机连接的交换机是否自动分配了DHCP,分配的话就将
使用本地DHCP服务将IP地址分配给虚拟机
选项不要钩。然后再回到虚拟主机使用命令释放IP,再重新获取一遍即可