Linux服务器搭建之DHCP服务器

当局域网络中有大量主机时,如果逐个为每一台主机手动设置IP地址、默认网关、DNS服务器地址等网络参数,显然是一个费力也未必讨好的办法。而DHCPDynamic Host Configuration Protocol,动态主机配置协议)服务器的应用,正好可以解决这一问题。

DHCP的典型应用模式如下:在网络中架设一台专用的DHCP服务器,负责集中分配各种网络地址参数(主要包括IP地址、子网掩码、广播地址、默认网关地址、DNS服务器地址);其他主机作为DHCP客户机,将网卡配置为自动获取地址,即可与DHCP服务器进行通信,完成自动配置过程。

下面将介绍在Redhat6.5系统中构建DHCP服务器。

   配置DHCP服务器

1、安装DHCP服务器软件

    先执行“rpm –q dhcp”命令查看系统中是否已经安装了DHCP软件包,如果没有安装,只要挂载RHEL6.5系统光盘,安装其中的dhcp-4.1.1-38.P1.el6.x86_64.rpm软件包即可。安装dhcp软件包后系统会将自动复制相关程序,并添加名为dhcpd的系统服务。

[root@twgdh /]# rpm -q dhcp
package dhcp is not installed
[root@twgdh /]# cd /media/Packages/
[root@twgdh Packages]# rpm -ivh dhcp-4.1.1-38.P1.el6.x86_64.rpm


2、建立主配置文件dhcpd.conf

dhcpd服务的主配置文件是/etc/dhcp/dhcpd.conf,但是该文件中默认并不包含任何有效的配置,需要管理员手动建立。这是管理员可以根据文件中的提示,参考配置文件范本建立新的dhcpd.conf文件。

[root@twgdh ~]# vim /etc/dhcp/dhcpd.conf

#

# DHCP Server Configuration file.

#   see /usr/share/doc/dhcp*/dhcpd.conf.sample

#   see 'man 5 dhcpd.conf'

#                                                                     

:r /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample

    使用末行命令“r”可以把”/usr/share/doc/dhcp*/dhcpd.conf.sample”范本文件中的内容导入到dhcpd.conf文件中来。

2.1)、/etc/dhcp/dhcpd.conf文件的配置构成

在主配置文件dhcpd.conf中,可以使用声明、参数、选项这三种类型的配置,各自的作用和表现形式如下所述。

声明:用来描述dhcpd服务器中对网络布局的划分,是网络设置的逻辑范围。较常见的声明是subnethost,其中subnet声明用来约束一个网段,host声明来约束一台特定的主机。

参数:由配置关键字和对应的值组成,总是以分号“;”结束,一般位于指定的声明范围之内,用来设置所在范围的运行特性(如默认租约时间、最大租约时间等)。

选项:由“option”引导,后面跟具体的配置关键字和对应的值,也是以分号“;”结束,用于指定分配给客户机的各种地址参数(如默认网关地址、子网掩码地址、DNS服务器地址等。)

2.2)、确定dhcpd服务的全局配置

为了使配置文件的结构更加清晰,全局配置通常会存放在配置文件dhcpd.conf的开头部分,可以是配置参数,也可以是配置选项。常用的全局配置参数和选项如下所述。

ddns-update-style,动态DNS更新模式。用来设置与DHCP服务相关联的DNS数据动态更新模式。在实际的DHCP应用中很少用到该参数,将值设为“none”即可。


default-lease-time,默认租约时间。单位为秒,表示客户端可以从DHCP服务器租用某个IP地址的默认时间。


max-lease-time,最大租约时间。单位为秒,表示允许DHCP客户端请求的最大租约时间,当客户端末请求明确的租约时间时,服务器将采用默认租约时间。


option domain-name,默认搜索区域。为客户机指定解析主机名时的默认搜索域,该配置选项将体现在客户机的/etc/resolv.conf配置文件中。


option domain-name-serversDNS服务器地址。为客户机指定解析域名时使用的DNS服务器地址,该配置选项同样将体现在客户机的/etc/resolv.conf配置文件中。需设置多个DNS服务器地址时,应以逗号进行分隔。

例如,若需要为局域网搭建一个台DHCP服务器,所有网段使用相同的租约时间,默认搜索域为hou.comDNS服务器地址为202.106.0.20202.106.148.1,则可以修改dhcpd.conf配置文件,参考以下操作调整全局配置。

[root@twgdh ~]# vim /etc/dhcp/dhcpd.conf
ddns-update-style none;                    ……//禁用DNS动态更新
default-lease-time 21600;                    ……//默认租约为6小时
max-lease-time 43200;                  ……//最大租约为12小时
option domain-name    “benet.com”;          ……//指定默认搜索区域
option domain-name-servers    202.106.0.20,202.106.148.1;   ……//指定DNS服务器地址


2.3)、明确subnet网段声明

一台DHCP服务器可以为多个网段提供服务,因此subnet网段声明必须有而且可以有多个。

例如,若要DHCP服务器为192.168.10.0/24网段提供服务,用于自动分配的IP地址范围为192.168.10.100~192.168.10.200,为客户机指定默认网关地址为192.168.10.1,则可以修改dhcpd.conf配置文件,参考以下内容调整subnet网段声明。

subnet 192.168.10.0 netmask 255.255.255.0  {
  range 192.168.10.100  192.168.10.200;
  option routers  192.168.10.1;
}


如果需要给多个网段分配地址,则必须要该网段地址的网卡,并且还要有对应的subnet区域。

 

2.4)、确定host主机声明(可选)

host声明用于设置单个主机的网络属性,通常用于为网络打印机或个别服务器分配固定的IP地址(保留地址),这些主机的共同特点是要求每次获取的IP地址相同,以确保服务的稳定性。

host声明通过host关键字自定需要使用保留地址的客户机名称,并使用“hardware ethernet”参数指定该主机的MAC地址,使用“fixed-address”参数指定保留给该主机的IP地址。例如,若要为打印机prtsvrMAC地址为00:0c:c3:22:46:81)分配固定的IP地址192.168.10.124,可以修改dhcpd.conf配置文件,参考以下内容在网段声明内添加以下host主机声明。

host prtsvr {
      hardware  ethernet  00:0c:c3:22:46:81;
      fixed-address  192.168.10.124;
}


3、启动dhcpd服务

在启动dhcpd服务之前,应确认提供DHCP服务器的网络接口具有静态指定的固定IP地址,并且至少有一个网络接口的IP地址与DHCP服务器中的一个subnet网段相对应,否则无法正常启动dhcpd服务。例如DHCP服务器的IP地址为192.168.10.131/24,用于为网段192.168.10.0/24内的其他客户机提供自动分配地址服务。

安装dhcp软件包以后,对应的系统服务脚本位于/etc/rc.d/init.d/dhcpd,可以使用标准的系统服务进行控制。dhcp默认使用UDP协议的67端口。

[root@twgdh ~]#service dhcpd start
正在启动  dhcpd:                                         [确定]
[root@twgdh ~]#netstat  -anpu  |  grep “:67”
udp      0     0.0.0.0:67       0.0.0.0:*          4784/dhcpd


需要关闭,重启dhcpd服务时,只要将上述操作命令中的“start”改为“stop”、“restart”即可。如果dhcpd服务启动失败,可以检查日志文件/var/log/messages末尾的错误提示小时,并根据提示进行排错。