首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP跨平台应用 » [转帖]如何使用Linux建立DHCP服务  


  作者:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

  nqp@nqp.me
  4304410
  www.nqp.me

 

 发表:2004-04-28 17:32:55 阅读 2539 次 回复 0 次 得分0  |   字号 字色
[转帖]如何使用Linux建立DHCP服务
来自:开放系统世界
作者:张文胜
主要内容
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)建立浏览器主页,只要加入如下代码: 

DHCP Subnet Status 

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

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

Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

改为:

Options Indexes FollowSymLinks
AllowOverride AuthConfig
Order allow,deny
Allow from all

*在/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的使用与分配情况。 
 
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.003sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版