网络基础—07 DHCP 服务器的配置和应用
7.1实验目的
- 了解 DHCP 的有关概念和常见的 DHCP 服务器
- 掌握 Windows 2003 的 DHCP 服务器的安装与配置
- 掌握客户端的设置和验证方法
7.2实验相关知识
7.2.1DHCP 的概念
DHCP 是 Dynamic Host Configuration Protocol(动态主机配置协议) 缩写,前身是BOOTP。BOOTP 原本是用于无盘工作站的网络:网络中的工作站使用 BOOT ROM 而不是磁盘启动并连接上网络,BOOTP 自动地为那些工作站设置 TCP/IP 配置。但 BOOTP 有一个缺点:在设置前必须事先获得客户端的网卡的 MAC 地址,而且与 IP 的对应是静态的。换而言之,BOOTP 非常缺乏“动态性”。若在有限的 IP 资源环境中,BOOTP 的一一对应会造成非常可观的浪费。
DHCP 可以说是 BOOTP 的增强版本,它分为两个部份:一个是服务器端,另一个是客户端。所有的 IP 网络配置数据都由 DHCP 服务器集中管理,并负责处理客户端的DHCP 要求;客户端使用从服务器分配下来的 TCP/IP 配置数据。比起 BOOTP,DHCP 通过“租约”的概念,有效且动态的分配客户端的 TCP/IP 配置,而且作为兼容考虑,DHCP 也完全照顾了 BOOTP 客户端的需求。
7.2.2DHCP 的分配方式
必须至少有一台 DHCP 服务器工作在网络中,它会监听网络的 DHCP 请求,并与客户端协商 TCP/IP 的配置。DHCP 服务器提供两种 IP 分配方式:
- 自动分配(Automatic Allocation):一旦 DHCP 客户端第一次成功的从 DHCP 服务器端租用到 IP 地址之后,就永远使用这个地址。
- 动态分配(Dynamic Allocation):当客户端第一次从 DHCP 服务器端租用到 IP 地址之后,并非永久的使用该地址,只要租约到期,客户端就得释放(Release)这个 IP 地址, 以给其他工作站使用。当然,该客户端可以比其他客户端更优先地更新(Renew)租约,或是租用其他的 IP 地址。
动态分配显然比自动分配更加灵活,尤其是当实际 IP 地址不足的时候。例如:一家 ISP 只能提供 200 个 IP 地址用来给拨号连接客户,但并不意味着他的客户最多只能有 200 个。因为他们各自的行为习惯的不同,所以很少会出现全部客户在同一时间上网的情况。这样, ISP 就可以将这 200 个地址轮流的租用给拨号连接上来的客户使用了。这也是为什么用户每次拨号连接后分配到的 IP 地址基本上不同的原因了(除非用户申请的是一个固定 IP,通常的 ISP 都可以满足这样的要求,但需要另外收费)。
DHCP 除了能动态的设置 IP 地址之外,还可以将一些 IP 地址保留下来给一些特殊用途的机器使用,也可以按照 MAC 地址来固定地分配 IP 地址。同时,DHCP 还可以指定客户端的路由器(默认网关)、子网掩码、DNS 服务器等配置。在客户端方面,除了将 DHCP 选项打勾之外,几乎无需做任何的设置。
7.2.3DHCP 的工作过程
1、寻找服务器:当 DHCP 客户端第一次登录网络的时候,也就是客户发现本机上没有任何 TCIP/IP 配置时,它会向网络发出一个 DHCP Discover 数据包。因为客户端还不知道自己属于哪一个网络, 所以数据包的来源地址会为 0.0.0 , 而目的地址则为255.255.255.255,然后再附上 DHCP Discover 的信息,向网络进行广播。
在 Windows 的默认设置下,DHCP Discover 的等待时间预设为 1 秒,也就是当客户端将第一个 DHCP Discover 数据包送出去之后,在 1 秒之内没有得到回应的话,就会进行第二次 DHCP Discover 广播。若一直得不到回应的情况下,客户端一共会有四次 DHCP Discover 广播(包括第一次在内),除了第一次会等待 1 秒之外,其余三次的等待时间分别是 9、13、16 秒。如果都没有得到 DHCP 服务器的回应,客户端则会显示错误信息,宣告DHCP Discover 的失败。之后,基于使用者的选择,系统会继续在 5 分钟之后再重复一次DHCP Discover 的过程。
2、提供 IP 租用地址:当 DHCP 服务器监听到客户端发出的 DHCP Discover 广播后,它会从那些还没有租出的地址范围内,选择最前面的空置 IP 地址,连同其他 TCP/IP 配置,回应给客户端一个 DHCP Offer 数据包。
由于客户端在开始的时候还没有 IP 地址,所以在其 DHCP Discover 数据包内会带有其 MAC 地址信息,并且有一个 XID 编号来辨别该数据包,DHCP 服务器回应的 DHCP Offer 数据包则会根据这些资料传递给要求租约的客户。根据服务器端的设置,DHCP Offer 数据包会包含一个租约期限的信息。
3、接受 IP 租约:如果客户端收到网络上多台 DHCP 服务器的回应,只会挑选其中一个 DHCP Offer 而已(通常是最先抵达的那个),并且会向网络发送一个 DHCP Request广播数据包,告诉所有 DHCP 服务器它将接受哪一台服务器提供的 IP 地址。
同时,客户端还会向网络发送一个 ARP 数据包,查询网络上面有没有其他机器使用该IP 地址。如果发现该 IP 已经被占用,客户端则会送出一个 DHCP Decline 数据包给 DHCP 服务器,拒绝接受其 DHCP Offer,并重新发送 DHCP Discover 信息。
4、确认 IP 租约:当 DHCP 服务器接收到客户端的 DHCP request 后,会向客户端发出一个 DHCP ACK 响应,以确认 IP 租约的正式生效,也就结束了一个完整的 DHCP 工作过程。
图 7.1 DHCP 的工作过程
7.2.4常见的 DHCP 服务器
大部分的网络操作系统都内置了 DHCP 服务器,如 Microsoft Windows 服务器版、
Unix、Linux 服务器版等。
7.3实验环境和拓扑结构
- 一台安装有 Windows 7 和 VMware 的物理主机,在实验过程中作为 DHCP 客户端。
- VMware 上创建的 Windows 2003 虚拟机,在实验过程中作为 DHCP 服务器。
图 7.2 实验拓扑结构
7.4实验步骤
7.4.1准备工作
- 参照实验指导《对等网和共享资源的设置与访问》,设置虚拟机 Windows 2003 的 IP
地址为 192.168.100.1,子网掩码为 255.255.255.0。
2.为虚拟机 Windows 2003 的光驱加载 Windows 2003 的安装光盘镜像.iso 文件。
7.4.2添加动态主机配置协议服务
单击【开始】→【设置】→【控制面板】→【添加/删除程序】,打开【添加/删除程序】对话框,单击【添加/删除 Windows 组件】,打开【Windows 组件向导】对话框,单击【网络服务】。
图 7.3 Windows 组件向导对话框
单击【详细信息】按钮,打开【网络服务】对话框,选中【动态主机配置协议 (DHCP)】, 单击【确定】按钮关闭对话框,再单击【下一步】按钮以完成添加操作。
图 7.4 网络服务对话框
添加完成后,单击【Windows 组件向导】对话框中的【完成】按钮关闭该对话框。
7.4.3停止 VMware DHCP Service 服务
安装了 VMWare 的主机会自动创建几个系统服务,如下图,打开【控制面板】→【管理工具】→【服务】,把其中的 VMware DHCP Service 服务停止,以便让实验中的客户端只能从我们自己设置的 DHCP 服务器获取 TCP/IP 属性设置。
图 7.5 停止 VMware DHCP Service 服务
7.4.4DHCP 服务器设置
单击【控制面板】→【管理工具】→【DHCP】,打开【DHCP】窗口,在【DHCP】窗口的左窗格中将显示已经连接到一台 DHCP 服务器,方括号外为该 DHCP 服务器的计算机名,方括号内为 DHCP 服务器的 IP 地址。默认情况下将连接本机的 DHCP 服务器。在该 DHCP 服务器上单击鼠标右键,选择【新建作用域】,打开【新建作用域向导】对话框。
图 7.5 DHCP 窗口
作用域名:输入一个用于识别本次新建的作用域的名称,如“DHCP_Server”,也可以在【说明】文本框中对此作用域做进一步的描述。
图 7.6 作用域名
IP 地址范围:在【起始 IP 地址】和【结束 IP 地址】框中分别输入此作用域分配的 IP 地址范围起始 IP 地址(如:192.168.0.101)和结束 IP 地址(如:192.168.0.200)。输入时,向导会自动确定并显示该 IP 地址范围的子网掩码(以网络/子网位的长度和 IP 地址形式),如有必要,可在【长度】框和【子网掩码】框中输入新的子网掩码。这里保持默认即可。
图 7.7 IP 地址范围
添加排除:排除是指服务器不分配的地址或地址范围,可根据需要决定是否输入。假如要在上一步输入的 IP 地址范围中保留前 10 个 IP 地址不分配,则可在【起始 IP 地址】框和【结束 IP 地址】框中分别输入“192.168.0.101”和“192.168.0.110”,再单击【添加】按钮。
图 7.8 添加排除
租约期限:租约期限指定了一个客户端从此作用域获得的 IP 地址的使用时间长短。租约期限一般跟客户端连接的时间相同,如果是一个包含笔记本计算机等移动设备较多的网 络,则设置较短的租约期限比较好;如果是一个包含台式计算机等固定设备较多的网络,则 设置较长的租约期限比较好。这里保持默认值“8 天”即可。
图 7.9 租约期限
配置 DHCP 选项:DHCP 选项包括路由器(默认网关)的 IP 地址、DNS 服务器等, 这里选择【是,我想现在配置这些选项】。
图 7.10 配置 DHCP 选项
路由器(默认网关):指定此作用域要分配的路由器或默认网关的 IP 地址,这里我们输入本机的 IP 地址 192.168.0.1 作为此作用域的默认网关。
图 7.11 路由器(默认网关)
域名称和 DNS 服务器:这里可以输入某个 DNS 服务器的 IP 地址,这里我们输入本机的 IP 地址(如 192.168.0.1)作为 DNS 服务器的 IP 地址。
图 7.12 域名称和 DNS 服务器
激活作用域:作用域只有在启动(激活)后客户端才能获得 IP 地址租约。这里选择【是, 我想现在激活此作用域】。
图 7.13 激活作用域
最后单击【完成】按钮完成新建作用域并关闭【新建作用域向导】对话框。作用域新建后将显示在【DHCP】窗口中,右窗格中显示该作用域的 IP 地址段(如:192.168.0.0)、作用域名、当前的状态(如:活动)等信息。
图 7.14 作用域信息
7.4.5客户端的设置与验证
- 客户端的设置
参照实验指导《对等网和共享资源的设置与访问》,将 Windows 7 的【TCP/IP 属性】设置为【自动获得 IP 地址】和【自动获得 DNS 服务器地址】。
图 7.15 客户端的设置
- 客户端的验证
在客户端系统的【命令提示符】窗口中输入:
ipconfig /all
并按 Enter 键,如果显示类似如下结果,则表明客户端已经能够正确获得 DHCP 服务器分配的 IP 地址等配置信息。
C:\>ipconfig /all
Primary Dns Suffix . . . . . . . : Node Type...................... Unknown IP Routing Enabled.............. No WINS Proxy Enabled.............. No
Description.................... VMware Accelerated AMD PCNet Adapter |
7.4.6服务器端的验证
在服务器端中展开【DHCP】窗口中之前新建的作用域→【地址租约】,并按 F5 键刷新,将会看到客户端的地址租约信息,包括客户 IP 地址、名称(客户端的计算机名)、租约截止日期、唯一 ID(客户端计算机的网卡物理地址)等信息。
图 7.16 服务器端的验证
7.4.7 设置保留地址
DHCP 服务器可为指定的客户端设置保留地址,以便每次都能获得同一个 IP 地址,这是通过绑定客户端的 MAC 地址和 IP 地址来实现的。在服务器端中展开【DHCP】窗口中之前新建的作用域→【保留】→右键菜单→【新建保留】,输入保留名称、需要保留的 IP 地址和客户机的 MAC 地址。为特定客户机设置保留 IP 地址之后,客户机在租约到期之前每次开机或重新初始化都能获得设定的保留 IP。(注意:设置保留之后需重新获取 IP 进行验证, 可使用 ipconfig /release 命令释放原有的 IP 地址,再用 ipconfig /renew 命令重新获取 IP)
图 7.17 新建保留
7.5实验任务
- 创建一个包含 DHCP 配置选项的 DHCP 服务器作用域。
- 设置客户端的 TCP/IP 属性并验证其 DHCP 配置信息。
7.6实验拓展和思考题
1、当一个网络中有两台以上的 DHCP 服务器,DHCP 客户端怎样获取 IP 地址?尝试用抓包工具 wireshark 验证 DHCP 的工作原理和过程。
2、如何实现为跨网段的客户端分配 IP 地址?(DHCP 中继)