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
目標端口 源IP 目標IP
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
目標端口 源IP 目標IP
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服務
service dhcpd restart
在客戶端重啓網卡
service network restart