DHCP簡介及簡單實踐

一、引言

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請求

簡要流程圖如下:

blob.png

三、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資源

blob.png

注意:首次啟動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

blob.png

注意:因為該客戶端已經從服務器獲取過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查看路由,如果沒有生效,請重啟網絡服務

blob.png

注意:可以在全局和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

blob.png

例4、不希望dhcp服務更改/etc/resolve.conf文件

在client端修改/etc/sysconfig/network-scripts/ifcfg-eno16777736里的PEERDNS=no

blob.png

例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

blob.png

注意:綁定的IP不能和IP地址池里的IP重復

原創文章,作者:Lurker,如若轉載,請注明出處:http://www.www58058.com/66216

(0)
LurkerLurker
上一篇 2017-01-09
下一篇 2017-01-10

相關推薦

  • shell腳本編程2

    八、條件選擇if語句     注:if語句可嵌套     單分支         if 判斷條件;then        &nbs…

    Linux干貨 2016-08-22
  • mageedu_20160802

     用戶的管理權限設置與更改以及ACL的存在及其實用意義      一.用戶的管理權限如何設置與更改以及umask值的含義    由于linux系統是一個多用戶使用的系統,對于各個用戶指定的文件或目錄必須存在一套管理系統,以防止多用戶對相同文件的混淆使用。于是催生出了linux系統文件的用戶權限設置。…

    Linux干貨 2016-08-03
  • 設計模式(十一)代理模式Proxy(結構型)

    1.概述        因為某個對象消耗太多資源,而且你的代碼并不是每個邏輯路徑都需要此對象, 你曾有過延遲創建對象的想法嗎 ( if和else就是不同的兩條邏輯路徑) ? 你有想過限制訪問某個對象,也就是說,提供一組方法給普通用戶,特別方法給管理員用戶?以上兩種需求都非常類似,并且都需要解決一個更大的問題:你如何提供…

    Linux干貨 2015-07-09
  • 上海2016全球運維大會 美女辣妹吸引眼球!

    國內第一個運維行業大會 GOPS 2016全球運維大會(上海站)在2016年9月23-24日在上海雅悅新天地大酒店舉辦,面向IT及傳統行業、廣大運維技術人員,傳播先進技術思想和理念,分享業內最佳實踐。 參會兩日,雖然大會主角是運維技術交流學習,不過卻意料之外的邂逅了另一道靚麗的風景,瞬間燃了… 在會場,站立著一群高挑美女,我的…

    2016-12-05
  • Linux計算機基礎及Linux入門

    計算機,Linux發型版,Linux 哲學思想,基本命令,startx ,pwd tty ,shutdown ,ifconfig , echo, export, historybo, poweroff,reboot, date, hwclock, Linux 獲取命令幫助信息,Linux發行版的基礎目錄,

    2017-09-18
  • 【福利貼-招聘】- python運維開發工程師

    職位描述  崗位職責: 1、負責公司CMDB的建設,包括資產管理、dns、工單系統、ngnix自動化、監控等的開發 2、幫助運維團隊和業務團隊提高自動化效率 3、維護和開發持續化集成環境; 4、負責公司運維系統的規劃、選型、部署上線和日常維護管理工作; 5、負責CMDB團隊的建設、管理和人才培養機制…

    Linux干貨 2015-04-03
欧美性久久久久