DHCP動態管理主機地址

學習總結所用《 Linux就該這麼學 》

動態主機地址管理協議

  • 動態主機配置協議(DHCP)是一種基於UDP協議且僅限於在局域網內部使用的網絡協議

  • 主要用於大型的局域網環境或者存在較多移動辦公設備的局域網環境中

  • 主要用途是爲局域網內部的設備或網絡供應商自動分配IP地址等參數

  • 簡單來說,DHCP協議就是讓局域網中的主機自動獲得網絡參數的服務

  • DHCP涉及的常見術語:

    作用域:一個完整的IP地址段,DHCP協議根據作用域來管理網絡的分佈、分配IP地址及其他配置參數

    超級作用域:用於管理處於同一個物理網絡中的多個邏輯子網段。超級作用域中包含了可以統一管理的作用域列表

    排除範圍:把作用域中的某些IP地址排除,確保這些IP地址不會分配給DHCP客戶端

    地址池:在定義了DHCP的作用域並應用了排除範圍後,剩餘的用來動態分配給DHCP客戶端的IP地址範圍

    租約:DHCP客戶端能夠使用動態分配的IP地址的時間

    預約:保證網絡中的特定設備總是獲取到相同的IP地址

部署dhcpd服務程序

  1. 安裝dhcpd服務程序

    # yum install dhcp
    
  2. 查看dhcpd服務程序的配置文件內容

    # vim /etc/dhcp/dhcpd.conf
    #
    # DHCP Server Configuration file.
    #   see /usr/share/doc/dhcp*/dhcpd.conf.example
    #   see dhcpd.conf(5) man page
    #
    

dhcpd服務常見參數以及作用

參數 作用
ddns-update-style 類型 定義DNS服務動態更新的類型,
類型包括: none(不支持動態更新)、
interim(互動更新模式)與ad-hoc(特殊更新模式)
allow/ignore client-updates 允許/忽略客戶端更新DNS記錄
default-lease-time 21600 默認超時時間
max-lease-time 43200 最大超時時間
option domain-name-servers 8.8.8.8 定義DNS服務器地址
option domain-name “domain.org” 定義DNS域名
range 定義用於分配的IP地址池
option subnet-mask 定義客戶端的子網掩碼
option routers 定義客戶端的網關地址
broadcast-address 廣播地址 定義客戶端的廣播地址
ntp-server IP地址 定義客戶端的網絡時間服務器(NTP)
nis-servers IP地址 定義客戶端的NIS域服務器的地址
hardware 硬件類型 MAC地址 指定網卡接口的類型與MAC地址
server-name 主機名 向DHCP客戶端通知DHCP服務器的主機名
fixed-address IP地址 將某個固定的IP地址分配給指定主機
time-offset 偏移差 指定客戶端與格林尼治時間的偏移差

自動管理IP地址

  1. 配置dhcpd服務程序

    # vim /etc/dhcp/dhcpd.conf
    ddns-update-style none; #設置DNS服務不自動進行動態更新
    ignore client-updates; #忽略客戶端更新DNS記錄
    subnet 192.168.40.0 netmask 255.255.255.0 { #作用域爲192.168.40.0/24網段
            range 192.168.40.50 192.168.40.100; #IP地址池爲192.168.40.50-100
            option subnet-mask 255.255.255.0; #客戶端默認子網掩碼
            option routers 192.168.40.1; #客戶端的網關地址
            option domain-name "zengzhilai.com"; #默認搜索域
            option domain-name-servers 192.168.40.1; #客戶端的DNS地址
            default-lease-time 21600; #默認租約時間(單位:s)
            max-lease-time 43200; #最大預約時間
    }
    
  2. 啓動dhcpd服務,並加入開機啓動項

    # systemctl start dhcpd
    # systemctl enable dhcpd
    ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.target.wants/dhcpd.service'
    
  3. Linux客戶機測試

    Linux客戶機先虛擬網絡編輯設置,去掉下圖的功能,避免與自己配置的dhcpd服務程序產生衝突

    01 禁止本地DHCP分配IP地址給虛擬機

    客戶機 Linux6.8 重啓網絡服務,查看此時的IP地址

    # service network restart
    正在關閉接口 eth0:                                        [確定]
    關閉環回接口:                                             [確定]
    彈出環回接口:                                             [確定]
    彈出界面 eth0: 
    正在決定 eth0 的 IP 信息...完成。
                                                               [確定]
    # ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:50:56:3E:86:08  
              inet addr:192.168.40.50  Bcast:192.168.40.255  Mask:255.255.255.0
              inet6 addr: fe80::250:56ff:fe3e:8608/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:828 errors:0 dropped:0 overruns:0 frame:0
              TX packets:249 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:58920 (57.5 KiB)  TX bytes:23319 (22.7 KiB)
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:256 errors:0 dropped:0 overruns:0 frame:0
              TX packets:256 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:28791 (28.1 KiB)  TX bytes:28791 (28.1 KiB)
    
  4. Window10客戶端測試

    禁用WLAN、以太網

    02 禁用WLAN和以太網
    重啓(即禁用再啓用)VMware Network Adapter VMnet8

    在CMD中輸入ipconfig/all查看網絡信息

    C:\Users\zengzhilai>ipconfig/all
    ......
    以太網適配器 VMware Network Adapter VMnet8:
    
       連接特定的 DNS 後綴 . . . . . . . : zengzhilai.com
       描述. . . . . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8
       物理地址. . . . . . . . . . . . . : 00-50-56-C0-00-08
       DHCP 已啓用 . . . . . . . . . . . : 是
       自動配置已啓用. . . . . . . . . . : 是
       本地鏈接 IPv6 地址. . . . . . . . : fe80::f43d:45b2:8490:738e%14(首選)
       IPv4 地址 . . . . . . . . . . . . : 192.168.40.51(首選)
       子網掩碼  . . . . . . . . . . . . : 255.255.255.0
       獲得租約的時間  . . . . . . . . . : 20199103:10:56
       租約過期的時間  . . . . . . . . . : 20199109:10:56
       默認網關. . . . . . . . . . . . . : 192.168.40.1
       DHCP 服務器 . . . . . . . . . . . : 192.168.40.131
       DHCPv6 IAID . . . . . . . . . . . : 251678806
       DHCPv6 客戶端 DUID  . . . . . . . : 00-01-00-01-24-DB-67-0F-74-C6-3B-9A-E7-E9
       DNS 服務器  . . . . . . . . . . . : 192.168.40.1
       TCPIP 上的 NetBIOS  . . . . . . . : 已啓用
    
  5. 查看租約數據庫/var/lib/dhcpd/dhcpd.leases

    # cat /var/lib/dhcpd/dhcpd.leases
    # The format of this file is documented in the dhcpd.leases(5) manual page.
    # This lease file was written by isc-dhcp-4.2.5
    
    server-duid "\000\001\000\001%\011UV\000\014)J \342";
    
    lease 192.168.40.50 {
      starts 1 2019/09/09 19:00:58;
      ends 2 2019/09/10 01:00:58;
      cltt 1 2019/09/09 19:00:58;
      binding state active;
      next binding state free;
      rewind binding state free;
      hardware ethernet 00:50:56:3e:86:08;
    }
    lease 192.168.40.51 {
      starts 1 2019/09/09 19:10:56;
      ends 2 2019/09/10 01:10:56;
      cltt 1 2019/09/09 19:10:56;
      binding state active;
      next binding state free;
      rewind binding state free;
      hardware ethernet 00:50:56:c0:00:08;
      uid "\001\000PV\300\000\010";
      client-hostname "LAPTOP-VFVIEPCS";
    }
    

分配固定IP地址

  1. 獲取boss主機的MAC地址

    先啓動dhcpd服務程序,爲boss的主機分配一個IP地址,然後查看DHCP服務器本地的日誌文件(保存這次的IP地址分配記錄),獲取主機的MAC地址

    # tail -f /var/log/messages
    Sep 10 21:47:36 localhost dhcpd: DHCPOFFER on 192.168.40.51 to 00:50:56:c0:00:08 (LAPTOP-VFVIEPCS) via eno16777728
    Sep 10 21:47:37 localhost dhcpd: DHCPREQUEST for 192.168.40.51 (192.168.40.131) from 00:50:56:c0:00:08 (LAPTOP-VFVIEPCS) via eno16777728
    Sep 10 21:47:37 localhost dhcpd: DHCPACK on 192.168.40.51 to 00:50:56:c0:00:08 (LAPTOP-VFVIEPCS) via eno16777728
    Sep 10 21:47:38 localhost kernel: e1000: eno16777728 NIC Link is Down
    Sep 10 21:47:38 localhost NetworkManager[1227]: <info> (eno16777728): link disconnected (deferring action for 4 seconds)
    Sep 10 21:47:42 localhost NetworkManager[1227]: <info> (eno16777728): link disconnected (calling deferred action)
    Sep 10 21:47:44 localhost kernel: e1000: eno16777728 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
    Sep 10 21:47:44 localhost NetworkManager[1227]: <info> (eno16777728): link connected
    Sep 10 21:50:01 localhost systemd: Starting Session 31 of user root.
    Sep 10 21:50:01 localhost systemd: Started Session 31 of user root.
    
    
    
  2. 配置dhcpd服務文件

    # vim /etc/dhcp/dhcpd.conf
    ddns-update-style none;
    ignore client-updates;
    subnet 192.168.40.0 netmask 255.255.255.0 {
            range 192.168.40.50 192.168.40.100;
            option subnet-mask 255.255.255.0;
            option routers 192.168.40.1;
            option domain-name "zengzhilai.com";
            option domain-name-servers 192.168.40.1;
            default-lease-time 21600;
            max-lease-time 43200;
            #主機分配固定IP地址
            host boss { #boss是主機名(隨意取)
                    hardware ethernet 00:50:56:c0:00:08; #主機的MAC地址
                    fixed-address 192.168.40.88; #欲指定的IP地址
            }
    }
    
  3. 查看boss主機的IP地址

    03 客戶端網絡信息

注意:有時候dhcpd服務啓動沒報錯不代表配置參數沒錯,下面的出錯點在hardware ehternet這裏,很明顯拼錯單詞了,應該是ethernet

04 DHCP配置錯誤

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