Alle Räder stehen still, wenn Dein starker Arm das will
Seit heute morgen häuften sich die Beschwerden über DNS Ausfälle im xDSL Netz. Die Meldungen waren zeitlich unspezifisch, gingen quer über die Produktpalette und betrafen auch Backend-Systeme. Was ist da los?
Sniffing zeigte, dass die Anfragen tatsächlich bei den DNS-Servern ankommen, diese aber schlicht nicht immer antworten. Restart der Prozesse brachte Linderung, allerdings nur kurz. Nach etwa einer halben Minute hörte jeder der Server auf, Antworten zu verschicken.
Im Sniffing zeigte jeder Server jedoch hektische DNS-Aktivität. Nur warum? Was macht der da?
Die Statistik jedes Servers zeigt, dass die Requestqueue, die Liste der offenen Anfragen überläuft. Und in der Liste der offenen Anfragen enthielt überraschenderweise aberhunderte Zeilen der folgenden Art
499 CNAME IN psai9edi.s3.amazonaws.com. 10.412281 iterator wait for 2600:9000:5300:1b00::1 500 CNAME IN psg62lat.s3.amazonaws.com. 41.447997 iterator wait for 2600:9000:5300:1b00::1 501 CNAME IN psgp7262.s3.amazonaws.com. 7.193284 iterator wait for 2600:9000:5300:1b00::1 502 CNAME IN pshziple.s3.amazonaws.com. 44.356077 iterator wait for 2600:9000:5300:1b00::1 503 CNAME IN psigagat.s3.amazonaws.com. 45.621077 iterator wait for 2600:9000:5300:1b00::1 504 CNAME IN pspcvsil.s3.amazonaws.com. 22.752443 iterator wait for 2600:9000:5300:1b00::1 505 CNAME IN pswgyera.s3.amazonaws.com. 52.993825 iterator wait for 2600:9000:5300:1b00::1 506 CNAME IN qa9c96lt.s3.amazonaws.com. 56.530104 iterator wait for 2600:9000:5300:1b00::1 507 CNAME IN qah-zkwp.s3.amazonaws.com. 1.215374 iterator wait for 2600:9000:5300:1b00::1 508 CNAME IN qavtvxcc.s3.amazonaws.com. 37.358889 iterator wait for 2600:9000:5300:1b00::1 509 CNAME IN v118gk69.s3.amazonaws.com. 38.617430 iterator wait for 2600:9000:5300:1b00::1 510 CNAME IN v12ggbel.s3.amazonaws.com. 8.180806 iterator wait for 2600:9000:5300:1b00::1 511 CNAME IN v19pg7un.s3.amazonaws.com. 45.592578 iterator wait for 2600:9000:5300:1b00::1 512 CNAME IN v1h66nam.s3.amazonaws.com. 20.184565 iterator wait for 2600:9000:5300:1b00::1 513 CNAME IN v1i5mjps.s3.amazonaws.com. 2.479473 iterator wait for 2600:9000:5300:1b00::1 514 CNAME IN v1t5buni.s3.amazonaws.com. 13.825713 iterator wait for 2600:9000:5300:1b00::1 515 CNAME IN x8cca8xn.s3.amazonaws.com. 20.251822 iterator wait for 2600:9000:5300:1b00::1 516 CNAME IN x8ln-0rj.s3.amazonaws.com. 50.227529 iterator wait for 2600:9000:5300:1b00::1 517 CNAME IN x8q9jrjv.s3.amazonaws.com. 50.693382 iterator wait for 2600:9000:5300:1b00::1 518 CNAME IN x8x9zq3n.s3.amazonaws.com. 44.069048 iterator wait for 2600:9000:5300:1b00::1 519 CNAME IN xk8t2xuy.s3.amazonaws.com. 52.709106 iterator wait for 2600:9000:5300:1b00::1 520 CNAME IN xkkh6w1b.s3.amazonaws.com. 48.943785 iterator wait for 2600:9000:5300:1b00::1 521 CNAME IN xkl4qcvv.s3.amazonaws.com. 43.927290 iterator wait for 2600:9000:5300:1b00::1 522 CNAME IN xksddwxf.s3.amazonaws.com. 11.812726 iterator wait for 2600:9000:5300:1b00::1 523 CNAME IN xkuf9dcb.s3.amazonaws.com. 49.485060 iterator wait for 2600:9000:5300:1b00::1
Was ist denn hier los?
Die externe Validierung eines dieser Einträge ergibt:
Dazu gehören die folgenden Fehlermeldungen:
-
amazonaws.com to s3-1-w.amazonaws.com
The server(s) for the parent zone (amazonaws.com) responded with a referral instead of answering authoritatively for the DS RR type. (205.251.192.27, 205.251.195.199, 2600:9000:5300:1b00::1, 2600:9000:5303:c700::1, UDP_-_EDNS0_4096_D_K) -
x8x9zq3n.s3.amazonaws.com/A
No response was received from the server over UDP (tried 12 times). (156.154.64.10, 156.154.65.10, 2001:502:f3ff::10, 2610:a1:1014::10, UDP_-_NOEDNS_) -
x8x9zq3n.s3.amazonaws.com/AAAA
No response was received from the server over UDP (tried 12 times). (156.154.64.10, 156.154.65.10, 2001:502:f3ff::10, 2610:a1:1014::10, UDP_-_NOEDNS_)
Anders formuliert ist die Auflösung der Domain "amazonaws.com", die Arbeitsdomain von Amazon, kaputt.
Ein validierender Resolver dreht über mehrere Server mehrere Schleifen, bis er nach langer Zeit erfolglos und mit leeren Händen aufgibt. Da er kein Ergebnis zum cachen hat, geht er bei jeder Anfrage erneut in die Schleife und ist beschäftigt.
Jeder unserer Resolver hat 700 Worker-Slots pro CPU-Thread. Bei der Masse der Kunden und der Masse der Anfragen steht nach 20 bis 30 Sekunden kein freier Slot mehr für eine neue Anfrage zur Verfügung. Dann ist schlicht Schluss.
Die Lösung bestand darin, die Zone "amazonaws.com" auf einen nicht-validierenden Resolver umzulenken und diese Ergebnisse zu benutzen. Spontan enspannte sich die Situation wieder.
Aber was war wirklich passiert?
- Gestern begann ein DDoS-Angriff auf die Amazon AWS Infrastruktur.
- Zur Abwehr des Angriffs hat Amazon tief in die DNS Trickkiste gegriffen.
- Dabei wurde DNSSEC zerstört.
Zitat eines näher involvierten Technikers: Äh...was die da gerade eintragen ist aber ungültig und wird nicht lustig sein, wenn entsprechende TTLs auslaufen.