天天看點

如何在 Debian 中安裝 DHCP 伺服器

動态主機配置協定(DHCP)是一種用于使主機能夠從伺服器自動配置設定 IP 位址和相關的網絡配置的網絡協定。DHCP 伺服器配置設定給 DHCP 用戶端的 IP 位址處于“租用”狀态,租用時間通常取決于用戶端計算機要求連接配接的時間或 DHCP 伺服器配置的時間。

以下是 DHCP 實際工作原理的簡要說明:

  一旦用戶端(配置為使用 DHCP 的機器)連接配接到網絡後,它會向 DHCP 伺服器發送DHCPDISCOVER資料包。

當 DHCP 伺服器收到DHCPDISCOVER請求封包後會使用DHCPOFFER包進行回複。

然後用戶端擷取到DHCPOFFER資料包,并向伺服器發送一個DHCPREQUEST包,表示它已準備好接收DHCPOFFER包中提供的網絡配置資訊。

最後,DHCP 伺服器從用戶端收到DHCPREQUEST封包後,發送DHCPACK封包,表示現在允許用戶端使用配置設定給它的 IP 位址。

在本文中,我們将介紹如何在 Debian Linux 中設定 DHCP 伺服器,我們将使用 sudo 指令來運作所有指令,以獲得 root 使用者權限。

在這步中我們會使用如下的測試環境。

DHCP Server – Debian 8.7

DHCP Clients – CentOS 7 and Fedora 25

1、 運作下面的指令來安裝 DHCP 伺服器包,也就是dhcp3-server。

$ sudo apt install isc-dhcp-server

2、 安裝完成後,編輯 /etc/default/isc-dhcp-server 使用 INTERFACES 選項定義 DHCPD 響應 DHCP 請求所使用的接口。

比如,如果你想讓 DHCPD 守護程序監聽 eth0,按如下設定:

INTERFACES=”eth0″

同樣記得為上面的接口配置靜态位址。

3、 DHCP 配置的主檔案是 /etc/dhcp/dhcpd.conf, 你必須填寫會發送到用戶端的所有網絡資訊。

并且 DHCP 配置中定義了兩種不同的聲明,它們是:

parameters – 指定如何執行任務、是否執行任務,還有指定要發送給 DHCP 用戶端的網絡配置選項。

declarations – 定義網絡拓撲、指定用戶端、為用戶端提供位址,或将一組參數應用于一組聲明。

4、 現在打開并修改主檔案,定義 DHCP 伺服器選項:

$ sudo vi /etc/dhcp/dhcpd.conf

在檔案頂部設定以下全局參數,它們将應用于下面的所有聲明(請指定适用于你情況的值):

option domain-name “tecmint.lan”;

option domain-name-servers ns1.tecmint.lan, ns2.tecmint.lan;

default-lease-time 3600;

max-lease-time 7200;

authoritative;

5、 現在定義一個子網,這裡我們為 192.168.10.0/24 區域網路設定 DHCP (請使用适用你情況的參數):

subnet 192.168.10.0 netmask 255.255.255.0 {

option routers 192.168.10.1;

option subnet-mask 255.255.255.0;

option domain-search “tecmint.lan”;

option domain-name-servers 192.168.10.1;

range 192.168.10.10 192.168.10.100;

range 192.168.10.110 192.168.10.200;

}

6、 要給特定的客戶機配置設定一個固定的(靜态)的 IP,你需要顯式将這台機器的 MAC 位址以及靜态配置設定的位址添加到下面這部分。

host centos-node {

hardware ethernet 00:f0:m4:6y:89:0g;

fixed-address 192.168.10.105;

host fedora-node {

hardware ethernet 00:4g:8h:13:8h:3a;

fixed-address 192.168.10.106;

儲存并關閉檔案。

7、 接下來,啟動 DHCP 服務,并讓它下次開機自啟動,如下所示:

———— SystemD ————

$ sudo systemctl start isc-dhcp-server.service

$ sudo systemctl enable isc-dhcp-server.service

———— SysVinit ————

$ sudo service isc-dhcp-server.service start

$ sudo service isc-dhcp-server.service enable

8、 接下來不要忘記允許 DHCP 服務(DHCP 守護程序監聽 67 UDP 端口)的防火牆權限:

$ sudo ufw allow 67/udp

$ sudo ufw reload

$ sudo ufw show

9、 此時,你可以将用戶端計算機配置為自動從 DHCP 伺服器接收 IP 位址。

登入到用戶端并編輯以太網接口的配置檔案(注意接口名稱/号碼):

$ sudo vi /etc/network/interfaces

定義如下選項:

auto eth0

iface eth0 inet dhcp

儲存檔案并退出。重新開機網絡服務(或重新開機系統):

$ sudo systemctl restart networking

$ sudo service networking restart

另外你也可以使用 GUI 來在進行設定,如截圖所示(在 Fedora 25 桌面中)設定将方式設為自動(DHCP)。

在 Fedora 中設定 DHCP 網絡

此時,如果所有設定完成了,你的用戶端應該可以自動從 DHCP 伺服器接收 IP 位址了。

就是這樣了!在本篇教程中,我們向你展示了如何在 Ubuntu/Debian 設定 DHCP 伺服器。在回報欄中分享你的想法。如果你正在使用基于 Fedora 的發行版,請閱讀如何在 CentOS/RHEL 中設定 DHCP 伺服器。

作者簡介: Aaron Kili 是 Linux 和 F.O.S.S 愛好者,将來的 Linux SysAdmin 和 web 開發人員,目前是 TecMint 的内容建立者,他喜歡用電腦工作,并堅信分享知識。

原文釋出時間:2017-03-30

繼續閱讀