优雅的DNSSEC为私人顶级域名

要使用第三方服务,我可以使用他们的DNS名称来parsing他们的域名。 不幸的是,他们使用了一些不好的做法,比如使用他们自己的TLD,我们将在后面称之为TLD。 为了能够解决他们的域名,我已经build立了一个转发我的本地DNS服务器上的tld区域:

 zone "tld." { type forward; forward only; forwarders { xxxx; }; }; 

xxxx是他们的域名服务器。 不幸的是, sub.example.tld没有得到解决,因为DNSSEC无法在树中获得更高的DS,因为它试图从被拒绝的xxxx获得一个NSlogging。 作为(希望)显示在下面的tcpdump,与相应的挖掘输出:

 dig @localhost sub.example.tld 22:23:58.104635 IP (tos 0x0, ttl 64, id 11345, offset 0, flags [none], proto UDP (17), length 77) egmaas.35308 > xxxxdomain: [bad udp cksum 0x18b8 -> 0x708c!] 35515+% [1au] A? sub.example.tld. ar: . OPT UDPsize=4096 OK (49) 22:23:58.132413 IP (tos 0x0, ttl 62, id 62124, offset 0, flags [none], proto UDP (17), length 152) xxxxdomain > egmaas.35308: [udp sum ok] 35515*- q: A? sub.example.tld. 1/2/1 sub.example.tld. [10h40m] A xxx1 ns: example.tld. [10h40m] NS dkp-dns001.dmz.local., example.tld. [10h40m] NS dkp-dns002.dmz.local. ar: . OPT UDPsize=4096 OK (124) 22:23:58.132924 IP (tos 0x0, ttl 64, id 11351, offset 0, flags [none], proto UDP (17), length 71) egmaas.52511 > xxxxdomain: [bad udp cksum 0x18b2 -> 0xe141!] 31932+% [1au] DS? example.tld. ar: . OPT UDPsize=4096 OK (43) 22:23:58.160128 IP (tos 0x0, ttl 62, id 62125, offset 0, flags [none], proto UDP (17), length 143) xxxxdomain > egmaas.52511: [udp sum ok] 31932*- q: DS? example.tld. 0/1/1 ns: example.tld. [10h40m] SOA dkp-dns001.dmz.local. admin.tld.org. 2015062301 10800 3600 604800 38400 ar: . OPT UDPsize=4096 OK (115) 22:23:58.174284 IP (tos 0x0, ttl 64, id 11356, offset 0, flags [none], proto UDP (17), length 63) egmaas.57612 > xxxxdomain: [bad udp cksum 0x18aa -> 0x3f69!] 19858+% [1au] NS? tld. ar: . OPT UDPsize=4096 OK (35) 22:23:58.201136 IP (tos 0x0, ttl 62, id 62126, offset 0, flags [none], proto UDP (17), length 63) xxxxdomain > egmaas.57612: [udp sum ok] 19858 Refused- q: NS? tld. 0/0/1 ar: . OPT UDPsize=4096 OK (35) ; <<>> DiG 9.10.3-P4-Ubuntu <<>> @localhost sub.example.tld ; (2 servers found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 41059 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;sub.example.tld. IN A ;; Query time: 97 msec ;; SERVER: ::1#53(::1) ;; WHEN: Mon Oct 24 22:23:58 CEST 2016 ;; MSG SIZE rcvd: 49 

其中xxx1xxx1的实际正确parsingIP。 (错误的校验和可以忽略,因为它们是一个错误的否定结果)

除了在本地DNS服务器上完全禁用DNSSEC以外,还有其他select吗? 此外,已经证实外部方不能改变他们的DNS设置,更不用说实际上正确地合并了DNSSEC。

我不相信BIND有做你要求的好方法。

您可以使用trusted-keys来添加信任锚(这将根据DSlogging添加/重写密钥,本质上是这样),但无法永久删除信任。 根据我的理解,有问题的区域没有签名,所以为它添加一个密钥作为信任锚将无济于事。

最新版本确实有一种方法,用rndc nta (和相应的nta-lifetime / nta-recheck设置)暂时添加负信任锚点,但这是专门用于临时解决scheme的,负信任锚点会自动失效。