Debian9.5系統DHCP服務器ISC DHCP軟件配置說明


DHCP 全稱Dynamic Host configuration protocol, 動態主機配置協議。是一個局域網的網絡協議,使用UDP協議工作,它可以為客戶機自動分配IP地址、子網掩碼以及缺省網關、DNS服務器的IP地址等TCP/IP參數, 簡單來說, 就是在DHCP服務器上有一個數據庫, 存放着IP地址、網關、DNS等參數。 當客戶端請求使用時, 服務器則負責將相應的參數分配個客戶端,避免客戶端手動指定IP地址等。特別是在一些大規模的網絡中。客戶端數目較多,使用DHCP可以方便對這些機器進行管理,為客戶機提供TCP/IP參數配置,如IP地址、網關地址和DNS服務器等,不僅效率高,而且不存在IP地址沖突的情況現在的無線路由器默認都帶有DHCP功能,也就是說一個無線路由器同時也是一個DHCP服務器。

一、DHCP有三種機制分配IP地址
1.自動分配方式:DHCP服務器為主機指定一個永久性的IP地址,一旦DHCP客戶端第一次成功從DHCP服務器租用到IP地址,就可以永久使用該地址。
2.動態分配方式:DHCP服務器給主機指定一個有時間限制的IP地址, 時間到期或主機明確表示放棄該地址時,該地址可以被其他主機使用。
3.手工分配方式:客戶端的IP地址是由網絡管理員指定的,DHCP服務器只是將指定的IP地址告訴客戶端主機。
三種地址分配方式中, 只有動態分配方式可以重復使用客戶端不再需要的地址,下面是DHCP涉及的常見術語:

作用域:一個完整的IP地址段,DHCP協議根據作用域來管理網絡的分布、分配IP地址及其他配置參數。
超級作用域:用於管理處於同一個物理網絡中的多個邏輯子網段。超級作用域中包含了可以統一管理的作用域列表。
排除范圍:把作用域中的某些IP地址排除,確保這些IP地址不會分配給DHCP客戶端。
地址池:在定義了DHCP的作用域並應用了排除范圍后,剩余的用來動態分配給DHCP客戶端的IP地址范圍。
租約:DHCP客戶端能夠使用動態分配的IP地址的時間。
預約:保證網絡中的特定設備總是獲取到相同的IP地址。

二、DHCP協議的工作過程
1.發現階段:即DHCP客戶機尋找DHCP服務器的階段。DHCP客戶機以廣播的方式發送DHCP discover 發現信息來尋找DHCP服務器(因為DHCP服務器的IP地址對客戶機來說是未知的),由於客戶機不知道DHCP服務器的IP地址,所以它使用0.0.0.0的地址作為源地址,使用UDP68端口作為源端口,使用255.255.255.255作為目標地址,使用UDP67端口作為目的端口來廣播請求IP地址信息。廣播信息中包含了DHCP客戶機的MAC地址和計算機名,以便使DHCP服務器能確定是哪個客戶機發送的請求。網絡上每一台安裝了TCP/IP協議的主機都會接收到這種廣播信息,但只有DHCP服務器才會作出響應。

2.提供階段:即DHCP服務器提供IP地址的階段。在網絡中收到DHCP discover發現信息的DHCP服務器都會作出響應,它從尚未出租的IP地址中挑選一個分配給DHCP客戶機,向DHCP客戶機發送一個包含出租的IP地址和其他設置信息,因為DHCP客戶機還沒有IP地址,所以DHCP服務器使用自己的IP地址作為源地址,使用UDP67端口作為源端口,使用255.255.255.255作為目標地址,使用UDP68端口作為目的端口來廣播,通過DHCP offer消息發送給客戶端。

3.選擇階段:DHCP客戶機選擇某台DHCP服務器提供的IP地址的階段。  如果有多台DHCP服務器向DHCP客戶機發來的DHCP offer,客戶機只接收第一個收到的DHCP offer,然后它以廣播的方式回答一個DHCP request請求信息。該信息中包含它所選定的DHCP服務器請求IP地址的內容。之所以要以廣播的方式回答,是為了通知所有的DHCP服務器,它將選擇某台DHCP服務器所提供的IP地址。

4.確認階段:即DHCP服務器確認所提供的IP地址的階段。當DHCP服務器收到DHCP客戶機回答的DHCP resquest請求后,它便向DHCP客戶機發送一個包含它提供的IP地址和其他設置的DHCP ACK確認信息,告訴DHCP客戶機可以使用它所提供的IP地址。然后DHCP客戶機便將其TCP/IP協議與網卡綁定,除了DHCP客戶機所選擇的服務器IP外,其他的DHCP服務器都將收回曾提供的IP地址

5.重新登陸:以后DHCP客戶機每次登陸網絡時,就不需要再發送DHCP discover發現信息了。而是直接發送包含前一次所分配IP地址的DHCP resquest請求。當DHCP服務器收到這一信息后,它會嘗試讓客戶機繼續使用原來的IP並回答一個DHCP ACK確認信息,如果此IP地址無法分配個原來的DHCP客戶機時(比如IP分配給其他DHCP客戶機使用) ,則DHCP服務器給DHCP客戶機回答一個DHCP NACK 否認消息,當原來的DHCP客戶機收到此消息后,它就必須重新發送DHCP discover發現信息重新請求新的IP地址。

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



三、安裝DHCP服務軟件,Linux用的DHCP軟件是Internet系統協會的DHCP服務軟件ISC DHCP
--------------------------------------------------------
root@debian:~# apt install  isc-dhcp-server
--------------------------------------------------------

四、配置DHCP服務軟件
DHCP的主要配置文件有兩個,分別位於 /etc/default/isc-dhcp-server 和 /etc/dhcp/dhcpd.conf。下面要做的就是對這兩個文件進行配置。

五、查看本機網絡信息,主要查看網絡接口。
--------------------------------------------------------
root@debian:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:40:99:19 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.11/24 brd 192.168.0.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe40:9919/64 scope link
       valid_lft forever preferred_lft forever
--------------------------------------------------------

六、配置/etc/default/isc-dhcp-server文件
--------------------------------------------------------
root@debian:~# vi /etc/default/isc-dhcp-server
.......                                                    #上面的內容省略
 On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#    Separate multiple interfaces with spaces, e.g. "eth0 eth1".
 INTERFACESv4="enp0s3"              #將監聽端口INTERFACESv4修改為上面的網絡接口enp0s3  
#INTERFACESv6=""                         #屏蔽監聽ipv6
--------------------------------------------------------

七、配置/etc/dhcp/dhcpd.conf文件參數說明
DHCP服務器的配置比較簡單,所有的配置集中在/etc/dhcp/dhcpd.conf配置文件中,所有的配置語句可以分為3類:一類是參數,用於表明如何執行任務,是否要執行任務。第二類是聲明語句,用來描述網絡布局、客戶、提供ip地址的策略等。還有一類是發送給客戶的選項,實際上是加了option關鍵字的參數。其中每行開頭的‘#’表示注釋,而每一行配置最后都要以“;”作為結尾,這很重要。

1.DHCP配置文件中的parameters(參數):表明如何執行任務,是否要執行任務,或將哪些網絡配置選項發送給客戶

ddns-update-style :
該參數用來指定DHCP服務器對DNS服務器進行更新時采用的更新類型。有3個類型分別是ad-hoc、interim、none。ad-hoc方式基本上已經不再采用,interim表示DNS互動更新模式,none表示不支持動態更新,一般設置為none。

default-lease-time :
該參數的作用是定義默認的IP地址租約時間,其單位為秒。

max-lease-time :                 
該參數用來指定最大租賃時間長度,單位是秒。上面的是默認租約時間,這個是如果客戶要求了租約時間,租約時間如果超過這個值,就以這個值為准,不以客戶要求的為准。
 
server-name :
通知DHCP客戶服務器名稱。

hardware :
指定客戶端的硬件接口類型和硬件地址。其格式如下:
hardware ethernet 0:0:c0:5d:bd:95;

fixed-address
指定為客戶端分配一個或者多個固定IP地址,該參數只能出現在host聲明語句中。如果指定了多個IP地址,那么當客戶端啟動時,它會被分配到相應子網中的那個IP地址上。


2.DHCP配置文件中的declarations (聲明語句):用來描述網絡布局、提供客戶的IP地址等
 
subnet 語句                                   
該語句用來定義一個作用域。其格式如下:
subnet 網絡 子網掩碼 {
             
               [參數]
               [選項]
}

range 語句
該語句定義了起始IP和終止IP 提供動態分配IP的范圍,如果只指定起始IP地址而沒有終止IP地址,則范圍只包含一個IP地址,在一個subnet語句中,可以有多個range語句,但是這些range語句所覆蓋的IP地址范圍不能交叉或者重復。其格式如下:
range 起始IP  終止IP;
 
host 語句
該語句用來定義用戶保留地址,其格式如下:
host 主機名 {
     [hardware]
     [fixed-address]
}

這里的主機名可以自己定義,[hardware]參數用來指定需要保留IP地址的客戶端的MAC地址,[fixed-address]用來指定分配的固定IP地址。

3. DHCP配置文件中的option(選項):用來配置DHCP可選參數,全部用option關鍵字作為開始

subnet-mask :為客戶端設定子網掩碼。
domain-name :如果客戶端的/etc/resolv.conf里面設置了search參數,這個域名就是對應search參數后面的設置。
domain-name-servers :  為客戶端指明DNS服務器IP地址。
host-name :為客戶端指定主機名稱。
routers :為客戶端設定默認網關。:
broadcast-address :為客戶端設定廣播地址。
ntp-server :為客戶端設定網絡時間服務器IP地址。
time-offset :為客戶端設定和格林威治時間的偏移時間,單位是秒。

注意:如果客戶端使用的是視窗操作系統,不要選擇"host-name"選項,即不要為其指定主機名稱

八、防火牆
DHCP服務器需要開放入UDP67端口,出UDP68端口。客戶端正好相反,或者最直接的是關閉防火牆。

九、配置舉例
公司員工的筆記本可以獲取的IP地址范圍是192.168.0.100到192.168.0.200,子網掩碼是255.255.255.0,網關是192.168.0.1,DNS為114.114.114.114,客戶端的/etc/resolv.conf里面設置的search參數為pipci.com,默認的IP地址租約時間1小時,最大租賃時間為2小時,為硬件MAC地址0:0:c0:5d:bd:95保留IP地址為192.168.0.188 ,主機名為pipci
1、先備份原有的dhcpd.conf文件,因為里面是范例內容很多不方便看。
------------------------------------------------------------
root@debian:/etc/dhcp# mv -v dhcpd.conf dhcpd.conf.backup
------------------------------------------------------------

2、重新創建dhcpd.conf文件並添加下面的內容。
------------------------------------------------------------
root@debian:/etc/dhcp# vi dhcpd.conf
ddns-update-style none;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
option subnet-mask 255.255.255.0;
option routers 192.168.0.1;
option domain-name "pipci.com";
option domain-name-servers 114.114.114.114;
default-lease-time 3600;
max-lease-time 7200;
host pipci {
hardware ethernet 00:0c:29:27:c6:12;
fixed-address 192.168.0.188;
}
}
------------------------------------------------------------

3、重啟DHCP服務
------------------------------------------------------------
root@debian:/etc/dhcp# systemctl restart isc-dhcp-server.service
------------------------------------------------------------

4、查看DHCP服務
------------------------------------------------------------
root@debian:/etc/dhcp# systemctl status isc-dhcp-server.service
------------------------------------------------------------

十、如果出現問題的可能有以下幾種可能:
1. 配置文件有問題。
1.1 內容不符合語法結構,例如,少個分號;
1.2 聲明的子網和子網掩碼不符合;
2. 主機IP地址和聲明的子網不在同一網段。
3. 主機沒有配置IP地址。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM