绑定:使用自己的 SOA 委派子域

绑定:使用自己的 SOA 委派子域

操作系统:Oracle Linux 8.9
绑定版本:9.11.36(从 rpm 安装)

我在创建委托给 azure 服务器的子域 (powerwebappuat.lereta.com) 时遇到问题。通常这并不困难。我只需在数据文件中添加一个代表团,如下所示,每个人都很高兴:

powerwebappuat     IN  NS  ns1-38.azure-dns.com.
powerwebappuat     IN  NS  ns2-38.azure-dns.net.
powerwebappuat     IN  NS  ns3-38.azure-dns.org.
powerwebappuat     IN  NS  ns4-38.azure-dns.info.

然而,这一次,Microsoft 要求我使用与父区域不同的 SOA 委托 powerwebappuat。门票非常具体:

SOA 记录:
电子邮件:azuredns-hostmaster.microsoft.com
主机:ns1-38.azure-dns.com。
刷新: 3600
重试: 300
过期: 2419200
最小 TTL: 300
序列号: 1

父区域的当前 SOA 是:

$ORIGIN lereta.com.
$TTL 1200       ; 20 minutes
@     IN SOA  ns1.taxandflood.net. dnsadmin.taxandflood.com. (
         1539796885 ; serial
         3h         ; refresh
         1h         ; retry
         14d        ; expire
         1h         ; minimum
         )

我尝试添加一个新的 $ORIGIN 及其自己的 SOA:

$ORIGIN powerwebappuat.lereta.com.
$TTL 1200
@ IN  SOA ns1-38.azure-dns.com. azuredns-hostmaster.microsoft.com (
          1           ; serial
          1h          ; refresh
          5m          ; retry
          28d         ; expire
          5m          ; minimum
          )

      NS  ns1-38.azure-dns.com.
      NS  ns2-38.azure-dns.net.
      NS  ns3-38.azure-dns.org.
      NS  ns4-38.azure-dns.info.

虽然named-checkconf不会抱怨上述情况,但当我尝试签署该区域时,named-checkzone返回一个错误,根据设计,该错误会停止我的脚本。

data/lereta.com:251: SOA record not at top of zone (powerwebappuat.lereta.com)
zone lereta.com/IN: loading from master file data/lereta.com failed: not at top of zone
zone lereta.com/IN: not loaded due to errors.

我可以找到大量使用 Bind 委派子域的示例,但没有一个提供有关如何使此类委派具有与父区域不同的 SOA 的建议。

有谁知道如何做到这一点。

答案1

通常我会在单独的文件中创建子区域。例如named.conf我可能有

zone "example.org" {
  type master;
  file "example.org";
};

zone "subzone.example.org" {
  type master;
  file "subzone.example.org";
}

现在,example.org您可以在文件中添加您的委托:

subzone IN NS ns1.whatever
subzone IN NS ns2.whatever
...

subzone.example.org可以添加您的 SOA

$ORIGIN .
$TTL 1800
subzone.example.org IN SOA ... (
                           ....
                           )
                    IN NS ...
                    IN NS ...
$ORIGIN subzone.example.org.
...

子区域现在可以具有您想要的任何 SOA 值,并且named-checkzone可以在两个区域上独立运行。

相关内容