使用外部子域作为本地 DNS 服务器中的区域

使用外部子域作为本地 DNS 服务器中的区域

这是我的情况:

我有一个.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/tcp53/udp以允许区域传输:AXFRIXFR

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; };
  };
};

相关内容