閱讀673 返回首頁    go 京東網上商城


如何在 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 服務非常簡單,隻需要運行下麵的命令即可。


  1. $ yum -y install dhcp

重要:假如係統中有多個網卡,但你想隻在其中一個網卡上啟用 DHCP 服務,可以按照下麵的步驟在該網卡上啟用 DHCP 服務。

2、 打開文件 /etc/sysconfig/dhcpd,將指定網卡的名稱添加到 DHCPDARGS 列表,假如網卡名稱為eth0,則添加:


  1. DHCPDARGS=eth0

保存文件並退出 。

第二步:在 CentOS 上配置 DHCP 服務

3、 對於初學者來說,配置 DHCP 服務的第一步是創建 dhcpd.conf 配置文件,DHCP 主要配置文件一般是 /etc/dhcp/dhcpd.conf(默認情況下該文件為空),該文件保存了發送給客戶端的所有網絡信息。

但是,有一個樣例配置文件 /usr/share/doc/dhcp*/dhcpd.conf.sample,這是配置 DHCP 服務的良好開始。

DHCP 配置文件中定義了兩種類型的語句:

  • 參數 - 說明如何執行任務、是否執行任務、或者給 DHCP 客戶端發送什麼網絡配置選項。
  • 聲明 - 指定網絡拓撲、定義客戶端、提供客戶端地址、或將一組參數應用於一組聲明。

因此,首先複製示例配置文件為主配置文件:


  1. $ cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

4、 然後,打開主配置文件並定義你的 DHCP 服務選項:


  1. $ vi /etc/dhcp/dhcpd.conf

首先在文件開頭設置以下應用於全部子網的全局參數(注意要使用你實際場景中的值):


  1. option domain-name "tecmint.lan";
  2. option domain-name-servers ns1.tecmint.lan, ns2.tecmint.lan;
  3. default-lease-time 3600;
  4. max-lease-time 7200;
  5. authoritative;

5、 然後,定義一個子網;在這個事例中,我們會為 192.168.56.0/24 局域網配置 DHCP(注意使用你實際場景中的值):


  1. subnet 192.168.56.0 netmask 255.255.255.0 {
  2. option routers 192.168.56.1;
  3. option subnet-mask 255.255.255.0;
  4. option domain-search "tecmint.lan";
  5. option domain-name-servers 192.168.56.1;
  6. range 192.168.56.10 192.168.56.100;
  7. range 192.168.56.120 192.168.56.200;
  8. }

第三步:為 DHCP 客戶端分配靜態 IP

隻需要在 /etc/dhcp/dhcpd.conf 文件中定義下麵的部分,其中你必須顯式指定它的 MAC 地址和打算分配的 IP,你就可以為網絡中指定的客戶端計算機分配一個靜態 IP 地址:


  1. host ubuntu-node {
  2. hardware ethernet 00:f0:m4:6y:89:0g;
  3. fixed-address 192.168.56.105;
  4. }
  5. host fedora-node {
  6. hardware ethernet 00:4g:8h:13:8h:3a;
  7. fixed-address 192.168.56.110;
  8. }

保存文件並關閉。

注意:你可以使用下麵的命令找到 Linux 的 MAC 地址。


  1. $ ifconfig -a eth0 | grep HWaddr

6、 現在,使用下麵的命令啟動 DHCP 服務,並使在下次係統啟動時自動啟動:


  1. ---------- On CentOS/RHEL 7 ----------
  2. $ systemctl start dhcpd
  3. $ systemctl enable dhcpd
  4. ---------- On CentOS/RHEL 6 ----------
  5. $ service dhcpd start
  6. $ chkconfig dhcpd on

7、 另外,別忘了使用下麵的命令允許 DHCP 服務通過防火牆(DHCPD 守護進程通過 UDP 監聽67號端口):


  1. ---------- On CentOS/RHEL 7 ----------
  2. $ firewall-cmd --add-service=dhcp --permanent
  3. $ firewall-cmd --reload
  4. ---------- On CentOS/RHEL 6 ----------
  5. $ iptables -A INPUT -p tcp -m state --state NEW --dport 67 -j ACCEPT
  6. $ service iptables save

第四步:配置 DHCP 客戶端

8、 現在,你可以為網絡中的客戶端配置自動從 DHCP 服務器中獲取 IP 地址。登錄到客戶端機器並按照下麵的方式修改以太網接口的配置文件(注意網卡的名稱和編號):


  1. # vi /etc/sysconfig/network-scripts/ifcfg-eth0

添加下麵的選項:


  1. DEVICE=eth0
  2. BOOTPROTO=dhcp
  3. TYPE=Ethernet
  4. ONBOOT=yes

保存文件並退出。

9、 你也可以在桌麵服務器中按照下麵的截圖(Ubuntu 16.04桌麵版)通過 GUI 設置 Method 為 Automatic (DHCP)

在客戶端網絡中設置 DHCP

在客戶端網絡中設置 DHCP

10、 按照下麵的命令重啟網絡服務(你也可以通過重啟係統):


  1. ---------- On CentOS/RHEL 7 ----------
  2. $ systemctl restart network
  3. ---------- On CentOS/RHEL 6 ----------
  4. $ service network restart

到了這裏,如果所有設置都是正確的,你的客戶端就應該能自動從 DHCP 服務器中獲取 IP 地址。

原文發布時間為:2017-04-10

本文來自雲棲社區合作夥伴“Linux中國”

最後更新:2017-05-23 15:02:31

  上一篇:go  如何安裝 Debian 的非 systemd 複刻版本 Devuan Linux
  下一篇:go  bmon:Linux 下一個強大的網絡帶寬監視和調試工具