如何在Ubuntu以及Debian中安裝DHCP服務(wù)器
動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP) 是一種用于使主機(jī)能夠從服務(wù)器自動(dòng)分配 IP 地址和相關(guān)的網(wǎng)絡(luò)配置的網(wǎng)絡(luò)協(xié)議。
DHCP 服務(wù)器分配給 DHCP 客戶端的 IP 地址處于“租用”狀態(tài),租用時(shí)間通常取決于客戶端計(jì)算機(jī)要求連接的時(shí)間或 DHCP 服務(wù)器配置的時(shí)間。
DHCP 如何工作?
以下是 DHCP 實(shí)際工作原理的簡(jiǎn)要說(shuō)明:
- 一旦客戶端(配置為使用 DHCP 的機(jī)器)連接到網(wǎng)絡(luò)后,它會(huì)向 DHCP 服務(wù)器發(fā)送 DHCPDISCOVER 數(shù)據(jù)包。
- 當(dāng) DHCP 服務(wù)器收到 DHCPDISCOVER 請(qǐng)求報(bào)文后會(huì)使用 DHCPOFFER 包進(jìn)行回復(fù)。
- 然后客戶端獲取到 DHCPOFFER 數(shù)據(jù)包,并向服務(wù)器發(fā)送一個(gè) DHCPREQUEST 包,表示它已準(zhǔn)備好接收 DHCPOFFER 包中提供的網(wǎng)絡(luò)配置信息。
- ***,DHCP 服務(wù)器從客戶端收到 DHCPREQUEST 報(bào)文后,發(fā)送 DHCPACK 報(bào)文,表示現(xiàn)在允許客戶端使用分配給它的 IP 地址。
在本文中,我們將介紹如何在 Ubuntu/Debian Linux 中設(shè)置 DHCP 服務(wù)器,我們將使用 sudo 命令來(lái)運(yùn)行所有命令,以獲得 root 用戶權(quán)限。
測(cè)試環(huán)境設(shè)置
在這步中我們會(huì)使用如下的測(cè)試環(huán)境。
- DHCP Server - Ubuntu 16.04
- DHCP Clients - CentOS 7 and Fedora 25
步驟 1:在 Ubuntu 中安裝 DHCP 服務(wù)器
1、 運(yùn)行下面的命令來(lái)安裝 DHCP 服務(wù)器包,也就是 dhcp3-server。
- $ sudo apt install isc-dhcp-server
2、 安裝完成后,編輯 /etc/default/isc-dhcp-server 使用 INTERFACES 選項(xiàng)定義 DHCPD 響應(yīng) DHCP 請(qǐng)求所使用的接口。
比如,如果你想讓 DHCPD 守護(hù)進(jìn)程監(jiān)聽(tīng) eth0,按如下設(shè)置:
- INTERFACES="eth0"
同樣記得為上面的接口配置靜態(tài)地址。
步驟 2:在 Ubuntu 中配置 DHCP 服務(wù)器
3、 DHCP 配置的主文件是 /etc/dhcp/dhcpd.conf, 你必須填寫會(huì)發(fā)送到客戶端的所有網(wǎng)絡(luò)信息。
并且 DHCP 配置中定義了兩種不同的聲明,它們是:
- parameters - 指定如何執(zhí)行任務(wù)、是否執(zhí)行任務(wù),還有指定要發(fā)送給 DHCP 客戶端的網(wǎng)絡(luò)配置選項(xiàng)。
- declarations - 定義網(wǎng)絡(luò)拓?fù)?、指定客戶端、為客戶端提供地址,或?qū)⒁唤M參數(shù)應(yīng)用于一組聲明。
4、 現(xiàn)在打開(kāi)并修改主文件,定義 DHCP 服務(wù)器選項(xiàng):
- $ sudo vi /etc/dhcp/dhcpd.conf
在文件頂部設(shè)置以下全局參數(shù),它們將應(yīng)用于下面的所有聲明(請(qǐng)指定適用于你情況的值):
- 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、 現(xiàn)在定義一個(gè)子網(wǎng),這里我們?yōu)?192.168.10.0/24 局域網(wǎng)設(shè)置 DHCP (請(qǐng)使用適用你情況的參數(shù)):
- 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;
- }
步驟 3:在 DHCP 客戶端上配置靜態(tài)地址
6、 要給特定的客戶機(jī)分配一個(gè)固定的(靜態(tài))的 IP,你需要顯式將這臺(tái)機(jī)器的 MAC 地址以及靜態(tài)分配的地址添加到下面這部分。
- 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;
- }
保存并關(guān)閉文件。
7、 接下來(lái),啟動(dòng) DHCP 服務(wù),并讓它下次開(kāi)機(jī)自啟動(dòng),如下所示:
- ------------ 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、 接下來(lái)不要忘記允許 DHCP 服務(wù)(DHCP 守護(hù)進(jìn)程監(jiān)聽(tīng) 67 UDP 端口)的防火墻權(quán)限:
- $ sudo ufw allow 67/udp
- $ sudo ufw reload
- $ sudo ufw show
步驟 4:配置 DHCP 客戶端
9、 此時(shí),你可以將客戶端計(jì)算機(jī)配置為自動(dòng)從 DHCP 服務(wù)器接收 IP 地址。
登錄到客戶端并編輯以太網(wǎng)接口的配置文件(注意接口名稱/號(hào)碼):
- $ sudo vi /etc/network/interfaces
定義如下選項(xiàng):
- auto eth0
- iface eth0 inet dhcp
保存文件并退出。重啟網(wǎng)絡(luò)服務(wù)(或重啟系統(tǒng)):
- ------------ SystemD ------------
- $ sudo systemctl restart networking
- ------------ SysVinit ------------
- $ sudo service networking restart
另外你也可以使用 GUI 來(lái)在進(jìn)行設(shè)置,如截圖所示(在 Fedora 25 桌面中)設(shè)置將方式設(shè)為自動(dòng)(DHCP)。
在 Fedora 中設(shè)置 DHCP 網(wǎng)絡(luò)
此時(shí),如果所有設(shè)置完成了,你的客戶端應(yīng)該可以自動(dòng)從 DHCP 服務(wù)器接收 IP 地址了。
就是這樣了!在本篇教程中,我們向你展示了如何在 Ubuntu/Debian 設(shè)置 DHCP 服務(wù)器。在反饋欄中分享你的想法。如果你正在使用基于 Fedora 的發(fā)行版,請(qǐng)閱讀如何在 CentOS/RHEL 中設(shè)置 DHCP 服務(wù)器。
作者簡(jiǎn)介:
Aaron Kili 是 Linux 和 F.O.S.S 愛(ài)好者,將來(lái)的 Linux SysAdmin 和 web 開(kāi)發(fā)人員,目前是 TecMint 的內(nèi)容創(chuàng)建者,他喜歡用電腦工作,并堅(jiān)信分享知識(shí)。