我在 RHEL 6 上使用 BIND 9.8.2 维护一个大型 DNS 区域。我们称之为example.edu
。它有一个主区域文件example.edu
以及带有单独区域文件的子域,例如abc.example.edu
,qrs.example.edu
并且xyz.example.edu
所有这些都允许从我们的 DHCP 服务器(RHEL 5,ISC-dhcpd 版本 3.0.5)进行“临时式”动态 DNS 更新。 DHCPD 配置示例可能包含:
shared-network "Some DATA VLAN 220 10.102.32.0/23" {
subnet 10.102.32.0 netmask 255.255.254.0 {
option subnet-mask 255.255.254.0;
option routers 10.102.32.1;
option domain-name "qrs.example.edu";
ddns-domainname "qrs.example.edu";
default-lease-time 86400;
max-lease-time 86400;
range 10.102.32.5 10.102.32.247;
range 10.102.33.5 10.102.33.247;
group {
option domain-name "qrs.example.edu";
ddns-domainname "qrs.example.edu";
}
}
}
此配置中的所有内容都按预期工作(是的,该节中的域选项group { }
是多余的,我们稍后会讨论)。当新主机被分配或删除时,区域文件qrs.example.edu
会自动更新,一切正常。
但是,如果我们想使用group { }
节来更改主机注册的子域,我们就会开始看到不一致的行为。使用以下内容:
shared-network "Some DATA VLAN 220 10.102.32.0/23" {
subnet 10.102.32.0 netmask 255.255.254.0 {
option subnet-mask 255.255.254.0;
option routers 10.102.32.1;
option domain-name "qrs.example.edu";
ddns-domainname "qrs.example.edu";
default-lease-time 86400;
max-lease-time 86400;
range 10.102.32.5 10.102.32.247;
range 10.102.33.5 10.102.33.247;
group {
option domain-name "abc.example.edu";
ddns-domainname "abc.example.edu";
host foo
{ddns-hostname "foo"; fixed-address 10.102.33.248; hardware ethernet 00:11:22:aa:bb:cc;}
}
}
}
我们看到 的区域文件example.edu
已更新(不是 的区域文件abc.example.edu
),其 DNS 配置如下:
$ORIGIN abc.example.edu
$TTL 86400 ; 1 day
foo A 10.102.33.248
TXT "31ThisIsSomeHostnameHashFromDHCP"
这是损坏的,因为主机 A 记录不在abc.example.edu
区域文件中,因此可以解决。 FWIW,据我所知,PTR 记录工作得很好,因为它们没有那么分散,而前向区域则不然。
因此,如果您到目前为止一直关注我,我的问题是:为什么在节与节中使用domain-name
或ddns-domainname
配置选项时我们会看到这种行为差异?group { }
subnet { }