在法国用 Freebox 跑自建 DNS,别把 DHCP 下发指到它
家里是 Freebox Pop,固件版本 4.7.x,内网一台二手 NUC(Debian 12)跑 dnsmasq,本来只想给几台设备做本地域名解析。规模很小:二十来个客户端,一条千兆光纤,没有 VLAN。
一开始的配置很直接:在 Freebox OS 的 DHCP 设置里把「主 DNS」改成 NUC 的 192.168.1.20,副 DNS 留空。重启几台设备后,网页能开,但隔一阵就出现解析变慢、某几个 App 报网络错误。
我先把 dnsmasq 的日志打开,看到大量来自 Freebox 本体的查询,还有不少 PTR 反查。检查配置才发现两处问题:
# /etc/dnsmasq.d/local.conf
server=192.168.1.254
no-resolv
domain-needed
bogus-priv
192.168.1.254 是 Freebox 自己的地址,但 Freebox 在 DHCP 下发的 DNS 一旦指向 NUC,它自己也在用这个 DNS,形成了回环。改成直接写上游:
server=9.9.9.9
server=1.1.1.1
no-resolv
然后在 Freebox OS 里把 DHCP 下发的 DNS 改回 Freebox 自己(192.168.1.254),只给需要本地解析的那几台设备手动指定 192.168.1.20。这样做的代价是每台设备要单独设,换网络时容易忘;但换来的是 DHCP 链路保持简单,Freebox 重启不会把整屋解析带下去。
为什么不在 Freebox 里直接把 DNS 全指到 NUC:Freebox 的 DHCP 服务对下发 DNS 的容错很小,NUC 一重启、dnsmasq 没起来,新租约的设备就完全没解析;而且 Freebox 自身的一些服务会绕过 DHCP 设置去问 192.168.1.254,回环时日志里就是一堆超时。
会失效的地方:Freebox 固件升级后 DHCP 页面的字段顺序变过,我遇到过一次保存后实际没生效,得重启 Freebox 才认;另外 dnsmasq 的 domain-needed 会让不带点的单标签查询直接失败,如果家里有设备靠 NetBIOS 名字找机器,要把它去掉。还有一个坑是 Freebox 的 IPv6 也会下发 DNS,我只改了 IPv4,结果部分设备走 IPv6 解析绕过了 NUC,本地域名时好时坏。
现在我的做法是:本地域名只给固定的几台设备用,DHCP 下发保持 Freebox 默认,IPv6 的 DNS 单独在 Freebox 里确认一遍。你们在 Freebox 上跑自建 DNS 时,是让 DHCP 统一下发,还是只给个别设备手动指?IPv6 那一路怎么处理的?
0 条评论
还没有评论,写下第一条。