除了手動設置伺服器 IP ,最常用的就是 DHCP 動態主機設定協定 (Dynamic Host Configuration Protocol),除了常見的家用路由器有此功能外,也能在 RHEL 上架設私人的 DHCP Server。
1. DHCP 伺服器簡介
DHCP 伺服器是接收 LAN 內的 255.255.255.255 的 DHCPDISCOVER 廣播封包後,來發送 DHCPOFFER 給客戶端,並且會記錄客戶端的租借時間跟 MAC 地址,並且能設定發放的IP範圍及手動綁定MAC 地址所對應的 IP,對於發送多台區域網路內機器及管理有者不同的許用需求。
2. DHCP Server 安裝
DHCP Server 安裝方式十分容易 , 已經預設在 RHEL 8 的 BaseOS 倉庫裡,直接透過 yum 即可安裝
1
|
yum install dhcp-server -y
|
3. DHCP Server 設定
DHCP Server 設定檔路徑 : /etc/dhcp/dhcpd.conf
設定檔範例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.150; # 1
option domain-name-servers 8.8.8.8; # 2
option domain-name "lab.example.com"; # 3
option routers 192.168.0.1; # 4
option broadcast-address 192.168.0.255; # 5
default-lease-time 600; # 6
max-lease-time 7200; # 7
}
host web.lab.example.com {
hardware ethernet 52:54:00:01:fa:0c; # 8
fixed-address 192.168.0.3; # 9
}
|
範例說明 :
- IP 範圍為 192.168.0.100 - 192.168.0.150
- DNS Server為 8.8.8.8
- DNS 補齊名稱為 lab.example.com
- 預設路由閘道為 192.168.0.1
- 廣播地址為 192.168.0.255
- 預設租借時間為 600 s
- 最常租借時間為 7200 s
- 設定客戶端 MAC Address
- 固定此 MAC Address IP
4. 開通防火牆
1
2
|
firewall-cmd --permanent --add-service=dhcp
firewall-cmd --reload
|
5. 啟用服務
1
|
systemctl enable --now dhcpd
|
6. LAB 練習
Servera 設定 DHCP 伺服器並設定發放 IP 範圍為 10.10.10.20-30/24 ,且定義 ServerC 的 eth3 ( 52:54:00:16:36:5b ) 固定取得IP 為 10.10.10.100 ;可以使用 HowHow 第二版 Lab 環境 。
6.1 安裝 DHCP 伺服器
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@servera ~]# yum install dhcp-server -y
Last metadata expiration check: 0:00:25 ago on Sun 01 Jan 2023 09:09:14 PM CST.
Dependencies resolved.
======================================================================================================
Package Architecture Version Repository Size
======================================================================================================
Installing:
dhcp-server x86_64 12:4.3.6-48.el8 baseos 529 k
Upgrading:
dhcp-client x86_64 12:4.3.6-48.el8 baseos 317 k
dhcp-common noarch 12:4.3.6-48.el8 baseos 206 k
dhcp-libs x86_64 12:4.3.6-48.el8 baseos 147 k
|
6.2 配置檔設定
1
2
3
4
5
6
7
8
9
10
|
cat >> /etc/dhcp/dhcpd.conf << EOF
> subnet 10.10.10.0 netmask 255.255.255.0 {
> range 10.10.10.20 10.10.10.30;
> }
>
> host serverc {
> hardware ethernet 52:54:00:16:36:5b;
> fixed-address 10.10.10.100;
> }
> EOF
|
6.3 防火牆開通DHCP
1
2
3
4
|
[root@servera ~]# firewall-cmd --permanent --add-service=dhcp
success
[root@servera ~]# firewall-cmd --reload
success
|
6.4 配置 Server A 伺服器 IP
1
2
3
4
|
[root@servera ~]# nmcli con add con-name dhcpd ipv4.addresses 10.10.10.254/8 ipv4.method manual ifname eth3 type ethernet
Connection 'dhcpd' (3feeed58-3f7a-4b16-b083-d057cedb4815) successfully added.
[root@servera ~]# nmcli con up dhcpd
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/191)
|
Note
囿於 LAB 環境中 Server A 與 Server C 的 eth3 端口為同一個交換機上,要在此網路介面卡上配置 IP,才能使 Server C 客戶端自動取得。
6.4 啟動 DHCP 服務
1
2
3
4
5
6
|
[root@servera ~]# systemctl enable --now dhcpd
Created symlink /etc/systemd/system/multi-user.target.wants/dhcpd.service → /usr/lib/systemd/system/dhcpd.service.
[root@servera ~]# systemctl status dhcpd
● dhcpd.service - DHCPv4 Server Daemon
Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled)
...
|
6.5 查看客戶端
- Server C 將會自動取得 10.10.10.100 IP ( 固定 )
1
2
3
4
|
[root@serverc ~]# ip -4 a s eth3
5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 10.10.10.100/24 brd 10.10.10.255 scope global dynamic noprefixroute eth3
valid_lft 43055sec preferred_lft 43055sec
|
- Server B 將會取得範圍內 IP
1
2
3
4
|
[root@serverb ~]# ip -4 a s eth3
5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 10.10.10.20/24 brd 10.10.10.255 scope global dynamic noprefixroute eth3
valid_lft 42958sec preferred_lft 42958sec
|
7. 小節
DHCP Server 在內部私人網路十分方便,不僅配置容易,也能自定義所需來管理機器。