水平分割 DNS 导致整个网络 DNS 故障

水平分割 DNS 导致整个网络 DNS 故障

问题

我在本地网络上设置了 Raspberry Pi 4。此设备既是 Web 服务器,也是(现在,必然是)DNS 服务器。此设备需要从网络内部和外部访问。我有一个公共域名正在通过更新动态域名系统接收路由器公共 IP 的服务。当我使用指向我的 IP 的域时,我会使用端口转发将所有传入的 Web 流量通过端口 80 路由到 PI 的私有 IP。当我使用此配置在浏览器中访问我的域时(同时连接到除 PI 之外的其他网络)有用!。也就是说;我进入域名,它解析为我的路由器的公共 IP,端口转发将端口 80 请求发送到 PI,它为页面提供服务。瞧!

问题是当我尝试从里面网络。当我使用相同的域名时,它会超时并且无法解析(因为它解析为我的路由器的公共 IP,而不是此 Web 服务器的私有 IP)。

使用水平分割 DNS,我的计划是将此 Web 服务器也用作 DNS 服务器,以强制内部网络上的所有设备将此域名解析为其私有 IP 而不是公共 IP。一旦我离开我的网络,该域名将由其他名称服务器解析,因此它将解析为公共 IP(所以没问题)。

我做了什么

  • 我已经设置了没有桌面、只有 CLI 的 PI
  • 我将树莓派连接到路由器的 LAN 连接
  • 我已经设置了 SSH 并打开了 ufw 端口 22
  • 下载、安装并设置 DNSMasq
  • 在我的服务器防火墙(ufw)中打开端口 53
  • 进入 ISP 给我的框中的路由器管理页面。我将主 DNS 服务器和辅助 DNS 服务器从其默认值都指向我的 PI 服务器的私有 IP
  • 从 ISP 路由器管理页面(上一步)复制了主 DNS 服务器和辅 DNS 服务器的 IP 地址,并将它们放在我的 DNSMasq 配置文件(位于 /etc/dnsmasq.conf)的键下server=ip.ip.ip.ip。我不会提供这些 IP 地址,因此这可以作为我如何输入主 DNS 服务器和辅 DNS 服务器的模拟,每个地址都在一行中,紧接着一行。
  • 我使用了以下 DNSMasq 配置设置:domain-needed、bogus-priv、cache-size=750、log-queries、log-faciliy=/var/log/dnsmasq.log、server=isp.ip.primary.0、server=isp.ip.secondary.0、server=8.8.8.8、server=8.8.4.4、dhcp-mac、dhcp-reply-delay
  • 我的 dnsmasq.log 文件中没有错误
  • 没有错误sudo service dnsmasq status
  • 似乎无法进入我的 ISP 路由器的日志。我可以看到它们,但日志太多了,以至于在尝试滚动浏览它们时整个网页都会崩溃

结果

现在,整个网络上的任何设备都无法解析任何域名,除非我改回默认 ISP 主/辅

我遗漏了什么或者做错了什么?

答案1

如果您将dnsmasq其用作权威和递归 DNS 服务器,则您忘记显示dnsmasq区域配置中的相关行。

https://www.onderka.com/computer-und-netzwerk/autoritativer-dns-server-mit-dnsmasq

当然,最基本的是了解本地 DNS 设置。在下一个示例中,我模拟拥有www.example.com,并使用拆分DNS进行与本地网络不同的解析。

$ nslookup www.example.com 8.8.4.4
Server:         8.8.4.4
Address:        8.8.4.4#53

Non-authoritative answer:
Name:   www.example.com
Address: 93.184.216.34
Name:   www.example.com
Address: 2606:2800:220:1:248:1893:25c8:1946

$ nslookup www.example.com
Server:         192.168.1.1
Address:        192.168.1.1#53

Name:   www.example.com
Address: 192.168.1.2

(我不使用dnsmasq但这不是问题。)

相关内容