天天看點

如何在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  

$ 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)。

如何在CentOS、RHEL和Fedora上安裝DHCP服務

在用戶端網絡中設定 dhcp

10、 按照下面的指令重新開機網絡服務(你也可以通過重新開機系統):

$ systemctl restart network 

$ service network restart 

到了這裡,如果所有設定都是正确的,你的用戶端就應該能自動從 dhcp 伺服器中擷取 ip 位址。

作者:aaron kili

來源:51cto

繼續閱讀