歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

Linux VS NT4 DHCP大比拼

BOOTP協議演化而來,它們同屬於TCP/IP協議族,是目前以太網上使用較多的自動進行客戶機TCP/IP配置的協議。作為被廣泛使用的網絡操作系統,NT Server 4.0和Linux都提供了對DHCP的支持,本文就以NT Server 4.0自帶的DHCP服務器和Linux下最常見的dhcpd 2.0為例來分析兩種系統下DHCP的使用和區別。     一、DHCP協議的工作原理       每個基於TCP/IP協議的網絡主機(Host)都需要一個唯一確定的32位IP地址來與網絡通信,如果每台主機的IP地址都用手工設定的話,工作量將是不可想象的,能不能讓主機在啟動時就被自動配置IP地址從而正常工作呢?這正是DHCP協議設計的初衷。一台配置了DHCP的主機啟動時會強制發送一個有限地址廣播(32位全為1的IP地址即255.255.255.255被稱為有限廣播地址,對此地址的廣播稱為有限地址廣播或本地網絡廣播)。當本地網絡中的DHCP服務器收到廣播後,會根據收到的物理地址(Physical Address)在服務器上查找相應配置,並從劃定的IP池中發送某個IP地址及附加選項(如租用到期時間等)給客戶機,由於使用廣播,沒有中轉的DHCP顯然不能跨越子網,而且有可能一個客戶機的信息被幾個服務器響應,所以客戶機總是回答最先收到的DHCP響應,收到響應後客戶機還要發送一條注冊消息,以告訴服務器該IP已被租用,以防止IP地址沖突。整個注冊過程實際上是一套相當復雜的程序。雙方要進行多次信息交換,才能最終注冊成功。     二、NT:圖形化的DHCP管理       NT一向以良好的操作界面著稱,DHCP Server也不例外,通過圖形化的DHCP管理器,可以直觀地獲得目前的DHCP客戶機IP使用狀況,可以方便地對整個服務項目及客戶機配置進行修改。NT的DHCP服務器支持相當多的DHCP選項,但是Windows客戶機(包括NT自身)僅支持IP地址、子網掩碼、默認網關、DNS服務器名、域名、WINS服務器名、WINS節點類型、租用期等較少的選項,不過這已涵蓋了局域網中的絕大部分配置。       NT DHCP服務器通過定義一個或多個IP地址范圍來為客戶機提供可用的IP、子網掩碼、默認網關,但在一個子網內只能有一個IP地址范圍。然後,可以通過DHCP選項為客戶機提供更多的附加設置,NT的附加設置與RFC1541一致,如006是DNS服務器名、044是WINS服務器名等。如果一台DHCP客戶機租用了某個IP地址,那麼附加的選項也將傳遞給它,前提是客戶機沒有對這些附加選項進行配置,因為本機配置總是優先的。       如果需要給某些主機特定的IP而不是自動選擇,可以添加相應的保留位置,並輸入該主機以太網卡的48位物理地址作為唯一標識符,同時也能對那些特定的主機進行特定的配置。每當具有此物理地址的客戶機登錄時,服務器都會給它固定的IP地址和選項。       NT 4.0 DHCP服務器的優點是操作直觀簡單,易於管理,並且一個有趣的地方是Windows客戶機總會優先選擇NT的DHCP服務(和前面的總是回答第一個響應似乎有些矛盾,但事實如此,在一個全部由Windows主機組成的子網裡,如果存在NT DHCP 服務器,那麼Linux DHCP服務器幾乎不會被使用)。它的主要缺陷在於不能有效地控制未知用戶租用IP,也就是說,只要還有未用地址,任何收到的請求都會被接受,而且在需要對較多的客戶機進行單獨配置時仍然會很繁瑣。       三、Linux:給你更多的"自由"       Linux作為自由軟件的代表,其優勢是Windows系列不可比擬的。Dhcpd就是遵守GPL規則的一款DHCP服務器軟件。現在最新版是3.0.1,不過大部分Linux自帶的是2.0及以下版本。本文即以較低的版本為例。       Dhcpd使用非常簡單,在/etc/dhcpd.conf文件中定義好相應的規則和選項,再執行dhcpd eth?就能在相應的網絡接口上工作了,如果只有一個網卡,則可以省略該參數。       前面說過,DHCP必須依靠有限地址廣播,通常Linux並沒有配置這個特殊地址,因此,首先要使用route命令添加一條路由,例如要在eth0上接收廣播,就是route add -host 255.255.255.255 dev eth0(要想啟動時系統自動添加該路由,請將此命令加入/etc/rc.d/rc.local文件末尾)。Dhcpd的配置文件dhcpd.conf不像NT使用標准編號規則,而是使用類似於C語言的定義方法,語句都以分號結尾,以下舉例說明:       定義一個從192.168.0.2到192.168.0.254的IP地址范圍:       subnet 192.168.0.0 netmask 255.255.255.0     {     range 192.168.0.2 192.168.0.254;     }       指定一個客戶機使用特定的IP地址:       host mycomputer1     {     hardware ethernet 00:b0:d0:78:0b:84;     fixed-address 192.168.0.2;     }       默認租用期限(秒):       default-lease-time 2592000;       最大租用期限(dhcpd並沒指出-1可用作特殊的最大期限,但是Windows客戶機能使用這個期限,效果和NT DHCP服務器的"-1--沒有期限"一樣):       max-lease-time -1;       其他選項大部分都以option開頭,如指定默認網關是option routers 192.168.0.254,還有域名服務器名稱(domain-name-servers)、域名(domain-name)、子網掩碼(subnet-mask)、廣播地址(broadcast-address)、WINS服務器地址(netbios-name-servers)等,要特別指出的是,它可以指定對未知用戶的處理規則,即是否允許未知用戶獲得合法IP,在subnet段中加入deny unknown-clients;就會禁止未知用戶獲取此網段內合法的IP,這對需要嚴格控制IP地址使用的情況非常有用,這也是與NT DHCP服務相比最大的優勢。       NT的圖形化界面是出了名的,但同時也屏蔽了系統的細節。如果出現任何錯誤,只能依賴NT自身的恢復能力,對於問題的解決,我們其實無能為力。因此,NT的DHCP服務推薦給已習慣使用Windows系列的網管,不需要知道什麼底層操作也能很快配置和使用這項服務。       Linux下的DHCP服務(及其他服務)則以直接、高效著稱,可以最大限度利用現有的資源,而且,這些服務提供的都是最基本的網絡信息,一旦出現問題,通過檢查Log就能一針見血地發現問題的所在,而且故障的恢復也很方便。   如果你希望更多地與網絡"交互",筆者推薦Linux。     






Copyright © Linux教程網 All Rights Reserved