Eine groß angelegte Distributed Denial of Service-Attacke gegen unseren DNS-Provider everydns.net hat dessen vier Nameserver in den letzten Tagen mehrfach lahm gelegt. Damit war es zeitweise auch nicht möglich, die Adressen von MTB-News.de aufzulösen. Ein Bot-Net hatte soviele Anfragen an die Nameserver unseres Anbieters geschickt, dass diese unter der Last förmlich zusammengebrochen sind. Zeitweise wurde auf jedem einzelnen der vier Nameserver Traffic mit einer Bandbreite von über 400 Megabit pro Sekunde erzeugt, ein Zigfaches des Normalen.
Ein Nameserver löst Domainnamen (www.mtb-news.de) in IP-Adressen (70.86.5.18) auf. IP-Adressen lassen sich vom Menschen nur schwer merken, griffig klingende Domainnamen schon viel leichter. Nachteil der Domainnamen: Das Internet Protocol (IP) kann mit ihnen nichts anfangen. In jedem einzelnen Datenpaket, das durch das Internet rauscht, sind Absender- und Empfänger-IP-Adresse vermerkt (wie auf einem Briefumschlag). So weiß jede am Transport dieses Pakets beteiligte Partei (dein Internetprovider, z. B. die Telekom, Arcor usw., die großen Router an den Netzknotenpunkten) wo ein Paket hingeroutet werden muss und kann sie immer auf den optimalen Weg schicken.
Voraussetzung für die Kommunikation ist also, dass die IP-Adressen bekannt sind, sie müssen also irgendwie den Domainnamen zugeordnet werden. Diese Aufgabe erledigen Nameserver. Sie haben mehr oder weniger große Tabellen mit Zuordnungen von Domainnamen zu IP-Adressen im Speicher und können bei einer Anfrage die richtige IP-Adresse zu einem Domainnamen liefern.
Jetzt gibt es noch ein kleines Problem: Wie finde ich den Nameserver, der genau die Daten zu meiner gewünschten Domain gespeichert hat? Es kann ja nicht jeder Nameserver alle Domains dieser Welt kennen.
Man hat das Domain Name System hierarchisch aufgebaut – Domainnamen werden von hinten beginnend aufgelöst. Das heißt, man löst zuerst den Teil mit dem Länderkürzel auf (.de, .com, .net, .fr usw.). Dazu gibt es die sogenannten Root-Server. Das sind momentan 14 Maschinen, welche rund um den Globus verstreut stehen und die jedem Nameserver bekannt sein sollten. Diese wissen, welcher Nameserver etwas mehr über die Domains mit zum Beispiel der Endung .de sagen kann. Schauen wir uns das mal praktisch an.
Wir wollen also die Domain www.mtb-news.de in eine IP-Adresse auflösen und beginnen bei einem der 14 Root-Server, nämlich bei k.root-servers.net (193.0.14.129):
mj@srv11:~$ dig www.mtb-news.de @k.root-servers.net
; <<>> DiG 9.2.4 <<>> www.mtb-news.de @k.root-servers.net
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60284
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 8
;; QUESTION SECTION:
;www.mtb-news.de. IN A
;; AUTHORITY SECTION:
de. 172800 IN NS a.nic.de.
de. 172800 IN NS f.nic.de.
de. 172800 IN NS c.de.net.
de. 172800 IN NS l.de.net.
de. 172800 IN NS s.de.net.
de. 172800 IN NS z.nic.de.
;; ADDITIONAL SECTION:
a.nic.de. 172800 IN A 193.0.7.3
f.nic.de. 172800 IN A 81.91.164.5
c.de.net. 172800 IN A 208.48.81.43
l.de.net. 172800 IN A 89.213.253.189
s.de.net. 172800 IN A 193.159.170.149
z.nic.de. 172800 IN A 194.246.96.1
f.nic.de. 172800 IN AAAA 2001:608:6::5
z.nic.de. 172800 IN AAAA 2001:628:453:4905::53
;; Query time: 4 msec
;; SERVER: 193.0.14.129#53(193.0.14.129)
;; WHEN: Tue Dec 5 11:58:55 2006
;; MSG SIZE rcvd: 291
Wir erhalten eine ganze Menge Informationen als Antwort. Ohne jetzt auf die Details einzugehen, können wir die Antwort folgendermaßen deuten: “Ich kenne die IP-Adresse für www.mtb-news.de nicht, weiß aber, wer dir weiter helfen kann”. Dann bekommen wir eine Liste mit für .de-Domains verantwortliche Nameserver (also so etwas wie Root-Server für .de-Domains).
Wir müssen jetzt also einen Server aus der Liste fragen:
mj@srv11:~$ dig www.mtb-news.de @a.nic.de
; <<>> DiG 9.2.4 <<>> www.mtb-news.de @a.nic.de
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38980
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 0
;; QUESTION SECTION:
;www.mtb-news.de. IN A
;; AUTHORITY SECTION:
mtb-news.de. 86400 IN NS ns1.everydns.net.
mtb-news.de. 86400 IN NS ns2.everydns.net.
mtb-news.de. 86400 IN NS ns3.everydns.net.
mtb-news.de. 86400 IN NS ns4.everydns.net.
;; Query time: 14 msec
;; SERVER: 193.0.7.3#53(193.0.7.3)
;; WHEN: Tue Dec 5 12:02:29 2006
;; MSG SIZE rcvd: 117
Auch hier bekommen wir noch keine IP-Adresse für unsere Domain, dafür aber wieder eine Liste mit Nameservern, die wir fragen sollen. Also tun wir das:
mj@srv11:~$ dig www.mtb-news.de @ns1.everydns.net
; <<>> DiG 9.2.4 <<>> www.mtb-news.de @ns1.everydns.net
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26008
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4
;; QUESTION SECTION:
;www.mtb-news.de. IN A
;; ANSWER SECTION:
www.mtb-news.de. 3600 IN A 70.86.5.18
;; AUTHORITY SECTION:
mtb-news.de. 86400 IN NS ns1.everydns.net.
mtb-news.de. 86400 IN NS ns2.everydns.net.
mtb-news.de. 86400 IN NS ns3.everydns.net.
mtb-news.de. 86400 IN NS ns4.everydns.net.
;; ADDITIONAL SECTION:
ns1.everydns.net. 120 IN A 209.131.97.97
ns2.everydns.net. 120 IN A 204.152.184.150
ns3.everydns.net. 120 IN A 216.218.240.206
ns4.everydns.net. 120 IN A 64.158.219.3
;; Query time: 199 msec
;; SERVER: 209.131.97.97#53(209.131.97.97)
;; WHEN: Tue Dec 5 12:04:45 2006
;; MSG SIZE rcvd: 197
Aha, da haben wir sie also endlich, die IP-Adresse. Wie wir sehen können, ist der Prozess der Namensauflösung gar nicht so trivial wie man meinen möchte. Zumal ich hier noch eine Kleinigkeit ausgelassen habe: Wir erhalten ja normalerweise (nicht immer, siehe Schritt 1) nur Domainnamen von weiteren Nameservern und nicht deren IP-Adressen. Also müssen die eigentlich auch noch mal aufgelöst werden. Da kommt schon eine Menge an Abfragen für eine einzige Domain zusammen.
Wenn jetzt die Nameserver, welche die IP-Adresse für www.mtb-news.de kennen, durch einen Angriff nicht erreichbar sind, dann bekommt man eben auch die Adresse nicht. Genau das war in den letzten Tagen hin und wieder der Fall. Alle Internet Provider (Telekom, Arcor usw.) haben noch mal eigene Nameserver, die die Ergebnisse solcher Abfragen zwischenspeichern, um die Last auf das Netz und die Nameserver etwas zu mildern, so dass man nicht gleich merkt, wenn etwas faul ist. So war auch immer nur ein Teil unserer Benutzer betroffen.
Für die Zukunft werden wir noch weitere Nameserver von einem anderen Anbieter für MTB-News.de eintragen, so dass die Namensauflösung selbst dann noch klappt, wenn ein DNS-Anbieter durch einen Angriff komplett lahm gelegt wird.
Letzte Kommentare