Wie wir die Große Chinesische Firewall durchbrachen (Teil 3)

Hallo!
Alle guten Geschichten haben ein Ende. Und unsere Geschichte darüber, wie wir eine Lösung gefunden haben, um die chinesische Firewall schnell zu passieren, bildet da keine Ausnahme. Deshalb beeile ich mich, das Letzte mit Ihnen zu teilen: der letzte Teil zu diesem Thema.

Im vorherigen Teil haben wir über viele Prüfstände gesprochen, die wir entwickelt haben, und über die Ergebnisse, die sie lieferten. Und wir haben uns entschieden, was wir noch hinzufügen könnten CDN! für die Viskosität in unser Schema ein.

Ich erzähle Ihnen, wie wir Alibaba Cloud CDN, Tencent Cloud CDN und Akamai getestet haben und was dabei herausgekommen ist. Und natürlich lasst uns zusammenfassen.

Wie wir die Große Chinesische Firewall durchbrachen (Teil 3)

Alibaba Cloud-CDN

Wir sind auf der Alibaba Cloud gehostet und nutzen dort IPSEC und CEN. Es wäre logisch, zuerst ihre Lösungen auszuprobieren.

Alibaba Cloud bietet zwei Arten von Produkten, die zu uns passen könnten: CDN и DCDN. Die erste Möglichkeit ist ein klassisches CDN für eine bestimmte Domain (Subdomain). Die zweite Option steht für Dynamische Route für CDN (Ich nenne es dynamisches CDN), es kann im Full-Site-Modus aktiviert werden (für Wildcard-Domains), es speichert auch statische Inhalte zwischen und beschleunigt dynamische Inhalte auf sich selbst, d. h. die Dynamik der Seite wird auch über die des Anbieters geladen schnelle Netzwerke. Dies ist für uns wichtig, da unsere Website grundsätzlich dynamisch ist, viele Subdomains verwendet und es bequemer ist, einmalig ein CDN für das „Sternchen“ einzurichten – *.semrushchina.cn.

Wir hatten dieses Produkt bereits in früheren Phasen unseres chinesischen Projekts gesehen, aber damals funktionierte es noch nicht und die Entwickler versprachen, dass das Produkt bald für alle Kunden verfügbar sein würde. Und er tat es.

In DCDN können Sie:

  • Konfigurieren Sie die SSL-Terminierung mit Ihrem Zertifikat.
  • ermöglichen die Beschleunigung dynamischer Inhalte,
  • Caching statischer Dateien flexibel konfigurieren,
  • Cache leeren,
  • Web-Sockets weiterleiten,
  • Komprimierung und sogar HTML Beautifier aktivieren.

Im Allgemeinen ist alles wie bei Erwachsenen und großen CDN-Anbietern.

Nachdem der Ursprung (der Ort, an den die CDN-Edge-Server gehen sollen) angegeben wurde, muss nur noch ein CNAME für den Stern erstellt werden, auf den verwiesen wird all.semrushchina.cn.w.kunluncan.com (Dieser CNAME wurde in der Alibaba Cloud-Konsole empfangen) und das CDN funktioniert.

Basierend auf den Testergebnissen hat uns dieses CDN sehr geholfen. Die Statistiken werden unten angezeigt.

Lösung
Betriebszeit
Median
75. Perzentil
95. Perzentil

Cloudflare
86.6
18er-Jahre
30er-Jahre
60er-Jahre

IPsec
99.79
18er-Jahre
21er-Jahre
30er-Jahre

CEN
99.75
16er-Jahre
21er-Jahre
27er-Jahre

CEN/IPsec + GLB
99.79
13er-Jahre
16er-Jahre
25er-Jahre

Ali CDN + CEN/IPsec + GLB
99.75
10er-Jahre
12.8er-Jahre
17.3er-Jahre

Das sind sehr gute Ergebnisse, vor allem wenn man sie mit den Zahlen zu Beginn vergleicht. Wir wussten aber, dass der Browsertest der amerikanischen Version unserer Website www.semrush.com aus den USA im Durchschnitt 8.3 Sekunden dauert (ein sehr ungefährer Wert). Es gibt Raum für Verbesserungen. Darüber hinaus gab es auch CDN-Anbieter, die interessant zum Testen waren.

So gehen wir reibungslos zu einem anderen Giganten auf dem chinesischen Markt über – Tencent.

Tencent Cloud

Tencent ist gerade dabei, seine Cloud weiterzuentwickeln – das lässt sich an wenigen Produkten erkennen. Bei der Nutzung wollten wir nicht nur ihr CDN, sondern auch ihre Netzwerkinfrastruktur als Ganzes testen:

  • Haben sie etwas Ähnliches wie CEN?
  • Wie funktioniert IPSEC für sie? Ist es schnell, wie hoch ist die Betriebszeit?
  • Haben sie Anycast?

Wie wir die Große Chinesische Firewall durchbrachen (Teil 3)

Schauen wir uns diese Fragen separat an.

Analoges CEN

Tencent hat ein Produkt Cloud Connect-Netzwerk (CCN), sodass Sie VPCs aus verschiedenen Regionen verbinden können, einschließlich Regionen innerhalb und außerhalb Chinas. Das Produkt befindet sich jetzt in der internen Betaphase und Sie müssen ein Ticket erstellen, in dem Sie um eine Verbindung gebeten werden. Wir haben vom Support erfahren, dass globale Konten (wir sprechen hier nicht von chinesischen Staatsbürgern oder juristischen Personen) nicht am Betatestprogramm teilnehmen und im Allgemeinen eine Region innerhalb Chinas mit einer Region außerhalb Chinas verbinden können. 1:0 zugunsten von Ali Cloud

IPsec

Die südlichste Region von Tencent ist Guangzhou. Wir haben einen Tunnel zusammengebaut und ihn mit der Region Hongkong in GCP verbunden (damals war diese Region bereits verfügbar). Gleichzeitig wurde auch der zweite Tunnel in Ali Cloud von Shenzhen nach Hongkong gebaut. Es stellte sich heraus, dass die Latenz nach Hongkong über das Tencent-Netzwerk im Allgemeinen besser ist (10 ms) als von Shenzhen nach Hongkong nach Ali (120 ms – was?). Dies hat jedoch die Arbeit der Website, die darauf abzielt, durch Tencent und diesen Tunnel zu arbeiten, in keiner Weise beschleunigt, was an sich schon eine erstaunliche Tatsache war und erneut Folgendes bewies: Latenz – für China ist dies kein wirklich wertvoller Indikator Achten Sie darauf, wenn Sie eine Lösung zum Passieren der chinesischen Firewall entwickeln.

Anycast-Internetbeschleunigung

Ein weiteres Produkt, mit dem Sie über Anycast-IP arbeiten können, ist AIA. Aber es ist auch nicht für globale Konten verfügbar, daher werde ich Ihnen nichts darüber erzählen, aber zu wissen, dass ein solches Produkt existiert, kann nützlich sein.

Aber der CDN-Test zeigte einige ziemlich interessante Ergebnisse. Das CDN von Tencent kann nicht auf einer vollständigen Site, sondern nur auf bestimmten Domänen aktiviert werden. Wir haben Domains erstellt und Traffic an sie gesendet:

Wie wir die Große Chinesische Firewall durchbrachen (Teil 3)

Es stellte sich heraus, dass dieses CDN die folgende Funktion hat: Grenzüberschreitende Verkehrsoptimierung. Diese Funktion soll die Kosten senken, wenn der Datenverkehr die chinesische Firewall passiert. Als Origin Es wurde die IP-Adresse von Google GLB (GLB Anycast) angegeben. Daher wollten wir die Projektarchitektur vereinfachen.

Die Ergebnisse waren sehr gut – auf dem Niveau von Ali Cloud CDN, an manchen Stellen sogar noch besser. Das ist überraschend, denn wenn die Tests erfolgreich sind, können Sie einen erheblichen Teil der Infrastruktur, Tunnel, CEN, virtuellen Maschinen usw. aufgeben.

Die Freude ließ nicht lange auf sich warten, als ein Problem aufgedeckt wurde: Tests in Catchpoint schlugen beim Internetprovider China Mobile fehl. Von jedem Standort aus erhielten wir über das CDN von Tencent eine Auszeit. Die Korrespondenz mit dem technischen Support führte zu nichts. Wir haben etwa einen Tag lang versucht, dieses Problem zu lösen, aber nichts hat funktioniert.

Ich war zu diesem Zeitpunkt in China, konnte aber im Netzwerk dieses Anbieters kein öffentliches WLAN finden, um das Problem persönlich zu überprüfen. Ansonsten sah alles schnell und gut aus.
Da China Mobile jedoch einer der drei größten Betreiber ist, waren wir gezwungen, den Datenverkehr an Ali CDN zurückzuleiten.
Aber im Großen und Ganzen war dies eine recht interessante Lösung, die eine längere Prüfung und Fehlerbehebung dieses Problems verdient.

Akamai

Der letzte CDN-Anbieter, den wir getestet haben, war Akamai. Dabei handelt es sich um einen riesigen Anbieter, der sein Netzwerk in China hat. Daran kamen wir natürlich nicht vorbei.

Wie wir die Große Chinesische Firewall durchbrachen (Teil 3)

Von Anfang an haben wir mit Akamai einen Testzeitraum vereinbart, damit wir die Domain wechseln und sehen konnten, wie sie in ihrem Netzwerk funktionieren würde. Ich beschreibe das Ergebnis aller Tests in Form von „Was mir gefallen hat“ und „Was mir nicht gefallen hat“ und gebe auch die Testergebnisse an.

Was ich mochte:

  • Die Jungs von Akamai waren bei allen Fragen sehr hilfreich und haben uns in allen Testphasen begleitet. Wir haben ständig versucht, etwas auf unserer Seite zu verbessern. Sie gaben gute technische Ratschläge.
  • Akamai ist etwa 10–15 % langsamer als unsere Lösung über Ali Cloud CDN. Beeindruckend ist, dass wir in Origin für Akamai die IP-Adresse des GLB angegeben haben, was bedeutet, dass der Datenverkehr nicht über unsere Lösung lief (möglicherweise könnten wir einen Teil der Infrastruktur aufgeben). Dennoch zeigten die Testergebnisse, dass diese Lösung schlechter ist als unsere aktuelle Version (Vergleichsergebnisse unten).
  • Getestet sowohl Origin GLB als auch Origin in China. Beide Optionen sind ungefähr gleich.
  • Es gibt Sichere Route (automatische Routing-Optimierung). Sie können ein Testobjekt auf Origin hosten und die Akamai Edge-Server werden versuchen, es abzurufen (reguläres GET). Für diese Anfragen werden Geschwindigkeit und andere Kennzahlen gemessen, auf deren Grundlage das Akamai-Netzwerk die Routen optimiert, sodass der Datenverkehr für unsere Website schneller verläuft. Es war klar, dass die Aktivierung dieser Funktion tatsächlich einen starken Einfluss auf die Geschwindigkeit der Website hatte.
  • Die Versionierung der Konfiguration im Webinterface ist cool. Sie können die Versionen vergleichen und sich die Unterschiede ansehen. Frühere Versionen anzeigen.
  • Sie können eine neue Version zunächst nur im Akamai Staging-Netzwerk einführen – demselben Netzwerk wie die Produktion, nur hat diese Methode keine Auswirkungen auf echte Benutzer. Für diesen Test müssen Sie DNS-Einträge auf Ihrem lokalen Computer fälschen.
  • Sehr schnelle Download-Geschwindigkeit über ihr Netzwerk für große statische Dateien und anscheinend auch für alle anderen Dateien. Eine Datei aus dem „kalten“ Cache wird um ein Vielfaches schneller abgerufen als dieselbe Datei aus dem „kalten“ Cache von Ali CDN. Ab dem „heißen“ Cache ist die Geschwindigkeit bereits gleich, plus oder minus.

Ali CDN-Test:

root@shenzhen1:~# curl -o /dev/null -w@curl_time https://en.semrushchina.cn/my_reports/build/scripts/simpleInit.js?v=1551879212
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 5757k    0 5757k    0     0   513k      0 --:--:--  0:00:11 --:--:--  526k
time_namelookup:  0.004286
time_connect:  0.030107
time_appconnect:  0.117525
time_pretransfer:  0.117606
time_redirect:  0.000000
time_starttransfer:  0.840348
----------
time_total:  11.208119
----------
size_download:  5895467 Bytes
speed_download:  525999.000B/s

Akamai-Test:

root@shenzhen1:~# curl -o /dev/null -w@curl_time https://www.semrushchina.cn/my_reports/build/scripts/simpleInit.js?v=1551879212
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 5757k    0 5757k    0     0  1824k      0 --:--:--  0:00:03 --:--:-- 1825k
time_namelookup:  0.509005
time_connect:  0.528261
time_appconnect:  0.577235
time_pretransfer:  0.577324
time_redirect:  0.000000
time_starttransfer:  1.327013
----------
time_total:  3.154850
----------
size_download:  5895467 Bytes
speed_download:  1868699.000B/s

Wir haben festgestellt, dass die Situation im obigen Beispiel von verschiedenen Faktoren abhängt. Zum Zeitpunkt des Verfassens dieses Artikels habe ich den Test erneut durchgeführt. Die Ergebnisse waren für beide Plattformen ungefähr gleich. Dies zeigt uns, dass sich das Internet in China selbst bei großen Betreibern und Cloud-Anbietern von Zeit zu Zeit anders verhält.

Zum vorherigen Punkt füge ich ein großes Plus für Akamai hinzu: Wenn Ali ähnliche Flashs mit hoher und sehr geringer Leistung zeigt (dies gilt für Ali CDN, Ali CEN und Ali IPSEC), dann Akamai, jedes Mal, egal Wie ich ihr Netzwerk teste, funktioniert alles stabil.
Akamai verfügt in China über eine große Abdeckung und arbeitet mit vielen Anbietern zusammen.

Was hat nicht gefallen:

  • Mir gefällt die Weboberfläche und ihre Funktionsweise nicht – sie ist so schlecht. Aber im Grunde gewöhnt man sich (wahrscheinlich) daran.
  • Die Testergebnisse sind schlechter als auf unserer Website.
  • Bei Tests treten mehr Fehler auf als auf unserer Website (Verfügbarkeit unten).
  • Wir haben in China keine eigenen DNS-Server. Daher kommt es in Tests aufgrund von Zeitüberschreitungen bei der DNS-Auflösung zu vielen Fehlern.
  • Sie geben ihre IP-Bereiche nicht an -> es gibt keine Möglichkeit, die richtigen zu registrieren set_real_ip_from auf unseren Servern.

Metriken (~3626 Läufe; alle Metriken außer Uptime, in ms; Statistiken für einen Zeitraum):

CDN-Anbieter
Median
75%
95%
Antwort
Webseitenantwort
Betriebszeit
DNS
Vernetz Dich
Wartezeit
Laden Sie
SSL

AliCDN
9195
10749
17489
1,715
10,745
99.531
57
17
927
479
200

Akamai
9783
11887
19888
2,352
11,550
98.980
424
91
1408
381
50

Verteilung nach Perzentil (in ms):

Prozentsatz
Akamai
AliCDN

10
7,092
6,942

20
7,775
7,583

30
8,446
8,092

40
9,146
8,596

50
9,783
9,195

60
10,497
9,770

70
11,371
10,383

80
12,670
11,255

90
15,882
13,165

100
91,592
91,596

Das Fazit lautet: Die Akamai-Option ist realisierbar, bietet jedoch nicht die gleiche Stabilität und Geschwindigkeit wie unsere eigene Lösung in Verbindung mit Ali CDN.

Kleine Notizen

Einige Momente waren in der Geschichte nicht enthalten, aber ich möchte auch darüber schreiben.

Peking + Tokio und Hongkong

Wie ich oben sagte, haben wir einen IPSEC-Tunnel nach Hongkong (HK) getestet. Aber wir haben auch CEN bis HK getestet. Es kostet etwas weniger und ich habe mich gefragt, wie es zwischen Städten mit einer Entfernung von ~100 km funktionieren würde. Als interessant stellte sich heraus, dass die Latenz zwischen diesen Städten 100 ms höher ist als in unserer Originalversion (nach Taiwan). Auch Geschwindigkeit und Stabilität waren für Taiwan besser. Aus diesem Grund haben wir Hongkong als Backup-IPSEC-Region belassen.

Zusätzlich haben wir versucht, die folgende Installation zu installieren:

  • Kündigung von Kunden in Peking,
  • IPSEC und CEN nach Tokio,
  • Im Ali CDN wurde als Ursprung der Server in Peking angegeben.

Dieses Schema war nicht so stabil, obwohl es unserer Lösung in Bezug auf die Geschwindigkeit im Allgemeinen nicht nachstand. Was den Tunnel betrifft, habe ich selbst bei CEN, das stabil hätte sein sollen, zeitweise Rückgänge gesehen. Deshalb sind wir zum alten Schema zurückgekehrt und haben diese Inszenierung abgebaut.

Nachfolgend finden Sie Statistiken zur Latenz zwischen verschiedenen Regionen für verschiedene Kanäle. Vielleicht hat jemand Interesse daran.

IPsec
Ali cn-beijing <-> GCP asia-northeast1 – 193 ms
Ali cn-shenzhen <-> GCP asia-east2 – 91 ms
Ali cn-shenzhen <-> GCP us-east4 – 200 ms

CEN
Ali cn-beijing <-> Ali ap-northeast-1 – 54 ms (!)
Ali cn-shenzhen <-> Ali cn-hongkong – 6 ms (!)
Ali cn-shenzhen <-> Ali us-east1 – 216 ms

Allgemeine Informationen zum Internet in China

Als Ergänzung zu den eingangs im ersten Teil des Artikels beschriebenen Problemen mit dem Internet.

  • Das Internet ist in China recht schnell.
    • Die Schlussfolgerung wurde auf der Grundlage von Tests öffentlicher Wi-Fi-Netzwerke an verschiedenen Orten gezogen, an denen diese Netzwerke von einer großen Anzahl von Menschen genutzt werden.
    • Die Download- und Upload-Geschwindigkeiten zu Servern innerhalb Chinas betrugen etwa 20 Mbit/s bzw. 5-10 Mbit/s.
    • Die Geschwindigkeit zu Servern außerhalb Chinas ist mit weniger als 1 Mbit/s einfach dürftig.
  • Das Internet in China ist nicht sehr stabil.
    • Manchmal können Websites schnell geöffnet werden, manchmal langsam (zur gleichen Tageszeit an verschiedenen Tagen), sofern sich die Konfiguration nicht ändert. Wir haben dies am Beispiel von semrushchina.cn beobachtet. Dies ist auf Ali CDN zurückzuführen, das abhängig von der Tageszeit, der Position der Sterne usw. auch so und so funktioniert.
  • Mobiles Internet ist fast überall 4G oder 4G+. Fangen Sie es in der U-Bahn, im Aufzug – kurz gesagt, überall.
  • Es ist ein Mythos, dass chinesische Benutzer nur Domains in der .cn-Zone vertrauen. Das haben wir direkt von Anwendern gelernt.
    • Sie können sehen, wie http://baidu.cn Weiterleitung zu www.baidu.com (auch auf dem chinesischen Festland).
  • Viele Ressourcen sind tatsächlich blockiert. Primitiv: google.com, Facebook, Twitter. Aber viele Google-Ressourcen funktionieren (natürlich nicht auf allen). WLAN und VPN werden nicht verwendet (auf der Router-Seite sicher auch).
  • Viele „technische“ Domänen gesperrter Unternehmen funktionieren ebenfalls. Das bedeutet, dass Sie nicht immer leichtsinnig alle Google- und andere scheinbar blockierte Ressourcen ausschalten sollten. Sie müssen nach einer Liste verbotener Domänen suchen.
  • Sie haben nur drei große Internetbetreiber: China Unicom, China Telecom, China Mobile. Es gibt noch kleinere, deren Marktanteil jedoch unbedeutend ist

Bonus: endgültiges Lösungsdiagramm

Wie wir die Große Chinesische Firewall durchbrachen (Teil 3)

Ergebnis

Seit Beginn des Projekts ist ein Jahr vergangen. Wir begannen mit der Tatsache, dass unsere Website in China im Allgemeinen nicht normal funktionierte und GET Curl einfach 5.5 Sekunden dauerte.

Dann mit diesen Indikatoren in der ersten Lösung (Cloudflare):

Lösung
Betriebszeit
Median
75. Perzentil
95. Perzentil

Cloudflare
86.6
18er-Jahre
30er-Jahre
60er-Jahre

Letztendlich kamen wir zu folgenden Ergebnissen (Statistiken für den letzten Monat):

Lösung
Betriebszeit
Median
75. Perzentil
95. Perzentil

Ali CDN + CEN/IPsec + GLB
99.86
8.8er-Jahre
9.5er-Jahre
13.7er-Jahre

Wie Sie sehen, ist es uns noch nicht gelungen, eine 100-prozentige Betriebszeit zu erreichen, aber wir werden uns etwas einfallen lassen und Ihnen dann in einem neuen Artikel von den Ergebnissen berichten :)

Respekt an diejenigen, die alle drei Teile bis zum Ende gelesen haben. Ich hoffe, Sie fanden das alles genauso interessant wie ich, als ich es gemacht habe.

PS Vorherige Teile

Часть 1
Часть 2

Source: habr.com

Kommentar hinzufügen