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 22:23
下一篇 2017-01-10 01:12

相關推薦

  • Linux中命令的分類,hash緩存表與別名

        命令的分類:     在Linnux中,平常工作用的是字符界面。Linux輸入命令后,shell接收命令通過系統調用把命令送入內核中執行。    *shell中的可執行命令分為兩類        1.內部命令:為shell自帶命令,利用某種形式在開機后…

    Linux干貨 2017-07-15
  • Linux進程管理及作業管理

    進程管理 進程概念 Linux內核:搶占式多任務 內核的功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等 Process: 運行中的程序的一個副本,是被載入內存的一個指令集合 進程ID(Process ID,PID)號碼被用來標記各個進程 UID、GID、和SELinux語境決定對文件系統的存取和訪問權限 通常從執行進程的用戶來繼承 進程存…

    Linux干貨 2017-05-08
  • shell腳本語言中的選擇執行

    shell腳本語言中的選擇執行 概述 程序執行過程分為順序執行、選擇執行和循環執行。順序執行是指程序按照步驟一步一步地運行。選擇執行是指程序根據特定條件選擇兩項或者多項中的一項運行。循環執行是指程序根據特定條件重復執行直到某個節點結束,繼續運行其他步驟。本篇文章從判斷條件和條件判斷式簡要說明shell腳本語言中程序選擇執行的用法。 shell腳本中的判斷條件…

    Linux干貨 2017-04-17
  • 一種強大的新型BIOS Bootkit病毒曝光

    近日,安全研究人員開發出一種新的BIOS bootkit,它可以竊取敏感數據,以及流行操作系統使用的PGP密鑰。包括華碩、惠普、宏基、技嘉以及微星等在內的各大供應商的主板都受到該病毒影響。 BIOS bootkits是真實存在的。斯諾登在披露NSA ANT部門使用的監視工具集時,曾提到過BIOS bootkits。這些惡意軟件能夠入侵受害機器的BIOS,以此…

    2015-03-23
  • 系統無法正常啟動的解決之道

    先來看下配置文件的格式: [root@centos6 ~]# uname -r 2.6.32-642.el6.x86_64 [root@centos6 ~]# cat /boot/grub/grub.conf  # Note that you do&…

    Linux干貨 2016-09-19
  • Lnmp安裝腳本

    1、源碼編譯安裝LNMP架構環境; 此題略 此鏈接為安裝nginx時,編譯參數和各個模塊和第三方模塊的介紹,十分豐富,安裝前可以參考學習 https://www.nginx.com/resources/admin-guide/installing-nginx-open-source/ 2、編寫一個腳本完成以下功能:    (1)、一鍵搭建…

    Linux干貨 2016-12-05
欧美性久久久久