现在的位置: 首页 > 综合 > 正文

在Linux操作系统下建立DHCP服务器

2013年08月07日 ⁄ 综合 ⁄ 共 4002字 ⁄ 字号 评论关闭

 

DHCP是Dynamic Host Configuration Protocol的英文缩写,翻译过来就是动态主机配置通讯协议。它的功能就是为网络连接动态分配IP地址,它允许客户端计算机向网络服务器自动获取网络设置。DHCP服务器使得网络管理员在管理网络中在网络中增加、删除网络节点或者重新配置网络时,工作变得非常简单,无须手工的分配IP地址。采用Linux主机建立DHCP服务器,比Windows NT更加具有更好的性价比,本文以RedHat7.2为例,介绍如何采用Linux来建立DHCP服务器,以及网络管理员如何管理好DHCP服务器。

在Linux操作系统下建立DHCP服务器非常简单,只要掌握几个简单的命令,编辑/etc/DHCPd.conf文件,很快就能够建立DHCP服务器。实际上操作并不比Windows NT复杂,具体操作如下:

一、如何建立DHCP服务。

⑴安装DHCP服务器软件

# mount /mnt/cdrom
# rpm -ivh /mnt/cdrom/RedHat/RPMS/DHCP-2.0pl5-8.i386.rpm

⑵配置DHCP服务器/etc/DHCPd.conf文件。可以从/usr/share/doc/DHCP-2.0pl5目录下拷贝一个例子文件DHCPd.conf.sample,在这个文件的基础上修改。

以下仅仅是一个例子,具体看man DHCPd.conf文档,DHCP服务器在192.168.101.0网段。

 subnet 192.168.2.0 netmask 255.255.255.0 {
#$ 财务科
range 192.168.2.10 192.168.2.254;
default-lease-time 43200;
max-lease-time 86400;
option broadcast-address 192.168.2.255;
option subnet-mask 255.255.255.0;
option routers 192.168.2.1;
# option netbios-name-servers 192.168.101.10;
}

subnet 192.168.3.0 netmask 255.255.255.0 {
#$ 办公
# range dynamic-bootp 192.168.3.10 192.168.3.254;
range 192.168.3.10 192.168.3.254;
default-lease-time 43200;
max-lease-time 86400;
option broadcast-address 192.168.3.255;
option routers 192.168.3.1;
option subnet-mask 255.255.255.0;
# option netbios-name-servers 192.168.101.10;
}

subnet 192.168.101.0 netmask 255.255.255.0 {
}

说明:#开头的行,表示注释,每一个subnet表示一段动态地址的设置。

range : 表示租用地址的范围,可以包含不连续的多段地址,只需分别说明。

default-lease-time : 表示缺省的租用时间,单位是秒。

max-lease-time : 表示最大的租用时间,单位是秒。

还可以包括一些可选项,如:

broadcast-address : 广播地址。

routers : 缺省路由或者网关。

subnet-mask: 子网掩码。

netbios-name-servers: 如果网络中存在Windows NT,可以指定wins服务器的地址。

还有许多参数,如可以对特定硬件MAC的地址指定IP地址,具体操作看man DHCPd. conf文档。

另外由于本例子DHCP服务器在192.168.101.0网段,必须指定一个空的subnet。

说明:如果DHCP服务与DHCP客户位于不同的网段,那么网络中就必须具备有DHCP Relay Agent(即DHCP中继代理)功能的IP路由器,把DHCP的信息从一个网段传送到另一个网段。一般的智能交换机都具有DHCP代理的功能,只要在交换机中设定DHCP服务器的IP地址就可以了。

如果IP路由器的硬件设备不能支持DHCP中继代理的功能,需要在充当IP路由器的机器上安装DHCP中继代理程序,并且打开IP Forward (IP转发)功能,DHCP的rpm包也提供dhcrelay命令,具体看man dhcrelay文档。

⑶建立/var/lib/DHCP/DHCPd.leases文件。

# touch /var/lib/DHCP/DHCPd.leases

说明:各种不同的GNU/Linux发布版,建立DHCPd.leases可能位于不同的目录, 必须根据不同的发布版来确定建立DHCPd.leases文件的目录。

⑷激活DHCP服务,执行ntsysv命令,选中DHCPd,选择OK退出,下次开机自动启动DHCP服务,也可以手工执行如下命令进行测试:

/etc/rc.d/init.d/DHCPd start #启动DHCP服务。
/etc/rc.d/init.d/DHCPd stop #关闭DHCP服务。

⑸测试

选择一台客户机,进入windows,将IP地址选择为自动获得,重新启动后,执行winipcfg /all

检查DHCP服务是否设置正确。

二、如何管理DHCP服务:

DHCP服务器建立好后,对于网络管理员来说如何更好的管理DHCP服务,将是一个非常重要的问题,虽然网络管理员可以通过查看DHCPd.leases文件了解客户端IP等信息的分配情况,但是当网络中机器较多的时候,显然不是一个非常好的方法。

本人在具体的实践中,发现通过使用DHCPstatus工具,能够通过Web浏览器就能够非常好的了解DHCP服务器的使用与分配情况。

具体操作如下:

⑴下载与安装DHCPstatus软件。

下载http://prdownloads.sourceforge.net/DHCPstatus/DHCPstatus_0.60.tar.gz

# tar xzvf DHCPstatus_x.xx.tar.gz -C /tmp

⑵仔细阅读安装目录的install文件,具体操作步骤如下:

(a)建立library目录。

# mkdir /usr/local/DHCPstatus
# cd /usr/local/DHCPstatus

(b)解压library的tar文件到/usr/local/DHCPstatus目录。

# tar xvf /tmp/DHCPstatus_x.xx/libraries.tar

将建立一个DHCPstatus目录和DHCPstatis.ini文件。

(c)根据具体的DHCP服务器的设置,修改与编辑DHCPstatus.ini文件,最主要的参数是:

title=DHCP Subnet Information
leases_file=/etc/DHCPd.leases
改为:
title=XXXX DHCP Subnet Information
leases_file=/var/lib/DHCP/DHCPd.leases
#注须根据具体的Linux发布版修改leases_file参数。

(d)如果以上建立DHCPd.conf文件没有包括如:/“ #$ 财务科/”这些信息,最好加入,DHCPstaus.cgi脚本通过读取/etc/DHCPd.conf文件来获得这些信息,注意$不能省略。

(e)安装scripts文件,拷贝scripts目录下的DHCPstatus.cgi文件到web服务的cgi-bin目录:

# cp /tmp/DHCPstatus_x.xx/scripts/DHCPstatus.cgi /var/www/cgi-bin
# cp /path/to/DHCPstatus_x.xx/scripts/DHCPstatus /usr/local/bin
修改 #!/usr/local/bin/perl -w 为 #!/usr/bin/perl -w

(f)建立浏览器主页,只要加入如下代码:

<P ALIGN=/“center/”>
<A HREF=/“cgi-bin/DHCPstatus.cgi/”> DHCP Subnet Status </A>
</P>

(g)为了安全起见,可以给Web服务器建立密码,以Redhat7.2带的Apache 1.3.20为例说明:

*修改/etc/httpd/conf/httpd.conf,将:

<Directory /"/var/www/html/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
改为:
<Directory /"/var/www/html/">
Options Indexes FollowSymLinks
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>

*在/var/www/html目录建立一个.htaccess文件,内容如下:
AuthName /"DHCP Status Access/"
AuthType Basic
AuthUserFile /var/www/html/.htpasswd
require valid-user

*执行htpasswd命令,在/var/www/html目录建立一个.htpasswd文件.

htpasswd -bc /var/www/html/.htpasswd admin XXXX

其中XXXX表示密码,也可以增加更多的管理用户,具体操作看man htpasswd
文档。

(h)启动httpd服务,/etc/rc.d/init.d/httpd restart

通过以上的设置,网络管理员就可以非常方便的管理DHCP服务,了解DHCP的使用与分配情况。

【上篇】
【下篇】

抱歉!评论已关闭.