DHCP服務概述
名稱:DHCP Dynamic Host Configuration Protocol
功能:DHCP是一個區域網路的網絡協定。使用UDP協定工作,主要有兩個用途:
1、給内部網絡或網絡服務提供商自動配置設定IP位址,主機名,DNS伺服器,域名
2、配合其他服務,實作內建化管理功能。如無人值守安裝伺服器
特點:C/S 模式 用戶端/服務端 bs apache
自動配置設定IP位址,友善管理
DHCP不會同時租借相同的IP位址給兩台主機;
DHCP管理者可以限制特定的計算機使用特定的IP位址
可以為每個DHCP作用域設定很多選項
客戶機在不同子網間移動時不需要重新設定IP位址,每次都自動擷取ip位址就可以了。
DHCP的缺點
當網絡上存在多伺服器時,一個DHCP伺服器不能查出已被其他伺服器租出去的IP位址;
DHCP伺服器不能跨路由器與客戶機通信,除非路由器允許BOOTP協定轉發。
端口:
DHCP服務使用:端口67(bootps) 68(bootpc)
檢視 vim/etc/services
DHCP協定由 bootp 協定發展而來,是BOOTP的增強版本,bootps 代表服務端端口,bootpc代表用戶端端口
bootp 協定:引導程式協定(bootp) 它可以讓無盤工作站從一個中心伺服器上擷取IP位址,為區域網路中的無盤工作站配置設定動态IP位址,并不需要每個使用者去設定靜态IP位址。
TOOTP有一個缺點:在設定前需事先獲得用戶端的硬體位址,而且 MAC位址與IP的對應是靜态的。換而言之,BOOTP非常缺乏“動态性”, 若在有限的IP資源環境中,BOOTP的一一對應會造成非常可觀的浪費
DHCP可以說是BOOTP的增強版本,它分為兩個部分:一個是伺服器端,而另一個是用戶端。所有的IP網絡設定資料都由DHCP伺服器集中管理,并負責處理用戶端的DHCP要求;而用戶端則會使用從伺服器配置設定下來的IP環境資料。比較BOOTP,DHCP透過“租約”的概念,有效且動态的配置設定用戶端TCP/IP設定,而且 作為相容考慮,DHCP也完全照顧了BOOTP Client 需求。
DHCP服務運作原理:
DHCP用戶端向服務端請求IP位址過程
discover
目标端口 源IP 目标IP
udp67 0.0.0.0 255.255.255.255
即 DHCP客戶機尋找 DHCP伺服器的過程。DHCP客戶機以廣播方式(因為DHCP伺服器的IP位址對于客戶機來說是未知的) 。 發送DHCP DISCOVER 發現資訊來尋找DHCP伺服器。即向位址255.255.255.255發送特定的廣播資訊。網絡上每一台安裝了 TCP/IP 協定的主機都會接收到這種廣播資訊,但隻有DHCP伺服器才會做出響應
offer
目标端口 源IP 目标IP
68 dhcp伺服器的ip 255.255.255.255
即 DHCP伺服器提供IP位址的階段。在網絡中接收到DHCPDISCOVER 發現資訊的DHCP伺服器都會做出響應,它從尚未出租的IP位址中挑選一個配置設定給DHCP客戶機。向DHCP客戶機發送一個包含出租的IP位址和其他設定的DHCPOFFER 提供資訊
request
udp 67 0.0.0.0 255.255.255.255
即 DHCP客戶機選擇某台DHCP伺服器提供的IP位址的階段。如果有多台DHCP伺服器向DHCP客戶機發來的DHCPOFER提供資訊,則DHCP客戶機隻接受第一個收到的DHCPoffer提供資訊,然後它就以廣播方式回答一個DHCPREQUEST請求資訊,該資訊中包含它所標明的DHCP伺服器請求IP位址的内容。之是以要以廣播形式回答,是為了通知所有DHCP伺服器,它将選擇某台DHCP伺服器所提供的IP位址。
ack
udp 68 伺服器ip 255.255.255.255
即 DHCP伺服器确認所提供的IP位址的階段。當DHCP伺服器收到DHCP客戶機回答的DHCPREQUEST請求資訊後,它便向DHCP客戶機發送一個包含它所提供的IP位址和其他設定的DHCPack确認資訊。告訴DHCP客戶機可以使用它所提供的IP位址。然後DHCP客戶機便将其TCP/IP協定與網卡綁定,另外 除DHCP客戶機選中的伺服器外,其他的DHCP伺服器都将收回曾提供的IP位址
注意:用戶端執行DHCP DISCOVER後 ,如果沒有DHCP伺服器響應用戶端的請求,用戶端會随機使用 169.254.0.0/16 網段中的一個IP位址配置本機位址。
169.254.0.0/16 是windows自動專有IP尋址範圍,也就是在無法通過DHCP擷取IP位址時,由系統自動配置設定的IP位址段。
早先的linux上并不會産生這條路由,現在有這條路由大概是為了和windows相容。
[root@xuegod63 ~]#route -n #檢視路由表,netstat -rn也可以。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.9.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.9.100.1 0.0.0.0 UG 0 0 0 eth0
軟體包安裝
root@xuegod63 ~]# yuminstall dhcp -y
配置檔案位置
/etc/dhcp/dhcpd.conf
[root@xuegod63 ~]# cat/etc/dhcp/dhcpd.conf
#
# DHCP ServerConfiguration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
[root@xuegod63 ~]# cp/etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
[root@xuegod63~]#cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample/etc/dhcp/dhcpd.conf
cp: overwrite`/etc/dhcp/dhcpd.conf'? y
當DHCP主程式包安裝好後會自動生成主配置檔案的範本檔案
/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample
而在/etc目錄下回自動建立一個空白的dhcpd.conf 主配置檔案。
現在我們将範本配置檔案複制到/etc 目錄下替換掉空白的dhcpd.conf主配置檔案
服務啟動關閉腳本,檢視端口
/etc/init.d/dhcpd start
service dhcpd restart
開機啟動
chkconfig dhcpd on #配置的服務要保證開機啟動
1)chkconfig
運作級别3 自動加載dhcpd 服務
chkconfig --level 3dhcpd on
運作級别3 關閉自動加載dhcpd服務
chkconfig --level 3dhcpd off
修改配置檔案實戰
說明:
dhcp 範本配置檔案内容包含了部分參數、聲明以及選項的用法,其中注釋部分可以放在任何位置,并以“#”号開頭,當一行内容結束時,以“;”号結束,大括号所在行除外】
可以看出整個配置檔案分成全局和局部兩個部分。但并不容易看出那些屬于參數,那些屬于聲明和選項
概念與協定:
作用域:可以配置設定IP的範圍 subnet
位址池:可以配置設定給用戶端的IP,range包括的IP
保留位址: 指定給某個用戶端使用一個特定IP,通過host配置的
租約(時間): 用戶端可以使用這個IP位址的時間
配置檔案:/etc/http/httpd.conf 部配置設定置解釋
#option definitions common to all supportednetworks... 定義全局配置,通用于所有支援的網絡選項
option domain-name “example.org”; #為用戶端指定所屬的域
option domain-name-servers ns1.example.com.org,ns2.example.com.org; 為用戶端指定DNS伺服器位址
(3)default-lease-time 600;
作用:定義預設IP租約時間,以秒為機關的租約時間。
50%:續約。(續不上繼續用)
87.5%:再次續約。(續不上找别人)
dhcp客戶機除了在開機的時候發出DHCPREQUEST 請求之外,在租約期限一半的時候也會發出DHCPrequest,如果此時得不到DHCP伺服器的确認的話,工作站還可以繼續使用該IP;當租約起過了87.5%時,如果客戶機仍然無法與當初的DHCP伺服器聯系上,它将與其他DHCP伺服器通信。如果網絡上再沒有任何DHCP協定伺服器運作時,該客戶機必須停止使用該IP位址,并從新發送一個DHCPdiscover資料包 開始,再一次重複整個過程。要是您想退組,可以随時送出DHCPRELEASE指令解約,就算您的租約在前一秒鐘才獲得的。
(4)max-lease-time number7200;
作用:定義用戶端IP租約時間的最大值,當用戶端超過租約時間,卻尚未更新IP時,最長可以使用該IP的時間;
例:
比如,機器在開機獲得IP位址後,關機了。這時 當時間過了 default-lease-time 600秒後,沒有機器向DHCP續約,DHCP會保留7200秒,保留此IP位址不用于配置設定給其他機器。當超過7200秒後,将不再保留此IP位址給此機器。
注意:(3)、(4)都是以秒為機關的租約時間,該項參數可以作用在全局配置中,也可以作用在局部配置中。
log-facility local7; #定義日志類型為 local7
聲明一般用來指定IP作用域,定義為用戶端配置設定的IP 位址池等等
聲明格式如下:
subnet 網絡号 netmask 子網路遮罩{
選項或參數
}
常見聲明的使用 如下:
(1) subnet 網絡号 netmask 子網路遮罩{......}
作用:定義作用域,指定子網
如
subnet 10.5.5.0 netmask255.255.255.224 {
range 10.5.5.26 10.5.5.30;
option domain-name-serversns1.internal.example.org;
option domain-name"internal.example.org";
option routers 10.5.5.1;
option broadcast-address 10.5.5.31;
default-lease-time 600;
max-lease-time 7200;
注意: 網絡号必須與DHCP伺服器的網絡号相同
下面介紹一下每個選項的含義
(1) range 起始IP位址 結束IP位址
作用: 指定動态IP位址範圍
注意:可以在subnet(子網)聲明中指定多個range,但多個range所定義IP範圍不能重複
常用選項介紹
選項通常用來配置DHCP用戶端的可選參數,比如定義用戶端的DNS位址,預設網關等。選項内容都是以option關鍵字開始。
常見選項使用如下:
(1)option routers IP位址
作用:為用戶端指定預設網關
如:optionrouters 10.5.5.1
(3) option domain-name-servers IP 位址
作用:為用戶端指定DNS伺服器位址
注意:(1)、(2) 、(3)選項可以用在全局配置中,也可以用在局部配置中。
租約資料庫檔案
租約資料庫檔案用于儲存一系列的租約聲明,其中包含用戶端的主機名、MAC位址、配置設定到的IP位址
以及IP位址的有效期等相關資訊。這個資料庫檔案是可編輯的ASCII格式文本檔案。每當發生租約變化的時候,都會在檔案結尾添加新的租約記錄。
DHCP 剛安裝好後租約資料庫檔案 dhcpd.leases 是個空檔案
/var/lib/dhcpd/dhcpd.leases
當DHCP服務正常運作後就可以使用cat 指令檢視租約資料庫檔案内容了。
執行個體:
公司有60台計算機,IP位址段為192.168.0.1-192.168.0.254. 子網路遮罩是255.255.255.0,網關為192.168.0.1,192. 網段位址168.0.2-192.168.0.30給伺服器配置,用戶端可以使用的位址段為192.168.0.100-200,其餘ip位址為保留位址。
實驗環境:
我的虛拟機使用橋接模式是否可行? 不行,因為你的區域網路中已經有dhcp伺服器,這樣你就很難讓你的用戶端從你的dhcp伺服器擷取位址。同時也會造成公司區域網路中其他機器因為擷取你的dhcp伺服器配置設定的位址 而上不了網
虛拟機網卡置成vmnet4
client端 設定為自動擷取ip位址
用戶端
例2: ip位址綁定
在DHCP 中的IP位址綁定用于給用戶端配置設定固定IP位址。比如伺服器需要使用固定IP位址就可以使用IP位址綁定。通過MAC位址與IP位址的對應關系為指定的實體位址計算機配置設定固定IP位址。
整個配置過程需要用到host聲明和hardware 、fixed-address參數。
(1) host 主機名{......}
作用:用于定義保留位址
(2)hardware 類型 硬體位址
作用:定義網絡接口類型和硬體位址。常用類型為以太網(ethernet),位址為MAC位址。
(3)fixed-address IP位址
作用: 定義DHCP用戶端指定的IP位址。
vim/etc/dhcp/dhcpd.conf 添加host字段
在服務端重新開機dhcp服務