CentOS 7.3 搭建DHCP服務器

一、DHCP服務簡介

1. DHCP服務簡介

DHCP(Dynamic Host Configuration Protocol),動態主機配置協議,DHCP 協議主要是用來自動爲局域網中的客戶機分配 TCP/IP 信息的網絡協議,並完成每臺客戶機的 TCP/IP 協議配置。當我們將局域網中客戶機IP地址設置爲動態獲取方式時,DHCP服務器就會根據DHCP協議給客戶機自動分配IP地址,使得客戶機能夠使用這個IP地址。


DHCP的前身是BOOTP協議(Bootstrap Protocol),BOOTP被創建出來爲連接到網絡中的設備自動分配地址,後來被DHCP取代了,DHCP比BOOTP更加複雜,功能更強大。所有的IP網絡參數(包括IP地址、網關和DNS服務器地址等)都由DHCP服務器集中管理,並負責處理客戶端的DHCP要求;而客戶端則會使用從服務器分配的IP網絡參數。


2. 使用DHCP的優點

  • 減少管理員的工作量;

  • 避免IP衝突;

  • 減少收入錯誤的可能;

  • 能方便地更改網絡的IP網段;

  • 移動計算機後不用重新配置網絡信息;

  • 提高IP地址的利用率。


3. DHCP的工作過程

2.png

  1. 第1步:(請求DHCP服務器)

  2. 客戶端在局域網廣播發送 DHCP discovery包,尋找DHCP服務器,即向255.255.255.255發送特定的廣播信息,每一臺安裝了TCP/IP協議的主機都會有這個廣播地址,但只有DHCP服務器纔會做出迴應。

  3.  

  4. 第2步:(提供IP地址)

  5. 服務器收到DHCP discovery包後,向客戶機發送一個包含分配的IP地址和其它設置的 DHCP offer 包,目的告訴客戶機,我能爲你提供IP地址。

  6.  

  7. 第3步:(選擇IP地址)

  8. 客戶機收到DHCP offer提供信息包後,(如果客戶機在一段時間內沒有接收到DHCP服務器發出dhcp offer包,則會重新發送dhcp discover。如果廣播區域內不止一臺dhcp服務器,則由客戶機決定使用哪個)客戶機選擇第一個接收到的提供信息包,以廣播的方式再發送一個DHCP request請求信息包,客戶機向服務器請求IP地址。

  9.  

  10. 第4步:(IP地址提供確認)

  11. 服務端收到客戶機迴應的DHCP request 請求信息包之後,便向客戶機發送一個DHCP ack 確認信息包,告訴客戶機可以使用它提供的IP地址。

  12.  

  13. 第5步:(重新登錄)

  14. 以後DHCP客戶機每次使用此IP地址時,就不需要再發送DHCP discovery包了,而是直接發送一個包含前一次所分配的IP地址的DHCP request請求信息。當DHCP服務器收到這一信息以後,它會繼續讓客戶機使用此IP地址,並回答一個DHCP ack確認信息。如果此IP地址已無法再分配給原來的客戶機使用時,則DHCP服務器給客戶機回答一個DHCP nack否認信息。當原來的客戶機收到此DHCP nack否認信息後,它就必須重新發送DHCP discovery尋找信息來請求新的IP地址。

  15.  

  16. 第6步:(更新租約)

  17. DHCP服務器向客戶機出租的IP地址都有一個租借期限,期滿後DHCP服務器便會收回出租的IP地址。如果客戶機要延長其IP租約,必須更新其IP租約。客戶機啓動時和IP租約期限過一半時,客戶機都會自動向DHCP服務器發送更新其IP租約的信息。


4. DHCP客戶機自動更新IP租約

客戶機租約期限已過去50%,自動嘗試更新租約;當期限過去87.5% 時,發出廣播再次更新租約;若租約已經到期(100%),客戶機必須立即停止使用當前的IP地址。然後客戶機開始新的DHCP租約過程,嘗試租用新的IP地址。


二、系統環境

系統平臺: CentOS 7.3

DHCP Server: 192.168.8.88

更改主機名,寫/etc/hosts記錄

#  vim /etc/hosts

    192.168.8.88   DHCP         --最後添加DHCP服務器IP地址和主機名/別名

關閉防火牆

#  systemctl  stop  firewalld              --臨時關閉防火牆 

#  systemctl  disable  firewalld          --永久關閉防火牆

關閉selinux

臨時關閉:

#  setenforce 0

永久關閉:

#  vim  /etc/selinux/config

    SELINUX=disabled                 --將enforcing改爲disabled


#  reboot                                    --重啓系統永久生效


三、CentOS下的DHCP服務

準備兩臺機器,一臺作爲DHCP服務器,一臺作爲客戶機,如下圖:

1.png

1. 在服務器上安裝DHCP軟件包

#  yum  -y  install  dhcp*         --安裝dhcp軟件包

如果已經安裝過了,則顯示“無須任何處理”

QQ截圖20171223231211.png

安裝好後,配置文件目錄:/etc/dhcp/dhcpd.conf

                分給客戶端IP的記錄文件:/var/lib/dhcpd/dhcpd.leases


2. 配置DHCP

把系統默認的樣例複製到/etc/dhcp/dhcpd.conf文件裏

#  cp  /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf

cp:是否覆蓋"/etc/dhcp/dhcpd.conf"? y           --輸y覆蓋原文件

3.png

#  vim  /etc/dhcp/dhcpd.conf                           --修改配置文件

   7   option domain-name "example.org";                 --DNS域名

   8   option domain-name-servers ns1.example.org, ns2.example.org;     --DNS的域服務器

   9

 10   default-lease-time 600;             --默認的租約時間,秒爲單位

 11   max-lease-time 7200;                --最大的租約時間,秒爲單位

 14   #ddns-update-style none;         --表示要不要把IP地址的更新情況告訴DNS服務器,默認是關閉的

 22   log-facility local7;                       --定義日誌服務,可以在日誌配置文件中查看具體日誌位置,默認是:/var/log/boog.log,但是在/var/log/messages裏面也會記錄dhcp日誌

 47   subnet 192.168.8.0 netmask 255.255.255.0 {      --分配的網段及子網掩碼,代表只在192.168.8.x這個C類網段裏生效,子網掩碼設爲255.255.255.0

 48   range 192.168.8.30 192.168.8.60;                        --代表給客戶機分配可用的IP範圍,起始到結束,儘量不要包含DHCP服務器的IP地址

 49   option domain-name-servers 192.168.8.88;       --配置要分配給客戶端的DNS地址,這裏我們設爲DHCP服務器的IP地址

 50   option domain-name "internal.example.org";    --DNS的域名

 51   option routers 192.168.8.88;                               --配置分配給客戶機的路由網關,這裏我們設爲DHCP服務器的IP地址

 52   option broadcast-address 192.168.8.255;           --給客戶機指定廣播地址,配置192.168.8.x這個網段的廣播地址

 53   default-lease-time 600;                                       --指定租約時間,秒爲單位

 54   max-lease-time 7200;                                         --指定最大租約時間,秒爲單位

 55   }

 75   host fantasia {                                                     --將MAC地址和IP綁定,host後面的名字隨意,如:fantasia

 76   hardware ethernet 08:00:07:26:c0:a5;                 --MAC地址

 77   fixed-address fantasia.fugue.com;                      --IP地址

 78   }

 85   class "foo" {                                                         --定義多個子網,class後面寫組名

 86   match if substring (option vendor-class-identifier, 0, 4) = "SUNW";

 87   }

 88 

 89   shared-network 224-29 {                                    --定義多個子網,要從大往小寫

 90       subnet 10.17.224.0 netmask 255.255.255.0 {

 91           option routers rtr-224.example.org;

 92       }

 93       subnet 10.0.29.0 netmask 255.255.255.0 {

 94           option routers rtr-29.example.org;

 95       }

 96       pool {

 97           allow members of "foo";

 98           range 10.17.224.10 10.17.224.250;

 99       }

100       pool {

101           deny members of "foo";

102           range 10.0.29.10 10.0.29.230;

103       }

104   }

修改紅色標註位置就可以了,修改完成之後,保存退出。


3、啓動DHCP服務

systemctl  restart  dhcpd.service        --重啓DHCP服務

#  systemctl  enable  dhcpd.service        --設置爲開機自啓動

#  netstat  -anlp  |  grep  dhcpd             --查看dhcp服務端口爲67

4.png


4、來到客戶機驗證

把客戶端機的網卡配置成dhcp,再重啓網絡服務

#  vim  /etc/sysconfig/network-scripts/ifcfg-ens33

    BOOTPROTO=dhcp                                 --網卡指定方式改爲dhcp


#  systemctl  restart  network.service          --重啓網卡

5.png


打開日誌文件查看分配的IP地址

服務器: 

#  tail  -f  /var/log/messages           --在服務器上監聽日誌


客戶機:

打開兩個終端窗口:一個查看日誌,一個重啓網絡。

查看日誌

#  tail  -f  /var/log/messages

重啓網絡

#  systemctl  restart  NetworkManager     --重啓這個服務,每次重啓網絡服務時,系統都會重新去DHCP服務器上獲取IP地址

查看IP

#  ifconfig                         --查看IP

image.png

查看網關

#  route  -n  |  grep  UG     --查看網關

image.png

查看路由

#  cat  /etc/resolv.conf     --查看路由

image.png


5、如果要把客戶機分配的IP給固定的話,可以在服務器做如下配置

#  vim  /etc/dhcp/dhcpd.conf                       --分給客戶機IP的記錄文件

在文件的最下面加上下面一段代碼即可

 75 host Client {                                             --host後面接的是客戶機主機名稱,可以自定義,建議爲主機名

 76   hardware ethernet 00:0c:29:82:6f:db;    --代表客戶機的物理MAC地址

 77   fixed-address 192.168.8.40;                   --代表如果有遇到物理MAC地址爲上面一行的,則分配這行的IP給它

 78 }


systemctl  restart  dhcpd.service               --重啓DHCP服務

測試,重複第4步

 

6、客戶機獲取IP

先清除客戶機IP地址緩存

#  systemctl  restart  NetworkManager         --重啓這個服務,每次重啓網絡服務時,系統都會重新去DHCP服務器上獲取IP地址

ifconfig                                                       --查看IP,應該爲設定的IP,即192.168.8.40

image.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章