与家用路由器一样,我的路由器(ASUS RT-N66U)配置为 LAN 的缓存名称服务器。看起来路由器使用 dnsmasq 进行名称服务。路由器还提供 DHCP 服务,并允许为特定 MAC 地址保留 IP 地址——仅限本地,当然是 RFC 1918 地址。方便的是,此路由器允许对这些保留的 IP 地址进行名称解析。因此,在命令行中,“ping mykids-pc”将正确解析该设备的本地 IP 地址并成功 ping 它。
在我的 Linux 桌面上,我将 BIND 配置为缓存名称服务器,以及我在 Linux 桌面上运行的虚拟机的权威服务器。因此,“ping centos.posix.test”将解析 IP 并成功 ping 它。
问题是,我找不到同时方便地完成这两项任务的方法。我还没搞清楚如何在我的台式机上安装 BIND,以便将路由器用作 RFC 1918 地址的转发器,或者如何在我的路由器上配置 dnsmasq,以便将我的台式机用作转发器。
有没有办法做到这一点?
答案1
我相信您可以将 DHCP 分配的计算机放入子域并使用 DNS 委派将查询交给路由器,同时仍保留 ISP 名称服务器作为转发器。
因此,您的 Linux 桌面将对 example.com 具有权威性,包含 centos.example.com 等。路由器将配置为对 dhcp.example.com 具有权威性,包含 mykids-pc.dhcp.example.com 等。
您只需添加适当的委派记录即可。
答案2
我已经named
在一台服务器上运行,该服务器解析本地 TLD 的名称并将其他查询转发到 Google 的公共 DNS。
这就是我的/etc/bind/named.conf.options
样子:
options {
...
forward only;
forwarders {
8.8.8.8;
8.8.4.4;
};
};
为了使其使用您的路由器作为转发器,请删除其中一个forwarders
节并将路由器的 IP 地址放入剩余的节中。