歡迎您光臨本站 註冊首頁

Linux VS NT4 DHCP大比拼

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
    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。



[火星人 ] Linux VS NT4 DHCP大比拼已經有441次圍觀

http://coctec.com/docs/net/show-post-68475.html