


Linux DHCP 服務器
在TCP/IP 的網絡中,任何計算機在存取、使用網絡資源之前,都必須正確的配置自身計算機的網絡參數,如:IP地址、子網掩碼、默認網關等等網絡通信必不可少的參數和策略。對于一個大型網絡而言,網絡的管理和維護對于網絡管理員來說是一個繁重而且艱巨的任務,首先,當絡結構發生改變,一臺甚至多臺計算機需要重新設置網絡,這樣無形的網絡管理員增加了很大的工作量。其次,IP地址等資源的嚴重匱乏,導致必須科學的、高效的分配、使用面臨枯竭的IP網絡地址資源,因此需要一種機制來讓TCP/IP的配置和管理從客戶端移動到網絡管理端,實現IP地址由網絡管理員集中管理,并且可以科學的分配IP地址資源。
DHCP 服務是Dynamic Host Configuration Protocol動態主機配置協議的縮寫。該協議由IETF(Internet網絡工程師任務小組)開發設計,其目的是為了減輕TCP/IP規劃的管理和維護的負擔,解決IP地址資源的匱乏問題。運行DHCP的服務器把TCP/IP網絡配置集中來管理,動態的分配和處理客戶端的IP地址等相關資源的配置,用DHCP租約等相關技術,提供了自動在TCP/Ip網絡上安全的、高效的分配和租用IP地址資源的機制。從而實現IP地址的集中的管理。,基本上不需要網絡管理員人為的干預。DHCP協議本身也被設計成BOOTP自舉協議的擴展,支持需要網絡配置信息的無盤工作站,對需要固定IP地址的系統也提供了很好的支持。
2DHCP服務器的安裝和配置
2.1獲得DHCP服務器軟件
在Linux中,幾乎所有的DHCP服務器軟件都采用paul Vixie/ISC DHCPD,來實現DHCP服務器的功能。目前大多數的Linux發行的版本中都包含了這個軟件,在安裝光盤中,以PRM安裝包的模式發布的,用現面命令安裝:
#rpm –ivh dhcpd-x.x.x.rpm
2.2增加主機的路由
為了使DHCP服務器能夠正確地為客戶計算機提供動態分配IP地址的服務。DHCPD服務器守護進程必須可以將IP包送到255.255.255.255這個IP地址上,因此服務器一定要建立一個到該主機的路由。使用下面命令添加路由:
#route add –host 255.255.255.255 dev eth0
注意:有幾個網絡接口提供DHCPD服務,那么也要在每一個網絡接口增加該路由。
2.3修改配置文件
DHCPD 默認的配置文件為/etc/dhcpd.conf。這是一個文本文件,在DHCPD中有一個語法分析器,可以對這個文件進行語法分析,獲得配置參數。在這個配置文件中。格式是遞規下降的,關鍵字大小寫敏感,可以有注釋,注釋是以#開頭的,到行的結束。這里給出了一個簡單的dhcpd.conf文件的例子,該配置文件配置的DHCP服務器是將172.16.0.0/22這個網段分配動態IP地址的。內容如下:
#examples
#默認租約時間
default-lease-time 86400;
#最大租約時間
max-leases-time 129600;
#子網掩碼選項
option subnet-mask 255.255.252.0;
#廣播地址
option broadcast-adress 172.16.3.255
#路由器地址
option routers 172.16.0.1;
#DNS服務器地址
option domain-name-servers 192.168.102.66;
#域名
option domain-name “doit.com.cn”;
#子網掩碼聲明
subnet 172.16.0.0 netmask 255.255.252.0{
#范圍
range 172.16.0.10 172.16.3.254;
}
該配置文件將允許DHCP服務器將172.16.0.10~172.16.3.254的IP地址分配給DHCP客戶端使用。
如果DHCP客戶在申請租約時不請求一個特定的租約失效的時間,則以default-lease-time 86400為租約時間,如果請求一個特定的租約失效的時間,則以max-lease-time 129600為租約時間。
服務器將下面的參數發給DHCP客戶端:
子網掩碼:255.255.252.0
廣播地址:172.16.3.255
網絡地址:172.16.0.0
默認網關:172.16.0.1
DNS服務器:192.168.102.66
如果要為一臺單獨的計算機分配固定的IP地址,可以在/etc/dhcpd.conf文件中加上一條:
host doit{
#doit計算機網卡的硬件地址。
Hardware Ethernet 00:50:DA:72:01:47;
#固定的IP地址
fixed-adress 172.16.0.7;
}
2.4dhcpd.leases文件
dhcpd.leases 文件是DHCP客戶計算機租約的數據庫文件,默認是在/var/lib/dhcpd/目錄下。文件內容包含租約聲明,每一次租約被獲取、更新、釋放,它的值都會被記錄到文件末尾。在DHCPD服務器第一次安裝后,并不會產生這個文件,所以要手動創建該文件。方法為:
#touch /var/lib/dhcpd/dhcpd.leases
該文件格式為:
lease ip-address { statements...}
每一個記錄都包含一個動態分配給客戶計算機的IP地址。在大括號中,包含了一些租約的信息。具體租約信息因客戶端的DHCP請求而稍有差別。
2.5運行DHCPD守護進程
啟動DHCPD服務的方法為:
#/etc/init.d/dhcpd start
停止DHCPD服務的方法為:
#/etc/init.d/dhcpd stop
重新啟動DHCPD服務的方法為:
#/etc/init.d/dhcpd restart
當一臺終端計算機動態獲得IP地址后,在/var/lib/dhcpd/dhcpd.leases文件中建立一條類似下面的記錄。記錄內容為:
lease 172.16.0.21{
starts 1 2003/04/23 17:25:32;
ends 1 2003/4/25 14:32:01;
hardware Ethernet 00:50:DA:76:00:2A;
uid 00:50:DA:72:01:47;
client-hostname “test”;
在這里需要注意的是dhcpd.leases文件的時間記錄采用了GMT時間,而不是本地區的時間。要看本地區的時間,執行現面的命令:
#date –u
3DHCP高級配置
3.1dhcpd.conf結構說明
在上面,我們介紹過,dhcpd.conf是一個遞規的下降的配置文件。有些和C語言類似,由參數、聲明兩個大的部分組成。參數類型語句主要告訴DHCPD 守護進程網絡的參數,如租約時間,子網掩碼、網關、DNS域名服務器等。而聲明則是描述網絡是如何構成的拓撲結構。用來標識網絡上客戶端計算機、要提供 IP地址資源,提供一個參數族組給一組聲明。
描述網絡拓撲結構聲明語句分為:shared-network和subnet聲明,如果要給一個子網內的客戶計算機動態分配IP地址,那么在subnet聲明中必須要有range聲明,用來說明地址范圍。如果要給一個客戶計算機一個靜態的指定的IP地址,那么,這樣的計算機要用host聲明。對于每一個要提供服務的與DHCP服務器連接的子網,都要有一個subnet聲明,即使是一個不提供IP地址動態分配服務的子網。
介紹一個典型的例子加以說明:
#example
#全局參數
shared-network 共享網絡名稱 {
subnet 172.16.0.0 netmask 255.255.252.0 {
#子網定義參數
#range 172.16.0.0;
}
group {
host test.doit.com.cn {
主機參數:IP地址、Mac地址等。
}
}
13.3.2語法詳解
DHCP的語法參數很多,在這里,我們介紹最常用的最重要的語句。
1、 聲明類語句
l shared-network name {
[參數]
[聲明]
}
shared -network用于告訴DHCP服務器哪些IP子網屬于一個物理網絡。任何一個在共享物理網絡的子網都必須聲明在shared-network語句中。屬于這個子網中的客戶計算機啟動的時候,將獲得在shared-network語句中指定的參數,除非這些參數被subnet和host參數覆蓋。用 shared-network是一種暫時的辦法,例如:企業中用一個B類網絡129.7,企業內部的部門甲被劃在子網129.7.3.0/24中,這里的網絡號碼為8個bit,主機號也為8位。但是如果部門甲很快的增長,超過了254臺主機,而物理網絡來不及增加子網,就要在這個物理網絡中運行兩個 8bit子網掩碼的子網。而這兩個子網還同時在一個物理網絡中,shared-network可以做如下聲明。
shared-network net1 {
subnet 129.7.3.0 netmask 255.255.255.0 {
range 129.7.3.10 129.7.3.254;
}
##############################################
subnet 129.7.4.0 netmask 255.255.255.0 {
range 129.7.4.10 129.7.4.254;
}
這里的net1是網絡共享名稱。
l subnet語句
subnet subnet-number netmask {
[參數]
[聲明]
}
subnet語句用于提供足夠的信息來闡明一個IP地址是否屬于該子網的IP地址可以動態的分配給用戶,這些IP地址必須在range聲明里指定。Subnet number可以是IP地址或能被解析到這個子網的域名。Netmask是子網的掩碼。
l subnet語句
range [dynamic-bootp] low-address [high-adress]
對于任何一個有動態分配的IP地址的subnet語句中,至少有一個range語句。用來標識要分配的IP地址的范圍。
l host語句
l host hostname {
[參數]
[聲明]
}
host語句的作用是給一個特定客戶計算機分配指定的IP地址。
l group語句
group {
[參數]
[聲明]
}
用于給一組聲明提供參數。
l allow和deny語句
allow和deny語句用來控制DHCPD對客戶計算機的請求。
l unknown-clients關鍵字
allow unknown-clients;
deny unknown-clients;
allow unknown-clients;允許DHCPD可以動態的分配IP給位置的客戶計算機。而deny unknown-clients;則是不允許。默認為allow unknown-clients。
l bootp關鍵字
allow bootp;
deny bootp;
指明DHCPD是否響應BOOTP的查詢,默認是允許的。
2、 參數類語句
l default-lease-time語句
語法:
default-lease-time time;
指定默認的租約時間,單位為秒。如果客戶計算機在請求一個租約但是沒有租約失效時間,租約時間就是默認的租約時間。
l max-lease-time語句
語法:
max-lease-time time;
最大租約時間。如果客戶計算機在請求租約時間時發出租約失效的請求,則用最大的租約時間。
l hardware語句
語法:
hardware hardware-type hardware-adress;
指明物理硬件接口類型和硬件地址,一般為以太網卡。硬件地址由6個8位的組構成,每組之間用“:”分割。例如:00:A0:D2:1A:BE:0E
l server-name語句
語法:
server-name “name”;
告訴客戶計算機服務器的名字。
l fixed-address語句
語法:
fixed-adress address [,address……];
指定一個或者多個IP地址給固定的客戶計算機,語句只能出現在host聲明中。
3、 選項類參數
這類參數以option開頭,后面跟一個選項名稱,選項名稱后面是選項數據,選項很多,這里列出一些常用的選項。
l Option routers ip-adress [,ip-address];
指明在客戶計算機子網內的路由器地址,可以為一個,也可以為多個。
l Option time-servers ip-address[,ip-address…….];
指明時間服務器的IP地址。
l Opton domain-name-servers ip-address [,ip-address…….]
指明DNS域名服務器的IP地址。
l Option host-name string;
給客戶計算機指定主機名稱。
l Option domain-name string;
指明服務器和客戶計算機所在的域。
l Option interface-mtu 1500;
指明網絡界面的MTU,這里的MTU是整數。
l Option broadcast-address ip-address;
指定子網的廣播地址。
小節
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解