作者:S60243(肇庆学院06软件班)
说明:这是我在cto的第一篇博文,如有错漏之处 ,请批评指正!
本文适合人群:学习过《计算机网络》课程以及有VMware基本操作的网络初级人员。高手请绕道!
概述:
动态主机设置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作,主要用途:给内部网络计算机自动分配IP地址给用户,而不用用户设置ip地址选项。从而实现在大型网络里减轻网络管理员的管理负担,简化网络管理的功能。
通常,DHCP 服务器至少向客户端提供以下基本信息:
- IP 地址
- 子网掩码
- 默认网关
DHCP 的工作原理(百度上的)
根据客户端是否第一次登录网络,DHCP 的工作形式会有所不同。
第一次登录的时候:
寻找 Server。
根据客户端是否第一次登录网络,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。
下面我们搭建实验环境
实验拓扑如下
实验环境:Vmware
安装三台虚拟机,windows 2003、xp、2000各一台,把他们加入team,并设置为同一网段:LAN1
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
下面是虚拟机运行界面
实验步骤:
1.在windows 2003安装dhcp服务
2.在dhcp服务中新建作用域,并配置地址池
3.激活作用域
4.完成dhcp服务配置
5.在客户机tcp/ip协议属性中将其设置为自动获取ip方式获取ip地址
6.用ipconfig命令验证实验成果
下面我们在windows 2003中对服务器进行配置
1.在2003系统安装dhcp服务
在控制面板,打开“添加或删除程序”
打开向导
选择网络服务
点击确定
下一步
完成安装
安装后,在管理工具中,可看到服务已安装好
打开在管理工具菜单里打开dhcp服务
右击服务器,选择新建作用域
出现新建作用域向导
下一步
随意输入一个你想要的描述名称。如:为192.168.1网段分配ip地址
下一步
输入要为客户机分配ip地址所用的ip地址段(池)及子网掩码长度:24(c类ip)
下一步
由于服务器地址为192.168.1.254.而刚才我们设的地址池是192.168.1.1到192.168.1.254。为了不让其他客户机获取到的地址为192.168.1.254,使该客户机地址跟服务器地址发生冲突,我们可以添加排除。
我们根据需要输入,现在我们输入192.168.1.254,然后点击右边的“添加”
下一步
可根据需要修改作用域租约期限,我们一般不做修改,下一步
出现激活向导,选择“是”,只有激活才能为客户机分配ip
下一步
出现新建作用域向导
由于我们实验是在Vmware中实现,没有上网连接。故不需设置网关。当然实际中,你可以输入路由器的内网ip作网关地址。
下一步
如果你想要客户机自动配置dns服务器地址。在ip地址里输入dns服务器地址即可
我们可以输入本机ip(你可在本机安装dns服务为本网段做域名解析服务)
下一步
我们不需要wins服务,故下一步
下一步
完成
到此为止,我们的dhcp服务安装完毕
下面,我们来配置客户机。使他们通过windows server 2003提供的dhcp服务自动获取ip。
打开安装了xp的客户机
选择:开始—设置—网络连接
打开网络连接
选择本地连接,右键选择属性
然后,点击确定,确定
最后我们验证实验是否成功
选择开始,运行
输入cmd,然后回车
打开dos命令提示符窗口
输入ipconfig /all
我们可以看到本机已自动向服务器申请了一个ip
这正是我们在服务器中地址池192.168.1.1到192.168.1.253中的其中随即申请到的一个
同理,在windows 2000客户机做同样设置。
结果如下
转载于:https://blog.51cto.com/544729/269867