当前位置:网络资源中心文章中心电脑知识电脑入门Linux教程 → 文章内容

架设 DHCP Server (1)

减小字体 增大字体 作者:Qesy  来源:池州电脑论坛  发布时间:2008-5-16 17:31:53
#版权宣告:CopyrightOLS32001Allrightsreserved.
#作者:OLS3(卧龙小三)
#本讲义仅供教育单位参考.
#本讲义主要供台南县各中小学校网管人员参考备查.
#作者保有一切形式的着作权.
#欲作其它用途者,需经作者授权同意.
#未经作者授权同意之前,请勿转载刊登.

架设DHCPServer

前言:

DHCP是DynamicHostConfigurationProtocol的简称,主要用来简化网管在:工作站/主机网路组态设定方面的"烦覆"问题,俗称:"动态分配IP".

相对於动态分配的机制,而使用人工手动的方式,一台一台去设定,则称为静态设置.

静态设置是相当没有效率的.

试想:假如一个网段中,有几百部工作站,用人工手动方式静态设置,不累死才怪,况且,将来,若欲更动网路组态,也极不方便!

因此之故,通常在网管工作中,DHCPServer是一项十分重要的架设服务.

以往,学校的DHCPServer大多架在NT/W2K上,但效能及稳定性不是很好,

因此,以下介绍DHCPServer在RedHatLinux上的架设.

本文不讲太多理论,以轻易架起为原则.


所需套件:

dhcp-2.0-5.i386.rpm(RedHat6.2)

dhcp-2.0-12.i186.rpm(RedHat7.0)

dhcp-2.0-12.i386.rpm(CLE1.0)

dhcp-2.0p15-4.i386.rpm(RedHat7.1)

请根据您的Linux版本来挑选dhcpServer的套件吧.


架设:

在RedHatLinux上,架设DHCPServer是非常简单的!

1.安装:

(a)rpm-ivhdhcp-2.0-5.i386.rpm

(b)之後,查看一下,到底这个套件在主机中安置了那些档案?

rpm-qldhcp|more

会得到以下列表:

/etc/rc.d/init.d/dhcpd
/usr/doc/dhcp-2.0
/usr/doc/dhcp-2.0/CHANGES
/usr/doc/dhcp-2.0/README
/usr/doc/dhcp-2.0/RELNOTES
/usr/doc/dhcp-2.0/dhcpd.conf.sample
/usr/man/man5/dhcp-options.5.gz
/usr/man/man5/dhcpd.conf.5.gz
/usr/man/man5/dhcpd.leases.5.gz
/usr/man/man8/dhcpd.8.gz
/usr/man/man8/dhcrelay.8.gz
/usr/sbin/dhcpd
/usr/sbin/dhcrelay
/var/state/dhcp

其中,比较重要的有二个:

其一是,/etc/rc.d/init.d/dhcpd,它可用来控制dhcpserver的行为,如:

启动:/etc/rc.d/init.d/dhcpdstart
停止:/etc/rc.d/init.d/dhcpdstop
重新启动:/etc/rc.d/init.d/dhcpdrestart
观察运作状况:/etc/rc.d/init.d/dhcpdstatus

另外一个是,/usr/doc/dhcp-2.0/dhcpd.conf.sample
(RedHat7.0在/usr/share/doc/dhcp-2.0中)

顾名思义,这是一个dhcpserver的设定档本,等一下我们要将它copy到/etc下,并且命名为dhcpd.conf.

(c)cp/usr/doc/dhcp-2.0/dhcpd.conf.sample/etc/dhcpd.conf

2.设定:

接着,便可开始针对dhcpserver的设定档/etc/dhcpd.conf来做设定的工作.

以下是该档的原始内容:



subnet192.168.0.0netmask255.255.255.0{

#---defaultgateway

optionrouters 192.168.0.1;

optionsubnet-mask 255.255.255.0;



optionnis-domain "domain.org";

optiondomain-name "domain.org";

optiondomain-name-servers 192.168.1.1;



optiontime-offset -5; #EasternStandardTime

# optionntp-servers 192.168.1.1;

# optionnetbios-name-servers 192.168.1.1;

#---Selectspoint-to-pointnode(defaultishybrid).Don'tchangethisunless

#--youunderstandNetbiosverywell

# optionnetbios-node-type2;



rangedynamic-bootp192.168.0.128192.168.0.255;

default-lease-time21600;

max-lease-time43200;



#wewantthenameservertoappearatafixedaddress

hostns{

next-servermarvin.redhat.com;

hardwareethernet12:34:56:78:AB:CD;

fixed-address207.175.42.254;

}

}




请将它修改成:(以昭明国中为例,该校为1/2C前半)



subnet163.26.167.0netmask255.255.255.128{

#---defaultgateway

#路由器IP

optionrouters 163.26.197.126;

#网路遮罩

optionsubnet-mask 255.255.255.128;

#Domain

optiondomain-name "jmjh.tnc.edu.tw";

#指定要分派那几台DNSServer来提供服务?

optiondomain-name-servers 163.26.167.1,163.26.200.1,168.95.1.1;



optiontime-offset -5; #EasternStandardTime



#动态分配IP围

rangedynamic-bootp163.26.167.50163.26.167.100;



#IP租约时间

default-lease-time21600;

max-lease-time43200;



#将贵校的DNS主机设定在固定IP

#wewantthenameservertoappearatafixedaddress

hostns{

next-serverdns.jmjh.tnc.edu.tw;

hardwareethernet12:34:56:78:AB:CD;

fixed-address163.26.167.1;

}

}



上面的设定中,请您依贵校组态,自行修改之.

要注重的是:

(a)hostns{
next-serverdns.jmjh.tnc.edu.tw;
hardwareethernet12:34:56:78:AB:CD;---%26gt;这个是DNS主机网路卡的编号(6bytes),请用ifconfig来查询,如下所示:
fixed-address163.26.167.1;
}

ifconfig得:



eth0Linkencap:EthernetHWaddr48:54:E8:26:CC:C9

inetaddr:163.26.167.1Bcast:163.26.167.127Mask:255.255.255.128

UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1

RXpackets:762193errors:0dropped:0overruns:0frame:0

TXpackets:555401errors:0dropped:0overruns:0carrier:0

collisions:0txqueuelen:100

Interrupt:11Baseaddress:0x8000




取HWaddr48:54:E8:26:CC:C9的48:54:E8:26:CC:C9

填入上面的hardwareethernet设定中即可.

非凡注重:贵校的网卡编号(每张卡全球唯一)一定不会和此本一样,请勿照抄此处的设定值哟!

(b)这台dhcpserver可以和原有的NT/W2K上的dhcpserver共存,但请注重,IP分配段最好要错开.

那麽,到底工作站会向那一台dhcpserver取得动态分配呢?

很简单,当工作站发出要求(request)的讯息时,谁先抢到,就由谁先提供.

3.执行:

/etc/rc.d/init.d/dhcpdstart

第一次执行时,不会成功,

若是dhcp-2.0-5版本,它会出现failed失败的红色字串,并警告您:

/var/state/dhcp/dhcpd.leases这个档案不存,因此,您必须手动开启一个新档:

touch/var/state/dhcp/dhcpd.leases

这个档案的用途是:记录各工作站租赁IP的情形.

若是DHCP-2.0-12以後的版本,则不会出现任何讯息,您会发现它并没有运作起来.

这是因为:此版一旦发现您没有开设此档,便会直接跳出而不执行.

而且此档的位置稍有不同:

它位於/var/lib/dhcp/dhcpd.leases

OK,手动开一下吧?!

touch/var/lib/dhcp/dhcpd.leases

现在可以启动了,并把它设成一开机就自动执行(linuxconf或ntsysv皆可设定之)

/etc/rc.d/init.d/dhcpdstart

恭喜您!贵校已拥有一个非常稳定的DHCPServer了!


注重事项:

若您有架设Linux防火墙,想将DHCPServer由某一张网卡分配出去(一张网卡代表一个网段围),

例如:想由第二张网路卡eth1介面分配出去,只要修改/etc/rc.d/init.d/dhcpd即可.

如下所示:

将startdaemons的地方

由:

daemon/usr/sbin/dhcpd

改成:

daemon/usr/sbin/dhcpdeth1


结言

DHCPServer是网管工作中,非常重要的利器,架设二台以上备援,也是明智的作法.

而且,从此,您可以不必再倚靠NT/W2K这种效能差又不稳定(本益比实在太低了)的系统了.

(不必受限於某一家封闭型的公司,又不必花大钱,才是中小学校网路建置,最佳的本益比选择!)


OLS3写重感冒中...04/28/2001

:

我这一生中,只有在生病和喝醉酒时,才会比较好命一点,可以早早睡,且睡到自然醒.;-)