Schlagwort: IPv6

Anycast DNS bei http.net

Warum Anycast?

Beim Stöbern in alten RFC fällt heutzutage auf, dass das Internet in weiten Teilen offenbar unter der Annahme konstruiert wurde, dass die Netzteilnehmer alle gutwillig und an der technischen Unversehrtheit jedes anderen Teilnehmers interessiert sind. Kaum jemand scheint ernsthaft darüber nachgedacht zu haben, was sich für Probleme daraus ergeben können, wenn Nachrichten auf verschiedenen Ebenen ihrer Struktur nicht nur mitgelesen, verfälscht und umgeleitet, sondern sogar zur Waffe umfunktioniert werden. Dies betrifft Nachrichten in jeder Form, seien es E-Mails, HTTP-Requests oder speziell DNS-Abfragen, deren Integrität für die richtige Zustellung der anderen Nachrichten erforderlich ist, und die (UDP) klein, schnell und unsicher wie Postkarten versendet und beantwortet werden.

Mittlerweile ist das Netz bekanntlich in der Wirklichkeit angekommen und die gezielte Störung anderer Netzteilnehmer ist längst als kriminelles Geschäftsmodell etabliert. Die Botnetze werden immer größer, die Angriffe heftiger und ausgefeilter. Das BSI erwähnte bereits Ende 2012 Angriffe in einer Größenordnung von 150 Gbit/s.

Es ist daher höchste Zeit, neue Wege zu beschreiten um den gewachsenen Herausforderungen wirksam begegnen zu können. Das in der Forschungs- und Entwicklungsabteilung der österreichischen Domain-Registry nic.at realisierte Anycast-Netz RCodeZero hat beste Referenzen, so wird es z.B. bereits erfolgreich bei der Konnektierung der TLDs .at und .hu eingesetzt und ist darauf eingerichtet, die extrem hohen Verfügbarkeitsanforderungen der ICANN bei der Konnektierung neuer gTLDs zu erfüllen. Der Dienst ist mit derzeit 9 weltweit verteilten Standorten, an denen jeweils mit Lastverteilung auf 2 unabhängigen Servern eine halbe Million Anfragen pro Sekunde sauber verabeitet werden können, hervorragend aufgestellt, und ein weiterer Ausbau der Standorte ist geplant.

Die RcodeZero Anycast Wolke

Wie können Sie Anycast nutzen?

Ganz einfach, Sie tragen in Ihre Zone ein oder zwei sekundäre Anycast-Namerver ein und benutzen einen primären Nameserver der http.net (egal ob Standard-, Alias- oder virtueller Nameserver) . Alles Weitere geht automatisch und ist im Normalfall innerhalb von ein bis zwei Minuten nach Auftragseingang erledigt.

Eine mögliche Standardkonfiguration für Ihre Zonen wäre z.B. folgende:

primary:   ns.routing.net
namesrv:   ns.routing.net 213.160.64.64
namesrv:   ns8.routing.net 213.160.65.251
nserver:   ns9.routing.net 83.133.190.51
namesrv:   sec1.routing.net 192.174.68.100
zonettl:   86400

Damit haben Sie den Hauptteil des Traffics auf drei Nameserver der http.net an zwei Standorten in Deutschland verteilt und zusätzlich Ihre Zone im weltweiten Anycast-Netz eingetragen.

Sie können unsere Standardhostnamen für den Anycast-Dienst verwenden oder sich eigene Aliase anlegen. Der Hostname ist beliebig, er muss nur auf die dedizierten Anycast-Adressen (IPv4 und IPv6) geroutet sein. Weitere Einzelheiten zum Eintragen Ihrer Zonen finden Sie im Newsletter und im Partnerweb, und natürlich steht Ihnen unser Support wie immer gern mit Rat und Tat zur Seite.

Fair Traffic!

Während Sie diesen Satz lesen, wird die Zone routing.net über jeden der fünf zuständigen Nameserver ungefähr 30 mal abgefragt. Genauer gesagt, liegen wir derzeit bei rund 8 Abfragen pro Sekunde auf jedem Server für diese Zone. Diese Zone hat ein vergleichsweise extrem hohes Abfragevolumen, weil einige Namen innerhalb dieser Zone bei einer fünfstelligen Zahl von Domains als Nameserver eingetragen sind, und die Domain daher ständig in Ausflösungsprozesse einbezogen ist: ein Resolver, der die Adresse von name.de ermitteln möchte, indem er z.B. ns1.routing.net fragt, benötigt dafür zuerst die Adresse von ns1.routing.net.

Zum Glück haben die Resolver einen Cache, um die Häufigkeit der Abfragen zu reduzieren. Jede Zone hat eine Lebensdauer (TTL / Time-To-Live) im Resolver-Cache, die erhebliche Auswirrkungen auf das Abfragevolumen haben kann. Für routing.net haben wir jetzt eine hohe TTL von 432000 (5 Tage) eingestellt. Ein noch höherer Wert macht dann nicht mehr allzu viel Unterschied, während ein niedriger Wert sehr schnell das Abfragevolumen vervielfachen kann. Eine TTL von 300 (5 Minuten) oder weniger kann schnell ein Volumen von 50 Abfragen pro Sekunde erzeugen.

Da uns zusätzliches Abfragevolumen im Anycast-Netz in Rechnung gestellt werden kann, müssen wir die Entwicklung beobachten. Wir wollen die Kosten, die der Anycast-Dienst verursacht, so fair und überschaubar wie möglich weitergeben, d.h. wir geben die gestaffelte Preistabelle ohne Aufschlag weiter, verzichten dabei auf die Weitergabe der Mindestabnahme-Klausel und wollen zunächst davon ausgehen, dass sich Traffic-Nachberechnungen durch einen verantwortungsbewussten Umgang mit der TTL vermeiden lassen. Ob wir diese Bedingung nachbessern und eine technische Mindest-TTL für Anycast-Zonen implementieren oder die Weitergabe von Traffic-Berechnungen ankündigen müssen, hängt davon ab, wie es sich entwickelt.

Gerade Nameserver-Domains werden besonders häufig abgefragt, aber gerade bei Nameservern ändert man auch besonders selten die IP-Adresse. Deshalb empfehlen wir für solche Domains eine TTL von mehreren Tagen und bei allen anderen Domains eine Standard-TTL von mindestens 86400 (24 Stunden).

zonettl:   86400

Wenn Sie eine Änderung an einem bestehenden Resource Record planen, wie z.B. die Änderung einer IP-Adresse im Verlauf eines Server-Umzugs oder den Schwenk auf einen anderen Mailserver, können Sie 24 Stunden vorher die TTL vorübergehend auf 300 herabsetzen. (Noch kleinere Werte bringen keine nennenswerte Beschleunigung mehr bei der Propagation.) Spätestens nach Ablauf der vorherigen TTL hat sich dann unter allen Resolvern herumgesprochen, dass hier Änderungen zu erwarten sind und die Daten immer wieder erneut abzufragen sind.

Das Hinzufügen einer neuen Subdomain zu einer Zone erfordert i.A. keine Herabsetzung der TTL, denn eine Name, der schon lange nicht oder noch nie existiert hat, wird nur in unwahrscheinlichen Fällen im Negativ-Cache sein, so dass die Resolver den Namen ohnehin direkt abfragen und er schnell propagiert ist.

Übrigens haben wir auch unseren DNS-Synchronisierungsdienst vollständig überarbeitet und optimiert, so dass Änderungen schneller auf die Nameserver übertragen werden und alle bestehenden Resource Records zu jeder Zeit während eines Updates abgefragt werden können, um ungewollte Negativ-Caching-Effekte zu vermeiden.

We love to resolve you! 8-)

IPv6 bei http.net: jetzt auch rückwärts

Der DNS-Robot hat eine neue Lektion seiner IPv6-Schulung gelernt. Vorwärtsauflösung mit AAAA-Records kann er ja schon länger, aber nun kann er auch rückwärts.

Für alle, die sich nach Jahrzehnten der Einführungsphase nun kaum noch an IPv6 erinnern können, und natürlich auch für alle, die sich überhaupt noch nie die Frage gestellt haben, wie man bei IPv6 eigentlich rückwärts auflöst, hier mal ein

Beispiel.

Der Hostname ipv6.http.net wird vorwärts auf eine IPv6-Adresse aufgelöst. (Der Link funktioniert nur, wenn Ihr Netz bereits IPv6-fähig ist.) Die Zone http.net enthält also einen AAAA-Record namens ipv6, der auf die Adresse verweist.

ipv6.http.net. IN AAAA 180 2a00:17d8:1:1::4

Wer den zuständigen Nameserver nach ipv6.http.net. fragt, bekommt die IPv6-Adresse 2a00:17d8:1:1::4 zurück. Wenn man umgekehrt zuerst die Adresse hat und diese rückwärts auf den Hostname auflösen möchte, macht man – ganz analog zu IPv4 – aus der IP-Adresse zunächst eine arpa-Domain.

Erzeugen der ip6.arpa-Domain

Schreibt man die Adresse ohne Verwendung von Abkürzungsregeln aus, also 128 Bit in Form von 8 Blöcken zu je 16 Bit, getrennt durch Doppelpunkte, so erhält man:

2a00:17d8:0001:0001:0000:0000:0000:0004

Um daraus etwas wie einen Domainnamen zu machen, der sich möglichst weit auf Subdomains herunterbrechen lässt, schreibt man die Hexadezimalziffern einzeln durch Punkte getrennt (je 2 bilden also ein Byte):

2.a.0.0.1.7.d.8.0.0.0.1.0.0.0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.4

Nun kehrt man – auch analog zu IPv4 – das Ganze einfach um und hängt es als Subdomain in die dedizierte Domain ip6.arpa ein. Die ip6.arpa-Domain zu der IP-Adresse lautet also:

4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.1.0.0.0.8.d.7.1.0.0.a.2.ip6.arpa    

Der zuständige Nameserver sollte auf die Frage nach dem PTR-Record zu dieser Domain mit dem Hostnamen ipv6.http.net antworten:

4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.1.0.0.0.8.d.7.1.0.0.a.2.ip6.arpa 180 IN PTR ipv6.http.net.

Somit ist auch klar, dass man für IPv6 keine neue Definition des PTR-Records braucht, denn am Mechanismus der Rückwärtsauflösung hat sich bis auf die Form der arpa-Domain nichts geändert.

Damit der Nameserver die gewünschte Antwort geben kann, müssen wir jedoch zuerst – mit Hilfe des DNS-Robot – eine geeignete Zone anlegen und den Pointer eintragen.

Aufteilung von Reverse-Zonen

Die möglichen Subnetze, die man mit einer Reverse-Zone verwalten kann, sind durch die Struktur der arpa-Domain als Hostname bestimmt. Um z.B. die IPv4-Adresse 213.160.68.43 rückwärts auflösen zu können, muss die in-addr.arpa-Domain

43.68 160.213.in-addr.arpa

eine Subdomain des Zonennamens sein. Will man mehr als einen Hostnamen in der Zone verwalten, so bleibt nur das Class-C (oder /24) Netz, also 43 als Record in der Zone 68 160.213.in-addr.arpa (es sei denn, man verfügt über ein Class-B Netz und möchte 65534 IP-Adressen in einer Zone verwalten).

Dem /24 Netz in IPv4 entspricht von der Größe her ein /120 Netz in IPv6. Man kann auch hier das höchste Byte der Adresse (die untersten beiden Hexadezimalziffern der ip6.arpa-Domain) als Record und den Rest der ip6.arpa-Domain als Zonennamen benutzen. Der Zonenname lautet dann:

0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.1.0.0.0.8.d.7.1.0.0.a.2.ip6.arpa

Abkürzungsregeln wie in der IPV6-Notation sind hier nicht möglich, denn der Zonenname unterliegt den Regeln für Hostnamen und gibt zugleich das Subnetz an, für das die Zone zuständig ist. In diese Zonen kann man insgesamt 256 Pointer der Form 0.0 bis f.f eintragen.

Anders als bei IPv4 sind aber auch andere Aufteilungen denkbar, da die ipv6.arpa-Domain sich an jeder 4-Bit-Grenze aufteilen lässt und nicht nur an Byte-Grenzen. Z.B. kann man also auch eine Mini-Zone für ein /124-Netz mit 16 Adressen anlegen. Aber es heißt ja Think Big bei IPv6, nicht mehr in Adressen denken, sondern in Subnetzen.

Angabe der Records im Robot-Template

Mit folgendem Robot-Template kann eine Reverse-Zone angelegt werden, die den Pointer 4.0 enthält:

domain:      0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.1.0.0.0.8.d.7.1.0.0.a.2.ip6.arpa    
primary:     ns.routing.net
mailbox:     support@http.net
zonettl:     180
namesrv:     ns.routing.net 213.160.64.64
namesrv:     ns8.routing.net 213.160.65.251
pointer:     4.0 ipv6.http.net.

Der Robot hat das nun schon mal gelernt und die anderen Schnittstellen, also die DNS-API und das Partnerwebformular, werden in Kürze nachhziehen.

IPv6-Tag – http.net ist dabei

Der 8. Juni 2011 wurde zum internationalen IPv6-Tag erklärt und alles, was im Internet Rang und Namen hat, wird für einen Tag auch über IPv6 erreichbar sein.

Dies dient unter anderem dazu, den neuen Standard einmal im wahren Leben zu testen und eventuell auftretende Fehler zu korrigieren.

Natürlich möchten wir nicht hinter Google, Facebook und Heise zurückstehen, deshalb werden ab heute die Adressen http.net, www.http.net und natürlich ipv6.http.net auch über IPv6 erreichbar sein.

We love to resolve you :-D

IPv6 bei http.net

Nachdem sich nun endgültig herumgesprochen hat, dass der Vorrat an IPv4-Adressen zur Neige gegangen ist, hat sich auch der DNS-Robot der http.net beeilt, IPv6 zu lernen. In einem ersten Schritt werden Resource Records vom Typ AAAA (sprich: Quad-A) unterstützt. Ganz analog zum alten Robot-Schlüssel

arecord

heißt der neue Schlüssel:

a4record

Dahinter wird eine IPv6-Adresse erwartet, die in einem beliebigen der üblichen Formate (entsprechend rfc3513) angegeben werden kann.

Wer also z.B. den Namen example.com auf die IPv6-Adresse

fdda:5cc1:23:4::1f

auflösen lassen möchte, kann folgendes Template an den DNS-Robot senden:


domain: example.com
primary: ns.routing.net
mailbox: dnsmaster@example.com
namesrv: ns.routing.net 213.160.64.64
namesrv: ns8.routing.net 213.160.65.64
namesrv: ns9.routing.net 83.133.190.5
arecord: @ 192.0.32.10
a4record: @ fdda:5cc1:23:4::1f
crecord: www @

A-Records und AAAA-Records können nebeneinander existieren. CNAME-Records können wie gewohnt als Aliase für Hostnamen verwendet werden, die an eine IPv4- oder IPv6-Adresse gebunden sind. Die Ausgabe für obige Beispiel-Zone würde etwa so aussehen:


;; QUESTION SECTION:
;www.example.com. IN ANY

;; ANSWER SECTION:
www.example.com. 86400 IN CNAME example.com.
example.com. 86400 IN SOA ns.routing.net. dnsmaster.example.com. 2011021703 14400 3600 604800 86400
example.com. 86400 IN A 192.0.32.10
example.com. 86400 IN AAAA fdda:5cc1:23:4::1f
example.com. 86400 IN NS ns.routing.net.
example.com. 86400 IN NS ns8.routing.net.
example.com. 86400 IN NS ns9.routing.net.

Wer also seinem IPv6-fähigen Kühlschrank nun auch einen Hostnamen verpassen möchte, kann an unseren DNS-Robot schreiben. We love to resolve you :)