我需要在四个接口上运行 bind9 作为 DNS64 服务器,并运行 dnsmasq 来为环回接口进行 DNS 解析并为 DNS64 接口提供路由器通告。
bind9 在以下接口上处于活动状态:gphy0、gphy1、gphy2 和 gphy3(地址分别为:fd70:1234:1234::/64、fd70:1234:1234:1::/64、fd70:1234:1234:2::/64 和 fd70:1234:1234:3::/64)。我已将 bind9 配置为仅监听这些接口:
listen-on-v6 { fd70:3d33:7f39::/64; fd70:3d33:7f39:1::/64; fd70:3d33:7f39:2::/64; fd70:3d33:7f39:3::/64;};
一切按预期进行,我获得了 DNS64 解析:
root@host:~# netstat -tulpn | grep 53
tcp6 0 0 fd70:3d33:7f39:3:d09:53 :::* LISTEN 1232/named
tcp6 0 0 fd70:3d33:7f39:2:a81:53 :::* LISTEN 1232/named
tcp6 0 0 fd70:3d33:7f39:1:fcf:53 :::* LISTEN 1232/named
tcp6 0 0 fd70:3d33:7f39:0:903:53 :::* LISTEN 1232/named
tcp6 0 0 fd70:3d33:7f39:3:::53 :::* LISTEN 1232/named
tcp6 0 0 fd70:3d33:7f39:2:::53 :::* LISTEN 1232/named
tcp6 0 0 fd70:3d33:7f39:1:::53 :::* LISTEN 1232/named
tcp6 0 0 fd70:3d33:7f39:::53 :::* LISTEN 1232/named
udp6 0 0 fd70:3d33:7f39:3:d09:53 :::* 1232/named
udp6 0 0 fd70:3d33:7f39:2:a81:53 :::* 1232/named
udp6 0 0 fd70:3d33:7f39:1:fcf:53 :::* 1232/named
udp6 0 0 fd70:3d33:7f39:0:903:53 :::* 1232/named
udp6 0 0 fd70:3d33:7f39:3:::53 :::* 1232/named
udp6 0 0 fd70:3d33:7f39:2:::53 :::* 1232/named
udp6 0 0 fd70:3d33:7f39:1:::53 :::* 1232/named
udp6 0 0 fd70:3d33:7f39:::53 :::* 1232/named
现在我希望 dnsmasq 仅在环回接口上提供 DNS 解析,并在这些 gphyX 接口上启用路由器通告。这是我的 dnsmasq.conf:
domain-needed
bogus-priv
resolv-file=/run/resolv.conf
server=/domain.com/8.8.8.8
user=daemon
group=daemon
no-hosts
interface=
bind-interfaces
dhcp-range=::,constructor:gphy0,ra-only,12h
dhcp-range=::,constructor:gphy1,ra-only,12h
dhcp-range=::,constructor:gphy2,ra-only,12h
dhcp-range=::,constructor:gphy3,ra-only,12h
enable-ra
和绑定接口和接口=我尝试仅在环回接口上运行 dnsmasq(以提供本地 DNS 解析)。不幸的是,这似乎会破坏 RA(我在 gphy0 tcpdump 中看不到 RA)。
如果我将这两个配置键替换为端口=0,我在 gphyX 接口上获得了 RA(并且 DNS64 正常工作),但是显然没有本地 DNS 解析。
如何才能同时激活 bind9(仅用于这四个接口上的 DNS64)和 dnsmasq(用于本地 DNS 解析和这四个接口的 RA)?
如果缺少任何相关信息,请告诉我,我会编辑我的问题。
答案1
替换为port=20054
在非标准端口上运行 dnsmasq 的 DNS 服务,然后在 BIND 中定义forward
或static-stub
区域以将“内部”域的查询传递到 Dnsmasq,同时让 BIND 处理所有其他 DNS 解析。(类似于对反向代理后面的基于 HTTP 的服务所做的操作。)