绕过本地存根区域的 DNSSEC

绕过本地存根区域的 DNSSEC

我在 Internet DMZ 中使用 bind 9.9.2 作为 DNSSEC 验证递归解析器。我希望将我的内部 DNS 服务器指向存根区域(理想情况下)或除从属区域之外的任何区域(以避免非常大的区域传输)。我们使用可路由的 IP 空间进行内部寻址。抱歉,如果我在示例中使用了您拥有的 IP 空间,但 167.xxx 是我发现的第一个符合我的问题的区域。

例如

dnssec-enable yes;
dnssec-validation yes;
dnssec-accept-expired no;
zone "16.172.in-addr.arpa" {
  type stub;
  masters { 167.255.1.53; }
}

zone "myzone.com" in {
type stub;
  masters { 167.255.1.53; }
}

当查询到达 DNS 服务器时,它们会尝试进行验证,但会失败,因为 167.in-addr.arpa 有 RRSIG 记录,但子区域没有(也不应该有!)。此示例中使用的是 Google DNS,但实际上它将是我的递归解析器。

    @8.8.8.8 -x 167.255.1.53 +dnssec
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 17488
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 512
;; QUESTION SECTION:
;53.1.255.167.in-addr.arpa.     IN      PTR

;; AUTHORITY SECTION:
167.in-addr.arpa.       1800    IN      SOA     z.arin.net. dns-ops.arin.net. 2013100713 1800 900 691200 10800
167.in-addr.arpa.       1800    IN      RRSIG   SOA 5 3 86400 20131017160124 20131007160124 812 167.in-addr.arpa. Lcl8sCps7LapnAj4n403KXx7A3GO7+2z/9Q2R2mwkh9FL26iDx7GlU4+ NufGd92IEJCdBu9IgcZP4I9QcKi8DI28og27WrfKd5moSl/STj02GliS qPTfNiewmTTIDw5++IlhITbp+CoJuZCRCdDbyWKmd5NSLcbskAwbCVlO vVA=
167.in-addr.arpa.       10800   IN      NSEC    1.167.in-addr.arpa. NS SOA TXT RRSIG NSEC DNSKEY
167.in-addr.arpa.       10800   IN      RRSIG   NSEC 5 3 10800 20131017160124 20131007160124 812 167.in-addr.arpa. XALsd59i+XGvCIzjhTUFXcr11/M8prcaaPQ5yFSbvP9TzqjJ3wpizvH6 202MdrIWbsT1Dndri49lHKAXgBQ5OOsUmOh+eoRYR5okxRO4VLc5Tkze Gh0fQLcwGXPuv9A4SFNIrNyi3XU4Qvq0cViKXIuEGTa3C+zMPuvc0her oKk=
254.167.in-addr.arpa.   10800   IN      NSEC    26.167.in-addr.arpa. NS RRSIG NSEC
254.167.in-addr.arpa.   10800   IN      RRSIG   NSEC 5 4 10800 20131017160124 20131007160124 812 167.in-addr.arpa. xnsLBTnPhdyABdvqtEHPxa6Y6NASfYAWfW1yYlNliTyV8TFeNOqewjwj nY43CWD77ftFDDQTLFEOPpV5vwmnUGYTRztK+kB5UrlflhPgiqYiBaBD RQaFQ8DIKaof8/snusZjK7aNmfe09t9gRcaX/pXn3liKz7m/ggxZi0f9 xo0=

;; Query time: 31 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Oct  7 16:52:59 2013
;; MSG SIZE  rcvd: 722

有没有办法绕过特定区域的 DNSSEC 验证?我不希望对我内部托管的任何区域执行 DNSSEC 验证。我只看到这会干扰顶级具有 DS/RRSIG 记录的某些反向区域。

谢谢。

答案1

我还没有想出一个使用 bind 来实现这一点的好方法,但可以使用缓存解析器“unboud”来实现。unbound 的选项是domain-insecure:。使用 bind 我能想到的最好方法是签署你的区域并执行dnssec-lookaside 16.172.in-addr.arpa dlv.examle.org类似操作。

答案2

您所看到的 DNSSEC 记录证明没有委派255.167.in-addr.arpa-167.in-addr.arpa正如 Google DNS 服务器所看到的那样。

在您自己的递归解析器上设置255.167.in-addr.arpa为权威区域;无论是否存在委托,它都会返回设置了 AA 位的答案。事实上,RFC 禁止它返回权威数据的 AD 标志。

相关内容