想每天能聽到小妞的語音播報,想學更多學校里和書本上學不到的IT技術或技能,歡迎關注微信公眾號:xiniubook2008。或加微博:我的圖書我做主,關注與論壇的一些活動,免費獲書。

動態主機配置協議(DHCP)是用來自動給客戶端器分配TCP/IP信息的網絡協議,如IP地址、網關、子網掩碼等信息。每個DHCP客戶端通過廣播連接到區域內的DHCP服務器,該服務器會相應請求返回包括IP地址、網關和其他網絡配置信息。DHCP的請求過程如圖12.3所示。

圖12.3 DHCP請求過程
客戶端請求IP地址和配置參數的過程有以下幾個步驟:
(1)客戶端需要尋求網絡IP地址和其他網絡參數,然后向網絡中廣播,客戶端發出的請求名稱叫DHCPDISCOVER。如廣播網絡中有可以分配IP地址的服務器,服務器會返回相應應答,告訴客戶端可以分配,服務器返回包的名稱叫DHCPOFFER,包內包含可用的IP地址和參數。
(2)如果客戶在發出DHCPOFFER包后一段時間內沒有接收到響應,會重新發送請求,如廣播區域內有多于一臺的DHCP服務器,由客戶端決定使用哪個。
(3)當客戶端選定了某個目標服務器后,會廣播DHCPREQUEST包,用以通知選定的DHCP服務器和未選定的DHCP服務器。
(4)服務端收到DHCPREQUEST后會檢查收到的包,如果包內的地址和所提供的地址一致,證明現在客戶端接收了是自己提供的地址,如果不是,則說明自己提供的地址未被采納。如被選定的服務器在接收到DHCPREQUEST包以后,因為某些原因可能不能向客戶端提供這個IP 地址或參數,可以向客戶端發送DHCPNAK包。
(5)客戶端在收到包后,檢查內部的IP地址和租用時間,如發現有問題,則發包拒絕這個地址,然后重新發送DHCPDISCOVER包。如無問題,就接受這個配置參數。
12.3.2配置DHCP服務器本節主要介紹DHCP服務器的配置過程,包含安裝,配置文件設置,服務器啟動等步驟。
1.軟件安裝
DHCP服務依賴的軟件可以從rpm包安裝或從源碼進行安裝,本節以rpm包為例說明DHCP服務的安裝過程,如示例12-14所示。
【示例12-14】
#確認當前系統是否安裝相應軟件包
[root@CentOS~]# rpm -qa|grep dhcp
dhcp-4.1.1-34.P1.el6.centos.x86_64
dhcp-common-4.1.1-34.P1.el6.centos.x86_64
#如使用rpm安裝,使用如下命令
[root@CentOSPackages]# rpm -ivh dhcp-4.1.1-34.P1.el6.centos.x86_64.rpm
經過上面的設置,DHCP服務已經安裝完畢,主要的文件如下:
q /etc/dhcp/dhcpd.conf為DHCP主配置文件。
q /etc/init.d/dhcpd DHCP服務起停腳本。
2.編輯配置文件/etc//dhcpd.conf
要配置DHCP服務器,需修改配置文件/etc/dhcp/dhcpd.conf。如果不存在則創建該文件。本示例實現的功能為當前網絡內的服務器分配指定IP段的IP地址,并設置過期時間為2天。配置文件如下。
【示例12-15】
[root@CentOSPackages]# cat -n /etc/dhcp/dhcpd.conf
1 #定義所支持的DNS動態更新類型。none:表示不支持動態更新,interim:表示DNS互動更新模式,ad-hoc:表示特殊DNS更新模式
2 ddns-update-style ad-hoc;
3 #指定接收DHCP請求的網卡的子網地址,注意不是本機的IP地址。netmask為子網掩碼
4 subnet192.168.19.0 netmask255.255.255.0{
5 #指定缺省網關
6 option routers 192.168.19.1;
7 #指定缺省子網掩碼
8 option subnet-mask 255.255.255.0;
9 #指定最大租用周期
10 max-lease-time 172800 ;
11 #此DHCP服務分配的IP地址范圍
12 range 192.168.19.230 192.168.19.240;
13 }
以上示例文件列出了一個子網的聲明,包括routers缺省網關、subnet-mask子網掩碼和max-lease-time最大租用周期,單位是秒。配置文件的更多選項更多可以參考“man dhcpd.conf”獲取更多幫助信息。
【示例12-16】
[root@CentOSPackages]# /etc/init.d/dhcpd start
Starting dhcpd:[ OK ]
如啟動失敗可以參考屏幕輸出定位錯誤內容,或查看/var/log/messages的內容,然后參考dhcpd.conf的幫助文檔。
12.3.3配置DHCP客戶端當服務端啟動成功后,客戶端需要做以下配置以便自動獲取IP地址。客戶端網卡配置如示例12-17所示。
【示例12-17】
[root@CentOS~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
HWADDR=00:0c:29:be:db:d5
TYPE=Ethernet
UUID=363f47a9-dfb8-4c5a-bedf-3f060cf99eab
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
如需使用DHCP服務, BOOTPROTO=dhcp表示將當前主機的網絡IP地址設置為自動獲取方式。測試過程如示例12-18所示。
【示例12-18】
[root@CentOS~]# service network restart
Shutting down interface eth1: [OK ]
Shutting down loopback interface: [OK ]
Bringing up loopback interface: [OK ]
Bringing up interface eth1:
Determining IP information for eth1... done. [ OK ]
#啟動成功后確認成功獲取到指定IP段的IP地址。
[root@CentOS~]# ifconfig
eth1Link encap:Ethernet HWaddr00:0C:29:BE:DB:D5
inet addr:192.168.19.230Bcast:192.168.19.255Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:febe:dbd5/64Scope:Link
UPBROADCAST RUNNING MULTICASTMTU:1500 Metric:1
RXpackets:573 errors:0 dropped:0 overruns:0 frame:0
TXpackets:482 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RXbytes:59482 (58.0 KiB) TX bytes:67044(65.4 KiB)
客戶端配置為自動獲取IP地址,然后重啟網絡接口,啟動成功后使用ifconfig查看成功獲取到IP地址。
注意:本節介紹了DHCP的基本功能,DHCP包含其他更多的功能,如需了解可參考DHCP的幫助文檔或其他資料。
喜歡可以購買《超容易的Linux系統管理入門書》,京東、當當、亞馬遜均有銷售。
http://item.jd.com/11403348.html
http://product.dangdang.com/23418126.html

新聞熱點
疑難解答