歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

架設DHCPServer

#版權宣告:CopyrightOLS32001Allrightsreserved. #作者:OLS3(臥龍小三) #本講義僅供教育單位參考. #本講義主要供台南縣各中小學校網管人員參考備查. #作者保有一切形式的著作權. #欲作其它用途者,需經作者授權同意. #未經作者授權同意之前,請勿轉載刊登. 架 # 版權宣告: Copyright OLS3 2001 All rights reserved.
# 作者: OLS3 (臥龍小三)
# 本講義僅供教育單位參考.
# 本講義主要供台南縣各中小學校網管人員參考備查.
# 作者保有一切形式的著作權.
# 欲作其它用途者, 需經作者授權同意.
# 未經作者授權同意之前, 請勿轉載刊登.

架設 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



我這一生中, 只有在生病和喝醉酒時, 才會比較好命一點, 可以早早睡, 且睡到自然醒. ;-)

Copyright © Linux教程網 All Rights Reserved