自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

DHCP協(xié)議應(yīng)用超詳解

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
我們針對DHCP協(xié)議的內(nèi)容進(jìn)行了具體的介紹包括dhcpd的使用。那么接下來我們就來詳細(xì)看一下吧。

對于DHCP協(xié)議的使用,很多企業(yè)的網(wǎng)絡(luò)設(shè)置都會涉及到相關(guān)的內(nèi)容。那么如何進(jìn)行有關(guān)內(nèi)容的設(shè)置呢?這里我們就來看看dhcpd的使用吧。首先讓我們看看配置文件。

名稱

dhcpd.conf - dhcpd配置文件

描述

dhcpd.conf 文件包括ISC DHCP的dhcpd的配置信息。

dhcpd.conf文件是一個(gè)普通格式的ASCII碼文檔, 它由內(nèi)置的遞歸解析器解釋。

dhcpd.文件可能會包含許多額外的tab和空格、空行,它們的目的是讓文件更容易閱讀。 其中的關(guān)鍵字對大小寫不敏感。注釋語句可以放在任何位置(除了引號中)注釋語句用# 開頭,這一行結(jié)束時(shí)注釋語句自然結(jié)束。

文件包括一組語句,語句在一對大括號中,包含參數(shù)和聲明。

參數(shù)語句說明如何做一件事(例如,租期是多長時(shí)間),或者是否做一件事情。 (例如, dhcpd 是否為未知客戶提供地址),或者給客戶提供哪種參數(shù)(例如,使用網(wǎng)關(guān)220.177.244.7)。

聲明用來描述網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)、網(wǎng)絡(luò)上的客戶,提供可以為客戶端分配的地址,或者對某個(gè)客戶端組應(yīng)用組(group)參數(shù)。在任何組參數(shù)中,所有的這些組參數(shù)必須比使用這些組參數(shù)的語句先出現(xiàn)。

網(wǎng)絡(luò)聲明包含多子網(wǎng)的網(wǎng)絡(luò)(有些地方譯為:超網(wǎng),但超網(wǎng)太難理解了,這里叫“多子網(wǎng)網(wǎng)絡(luò)”)和子網(wǎng)的拓?fù)渎暶?。對于子網(wǎng)的客戶端被動(dòng)態(tài)分配地址,子網(wǎng)聲明中必須有一個(gè)range聲明語句。對于靜態(tài)分配的地址,或者是已知客戶的安裝,每個(gè)客戶端都必須使用一個(gè)host聲明語句。如果一個(gè)參數(shù)應(yīng)用到一組聲明中,這些聲明并不只與某個(gè)子網(wǎng)相關(guān),可以定義一個(gè)“組參數(shù)”。

對每一個(gè)要服務(wù)的子網(wǎng),每個(gè)dhcp協(xié)議的服務(wù)器連接的子網(wǎng),都必須有一個(gè)子網(wǎng)聲明,用來告訴dhcpd如何處理那個(gè)子網(wǎng)上的地址。即使一個(gè)子網(wǎng)不需要分配任何地址,也需要一個(gè)子網(wǎng)聲明。

一些物理網(wǎng)絡(luò)上不只有一個(gè)IP子網(wǎng)存在,例如,如果一個(gè)網(wǎng)絡(luò)需要一個(gè)8位的子網(wǎng),但是當(dāng)業(yè)務(wù)發(fā)展使總的節(jié)點(diǎn)數(shù)超過了254臺,就需要增加一個(gè)8位的子網(wǎng)。這時(shí),就增加了一個(gè)新的物理網(wǎng)絡(luò),這種情況下,2個(gè)網(wǎng)絡(luò)的子網(wǎng)聲明必須包含在一個(gè)“多子網(wǎng)網(wǎng)絡(luò)聲明(超級作用域)”中。

有些網(wǎng)絡(luò)的客戶端不只有一個(gè)子網(wǎng),可能會為同一子網(wǎng)中一些客戶端分配的一些參數(shù)與其它的客戶端不同。這樣的用戶可以使用host語句來定義,一些參數(shù)也可以定義在“組參數(shù)”語句中,它被這些客戶端共同調(diào)用。對于需要根據(jù)不同情況獲得不同地址的客戶端,可能會使用“類聲明(class declarations)”和“條件聲明(conditional declarations)”語句,這樣可以根據(jù)客戶端發(fā)送的信息來決定分配給客戶端的參數(shù)。

當(dāng)一個(gè)客戶端啟動(dòng)時(shí),服務(wù)器先查看是否有匹配客戶端的host語句,如果沒有,再看是否有匹配的“類聲明(class declarations)”語句,接著查看是否有“池pool”匹配,“子網(wǎng)subnet”匹配和“多子網(wǎng)網(wǎng)絡(luò)(超級作用域)shared-net-work”匹配。(根據(jù)這些匹配,)將符合這個(gè)客戶端的參數(shù)提供給它。每種參數(shù)都不會被分析第2次,如果它們出現(xiàn)了2次或2次以上,那么會使用那個(gè)最精確出現(xiàn)的地方。

dhcpd首先查找客戶端是否有包含固定IP地址的host語句,這個(gè)地址要在客戶端啟動(dòng)的那個(gè)子網(wǎng)中,或者“多子網(wǎng)網(wǎng)絡(luò)”中,如果沒有對應(yīng)的host語句匹配,那就查找非固定地址的聲明。

例如:

一個(gè)典型的dhcpd.conf 文件將會象下面這樣:

  1. global parameters...  
  2. subnet 204.254.239.0 netmask 255.255.255.224 {  
  3. subnet-specific parameters...  
  4. range 204.254.239.10 204.254.239.30;  
  5. }  
  6. subnet 204.254.239.32 netmask 255.255.255.224 {  
  7. subnet-specific parameters...  
  8. range 204.254.239.42 204.254.239.62;  
  9. }  
  10. subnet 204.254.239.64 netmask 255.255.255.224 {  
  11. subnet-specific parameters...  
  12. range 204.254.239.74 204.254.239.94;  
  13. }  
  14. group {  
  15. group-specific parameters...  
  16. host zappo.test.isc.org {  
  17. host-specific parameters...  
  18. }  
  19. host beppo.test.isc.org {  
  20. host-specific parameters...  
  21. }  
  22. host harpo.test.isc.org {  
  23. host-specific parameters...  
  24. }  

圖 1

注意文件的開始,它是全局參數(shù)放置的地方,可能會是:

組織的域名,DNS服務(wù)器的地址(如果這個(gè)服務(wù)器對整個(gè)網(wǎng)絡(luò)都是一樣的)和其它一些。比如:

  1. option domain-name "isc.org";  
  2. option domain-name-servers ns1.isc.org, ns2.isc.org; 

圖 2

如圖2中所示,可以使用DNS服務(wù)器的名稱而不使用它的IP地址,如果指定不只一個(gè)DNS服務(wù)器地址,那么只要有可能,所有地址都會提供給客戶端。

每個(gè)子網(wǎng)都要指明的最可能必須的參數(shù)是router,如圖1所示。因此對于第一個(gè)子網(wǎng),它就應(yīng)該是這個(gè)樣子的

  1. option routers 204.254.239.1; 

注意這里的地址是數(shù)字形式的,如果每個(gè)網(wǎng)關(guān)都有域名,這就不是必須的,使用域名也是合法的。然而,很多情況下,多個(gè)網(wǎng)關(guān)只有一個(gè)域名,這樣就不能使用域名了。

在圖1中,有一個(gè)group 語句,它為一組host語句zappo,beppo和harpo提供了通用的參數(shù)。如你所見,這些主機(jī)都在test.isc.org這個(gè)域里,這樣它在“組參數(shù)”中指明就會覆蓋全局設(shè)置的參數(shù):

  1. option domain-name "test.isc.org"; 

而且,指明它們的域,可能用在測試機(jī)器中,如果我們要測試DHCP協(xié)議的租約機(jī)制,可以在這里設(shè)置比默認(rèn)值更短的租約:

 

 

  1. max-lease-time 120;  
  2. default-lease-time 120; 

你可能注意到有些參數(shù)以option 關(guān)鍵字開頭,有些不。以option 關(guān)鍵字開頭的語句對應(yīng)實(shí)際的DHCP選項(xiàng),不以option關(guān)鍵字開頭的選項(xiàng)控制服務(wù)端(例如,租期) 或客戶端的選項(xiàng)不在DHCP協(xié)議中(例如,服務(wù)器名或文件名)

在圖1中,每個(gè)host 都有指定的參數(shù),它會包含象hostname選項(xiàng),要上傳的文件名(filename 參數(shù)),還有要上傳的服務(wù)器的地址(next-server 參數(shù))。通常,任何參數(shù)都可以在任何可以出現(xiàn)的地方出現(xiàn),并且按照參數(shù)出現(xiàn)位置確定應(yīng)用范圍。

假設(shè)你的環(huán)境中有許多沒有CD的X終端,這些終端有不同的型號,你想為每種型號確定一個(gè)啟動(dòng)文件,一種方法是給每個(gè)服務(wù)器和組都使用host語句:

  1. group {  
  2. filename "Xncd19r";  
  3. next-server ncd-booter;  
  4. host ncd1 { hardware ethernet 0:c0:c3:49:2b:57; }  
  5. host ncd4 { hardware ethernet 0:c0:c3:80:fc:32; }  
  6. host ncd8 { hardware ethernet 0:c0:c3:22:46:81; }  
  7. }  
  8. group {  
  9. filename "Xncd19c";  
  10. next-server ncd-booter;  
  11. host ncd2 { hardware ethernet 0:c0:c3:88:2d:81; }  
  12. host ncd3 { hardware ethernet 0:c0:c3:00:14:11; }  
  13. }  
  14. group {  
  15. filename "XncdHMX";  
  16. next-server ncd-booter;  
  17. host ncd1 { hardware ethernet 0:c0:c3:11:90:23; }  
  18. host ncd4 { hardware ethernet 0:c0:c3:91:a7:8; }  
  19. host ncd8 { hardware ethernet 0:c0:c3:cc:a:8f; }  

地址池

 

“池”語句(pool)用來定義一個(gè)地址池,即便是在同一個(gè)網(wǎng)段或者子網(wǎng),也可以定義幾個(gè)池,系統(tǒng)將通過“池”來區(qū)分它們。例如,你可能想提供一大段地址分配給DHCP客戶端時(shí)同時(shí)提供很短的租約的一小段地址,用來給未知客戶。如果有防火墻,你可能會安排一段地址池能上網(wǎng),另一個(gè)地址池不能上網(wǎng),這可以鼓勵(lì)用戶注冊到DHCP協(xié)議的系統(tǒng)中來,也就需要建立兩個(gè)地址池:

  1. subnet 10.0.0.0 netmask 255.255.255.0 {  
  2. option routers 10.0.0.254;  
  3. # Unknown clients get this pool.  
  4. pool {  
  5. option domain-name-servers bogus.example.com;  
  6. max-lease-time 300;  
  7. range 10.0.0.200 10.0.0.253;  
  8. allow unknown-clients;  
  9. }  
  10. # Known clients get this pool.  
  11. pool {  
  12. option domain-name-servers ns1.example.com, ns2.example.com;  
  13. max-lease-time 28800;  
  14. range 10.0.0.5 10.0.0.199;  
  15. deny unknown-clients;  
  16. }  

上面這個(gè)例子中,已知客戶和未知客戶在相同的子網(wǎng)中,也可能將已知和未知客戶分配在不同的子網(wǎng)中,或者在“多子網(wǎng)層次(超級作用域)”,這樣地址池的范圍可能跨越不同的子網(wǎng)。正如前面的例子,地址池可以允許或拒絕一個(gè)控制用戶存取的組,這個(gè)組名前面要有allow或 deny 關(guān)鍵字。

如果一個(gè)池有一個(gè)允許列表,只有匹配的客戶端才可以獲得地址池的地址,如果這個(gè)池有一個(gè)拒絕列表,只有不匹配的客戶端才可以獲得池中的地址,如果同時(shí)存在允許和拒絕列表,那么只有在允許列表并且不在拒絕列表中的客戶端才可以獲得池中的地址。

動(dòng)態(tài)地址分配

地址分配實(shí)際只在客戶端在初始狀態(tài)并且發(fā)送一個(gè) DHCPDISCOVER信息時(shí)完成。如果客戶端認(rèn)為它有一個(gè)有效的租約并且發(fā)送了一個(gè)DHCPREQUEST信息來初始化或者更新租約,服務(wù)器就只有3個(gè)選擇:(1)它可以忽略DHCPREQUEST信息,并且返回一個(gè)DHCPNAK 信息來告訴客戶端,要求客戶端停止使用這個(gè)地址,(2)或者發(fā)送一個(gè)DHCPACK信息,告訴客戶端繼續(xù)再使用這個(gè)地址一段時(shí)間,如果服務(wù)器找到客戶端要求的地址,并且這個(gè)地址對于這個(gè)客戶也是可用的,服務(wù)器會發(fā)送一個(gè)DHCPACK信息,如果這個(gè)地址已經(jīng)不能用了,客戶端就不能使用它,此時(shí)服務(wù)器將會發(fā)送一個(gè)DHCPNAK信息,(3)如果服務(wù)器不知道這個(gè)地址,它會先保持沉默,除非這個(gè)地址對于客戶端依附的地址段是不正確的,這種情況下服務(wù)器會發(fā)送一個(gè)DHCPNAK,即便它完全不知道這個(gè)地址。

如果有一個(gè)host語句定義了客戶端,同時(shí)host語句中包含了固定地址(fixed-address),這個(gè)IP地址對于客戶端實(shí)際連接的網(wǎng)段也是合法的,此時(shí)DHCP協(xié)議的服務(wù)器不動(dòng)態(tài)分配地址,而是發(fā)送host語句指明的地址。如果此時(shí)用戶發(fā)送了DHCPREQUEST信息來獲得其它地址,服務(wù)器會回應(yīng)一個(gè)DHCPNAK信息,來拒絕為用戶分配其它地址。

當(dāng)一個(gè)DHCP服務(wù)器為客戶端分配一個(gè)新的地址時(shí)(記住,這只發(fā)生在客戶端發(fā)送DHCPDISCOVER信息時(shí)),它首先查找lease文件,看客戶機(jī)是否存在一個(gè)有效的地址租約,或者此客戶機(jī)原來是否有一個(gè)地址(這個(gè)地址已經(jīng)過期),如果有,服務(wù)器就會檢查那個(gè)地址,看客戶端是否被允許使用這個(gè)地址,如果客戶端已經(jīng)不被允許使用這個(gè)地址(通常是客戶機(jī)從另外一個(gè)子網(wǎng)登錄了,或者此地址被其它客戶端占用),并且服務(wù)器lease文件中顯示原來的租約還存在,服務(wù)器就釋放這個(gè)租約,事實(shí)上,此時(shí)是客戶端發(fā)送的DHCPDISCOVER信息,它已經(jīng)證明客戶端實(shí)際并沒有使用這個(gè)租約。如果沒有找到存在的租約,或者客戶端被強(qiáng)迫接收一個(gè)已經(jīng)存在的租約,那么服務(wù)器就會查找客戶端所在網(wǎng)段的地址池,找一個(gè)允許客戶端使用而又沒有使用的地址,它會按順序遍歷每個(gè)地址池(所有地址池外的“范圍”range定義語句都組成一個(gè)沒有允許列表的單獨(dú)的池)。如果地址池的允許列表允許客戶端得到一個(gè)池中的地址,這個(gè)地址池會被檢查是否有可用的地址,如果有,客戶端將會得到這個(gè)地址;否則,會檢查下一個(gè)地址池。如果一直都沒有找到可用的地址,服務(wù)器就不發(fā)送回應(yīng)。如果找到一個(gè)地址,這個(gè)地址以前從未被任何客戶端使用過,這個(gè)地址將立即分配給這個(gè)客戶,如果這個(gè)地址曾經(jīng)分配給另一個(gè)客戶端,服務(wù)器會嘗試查找一個(gè)從未分配的地址給客戶端。

DHCP服務(wù)器使用哈希表(hash table)來產(chǎn)生一組可用的IP地址,這意味著地址不以任何特定的順序存放,這樣也就不能預(yù)測DHCP服務(wù)器下一個(gè)要分配的地址。前一個(gè)版本的ISC DHCP服務(wù)器使用降序來分配地址,現(xiàn)在不是了,并且在這個(gè)版本里也沒有辦法配置服務(wù)器分發(fā)地址的順序 (ISC DHCP 3)。

防止IP地址沖突

DHCP服務(wù)器在分配IP地址前檢查它們是否被使用來防止沖突。它通過向準(zhǔn)備分配的IP地址發(fā)送ICMP Echo請求信息來完成,如果1秒內(nèi)沒有接收到ICMP Echo reply信息,就假定這個(gè)地址是可用的。這只對在range語句中指明的租約,并且租約被DHCP服務(wù)器認(rèn)為可用時(shí)有效。例如,DHCP服務(wù)器或者它的熱備機(jī)沒有列出這個(gè)租約在使用中。如果收到ICMP Echo回應(yīng),DHCP服務(wù)器會假定出現(xiàn)了配置錯(cuò)誤――IP地址被網(wǎng)絡(luò)上的主機(jī)使用了,然后它標(biāo)記這個(gè)地址為“廢棄地址”,不再把它分配給客戶端。如果DHCP協(xié)議的客戶端試圖得到一個(gè)地址,但是卻沒有可用的地址,服務(wù)器會(隨機(jī))標(biāo)記一個(gè)“廢棄地址”為“可用”,然后向這個(gè)地址發(fā)送同樣的ICMP Echo 請求,如果沒有得到 ICMP Echo reply回應(yīng),這個(gè)地址就會分配給這個(gè)客戶。

如果要收回的第一個(gè)IP地址是可用的,DHCP服務(wù)器不會去循環(huán)使用“廢棄地址”。而且,當(dāng)下一個(gè)客戶的DHCPDISCOVER信息到達(dá)時(shí),它會用相同的方法開始一個(gè)新的分配,并且嘗試分配一個(gè)新的IP地址。

責(zé)任編輯:佟健 來源: 網(wǎng)絡(luò)整理
相關(guān)推薦

2010-09-26 14:16:26

DHCP協(xié)議應(yīng)用

2014-06-05 10:21:29

HTTP

2010-09-02 15:34:25

DHCP協(xié)議

2010-08-23 17:16:16

DHCP協(xié)議

2010-08-26 15:48:15

DHCP協(xié)議

2010-08-29 21:24:53

DHCP協(xié)議

2010-06-24 17:18:53

DHCP協(xié)議

2010-09-28 15:15:52

DHCP協(xié)議功能

2010-09-25 13:07:50

DHCP協(xié)議結(jié)構(gòu)

2010-09-29 15:18:25

DHCP協(xié)議命令

2010-08-29 21:06:30

DHCP協(xié)議

2010-08-30 19:55:27

配置DHCP

2010-09-29 15:10:14

DHCP協(xié)議基礎(chǔ)

2013-08-05 09:22:16

網(wǎng)絡(luò)協(xié)議DHCP協(xié)議DHCP

2010-08-23 17:35:46

DHCP協(xié)議

2010-09-01 09:45:42

DHCP協(xié)議

2010-07-13 16:12:15

DHCP協(xié)議

2014-06-05 17:02:41

FTP

2011-08-24 09:56:13

網(wǎng)絡(luò)協(xié)議BOOTP協(xié)議TFTP協(xié)議

2010-08-29 21:45:14

DHCP協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號