一. DHCP的基本概念
1. DHCP的定義
DHCP<動態主機配置協議>是TCP/IP協議集所提供的一種實現自動分配IP配置信息的子協議。
2. DHCP的功能
① 動態分配(每一個IP地址都具有租約)
② 分配網關、WINS、DNS系統信息
③ 與DNS相結合實現動態更新
④ 保留IP地址給指定主機
3. DHCP的體系結構
DHCP服務器:運行DHCP服務軟件包和DHCP協議的主機
(裝有WIN2K、WINNT、LINUX、UNIX系統的主機)
DHCP客戶機:運行DHCP協議可以發送DHCP請求的主機
(裝有WIN2K、WINNT、WIN95/98/ME/XP、LINUX、UNIX系統的主機)
二. DHCP工作原理
1. 分配IP地址過程
① CLIENT發送廣播DHCPDISCOVER尋找DCHP服務器。
② 服務器發送廣播DHCPOFFER響應CLIENT的請求。
③ CLIENT會檢查得到的IP信息是否完整並且發送廣播DHCPREQUEST通知DHCP服務器已獲得IP地址。
④ SERVER發送廣播DHCPACK確認客戶機的請求,表示分配成功。
2. 更新租約
① DHCP客戶端重新啓動時 每次DHCP客戶端重新啓動時, 都會自動利用廣播的方式,給DHCP服務器發送DHCPREQUEST更新信息,要求繼續租用原來的IP地址
② 50%時,CLIENT以點到點方式發送DHCPREQUEST請求服務器的更新租約。
③ 87.5%時,CLIENT發送廣播DHCPREQUEST尋找其他DHCP服務器,如果更新成功的話,DHCP服務器向CLIENT發送DHCPACK;如果不成功的話則發送DHCPNACK。
三. DHCP服務的配置
1. 安裝DHCP的服務軟件包
# mount /dev/cdrom(插入第二張安裝光盤)
# cd /mnt/cdrom/RedHat/RPMS
# rpm –ivh dhcp-3.0pl1-23.i386.rpm
相關文件和目錄:
/var/lib/dhcp目錄 :存放租約文件。
/etc/dhcpd.conf :核心配置文件, 要手工創建。
/var/lib/dhcp/dhcpd.leases :客戶租約的數據庫文件。
/etc/sysconfig/dhcpd :配置DHCP的啓動參數。
/etc/sysconfig/dhcrelay :配置DHCP中繼代理。
/etc/rc.d/init.d/dhcpd (/etc/init.d/dhcpd):DHCP服務的啓動腳本
2. /etc/dhcpd.conf
# vi /etc/dhcpd.conf
格式:
選項/參數(放在所有作用域之上的選項/參數,作用範圍是整個DHCP服務器)
聲明 {
選項/參數(只在聲明中的有效)
}
說明:
(1) 聲明
n subnet 網絡號 netmask 子網掩碼 { ……..}
功能:定義子網 (定義作用域 )
注意:網絡號必須與服務器的網絡號相同,如果服務器有多塊網卡時,必須爲每一個網卡都建立一個相同網絡號的子網,但是不用分配地址的子網可以不定義地址範圍
n range 起始IP地址 終止IP地址;
功能:定義作用域範圍
注意:subnet聲明中至少有一個range,也可以在一個subnet中有多個range,但多個range所定義IP範圍不能重複。
n host 主機名 {………}
功能:定義保留地址
注意:通常放在subnet聲明中
n group {……..}
功能:定義組參數
注意:常用於包含host聲明和subnet聲明
n shared-network 名稱 {………..}
功能:設置DHCP服務器多個IP子網共享同一個物理網絡
注意:通常用於包含多個subnet聲明
(2) 參數
n ddns-update-style (none|ad-hoc|interim) ;
功能:定義動態更新類型
注意:none 表示不支持動態更新
ad-hoc 表示特殊更新模式
interim 表示互動更新模式
在文件中必須包含該參數,且放在第一行
n ignore client-updates;
功能:忽略客戶機更新
注意:該選項只能作爲服務器選項
n default-lease-time 數字 ;
功能:指定默認地址租約
注意:可以作爲服務器選項和作用域選項,默認單位爲秒
n max-lease-time 數字;
功能:指定最長的地址租期
注意:可以作爲服務器選項和作用域選項,默認單位爲秒
n hardware 硬件類型 硬件地址;
功能:指定硬件接口類型及硬件地址
注意:硬件類型可以取ethernet/token-ring
硬件地址爲網卡地址的MAC地址
該選項只能用於host聲明中
n fixed-address ip地址;
功能:定義DHCP客戶機指定的IP地址
注意:該選項只能用於host聲明中
n server-name 主機名;
功能:通知DHCP客戶機服務器的主機名
注意:可以作爲服務器選項和作用域選項
(3) 選項
n option domain-name “域名”;
功能:爲客戶機指明DNS域名
注意:可以作爲服務器選項和作用域選項
n option domain-name-servers ip地址[,ip地址…………];
功能:指定客戶機的DNS服務器的地址
注意:可以作爲服務器選項和作用域選項
n option host-name “主機名”;
功能:爲客戶機指定主機名
注意:可以作爲服務器選項和作用域選項
n option routers ip地址[,ip地址……….];
功能:爲客戶機指定默認網關
注意:可以作爲服務器選項和作用域選項
n option netbios-name-servers ip地址[,ip地址……..];
功能:爲客戶機指定WINS服務器地址
注意:可以作爲服務器選項和作用域選項
n option broadcast-address 廣播地址;
功能:設置客戶機的廣播地址
注意:可以作爲服務器選項和作用域選項
n option subnet-mask 子網掩碼;
功能:設置客戶機的子網掩碼
注意:可以作爲服務器選項和作用域選項
n option nis-domain “名稱”;
功能:定義客戶機的所屬NIS域的名稱
注意:可以作爲服務器選項和作用域選項,且只對unix/linux客戶機有效
n option nis-servers ip地址[,ip地址……];
功能:定義客戶機的NIS域服務器的地址
注意:可以作爲服務器選項和作用域選項,且只對unix/linux客戶機有效
實例:設置dhcpd.conf文件,達到以下要求:
(1) 不支持dns動態更新,且忽略客戶機的更新
(2) 服務器的默認地址租約時間爲3600秒,最大地址租約時間爲7200秒
(3) 所有作用域的客戶機後綴域名爲abc.com,DNS服務器地址爲192.168.0.254
(4) 所有作用域的客戶機默認網關地址192.168.0.1
(5) 定義作用域192.168.0.0子網,地址掩碼爲255.255.255.0,地址範圍爲192.168.0.2-----192.168.0.250
(6) 保留192.168.0.0子網中的192.168.0.8給以太網卡物理地址爲00:E0:4C:70:33:65的客戶機
#vi /etc/dhcpd.conf
ddns-update-style none;
ignore client-updates;
default-lease-time 3600;
max-lease-time 7200;
option routers 192.168.0.1;
option domain-name “abc.com”;
option domain-name-servers 192.168.0.254;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.250;
host c1 {
hardward ethernet 00:E0:4C:70:33:65;
fixed-address 192.168.0.8;
}
}
3. 設置DHCP守護進程的工作參數
#vi /etc/sysconfig/dhcpd
DHCPDARGS=eth0(設置DHCP守護進程監聽網卡接口)
4. 啓動DHCP服務器
#service dhcpd start
四. DHCP客戶端的配置
1. Linux客戶端
(1) 設置網卡採用dhcp啓動協議,自動獲取ip地址信息
#vi /etc/sysconfig/network-scripts/ifcfg-ethX(X可以0,1,2……)
修改BOOTPROTO爲:
BOOTPROTO=dhcp
(2) 獲取IP地址
#ifdown ethX ;ifup ethX (X可以取0,1,2,……)
注意:linux系統的dhcp客戶端使用dhclient服本來獲取IP地址信息
2. Windows客戶端
(1) 右擊網上鄰居----屬性------雙擊tcp/ip協議----選擇“自動獲動IP地址”
(2) c:\>ipconfig/release
c:\>ipconfig/renew
五. 配置案例
要求:一臺RedHat Linux 9.0主機,eth0的ip地址爲:192.168.0.1,現要求利用dhcpd軟件製做一臺滿足以下要求的DHCP服務器:
(1) 不支持dns動態更新,且忽略客戶機的更新
(2) 服務器的默認地址租約時間爲3600秒,最大地址租約時間爲7200秒
(3) 所有作用域的客戶機後綴域名爲abc.com,DNS服務器地址爲192.168.0.254
(4) 所有作用域的客戶機默認網關地址192.168.0.1
(5) 定義作用域192.168.0.0子網,地址掩碼爲255.255.255.0,地址範圍爲192.168.0.2-----192.168.0.250
(6) 保留192.168.0.0子網中的192.168.0.8給以太網卡物理地址爲00:E0:4C:70:33:65的客戶機
(7) 綁定dhcp服務在eth0接口上
配置過程:
(1) # rpm –ivh dhcp-3.0pl1-23.i386.rpm
(2) # vi /etc/dhcpd.conf
ddns-update-style none;
ignore client-updates;
default-lease-time 3600;
max-lease-time 7200;
option routers 192.168.0.1;
option domain-name “abc.com”;
option domain-name-servers 192.168.0.254;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.250;
host c1 {
hardward ethernet 00:E0:4C:70:33:65;
fixed-address 192.168.0.8;
}
}
(3) #vi /etc/sysconfig/dhcpd
DHCPDARGS=eth0
(4) # /etc/rc.d/init.d/dhcpd restart
六. 補充內容
1. DHCP中繼代理設置
#vi /etc/sysconfig/dhcrelay
INTERFACES=“eth0” 設置與DHCP服務器相連的接口名
DHCPSERVERS=“192.168.2.1” 設置DHCP服務器的地址
2. DHCP服務的部署
(1) 小型網絡中可以只用一臺DHCP服務器管理整個網絡的IP地址, 對於一些dns,wins,web服務器應使用靜態ip
(2) 大型網絡由多個路由器相連時,可以在每個子網設置一臺DHCP服務器,或者通過DHCP中繼,再或者是通過RFC 1542路由器實現跨路由分配分配IP地址
在大型網絡可以有多臺DHCP服務器,並且相互提供備份,所謂的備份就是每個服務器同時建立所備份服務器的作用域,但作用