樹莓派(Raspberry Pi)安裝 DHCP 伺服器,配發 IP 位址

這裡介紹如何在樹莓派(Raspberry Pi)安裝 DHCP 伺服器,讓它負責配發與管理區域網路上的 IP 位址。

樹莓派是一個迷你型的電腦,可運行各種 Linux 系統,因此非常適合拿來作為輕量化的伺服器使用,一般 DHCP 伺服器的負載都很輕,以樹莓派這樣的硬體來說是綽綽有餘,以下是在 Raspbian 系統中安裝與設定 DHCP 伺服器的流程。


Step 1
首先裝 isc-dhcp-server 這個套件:

sudo apt-get install isc-dhcp-server

Step 2
編輯 /etc/network/interfaces,設定網路組態:

iface eth0 inet static
  address 192.168.1.1    # 自己的 IP 位址
  netmask 255.255.255.0  # 網路遮罩
  gateway 102.168.1.254  # 通訊閘道

Step 3
編輯 /etc/dhcp/dhcpd.conf,設定 DHCP 伺服器組態:

# 開放的動態 IP
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.200 192.168.1.250;  # 開放配發的 IP 範圍
  option routers 192.168.1.254;  # 預設通訊閘道
  option broadcast-address 192.168.1.255;  # 廣播位址
  default-lease-time 600;  # 預設租約時間,單位為秒
  max-lease-time 7200;  # 最長租約時間,單位為秒
  option domain-name-servers 8.8.8.8, 8.8.4.4;  # DNS 伺服器
  option domain-name "internal.example.org";  # 網域名稱
}

以上是基本的動態 IP 設定,如果您需要依照 client 端的網路卡 MAC 位址配發固定的 IP 位址的話,可以加入這樣的對應設定:

# 依照網路卡 MAC 位址配發固定的 IP
host sensor101 {
  hardware ethernet 4e:a3:53:01:30:0a;  # 網路卡 MAC 位址
  fixed-address 192.168.1.101;  # 對應的 IP 位址
}
host sensor102 {
  hardware ethernet 4e:a3:24:01:29:09;
  fixed-address 192.168.1.102;
}

這樣當 DHCP 伺服器遇到指定的網路卡 MAC 位址的時候,就會配發事先設定好的 IP 位址。

Step 4
編輯 /etc/default/isc-dhcp-server,設定 啟用 DHCP 的網路卡:

# 設定啟用 DHCP 的網路卡
INTERFACES="eth0"

Step 5
重新啟動 DHCP 伺服器:

sudo service isc-dhcp-server restart

正常的話,會有 ok 的訊息:
[ ok ] Stopping ISC DHCP server: dhcpd.
[ ok ] Starting ISC DHCP server: dhcpd.

這時候只要有 client 跟 DHCP 伺服器要求獲取 IP,在 /var/log/messages 中都會有這樣的紀錄:
Feb  2 16:44:12 raspberrypi dhcpd: DHCPDISCOVER from 4e:43:54:01:00:09 via eth0
Feb  2 16:44:12 raspberrypi dhcpd: DHCPOFFER on 192.168.1.102 to 4e:43:54:01:00:09 via eth0
Feb  2 16:44:12 raspberrypi dhcpd: DHCPREQUEST for 192.168.1.102 (192.168.1.1) from 4e:43:54:01:00:09 via eth0
Feb  2 16:44:12 raspberrypi dhcpd: DHCPACK on 192.168.1.102 to 4e:43:54:01:00:09 via eth0

如果有任何問題,通常也都可以在這裡找到一些錯誤訊息。

如果您對於樹莓派的應用有興趣,建議您可以繼續閱讀物聯網的相關文章。

樹莓派, 物聯網

5 留言

  1. TSAI

    要怎讓Client連上Pi,Pi不是只有一個有線網路接口

    • G. T. Wang

      網路的配置有很多種,要看需求而定,一個實體的網路介面卡也可以同時綁多個 IP 位址或網路區段。另外再接一張 USB 無線網路卡也是很常見的。

      • TSAI

        如果我不想透過無線網卡來配發IP,想透過有線網路去配發的話,是不是需要接一個Switch。

  2. Mark.Hsieh

    STEP 2:
    以現在20170410的樹莓版本,
    改在dhcpcd會比較好。

    /etc/network/interfaces
    保持
    iface eth0 inet manual

    在 /etc/dhcpcd.conf
    改成
    interface eth0
    static ip_address=192.168.9.1/24
    static routers=192.168.9.1
    static domain_name_servers=8.8.8.8

    (可以同步參考葉大的紀錄
    http://yehnan.blogspot.tw/2016/05/raspberry-piipdhcpcd.html)

    真的不想用,論壇中有建議使用(本人沒試過)
    ~ $ sudo systemctl disable dhcpcd
    (https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=144979)

Comments are Closed