作者:S60243(肇庆学院06软件班)
说明:这是我在cto的第一篇博文,如有错漏之处 ,请批评指正!
本文适合人群:学习过《计算机网络》课程以及有VMware基本操作的网络初级人员。高手请绕道!
 
概述: 动态主机设置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作,主要用途:给内部网络计算机自动分配IP地址给用户,而不用用户设置ip地址选项。从而实现在大型网络里减轻网络管理员的管理负担,简化网络管理的功能。
通常,DHCP 服务器至少向客户端提供以下基本信息:
  • IP 地址
  • 子网掩码
  • 默认网关
它还可以提供其他信息,如域名服务 (DNS) 服务器的地址和 Windows Internet 名称服务 (WINS) 服务器的地址。
 
DHCP 的工作原理(百度上的)
根据客户端是否第一次登录网络,DHCP 的工作形式会有所不同。
第一次登录的时候:

寻找 Server
当 DHCP 客户端第一次登录网络的时候,也就是客户发现本机上没有任何 IP 数据设定,它会向网络发出一个 DHCP DISCOVER 封包。因为客户端还不知道自己属于哪一个网络,所以封包的来源地址会为 0.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 的过程。
提供 IP 租用地址
当 DHCP 服务器监听到客户端发出的 DHCP discover 广播后,它会从那些还没有租出的地址范围内,选择最前面的空置 IP ,连同其它 TCP/IP 设定,响应给客户端一个 DHCP OFFER 封包。 由于客户端在开始的时候还没有 IP 地址,所以在其 DHCP discover 封包内会带有其 MAC 地址信息,并且有一个 XID 编号来辨别该封包,DHCP 服务器响应的 DHCP offer 封包则会根据这些资料传递给要求租约的客户。根据服务器端的设定,DHCP offer 封包会包含一个租约期限的信息。
 接受 IP 租约
如果客户端收到网络上多台 DHCP 服务器的响应,只会挑选其中一个 DHCP offer 而已(通常是最先抵达的那个),并且会向网络发送一个DHCP request广播封包,告诉所有 DHCP 服务器它将指定接受哪一台服务器提供的 IP 地址。 同时,客户端还会向网络发送一个 ARP 封包,查询网络上面有没有其它机器使用该 IP 地址;如果发现该 IP 已经被占用,客户端则会送出一个 DHCPDECLIENT 封包给 DHCP 服务器,拒绝接受其 DHCP offer ,并重新发送 DHCP discover 信息。
 租约确认
当 DHCP 服务器接收到客户端的 DHCP request 之后,会向客户端发出一个 DHCPACK 响应,以确认 IP 租约的正式生效,也就结束了一个完整的 DHCP 工作过程。
DHCP 发放流程第一次登录之后: 一旦 DHCP 客户端成功地从服务器哪里取得 DHCP 租约之后,除非其租约已经失效并且 IP 地址也重新设定回 0.0.0.0 ,否则就无需再发送 DHCP discover 信息了,而会直接使用已经租用到的 IP 地址向之前之 DHCP 服务器发出 DHCP request 信息,DHCP 服务器会尽量让客户端使用原来的 IP 地址,如果没问题的话,直接响应 DHCPack 来确认则可。如果该地址已经失效或已经被其它机器使用了,服务器则会响应一个 DHCPNACK 封包给客户端,要求其从新执行 DHCP discover。
 
下面我们搭建实验环境
实验拓扑如下
clip_p_w_picpath002
实验环境:Vmware
安装三台虚拟机,windows 2003、xp、2000各一台,把他们加入team,并设置为同一网段:LAN1
 
下面是虚拟机设置结果
clip_p_w_picpath004
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 
下面是虚拟机运行界面
clip_p_w_picpath006
 
实验步骤:
1.在windows 2003安装dhcp服务
2.在dhcp服务中新建作用域,并配置地址池
3.激活作用域
4.完成dhcp服务配置
5.在客户机tcp/ip协议属性中将其设置为自动获取ip方式获取ip地址
6.用ipconfig命令验证实验成果
下面我们在windows 2003中对服务器进行配置
1.在2003系统安装dhcp服务
在控制面板,打开“添加或删除程序”
clip_p_w_picpath008
点击 clip_p_w_picpath010
打开向导
clip_p_w_picpath012
选择网络服务
点击“详细信息” clip_p_w_picpath014进入下面的界面
clip_p_w_picpath016
勾选 clip_p_w_picpath018
clip_p_w_picpath020
点击确定
clip_p_w_picpath022
下一步
clip_p_w_picpath024
完成安装
clip_p_w_picpath026
安装后,在管理工具中,可看到服务已安装好
clip_p_w_picpath028
打开在管理工具菜单里打开dhcp服务
clip_p_w_picpath030
右击服务器,选择新建作用域
clip_p_w_picpath032
出现新建作用域向导
clip_p_w_picpath034
下一步
clip_p_w_picpath036
随意输入一个你想要的描述名称。如:为192.168.1网段分配ip地址
clip_p_w_picpath038
下一步
clip_p_w_picpath040
输入要为客户机分配ip地址所用的ip地址段(池)及子网掩码长度:24(c类ip)
clip_p_w_picpath042
下一步
clip_p_w_picpath044
由于服务器地址为192.168.1.254.而刚才我们设的地址池是192.168.1.1到192.168.1.254。为了不让其他客户机获取到的地址为192.168.1.254,使该客户机地址跟服务器地址发生冲突,我们可以添加排除。
clip_p_w_picpath046
我们根据需要输入,现在我们输入192.168.1.254,然后点击右边的“添加”
clip_p_w_picpath048
clip_p_w_picpath050
下一步
clip_p_w_picpath052
可根据需要修改作用域租约期限,我们一般不做修改,下一步
clip_p_w_picpath054
出现激活向导,选择“是”,只有激活才能为客户机分配ip
下一步
clip_p_w_picpath056
出现新建作用域向导
由于我们实验是在Vmware中实现,没有上网连接。故不需设置网关。当然实际中,你可以输入路由器的内网ip作网关地址。
下一步
clip_p_w_picpath058
如果你想要客户机自动配置dns服务器地址。在ip地址里输入dns服务器地址即可
我们可以输入本机ip(你可在本机安装dns服务为本网段做域名解析服务)
clip_p_w_picpath060
下一步
clip_p_w_picpath062
我们不需要wins服务,故下一步
clip_p_w_picpath064
选择 clip_p_w_picpath066
下一步
clip_p_w_picpath068
完成
到此为止,我们的dhcp服务安装完毕
clip_p_w_picpath070
下面,我们来配置客户机。使他们通过windows server 2003提供的dhcp服务自动获取ip。
打开安装了xp的客户机
选择:开始—设置—网络连接
clip_p_w_picpath072
打开网络连接
clip_p_w_picpath074
选择本地连接,右键选择属性
clip_p_w_picpath076
选择 clip_p_w_picpath078
clip_p_w_picpath080
点击 clip_p_w_picpath082
clip_p_w_picpath084
选择 clip_p_w_picpath086,那么,客户机就可自动向服务器申请ip了。
然后,点击确定,确定
最后我们验证实验是否成功
选择开始,运行
clip_p_w_picpath088
clip_p_w_picpath090
输入cmd,然后回车
打开dos命令提示符窗口
clip_p_w_picpath092
输入ipconfig /all
clip_p_w_picpath094
我们可以看到本机已自动向服务器申请了一个ip
clip_p_w_picpath096
这正是我们在服务器中地址池192.168.1.1到192.168.1.253中的其中随即申请到的一个
同理,在windows 2000客户机做同样设置。
结果如下
clip_p_w_picpath002[4]