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

2020-12-20 站長之家

  DHCP伺服器的工作原理
DHCP簡介

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

為什麼使用DHCP

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

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租約的信息。

#p#分頁標題#e#

  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必須做到這幾點。

安裝DHCP伺服器

DHCP配置文件

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

1.DHCP配置文件中的parameters

parameters表明如何執行任務,以及是否要執行任務或將哪些網絡配置選項發送給客戶端,主要參數如表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位址等,主要聲明

  聲明

聲  明

解  釋

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

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

#p#分頁標題#e#

  DHCP配置文件中的option

option用來配置DHCP可選參數,全部用option關鍵字作為開始,主要選項如表8-3所示。表8-3  DHCP配置文件中option關鍵字的主要選項 選  項
 解  釋

subnet-mask
 為客戶端設定子網掩碼

domain-name
為客戶端指明DNS名字

domain-name-servers
為客戶端指明DNS伺服器的IP位址

host-name
為客戶端指定主機名稱

routers
為客戶端設定默認網關

broadcast-address
為客戶端設定廣播地址

ntp-server
為客戶端設定網絡時間伺服器的IP位址

time-offset
為客戶端設定格林威治時間的偏移時間,單位是秒

  配置實例

在下面的實例中使用一個example.com的虛擬域名,用戶需要修改其中的內容以滿足網絡的需求。/etc/dhcpd.conf文件的內容如下:

# The options outside a subnet directive are global unless

# over-ridden by the same setting inside the subnet directive.

option domain-name-servers 192.0.34.43, 193.0.0.236;

default-lease-time 6000; max-lease-time 7200;# If this DHCP server is the official DHCP server for the local

# network, the authoritative directive should be uncommented.authoritative;

# Use this to send dhcp log messages to a different log file (you also

# have to hack syslog.conf to complete the redirection).log-facility local7;

# Handle client dynamic dns updates

ddns-update-style none;# Example Network 1 ( on eth0 )

subnet 192.168.200.0 netmask 255.255.255.0 {

option domain-name "corp.example.com";

range 192.168.200.100 192.168.200.200;

option routers 192.168.200.254;

}

上面的實例配置文件分為兩個部分,即子網配置信息和全局配置信息。可以有多個子網,這裡為了簡化,只指定了一個子網。

(1)Subnet。

在上面的例子中,一個子網聲明以「subset」關鍵字開始,所以子網信息包括在{}中。{}中的配置信息只對該子網有效,會覆蓋全局配置。

(2)Global。

所有子網以外的配置都是全局配置,如果同一個全局配置沒有被子網配置覆蓋,則其將對所有子網生效。

(3)Configuration Options。

下面是上例中配置指令的解釋說明。

option domain-name-servers 192.0.34.43, 193.0.0.236;

這一行指定客戶端應該使用的DNS伺服器,該選項可以用於全局參數或者子網參數。

default-lease-time 6000; max-lease-time 7200;

這兩行是相關的,default-lease-time指定客戶端需要刷新配置信息的時間間隔(秒),max-lease-time為客戶端用於無法從伺服器獲得任何信息的時間,超過該時間則會丟棄之前從該DHCP伺服器獲得的所有信息,而轉向使用OS的默認設置。

authoritative;

指定當一個客戶端試圖獲得一個不是該DHCP伺服器分配的IP信息,DHCP將發送一個拒絕消息,而不會等待請求超時。當請求被拒絕,客戶端會重新向當前DHCP發送IP請求獲得新地址。

log-facility daemon;

指定DHCP伺服器發送的日誌信息的日誌級別。

ddns-update-style none;

該配置可以指定一個方法,客戶端用該方法來更新IP對應的域名信息,本例中禁用了該特性。

subnet 192.168.200.0 netmask 255.255.255.0 {

option domain-name "corp.example.com";

range 192.168.200.100 192.168.200.200;

option routers 192.168.200.254;

}

上面內容為子網配置,第1行指定該子網地址和掩碼。DHCP伺服器必須擁有該子網的一個IP,domain-name設置該客戶端的域名。DHCP伺服器可以負責整個子網的信息,也可以只負責子網的一段。

option routers配置默認網關IP。

#p#分頁標題#e#

  啟動DHCP伺服器

1.建立客戶端租約文件

運行DHCP伺服器還需要一個名為「dhcpd.leases」的文件,其中保存所有已經分發的IP位址。在Red Hat Linux發行版本中,該文件位於/var/lib/dhcp/目錄中。如果通過RPM安裝ISC DHCP,那麼該目錄應該已經存在。dhcpd.leases的文件格式為:

Leases address {statement}

一個典型的文件內容如下:

lease 192.168.1.255 { #DHCP伺服器分配的IP位址#

  starts 1 2005/05/02 03:02:26;  # lease 開始租約時間#

  ends 1 2005/05/02 09:02:26; # lease 結束租約時間#

  binding state active;

  next binding state free;

  hardware ethernet 00:00:e8:a0:25:86;  #客戶機網卡MAC地址#

  uid "\001\000\000\350\240%\206"; #用來驗證客戶機的UID標誌#

  client-hostname "cjh1";  #客戶機名稱#

}

注意:lease開始租約時間和lease結束租約時間是格林威治標準時間(GMT),不是本地時間。

第1次運行DHCP伺服器時,dhcpd.leases是一個空文件,也不用手工建立。如果不是通過RPM安裝ISC DHCP,或者dhcpd已經安裝,那麼應該試著確定dhcpd將其lease文件寫到何處並確保該文件存在。也可以手工建立一個空文件:

#touch /var/lib/dhcp/dhcpd.leases

2.啟動和檢查DHCP伺服器

使用命令啟動DHCP伺服器:

#service dhcpd start

使用ps命令檢查dhcpd進程:

#ps -ef | grep dhcpd

root  2402 1  0 14:25 ?  00:00:00 /usr/sbin/dhcpd

root  2764  2725  0 14:29 pts/2  00:00:00 grep dhcpd

使用netstat檢查dhcpd運行的埠:

# netstat -nutap | grep dhcpd

  udp 0  0 0.0.0.0:67 0.0.0.0:* 2402/dhcpd

  3.設置DHCP轉發代理

DHCP的轉發代理(dhcrelay)允許把無DHCP伺服器子網內的DHCP和BOOTP請求轉發給其他子網內的一臺或多臺DHCP伺服器。當某個DHCP客戶端請求信息時,DHCP轉發代理把該請求轉發給DHCP轉發代理啟動時所指定的一臺DHCP伺服器。當某臺DHCP伺服器返回一個回應時,該回應被廣播或單播給發送最初請求的網絡。除非使用INTERFACES指令在/etc/sysconfig/dhcrelay文件中指定了接口,否則DHCP轉發代理監聽所有接口上的DHCP請求。要啟動DHCP轉發代理,使用命令:

service dhcrelay start

4.從指定埠啟動DHCP伺服器

如果系統連接不止一個網絡接口,但是只想讓DHCP伺服器啟動其中之一,則可以配置DHCP伺服器只在相應設備上啟動。在/etc/sysconfig/dhcpd中,把接口的名稱添加到DHCPDARGS的列表中:

# Command line options here

DHCPDARGS=eth0

如果有一個帶有兩塊網卡的防火牆機器,這種方法就會大派用場。一塊網卡可以被配置成DHCP客戶端從網際網路上檢索IP位址;另一塊網卡可以被用做防火牆之後的內部網絡的DHCP伺服器。僅指定連接到內部網絡的網卡使系統更加安全,因為用戶無法通過網際網路來連接其守護進程。

其他可在/etc/sysconfig/dhcpd中指定的命令行選項如下。

(1)-p<portnum>:指定dhcpd應該監聽的UDP埠號碼,默認值為67。DHCP伺服器在比指定的UDP埠大一位的埠號上把回應傳輸給DHCP客戶端。例如,如果使用默認埠67,伺服器就會在埠67上監聽請求,然後在埠68上回應客戶。如果在此處指定了一個埠號,並且使用了DHCP轉發代理,所指定的DHCP轉發代理所監聽的埠必須是同一埠。

(2)-f:把守護進程作為前臺進程運行,在調試時最常用。

(3)-d:把DCHP伺服器守護進程記錄到標準錯誤描述器中,在調試時最常用。如果未指定,日誌將被寫入/var/log/messages中。

(4)-cf<filename>:指定配置文件的位置,默認為/etc/dhcpd.conf。

(5)-lf<filename>:指定租期資料庫文件的位置。如果租期資料庫文件已存在,在DHCP伺服器每次啟動時使用同一個文件至關重要。建議只在無關緊要的機器上為調試目的才使用該選項,默認為/var/lib/dhcp/dhcpd.leases。

(6)-q:在啟動該守護進程時,不要顯示整篇版權資訊

#p#分頁標題#e#

5.管理DHCP伺服器埠

常見的DHCP伺服器是dhcpd,可以通過命令行設定其監聽埠。例如,使用以下命令:

#dhcpd eth0

該命令允許dhcpd進程只在eth0網絡埠上工作,默認為監聽所有埠。由於DHCP同樣使用67和68埠通信,所以更改該埠將造成DHCP服務無法正常使用。

設置DHCP客戶端

1.在Linux下配置DHCP客戶端

配置DHCP客戶端的第1步是確定內核能夠識別網卡,多數網卡會在安裝過程中被識別,系統會為該網卡配置恰當的內核模塊。如果在安裝後添加了一塊網卡,Kudzu應該會識別它,並提示為其配置相應的內核模塊。通常網管員選擇手工配置DHCP客戶端,需要修改/etc/sysconfig/network文件來啟用聯網;修改/etc/sysconfig/network-scripts目錄中每個網絡設備的配置文件,在該目錄中的每種設備都有一個叫做「ifcfg-eth?」的配置文件。eth?是網絡設備的名稱,如eth0等。如果想在引導時啟動聯網,NETWORKING變量必須被設為yes。除此之外,/etc/sysconfig/network文件應該包含以下行:

NETWORKING=yes

DEVICE=eth0

BOOTPROTO=dhcp

ONBOOT=yes

每種需要配置使用DHCP的設備都需要一個配置文件。其他網絡腳本包括的選項如下。

(1)DHCP_HOSTNAME:只有當DHCP伺服器在接收IP位址前需要客戶端指定主機名時才使用該選項。

(2)PEERDNS=<answer>:<answer>取值為如下之一。

yes:使用來自伺服器的信息來修改/etc/resolv.conf。若使用DHCP,那麼yes是默認值。

no:不要修改/etc/resolv.conf。

(3)SRCADDR=<address>:<address>是用於輸出包的指定源IP位址。

(4)USERCTL=<answer>:<answer>取值為如下之一。

 yes:允許非根用戶控制該設備。

no:不允許非根用戶控制該設備。

  2.在Windows下設置DHCP客戶端

Windows 2000和Windows XP的配置方法相同,DHCP客戶端的配置很簡單。只需要在「控制面板」中雙擊「網絡連接」圖標,然後在如圖8-1所示的「本地連接屬性」對話框中選擇「Internet協議(TCP/IP)」屬性。

「常規」選項卡中選擇「自動獲取IP位址」和「自動獲取DNS伺服器地址」單選按鈕。

3.測試埠監督程序

現在應該已經可以將一個客戶機接入到網絡中,並通過DHCP請求一個IP位址。要通過Windows客戶端測試,在DOS提示符下執行以下操作。  (1)清除適配器可能已經擁有的IP位址信息,執行命令:

ipconfig /release

(2)向DHCP伺服器請求一個新的IP位址,執行命令:

ipconfig /renew

顯示從DHCP伺服器獲得的信息,應該會看到Primary WINS Server、DNS Servers和Connection-specific DNS Suffix域都獲得了dhcpd.conf文件中提供的數據:

ipconfig /all

#p#分頁標題#e#

DHCP伺服器的故障排除

通常配置DHCP伺服器很容易,有一些技巧可以幫助避免出現問題。對伺服器而言,要確保網卡正常工作並具備廣播功能;對客戶端而言,要確保網卡正常工作。最後,要考慮網絡的拓撲,以及客戶端向DHCP伺服器發出的廣播消息是否會受到阻礙。另外,如果dhcpd進程沒有啟動,那麼可以瀏覽syslog消息文件來確定是哪裡出了問題,這個消息文件通常是/var/ log/messages。

客戶端無法獲取IP位址

DHCP伺服器配置完成且沒有語法錯誤,但是網絡中的客戶端卻無法取得IP位址。這通常是由於Linux DHCP伺服器無法接收來自255.255.255.255的DHCP客戶端的request封包造成的,一般是Linux DHCP伺服器的網卡沒有設置MULTICAST功能。為了讓dhcpd(dhcp程序的守護進程)能夠正常地和DHCP客戶端溝通,dhcpd必須傳送封包到255.255.255.255這個IP位址。但是在有些Linux系統中,255.255.255.255這個IP位址被用來作為監聽區域子網域(local subnet)廣播的IP位址。所以需要在路由表(routing table)中加入255.255.255.255以激活MULTICAST功能,執行命令:

route add -host 255.255.255.255 dev eth0

如果報告錯誤消息:

255.255.255.255:Unkown host

那麼修改/etc/hosts,加入如下行:

255.255.255.255 dhcp

DHCP客戶端程序和DHCP伺服器不兼容

由於Linux有許多發行版本,不同版本使用的DHCP客戶端和DHCP伺服器程序也不相同。Linux提供了4種DHCP客戶端程序,即pump、dhclient、dhcpxd和dhcpcd。了解不同Linux發行版本的伺服器端和客戶端程序對於排除常見錯誤是必要的,如果使用SuSE Linux 9.1 DHCP伺服器和使用Mandrake Linux 9.0客戶端不兼容的情況,則必須更換客戶端程序。方法是停止客戶端的網絡服務,卸載原程序,然後安裝和伺服器端兼容的程序。表8-4所示為主要Linux發行版本使用的DHCP客戶端。

主要Linux發行版本使用的DHCP客戶端

發行版本

默認DHCP客戶端

可選DHCP客戶端

DHCP客戶端啟動腳本

附加配置文件

RHEL 4.0

dhclient

/sbin/ifup

/etc/sysconfig/network

/etc/sysconfig/network-scripts/ifcfg-eth0

Debian Linux 3.0

dhclient

/sbin/ifup

/etc/network/interfaces

/etc/dhclient.conf

Mandrake Linux 9.1

dhclient

dhcpcd、dhcpxd和pump

/sbin/ifup

/etc/sysconfig/network

/etc/sysconfig/network-scripts/ifcfg-eth0

/etc/dhclient-eth0.conf

SuSE Linux 9.1

dhcpcd

dhclient

/sbin/ifup-dhcp

/etc/sysconfig/network/dhcp

/etc/sysconfig/network/ifcfg-eth0

管理監控DHCP伺服器

/etc/dhcpd.conf通常包括3個部分,即parameters、declarations和option,共40多個參數,可以使用Gdhcpd管理監控DHCP伺服器。

Gdhcpd是一個在GNOME及KDE桌面環境下的DHCP管理工具,基本上能實現命令行模式下的所有功能。由於DHCP是一個非常複雜的協議,所以配置工作也是比較麻煩的。

Gdhcpd是一套在GTK+圖形界面下開發並用於幫助管理員在桌面環境下完成DHCP設置工作的DHCP前端程序。通過Gdhcpd,網絡管理員可以管理DHCP,包括啟動及停止DHCP伺服器的服務。也可以直接修改配置文件,或決定系統重新啟動的時間。幾乎所有與DHCP相關的功能都能使用Gdhcpd直接完成。

1.下載安裝

#Wget linux/gdhcpd/gdhcpd-0.2.9.tar.gz">https://mange.dynalias.org/linux/gdhcpd/gdhcpd-0.2.9.tar.gz

2.系統要求

硬體要求為中央處理器兼容Intel X86處理器,PentiumII 400以上,64 MB(推薦128 MB)內存,150 MB以上硬碟空間,顯示內存4 MB。軟體要求為內核版本基於2.4或以上,GNOME 1.2以上。桌面解析度至少為640×480,桌面顏色至少65 000色(16位元)。

3.安裝前的準備工作

安裝過程中需要編譯,因此需要GCC(2.96以上)、Qt(2.0以上)和GTK+2.0支持,需要使用RPM來確認:

rpm -qa | grep gcc;rpm -qa | grep qt;rpm -qa | grep gtk+

4.在命令行下安裝軟體

命令如下:

gunzip  gdhcpd-0.2.9.tar.gz

tar vxf gdhcpd-0.2.9.tar

cd gdhcpd-0.2.9

./configure;make;make install

5.運行軟體

執行一個終端運行命令「/usr/sbin/gdhcpd」,顯示Scopes設置界面,如圖所示。


Scopes設置界面

在這個界面中可以設置/etc/dhcpd.conf的parameters、declarations及option。在Single hosts界面中可以設置Hostname和Hardware address等,


 Single hosts設置界面

#p#分頁標題#e#

供備份的DHCP設置

在中型網絡中,數百臺計算機的IP位址的管理是一個大問題。為了解決這個問題,相信許多校園網網管會使用DHCP來動態地為客戶端分配IP位址。但是這同樣意味著如果DHCP伺服器因為某種原因癱瘓,DHCP服務自然也就無法使用。客戶端也就無法獲得正確的IP位址,從而影響整個網絡的運行。為解決這個問題,配置兩臺以上的DHCP伺服器即可。如果其中的一臺DHCP伺服器故障,另外一臺DHCP伺服器就會自動承擔分配IP位址的任務。對於用戶來說,這個過程是透明的,他們並不知道DHCP伺服器的變化。

另外,在一個具備多個子網的網絡中,提供冗餘是一個非常重要的方法。由於DHCP中DHCP伺服器負責分配IP位址,一旦DHCP伺服器出現故障,那麼所有的客戶端就無法正確獲得IP位址,從而不能訪問網絡。

可以同時設置多臺DHCP伺服器來提供冗餘,然而Linux的DHCP伺服器本身不提供備份。它們佔用的IP位址資源也不能重疊,以免發生客戶端IP位址衝突的現象。提供容錯能力即通過分割可用的IP位址到不同的DHCP伺服器上,多臺DHCP伺服器同時為一個網絡服務,從而使得一臺伺服器發生故障還能正常執行操作。通常為了進一步增強可靠性,還可以將不同的DHCP伺服器放置在不同子網中,互相使用中轉提供服務。

例如,在兩個子網中各自有一臺DHCP伺服器。標準的做法可以不使用DHCP中轉,各子網中的伺服器為各個子網服務。然而為了達到容錯的目的,可以互相為另一個子網提供服務,通過設置中轉或路由器轉發廣播以達到互為服務的目的。

例如,位於192.168.3.0網絡上的srv1的配置文件片段為:

subnet 192.168.3.0 netmask 255.255.255.0 {

  range 192.168.3.10 192.168.3.199;

  }

  subnet 192.168.4.0 netmask 255.255.255.0 {

range 192.168.4.200 192.168.4.220;

}

位於192.168.4.0網絡上的srv2的配置文件片段可能為:

subnet 192.168.4.0 netmask 255.255.255.0 {

range 192.168.4.10 192.168.4.199;

}subnet 192.168.3.0 netmask 255.255.255.0 {

 range 192.168.3.200 192.168.3.220;

}

注意:上述設置都是設置樣例,標準情況下還需分別指定各option,用於設置IP位址及其相關設置。

可以看出兩臺伺服器都能為兩個網絡上的客戶端分配IP位址,而各自又有一個主要服務的網絡。每個網絡上的IP位址主要放在本地的伺服器上,但也有少部分地址放在另一臺子網中的伺服器中(地址資源不能衝突),這樣提供了一定的容錯能力。實際上在多子網網絡中,沒有必要每個子網設置一臺伺服器,並使用另外的伺服器備份。一般網絡中有2臺~3臺DHCP伺服器即可。其他子網可以通過DHCP中轉的方式,為該子網提供DHCP服務。

以debug模式運行DHCP伺服器

執行命令如下:

#dhcpd -d

該命令指明dhcpd將出錯信息記錄到標準的錯誤描述器,記錄的信息將根據/etc/syslog.conf文件的配置保存在指定的文件中。例如,在/etc/syslog.conf文件中要指定記錄debug信息:

logalldebuginformationinto/var/log/dameon.log

dameon.=debug/var/log/dameon.log

  小結

DHCP伺服器是Linux下比較簡單的伺服器。DHCP在快速發送客戶網絡配置方面很有用,當配置客戶端系統時,若管理員選擇DHCP,則不必輸入IP位址、子網掩碼、網關或DNS伺服器,客戶端從DHCP伺服器中檢索這些信息。DHCP在管理員想改變大量系統的IP位址時也有用,與其重新配置所有系統,不如編輯伺服器中的一個用於新IP位址集合的DHCP配置文件即可。本章首先介紹DHCP伺服器的工作原理,安裝DHCP伺服器和設置DHCP客戶端的方法以及DHCP伺服器的故障排除。

相關焦點

  • linux下的DHCP伺服器的配置
    linux現在主要的應用在伺服器上。而作為伺服器,Web,dhcp,和dns又是網際網路上最主要的服務,這一講,我和朋友們討論dhcp的應用。
  • 兮克:Linux下如何設置DHCP伺服器
    一個DHCP伺服器可提供許多與網絡有關的因素,最普通的有IP位址和機器網絡所屬,它也提供其他信息,比如DNS服務,WINS服務,NTP服務等等。在本文中,將介紹如何在 Ubuntu Linux 中設置 DHCP 伺服器,使用sudo運行所有命令,以獲得 root 用戶權限。
  • DHCP中繼故障處理的具體流程
    那麼關於這方面的一些故障處理,我們也講解過了DHCP伺服器故障處理的一些流程和方法。那麼這裡我們在來著重講解一下DHCP中繼故障處理過程。希望對大家能夠有所幫助。DHCP中繼故障處理◆典型組網環境DHCP中繼的典型組網如下圖所示。DHCP中繼的故障處理將基於該網絡。
  • 路由器配置DHCP伺服器實例解析
    路由器配置DHCP伺服器實例解析 動態主機設置協議(Dynamic Host Configuration Protocol, DHCP)是一個區域網的網絡協議,使用UDP協議工作,主要有兩個用途:給內部網絡或網絡服務供應商自動分配IP位址給用戶給內部網絡管理員作為對所有計算機作中央管理的手段
  • 法國online伺服器linux系統如何配置DHCPV6客戶端
    您需要編輯以下文件/etc/dhcp/dhclient6.conf:interface "eth0" { send dhcp6.client-id DUID;}你將不得不適應接口名稱(eth0)和DUID,在控制臺中提供。
  • Centos7安裝及配置DHCP服務
    工作階段:客戶機廣播方式發送dhcp discover報文來尋找dhcp伺服器Dhcp伺服器收到dhcp discover報文後,從尚未出租的ip的盒子中挑選一個ip地址分配給dhcp客戶端,向客戶端發送一個包含出租ip
  • 網友解答:強制DHCP伺服器分配上網IP
    出現安全問題時可以在第一時間發現故障根源。然而在實際使用中總有人搗亂,妄圖通過手工設置IP位址的方法來上網。那麼有沒有辦法可以強制客戶端計算機必須使用DHCP自動獲得方式取得IP等地址才能夠順利上網呢?答案是肯定的,今天就請各位跟隨筆者一起領教網管支招強制採取DHCP上網。
  • LINUX-DHCP-GNS3- quagga實驗
    點擊播放 GIF 0.0M你也可以輸入systemctl restart  network.service 重啟網絡yum install -y dhscp安裝如下即為的e0/0interface e0/0ip address dhcpno shutdown成功標準: ping 192.168.10.254 可以通,如果不行自己去查看前面ip或者其它配置是否配置錯誤.
  • RHEL下DHCP服務的配置與應用
    一、DHCP服務的簡介 DHCP基於客戶/伺服器模式。當DHCP客戶端啟動時,它會自動與DHCP伺服器通信,由DHCP伺服器為DHCP客戶端提供自動分配IP位址的服務。
  • 使用PXE+Kickstart無人值守批量安裝Linux系統
    我之前都是使用光碟鏡像來安裝Linux系統的方法,坦白講,該方法適用於只安裝少量Linux系統的情況。如果生產環境中有數百臺伺服器都需要安裝系統,這種方式就不合時宜了。這時,我們就需要使用PXE + TFTP +FTP + DHCP + Kickstart服務搭建出一個無人值守安裝系統。
  • 深論DHCP中繼的原理和配置
    那麼這裡我們就來重點探討一下DHCP中繼的原理和配置內容。讓我們一起來看一下下面具體的內容吧。DHCP中繼原理及配置應用場合:當一個網絡中的主機數目較大時,手工分配IP不僅麻煩而且容易出錯。DHCP服務的出現大大方便了主機IP位址的分配。現在的企業組網時,根據實際需要來劃分vlan,成了必不可少的一個步驟。
  • H3C交換機設置DHCP中繼:多VLAN提供DHCP
    2)設置伺服器的網絡參數如下:IP位址:192.168.6.7子網掩碼:255.255.255.0網關:192.168.6.254DNS:192.168.6.103)安裝DHCP服務CentOS和RedHatEnterpriseLinux等系統默認並不安裝DHCP服務。
  • 怎樣停止、啟動DHCP服務
    怎樣停止、啟動DHCP服務 文章摘要:這裡我們主要分析了啟動DHCP服務和停止的相關操作以及命令。那麼通過這些內容,我們就對此有一個良好的掌握。
  • 雲伺服器linux是什麼系統
    雲伺服器linux是什麼系統?Linux是一套免費使用和自由傳播的類Unix作業系統,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的作業系統。相比 Windows 系統,雲伺服器使用 Linux 系統有更好的穩定性,以及其他很多優點。
  • Linux DHCP伺服器的配置
    對於一個稍微大點的網絡而言,網絡的管理和維護的任務是相當繁重的。一臺計算機從一個子網轉移到另一個子網,就要重新對系統進行配置。對於普通水平的工作站用戶是不能賦予他們配置自己的工作站網絡的權限,而且也沒有這個必要。如果一個沒有相應技術水平的用戶出於好奇或想學習一下的目的錯誤地更改了工作站的網絡配置,造成網絡故障,後果不言而喻。
  • 玩轉Fedora 15下伺服器搭建及應用安裝
    下面筆者以Fedora的最新發行版本Fedora 15為基礎,通過Tomcat安裝快速搭建中小企業需要的伺服器平臺以及相關應用的安裝。  為什麼選擇Tomcat,因為它是一款廣受程式設計師歡迎的輕量級應用伺服器,在並發訪問用戶不是很多的場合下被普遍採用,所以,成為很多中小企業開發和調試JSP程序的首選伺服器。
  • 應用:Linux中安裝Visual Studio Code
    這裡通過國外網站在Linux發行版中安裝Visual Studio Code的步驟進一步幫助大家了解該應用編輯器。(圖片來源linoxide.com)  下載Visual Studio Code軟體包  首先,我們要從微軟伺服器中下載 64 位 Linux 作業系統的 Visual Studio Code 安裝包,連結是 http://go.microsoft.com/fwlink/?LinkID=534108。
  • DHCP伺服器的安全設計
    從而不讓攻擊者有機可乘,破壞DHCP伺服器的安全與穩定。如DHCP伺服器是部署在微軟的作業系統上,並且在域環境中,則管理起來更加的方便。如我們可以在活動目錄用戶和計算機中,可以建立一個用戶,專門用來管理DHCP伺服器。用戶新建立之後,則可以把這個用戶指定為管理員角色,讓其有權限管理DHCP伺服器。一般來說,筆者是建議各個伺服器的話,採用不同的管理員帳戶。
  • DHCP中繼的知識和配置講解
    因此,出於對網絡管理的簡便和安全方面的考慮,通常選擇基於DHCP的動態地址分配方案。DHCP方案可以自動地為工作站指定IP位址、子網掩碼、默認網關、DNS及 WINS伺服器地址等信息,在工作站端不需要進行任何設置。
  • 華為DHCP中繼的配置實例
    選取路由器作為DHCP伺服器,它所在的VLAN是30,現在要求VLAN10和VLAN20的主機能夠從DHCP伺服器自動獲取到正確的IP位址,請按如圖所示的拓撲圖作答。靜態路由配置02保證SW2和DHCP伺服器能夠互通,這裡配置默認路由。