dhcp - 架设DHCP Server
				
				
					
					架设DHCP Server
2004-04-23 15:18 pm来自:Linux文档
现载:Www.8s8s.coM
地址:无名
# 本讲义仅供教育单位参考. 
# 本讲义主要供台南县各中小学校网管人员参考备查. 
# 作者保有一切形式的着作权. 
# 欲作其它用途者, 需经作者授权同意. 
# 未经作者授权同意之前, 请勿转载刊登. 
架设 DHCP Server  
前言: 
DHCP 是 Dynamic Host Configuration Protocol 的简称, 主要用来简化网管在: 工作站/主机网路组态设定方面的 "烦覆" 问题, 俗称: "动态分配 IP". 
相对於动态分配的机制, 而使用人工手动的方式, 一台一台去设定, 则称为静态设置. 
静态设置是相当没有效率的.  
试想: 如果一个网段中, 有几百部工作站, 用人工手动方式静态设置, 不累死才怪, 况且, 将来, 若欲更动网路组态, 也极不方便! 
因此之故, 通常在网管工作中, DHCP Server 是一项十分重要的架设服务.  
以往, 学校的 DHCP Server 大多架在 NT/W2K 上, 但效能及稳定性不是很好, 
因此, 以下介绍 DHCP Server 在 RedHat Linux 上的架设.  
本文不讲太多理论, 以容易架起为原则. 
所需套件:  
dhcp-2.0-5.i386.rpm (RedHat 6.2) 
dhcp-2.0-12.i186.rpm (RedHat 7.0) 
dhcp-2.0-12.i386.rpm (CLE 1.0) 
dhcp-2.0p15-4.i386.rpm(RedHat 7.1) 
请根据您的 Linux 版本来挑选 dhcp Server 的套件吧. 
架设: 
在 RedHat Linux 上, 架设 DHCP Server 是非常简单的! 
1. 安装: 
(a) rpm -ivh dhcp-2.0-5.i386.rpm 
(b) 之後, 查看一下, 到底这个套件在主机中安置了那些档案? 
rpm -ql dhcp | 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 , 它可用来控制 dhcp server 的行为, 如: 
启动: /etc/rc.d/init.d/dhcpd start 
停止: /etc/rc.d/init.d/dhcpd stop 
重新启动: /etc/rc.d/init.d/dhcpd restart 
观察运作状况: /etc/rc.d/init.d/dhcpd status 
另外一个是, /usr/doc/dhcp-2.0/dhcpd.conf.sample 
(RedHat 7.0 在 /usr/share/doc/dhcp-2.0 中) 
顾名思义, 这是一个 dhcp server 的设定档本, 等一下我们要将它 copy 到 /etc 下, 并且命名为 dhcpd.conf. 
(c) cp /usr/doc/dhcp-2.0/dhcpd.conf.sample /etc/dhcpd.conf 
2. 设定: 
接着, 便可开始针对 dhcp server 的设定档 /etc/dhcpd.conf 来做设定的工作. 
以下是该档的原始内容: 
subnet 192.168.0.0 netmask 255.255.255.0 { 
# --- default gateway 
option routers 192.168.0.1; 
option subnet-mask 255.255.255.0; 
option nis-domain "domain.org"; 
option domain-name "domain.org"; 
option domain-name-servers 192.168.1.1; 
option time-offset -5; # Eastern Standard Time 
# option ntp-servers 192.168.1.1; 
# option netbios-name-servers 192.168.1.1; 
# --- Selects point-to-point node (default is hybrid). Don't change this unless 
# -- you understand Netbios very well 
# option netbios-node-type 2; 
range dynamic-bootp 192.168.0.128 192.168.0.255; 
default-lease-time 21600; 
max-lease-time 43200; 
# we want the nameserver to appear at a fixed address 
host ns { 
next-server marvin.redhat.com; 
hardware ethernet 12:34:56:78:AB:CD; 
fixed-address 207.175.42.254; 
} 
} 
请将它修改成: (以昭明国中为例, 该校为 1/2 C 前半) 
subnet 163.26.167.0 netmask 255.255.255.128 { 
# --- default gateway 
# 路由器 IP 
option routers 163.26.197.126; 
# 网路遮罩 
option subnet-mask 255.255.255.128; 
# Domain  
option domain-name "jmjh.tnc.edu.tw"; 
# 指定要分派那几台 DNS Server 来提供服务? 
option domain-name-servers 163.26.167.1, 163.26.200.1, 168.95.1.1; 
option time-offset -5; # Eastern Standard Time 
# 动态分配 IP 围 
range dynamic-bootp 163.26.167.50 163.26.167.100; 
# IP 租约时间 
default-lease-time 21600; 
max-lease-time 43200; 
# 将贵校的 DNS 主机设定在固定 IP 
# we want the nameserver to appear at a fixed address 
host ns { 
next-server dns.jmjh.tnc.edu.tw; 
hardware ethernet 12:34:56:78:AB:CD; 
fixed-address 163.26.167.1; 
} 
} 
上面的设定中, 请您依贵校组态, 自行修改之.  
要注意的是: 
(a) host ns {  
next-server dns.jmjh.tnc.edu.tw;  
hardware ethernet 12:34:56:78:AB:CD; ---> 这个是 DNS 主机网路卡的编号(6 bytes), 请用 ifconfig 来查询, 如下所示: 
fixed-address 163.26.167.1;  
} 
ifconfig 得: 
eth0      Link encap:Ethernet  HWaddr 48:54:E8:26:CC:C9 
          inet addr:163.26.167.1  Bcast:163.26.167.127  Mask:255.255.255.128 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
          RX packets:762193 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:555401 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:100 
          Interrupt:11 Base address:0x8000 
取 HWaddr 48:54:E8:26:CC:C9 的 48:54:E8:26:CC:C9  
填入上面的 hardware ethernet 设定中即可.  
特别注意: 贵校的网卡编号(每张卡全球唯一)一定不会和此本一样, 请勿照抄此处的设定值哟!  
(b) 这台 dhcp server 可以和原有的 NT/W2K 上的 dhcp server 共存, 但请注意, IP 分配段最好要错开. 
那麽, 到底工作站会向那一台 dhcp server 取得动态分配呢?  
很简单, 当工作站发出要求(request)的讯息时, 谁先抢到, 就由谁先提供. 
3. 执行: 
/etc/rc.d/init.d/dhcpd start 
第一次执行时, 不会成功,  
若是 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/dhcpd start 
恭喜您! 贵校已拥有一个非常稳定的 DHCP Server 了! 
注意事项: 
若您有架设 Linux 防火墙, 想将 DHCP Server 由某一张网卡分配出去(一张网卡代表一个网段围),  
例如: 想由第二张网路卡 eth1 介面分配出去, 只要修改 /etc/rc.d/init.d/dhcpd 即可.  
如下所示: 
将 start daemons 的地方 
由: 
daemon /usr/sbin/dhcpd  
改成: 
daemon /usr/sbin/dhcpd eth1  
结言: 
DHCP Server 是网管工作中, 非常重要的利器, 架设二台以上备援, 也是明智的作法. 
而且, 从此, 您可以不必再倚靠 NT/W2K 这种效能差又不稳定(本益比实在太低了)的系统了.  
(不必受限於某一家封闭型的公司, 又不必花大钱, 才是中小学校网路建置, 最佳的本益比选择!)  
  
OLS3 写重感冒中... 04/28/2001 
:  
我这一生中, 只有在生病和喝醉酒时, 才会比较好命一点, 可以早早睡, 且睡到自然醒. ;-)