我在使用 ISC-DHCP 服务器进行 DDNS 更新时遇到问题。
我的 /etc/dhcp/dhcpd.conf 子网部分不起作用:
subnet 193.198.186.192 netmask 255.255.255.224 {
range 193.198.186.200 193.198.186.222; # MT 20211210
option subnet-mask 255.255.255.224;
option domain-name-servers 161.53.235.3, 161.53.2.70;
option domain-name "slava.alu.hr";
ddns-domainname "slava.alu.hr";
zone slava.alu.hr. {
primary 127.0.0.1;
key DDNS_UPDATE;
}
zone 192-27.186.198.193.in-addr.arpa. {
primary 127.0.0.1;
key DDNS_UPDATE;
}
option broadcast-address 193.198.186.223;
option routers 193.198.186.193;
default-lease-time 43200;
max-lease-time 86400;
}
我的 193.198.186.192/27 的网络委派实际上是 192/27.186.198.193.in-addr.arpa。但他们似乎不愿意改变它。
看这里:
root@domac:~# host -t any 193.198.186.195
195.186.198.193.in-addr.arpa is an alias for 195.192/27.186.198.193.in-addr.arpa.
195.192/27.186.198.193.in-addr.arpa domain name pointer test-record.slava.alu.hr.
root@domac:~#
这要求我的 /etc/bind/named.conf.local 条目:
zone "192/27.186.198.193.in-addr.arpa" in {
type master;
file "/var/cache/bind/192-27.186.198.193.in-addr.arpa.db";
allow-update { key DDNS_UPDATE; };
};
但是,ISC DHCPd 认为区域名称中的“/”是语法错误。
有没有办法告诉 BIND 或 ISC DHCPd 在 /etc/bind/named.conf.local 和 /etc/dhcp/dhcpd.conf 区域声明中接受不同的名称?
当我将 dhcpd.conf 中的声明更改为:
zone 186.198.193.in-addr.arpa. {
primary 127.0.0.1;
key DDNS_UPDATE;
}
并将 /etc/bind/named.conf.local 条目添加到:
zone "186.198.193.in-addr.arpa" in {
type master;
file "/var/cache/bind/192-27.186.198.193.in-addr.arpa.db";
allow-update { key DDNS_UPDATE; };
};
然后动态 DHCPd 更新起作用:
Dec 10 15:42:59 domac dhcpd[11512]: DHCPREQUEST for 193.198.186.211 from e8:48:b8:5b:8c:46 (LAPTOP-MTODOROV) via 193.198.186.193
Dec 10 15:42:59 domac dhcpd[11512]: DHCPACK on 193.198.186.211 to e8:48:b8:5b:8c:46 (LAPTOP-MTODOROV) via 193.198.186.193
Dec 10 15:42:59 domac dhcpd[11512]: Added new forward map from LAPTOP-MTODOROV.slava.alu.hr to 193.198.186.211
Dec 10 15:42:59 domac dhcpd[11512]: Added reverse map from 211.186.198.193.in-addr.arpa. to LAPTOP-MTODOROV.slava.alu.hr
我可以从我的 DNS 服务器的领域中看到它:
root@domac:~# host laptop-mtodorov.slava.alu.hr
LAPTOP-MTODOROV.slava.alu.hr has address 193.198.186.211
root@domac:~# host -t any 193.198.186.211
211.186.198.193.in-addr.arpa domain name pointer LAPTOP-MTODOROV.slava.alu.hr.
root@domac:~#
...但现在 DNS 委派已失效。我不可能将整个 186.198.193.in-addr.arpa. 区域用作我们域的子网,而且他们也不会批准中央 DNS 服务器上的动态更新。
我似乎无法同时拥有这两者,除非有办法指示 DHCP 或 BIND 将区域添加到 BIND 中与 DHCP 中名称不同的区域。
我似乎已经没有选择了。
如果您知道答案,非常感谢。
问候,马文
附言
我尝试了以下方法,但没有效果:
zone "192-27.186.198.193.in-addr.arpa" in {
type master;
file "/var/cache/bind/192-27.186.198.193.in-addr.arpa.db";
};
zone "186.198.193.in-addr.arpa" in {
type master;
file "/var/cache/bind/192-27.186.198.193.in-addr.arpa.db";
allow-update { key DDNS_UPDATE; };
};
(两个区域具有相同的文件。)
我得到的是:
root@domac:/etc/bind# named-checkconf
/etc/bind/named.conf.local:49: writeable file '/var/cache/bind/192-27.186.198.193.in-addr.arpa.db': already in use: /etc/bind/named.conf.local:44
root@domac:/etc/bind#
不错的尝试 :-( 程序员足够聪明,可以阻止这种黑客攻击!
知道如何让两个区域引用同一个区域数据库吗?一个区域与分配的委派区域匹配,另一个区域186.198.193.in-addr.arpa
与 ISC DHCP 仅知道如何更新的区域匹配。
我甚至尝试用
192/27.186.198.193.in-addr.arpa
引号括起来以避免语法错误,但我得到了这个:十二月 10 23:17:45 domac dhcpd[26555]: /etc/dhcp/dhcpd.conf 第 187 行: 需要主机名。 十二月 10 23:17:45 domac isc-dhcp-server[26545]: /etc/dhcp/dhcpd.conf 第 187 行: 需要主机名。 十二月 10 23:17:45 domac isc-dhcp-server[26545]: 区域“192/27.186.198.193.in-addr.arpa。”十二月 10 23:17:45 domac isc-dhcp-server[26545]: ^ 十二月 10 23:17:45 domac isc-dhcp-server[26545]: 遇到配置文件错误 -- 退出 十二月 10 23:17:45 domac isc-dhcp-server[26545]: 退出。 十二月 10 23:17:45 domac dhcpd[26555]: 区域“192/27.186.198.193.in-addr.arpa。”
所以,这也行不通。唯一的希望是找到一种方法,使用两个区域名称的同一个 DNS 区域数据库。我想这种情况并不罕见,应该有针对这种情况的规定吧?
马文