Aufbau und Betrieb eines fehlertoleranten Anycast-Netzwerks

Hallo Habr! Das Folgende ist eine Transkription des Berichts von Evgeny error2407 Bogomazov (Netzwerk-F & E-Ingenieur) und Dmitry h8r Shemonaev (Leiter des NOC) aus der Vergangenheit UPTIMEDAY. Video am Ende des Beitrags.


Heute möchten wir darüber sprechen, welche Probleme beim Aufbau eines Anycast-Netzwerks auftreten. Warum sind wir darauf gekommen und was machen wir dort?


Bei Qrator Labs bauen wir unser eigenes Anycast-Netzwerk auf, um spezielle Probleme zu lösen, die sich von denen „normaler“ Telekommunikationsbetreiber unterscheiden. Dementsprechend haben wir in diesen Regionen Präsenzpunkte - wir haben nur vergessen, Russland hier hinzuzufügen. Und das bedeutet, dass wir viele Geschichten darüber haben, wie man es macht und was nicht. Heute werden wir einige davon mit Ihnen teilen.


Was werden wir sagen, wenn man bedenkt, dass das Thema anfangs umfangreich ist? Zuerst wollten wir nur Fragen und Antworten (Fragen und Antworten) machen, aber wir wurden trotzdem gebeten, den Bericht zu lesen. Wenn wir also nichts erzählen, aber definitiv keine Zeit haben, fangen Sie uns anschließend am Rande.

Im Rahmen des geplanten Versuchs werden wir versuchen, über den Unterschied zwischen dem Balancing mit DNS und BGP zu sprechen. Wie Sie neue Websites auswählen und worauf Sie achten müssen, um spätere Schmerzen zu vermeiden. Wie man all dies unterstützt und wie viel diese schwierige Aufgabe Dmitry erzählen wird.

Lassen Sie uns zunächst feststellen, wie vertraut Sie mit dem Thema sind.
- Wie viele wissen, was Anycast ist und warum es benötigt wird? (Etwa ein Drittel der Hände erhebt sich in der Halle)
- Und wer ist mit DNS vertraut und hat den Server konfiguriert? (ungefähr die gleiche Anzahl von Händen)
- Und BGP (zwei Hände im Rahmen)

Immer noch viel.

- Nun, die letzte Frage - wer kennt NOC? Wer hatte Probleme mit Lieferanten und wer versuchte sie zu lösen? (Die Hand des Systemadministrators Habr ist im Rahmen sichtbar)

Großartig. In diesem Fall hoffe ich, dass das, was wir Ihnen sagen werden, auftaucht.

Bevor wir zu Anycast übergehen, wollen wir sehen, warum es benötigt wird. Sie haben eine Anwendung, mit der Sie Kundenanfragen bearbeiten möchten. Sie werden irgendwo gehostet - während Sie nicht besonders darüber nachdenken. Kaufen Sie den DNS-Namen, lösen Sie ihn auf und so weiter. Dann unterschreiben Sie das Zertifikat, weil HTTPS. Ihre Anwendung wächst.

Zuerst müssen Sie die Last handhaben. Wenn Ihre Anwendung gleichzeitig "schießt" - das heißt, sie wird sehr beliebt, kommen viel mehr Benutzer zu Ihnen. Sie müssen Eisen kaufen und die Last darauf ausgleichen.

Darüber hinaus können besonders anspruchsvolle Kunden mit den Worten auftauchen: "Leute, für diese Art von Geld sollten Sie immer und überall verfügbar sein!" Dies führt dazu, dass Sie die Redundanz von Rechenressourcen nicht nur für die Verarbeitung von Spitzenlasten, sondern einfach als Reserve festlegen.

Darüber hinaus wurde heute bereits in anderen Fällen erwähnt, dass Sie die Drüsen nicht in einem Rechenzentrum platzieren können. Es kann zu einer Naturkatastrophe kommen, was bedeutet, dass die Anwendung Ausfallzeiten hat, die finanzielle und andere Verluste verursachen. Wenn Ihre Anwendung ausreichend gewachsen ist, sollten Sie sich daher bereits in mehreren Rechenzentren befinden, da dies sonst zu Problemen führen kann.

Das Problem hat eine Kehrseite: Wenn Ihre Anwendung zeitkritisch ist, wie bei Finanzanalysen oder im Handel, ist es wichtig, dass Sie Anfragen so schnell wie möglich an Ihre Benutzer senden. Die berüchtigte Latenz, mit der zwei Punkte verbunden sind. Die erste - wenn Sie eine Anfrage so schnell wie möglich stellen möchten, sollte die Anzahl der Anfragen und Antworten auf diese so gering wie möglich sein. Tatsache ist wiederum, dass, wenn der Benutzer zum ersten Mal eine Verbindung zu Ihnen herstellt, alles nicht funktioniert und er gezwungen ist, alle Kreise der Hölle zu durchlaufen. Der zweite Punkt ist die Lichtgeschwindigkeit. Ein Paket von Westeuropa nach Russland kann nicht schneller als eine bestimmte Anzahl von Millisekunden sein, es gibt nichts zu tun.

Es ist notwendig, sich in mehreren Rechenzentren zu befinden, da wir Redundanz wünschen und potenziellen Kunden näher stehen müssen. Wenn Ihre Hauptkundenregion beispielsweise Amerika ist, platzieren Sie Ihre Geräte dort, damit der Verkehr nicht durch andere Länder und Teile der Welt fließt.

Es stellt sich heraus, dass Sie irgendwann in verschiedenen Teilen der Welt an verschiedenen Orten präsent sein müssen. Und das ist immer noch kein Anycast.

Sie benötigen also einige Websites. Irgendwie müssen Sie sie auswählen, beide anfangs neu, und ihre Skalierbarkeit verstehen - bei Überlastung müssen Sie zusätzliche Hardware kaufen.

Wenn Sie bereits mehrere Websites haben, müssen Sie lernen, wie Sie Benutzer zwischen diesen verteilen. Es gibt zwei Stühle: BGP und DNS.

Ab zwei Punkten beginnen wir mit dem letzten. Und wieder zwei Hauptansätze. Im ersten Fall haben verschiedene Sites unterschiedliche IP-Adressen. Wenn ein Benutzer eine Anfrage stellt, erhält er die IP einer bestimmten Site und ordnet sie zu.

Was entscheiden wir hier? Wir möchten, dass ein Benutzer aus einer bestimmten Region zu einer Site in derselben Region gelangt. Die einfachste und dümmste Lösung ist die Verwendung von GeoDNS. Sie haben ein Verständnis für die Regionen, in denen sich Präfixe befinden. Sie nehmen diese Daten, übertragen sie auf den DNS-Server und ordnen die Benutzer entsprechend der richtigen Site zu, wenn die Quell-IP vom richtigen Präfix stammt. Aber es gibt ein Problem - Resolver. Und ungefähr 15-20% der Anfragen kommen von Resolvern - das heißt, die Quell-IP wird 8.8.8.8 sein. Wo soll man das hinstellen?

Zu diesem Zweck gibt es EDNS, mit dem im Rahmen der Anforderung das ursprüngliche Client-Subnetz übertragen werden kann, aus dem es stammt. Wie Sie wissen, fand am 1. Februar 2019 der DNS-Flaggentag statt. Ab diesem Tag müssen alle DNS-Server diese Erweiterung unterstützen.

In diesem Beispiel können Sie entweder einen oder mehrere Standorte haben, an denen sich DNS-Server befinden, die Benutzer zuordnen - und die Server selbst können auf der ganzen Welt verteilt werden. Und bereits im Rahmen von DNS besteht die Möglichkeit, Anycast zu verwenden - darüber werden wir etwas später sprechen.

Im allgemeinen Schema ordnen Sie den Benutzer der ihm am nächsten gelegenen Site zu und geben die Adresse dieser bestimmten Site an. Es wird weniger häufig verwendet.

Der dritte Ansatz bezieht sich auf die Tatsache, dass selbst wenn der Benutzer aus derselben Region stammt, in der sich die Site befindet, dies nicht bedeutet, dass das Problem der Verzögerungen gelöst wurde. Es kann noch rentabler sein, den Benutzer auf einen anderen Standort zu übertragen, da die Region überlastet werden kann, wenn alternative Routen verfügbar sind. Wäre es schön, das zu benutzen? Leider gibt es derzeit fast keine Lösungen, um etwas Ähnliches zu tun. Facebook hat irgendwie einen Bericht gezeigt, dass er das getan hat - aber es gibt keine Box, alles muss mit eigenen Händen gemacht werden.

Was haben wir mit DNS?

Die Vorteile sind, dass verschiedenen Benutzern unterschiedliche Adressen zugewiesen werden können und ein bestimmter Benutzer an eine streng definierte Site gesendet werden kann - das heißt, Sie können mit einzelnen Benutzern arbeiten. Nun, DNS ist einfach zu konfigurieren.

Was sind die Nachteile? Wenn Sie eine granulare Anpassung vornehmen, wächst die Konfiguration ziemlich schnell, was mit Ihren Händen nicht zu unterstützen ist. Brauchen Sie Automatisierung. Und wenn die Automatisierung falsch durchgeführt wird, bricht alles zusammen - wenn der DNS lügt, kann auf die Anwendung nicht zugegriffen werden.

Wenn Sie dagegen einen DNS-Ausgleich durchführen, wird der Benutzer einer bestimmten Site zugeordnet und seine IP wird anfällig. Dies ist der Grund, warum wir zu Hause keinen DNS-Ausgleich verwenden, da in diesem Fall der gesamte Datenverkehr des Angriffs genau an einem Punkt fließen kann und ihn deaktiviert.

Und wie bereits erwähnt, unterstützt DNS den sofortigen Latenzausgleich nicht. Und es selbst zu tun ist sehr schwierig.

Kommen wir endlich zu den feineren Dingen, nämlich BGP anycast.

Dies ist genau unser Fall. Was ist der Punkt? Alle Sites haben dieselbe IP oder geben dasselbe Präfix an. Der Benutzer ordnet die "nächstgelegene" Site zu. Aus Sicht von BGP „am nächsten“ - ein solches Präfix wird auf verschiedenen Routen angekündigt. Wenn der Betreiber mehrere Routen zur beworbenen Site hat, wählt er meistens die kürzeste. Wieder aus Sicht von BGP. Bald werden wir erklären, warum das schlecht ist.

BGP funktioniert auch mit der Verfügbarkeit von Präfixen, sodass Sie immer in einem Subnetz arbeiten und einzelne IPs nicht manipulieren können.

Da von allen Sites dasselbe Präfix angekündigt wird, werden alle Benutzer aus derselben Region zu derselben Site weitergeleitet. Der Angreifer hat keine Möglichkeit, die Last von einer Region in eine andere zu übertragen. Sie müssen also an jedem Ort so viel Energie gewinnen, wie der Betreiber, der diese Route gewählt hat, möchte. Auch wenn Sie nicht punkten, kann es dennoch geschützt werden.

Das gleiche Präfix wird angekündigt - was könnte einfacher sein? Es gibt aber auch Probleme.
Das erste ist, dass Sie aufgrund der Notwendigkeit, weltweit dasselbe Präfix anzukündigen, gezwungen sind, anbieterunabhängige Adressen zu kaufen, die um ein Vielfaches teurer sind.

Der zweite Grund ist die Tatsache, dass Benutzer aus einer Region nicht einfach in eine andere geworfen werden können, wenn plötzlich einige von ihnen unzulässig sind oder um den Angriffsverkehr über andere Websites zu diversifizieren, weil einige von ihnen verletzt sind. Es gibt keine solchen Stifte.

Das dritte Problem ist, dass es im Rahmen von BGP sehr einfach ist, die „falsche“ Site und die „falschen“ Anbieter auszuwählen. Es scheint Ihnen, dass Sie Redundanz und Verfügbarkeit haben, aber in Wirklichkeit wird es weder das eine noch das andere geben.

Sie haben mehrere Websites, zwischen denen Sie Benutzer verteilen möchten. Was sind die Handles, um eine bestimmte Region einzuschränken und Benutzer zu einer bestimmten Site zu ziehen?

Es gibt Geo Community. Warum sind sie? Ich möchte Sie daran erinnern, dass Sie aus Sicht von BGP die nächstgelegene Route wählen. Und Sie haben einen Tier-1-Betreiber, zum Beispiel Level3, der weltweit über einen eigenen Kofferraum verfügt. Der Level3-Client befindet sich in zwei Hoffnungen von Ihnen, wenn Sie direkt mit ihm verbunden sind. Und ein lokaler Betreiber - in drei. Dementsprechend ist ein Betreiber aus Amerika Ihnen näher als ein Betreiber aus Russland oder Europa, da dies aus Sicht von BGP so ist.

Mit Geo Community können Sie die Region einschränken, in der ein so großer und internationaler Betreiber Ihre Route ankündigt. Das Problem ist auch, dass sie nicht immer verfügbar sind (Geo Community).

Wir haben mehrere Fälle, wenn es um uns selbst ging. Dim?

(Dmitry Shemonaev ergreift das Wort)


Viele Betreiber bieten dies nicht an und sagen, dass wir nichts für Netzneutralität, Freiheit usw. einschränken werden. Wir müssen den Betreibern lange erklären, wer wir sind, warum wir es wollen und warum es für uns so wichtig ist, und auch erklären, warum dies nicht für die Neutralität gilt, die sie im Sinn haben. Manchmal funktioniert dies - und manchmal auch nicht, und wir lehnen es einfach ab, mit potenziell interessanten Betreibern zusammenzuarbeiten, da eine solche Zusammenarbeit zu weiteren Schmerzen beim Betrieb unseres Dienstes führen wird.

Außerdem stoßen wir häufig auf die Tatsache, dass es eine Reihe von Betreibern gibt, die Eugene bereits erwähnt hat - dies sind Tier-1-Betreiber, die keinen Verkehr von irgendjemandem kaufen und nur Verkehr zwischen ihnen austauschen. Daneben gibt es jedoch mindestens ein paar Dutzende von Betreibern, die nicht Tier-1 sind - sie kaufen Datenverkehr, haben aber gleichzeitig Netzwerke auf der ganzen Welt bereitgestellt. Sie müssen nicht weit gehen - von uns entfernt ist es Rostelecom oder ReTN, etwas weiter entfernt gibt es wunderbare Telekommunikationsunternehmen in Taipeh, China Unicom, Singtel und so weiter.

Und in Asien waren wir ziemlich oft mit einer solchen Situation konfrontiert, dass wir anscheinend mehrere Standorte in Asien haben und aus Sicht dieser Region mit mehreren ziemlich großen Betreibern verbunden sind. Wir sind jedoch ständig mit der Tatsache konfrontiert, dass der Verkehr aus Asien über Europa zu unserem Standort gelangt oder eine Transatlantikreise unternimmt. Aus Sicht von BGP ist dies für sich genommen ganz normal, da die Latenz nicht berücksichtigt wird. Aber die Anwendung leidet unter solchen Bedingungen, auch ihre Benutzer - im Allgemeinen leidet jeder, aber aus Sicht von BGP ist alles in Ordnung.

Und Sie müssen einige Änderungen mit Ihren Händen vornehmen, Reverse Engineering durchführen, wie das Routing dieses oder jenes Operators angeordnet ist, manchmal verhandeln, fragen, betteln, knien. Tun Sie im Allgemeinen alles, um diese Probleme zu lösen. Damit ist unser NOC mit beneidenswerter Regelmäßigkeit konfrontiert.

In der Regel erfüllen die Betreiber ihre Bedürfnisse und sind in einigen Fällen bereit, ein bestimmtes Set bereitzustellen ... Aber können diejenigen, die auf Gemeindeebene mit BGP gearbeitet haben, im Allgemeinen ihre Hände heben? (Lächelt) Großartig! Das heißt, die Betreiber sind bereit, eine Reihe von Community-Managern bereitzustellen, um beispielsweise die lokalen Präferenzen in einer bestimmten Region zu senken oder Präfixe hinzuzufügen oder nicht gut anzukündigen oder etwas anderes.

Dementsprechend gibt es zwei Möglichkeiten, die Last in BGP auszugleichen. Das erste ist, wie es auf die Folie geschrieben wird, das sogenannte steht vor. Wir können uns den Pfad zu BGP als eine kleine Zeile vorstellen, in der autonome Systeme aufgelistet sind, über die der Paketpfad vom Absender zum Empfänger verläuft. Sie können diesem Pfad eine n-te Anzahl autonomer Systeme hinzufügen. Infolgedessen wird der Pfad erweitert und erhält keine hohe Priorität. Dies ist eine frontale Methode, die nicht für alle Funktionen funktioniert. Wenn Sie ein Präfix hinzufügen, ist es nicht granular, dh jeder sieht es im Kegel des Operators, in dem Sie diese Manipulation ausführen.

Auf der anderen Seite gibt es auch die BGP-Community, die solche markiert, um zu verstehen, woher dieses oder jenes Präfix kommt, wessen es sich in Bezug auf den Betreiber befindet - das heißt, ein Fest, ein Kunde oder ein Upstream - und auch an welchem ​​Ort es genommen wird und usw. Und es gibt Community-Manager, die zum Router zum Bediener gehen und bestimmte Aktionen mit diesem Präfix ausführen.

Die meisten Betreiber haben restriktive Communities. Nehmen wir zum Beispiel den abstrakten russischen Operator, der im luftleeren Raum mit einer Reihe russischer Operatoren verbunden ist. Einige von ihnen haben Peer-to-Peer-Beziehungen, die einen Paritätsaustausch des Datenverkehrs implizieren, und andere kaufen sie. Dementsprechend bieten sie Community, um in diese Richtung voranzukommen, indem sie den AS-Pfad erweitern oder lokale Einstellungen nicht ankündigen oder ändern. Wenn Sie mit BGP arbeiten, schauen Sie sich die Community an und erfahren Sie, was der Antragsteller tun kann, um Ihr Lieferant zu werden. Manchmal sind Communities versteckt und Sie müssen entweder mit Betreibermanagern oder mit technischen Experten kommunizieren, um uns einen bestimmten unterstützten Satz zu zeigen.

Standardmäßig wird die Community im Fall der europäischen Region in RIPE DB beschrieben. Das heißt, Sie stellen eine Anfrage an whois, die Nummern des autonomen Systems, und das Feld "Bemerkungen" gibt normalerweise an, was der Bediener in Bezug auf das Markieren und Verwalten der Community hat. Nicht jeder hat dies, so oft muss man nach verschiedenen interessanten Orten suchen.

Sobald Sie mit dem Betrieb von BGP beginnen, sagen Sie im Wesentlichen, dass das Netzwerk Teil Ihrer Anwendung ist und nicht abstrakt, sodass Sie die Risiken berücksichtigen müssen.

Zum Beispiel hatten wir einen Fall mit einem lettischen Finanzinstitut, dessen Präfix, wenn es über unser Netzwerk aufgenommen wurde, in etwa der Hälfte von Lettland nicht mehr verfügbar war. Obwohl sich anscheinend nichts geändert hat - dasselbe Präfix, das wir bei Tier-1-Betreibern in Europa ankündigen -, scheint in Europa alles vorhanden zu sein, einschließlich Redundanz. Wir konnten uns jedoch nicht einmal vorstellen, dass etwa die Hälfte der lettischen Betreiber als Grenzgeräte nicht das gesamte Volumen der Vollansicht (die gesamte BGP-Routing-Tabelle) verarbeiten konnte, das zu diesem Zeitpunkt etwa 650.000 Präfixe umfasste. Sie standen dort, na ja, wenn jemand weiß, was der Catalyst 3550 ist, war es genau dort, wo er stand, er konnte nur 12.000 Präfixe. Nun, sie haben eine bestimmte Anzahl von Präfixen von IX'a erhalten, für die es natürlich keine Standardeinstellungen gab. Zusammen mit diesem von einem anderen Betreiber - dem lettischen Fernsehen, dessen Präfix im IX. Nicht / 24 war, sondern / 22, in dem dieses / 24 stand.

Infolgedessen ging er an einen Ort, an dem er nicht wusste, wohin er ihn leiten sollte, und alles flog in die Leitung. Um dies zu beheben, brauchten wir ungefähr zwei Tage und eine ständige Korrespondenz mit den lettischen Betreibern, bis sie uns die Ausgabe von ihrem Grenzgerät zeigten und wir nur den Hostnamen dort bemerkten. Hallo allerseits, manchmal macht es so viel Spaß.

Es gibt viele Betreiber mit altem Eisen. Es gibt viele Betreiber mit einem seltsamen Verständnis dafür, wie das Netzwerk funktionieren sollte. Und jetzt ist dies auch Ihr Problem, wenn Sie mit BGP spielen wollen. Letztendlich sind viele Bediener einbeinig (ein überlegener Konnektivitätsanbieter), sodass sie ihre eigenen Krückensätze haben.


(Evgeny Bogomazov fährt fort)



Wie Sie sehen, kann auch dieses Thema für eine lange Zeit entwickelt werden und es ist schwierig, es innerhalb von 40 Minuten zu halten.

Sie haben also Stifte, mit denen Sie die Region begrenzen möchten. Lassen Sie uns nun herausfinden, was Sie sich ansehen müssen und was zu beachten ist, wenn Sie auf einer neuen Website untergebracht werden möchten.

Der beste Fall ist nicht, Ihre Hardware zu kaufen, sondern sich beim Hosting mit einer Cloud abzustimmen. Dann können Sie ihm bereits zustimmen, dass Sie sich unabhängig mit bestimmten Anbietern verbinden.

Wenn Sie diese Route dennoch eingeschlagen haben, sollten Sie ungefähr verstehen, welche Region mit oder ohne Griffe zu dieser Site zusammengeführt wird. Dazu müssen Sie modellieren, oder besser gesagt, Sie müssen verstehen, dass, wenn es mehrere Routen von verschiedenen Standorten gibt, welche als die beste ausgewählt wird. Zu diesem Zweck sollten Sie eine Vorstellung davon haben, wie BGP funktioniert und wie Routen in der aktuellen Situation zirkulieren.

Zwei Hauptpunkte sind die Länge des Pfades, die durch Präfixe und die lokale Präferenz beeinflusst wird. Dies besagt, dass Routen von Clients Routen von anderen vorzuziehen sind. Im Prinzip reichen diese beiden Punkte aus, um zu verstehen, welche Region zusammengezogen wird und wo man aufsteht.

Unter anderem sind einige Dinge zu beachten, nämlich welche Art von Konnektivität Ihr Lieferant hat, zusätzlich die Tatsache, dass einige Lieferanten nicht miteinander kommunizieren (Peer-to-Peer-Kriege), und selbst wenn Sie sich mit der regionalen Tier-1 verbinden, bedeutet dies nicht, dass Alle lokalen Benutzer werden Sie sehen.

Eine andere Sache, die oft vergessen wird, ist, dass die Konnektivität in IPv4 und IPv6 völlig unterschiedlich ist und nicht zueinander portierbar ist.

Und hier kommen wir zum Hauptpunkt. Beantwortung der Frage: "Wo soll ich aufstehen?" Die Wahl scheint offensichtlich zu sein. Wenn Sie Benutzer in der Region haben, erreichen Sie IX in dieser Region und es gibt nichts mehr zu denken. Es gibt Konnektivität, die meisten Benutzer sollten theoretisch damit verbunden sein, und die meisten Inhaltsspezialisten, Unternehmen wie Yandex und andere, stellen zuerst eine Verbindung zu IXs und erst dann zu Lieferanten her. Lieferanten haben jedoch möglicherweise eindeutige Kunden, einige Lieferanten selbst sind bei IX nicht anwesend, und daher können Sie diese Benutzer nicht an sich selbst weiterleiten - sie werden auf seltsame Weise zu Ihnen gehen.

Bei der Auswahl der Lieferanten können Sie den Kopf nicht ausschalten. In einigen Fällen führte der falsche Ansatz zu einem Problem. Lieferanten sind unsere Wahl, denn wenn Sie nicht über viele Ressourcen für die Verbindung verfügen und zu den größten regionalen Akteuren gehen, erhalten Sie dieselbe Konnektivität wie bei IX.

Sag mir, wie ich die richtigen Lieferanten auswähle, Dima.

(und wieder Dmitry Shemonaev)

OkayStellen wir uns vor, wir haben einen Punkt und die Region, die uns interessiert, ist Russland. Wir haben einen Punkt in einem bedingt guten Rechenzentrum in Moskau, wir arbeiten mit unserem eigenen autonomen System, unseren eigenen Präfixen und haben beschlossen, mit BGP anycast zu skalieren - stilvoll und modisch.

Das Unternehmen entschied zusammen mit technischen Kollegen, dass es von Wladiwostok nach Moskau eine sehr große RTT gibt, und das ist schlecht, das heißt nicht gut. Nehmen wir an, wir bleiben in Moskau und machen Nowosibirsk ein Ende. Alles wird besser, RTT wird natürlich fallen. Kaum gesagt als getan.

Dies wirft die Frage nach einem Standort für Geräte auf, aber dies liegt etwas außerhalb des Rahmens unseres heutigen Gesprächs, aber die Frage nach der Auswahl eines Betreibers ist durchaus.
Es scheint, dass die Wahl offensichtlich ist - in Moskau sind wir mit dem bedingten Moskvatelekom verbunden, bleiben wir auch in Nowosibirsk dabei. Ja, im Prinzip können wir uns auf das interne Routing des Anbieters verlassen, aber dies ist nicht immer korrekt. In diesem Fall legen wir alle Eier in einen Korb und müssen verstehen, dass das Routing gemäß dem IGP des Betreibers, gelinde gesagt, möglicherweise nicht optimal ist, da es nicht immer klar ist was treibt es an. Manchmal ist es verständlich, manchmal ist es nicht sehr - jetzt geht es nicht darum, außerdem hat mir das Management verboten zu schwören, so dass ich einige Beispiele nicht im Detail erkennen kann.

Moderne Trends sind so, dass sogar Moskvatelecom sagen kann, dass die Zeit für SDN gekommen ist, und jetzt werden wir einen wunderbaren Controller einsetzen, der das Netzwerk steuert. Und irgendwann kann ein solcher Controller dieses Netzwerk einfach zerstören. Nebenbei erinnere ich mich nicht an einen solchen Fall, insbesondere mit einem SDN-Controller, aber erst kürzlich in Amerika überließ ein großer Betreiber (CenturyLink) dem Netzwerkgott eine Netzwerkkarte, und das gesamte Netzwerk war in den USA instabil. Wegen einer Netzwerkkarte. Das NOC dieses Betreibers hat dieses Problem drei oder vier Tage lang behoben. Wegen einer Netzwerkkarte.

Wenn Sie mit einem Betreiber verbunden sind, gratuliere ich Ihnen herzlich.

Nun, dann haben sie entschieden - wir werden nicht mit einem bedingten Einzelbetreiber in Moskau und Nowosibirsk zusammenarbeiten. Hier - mit Moskvatelecom und dort - mit Novosibirsktelecom (alle Zufälle sind zufällig). Die Größe der Kundenkegel dieser beiden Telekommunikationsgeräte unterscheidet sich wie eine Schildkröte von einem Elefanten, und Sie erhalten Ihren gesamten Datenverkehr dorthin, wo der Hauptkundenkegel fällt, dh zu Moskvatelecom in Moskau. Es ist immer ratsam, dass die Betreiber paritätisch sind und in dem Gebiet der Region, in der sich Ihr Interesse befindet, Peerings untereinander haben. In Russland hatten vor einigen Jahren die größten Betreiber wie Rostelecom und TTK Peerings in Moskau, St. Petersburg, Nischni Nowgorod, Nowosibirsk und anscheinend in Wladiwostok. Daher verlief der Verkehr zwischen diesen Betreibern plus oder minus optimal.

Der Bediener muss jedoch noch richtig ausgewählt werden. Also hat er eine Community, also hat er ein NOC. All dies ist wirklich wichtig, denn letztes Jahr gab es einen wunderbaren Fall, in dem ein ziemlich großer russischer Betreiber einige seiner Dienste testete und nachts viele Präfixe aus der Stadt St. Petersburg mit der Einfügung seines autonomen Systems in den Server der zweiten Route ankündigte DE-CIX in Frankfurt. Er kündigte es dort mit einer Blackhole-Community an.

Infolgedessen waren viele Betreiber und Rechenzentren in St. Petersburg beispielsweise vom TTK-Netzwerk aus nicht erreichbar. Dies wirkte sich auch auf uns aus, aber wir konnten dies umgehen, da wir zwischen unseren Punkten ein eigenes Netzwerk haben, irgendwo überlagert und irgendwo physisch, und den Verkehr vom Problembetreiber zu dem zurückgeleitet haben, bei dem es keine Probleme gab. Im Allgemeinen überwunden. Aber ich sage Ihnen dies, damit Sie wissen, dass das NOC des Betreibers angemessen sein muss, da in diesem Fall das NOC des Täters in der Nacht von Freitag auf Samstag nicht Kontakt aufgenommen hat, sondern erst am Montag aufgewacht ist. Dreitägige teilweise Unzugänglichkeit für eine Reihe von Betreibern. Besser dreimal überlegen.

Kommen wir zurück zu NOC. Network Operations Center - ein Netzwerkverwaltungszentrum. Dies ist die Abteilung des Unternehmens, die mit dem Betrieb des Netzwerks, dem Netzwerkbetrieb usw. befasst ist. Antworten auf eine Reihe von Tickets, die bezüglich des Netzwerks eingegangen sind. Was möchten Sie hinzufügen? Die Spezialisten, die in der Aichi-Summe in diesem Raum aufgewachsen sind, wissen wahrscheinlich alles Gute über die Überwachung. Das ist wirklich wichtig. In einigen Fällen müssen sehr spezifische Dinge überwacht werden.

Einige Benutzer beschweren sich möglicherweise, dass "alles irgendwie schlecht ist" und können nicht die Diagnose stellen, die erforderlich ist, um mit der Arbeit zur Korrektur der Situation zu beginnen. Es gibt ein schlechtes Signal - und was und wo ist nicht klar. In diesem Fall versuchen wir, mit dem NOC des Operators in dem Client-Kegel zu interagieren, in dem sich dieser Benutzer befindet. Wenn dies nicht funktioniert, sehen wir uns die Korrelationen an - die Möglichkeit des RIPE Atlas-Projektknotens in diesem Kegel. Im Allgemeinen sammeln wir so gut wir können. Wir sind bereit für das, was sie uns nicht immer geben können.

In einigen Fällen ist es sinnvoll zu überwachen, mit welcher Community dieses oder jenes Präfix zu Ihrem Grenzrouter kommt, und eine historische Retrospektive zu sammeln, entschuldigen Sie die Tautologie. Zum Beispiel nehmen wir drei Betreiber: Megafon, Rostelecom und Transtelecom. Angenommen, alle haben einen Blick auf das Territorium der Russischen Föderation und Sie sind mit einem bedingten Rostelecom verbunden, oder es spielt keine Rolle. In diesem Fall sehen Sie die Präfixe, in denen sich Ihre Benutzer befinden, mit einer Art Markierungsgemeinschaft. Sie können gesammelt, aufgezeichnet werden, und wenn etwas passiert, ändert sich die Community. Zum Beispiel erhalten Sie ein Präfix mit der Community, dass dies ein Fest in Russland ist. Ja, gut aufgenommen. Und dann hat sich diese Gemeinschaft dahingehend geändert, dass dies ein Fest in Frankfurt ist. Was bedeutet das?Dass diese Betreiber Peer-to-Peer-Beziehungen abgebrochen haben und Sie und Latenz nicht sehr gut abschneiden - Sie durchlaufen die europäische Schleife. In diesem Fall können Sie etwas proaktiv tun, dies ist jedoch zeitaufwändig und erfordert Entschlossenheit sowie andere Eigenschaften.

Und wenn möglich, automatisieren Sie alles - es war vor 10 Jahren schwierig, und jetzt gibt es viele Dienstprogramme wie Ansible, Chef, Puppet, die mit Netzwerkelementen interagieren können. Warum ist Automatisierung wichtig? Ich habe BGP schon sehr lange eingerichtet und die erste Regel lautet ungefähr so: „Mit wem auch immer Sie Ihre BGP-Nachbarschaft einrichten, Sie werden nicht von einer sehr netten Person eingerichtet.“ Aus Sicht dieser Person gilt diese Regel auch für Sie.

Ich persönlich hatte einen Fall, in dem ich alle Peerings von einer Grenze zur anderen in einem Samara-Operator übertragen habe, dessen Namen wir nicht nennen werden. Ich hatte eine Verbindung mit einem großen Inhaltsanbieter - einem Online-Kino - und ich hatte eine Verbindung mit der lokalen Tochter von Rostelecom. Nur mit dem Content Manager hatte ich eine Gigabyte-Verbindung und mit meiner Tochter eine mit 100 Megabyte. Und ich als angenehmer Mensch habe das alles nachts ertragen - ich schaue auf die Grafiken, auf den Hundert-Megabit-Joint und denke: „Oh, wie zum Teufel!“ Und dann schaue ich - dieser im Regiment, der im Regiment und ich denke (trifft mich auf die Stirn) - ich habe vergessen, Filter zu machen. Das soll von solchen Aktionen abgeschirmt werden, weil alle anderen akzeptiert haben, dass der Dreifachschlag nur durch Automatisierung geschützt werden muss. Automatisierung ist der Feind von schlechten Menschen und ein Freund von guten.

Dann bist du es, Zhenya.

(Evgeny Bogomazov fährt fort)

Also haben wir alle ersten Punkte besprochen. Aber bei jeder Sendung endet nicht alles, außer ihm müssen Sie andere, zusätzliche Dinge im Auge behalten.

Mal sehen, was noch ist. Sie müssen sehen, wie gut die Anwendung in die Verteilung integriert ist. Wenn mehrere Websites vorhanden sind, müssen Sie in der Lage sein, Inhalte auf diesen Websites zu verteilen. Wenn dies nicht möglich ist, gehen alle Benutzer unabhängig von der Verteilung Ihres Systems zu der Site, auf der sich die Anwendung tatsächlich befindet. Und genau RTT werden Sie nicht speichern.

Wenn Sie jedoch keine Benutzerdaten als solche haben, können Sie die Benutzeranwendung auf dieser Site platzieren - tun Sie es einfach. Wenn die Anwendung alles unterstützt, verwenden Sie Anycast-Clouds. Wenn Sie keine eigene Infrastruktur entwickeln möchten, bringt dies viel Gewinn.

Wenn Sie bereits mehrere Websites haben und der Benutzer zu einer von ihnen kommt, kann dort etwas passieren. Nehmen wir an, es wird fallen oder die Links werden unterbrochen, sodass Benutzer zu einer anderen Website wechseln. Aber sie sollten es nicht bemerken. Daher sollten Sie in der Lage sein, diesen Datenverkehr so ​​schnell wie möglich innerhalb des internen Anycast-Netzwerks zu übertragen, und im Allgemeinen sollten Sie ein solches Problem als unvermeidlich betrachten. Daher ist es hilfreich, etwas in die Anwendung aufzunehmen, um sich auf eine solche Entwicklung von Ereignissen vorzubereiten.

Wenn Sie über Geschäftsmetriken für Anwendungen verfügen, fordern Sie im Falle eines Ausfalls sofort die Netzwerküberwachung an und erstellen Sie einen Bericht über den Status des internen oder externen Netzwerks oder besser beider. Geschäftskennzahlen fallen normalerweise, weil irgendwo etwas passiert ist, aber das ist natürlich eine Utopie - auch wenn wir dem noch nicht nahe gekommen sind.

Sie haben ein externes Netzwerk, aber es gibt auch interne Standorte - diese müssen miteinander kommunizieren. Gleichzeitig benötigen Sie keine eigene physische Infrastruktur - Sie können die Netzwerke von Drittanbietern verwenden. Die Hauptsache ist die Konfiguration virtueller Tunnel. Außerdem müssen Sie das Routing des internen Netzwerks konfigurieren, da nicht alles auf BGP endet. Aufgrund der Art der Verkehrsverarbeitung verfügen wir über eigene Protokolle, Kommunikationsstile und Skripte.

Wenn Sie einige Sites haben, sollten Sie in der Lage sein, Konfigurationen an verschiedenen Orten gleichzeitig zu aktualisieren. Sie erhalten ein neues Präfix - Sie müssen es überall ankündigen, DNS aktualisiert - das gleiche. Im Kontext von SDNs müssen Sie Daten von den Sites sammeln und irgendwo aggregieren und die Änderungen, die aufgrund dieser Daten aufgetreten sind, wieder in die Sites übertragen.

Das letzte Element ist DNS. Das Beispiel mit Dyn war bezeichnend - wie Sie sich erinnern, wurde 2016 ein Angriff gegen sie durchgeführt, den sie nicht bewältigen konnten, und eine sehr große Anzahl von in den USA beliebten Ressourcen war nicht mehr verfügbar. DNS muss ebenfalls geschützt werden, da Benutzer Ihre Anwendung sonst nicht im Netzwerk finden. DNS-Caches werden teilweise gespeichert, und es gibt interessante Arbeiten zu diesem Thema an der IETF, aber es hängt immer davon ab, ob bestimmte DNS-Resolver dies unterstützen.

In jedem Fall müssen Sie über ein sicheres DNS verfügen. Dies ist die erste Phase, die ausgearbeitet werden muss, damit sich der Benutzer mit Ihrer Anwendung vertraut macht. Wenn Sie die Seite zum ersten Mal öffnen, kommt es zusätzlich zu der bereits erwähnten RTT zu zusätzlichen Verzögerungen bei DNS-Abfragen, und Sie müssen darauf vorbereitet sein, dass die Seite des Benutzers zum ersten Mal für längere Zeit geöffnet wird und möglicherweise von jemandem nicht toleriert wird. Wenn für Sie eine lange erste Entdeckung entscheidend ist, müssen Sie auch den DNS beschleunigen.

Im Fall von Anycast können Sie DNS-Antworten an Ihren Präsenzpunkten zwischenspeichern, da Sie diese Websites bereits haben und DNS-Antworten schnell genug eingehen.

Was ist das Problem? Nun, Latenz, gut, Ausgleich.
Wie bereits erwähnt, gibt es immer noch Natur. Zum Teil müssen Sie an verschiedenen Orten platziert werden. Dies sollte nicht vergessen werden, obwohl das Risiko gering erscheint.

Es gibt auch eine Person und einen Zufallsfaktor. Daher sollten Sie alles so weit wie möglich automatisieren, die gegossenen Konfigurationen testen und die Änderungen überwachen. Selbst wenn Sie etwas genommen haben, ist es gut, wenn Sie Änderungen schnell und lokal vornehmen können.

Dies sind 90% der Fälle. Aber die restlichen 10% - dies ist, wenn die Konkurrenten beschlossen, Sie zu eliminieren. In diesem Fall haben Sie ernsthafte Probleme. Warum wird die "Reservierung" in einer separaten großen Schrift hervorgehoben? Wenn Sie sich für eine Platzierung entscheiden, benötigen Sie eine sehr große Anzahl von Kanälen auf Ihren Websites, was bedeutet, dass Sie mit einer großen Anzahl von Anbietern verhandeln müssen. Andernfalls können Sie dies bei der aktuellen durchschnittlichen Anzahl von Angriffen überhaupt nicht tun.

Es ist also besser zu delegieren, als eigene Hardware zu kaufen. Selbst ein Teil der Funktionalität, die wir heute im Rahmen von anycast beschrieben haben, und die auftretenden Probleme sind leicht falsch zu lösen. Wenn es also die Möglichkeit gibt, diese Probleme nicht zu lösen und sie an Außenstehende weiterzugeben, lohnt es sich wahrscheinlich, dies zu tun. Andernfalls müssen Sie die Frage, warum Sie all dies implementieren müssen, genau beantworten.

Wenden Sie sich im Falle eines Angriffs den Wolken zu, die sich auf die Lösung solcher Probleme spezialisiert haben. Na ja, oder du kannst trotzdem mit uns chatten.

Vielen Dank! Fragen?

Source: https://habr.com/ru/post/de457446/


All Articles