我已经设置了 BIND9 来解析我的工作组使用的域名,它包含:
- 公共域名:
*.my-company.com
- 我们自己的顶级域名
*.top
但我不知道如何设置客户端来添加额外的 DNS 服务器。
我将我的 DNS 服务器称为DNS-mine
,并且从宽带接入作为DNS-system
。
由于网速原因和用户偏好,我不能转发DNS-system
。 (用户分布在世界各地,位于美国)。DNS-mine
DNS-mine
我尝试了几种方法,如下:
将 (1.2.3.4)的 IP4 添加
DNS-mine
到 resolv.conf:nameserver 8.8.8.8 # DNS-system nameserver 1.2.3.4 # DNS-mine
但是,
DNS-mine
从未被查询。如前所述,resolv.conf(5)
仅当第一个名称服务器超时时才会查询第二个名称服务器,但是DNS-system
这里从未超时。并且
resolv.conf
也被网络管理器重置。将区域添加
'*.top.my-company.com'
到DNS-mine
,并使其与.my-company.com
区域相同。然后在每个客户端中更改/etc/hostname
为a1.my-company.com
、a2.my-company.com
等。其工作原理如下:www.top -> www.top.my-company.com == www.my-company.com
DNS-mine
但是,我必须同时添加所有客户端主机名,否则客户端将卡住:127.0.0.1 a1.my-company.com 127.0.0.1 a2.my-company.com 127.0.0.1 a3.my-company.com
客户端没有 WAN IP,因为它们位于防火墙后面。新客户端可能随时加入。
与上面相同,但不要改变
/etc/hostname
,而是添加到/etc/resolv.conf
:domain my-company.com
这非常有效,但是该
/etc/resolv.conf
文件会被网络管理器自动重置。将所有名称添加
*.top
到/etc/hosts
文件中,然后忽略DNS-mine
,这种方法效果很好,但难以维护。
答案1
为了添加 ICANN 尚未识别的新 TLD(例如您),您必须在 DNS 解析链中放置一个认为自己具有权威性的 DNS 服务器。实际上,这意味着第一跳。为了在内部使用您的 *.top 域,您必须将所有客户端指向您自己的 DNS 服务器,或者维护 /etc/hosts 文件。两者之一。
至于 top.my-domain.com,您有一些选择。任何对 my-domain.com 具有权威性的 DNS 服务器(您没有说)都将能够提供 top.my-domain.com。为了简单起见,这可能是您最好的选择。让您的(假定的)DNS 托管服务添加该子域并添加您需要的条目。
但是,托管本地 DNS 服务器其实并不是一个坏主意。它们被称为缓存 DNS 服务器,可以缓存解析的名称,因此检索它们的速度比从互联网上获取的速度更快。如果您将 *.top 域名添加到其中,它将满足您的所有需求。
答案2
我会设置所有工作组计算机来查询您的 DNS 服务器,如果您的服务器不知道查询的答案,则让 DNS 服务器将其转发到 Internet DNS 服务器。这样,您就可以让 Internet DNS 服务器解析您的特殊域(或覆盖/过滤)域。
我使用 DHCP 来推送我的 DNS 设置,但任何可行的方法都可以。
答案3
您需要做的就是将 *.top.my-company.com NS 查找委托给您的自定义 DNS-mine 服务器。客户端无需进行任何更改,这只是一个引用查找。
DNS 默认
top IN NS DNS-mine.my-company.com
这一切都在这里得到了详细的回答: