DNSSEC en Google open DNS

Door Blokker_1999 op woensdag 30 december 2015 12:21 - Reacties (2)
Categorie: /var, Views: 2.903

Gisteren avond kwamen er via IRC ineens meldingen binnen dat enkele domeinen niet meer bereikbaar waren voor bezoekers. Zowel bevestigingen als ontkenningen kwamen van verschillende gebruikers binnen.

Al snel werd gevonden waar het verschil vandaan kwam: mensen die gebruik maken van Google DNS konden de site niet meer bereiken. Een snelle query op de commandline toont inderdaad aan dat Google niet meer thuis geeft op de vraag:

hans@utopia:~$  dig mtasa.com @8.8.8.8

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> mtasa.com @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 48852
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;mtasa.com.             IN      A

;; Query time: 73 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Dec 30 06:08:00 2015
;; MSG SIZE  rcvd: 35


De reden waarom was evenwel niet onmiddellijk duidelijk. Aan de zone files voor de getroffen domeinen was niets veranderd, andere open DNS servers hadden geen enkel probleem met het geven van de records en ook een snelle controle via een online tool leverde een correct werkende DNS server op (al heb ik wel geleerd dat er nog wat waarschuwingen moeten weggewerkt worden).

Na wat verder zoeken kwam ik op de tool van dnsstuff.com uit en die wist me wel correct te melden waar het probleem zat: Een failure op de datum van het DNSSEC SOA record.
De documentatie die ik gevolgd heb voor het opzetten van DNSSEC had wel de aanbeveling om regelmatig de zone opnieuw te ondertekenen om zone walking te voorkomen (een methode om uiteindelijk alle records in je zone te vinden) maar zij faalden om te melden dat een ondertekende zone sowieso slechts 30 dagen geldig is. Na deze termijn word de digitale ondertekening ongeldig verklaard.

Daar ik DNSSEC op 29/11 heb opgezet is het dus ook logisch dat op 29/12 de geldigheid overschreden word. En Google is zo vriendelijk om vanaf dat moment de data niet meer door te sturen naar de eindgebruiker (wat eigenlijk ook correct is).

Na even snel de zone opnieuw ondertekend te hebben en de zone te herladen krijgen we even later wel van Google een correct antwoord:

 hans@utopia:~$ dig mtasa.com @8.8.8.8

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> mtasa.com @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3995
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;mtasa.com.                     IN      A

;; ANSWER SECTION:
mtasa.com.              13794   IN      A       91.121.44.90

;; Query time: 23 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Dec 30 06:16:55 2015
;; MSG SIZE  rcvd: 43


Vragen we de DNSSEC data op dan krijgen we ook netjes het moment van ondertekening te zien (onder RRSIG):

 hans@utopia:~$ dig A mtasa.com. @8.8.8.8 +noadditional +dnssec +multiline

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> A mtasa.com. @8.8.8.8 +noadditional +dnssec +multiline
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18718
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 512
;; QUESTION SECTION:
;mtasa.com.             IN A

;; ANSWER SECTION:
mtasa.com.              14399 IN A 91.121.44.90
mtasa.com.              14399 IN RRSIG A 7 2 14400 20160129054739 (
                                20151230054739 52103 mtasa.com.
                                hfUnuuCvFK6F6Os+WzQqpQP23EP1xkduPrBTZ4smZmbY
                                Qmc/VR4QqrC8d10oY0loSljig17kWZBU7mlDwYLPMI0F
                                ED7j1RnUgs1KctQc3bVy6p/iXMRkAq7FeD8gWPkiTj7W
                                CKukzEosTLe0WdGC5XkeKD2HF8i4tQlO++X5I9jDmwvK
                                y5Opd9Bbc04SQUfIulQYgNX3bjzNnI8Y9nYWZ2BL4k7D
                                mLSJU98Ps1wo4JFSizzkSJCMdVUPuK2xuDSrD66BzdgX
                                arHkkb5I7lRInq0D6T6Dvn5dAEXRmKsR58SRrOgZ8WxD
                                QhNukrJP6Xkp451DfafJVmhe264url1bWw== )

;; Query time: 492 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Dec 30 06:17:56 2015
;; MSG SIZE  rcvd: 351


Lessons learned:

- DNSSEC ondertekende zones moet je regelmatig opnieuw tekenen (time for a cron job)
- Google DNS is 1 van de weinige open DNS servers die een controle uitvoert op de geldigheid van ondertekende zones. Zeker een pluspunt voor Google.