comcast.net DNSSEC Outage: 2017-09-28
Date: September 28, 2017
Overview
This page gives some details on the comcast.net DNSSEC outage on September 28, 2017.
Timeline / DNSViz
- 2017-09-28 13:52:52 UTC — DNSKEY id=40909 expires
- 2017-09-28 13:57:05 UTC — expired RRSIGs
- 2017-09-28 13:57:37 UTC — expired RRSIGs
- 2017-09-28 14:00:16 UTC — expired RRSIGs
- 2017-09-28 14:01:08 UTC — expired RRSIGs
- 2017-09-28 14:11:21 UTC — expired RRSIGs
- 2017-09-28 14:58:21 UTC — last personally observed DNSSEC failure
- 2017-09-28 15:05:34 UTC — DNSSEC outage 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 September 28, 2017:

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: comcast.net.
;; Signature ok but no chain to a trusted key or ds record
[S] comcast.net. 3600 IN DNSKEY 257 3 5 ;{id = 40909 (ksk), size = 2048b}
comcast.net. 3600 IN DNSKEY 256 3 5 ;{id = 27912 (zsk), size = 1024b}
[S] comcast.net. 30 IN A 69.252.80.75
;;[S] self sig OK; [B] bogus; [T] trusted
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 a comcast.net. @8.8.8.8
; <<>> DiG 9.4.2-P2 <<>> +dnssec a comcast.net. @8.8.8.8
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 4766
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 512
;; QUESTION SECTION:
;comcast.net. IN A
;; Query time: 8 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Sep 28 14:00:54 2017
;; MSG SIZE rcvd: 40
You have to disable DNSSEC to make DNS queries work:
$ dig +cd a comcast.net. @8.8.8.8
; <<>> DiG 9.4.2-P2 <<>> +cd a comcast.net. @8.8.8.8
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64035
;; flags: qr rd ra cd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;comcast.net. IN A
;; ANSWER SECTION:
comcast.net. 29 IN A 69.252.80.75
;; Query time: 33 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Sep 28 14:00:54 2017
;; MSG SIZE rcvd: 45
Logfile examples
- [1506606963] unbound[84962:0] info: validation failure <www.comcast.net. A IN>: signature expired from 68.87.68.244 for key comcast.net. while building chain of trust
- [1506607300] unbound[84962:0] info: validation failure <dns.xfinity.com. A IN>: key for validation comcast.net. is marked as invalid because of a previous validation failure <comcast.net. A IN>: signature expired from 68.87.76.228 for key comcast.net. while building chain of trust
- [1506610701] unbound[84962:0] info: validation failure <comcast.net. A IN>: signature expired from 68.87.76.228 for key comcast.net. while building chain of trust