DHCP服務
一、DHCP服務
1、DHCP概念
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個局域網的網絡協議,使用UDP協議工作, 主要有兩個用途:給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員作為對所有計算機作中央管理的手段,。DHCP有3個端口,其中UDP67和UDP68為正常的DHCP服務端口,分別作為DHCP Server和DHCP Client的服務端口;546號端口用於DHCPv6 Client,而不用於DHCPv4,是為DHCP failover服務,這是需要特別開啟的服務,DHCP failover是用來做“雙機熱備”的。
2、DHCP過程
(1)DHCP Client以廣播的方式發出DHCP Discover報文。
(2)所有的DHCP Server都能夠接收到DHCP Client發送的DHCP Discover報文,所有的DHCP Server都會給出響應,向DHCP Client發送一個DHCP Offer報文。DHCP Offer報文中“Your(Client) IP Address”字段就是DHCP Server能夠提供給DHCP Client使用的IP地址,且DHCP Server會將自己的IP地址放在“option”字段中以便DHCP Client區分不同的DHCP Server。DHCP Server在發出此報文後會存在一個已分配IP地址的紀錄。
(3)DHCP Client只能處理其中的一個DHCP Offer報文,一般的原則是DHCP Client處理最先收到的DHCP Offer報文。DHCP Client會發出一個廣播的DHCP Request報文,在選項字段中會加入選中的DHCP Server的IP地址和需要的IP地址。
(4)DHCP Server收到DHCP Request報文後,判斷選項字段中的IP地址是否與自己的地址相同。如果不相同,DHCP Server不做任何處理只清除相應IP地址分配記錄;如果相同,DHCP Server就會向DHCP Client響應一個DHCP ACK報文,並在選項字段中增加IP地址的使用租期信息。
(5)DHCP Client接收到DHCP ACK報文後,檢查DHCP Server分配的IP地址是否能夠使用。如果可以使用,則DHCP Client成功獲得IP地址並根據IP地址使用租期自動啟動續延過程;如果DHCP Client發現分配的IP地址已經被使用,則DHCP Client向DHCPServer發出DHCP Decline報文,通知DHCP Server禁用這個IP地址,然後DHCP Client開始新的地址申請過程。
(6)DHCP Client在成功獲取IP地址後,隨時可以通過發送DHCP Release報文釋放自己的IP地址,DHCP Server收到DHCP Release報文後,會回收相應的IP地址並重新分配。
3、DHCP的狀態
狀態 | 解釋 |
DHCP discover | 客戶端到服務器端 |
DHCP offer | 服務器端到客戶端 |
DHCP request | 客戶端到服務端 |
DHCP nack | 服務器端到客戶端指示客戶端的網絡地址是不正確的 |
DHCP ack | 服務器端到客戶端 |
DHCP decline | 客戶端到服務器端,指示地址已經被使用 |
DHCP release | 客戶端到服務器端,放棄網絡地址和取消剩余的租約時間 |
DHCP inform | 客戶端到服務器端,只要求本地配置參數,客戶端已經具有外部配置的網絡地址 |
4、如何續租呢?
當客戶端向服務器端取得地址以後得到租期,當租期達到某個期限時,客戶端主動向服務器端發起廣播請求
%50:租賃時間達到50%時來續租,剛想DHCP服務器發現新的DHCP request請求。如果dhcp服務沒有拒絕的理由,則回應DHCP ack信息。當DHCP客戶端收到應答信息後,就重新開始新的租用期限。 87.5%:如果之前DHCP server沒有回應,等到租約期的87.5%時,主動再發送一次廣播請求。
5、DHCP的配置文件
主配置文件 /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd6.conf 啟動配置文件 /etc/rc.d/init.d/dhcpd /etc/rc.d/init.d/dhcpd6 中繼器 /usr/sbin/dhcrelay /etc/rc.d/init.d/dhcrelay
6、/etc/dhcp/dhcpd.conf配置文檔詳解
# option definitions common to all supported networks... option domain-name "example.org"; #searchname option domain-name-servers ns1.example.org, ns2.example.org; #設置DNS服務器地址 default-lease-time 600; #設置租約時長 max-lease-time 7200; #設置客戶端最長租期 # Use this to enble / disable dynamic dns updates globally. #ddns-update-style none; #設置DHCP更新 # If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. #authoritative; # Use this to send dhcp log messages to a different log file (you also # have to hack syslog.conf to complete the redirection). log-facility local7; #設置日誌級別 # No service will be given on this subnet, but declaring it helps the # DHCP server to understand the network topology. subnet 10.152.187.0 netmask 255.255.255.0 { } # This is a very basic subnet declaration. subnet 10.254.239.0 netmask 255.255.255.224 { range 10.254.239.10 10.254.239.20; #設置可分配IP的範圍 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; #設置客戶端默認網關 } filename #指明引導文件名稱 next-server #提供引導文件的服務器IP地址
當我們配置完時候,不知道是否出現問題這時候就需要對配置文件盡心檢查 service dhcp configtest
示例:
(1)安裝dhcp服務 [[email protected] ~]# yum install -y dhcp
(2)將配置文件復制到/etc/dhcp/
目錄下[[email protected] ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
(3)編輯配置文件 [[email protected] ~]# vim /etc/dhcp/dhcpd.conf
(4)重啟dhcp服務 [[email protected] ~]# systemctl restart dhcpd
(5)在另外一個機器上測試,是否可以拿到地址。[[email protected] ~]#service restart dhcpd
註意:
1、在進行編輯註意每行完成以後要以“;”結尾。
2、在配置DHCP服務時,有時獲取到地址並不能ping,很有可能dhcp服務IP變化。
本文出自 “Joah” 博客,請務必保留此出處http://merit.blog.51cto.com/10757694/1966078
DHCP服務