这是我的情况:
我有一个.net(example.net)域名。
该域名已设置(在我的注册商平台上)以指向我的托管服务提供商的 DNS(通过自定义 DNS 设置)。
托管服务提供商提供了 DNS 区域编辑器。
我需要做的是将子域名:(lan.example.net)指向我的本地服务器,该服务器当前正在运行 bind9。
我究竟应该如何将该子域名委托给我的本地服务器并设置 bind9,以便该子域名可由 bind9 所在的内联网使用(因此 lan.example.net 可由内联网的 PC 访问,而无需连接互联网。这些 PC 将解析到本地 bind9 服务器)。
我是否需要在托管提供商 DNS 区域编辑器上设置指向我的 WAN IP 的 A 记录?
我是否需要在本地服务器 bind9 上打开端口 (53),以便托管服务提供商可以与我的本地 DNS 通信?
我还需要创建更多子域(由我的本地 bind9 管理),如下所示:
site1.lan.example.net
site2.lan.example.net
由于 lan.example.net 已委托给本地 DNS,我应该能够添加更多子域以供内部使用。
任何帮助都将不胜感激。谢谢。
答案1
您无需将面向公众的 DNS 委托给内部 DNS。仅当您想在内部区域使用 DNSSEC 时才可以委托。但事实可能并非如此。
NS
此外,使用和(粘合)记录从外部 DNS 委派A
将暴露您在给定 IP 地址上运行的内部 DNS,同样,这可能不是您想要的。如果这是您想要的,您还需要在本地防火墙上打开端口53/tcp
和53/udp
以允许区域传输:AXFR
和IXFR
。
您BIND9
可以做这样的事情来创建额外的内部子区域:
; Nameservers records
ns.example.net. IN A 192.168.0.10
ns1.example.net. IN A 192.168.0.3
ns2.example.net. IN A 192.168.0.4
; Delegated internal zones
local.example.net. IN NS ns.example.net.
mgmt.example.net. IN NS ns.example.net.
; Delegated external zones
subzone.example.net. IN NS ns.example.net.
whatever.example.net. IN NS ns.example.net.
; Delegated external zone with its own nameservers (and glue records)
fnord.example.net. IN NS ns1.fnord.example.net.
fnord.example.net. IN NS ns2.fnord.example.net.
ns1.fnord.example.net. IN A 198.51.100.1
ns2.fnord.example.net. IN A 198.51.100.2
原始配置在另一个与此类似的问题中,可以在这里找到:一台服务器可以为一个域名和子域名执行 DNS 吗?
最后你也可以看看BIND9
视图。为了避免将您的内部网络暴露给面向公众的 DNS 服务器。否则,您将泄露您的内部 IP 和网络。您基本上需要BIND9
使用您的内部客户端创建一个 ACL:
acl internal {
192.168.0.0/24;
localhost;
};
view "internalview" {
zone "lan.example.net " IN {
type master;
file "zones/lan.example.net";
allow-transfer { nameservers; };
};
};