数据来源
1、DHCP作用
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。
2、DHCP相关的概念
地址池/作用域:(IP、子网掩码、网关、DNS、租期),DHCP协议端口是UDP 67/68
3、DHCP优点
减少工作量、避免IP冲突、提高地址利用率
4、DHCP原理
也成为DHCP租约过程,分为4个步骤:
1)客户机发送DHCP Discovery(发现)广播包(目的:寻求服务器)
客户机广播请求IP地址(包含客户机的MAC地址)
详细解析:发送DHCP Discovery(发现)广播包,询问谁是DHCP服务器(服务器可能有多个),我需要一个IP地址并把本机的MAC地址放到Discovery(发现)包里面发送出去(MAC地址是计算机网卡的唯一标识,全球唯一)。
2)服务器响应DHCP offer(提供)广播包(目的:提供IP地址)
服务器应提供的IP地址(但无子网掩码、网关等参数)
详细解析:服务器发现有人在请求IP地址(可能是多个服务器发现了),然后在地址池里面找个没有人用的IP拿出来放到offer(提供)包里面响应回去。
3)客户机发送DHCP Request(请求)广播包(目的:选择IP地址,并请求IP地址相关参数)
客户机选择IP(可以认为确认使用哪个IP)
详细解析:可能多个服务器都发现客户机的请求,那就有多个IP响应回来,所以要做出选择(不过这里是自动选择,哪个IP地址先到就用哪个)
4)服务器发送DHCP ACK(确认)广播包(目的:确认IP地址等参数包括租约)
服务器确定了租约,并提供网卡详细参数IP、掩码、网关、DNS、租约等。
详细解析:服务器确定了租约就是确定IP地址的使用时间比如:10h 只能使用10个小时服务器具会收回ip地址,但是一台计算机先要上网必须具备IP地址、子网掩码、DNS(域名解析服务器)和网关,所以服务器会把这些都放到ACK(确认)包内一起响应给客户端,然后服务器就会把客户机的MAC和IP地址之类的数据放到租赁列表内保存起来,以此判断对应IP地址是否被使用。
5)客户机DHCP续约
当租用IP时间50%过后,客户机会再次发送DHCP Request(请求)广播包,进行续约,如服务器无响应,则继续使用并在87.5%再次发送DHCP Request(请求)广播包,进行续约,如仍然无响应,释放IP地址,及重新发送DHCP Discovery(发现)广播包来获取IP地址。
当无任何服务器响应时,客户机的网卡会自动给自己分配一个IP地址169.254.X.X/16,属于全球统一的无效地址,用于临时内网通信!
续约规则:比如服务器设置的租约时间是1小时,客户机是在12:00,获取了IP地址,那么过期时间就是13:00,这期间12:30客户端就会发起续约,成功后的获取租约时间是12:30,过期时间是13:30,也就是说续约时长是服务器设置的租约时间,不会叠加,而且客户机获取到的IP只要是在租约时间内,自己又不放弃IP输入ipconfig /release # 释放IP 那无论是客户机停用网络还是关机重启,最后客户机的IP还是之前的IP。
额外知识:IP/16中的16就是子网掩码的二进制数 从前往后16个1 即:11111111 11111111 00000000 00000000 即:225.255.0.0
5、部署DHCP服务器
路由器和PC主机都可以用来部署,少于1000台PC直接路由器配置DHCP就足够了
0)服务器的防火墙要关闭
1)IP地址固定(服务器必须固定IP地址)
2)安装DHCP服务插件
3)新建作用域及作用域选项
4)激活
5)客户机验证:
ipconfig /release # 释放IP(取消租约,或者改为手动配置IP也可以释放租约)
ipconfig /renew # 重新获取IP(有IP时,发送request续约,没有IP时发送Discovery重新获取IP)
案例:使用winXP当作客户机,把win2003部署为 DHCP服务器
win2003虚拟机为例
步骤:
1.IP地址固定(服务器必须固定IP地址)
![](https://img-blog.csdnimg.cn/4e272b2c55b2463896fc36cceff4d4b1.png)
在命令提示符输入:netstat -an # 查看开放可用的端口
仔细看这里面没有67/68端口,之前在第2点写了DHPC服务器使用的是UDP 67/68,两个端口 我们安装了DHPC组件就会自动开放,我们就可以通过 67/68 端口,向外提供服务,但也意味 着别人也能通过这两个端口攻击服务器
![](https://img-blog.csdnimg.cn/36d278d5e5d044b9b25c4697fe188d73.png)
2. 让两台虚拟机出于同一局域网下winXP和win2003都要设置,虚拟机 -- 虚拟机设置 -- 网络适配器 -- 自定义特定虚拟网络设置
这里选V几都可以,但是要保证两台虚拟机是选同一个虚拟网络
![](https://img-blog.csdnimg.cn/73260e3d102d4cb7b58680aafafb6529.png)
3. 把winXP的IP地址和DNS改为自动获取,网上邻居鼠标右键 -- 属性 -- 本地连接鼠标右键 --属性 -- 双击Internet (不同的操作系统步骤可能不一样,不过都大同小异)
![](https://img-blog.csdnimg.cn/97ece269c12a46348cb4c183f507c804.png)
![](https://img-blog.csdnimg.cn/a597426bcb194718881a5d13361e8d44.png)
这个169.254.24.220 ,就是客户机自动给自己分配的
![](https://img-blog.csdnimg.cn/62d26dac6e3642448fd3f5ef805f5e9a.png)
4. 安装DHCP服务组件,虚拟机 -- 设置 -- 设备状态 -- 选择已连接
![](https://img-blog.csdnimg.cn/2cb49f54036649e1a6615b81289badd1.png)
就会自动弹出这个窗口![](https://img-blog.csdnimg.cn/d537443e78114ee9b54a851d065a1b11.png)
如果没有弹出上面这个窗口,双击我的电脑 -- 双击手动打开驱动器
![](https://img-blog.csdnimg.cn/da4530e3668149d693794249a4d4ece7.png)
选择安装Windows组件
![](https://img-blog.csdnimg.cn/2b7cba5deb094c00839af6f2bc25bde6.png)
双击打开网络服务
![](https://img-blog.csdnimg.cn/3b4f42b34bde4841a8980417cb1329e4.png)
选择DHCP -- 确定 -- 下一步
![](https://img-blog.csdnimg.cn/631bcf9e4d4b4af6b7d89a63670e69c6.png)
安装中
![](https://img-blog.csdnimg.cn/fad1f4cb129840ec9c74033df02a8e1e.png)
安装完成 ,再次输入:netstat -an # 查看开放可用的端口
仔细看会发现开放的端口中多出了 UDP 67/68 端口,意味着这两端口开放了,这两个是对外服务的端口 ,上面写的服务器的offer 、ACK请求都是从这两个端口出去的,客户机的Discovery、Request 请求也是从这两个端口进来的,所以以后服务器出现问题我们应第一时间检查这两个端口
![](https://img-blog.csdnimg.cn/053bc741702446318450561a7e6359c7.png)
5. 组件安装完之后,就可以打开DHCP服务器进行配置,点击开始 -- 管理工具 --DHCP
![](https://img-blog.csdnimg.cn/63febcdf3ecb412eaf67136c26647f0c.png)
![](https://img-blog.csdnimg.cn/62346995795f4d738659709a3db9db34.png)
如果把服务器关掉,对应的端口UDP 67/68 也会关闭,对准服务器右键 -- 所有任务 -- 停止
如果你的停止按钮是灰色的被禁用,那可能是你以前把 Server 服务给关了,开启就好。
![](https://img-blog.csdnimg.cn/734b92b379414fa8ab6d55f471719ecf.png)
![](https://img-blog.csdnimg.cn/8f2e99591f494df48daeda72fc3c084c.png)
关闭服务器开放端口就找不到 67/68 端口了
![](https://img-blog.csdnimg.cn/8098824b3d9041e39df13bbef1d196d8.png)
6. 新建作用域
![](https://img-blog.csdnimg.cn/2e03836ff8674a0e8e2ae182a66db6b0.png)
![](https://img-blog.csdnimg.cn/40596d7fa4d745d2b5b70fe092f78ae4.png)
填完下一步
![](https://img-blog.csdnimg.cn/e9c0e3403d50472d8210d5d34d56f897.png)
设置IP范围和子网掩码
![](https://img-blog.csdnimg.cn/a034628adb2843e2aa53e738769c4f43.png)
设置要排除的地址或范围(就是不想分配给别人的IP地址,这个看个人需求也可以不作排 除)
![](https://img-blog.csdnimg.cn/af5d636f1be54337a4078733e4559fb2.png)
设置租约期限(就是一个IP地址分配给用户的默认使用时间)
![](https://img-blog.csdnimg.cn/42d6ad825f724d3392770cb8910518bf.png)
是否现在要配置网关那些东西,我选了是,下一步
![](https://img-blog.csdnimg.cn/f730d8a87e064d0ca88488993363a188.png)
设置路由器的默认网关,这个网关要和你公司的网关一致,我这里是用IP地址最后一位作为网关
![](https://img-blog.csdnimg.cn/8ead6353ad08407aaec0582b5f76a1f1.png)
填写DNS服务器的IP地址,这个IP地址一般是写你公司所在区域的IP地址,公司买网时有文档记录,我这里填了WLAN(wifi)的DNS的IP,在命令行输入:ipconfig /all
找到这个链接打开,路由状态就能找到WLAN的DNS的IP
![](https://img-blog.csdnimg.cn/81ec8c298b6a43efbd02dc7fee5f320c.png)
![](https://img-blog.csdnimg.cn/d979e14767ae4c3b82b513162196e3a2.png)
直接下一步
![](https://img-blog.csdnimg.cn/004d70fc7f6e4070952a7aa0b547ea9c.png)
我这是虚拟机我直接激活,现实中建议选否,检查完作用域没问题了,在自行激活,配置是保存的。
![](https://img-blog.csdnimg.cn/3d38636bbde841eebcd828c107bcdcff.png)
作用域配置成功
![](https://img-blog.csdnimg.cn/412d711704344446a40d32f075a43419.png)
7. 回到winXP虚拟机就会发现已经连接成功,如果没有可以先禁用网络再启用
然后禁用网络再启用只要在租约时间内客户机拿到的IP地址是不变的,这就验证了上面的说法
在DHPC服务器内可以看到谁租用了IP地址
注意:如果你XP系统连接到的IP地址不是你配置的IP,那可能是连接到虚拟机的DHPC服务器了
解决方法如下:编译 -- 虚拟机编辑器 --更改设置
![](https://img-blog.csdnimg.cn/d8671b8ab7af48d6a3a16d65455ccdba.png)
![](https://img-blog.csdnimg.cn/3acf4497e0b04b11a0e78fa4f476cfe7.png)
![](https://img-blog.csdnimg.cn/6bcdf6b02add4290a7ba92a9c4ab7f8a.png)
windows7/2008 操作系统部署DHCP服务器
安装DHCO
1. 开始 -- 管理工具 -- 服务器管理![](https://img-blog.csdnimg.cn/d616d6d480f84d68acbac1f17996c12b.png)
2. 角色 -- 添加角色 ![](https://img-blog.csdnimg.cn/5c64c4359e08459abefde62b6ed2bd53.png)
3. 下一步
![](https://img-blog.csdnimg.cn/29d6e893d0964ee7af2610b36ae262b6.png)
4. 选择DHCP 服务器,本机要设置为静态ip,和上面的设置方法一样,之后的步骤,自己看着来就行
![](https://img-blog.csdnimg.cn/f6d9848dda9745e0b00b536890de035e.png)
6、IP地址保留
这对指定的MAC地址,固定动态分配IP地址
场景:比如你老板跟你提个要求说张三啊,你给我电脑配个专门的IP地址要好听一点的来个66吧。
实现:不能配静态地址,要不然老板那台电脑离开公司,他自己又不会配IP的话就上不了网了,这时我们要动态配置,记录老板电脑的MAC地址以后只要是该MAC地址获取IP时DHCP服务器就把对应的IP地址分配给他。
步骤:
1. 首先我们要知道老板电脑的MAC地址,在命令行输入:ipconfig /all
![](https://img-blog.csdnimg.cn/db6d56275d3d45b88b391e5d4a6cb720.png)
2. 然后打开DHCP服务器(win2003内),选择保留 -- 新建保留
![](https://img-blog.csdnimg.cn/27c5e786420f44f4889ea506b81f065e.png)
填完选择添加
![](https://img-blog.csdnimg.cn/4a405607c8c54b18852e845ca7108ae4.png)
![](https://img-blog.csdnimg.cn/b7c9ee80528249be87d3f1502fedbb16.png)
验证:
来到winXP(老板的电脑)
先释放IP:ipconfig /release
再重新获取: ipconfig /renew
![](https://img-blog.csdnimg.cn/7e719836be8c44e7a85d12f9b36a85ff.png)
![](https://img-blog.csdnimg.cn/be923a4f7f0a4bd38a458a6d9858264a.png)
7、选项优先级
作用域选项 > 服务器选项
当服务器上有多个作用域时,可以在服务器选项上设置DNS服务器,作用域会从服务器上继承过来。
比如:一个公司有多部门IT、财务、UI之类的,一般是需要多个作用域,每个部门都有属于自己的作用域,IT部用的IP地址是 10.1.1.x , 财务是 20.1.1.x 这种情况下我们创建作用域时就没有必要每一次创建都配置DHCP选项(DNS这些),因为这些作用域都是在同一个地方使用,像DNS这些肯定是相同的,所以我们直接跳过,最后再给服务器配置需要的选项,其他作用域会继承服务器的选项,如果作用域自己也配置了该选项哪就优先使用作用域自己配置的选项
图示:
创建作用域时这里选否
![](https://img-blog.csdnimg.cn/57a6ab73b3ef466093d2e5473fa22335.png)
我这里就创建了IT部和财务部用作演示,现在的IT和财务的作用域选项都是空的
![](https://img-blog.csdnimg.cn/80a07ae652e24390aa4096af374f464b.png)
现在给服务器配置 DNS 服务器
![](https://img-blog.csdnimg.cn/8666ba126bde4fb0b2464f9446cf36b2.png)
![](https://img-blog.csdnimg.cn/bbcb5d17892143d19fe055d7e8e091c5.png)
![](https://img-blog.csdnimg.cn/59127edf08584e8994c2bab9b644ce80.png)
给IT和财务这两个作用域的作用域选项都刷新一下
![](https://img-blog.csdnimg.cn/3be455fd8a9c4967aaf1c355c32825cf.png)
![](https://img-blog.csdnimg.cn/e959ca965651481f93aae60a467d4853.png)
在这里单独给IT作用域配置DNS 服务器的话,会覆盖从服务器继承过来的选项
![](https://img-blog.csdnimg.cn/129eb06014b84a8797950bafcb00c04e.png)
![](https://img-blog.csdnimg.cn/302149d3827845f9ad45c3ef22ab3b9e.png)
8、DHCP备份
备份
![](https://img-blog.csdnimg.cn/d92b4a30c90749cc88f72cf5f90d6c4a.png)
还原
![](https://img-blog.csdnimg.cn/453fc6a11e4045a3bd507c9582c901f7.png)
这里有一点需要注意,如果你不小心把服务器给删除了,不用慌,那只是不显示而已,后台还是在运行,把作用域删除了那才是真正的删除了,不过有提前备份作用域好,还原就行了,下面演示删除服务器,恢复教程:
![](https://img-blog.csdnimg.cn/b70c0f0f187c44c8b3a5466c9b408cd8.png)
然后可以测试一下服务器是不是还在后台运行,命令行输入:netstat -an # 查看开放可用的端口
开始恢复服务器列表
![](https://img-blog.csdnimg.cn/ab68ae995b464d97a17d283f48f50c59.png)
选择自己的服务器 -- 确定
![](https://img-blog.csdnimg.cn/44e2e08a13304fac816ac9ecfafacdff.png)
最后确定添加
![](https://img-blog.csdnimg.cn/b7be592d1cda4cc2b508b847b1bfcd79.png)
恢复成功
![](https://img-blog.csdnimg.cn/d91d14e17a94461b877fffb3b13b9c24.png)
9、DHCP攻击与防御
1)攻击DHCP服务器:频繁的发送DHCP请求,直到将DHCP地址池耗尽
防御:在交换机(管理型)的端口上做动态MAC地址绑定
2)伪装DHCP服务器攻击:黑客通过将自己部署为DHCP服务器,为客户机提供非法ip地址
防御:在交换机上,除合法的DHCP服务器所在接口外,全部设置为禁止发送DHCP offer包
10、常见小问题解决
- 服务器的IP地址必须是静态的
- 删除备份的时候,不要删除服务器,删除作用域
- 把虚拟机自带的DHCP服务关掉