使用 Linux 架設 DHCP 伺服器:isc-dhcp-server

前言

如果你正使用 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-timemax-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 的設定方式啦,說實在剛開始玩的時候覺得這個配置有些繁瑣,但熟悉了之後發現可以變出非常多花樣,這個筆記也留給未來的我參考使用囉。