.bw (Botswana) TLD DNSSEC Outage: 2017-10-18
Date: October 18, 2017
Overview
This page gives some details on the bw TLD DNSSEC outage on October 18, 2017.
Timeline / DNSViz
- 2017-10-18 03:09:10 UTC — RRSIGs expire
- 2017-10-18 03:11:08 UTC — expired RRSIGs
- 2017-10-18 03:12:00 UTC — expired RRSIGs
- 2017-10-18 03:12:14 UTC — expired RRSIGs
- 2017-10-18 03:12:27 UTC — expired RRSIGs
- 2017-10-18 09:06:09 UTC — expired RRSIGs
- 2017-10-18 09:06:22 UTC — expired RRSIGs
- 2017-10-18 09:07:10 UTC — expired RRSIGs
- 2017-10-18 09:18:35 UTC — expired RRSIGs
- 2017-10-18 11:38:16 UTC — expired RRSIGs
- 2017-10-18 12:02:11 UTC — expired RRSIGs
- 2017-10-18 12:08:48 UTC — DNSSEC outage essentially over
DNSSEC Debugger
Unlike DNSViz, Verisign's DNSSEC Debugger doesn't archive results, so here's a screenshot of my web browser's output from October 18, 2017:
Google Public DNS: with and without DNSSEC
DNSSEC can be disabled in queries via the CD (checking disabled) bit. Let's compare DNS queries with and without DNSSEC.
With DNSSEC, DNS queries fail:
$ dig +dnssec ns bw. @8.8.8.8
; <<>> DiG 9.4.2-P2 <<>> +dnssec ns bw. @8.8.8.8
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 63700
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 512
;; QUESTION SECTION:
;bw. IN NS
;; Query time: 53 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Oct 18 03:11:43 2017
;; MSG SIZE rcvd: 31
You have to disable DNSSEC to make DNS queries work:
$ dig +cd ns bw. @8.8.8.8
; <<>> DiG 9.4.2-P2 <<>> +cd ns bw. @8.8.8.8
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64810
;; flags: qr rd ra cd; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;bw. IN NS
;; ANSWER SECTION:
bw. 7196 IN NS dns1.nic.net.bw.
bw. 7196 IN NS dns2.nic.net.bw.
bw. 7196 IN NS pch.nic.net.bw.
bw. 7196 IN NS ns-bw.afrinic.net.
bw. 7196 IN NS master.btc.net.bw.
;; Query time: 8 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Oct 18 03:11:43 2017
;; MSG SIZE rcvd: 140
Zonemaster
- zonemaster.net archived "Delegation from parent to child is not properly signed (signature: DNSSEC signature has expired)."
drill trace
Since DNSSEC contains so much garbage, I put the complete drill trace into its own file with the relevant portion below (emphasis added):
;; Domain: bw.
[B] bw. 3600 IN DNSKEY 257 3 8 ;{id = 18880 (ksk), size = 2048b}
bw. 3600 IN DNSKEY 256 3 8 ;{id = 38424 (zsk), size = 1024b}
[B] Error verifying denial of existence for bw. type A: No keys with the keytag and algorithm from the RRSIG found
;;[S] self sig OK; [B] bogus; [T] trusted
Logfile examples
- [1508296298] unbound[63915:0] info: validation failure <bw. NS IN>: signature expired from 204.61.216.70 for key bw. while building chain of trust
- [1508300077] unbound[63915:0] info: validation failure <bw. NS IN>: signature expired from 168.167.168.37 for key bw. while building chain of trust
- [1508306907] unbound[63915:0] info: validation failure <bw. NS IN>: signature expired from 168.167.98.218 for key bw. while building chain of trust
- [1508310008] unbound[63915:0] info: validation failure <bw. NS IN>: signature expired from 196.216.168.72 for key bw. while building chain of trust
- [1508315128] unbound[63915:0] info: validation failure <bw. NS IN>: signature expired from 168.167.98.226 for key bw. while building chain of trust
- [1508328318] unbound[63915:0] info: validation failure <bw. NS IN>: signature expired from 204.61.216.70 for key bw. while building chain of trust