前言:
DHCP( Dynamic Host Configuration Protocol )協定是使Client端藉由使用 DHCP,電腦啟動時便會動態並自動地完成 TCP/IP 設定。
Windows系統安裝完畢後,預設即為使用 DHCP 取得TCP/IP 相關設定資訊。藉由 DHCP 伺服器所傳送的資訊,Client端可以取得 IP 位址、子網路遮罩、預設閘道、DNS 伺服器、NetBIOS 節點類型及 WINS 伺服器設定資訊。
more..
TCP/IP教材中,多建議為中到大型的TCP/IP 網路使用動態設定,視情況而定,不過我個人認為,教材建議並非是一定的標準並且應該視為聖旨,例如Cisco建議中小企業的Routing mode是使用RIP,不過如果中小企業只有一、兩顆Router也是用RIP嗎?這時用手動指定的static route反而比較好控管,因為RIP有收斂時間的問題,不過還是比較方便啦,所以說自己看著辦吧 。
但如果您去考CISCO認證,還是請記得回答標準答案 ─ RIP,如果您回答static route可是會被扣分的。
Windows Client端DHCP動作流程:
1. DHCP 用戶端會嘗試尋找 DHCP 伺服器,並從中取得設定。
2. 如果找不到 DHCP 伺服器,DHCP 用戶端會使用從 Microsoft 所保留之類別 B 網路 (169.254.0.0 與子網路遮罩 255.255.0.0) 中選取的位址 ,自動設定其 IP 位址及子網路遮罩。
DHCP 用戶端將使用免費的 ARP 測試位址衝突,以確保所選的 IP 位址,尚未在網路上使用。如果發現衝突,用戶端會再選取其它的 IP 位址試用。對於每個位址衝突,用戶端將重試最多達 10 個位址的自動設定。
3. 一旦 DHCP 用戶端成功地在 169.254.0.0 網路範圍中,選取到了尚未使用的位址,即會使用此位址設定介面。
用戶端在背景中每隔 5 分鐘檢查一次 DHCP 伺服器。若用戶端在稍後找到一台 DHCP 伺服器,其便會放棄自動設定的資訊。然後,DHCP 用戶端使用 DHCP 伺服器提供的位址 (及任何其他提供的 DHCP 選項資訊) 更新 IP 設定。
PS:所以若於Windows中執行winipcfg (Windows 9x)或是於文字指令模式中執行ipconfig (Windows 9X、NT),發現到網路卡的ip位置是169.254.0.x,通常就是網路卡驅動錯誤或是網路實體線路斷線。
PS2:若當部Windows平台的電腦欲作為Server,強烈建議使用Static IP ( 靜態位置 ),直接指定IP位置,尤其是要執行動作的是Windows平台的服務,因為使用動態IP會有意外的狀況發生。
Linux Client端DHCP動作流程:
運作原理部分與Windows的部分一樣,所有運作流程可以參照/etc/init.d或是/sbin/init.d裡面的dhclient,只不過不同的是,Linux裡面,要是無法擷取dhcp server,執行ifconfig檢視狀態的話,會看不到ip address或是顯示其他種位置,依照dhclient的版本不同,會有不同的結果。
又於SuSE Linux 6.4之後( 含6.4 ) 的dhcp client 程式便可直接由dhcp擷取host name,7.3版的dhclient會直接更改/etc/reslove.conf,版本變更之後詳細的動作,可以參照/usr/share/doc/packages/dhclient 目錄裡面的文件說明。
架設DHCP Server (用Linux):
在沒有特殊的要求的狀況下,用Windows NT系統架設DHCP Server實在是很方便,還是一樣,用滑鼠的左右鍵點來點去、再Key一些數值就可以了。雖然Linux的DHCP Server架設上比較麻煩一些,應該說是介面並沒有類似Windows環境一般的輕鬆,但是Linux系統的Server通常都會有比較大的變動、更改空間,可以依照個人的需求、環境的條件而做不同的調整,因為公司內部雖然是用DHCP來發配IP,但是有依照每台電腦的網路卡卡號 ( MAC Address )來發配其IP,當然這樣的功能在Windows的DHCP Server裡面也有,只是這樣的的動作重複做個50次、甚至100次………在Linux上的話就相對的比較簡單了,管理者可以先利用dhcp蒐集卡號,再撰寫一個shell script做一個迴圈的動作,自動的將IP、hostname發配給每一個卡號。所以在我們公司裡面用的DHCP Server是使用Linux來架設。
話不多說,這裡就介紹一下如何設定Linux下的DHCP Server,我們先看到/etc下面dhcp.conf檔案,由於設定項目不像sendmail有一些奇怪的代號,所以每個設定項目應該都是很清楚就能夠了解的。
#DHCP全域設定:
option domain-name-servers 192.168.1.2 , 192.168.1.3;
option time-servers 192.168.1.3;
option routers 192.168.1.254;
option netbios-name-servers 192.168.2.2 , 192.168.1.2;
option domain-name "xxxxx.com.tw";
option subnet-mask 255.255.255.0;
default-lease-time 72000;
max-lease-time 86400;
#DHCP 子區域設定:
subnet 192.168.1.0 netmask 255.255.255.0 {
option ntp-servers 192.168.1.3;
option nis-domain "xxxxx"; (沒有使NIS不需要設定)
option subnet-mask 255.255.255.0;
option nis-servers 192.168.1.4; (沒有使NIS不需要設定)
option domain-name-servers 192.168.1.2 , 192.168.1.3;
option domain-name "xxxxx.com.tw";
option netbios-name-servers 192.168.2.2 , 192.168.1.2;
option routers 192.168.1.254;
range 192.168.1.200 192.168.1.220;
}
#指定電腦IP位置:
host pc-01 { 指定Host name,不過只有Linux有效,而且有些是取DNS反解名稱命名
fixed-address 192.168.1.30; 指定 IP Address
hardware ethernet 00:00:E8:36:43:16; 這個網路卡的MAC Address
}
就變成:這個MAC Address的網路卡發配這個IP以及host name。
但如果您去考CISCO認證,還是請記得回答標準答案 ─ RIP,如果您回答static route可是會被扣分的。
Windows Client端DHCP動作流程:
1. DHCP 用戶端會嘗試尋找 DHCP 伺服器,並從中取得設定。
2. 如果找不到 DHCP 伺服器,DHCP 用戶端會使用從 Microsoft 所保留之類別 B 網路 (169.254.0.0 與子網路遮罩 255.255.0.0) 中選取的位址 ,自動設定其 IP 位址及子網路遮罩。
DHCP 用戶端將使用免費的 ARP 測試位址衝突,以確保所選的 IP 位址,尚未在網路上使用。如果發現衝突,用戶端會再選取其它的 IP 位址試用。對於每個位址衝突,用戶端將重試最多達 10 個位址的自動設定。
3. 一旦 DHCP 用戶端成功地在 169.254.0.0 網路範圍中,選取到了尚未使用的位址,即會使用此位址設定介面。
用戶端在背景中每隔 5 分鐘檢查一次 DHCP 伺服器。若用戶端在稍後找到一台 DHCP 伺服器,其便會放棄自動設定的資訊。然後,DHCP 用戶端使用 DHCP 伺服器提供的位址 (及任何其他提供的 DHCP 選項資訊) 更新 IP 設定。
PS:所以若於Windows中執行winipcfg (Windows 9x)或是於文字指令模式中執行ipconfig (Windows 9X、NT),發現到網路卡的ip位置是169.254.0.x,通常就是網路卡驅動錯誤或是網路實體線路斷線。
PS2:若當部Windows平台的電腦欲作為Server,強烈建議使用Static IP ( 靜態位置 ),直接指定IP位置,尤其是要執行動作的是Windows平台的服務,因為使用動態IP會有意外的狀況發生。
Linux Client端DHCP動作流程:
運作原理部分與Windows的部分一樣,所有運作流程可以參照/etc/init.d或是/sbin/init.d裡面的dhclient,只不過不同的是,Linux裡面,要是無法擷取dhcp server,執行ifconfig檢視狀態的話,會看不到ip address或是顯示其他種位置,依照dhclient的版本不同,會有不同的結果。
又於SuSE Linux 6.4之後( 含6.4 ) 的dhcp client 程式便可直接由dhcp擷取host name,7.3版的dhclient會直接更改/etc/reslove.conf,版本變更之後詳細的動作,可以參照/usr/share/doc/packages/dhclient 目錄裡面的文件說明。
架設DHCP Server (用Linux):
在沒有特殊的要求的狀況下,用Windows NT系統架設DHCP Server實在是很方便,還是一樣,用滑鼠的左右鍵點來點去、再Key一些數值就可以了。雖然Linux的DHCP Server架設上比較麻煩一些,應該說是介面並沒有類似Windows環境一般的輕鬆,但是Linux系統的Server通常都會有比較大的變動、更改空間,可以依照個人的需求、環境的條件而做不同的調整,因為公司內部雖然是用DHCP來發配IP,但是有依照每台電腦的網路卡卡號 ( MAC Address )來發配其IP,當然這樣的功能在Windows的DHCP Server裡面也有,只是這樣的的動作重複做個50次、甚至100次………在Linux上的話就相對的比較簡單了,管理者可以先利用dhcp蒐集卡號,再撰寫一個shell script做一個迴圈的動作,自動的將IP、hostname發配給每一個卡號。所以在我們公司裡面用的DHCP Server是使用Linux來架設。
話不多說,這裡就介紹一下如何設定Linux下的DHCP Server,我們先看到/etc下面dhcp.conf檔案,由於設定項目不像sendmail有一些奇怪的代號,所以每個設定項目應該都是很清楚就能夠了解的。
#DHCP全域設定:
option domain-name-servers 192.168.1.2 , 192.168.1.3;
option time-servers 192.168.1.3;
option routers 192.168.1.254;
option netbios-name-servers 192.168.2.2 , 192.168.1.2;
option domain-name "xxxxx.com.tw";
option subnet-mask 255.255.255.0;
default-lease-time 72000;
max-lease-time 86400;
#DHCP 子區域設定:
subnet 192.168.1.0 netmask 255.255.255.0 {
option ntp-servers 192.168.1.3;
option nis-domain "xxxxx"; (沒有使NIS不需要設定)
option subnet-mask 255.255.255.0;
option nis-servers 192.168.1.4; (沒有使NIS不需要設定)
option domain-name-servers 192.168.1.2 , 192.168.1.3;
option domain-name "xxxxx.com.tw";
option netbios-name-servers 192.168.2.2 , 192.168.1.2;
option routers 192.168.1.254;
range 192.168.1.200 192.168.1.220;
}
#指定電腦IP位置:
host pc-01 { 指定Host name,不過只有Linux有效,而且有些是取DNS反解名稱命名
fixed-address 192.168.1.30; 指定 IP Address
hardware ethernet 00:00:E8:36:43:16; 這個網路卡的MAC Address
}
就變成:這個MAC Address的網路卡發配這個IP以及host name。
Posted by 椰子殼
