在Linux作業系統下建立DHCP伺服器

來源:互聯網
上載者:User

 

DHCP是Dynamic Host Configuration Protocol的英文縮寫,翻譯過來就是動態主機配置通訊協議。它的功能就是為網路連接動態分配IP地址,它允許用戶端電腦向網路伺服器自動擷取網路設定。DHCP伺服器使得網路系統管理員在管理網路中在網路中增加、刪除網路節點或者重新設定網路時,工作變得非常簡單,無須手工的分配IP地址。採用Linux主機建立DHCP伺服器,比Windows NT更加具有更好的性價比,本文以RedHat7.2為例,介紹如何採用Linux來建立DHCP伺服器,以及網路系統管理員如何管理好DHCP伺服器。

在Linux作業系統下建立DHCP伺服器非常簡單,只要掌握幾個簡單的命令,編輯/etc/DHCPd.conf檔案,很快就能夠建立DHCP伺服器。實際上操作並不比Windows NT複雜,具體操作如下:

一、如何建立DHCP服務。

⑴安裝DHCP伺服器軟體

# mount /mnt/cdrom
# rpm -ivh /mnt/cdrom/RedHat/RPMS/DHCP-2.0pl5-8.i386.rpm

⑵配置DHCP伺服器/etc/DHCPd.conf檔案。可以從/usr/share/doc/DHCP-2.0pl5目錄下拷貝一個例子檔案DHCPd.conf.sample,在這個檔案的基礎上修改。

以下僅僅是一個例子,具體看man DHCPd.conf文檔,DHCP伺服器在192.168.101.0網段。

 subnet 192.168.2.0 netmask 255.255.255.0 {
#$ 財務科
range 192.168.2.10 192.168.2.254;
default-lease-time 43200;
max-lease-time 86400;
option broadcast-address 192.168.2.255;
option subnet-mask 255.255.255.0;
option routers 192.168.2.1;
# option netbios-name-servers 192.168.101.10;
}

subnet 192.168.3.0 netmask 255.255.255.0 {
#$ 辦公
# range dynamic-bootp 192.168.3.10 192.168.3.254;
range 192.168.3.10 192.168.3.254;
default-lease-time 43200;
max-lease-time 86400;
option broadcast-address 192.168.3.255;
option routers 192.168.3.1;
option subnet-mask 255.255.255.0;
# option netbios-name-servers 192.168.101.10;
}

subnet 192.168.101.0 netmask 255.255.255.0 {
}

說明:#開頭的行,表示注釋,每一個subnet表示一段動態地址的設定。

range : 表示租用地址的範圍,可以包含不連續的多段地址,只需分別說明。

default-lease-time : 表示預設的租用時間,單位是秒。

max-lease-time : 表示最大的租用時間,單位是秒。

還可以包括一些可選項,如:

broadcast-address : 廣播位址。

routers : 預設路由或者網關。

subnet-mask: 子網路遮罩。

netbios-name-servers: 如果網路中存在Windows NT,可以指定wins伺服器的地址。

還有許多參數,如可以對特定硬體MAC的地址指定IP地址,具體操作看man DHCPd. conf文檔。

另外由於本例子DHCP伺服器在192.168.101.0網段,必須指定一個空的subnet。

說明:如果DHCP服務與DHCP客戶位於不同的網段,那麼網路中就必須具備有DHCP Relay Agent(即DHCP中繼代理)功能的IP路由器,把DHCP的資訊從一個網段傳送到另一個網段。一般的智能交換器都具有DHCP代理的功能,只要在交換器中設定DHCP伺服器的IP地址就可以了。

如果IP路由器的硬體裝置不能支援DHCP中繼代理的功能,需要在充當IP路由器的機器上安裝DHCP中繼代理程式,並且開啟IP Forward (IP轉寄)功能,DHCP的rpm包也提供dhcrelay命令,具體看man dhcrelay文檔。

⑶建立/var/lib/DHCP/DHCPd.leases檔案。

# touch /var/lib/DHCP/DHCPd.leases

說明:各種不同的GNU/Linux發布版,建立DHCPd.leases可能位於不同的目錄, 必鬚根據不同的發布版來確定建立DHCPd.leases檔案的目錄。

⑷啟用DHCP服務,執行ntsysv命令,選中DHCPd,選擇OK退出,下次開機自動啟動DHCP服務,也可以手工執行如下命令進行測試:

/etc/rc.d/init.d/DHCPd start #啟動DHCP服務。
/etc/rc.d/init.d/DHCPd stop #關閉DHCP服務。

⑸測試

選擇一台客戶機,進入windows,將IP地址選擇為自動獲得,重新啟動後,執行winipcfg /all

檢查DHCP服務是否設定正確。

二、如何管理DHCP服務:

DHCP伺服器建立好後,對於網路系統管理員來說如何更好的管理DHCP服務,將是一個非常重要的問題,雖然網路系統管理員可以通過查看DHCPd.leases檔案瞭解用戶端IP等資訊的分配情況,但是當網路中機器較多的時候,顯然不是一個非常好的方法。

本人在具體的實踐中,發現通過使用DHCPstatus工具,能夠通過Web瀏覽器就能夠非常好的瞭解DHCP伺服器的使用與分配情況。

具體操作如下:

⑴下載與安裝DHCPstatus軟體。

下載http://prdownloads.sourceforge.net/DHCPstatus/DHCPstatus_0.60.tar.gz

# tar xzvf DHCPstatus_x.xx.tar.gz -C /tmp

⑵仔細閱讀安裝目錄的install檔案,具體操作步驟如下:

(a)建立library目錄。

# mkdir /usr/local/DHCPstatus
# cd /usr/local/DHCPstatus

(b)解壓library的tar檔案到/usr/local/DHCPstatus目錄。

# tar xvf /tmp/DHCPstatus_x.xx/libraries.tar

將建立一個DHCPstatus目錄和DHCPstatis.ini檔案。

(c)根據具體的DHCP伺服器的設定,修改與編輯DHCPstatus.ini檔案,最主要的參數是:

title=DHCP Subnet Information
leases_file=/etc/DHCPd.leases
改為:
title=XXXX DHCP Subnet Information
leases_file=/var/lib/DHCP/DHCPd.leases
#注鬚根據具體的Linux發布版修改leases_file參數。

(d)如果以上建立DHCPd.conf檔案沒有包括如:/“ #$ 財務科/”這些資訊,最好加入,DHCPstaus.cgi指令碼通過讀取/etc/DHCPd.conf檔案來獲得這些資訊,注意$不能省略。

(e)安裝scripts檔案,拷貝scripts目錄下的DHCPstatus.cgi檔案到web服務的cgi-bin目錄:

# cp /tmp/DHCPstatus_x.xx/scripts/DHCPstatus.cgi /var/www/cgi-bin
# cp /path/to/DHCPstatus_x.xx/scripts/DHCPstatus /usr/local/bin
修改 #!/usr/local/bin/perl -w 為 #!/usr/bin/perl -w

(f)建立瀏覽器首頁,只要加入如下代碼:

<P ALIGN=/“center/”>
<A HREF=/“cgi-bin/DHCPstatus.cgi/”> DHCP Subnet Status </A>
</P>

(g)為了安全起見,可以給Web伺服器建立密碼,以Redhat7.2帶的Apache 1.3.20為例說明:

*修改/etc/httpd/conf/httpd.conf,將:

<Directory /"/var/www/html/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
改為:
<Directory /"/var/www/html/">
Options Indexes FollowSymLinks
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>

*在/var/www/html目錄建立一個.htaccess檔案,內容如下:
AuthName /"DHCP Status Access/"
AuthType Basic
AuthUserFile /var/www/html/.htpasswd
require valid-user

*執行htpasswd命令,在/var/www/html目錄建立一個.htpasswd檔案.

htpasswd -bc /var/www/html/.htpasswd admin XXXX

其中XXXX表示密碼,也可以增加更多的系統管理使用者,具體操作看man htpasswd
文檔。

(h)啟動httpd服務,/etc/rc.d/init.d/httpd restart

通過以上的設定,網路系統管理員就可以非常方便的管理DHCP服務,瞭解DHCP的使用與分配情況。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.