Linux應用:DHCP服務器的安裝和故障排除

DHCP服務器的工作原理

本章要點

DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)服務器的工作原理。

安裝DHCP服務器。

DHCP服務器的故障排除。

DHCP用於爲計算機自動提供IP地址、子網掩碼和路由信息。網絡管理員通常會分配某個範圍的IP地址來分發給局域網上的客戶機,當設備接入這個局域網時,它們會向DHCP服務器請求一個IP地址。然後DHCP服務器爲每個請求的設備分配一個地址,直到分配該範圍內的所有IP地址爲止。已經分配的IP地址必須定時地延長借用期,這個延期的過程稱做“leasing”,確保當客戶機設備在正常地釋放IP地址之前突然從網絡斷開時被分配的地址可以歸還給服務器。本章以RHEL 5.0爲例介紹如何建立一個完整和安全的DHCP服務器。

8.1 DHCP服務器的工作原理

8.1.1 DHCP簡介

DHCP的前身是BOOTP,它工作在OSI的應用層,是一種幫助計算機從指定的DHCP服務器獲取配置信息的自舉協議。DHCP使用客戶端/服務器模式,請求配置信息的計算機叫做“DHCP客戶端”,而提供信息的叫做“DHCP服務器”。DHCP爲客戶端分配地址的方法有3種,即手工配置、自動配置和動態配置。DHCP最重要的功能就是動態分配,除了IP地址,DHCP還爲客戶端提供其他的配置信息,如子網掩碼,從而使得客戶端無須用戶動手即可自動配置並連接網絡。

8.1.2 爲什麼使用DHCP

DHCP在快速發送客戶網絡配置方面很有用,當配置客戶端系統時,若管理員選擇DHCP,則不必輸入IP地址、子網掩碼、網關或DNS服務器,客戶端從DHCP服務器中檢索這些信息。DHCP在網絡管理員想改變大量系統的IP地址時也有用,與其重新配置所有系統,不如編輯服務器中的一個用於新IP地址集合的DHCP配置文件。如果某機構的DNS服務器改變,這種改變只須在DHCP服務器中,而不必在DHCP客戶端上進行。一旦客戶端的網絡被重新啓動(或客戶端重新引導系統),改變就會生效。除此之外,如果便攜電腦或任何類型的可移動計算機被配置使用DHCP,只要每個辦公室都有一個允許其聯網的DHCP服務器,它就可以不必重新配置而在辦公室間自由移動。

8.1.3 DHCP的工作流程

1.發現階段

即DHCP客戶端查找DHCP服務器的階段。客戶機以廣播方式(因爲DHCP服務器的IP地址對於客戶端來說是未知的)發送DHCP discover信息來查找DHCP服務器,即向地址255.255.255.255發送特定的廣播信息。網絡上每一臺安裝了TCP/IP的主機都會接收到這種廣播信息,但只有DHCP服務器纔會做出響應。

2.提供階段

即DHCP服務器提供IP地址的階段,在網絡中接收到DHCP discover信息的DHCP服務器都會做出響應。它從尚未出租的IP地址中挑選一個分配給DHCP客戶端,向其發送一個包含出租的IP地址和其他設置的DHCP offer信息。

3.選擇階段

即DHCP客戶端選擇某臺DHCP服務器提供的IP地址的階段。如果有多臺DHCP服務器向DHCP客戶端發送DHCP offer信息,則DHCP客戶端只接受第1個收到的DHCP offer信息。然後它就以廣播方式回答一個DHCP request信息,該信息中包含向它所選定的DHCP服務器請求IP地址的內容。之所以要以廣播方式回答,是爲了通知所有DHCP服務器,它將選擇某臺DHCP服務器所提供的IP地址。

4.確認階段

即DHCP服務器確認所提供的IP地址的階段。當DHCP服務器收到DHCP客戶端回答的DHCP request信息之後,它向DHCP客戶端發送一個包含其所提供的IP地址和其他設置的DHCP ACK信息,告訴DHCP客戶端可以使用該IP地址,然後DHCP客戶端便將其TCP/IP與網卡綁定。另外,除DHCP客戶端選中的服務器外,其他的DHCP服務器都將收回曾提供的IP地址。

5.重新登錄

以後DHCP客戶端每次重新登錄網絡時,不需要發送DHCP discover信息,而是直接發送包含前一次所分配的IP地址的DHCP request信息。當DHCP服務器收到這一信息後,它會嘗試讓DHCP客戶端繼續使用原來的IP地址,並回答一個DHCP ACK信息。如果此IP地址已無法再分配給原來的DHCP客戶端使用(比如此IP地址已分配給其他DHCP客戶端使用),則DHCP服務器給DHCP客戶端回答一個DHCP NACK信息。當原來的DHCP客戶端收到此信息後,必須重新發送DHCP discover信息來請求新的IP地址。

6.更新租約

DHCP服務器向DHCP客戶端出租的IP地址一般都有一個租借期限,期滿後DHCP服務器便會收回該IP地址。如果DHCP客戶端要延長其IP租約,則必須更新其IP租約。DHCP客戶端啓動時和IP租約期限過一半時,DHCP客戶端都會自動向DHCP服務器發送更新其IP租約的信息。

DHCP的設計目標

8.1.4 DHCP的設計目標

DHCP的設計目標如下。

(1)DHCP應該是一種機制而不是策略,它必須允許本地系統管理員控制配置參數,本地系統管理員應該能夠對所希望管理的資源進行有效的管理。

(2)客戶端不需要手工配置,而應該在不參與的情況下發現合適於本地機的配置參數,並利用這些參數加以配置。

(3)不需要爲單個客戶端配置網絡,在通常情況下,網絡管理員沒有必要輸入任何預先設計好的用戶配置參數。

(4)DHCP不需要在每個子網上配置一臺服務器,出於經濟原因,DHCP服務器必須可以和路由器或BOOTP轉發代理一起工作。

(5)DHCP客戶端必須能對多個DHCP服務器提供的服務做出響應,出於網絡穩定與安全的考慮,有時需要在網絡中添加多臺DHCP服務器。

(6)DHCP必須靜態配置,而且必須用現存的網絡協議實現。

(7)DHCP必須能夠和BOOTP轉發代理互操作。

(8)DHCP必須能夠爲現有的BOOTP客戶端提供服務。

(9)不允許有多個客戶端同時使用一個網絡地址。

(10)在DHCP客戶端重新啓動後仍然能夠保留其原先的配置參數,如果可能,客戶端應該被指定爲相同的配置參數。

(11)在DHCP服務器重新啓動後仍然能夠保留客戶端的配置參數,如果可能,即使DHCP機制重新啓動,也應該能夠爲客戶端分配原有的配置參數。

(12)能夠爲新加入的客戶端自動提供配置參數。

(13)支持對特定客戶端永久固定分配網絡地址。

上面(9)~(13)的設計目標是對於網絡層參數的設計而言的,在網絡層參數上,DHCP必須做到這幾點。

8.2 安裝DHCP服務器

8.2.1 DHCP配置文件

可以使用RHEL 5.0自身攜帶的RPM包安裝,安裝結束後DHCP端口監督程序dhcpd配置文件是/etc目錄中的名爲dhcpd.conf的文件。下面手工建立/etc/dhcpd.conf文件,該文件通常包括3個部分,即parameters參數、declarations聲明和option選項。

1.DHCP配置文件中的parameters

parameters表明如何執行任務,以及是否要執行任務或將哪些網絡配置選項發送給客戶端,主要參數如表8-1所示。

表8-1 DHCP配置文件中的主要參數

參 數解 釋

ddns-update-style配置DHCP-DNS互動更新模式

default-lease-time指定默認租賃時間的長度,單位是秒

max-lease-time指定最大租賃時間長度,單位是秒

hardware指定網卡接口類型和MAC地址

server-name通知DHCP客戶端服務器名稱

get-lease-hostnames flag檢查客戶端使用的IP地址

fixed-address ip分配給客戶端一個固定的地址

authritative拒絕不正確的IP地址的要求

2.DHCP配置文件中的declarations

declarations用來描述網絡佈局及提供客戶的IP地址等,主要聲明如表8-2所示。 聲 明解 釋

shared-network用來告知是否一些子網絡共享相同網絡

subnet描述一個IP地址是否屬於該子網

range起始IP終止IP提供動態分配IP的範圍

host主機名稱參考特別的主機

group爲一組參數提供聲明

續表

聲 明解 釋

allow unknown-clients﹔deny unknown-client是否動態分配IP給未知的使用者

allow bootp;deny bootp是否響應激活查詢

allow booting﹔deny booting是否響應使用者查詢

filename開始啓動文件的名稱,應用於無盤工作站

next-server設置服務器從引導文件中裝入主機名,應用於無盤工作站
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章