鳥哥的 Linux ADSL 私房菜


簡易 DHCP 伺服器設定
本文已不再維護,更新文章請參考此處
最近更新日期:2003/03/15
 
如果您在工作單位使用的是筆記型電腦,而且常常要帶著您的筆記型電腦到處跑,那麼由前幾章的『連上 Internet 』設定當中,會發現,哇!我的網路卡參數要常常修改啊!而且,每到一個新的地方,就得問清楚該地的 Server 提供的網路參數才行!真是麻煩∼∼這個時候,動態主機設定協定 (DHCP) 可就大大的派上用場啦!DHCP 這個伺服器可以自動的分配 IP 與相關的網路參數給 Client 端,來提供 Client 端自動以主機提供的參數來設定他們的網路,如此一來,使用者只要將自己的 Notebook 設定好經由 DHCP 協定來取得網路參數後,一插上網路線,呵呵!馬上就可以享受 Internet 的服務啦!很方便吧!所以得來瞧一瞧這個好用的協定喔!
 
原理
  :什麼是 DHCP
  :DHCP 的運作方式
  :什麼時候需要 DHCP
套件安裝
設定 DHCP Server
  :DHCP 套件結構
  :主機的規劃技巧
  :設定流程
設定 DHCP Client
除錯與檢視租約檔案
重點回顧
參考資源
本章習題練習

原理:
套件安裝:
在 Linux 上面 DHCP 套件的安裝也是很簡單的,不需要以 Tarball 來安裝啦!直接拿出您的原版光碟, mount 他,並且找到 dhcp 字樣的套件,使用 RPM 安裝好就好了!以 mandrake 9.0 及 Red Hat 9 為例的話,您需要的 DHCP 套件為:
 
# 在 Mandrake 9.0 當中:
[root@test root]# rpm -qa | grep dhcp
dhcp-server-3.0-1rc9.2mdk
dhcp-common-3.0-1rc9.2mdk
dhcp-client-3.0-1rc9.2mdk
 
# 在 Red Hat 9 當中:
[root@test root]# rpm -qa | grep dhcp
dhcp-3.0pl1-23
dhcp-devel-3.0pl1-23
 
看到了吧!我們需要的套件在不同的 Linux 版本上面會有些許的差異喔!如果是 Mandrake 系列的話,DHCP 套件檔案總數會有三個囉!如果沒有安裝的話,請拿出您的原板光碟(不論是那個 Linux distribution ,應該都是這三個套件名稱啦!只是後面的版本可能不一樣就是了!但是,需要注意的是,在 Red Hat 上面,這三個套件被整合成為一個,亦即是 dhcp-xxxx.rpm 的檔案就是了!),先掛載上去,然後就以 rpm 給他安裝啦!什麼?不知道如何搞定 RPM ?唉啊!又得拿出『鳥哥的 Linux 私房菜 -- 基礎學習篇』好好的 K 一 K 『 RPM 與 Tarball 的使用』。另外,如果在系統當中沒有找到 dhcp 套件的話,還可以使用前面 網路升級套件 章節提到的 apt-get 或者是 urpmi 都是很好的安裝方式吶! ^_^

設定 DHCP Server:
設定 DHCP Client
DHCP 的 Client 端,可以是 Windows 也可以是 Linux 呢!由於我的領域內剛好有兩部 Client 端的電腦,一部為 Linux ( Red Hat 7.3 ) 另一部為 Windows 2000 ,這裡就提一下,分別是怎樣設定的呢?

除錯與檢視租約檔案:
接著下來,我們就要努力的來除蟲了!除蟲的第一步,就是察看登錄檔啦!最常發生的錯誤其實大概就是:
  1. 寫錯字:不要笑!真的很容易寫錯字的!這很正常!所以大家要多多的去檢查一下:
  2. 沒有加上『 ;』符號號:是的,這也是最常發生的錯誤啦!
  3. 新版 DHCP 新增的功能限制:有時後也會有這樣的訊息出現呢!
例如底下就是錯誤訊息的一般顯示狀態:
 
[root@test root]# vi /var/log/messages
Nov 23 23:32:25 vbird dhcpd: /etc/dhcpd.conf line 6: semicolon expected.
Nov 23 23:32:25 vbird dhcpd: option
Nov 23 23:32:25 vbird dhcpd: ^
Nov 23 23:32:25 vbird dhcpd: Configuration file errors encountered -- exiting
Nov 23 23:32:25 vbird dhcpd:
# 這一個例子告訴您,在第六行有錯誤!什麼錯誤?呵呵!/etc/dhcpd.conf 中仔細檢查囉!

Nov 23 23:34:12 vbird dhcpd: ** You must add a ddns-update-style statement to /etc/dhcpd.conf.
Nov 23 23:34:12 vbird dhcpd:    To get the same behaviour as in 3.0b2pl11 and previous
Nov 23 23:34:12 vbird dhcpd:    versions, add a line that says "ddns-update-style ad-hoc;"
Nov 23 23:34:12 vbird dhcpd:    Please read the dhcpd.conf manual page for more information. **
Nov 23 23:34:12 vbird dhcpd:
# 這個例子則在告訴您,您必須要新增一行字喔!不然不給您啟動! ^_^

 
這樣就能夠檢驗成功了!修改上面是很容易的啦!
再來要討論的則是那個租約檔案的內容問題!去看一下 /var/lib/dhcp/dhcpd.lease 的內容吧!
 
[root@test root]# vi /var/lib/dhcp/dhcpd.lease
lease 192.168.1.100 {
  starts 6 2002/11/23 16:15:22;
  ends 5 2002/11/29 16:15:22;
  tstp 5 2002/11/29 16:15:22;
  binding state active;
  next binding state free;
  hardware ethernet 00:90:cc:08:49:13;
  uid "\001\000\220\314\010I\023";
}
lease 192.168.1.99 {
  starts 6 2002/11/23 16:33:16;
  ends 2 2002/11/26 16:33:16;
  binding state active;
  next binding state free;
  hardware ethernet 00:40:95:30:43:b4;
  uid "\001\000@\2250C\264";
  client-hostname "tools";
}
lease 192.168.1.99 {
  starts 6 2002/11/23 16:33:21;
  ends 2 2002/11/26 16:33:21;
  binding state active;
  next binding state free;
  hardware ethernet 00:40:95:30:43:b4;
  uid "\001\000@\2250C\264";
  client-hostname "tools";
}
 
看到了吧!這個就是租約檔案的內容啦!詳細的記載何時申請的租約,以及期限在哪兒!嗯!這樣就完成記錄囉!

重點回顧
參考資源:
本章習題練習 ( 要看答案請將滑鼠移動到『答:』底下的空白處,按下左鍵圈選空白處即可察看 )
簡易 DHCP 伺服器設定

2002/11/23:第一次完成
2003/03/15:加入相關重點回顧、與練習題
2003/09/10:修改版面去!