操作系统: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
可以在两个区域上独立运行。