How to Resolve Local Hostnames in OPNSense

Michael Lynch

如何在 OPNsense 中解析區網主機名稱

原文由 Michael Lynch 發布,訂閱此部落格

我的路由器跑的是 OPNsense Business。我喜歡用開源路由器,但它還是有幾個讓人不甚滿意的地方。

最大的問題是,OPNsense 預設無法解析區域網路內的主機名稱。

為什麼 OPNsense 無法解析區網主機名稱?

我以前用過的其他路由器,只要區網內有一台電腦叫做 foo123,我在主要桌機上執行 ping foo123,就一切正常。桌機可以成功 ping 到 foo123

換成 OPNsense 之後,我就沒辦法從桌機 ping 到 foo123 了。OPNsense 預設似乎不會解析區網主機名稱,我也不懂為什麼要這樣設計。

我找到了一些變通方法,多少能改善狀況,但還是不夠完美。

讓 Unbound 去解析區網主機名稱

前往 Services > Unbound DNS > General。

勾選以下選項:

  • Register ISC DHCP4 Leases
  • Register DHCP Static Mappings

在 Unbound 設定中勾選「Register ISC DHCP4 Leases」和「Register DHCP Static Mappings」

點擊 Apply 套用變更。

手動指定主機名稱

即使已經設定了 Unbound,我發現 OPNsense 還是常常無法解析區網主機,我也不知道原因。

在非得讓 OPNsense 解析不可的情況下,我就手動強制建立對應。

選擇區網使用的網域名稱

  1. 前往 System > Settings > General。
  2. 在「Domain」欄位中,為你的區域網路指定一個網域名稱。
    • 我本來一直以為應該要用 local,但說明文字卻警告說不該這麼做。
    • 我選了 home.arpa,因為那是家用網路在技術上正確的網域,不過真的醜到不行。
    • 根據 IETF 的定義,網域實際上應該是 home.arpa.(最後面要加一個點),但 OPNsense 不接受這種寫法當作網域,而是建議用 home.arpa,所以我就照它的建議用了。
  3. 點擊「Save」套用變更。

為主機建立靜態對應

  1. 前往 Services > ISC DHCPv4 > Leases
  2. 在主機清單中找到你想讓 OPNsense 能解析的那台主機。
  3. 點擊該列最右側的 + 圖示。這會帶你進入 Static DHCP Mapping 對話框。
  4. IP address 欄位中輸入一組區網 IP 位址。
  5. 點擊「Save」儲存這組靜態 IP 對應。

為主機名稱建立手動覆寫

  1. 前往 Services > Unbound DNS > Overrides。
  2. 在「Host Overrides」下方,點擊橘色的「+」按鈕來新增一筆覆寫。
  3. 在「Host」欄位輸入你在靜態對應中指定的主機名稱。
  4. 在「Domain」欄位輸入 home.arpa
  5. 在「IP address」欄位輸入你在靜態對應中指定的 IP 位址。
  6. 點擊「Save」。

.home.arpa 網域後綴來指定主機

有時候 OPNsense 無法解析主機 foo123,卻可以成功解析 foo123.home.arpa,所以如果只打主機名稱沒用,我一定會試試看加上網域後綴。

我也不太懂為什麼 OPNsense 非得要加後綴不可,明明沒有加網域名稱,就應該很明顯我指的是區域網路內的主機才對,但加上 .home.arpa 有時候就是有用。

還有其他改進方法嗎?

如果你有辦法讓 OPNsense 的主機名稱解析不那麼容易出錯、更穩定可靠,歡迎在留言區告訴我。

本文章由 muse-spark-1.2-contributor 進行翻譯

留言