前言
如果你正使用 Linux 當作是路由器,而且你需要向客戶端發送 DHCP 的 IP 位址,那你可能需要藉助 isc-dhcp-server
這個套件的幫忙。在這篇文章中,我只會講述如何使用這個套件配置 IPv4 的分發,如果你需要 IPv6 的,或許你可以參考另一篇文章:在 Linux 上使用 radvd 分發 IPv6 位址。
操作方式
安裝套件
首先,我們必須先在 Linux 安裝這個套件。
apt-get install -y isc-dhcp-server
配置監聽網卡
接著我們要設定這個套件將會監聽的網路介面卡,他會放在 /etc/default/isc-dhcp-server
這個檔案裡面。我們需要編輯最下面 INTERFACESv4
的地方,那像是我會監聽 ens19
這個網卡,所以我會這樣寫:
INTERFACESv4="ens19"
配置 DHCP 設定
接著我們必須要配置 /etc/dhcp/dhcpd.conf
這個檔案。
在這個文件的最上方可以看到兩行 default-lease-time
及 max-lease-time
,是分別設定 IP 預設租期與最大租期的時間,我都是將它設定成 10800
,也就是 3 小時。
default-lease-time 10800;
max-lease-time 10800;
接著我們要設定一個 IP 池,就是我們要 DHCP 的範圍,將他寫在這份文件的最下方。在這篇文章中,我們就拿 192.168.50.0/24
作為範例吧!
subnet 192.168.50.0 netmask 255.255.255.0 {
range 192.168.50.1 192.168.50.253;
option routers 192.168.50.254;
option domain-name-servers 192.168.50.254;
}
在上方的配置中,由於我的路由器位址是 192.168.50.254
,因此我的 DHCP 範圍就限制在 .1
到 .253
,而下面的 domain-name-servers
就是 DNS 的意思,當然你要寫成 8.8.8.8
之類的也可以。
配置固定 IP 位址
某些裝置你可能會想要讓他在 DHCP 時獲得固定的 IP 位址,這時候就可以善用 host
這個區塊。
host mydevice {
hardware ethernet 9E:1A:E5:63:4C:50;
fixed-address 192.168.50.88;
}
在上面的範例中可以看到,我取了一個名為 mydevice
的裝置,他的 mac 位址是 9E:1A:E5:63:4C:50
,他將會固定分發到 192.168.50.88
這個 IP 位址。
重啟生效
當設定完之後,我們就重啟套件讓他生效吧!
systemctl restart isc-dhcp-server
結語
這就是 isc-dhcp-server
的設定方式啦,說實在剛開始玩的時候覺得這個配置有些繁瑣,但熟悉了之後發現可以變出非常多花樣,這個筆記也留給未來的我參考使用囉。