1、9 DHCP9.1 DHCP的概念的概念DHCP 是 Dynamic Host Configuration Protocol(动态主机分配协议)缩写,它的前身是 BOOTP。 BOOTP 原本是用于无磁盘主机连接的网络上面的 网络主机使用 BOOT ROM 而不是磁盘起动并连接上网络,BOOTP 则可以自动地为那些主机设定 TCP/IP 环境。但 BOOTP 有一个缺点:您在设定前须事先获得客户端的硬件地址,而且,与 IP 的对应是静态的。换而言之, BOOTP 非常缺乏 “动态性 “ ,若在有限的 IP 资源环境中, BOOTP 的一对一对应会造成非常可观的浪费。 DHCP 可以说是 BOO
2、TP 的增强版本,它分为两个部份 一个是服务器端,而另一个是客户端。所有的 IP 网络设定数据都由 DHCP 服务器集中管理,并负责处理客户端的 DHCP 要求 而客户端则会使用从服务器分配下来的 IP环境数据。比较起 BOOTP , DHCP 透过 “租约“ 的概念,有效且动态的分配客户端的 TCP/IP 设定,而且,作为兼容考虑, DHCP 也完全照顾了 BOOTP Client 的需求。9.1.1 DHCP的设计目标的设计目标1. 客户不需要进行手工配置。2. DHCP不需要在每个子网上要一个服务器,为了经济的原因,它DHCP服务器必须可以和路由器和 BOOTP转发代理一起工作。3. D
3、HCP客户必须可能对多个 DHCP服务器提供的服务作出响应。出于网络稳定与安全的考虑,有时需要为网络加入多个 DHCP服务器。4. 不允许有几个客户同时使用一个网络地址。5. 在 DHCP客户重新启动后仍然能够保留它原先的配置参数,如果可能,客户应该被指定为相同的配置参数。9.1.2 DHCP的分配形式的分配形式首先,必须至少有一台 DHCP 服务器工作在网络上面,它会监听网络的 DHCP 请求,并与客户端搓商 TCP/IP 的设定环境。它提供两种 IP 定位方式: Automatic Allocation :自动分配,其情形是 一旦 DHCP 客户端第一次成功的从 DHCP 服务器端租用到
4、IP 地址之后,就永远使用这个地址。 Dynamic Allocation :动态分配,当 DHCP 第一次从 HDCP 服务器端租用到 IP 地址之后,并非永久的使用该地址,只要租约到期,客户端就得释放 (release)这个 IP 地址,以给其它工作站使用。当然,客户端可以比其它主机更优先的更新 (renew)租约,或是租用其它的 IP 地址。 动态分配显然比自动分配更加灵活,尤其是当实际 IP 地址不足的时候。例如,若 ISP只能提供 200 个 IP地址用来给拨接客户,但并不意味着您的客户最多只能有 200 个。因为客户们不可能全部同一时间上网。这样,就可以将这 200 个地址,轮流的
5、租用给拨接上来的客户使用。这也是为什么查看 IP 地址时,会因每次拨接而有不同的 IP地址 ( 除非申请的是一个固定 IP ,通常的 ISP 都可以满足这样的要求 )。DHCP 除了能动态的设定 IP 地址之外,还可以将一些 IP 保留下来给一些特殊用途的机器使用,它可以按照硬件地址来固定的分配 IP 地址,这样可以有更大的设计空间。同时, DHCP 还可以帮客户端指定 router netmask DNS Server WINS Server 等等项目,用户在客户端上面除了将 DHCP 选项打勾之外,几乎无需做任何的 IP 环境设定。9.1.4 DHCP的工作流程的工作流程 DHCP客户端为
6、了获取合法的动态 IP地址,在不同阶段与服务器之间交互不同的信息,通常存在以下三种模式: 首次登录 再次登录 延长租期1、 DHCP客户端首次登录网络客户端首次登录网络1)发现阶段,即 DHCP客户机寻找 DHCP服务器的阶段。 DHCP客户机以广播方式(因为 DHCP服务器的 IP地址对于客户机来说是未知的)发送 DHCP discover发现信息来寻找 DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了 TCP/IP协议的主机都会接收到这种广播信息,但只有 DHCP服务器才会做出响应(如下图)。 2)提供阶段,即 DHCP服务器提供 IP地址的阶段
7、。在网络中接收到DHCP discover发现信息的 DHCP服务器都会做出响应,它从尚未出租的 IP地址中挑选一个分配给 DHCP客户机,向 DHCP客户机发送一个包含出租的 IP地址和其他设置的 DHCP offer提供信息(如下图)。 DHCP SERVER在发出 DHCPOFFER之前,先进行了两次 PING检测,在地址不冲突的情况下,才发出 DHCPOFFER。 3)选择阶段,即 DHCP客户机选择某台 DHCP服务器提供的 IP地址的阶段。如果有多台 DHCP服务器向 DHCP客户机发来的 DHCP offer提供信息,则 DHCP客户机只接受第一个收到的 DHCP offer提供
8、信息,然后它就以广播方式回答一个 DHCP request请求信息,该信息中包含向它所选定的 DHCP服务器请求 IP地址的内容。之所以要以广播方式回答,是为了通知所有的 DHCP服务器,他将选择某台 DHCP服务器所提供的 IP地址(如下图)。 4)确认阶段,即 DHCP服务器确认所提供的 IP地址的阶段。当 DHCP服务器收到 DHCP客户机回答的 DHCP request请求信息之后,它便向DHCP客户机发送一个包含它所提供的 IP地址和其他设置的 DHCP ack确认信息,告诉 DHCP客户机可以使用它所提供的 IP地址。然后DHCP客户机便将其 TCP/IP协议与网卡绑定(如下图)。