名称解析暂时失败 - pfSense + Ubuntu

名称解析暂时失败 - pfSense + Ubuntu

我在 Hyper-V 上有 2 台虚拟机:

  1. 普富思
  2. Ubuntu 服务器 22.04

pfSense VM 连接到 2 个虚拟交换机 - 外部 WAN 和专用 LAN,后者充当其余 VM 的内部交换机。

我的 ISP 路由器的 IP 范围是192.168.2.x/24,pfSense WAN IP 是192.168.2.25

然后,我将 pfSense 中的 LAN 设置为 DHCP,IP 范围为172.25.100.x/24

然后我将 Ubuntu 服务器连接到这个 LAN 交换机,它获得了 IP172.25.100.2

似乎可以访问互联网,因为我可以 ping 到其他网站的 IP,但是当我尝试 ping 他们的域名时,我得到以下信息:Temporary failure in name resolution

为什么?DNS解析问题发生在哪里?在这个设置的哪一部分?

答案1

  • 第一步是检查哪个Ubuntu 主机尝试使用的服务器 – 查看文件/etc/resolv.conf,如果该文件仅显示“127.0.0.53”(这是在 Ubuntu 上运行的“systemd-resolved”DNS 缓存),则检查命令resolvectl。确保服务器地址有意义。

    如果 Ubuntu 使用 DHCP,那么它将使用 pfSense DHCP 服务器(以及可能的 IPv6 路由器通告)所通告的任何 DNS 服务器。

  • 如果 pfSense 宣传自己,则其“DNS 解析器”服务 (Unbound) 或“DNS 转发器”服务 (Dnsmasq) 必须正在运行 -查看文档

    为了使“DNS 转发器”服务(Dnsmasq)正常工作,必须配置一个有效的“上游”DNS 服务器来转发所有请求 - 据我所知,这是在全局 pfSense 设置中完成的。

    “DNS 解析器”服务(Unbound)不需要上游 DNS 服务器,因为它可以自行进行递归查找,但如果它确实配置了一些上游,那么它们必须有效。

  • 无论哪种情况,pfSense防火墙规则必须允许来自“LAN”网络向指定服务器发出的 DNS 请求 - 也就是说,必须允许 TCP 和 UDP 的 dst.port 53。

    (“pf”防火墙是有状态的,因此将自动允许回复“LAN”。)

  • 不要使用“ping”来测试 DNS – 使用实际的 DNS 客户端,例如hostdig,手动指定要测试的 DNS 服务器的 IP 地址:

    $ dig google.com @172.25.100.1
    $ host google.com 172.25.100.1
    

相关内容