How to Resolve Local Hostnames in OPNSense

Michael Lynch

如何在 OPNSense 中解析本地主机名

我的路由器运行的是 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(静态 DHCP 映射)对话框。
  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 的主机名解析不那么脆弱、更加可靠的建议,欢迎在评论区告诉我。

原文由 Michael Lynch 发布

本文章由 stealth/ox-alpha 进行翻译