Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

DHCP 伺服器完整部署教學:從原理、安裝、配置檔詳解到客戶端驗證 (Linux/CentOS 環境)

編輯:關於伺服器

DHCP 核心原理:四步驟交互流程 (DORA)

階段訊息方向說明
1. 發現DHCP DISCOVERClient → Server (廣播)Client 尋找可用 DHCP 伺服器
2. 提供DHCP OFFERServer → ClientServer 提供 IP、租期、閘道、DNS 等參數
3. 請求DHCP REQUESTClient → Server (廣播)Client 正式請求租用提供的 IP
4. 確認DHCP ACKServer → ClientServer 確認租約生效,Client 完成配置

設計目的:支援多 DHCP 伺服器共存環境,Client 可選擇最佳提供者。

系統環境與套件資訊 (CentOS/RHEL 5/6/7 通用)

安裝步驟

# 方式一:RPM 直接安裝 (需解決相依)
rpm -ivh dhcp-*.rpm

# 方式二:YUM 安裝 (推薦,自動解決相依)
yum install dhcp -y

配置檔完整範例與詳解 (/etc/dhcpd.conf)

# 全域設定
ddns-update-style interim;          # DNS 動態更新模式 (interim/none 實際關閉)
ignore client-updates;              # 忽略客戶端 DNS 更新請求
# allow/deny unknown-clients;       # 是否服務未知客戶端
# allow/deny bootp;                 # 是否回應 BOOTP 請求

# 子網宣告 (核心區塊)
subnet 192.168.2.0 netmask 255.255.255.0 {
    option routers 192.168.2.1;              # 預設閘道
    option subnet-mask 255.255.255.0;        # 子網遮罩
    option nis-domain "domain.org";          # NIS 域名 (較少用)
    option domain-name "domain.org";         # DNS 尾綴
    option domain-name-servers 192.168.2.1;  # DNS 伺服器
    option time-offset -18000;               # 時區偏移 (秒),東八區為 +28800
    # option ntp-servers 192.168.2.1;        # NTP 伺服器
    # option netbios-name-servers 192.168.2.1; # WINS 伺服器
    # option netbios-node-type 2;            # NetBIOS 節點類型

    range dynamic-bootp 192.168.2.100 192.168.2.254;  # 動態分配範圍
    default-lease-time 21600;                # 預設租期 (6 小時)
    max-lease-time 43200;                    # 最大租期 (12 小時)

    filename "/pxelinux.0";                  # PXE 開機檔案 (無盤啟動用)
    next-server 192.168.2.11;                # TFTP/PXE 伺服器 IP

    # 固定 IP 綁定 MAC (靜態租約)
    host ns {
        hardware ethernet 12:34:56:78:AB:CD;
        fixed-address 207.175.42.254;
        next-server marvin.redhat.com;
    }
}

關鍵參數對照表

項目數值
後台進程dhcpd
啟動腳本/etc/rc.d/init.d/dhcpd
監聽埠UDP 67 (Server)、UDP 68 (Client)
核心套件dhcp
相關套件dhcp-devel、dhcpv6、dhcpv6_client
配置檔/etc/dhcpd.conf
租約資料庫/var/lib/dhcpd/dhcpd.leases
日誌檔/var/log/messages (非 xferlog,原文誤標)
參數用途範例
option routers預設閘道192.168.2.1
option subnet-mask子網遮罩255.255.255.0
option domain-name-serversDNS 伺服器 (可多個)192.168.2.1, 8.8.8.8
range動態 IP 池範圍192.168.2.100 192.168.2.200
default-lease-time預設租期 (秒)21600 (6h)
max-lease-time最大租期 (秒)43200 (12h)
filenamePXE 開機檔名/pxelinux.0
next-serverTFTP 伺服器 IP192.168.2.11
host 區塊MAC 綁定固定 IP印表機、伺服器、靜態設備

啟動與驗證

# 啟動服務
service dhcpd start
# 或 systemctl start dhcpd (CentOS 7+)

# 檢查監聽埠
netstat -nulp | grep :67
# 輸出應含 udp 0 0 0.0.0.0:67 dhcpd

# 查看租約資料庫
cat /var/lib/dhcpd/dhcpd.leases

進階配置檔說明

1. 監聽介面限制 (/etc/sysconfig/dhcpd)

# 僅監聽 eth0
DHCPDARGS=eth0
# 多介面
DHCPDARGS="eth0 eth1"
# 不設定則監聽所有介面

2. DHCP Relay 代理 (/etc/sysconfig/dhcrelay)

# 將來自 eth0 的 DHCP 請求轉發至 192.168.1.10、192.168.1.11
INTERFACES="eth0"
DHCPSERVERS="192.168.1.10 192.168.1.11"
# 啟動
service dhcrelay start

Linux 客戶端配置驗證

網卡配置檔 (/etc/sysconfig/network-scripts/ifcfg-eth0)


DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
# 可選:PEERDNS=yes (自動更新 /etc/resolv.conf)

網路服務啟用


# /etc/sysconfig/network
NETWORKING=yes
# 重啟網路
service network restart
# 或
systemctl restart network

常見問題排查

現象排查方向
Client 獲取不到 IP1. 防火牆 UDP 67/68
2. 網段與介面 IP 不符
3. range 範圍耗盡
4. dhcpd 進程未啟動
Client 獲取 IP 但無法上網1. option routers (閘道) 錯誤
2. option domain-name-servers (DNS) 錯誤
3. 伺服器端 IP 轉發未開啟 (/proc/sys/net/ipv4/ip_forward=1)
固定 IP 綁定不生效1. MAC 地址大小寫/格式 (aa:bb:cc vs AA-BB-CC)
2. host 區塊在 subnet 區塊外
3. 衝突於動態 range 範圍內
PXE 無盤開機失敗1. filename/next-server 錯誤
2. TFTP 服務未啟動/防火牆阻擋 UDP 69
3. pxelinux.0 檔案缺失或權限錯誤

生產環境建議:
1. 部署雙 DHCP 伺服器熱備 (failover protocol 或分割範圍)
2. 啟用動態 DNS 更新 (ddns-update-style interim + key)
3. 租期設定:有線網路 8-24h、無線/訪客網路 1-2h
4. 定期備份 /var/lib/dhcpd/dhcpd.leases 並監控剩餘 IP 數量

Copyright © Windows教程網 All Rights Reserved