一、引言
DHCP全稱Dynamic Host Configure Protocol,動態主機配置協議,用于向網絡中的計算機分配IP地址及一些TCP/IP配置信息。DHCP提供了安全,可靠且簡單的TCP/IP網絡設置,避免了TCP/IP網絡地址的沖突,同時大大降低了工作負擔。
二、DHCP工作流程
DHCP采用C/S架構,即Server/Client,它的簡要工作流程如下
1、client:dhcp discover
客戶端向局域網內廣播dhcp discover報文,查找dhcp服務器
2、server:dhcp offer
服務器端接受到請求報文后會向客戶端發送dhcp offer包,先根據客戶端的MAC地址來查找決定是為此客戶端分配新的IP地址還是續租已經分配給客戶的IP,并向客戶端發送帶有租約的dhcp offer包
3、client:dhcp request
由于局域網內可能有不止一臺dhcp服務器,客戶端依然使用廣播的形式來告知各dhcp服務器它選擇的dhcp服務器,沒有被選中的dhcp服務器會收回ip租約
4、server:dhcp ack
被選中的服務器會回送dhcp ack包,并告知客戶端租約的期限,同時開始租約計時
默認情況下,客戶端會在租約快到期前向dhcp服務器提交續租申請,注意,有3個重要的時間點
50%: 租賃時間達到50%時來續租,向dhcp服務器發出dhcp request請求,如果dhcp服務沒有拒絕,則回應dhcp ack信息。當dhcp客戶端收到該應答信息后,就重新開始新的租用周期 75%: 如果在租約時間的50%還沒有聯系到dhcp服務器,在租約期的75%的時候會再次聯系dhcp服務器 87.5%: 如果期間dhcp server沒有回應,等到租約期的87.5%時,主機會再一次發送一次請求,這時也會嘗試發送新的dhcp請求
簡要流程圖如下:
三、DHCP安裝配置
DHCP安裝比較簡單
[root@node2~]# yum install dhcp [root@node2~]# cp /usr/share/doc/dhcp-version_number/dhcpd.conf.example /etc/dhcp/dhcpd.conf #復制模版
修改模版,如下:
option domain-name "lurker.com"; option domain-name-servers 172.16.0.1; default-lease-time 43200; max-lease-time 86400; log-facility local7; subnet 172.16.0.0 netmask 255.255.0.0 { range 172.16.100.33 172.18.100.35; }
在客戶端用dhclient命令動態獲取ip資源
注意:首次啟動dhcp服務器時,如果沒有dhcpd.leases文件就會失敗,如果沒有該文件,可使用命令touch /var/lib/dhcpd/dhcpd.leases生成該文件。如果同一服務器還作為dns服務器運行bind,那么就不需要執行這一步操作,因為named服務會自動檢查該文件。
例1、最小的DHCP服務
#server(172.16.47.101)端配置 option domain-name "lurker.com"; option domain-name-servers 172.16.0.1; default-lease-time 43200; max-lease-time 86400; log-facility local7; subnet 172.16.0.0 netmask 255.255.0.0 { range 172.16.100.40 172.18.100.50; }
重啟服務:systemctl restart dhcpd;在客戶端獲取ip地址:dhclient -d
注意:因為該客戶端已經從服務器獲取過ip,所以運行dhclient -d后,它會向原dhcp服務器請求續租,所以會先有2個DHCPREQUEST,但是原來的dhcp服務器的地址池已經發生變化,里面沒有了它使用的這個ip,所以它就只能再重新DHCPDISCOVER
例2、指定路由
#server(172.16.47.101)端配置 option domain-name "lurker.com"; option domain-name-servers 172.16.0.1; option routers 172.16.100.100; default-lease-time 43200; max-lease-time 86400; log-facility local7; subnet 172.16.0.0 netmask 255.255.0.0 { range 172.16.100.40 172.18.100.50; }
重啟服務:systemctl restart dhcpd;在客戶端重新獲取ip地址:dhclient -d
route -n查看路由,如果沒有生效,請重啟網絡服務
注意:可以在全局和subnet中同時指定路由和domainserver,但是subnet中設定的優先級更高
例3、在subnet中指定domainserver
#server(172.16.47.101)端配置 option domain-name "lurker.com"; option domain-name-servers 172.16.0.1; option routers 172.16.100.100; default-lease-time 43200; max-lease-time 86400; log-facility local7; subnet 172.16.0.0 netmask 255.255.0.0 { range 172.16.100.40 172.18.100.50; option domain-name-servers 172.16.100.60; }
重啟服務:systemctl restart dhcpd;在客戶端重新獲取ip地址:dhclient -d
例4、不希望dhcp服務更改/etc/resolve.conf文件
在client端修改/etc/sysconfig/network-scripts/ifcfg-eno16777736里的PEERDNS=no
例5、固定分配IP給指定主機
#server(172.16.47.101)端配置 option domain-name "lurker.com"; option domain-name-servers 172.16.0.1; option routers 172.16.100.100; default-lease-time 43200; max-lease-time 86400; log-facility local7; subnet 172.16.0.0 netmask 255.255.0.0 { range 172.16.100.40 172.18.100.50; } host lurker{ hardware ethernet 00:0c:29:d9:db:32; fixed-address 172.16.100.33; }
重啟服務:systemctl restart dhcpd;在客戶端重新獲取ip地址:dhclient -d
注意:綁定的IP不能和IP地址池里的IP重復
原創文章,作者:Lurker,如若轉載,請注明出處:http://www.www58058.com/66216