如何在 CentOS、RHEL 和 Fedora 上安裝 DHCP 服務
DHCP(Dynamic Host Configuration Protocol)是一個網路協議,它使得伺服器能從預定義的 IP 池中為網路中的客戶端節點自動分配 IP 地址並提供其它相關的網路配置引數。
這意味著每次客戶端節點啟動(連線到網路)的時候,它都會獲得一個和從不改變的“靜態” IP 地址相反的“動態” IP 地址。DHCP 伺服器給 DHCP 客戶端分配 IP 地址稱為“租約”,租約時間隨客戶端需要的連線時間或 DHCP 的配置而異。
在這篇指南中,我們會介紹如何在 CentOS/RHEL 和 Fedora 發行版中安裝和配置 DHCP 服務。
設定測試環境
本次安裝中我們使用如下的測試環境:
- DHCP 伺服器 - CentOS 7
- DHCP 客戶端 - Fedora 25 和 Ubuntu 16.04
DHCP 如何工作?
在進入下一步之前,讓我們首先了解一下 DHCP 的工作流程:
- 當已連線到網路的客戶端計算機(配置為使用 DHCP)啟動時,它會傳送一個
DHCPDISCOVER
訊息到 DHCP 伺服器。 - 當 DHCP 伺服器接收到
DHCPDISCOVER
請求訊息時,它會回覆一個DHCPOFFER
訊息。 - 客戶端收到
DHCPOFFER
訊息後,它再傳送給伺服器一個DHCPREQUEST
訊息,表示客戶端已準備好獲取DHCPOFFER
訊息中提供的網路配置。 - 最後,DHCP 伺服器收到客戶端的
DHCPREQUEST
訊息,並回復DHCPACK
訊息,表示允許客戶端使用分配給它的 IP 地址。
第一步:在 CentOS 上安裝 DHCP 服務
1、安裝 DHCP 服務非常簡單,只需要執行下面的命令即可。
$ yum -y install dhcp
重要:假如系統中有多個網路卡,但你想只在其中一個網路卡上啟用 DHCP 服務,可以按照下面的步驟在該網路卡上啟用 DHCP 服務。
2、 開啟檔案 /etc/sysconfig/dhcpd
,將指定網路卡的名稱新增到 DHCPDARGS
列表,假如網路卡名稱為 eth0
,則新增:
DHCPDARGS=eth0
儲存檔案並退出 。
第二步:在 CentOS 上配置 DHCP 服務
3、 對於初學者來說,配置 DHCP 服務的第一步是建立 dhcpd.conf
配置檔案,DHCP 主要配置檔案一般是 /etc/dhcp/dhcpd.conf
(預設情況下該檔案為空),該檔案儲存了傳送給客戶端的所有網路資訊。
但是,有一個樣例配置檔案 /usr/share/doc/dhcp*/dhcpd.conf.sample
,這是配置 DHCP 服務的良好開始。
DHCP 配置檔案中定義了兩種型別的語句:
- 引數 - 說明如何執行任務、是否執行任務、或者給 DHCP 客戶端傳送什麼網路配置選項。
- 宣告 - 指定網路拓撲、定義客戶端、提供客戶端地址、或將一組引數應用於一組宣告。
因此,首先複製示例配置檔案為主配置檔案:
$ cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
4、 然後,開啟主配置檔案並定義你的 DHCP 服務選項:
$ 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.56.0/24
區域網配置 DHCP(注意使用你實際場景中的值):
subnet 192.168.56.0 netmask 255.255.255.0 {
option routers 192.168.56.1;
option subnet-mask 255.255.255.0;
option domain-search "tecmint.lan";
option domain-name-servers 192.168.56.1;
range 192.168.56.10 192.168.56.100;
range 192.168.56.120 192.168.56.200;
}
第三步:為 DHCP 客戶端分配靜態 IP
只需要在 /etc/dhcp/dhcpd.conf
檔案中定義下面的部分,其中你必須顯式指定它的 MAC 地址和打算分配的 IP,你就可以為網路中指定的客戶端計算機分配一個靜態 IP 地址:
host ubuntu-node {
hardware ethernet 00:f0:m4:6y:89:0g;
fixed-address 192.168.56.105;
}
host fedora-node {
hardware ethernet 00:4g:8h:13:8h:3a;
fixed-address 192.168.56.110;
}
儲存檔案並關閉。
注意:你可以使用下面的命令找到 Linux 的 MAC 地址。
$ ifconfig -a eth0 | grep HWaddr
6、 現在,使用下面的命令啟動 DHCP 服務,並使在下次系統啟動時自動啟動:
---------- On CentOS/RHEL 7 ----------
$ systemctl start dhcpd
$ systemctl enable dhcpd
---------- On CentOS/RHEL 6 ----------
$ service dhcpd start
$ chkconfig dhcpd on
7、 另外,別忘了使用下面的命令允許 DHCP 服務透過防火牆(DHCPD 守護程式透過 UDP 監聽67號埠):
---------- On CentOS/RHEL 7 ----------
$ firewall-cmd --add-service=dhcp --permanent
$ firewall-cmd --reload
---------- On CentOS/RHEL 6 ----------
$ iptables -A INPUT -p tcp -m state --state NEW --dport 67 -j ACCEPT
$ service iptables save
第四步:配置 DHCP 客戶端
8、 現在,你可以為網路中的客戶端配置自動從 DHCP 伺服器中獲取 IP 地址。登入到客戶端機器並按照下面的方式修改乙太網介面的配置檔案(注意網路卡的名稱和編號):
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
新增下面的選項:
DEVICE=eth0
BOOTPROTO=dhcp
TYPE=Ethernet
ONBOOT=yes
儲存檔案並退出。
9、 你也可以在桌面伺服器中按照下面的截圖(Ubuntu 16.04桌面版)透過 GUI 設定 Method
為 Automatic (DHCP)
。
在客戶端網路中設定 DHCP
10、 按照下面的命令重啟網路服務(你也可以透過重啟系統):
---------- On CentOS/RHEL 7 ----------
$ systemctl restart network
---------- On CentOS/RHEL 6 ----------
$ service network restart
到了這裡,如果所有設定都是正確的,你的客戶端就應該能自動從 DHCP 伺服器中獲取 IP 地址。
你也可以閱讀:
在這篇文章中我們為你展示瞭如何在 RHEL/CentOS 中安裝 DHCP 服務。在下面的評論框中給我們反饋吧。在接下來的文章中,我們還會為你展示如何在 Debian/Ubuntu 中安裝 DHCP 服務。和 TecMint 保持聯絡。
作者簡介:
Aaron Kili 是一個 Linux 和 F.O.S.S 的愛好者,即將推出的 Linux SysAdmin 網路開發人員,目前也是 TecMint 的內容創作者,他喜歡和電腦一起工作,並且堅信共享知識。
via: http://www.tecmint.com/install-dhcp-server-in-centos-rhel-fedora/
作者:Aaron Kili 譯者:ictlyh 校對:wxy
相關文章
- 如何在 CentOS 8/RHEL 8 上安裝和使用 CockpitCentOSKPI
- 如何在 CentOS 8/RHEL 8 上安裝和配置 Nagios CoreCentOSiOS
- Install Google Chrome on Fedora 28/27, CentOS/RHEL 7.5 (在 fedora 28 等 上 安裝 chrome)GoChromeCentOS
- 如何在 CentOS 8 和 RHEL 8 系統上安裝和使用 AnsibleCentOS
- 如何在 CentOS 8 / RHEL 8 上安裝 VirtualBox 6.0CentOS
- 在 RHEL、CentOS 和 Fedora 上安裝 Git 及設定 Git 賬號的技巧CentOSGit
- 如何在 Centos 8 / RHEL 8 上安裝和配置 VNC 伺服器CentOSVNC伺服器
- RHEL8.10上搭建dhcp-relay服務
- 如何在 CentOS 8/RHEL 8 上安裝 Ansible(自動化工具)CentOS
- 在rhel和CentOS上安裝SQL Server的方法CentOSSQLServer
- 如何在 Fedora、CentOS、RHEL 中啟用 RPM Fusion 倉庫CentOS
- 如何在 CentOS 7 / RHEL 7 終端伺服器上安裝 KVMCentOS伺服器
- 在 Centos/RHEL 6.X 上安裝 WettyCentOS
- 如何在 Kali Linux 上安裝 SSH 服務Linux
- 教你如何在 CentOS 上安裝RedisCentOSRedis
- 如何在 CentOS 7 上安裝 NginxCentOSNginx
- Kali Linux常用服務配置教程安裝及配置DHCP服務Linux
- RHEL7原始碼安裝Apache服務原始碼Apache
- centos8安裝和配置redis服務CentOSRedis
- 如何在 CentOS 7 上安裝 Python 3CentOSPython
- 如何在 Fedora 30 Server 上安裝 LEMP(Linux、Nginx、MariaDB、PHP)ServerLinuxNginxPHP
- 在 CentOS7 上安裝 zookeeper-3.4.9 服務CentOS
- 如何安裝vmware以及如何在vmware上安裝centOS 7.0CentOS
- centos6安裝telnet服務CentOS
- CentOS.7下安裝配置FTP和SFTP服務CentOSFTP
- RHEL7/CentOS7線上和離線安裝GitLab配置使用實踐CentOSGitlab
- 如何在CentOS/RHEL 7上藉助ssm管理LVM卷?CentOSSSMLVM
- 如何在 CentOS 8 和 RHEL 8 伺服器上啟用 EPEL 倉庫CentOS伺服器
- ROCKY9.4上搭建DHCP服務
- DHCP服務
- 如何在 CentOS 8 上安裝和配置 Postfix 郵件伺服器CentOS伺服器
- 在 RHEL 和 CentOS 上檢查或列出已安裝的安全更新的兩種方法CentOS
- CentOS 8/RHEL 8 REMI 倉庫安裝教程CentOSREM
- Fedora 和 CentOS StreamCentOS
- linux fedora core 5上安裝字型Linux
- 把Discord安裝在Fedora Linux上Linux
- CentOS7下RabbitMQ服務安裝配置CentOSMQ
- 如何在 CentOS 或 RHEL 系統上檢查可用的安全更新?CentOS