在一个计算机比较多的网络中,如果网络管理员要亲自为某个部门,甚至整个企业的上百台机器

逐一手工分配IP地址,那么这个效率是非常低的,我们可以通过DHCP服务器来帮助他们实现这个工

作。

1.什么是DHCP

DHCP(Dynamic Host ConfigurationProtocol,动态主机配置协议)是一种基于客户/服务器模式的

服务协议。工作原理其实很简单,就是安装有DHCP服务器的网络中,客户端启动时自动与DHCP服务

器通信,要求服务器提供一个合法IP,而安装了DHCP服务软件的服务器响应这个请求,并向客户端

发送合法IP地址。

  2.DHCP服务简介

   DHCP是一个简化主机IP地址分配管理的TCP/IP标准协议。用户可以利用DHCP服务器管理动态的IP

地址分配以及其他相关环境配置工作。

   DHCP服务主要由服务器和客户机两个部分共同完成。服务器使用固定的IP地址,在局域网中扮演

着给客户端提供动态IP地址、DNS配置和网关配置的角色。客户端与IP地址相关的配置,都在启动时由

DHCP服务器自动分配,如图所示:

122254541.jpg

 3.DHCP工作流程

   DCHP客户端和服务端申请IP地址、获得IP地址的过程,一般分为4个阶段。如图所示:

122404566.jpg

3.1、初始化

   当客户端启动网络时,由于在IP网络中的每台机器都需要一个地址,故此时的计算机TCP/IP地址

与0.0.0.0绑定在一起,发送一个“DHCP Discover(DHCP发现)”广播信息包到本地子网。该信息包

发送给UDP端口67,也即DHCP服务器端口的广播信息包。

3.2、选择

   本地子网的DHCP服务器接收DHCPDiscover信息包,当DHCP服务器接收到请求后,检查是否存在有

效的空闲地址给请求客户端。如果有,则以“DHCP Offer(DHCP提供)”信息包作为响应,该信息包

包括有效的IP地址、子网掩码、HDCP服务器的IP地址、租用期限以及其他有关DHCP范围的详细配置。

所有发送DHCP Offer信息包的服务器将保留它们提供的这个IP地址(该地址暂时不能分配给其它的客

户)。DHCP Offer信息广播发送到UDP端口68,也就是DHCP客户端口。响应是以广播的方式发送的,因

为客户不能直接搜索到有效的IP地址。

3.3、请求

客户通常对第一个服务器的信息包作出响应,并以广播的方式发送“DHCP Request(DHCP请求)”信

息包作为响应。该信息包告诉服务器“是的,我想让你为我提供服务。我接收你给我的租用期限”。

而且,一旦信息包以广播方式发送后,网络中所有的DHCP服务器都可以看到该信息包,哪些其他服务

器的信息包没有被客户承认,DHCP将保留的IP地址返回给它自己的可用地址池中。客户还可以利用

DHCP Request询问服务器其他的配置选项,如DNS服务器或网关地址。

3.4、捆绑

当服务器接收到DHCP Request信息包时,以一个“DHCP Acknowledge(DHCP确认)”信息包作为响

应,该信息包提供了客户请求的任何其他信息,也是以广播的方式发送的。该信息包告诉客户“一切

准备好。记住你只能在有限时间内租用该地址,而不能永久占据”。

4.IP地址租期

   客户端从DHCP服务器取得IP地址后,这次租约行为就被记录到主机的租赁信息文件中,并且开始

租期记时。

   DHCP服务器是以地址租约的方式为DHCP客户端提供服务的,主要有以下两种。

4.1、限定租期

   当DHCP客户端向DHCP服务器租用到IP地址后,DHCP客户端只是暂时使用这个地址。如果客户端在

租约到期时并没有更新租约,则DHCP服务器收回该IP地址,并将该IP地址提供给其他的DHCP客户端使

用。如果原DHCP客户端又需要IP地址,可以向DHCP服务器重新租用另一个IP地址。

4.2、永久租用

   当DHCP客户端向DHCP服务器租用到IP地址后,这个地址就永远分派给这个DHCP客户端使用。只要

有足够的IP地址给客户端使用,就没有必要限定租约,就可以采用这种方式给客户端自动分派IP地

址。

4.3、租约更新

   客户端取得IP地址后,也并不是一直等到租约到期才与服务器取得联系,事实上在租约到期的时

间内,会两次与服务器联系,并决定下一步需要进行的动作。

 4.3.1、更新

   当客户注意到租用期到了50%以上时就要更新该租用期。这时它发送一个UDP信息包给原始DHCP信

息的服务器。该信息包是一个DHCP Request信息包,用于询问是否能保持TCP/IP配置信息,并更新它

的租用期。如果服务器是可用的,通常发送一个DHCP Acknowledge信息包给客户,同意客户的请求。

 4.3.2、重新捆绑

   当租用期达到期满时间的近87.5%时,客户端如果在前一次请求中没能更新租用期的话,会再次视

图更新租用期。如果这次更新失败,客户端就会尝试与任何一个DHCP服务器联系,以获得一个有效的

IP地址。如果另外的DHCP服务器能够分配一个新的IP地址,则该客户端再次进入捆绑状态。如果客户

端当前的IP地址租用期满,则客户端必须放弃该IP地址,并重新进入初始化状态,然后重复整个过

程。

5、解约条件

  既然客户端就IP地址的分配与DHCP服务器建立一个有效租约,那么这个租约什么时候解除呢?要分

两种情况:

5.1、客户端租约到期
   DHCP服务器分配给客户端的IP地址是有使用期限的。如果客户端使用此IP地址到达了这个有效期

限的终点,并且没有再次向DHCP服务器提供租约更新,那么DHCP服务器就将这个IP地址回收,客户端

就会断线。

5.2、客户端离线

   除了客户端租约到期会造成租约解除外,当客户端离线(包括关闭网络接口——ifdown,重新开

机——reboot,关机——shutdown),DHCP服务器都将IP地址回收并放入自己的IP地址池中等候下一

个客户端申请。

6、客户端获得IP地址类型

   在客户端从DHCP服务器申请IP地址时,服务器并不是总提供一个动态IP地址,而是根据实际情况

来决定。

6.1、动态IP地址

   客户端从DHCP服务器那里取得的IP地址一般都不是固定的,而是每次都可能不一样。在一个IP地

址有限的单位,动态IP地址可以最大化地达到资源的有效利用,利用并不是每个员工都同时上线的原

理,优先为上线的员工提供IP地址,离线之后再收回。

6.2、固定IP地址

   客户端从DHCP服务器那里取得的IP地址也并不总是动态的。比如:有的单位除了员工用计算机

外,还有数量不少的服务器,这些服务器如果也使用动态IP地址,不但不利于管理,而且客户端访问

起来也不方便,该怎么办呢?可以设置DHCP服务器记录特定计算机的MAC地址,然后为每个MAC地址分

配一个固定的IP地址。(MAC地址也称物理地址或硬件地址,是由网络设备制造商生产时写在硬件内部

的,MAC地址都是唯一的。TCP/IP网络中,表面上看来是通过IP地址进行数据的传输,实际上最终是通

过MAC地址来区分不同的结点的。)

7、DHCP服务的安装

系统环境:Red Hat EnterpriseLinux 5

工具:    Red Hat Enterprise Linux 5安装光盘

注意:由于DHCP客户端是通过广播向网络发送DHCP服务器查询的,所以在安装DHCP服务器之前,用户

要确认服务器的网卡是否支持广播功能。执行如下命令:ifconfigeth0。如果显示的信息中有

MULTICAST字样,则说明网卡支持广播功能。

125759541.png

7.1、安装DHCP服务器

   如果用户不确定自己的服务器上是否安装了DHCP服务,可以执行命令查询:

125907785.png

   如果安装过了,则显示dhcp-3.0.15-13.el5字样。

   DHCP服务安装需要的文件较少,只需要一个dhcp-3.0.15-13.el5.i386.rpm即可,所以通过命令行

安装比较简单,具体操作方法如下:

    将Red Hat Enterprise Linux 5 安装光盘放入光驱,然后打开Linux的终端命令行,输入如下命令:

193015304.png

7.2、DHCP服务器配置

   安装了DHCP软件包之后,需要修改其配置文件才能够使用。与其他Red Hat Linux 5服务器类似,

DHCP服务也可以通过文本格式的配置文件来控制。

注意:刚开始安装的DHCP后,dhcpd.conf文件是空的,配置该文件的内容可参

考/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample中的内容,并且保证有一个网段必须和主机的IP在

同一个网段,否则无法启动DHCP服务。

 7.2.1、相关文件

   DHCP服务相关的文件如下:

主配置文件:其主配置文件是/etc/dhcpd.conf,包括声明和参数两方面的内容。

   IP地址分配信息:/var/lib/dhcpd/dhcpd.leases文件也与DHCP服务密切相关,主要记录DHCP服务

器分配出去的IP地址以及相应的客户端信息。

 7.2.2、dhcpd.conf的语法

   dhcpd.conf文件中的单词都是区分大小写的,注意不要书写错误;以“#”号开头的是注释行。每

行除了括号以外,都必须以“;”结束。

声明用来描述与系统连接的网络、主机或者用户组,以及可以分配给这三类事物的地址范围。以下是

一个网段的声明:

193214545.png

dhcpd.conf文件中常用的声明及功能  

声明

功能

shared-network  名称{…}

定义超级作用域

subnet  网络号  netmask 子网掩码{…}

定义作用域(或IP子网)

range  起始IP  终止IP

定义地址池

host  主机名 {…}

定义保留地址

group  {…}

定义一组参数

ddns-update-style  类型

定义所支持的DNS动态更新类型(必选)

allow/ignore  client-updates

允许/忽略客户机更新DNS记录

default-lease-time  数字

指定默认租约期限

max-lease-time   数字

指定最大租约期限

hardware  网卡类型   MAC地址

指定网卡对应的MAC地址

server-name  主机名

通知DHCP客户机服务器的主机名

fixed-address  IP地址

分配给客户端一个固定IP

subnet-mask   子网掩码

为客户端指定子网掩码

domain-name  “域名”

为客户端指定域名

domain-server  IP地址

为客户端指定DNS服务器IP

host-name  “主机名”

为客户端指定主机名

routers   IP地址

为客户端指定默认网关

broadcast-address   广播地址

为客户端指定广播地址

netbios-name-server   IP地址

为客户端指定WINS服务器的IP

netbios-node-type  结点类型(ad-hoc,interim,none)

为客户端指定结点类型

ntp-server   IP地址

为客户端指定网络时间服务器IP

nis-server   IP地址

为客户端指定NIS域服务器IP

nis-domain  “名称”

为客户端指定所属NIS域的名称

time-offset  偏移差

为客户端指定与格林尼时间的偏差


局域网DHCP服务器配置实战1——单个作用域:

背景:某公司有一台服务器,要提供DHCP分配IP地址功能。DHCP服务器采用Red Hat Enterprise

Linux 5 操作系统。

要求:内部网段为192.168.0.0/24,路由器IP地址为192.168.0.1.

      DHCP分配的IP地址默认租约为1天,最长为2天。

      DHCP地址为:192.168.0.3

可以分配的动态IP地址的范围是192.168.0.100——192.168.0.250.

有一台Web服务器,其MAC地址是:08-00-27-A6-C4-7F,机器名是:web-server,要分配的IP为192.168.0.2。

拓扑:

193456927.jpg



DHCP服务器配置:

193656629.png

效果:

193738625.png

局域网DHCP服务器配置实战2——超级作用域:

背景:某个公司有大约300台主机。采用两个C类私网地址进行动态分配,如果一个地址池中的地址分

配完了,就分配另一个地址池中的IP地址。有一台服务器,要提供DHCP分配IP地址功能。DHCP服务器

采用RedHat Enterprise Linux 5 操作系统。

要求:私网1:192.168.2.0/24

网关:192.168.2.1

子网掩码:255.255.255.0

域名为“aaa.com”

域名服务器地址:192.168.2.2

地址池:192.168.2.4——192.168.2.254

默认租期:1天

最大租期:2天

私网2:

网关:192.168.3.1

子网掩码:255.255.255.0

域名为“aaa.com”

域名服务器地址:192.168.3.2

地址池:192.168.3.3——192.168.3.254

默认租期:1天

最大租期:2天

拓扑:

193918578.jpgDHCP服务器配置:

194008701.png

效果:

194030428.png