天天看點

Linux下DHCP伺服器配置

DHCP簡介:

DHCP動态主機配置協定,在一個小型區域網路裡可以通過手工指定ip位址的方式,但如有大量的主機,如果還是手工指定,那是一個很大的工作量,而且也容易出錯,這時,就可以通過配置一台DHCP伺服器來解決,為每台主機配置設定一個ip位址。DHCP作用域是指DHCP伺服器可配置設定給DHCP用戶端的IP位址範圍,一個DHCP伺服器至少要一個作用域,如有多個作用域,作用域之間的IP位址不能重疊。

DHCP三種工作模式 :

1.Manual Allocation

網絡管理者為某些少數特定的Host綁定固定IP位址,且位址不會過期,其特點:位址使用率低,管理者的工作量大

2.Automatic Allocation

自動配置設定,其情形是:一旦 DHCP 用戶端第一次成功的從 DHCP 伺服器端租用到 IP 位址之後,就永遠使用這個位址。其特點:位址使用率較低,

3.Dynamic Allocation

動态配置設定,當 DHCP 第一次從 HDCP 伺服器端租用到 IP 位址之後,并非永久的使用該位址,隻要租約到期,用戶端就得釋放(release)這個 IP 位址,以給其它工作站使用。當然,用戶端可以比其它主機更優先的更新(renew)租約,或是租用其它的 IP 位址。其特點:位址配置設定較靈活,位址使用率高

注:考慮實際需要,第一種和第三種結合可謂是最好的位址管理方式。

DHCP的工作原理:

DHCP工作過程分為四個步驟:

第一步(DHCPDISCOVER):用戶端發送廣播查找可以給自己提供IP位址的DHCP伺服器,

第二步(DHCPOFFER):DHCP伺服器發送廣播提供一個可用的IP位址,并在位址池中将該位址打上标記,以防再次配置設定。

第三步(DHCPREQUEST):用戶端收到廣播後再用廣播發送一個dhcprequest消息給伺服器,之是以用廣播,是因為它不但要通知所挑選到的dhcp伺服器,也必須通知沒有被選上的其他dhcp伺服器,以便這些dhcp伺服器将其原本欲指派給此用戶端而保留的ip位址釋放出來,供其他dhcp用戶端使用。

第四步(DHCPACK):DHCP伺服器收到廣播後再發送一個廣播,确認該位址配置設定給這台主機使用,并在位址池中将該位址打上标記,以防再次配置設定。

注意:dhcp伺服器處于10.0網段,位址池處于30.0網段,且就單個作用域,這樣即便在一個廣播域内,用戶端也無法獲得ip

DHCP配置:

實驗環境:VMware RedHat-5.4

案例一(單個作用域):

該案例拓撲圖(因均在vnet1下,并不過路由,故如下圖):

<a href="http://blog.51cto.com/attachment/201211/195148304.jpg" target="_blank"></a>

1.安裝dhcp,由上一篇已經正确對yum伺服器進行了正确的配置是以,直接用yum源來安裝即可,終端執行yum install dhcp

如下圖即正确安裝

<a href="http://blog.51cto.com/attachment/201210/231626510.png" target="_blank"></a>

2.編輯配置檔案/etc/dhcpd.conf初始狀态下,其為空,可用vim打開後,在末行模式下輸入"r /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample"

如下圖:

<a href="http://blog.51cto.com/attachment/201210/231530993.png" target="_blank"></a>

詳細配置資訊如下:

ddns-update-style interim; //配置DHCP和DNS為互動更新模式,

ignore client-updates; //忽略用戶端的更新。

subnet 192.168.142.0 netmask 255.255.255.0 { //定義作用域

option routers 192.168.142.20; //預設路由

option subnet-mask 255.255.255.0; //子網路遮罩

option nis-domain "liuyuan.org"; //NIS域名

option domain-name "liuyuan.org"; //DNS域名

option domain-name-servers 192.168.142.20; //DNS伺服器位址

option time-offset -18000;

# Eastern Standard Time //為用戶端設定與格林威治的時間偏移

#下面兩項因本實驗沒用,是以注釋掉了

# option ntp-servers //網絡時間伺服器位址

# option netbios-name-servers //指定WINS伺服器位址

range dynamic-bootp 192.168.142.20 192.168.142.254;

//動态配置設定的位址範圍

default-lease-time 21600; //預設租約時間

max-lease-time 43200; //最大租約時間

host windosxp{ //指定特定主機

hardware ethernet 00:0C:29:FD:44:C8; //硬體位址

fixed-address 192.168.142.200; //IP位址

}

<a href="http://blog.51cto.com/attachment/201210/233453632.png" target="_blank"></a>

3.啟動dhcp服務并設定開機啟動,/etc/init.d/dhcpd restart;chkconfig dhcpd on

<a href="http://blog.51cto.com/attachment/201210/231655974.png" target="_blank"></a>

4.測試驗證(以windows):如下圖:

注:做測試時,一定做将本機的Vmware DHCP service服務關閉,避免對實驗造成影響。具體操作:在運作下輸入services.msc進入服務,找到服務将其關閉。

<a href="http://blog.51cto.com/attachment/201210/231703132.png" target="_blank"></a>

5.如果我們這台主機想每次均獲得192.168.142.200,應該怎麼辦呢?其實也容易,用dhcp的位址綁定這個問題這很容易解決了,

由上圖可知,這台測試主機的ip為192.168.142.254,我們可以通過檢視/var/lib/dhcpd/dhcpd.lease檔案來獲得其MAC位址,打開/var/lib/dhpc/dhpcd.lease檔案如下圖(局部圖):

<a href="http://blog.51cto.com/attachment/201210/154334735.png" target="_blank"></a>

6.然後根據這個MAC進行綁定修改配置檔案如下圖:

<a href="http://blog.51cto.com/attachment/201210/154343209.png" target="_blank"></a>

7.重新開機dhcp服務,進行測試,如下圖,正确獲得了192.168.142.200,測試成功,

<a href="http://blog.51cto.com/attachment/201210/154401129.png" target="_blank"></a>

案例二,多作用域

多作用域環境主要指DHCP伺服器需要為一個以上網段的DHCP用戶端配置設定IP位址。主要有兩種類型:伺服器隻有一個接口,通過路由器等設定與其他網段的DHCP用戶端連接配接;DHCP伺服器有至少兩個網絡接口,分别連接配接需要DHCP用戶端所在的每個網段。

本案例以超級作用域為例,來管理多作用域的工作

案例背景:由于c類網絡位址的限制,若某公司有1000多個使用者,簡單地單個作用就無法滿足需求,故就引出了多作用域存在的必要性,而超級作用域是DHCP伺服器的一種管理功能,使用它可以将多個作用域組合為單個管理實體,友善統一管理。

實驗拓撲圖如下:

<a href="http://blog.51cto.com/attachment/201211/195337148.jpg" target="_blank"></a>

實驗步驟:

1.如案例1一樣正确安裝dhcp伺服器,

2.如下修改dhcp的配置檔案,為達到測試的效果,每一個位址池内僅有一個可用ip,

<a href="http://blog.51cto.com/attachment/201210/213617982.png" target="_blank"></a>

3.重新開機dhcp服務并進行測試,(兩台windows主機均設定在vnet1下,)

測試機一從192.168.142.0中獲得192.168.142.3

<a href="http://blog.51cto.com/attachment/201210/212456442.png" target="_blank"></a>

測試機二從192.168.141.0中獲得192.168.141.3

<a href="http://blog.51cto.com/attachment/201210/212515471.png" target="_blank"></a>

ps:超級作用就相當于一個大的位址池,裡面有很多的ip位址和ip段,本實驗并沒有配置網關,因網關是負責網絡通信的,而本實驗中dhcp伺服器與測試客戶機是處于同一個網絡中,并且其目的是為客戶機正常配置設定ip位址,它并不關注你們之間是否能夠通信,故在做實驗時,會覺得網關的設定似乎沒有限制,哦,那你就錯了,因為實驗中你并沒有實驗客戶機間的通信,隻是正确獲得了ip位址,若你想測試客戶機間能夠通信,則必須正确網關參數了。

案例三,中繼代理

在整個DHCP租約産生的過程中,DHCP用戶端與DHCP伺服器之間都是使用廣播,這樣會産生一個問題,如果DHCP用戶端與DHCP伺服器之間需要跨越子網時,子網間的路由器必須支援RFC 1542文檔的定義。當然DHCP中繼代理來幫助轉發DHCP用戶端與DHCP伺服器之間的廣播包。

如圖所示,某公司有兩個部門:技術部tec和市場部mkt,兩個不能分處不同vlan,伺服器vlan中有一台dhcp伺服器,現要求使用該dhcp伺服器為技術部和市場部提供ip位址。

1.安裝dhcp伺服器 (yum install dhcp,)

并正解配置伺服器ip位址:192.168.142.2/24,網關:192.168.142.3

2.修改dhcp主配置檔案/etc/dhcpd.conf

<a href="http://blog.51cto.com/attachment/201210/221446470.png" target="_blank"></a>

注:修改時一定要聲明空作用域

<a href="http://blog.51cto.com/attachment/201210/221550493.png" target="_blank"></a>

3.測試dhcp服務文法,并重新開機服務

<a href="http://blog.51cto.com/attachment/201210/221711652.png" target="_blank"></a>

到此dhcp伺服器有

下面就是另一台linux主機做路由器的主機的配置了

1.為其添加網卡,如圖:

<a href="http://blog.51cto.com/attachment/201210/224118777.png" target="_blank"></a>

2.首先根據環境,如拓撲圖表示,正确裝置eth0,eth1,eth2的ip位址,

eth0:192.168.142.3/24

eth1:192.168.10.254/24

eth2:192.168.20.254/24

3.安裝dhcp軟體包(yum install dhcp -y),修改/etc/sysctl.conf

将 net.ipv4.ip_forward= 0改為1;

<a href="http://blog.51cto.com/attachment/201210/222154508.png" target="_blank"></a>

用sysctl -p指令使其設定生效;

4.修改/etc/sysconfig/dhcrelay,設定允許dhcp中繼的端口;

<a href="http://blog.51cto.com/attachment/201210/225720560.png" target="_blank"></a>

5.啟動服務service dhcrelay start,并用netstat -tulp檢視端口是否已經正常打開。

6.測試,

a.首先将測試機改到vnet2下,該pc獲得192.168.20.253,為mkt.org域内的

<a href="http://blog.51cto.com/attachment/201210/222718649.png" target="_blank"></a>

b.将測試機改到vnet3下,該pc獲得192.168.10.253,為tec.org域内的

<a href="http://blog.51cto.com/attachment/201210/222730601.png" target="_blank"></a>

c.以linux客戶機做測試,在vnet2,dhclient獲得192.168.20.252

<a href="http://blog.51cto.com/attachment/201210/222745134.png" target="_blank"></a>

測試正确,配置完成,實驗過程中錯誤的檢測,可以通過檢視綜合日志一般均可以解決,

PS:自己對超級作用域和中繼代理的了解,

超級作用域因其可以讓DHCP有多個作用域(多個IP段),故可以很好地解決IP位址不夠用的情況,超級作用域強調的是多少,而不是誰擁有哪個IP,形象化一點就是它就像一個大池子,隻要有來要IP位址的,并且存在空閑的可用IP,它就會将IP給請求者;

中繼代理呢,它存在則是為了友善管理,節約資源。比如:一個大公司下有一個小公司它不可能在為小公司單獨建一個DHCP伺服器,但是又為了友善管理,使小公司内部獲得的IP均為同一IP段,則中繼代理則是存在的就很好地解決了這個問題。

其時,超級作用域和中繼代理都是多作用域的一種運用,故很好地了解它們,應用起來自然也就容易了。

本文轉自 劉園  51CTO部落格,原文連結:http://blog.51cto.com/colynn/1022653

繼續閱讀