RSS

基于Web界面监视DHCP服务器

在 Linux 操作系统下建立 DHCP 服务器非常简单,只要掌握几个简单的命令。DHCP 服务器的日常维护也成了一个问题,有的时候服务器是运行的,进程却卡死了,导致不能正常分配 ip,因此如果可以实时监控 DHCP 服务器 IP 的分配就可以知道了 DHCP 服务器是否正常工作。

首先就是配置 DHCP 服务器,以前我也没配置过!现在回头看看,在 linux 下配置 HDCP 服务非常简单,只要配置正确就可以了。嗯!废话不多说,下面我们就来配置 DHCP 服务器!我的是 Centos5.5

一.配置 DHCP 服务器

为了使 DHCP 服务器能为正确 MS 的 DHCP 客户机器服务,需要创建一个到地址 255.255.255.255

的路由,把这条路由命令加到/etc/rc.d/rc.local,使得每次机器启动后自动运行。

route add -host 255.255.255.255 dev eth0

在一些老 Linux 核心的系统里可能会报告错误消息:

255.255.255.255: Unkown host

可以试着加下面的条目到/etc/hosts 文件里

255.255.255.255 dhcphost

再用下面的命令

#route add -host dhcphost dev eth0 装 DHCP 软件包

1.安装 DHCP 软件包

#yum install dhcp -y        / 我是用 yum 安装的,当然也可以用 rpm 包安装。

2.配置 DHCP 服务器配置文件

#vi /etc/dhcpd.conf

先贴一下我的配置;我的是在虚拟机里配置的,先贴配置,后面给大家一一说明

说明:

#开头的行,表示注释,每一个 subnet 表示一段动态地址的设置。 后面要家$,后面给大家解释;

ddns-update-style interim;     //动态 DNS 解析
ignore client-updates;           //忽略客户端 DNS 设置,就是不允许客户机更新 DNS 记录

#$servers                            //子网注释名
subnet 192.168.2.0 netmask 255.255.255.0 {
        option routers                  192.168.2.1;                   //设置网关
        option subnet-mask              255.255.255.0;         //子网掩码
        option domain-name              “canghai.net”;          //域名
        option domain-name-servers      202.103.44.150;        //指定 DNS
        range dynamic-bootp 192.168.2.100 192.168.2.190;   //设置 ip 分配范围
        default-lease-time 21600;     //设置最短租期
        max-lease-time 43200;        //设置最长租期
}

关于配置文件的就是这些,我也是看自说明自己理解的,不过没问题,配置好了 DHCP 配置文件就可以启动 DHCP 服务器了~

#service dhcpd start

看到 OK 说明 DHCP 服务启动,如果失败请检查配置文件。

二.配置 dhcpstatus

dhcpstatus 是一个开源软件,可以通过读取 dhcpd.leases 而活动当前 IP 分配的状况,并通过 web 页面放映出来。其最新版本为 0.60

1.下载并解压

#wget http://downloads.sourceforge.net/project/dhcpstatus/dhcpstatus/v0.60/dhcpstatus_0.60.tar.gz

#tar zxvf dhcpstatus_0.60.tar.gz -c /tmp

2.建立安装目录

#mkdir /usr/local/dhcpstatus

#cd /usr/local/dhcpstatus

#tar zxvf /tmp/dhcpstatus_0.60/libraries.tar

3.根据 DHCP 服务器的设置修改 dhcpstatus.ini

#vi /usr/local/dhcpstatus/dhcpstatus.ini

将主要的一行

leases_file=/etc/dhcpd.leases

修改为

leases_file=/var/lib/dhcpd/dhcpd.leases

具体路径根据自己系统配置

4.安装脚本文件.

拷贝 scripts 目录下的 dhcpstatus.cgi 到 web 目录

#cp /tmp/dhcpstatus_0.60/scripts/dhcpstatus.cgi /var/www/cgi-bin

拷贝 scripts 目录下的 dhcpstatus 到/usr/local/bin

#cp /tmp/dhcpstatus_0.60/scripts/dhcpstatus /usr/local/bin

修改 dhcpstatus.cgi 文件首行的#!/usr/local/bin/perl -w 指向你的 perl 位置。(一般不用修改)

5.启动 http

现在配置好了,我们可以启动 http 服务

#service httpd start

好了,现在我们可以通过浏览器访问了。在地址栏里输入地址

http://DHCPServerIP/cgi-bin/dhcpstatus.cgi

可以看到 DHCP 分配了如图:

点击 Subnet,可以看到子网的具体 IP 分配情况。

还可以看到计算机名

三.添加认证。

基于安全考虑,会次页面进行验证;

修改 httpd.conf 配置文件

# vi /etc/httpd/conf/httpd.conf
找到 cgi-bin,如图

将 AllowOverride None

修改为

AllowOverride AuthConfig

然后我们在/var/www/cgi-bin/下建立.htaccess 文件

# vi /var/www/cgi-bin/.htaccess
内容如下

AuthName “DHCP Status Access”
AuthType Basic
AuthUserFile /var/www/cgi-bin/.htpasswd
require valid-user

保存,然后执行

htpasswd -bc /var/www/cgi-bin/.htpasswd admin XXXX

其中 XXXX 表示密码,admin 表示管理用户

最后我们重启 httpd 服务

#service httpd restart

如果成功我们访问时,会看到如图验证页面。

ps:

1.dhcpstatus 可以方便的监控 DHCP 服务器,为大家带来了方便,本人也是根据说明自行设置配置,难免有错,望大家指正。

2.#$servers                    //子网注释名 $注释符号不可少