Cum am spart Marele Firewall al Chinei (Partea 3)

Hi!
Toate poveștile bune ajung la sfârșit. Și povestea noastră despre cum am venit cu o soluție pentru a trece rapid firewall-ul chinezesc nu face excepție. Prin urmare, mă grăbesc să vă împărtășesc ultimul, partea finală pe această temă.

În partea anterioară am vorbit despre multe bancuri de testare cu care am venit și ce rezultate au dat. Și ne-am hotărât asupra a ceea ce ar fi bine să adăugăm CDN! pentru vâscozitate în schema noastră.

Vă voi spune cum am testat Alibaba Cloud CDN, Tencent Cloud CDN și Akamai și cu ce am ajuns. Și bineînțeles, să rezumam.

Cum am spart Marele Firewall al Chinei (Partea 3)

Alibaba Cloud CDN

Suntem găzduiți pe Alibaba Cloud și folosim IPSEC și CEN de la ei. Ar fi logic să încercăm mai întâi soluțiile lor.

Alibaba Cloud are două tipuri de produse care ne pot potrivi: CDN и DCDN. Prima opțiune este un CDN clasic pentru un anumit domeniu (subdomeniu). A doua opțiune reprezintă Rută dinamică pentru CDN (Eu îl numesc CDN dinamic), poate fi activat în modul Full-site (pentru domeniile wildcard), de asemenea pune în cache conținutul static și accelerează conținutul dinamic pe sine, adică dinamica paginii va fi încărcată și prin intermediul furnizorului. rețele rapide. Acest lucru este important pentru noi, deoarece, practic, site-ul nostru este dinamic, folosește multe subdomenii și este mai convenabil să configurați un CDN o dată pentru „asterisc” - *.semrushchina.cn.

Văzusem deja acest produs în etapele anterioare ale proiectului nostru chinez, dar apoi nu funcționa încă, iar dezvoltatorii au promis că produsul va deveni în curând disponibil pentru toți clienții. Și a făcut-o.

În DCDN puteți:

  • configurați terminarea SSL cu certificatul dvs.,
  • permite accelerarea conținutului dinamic,
  • configurați în mod flexibil stocarea în cache a fișierelor statice,
  • curățați memoria cache,
  • redirecționare socket web,
  • activați compresia și chiar înfrumusețatorul HTML.

În general, totul este la fel ca și cu adulții și furnizorii mari de CDN.

După ce Originea (locul unde vor merge serverele CDN edge) este specificată, tot ce rămâne este să creați un CNAME pentru asterisc, cu referire all.semrushchina.cn.w.kunluncan.com (acest CNAME a fost primit în consola Alibaba Cloud) și CDN-ul va funcționa.

Pe baza rezultatelor testelor, acest CDN ne-a ajutat foarte mult. Statisticile sunt prezentate mai jos.

decizie
Uptime
Median
75 de procente
95 de procente

Cloudflare
86.6
Anii 18
Anii 30
Anii 60

IPsec
99.79
Anii 18
Anii 21
Anii 30

CEN
99.75
Anii 16
Anii 21
Anii 27

CEN/IPsec + GLB
99.79
Anii 13
Anii 16
Anii 25

Ali CDN + CEN/IPsec + GLB
99.75
Anii 10
Anii 12.8
Anii 17.3

Acestea sunt rezultate foarte bune, mai ales dacă le compari cu cifrele de la început. Dar știam că testul de browser al versiunii americane a site-ului nostru www.semrush.com rulează din SUA în medie de 8.3 secunde (o valoare foarte aproximativă). Există loc de îmbunătățire. Mai mult, au existat și furnizori CDN care au fost interesanți de testat.

Așa că trecem fără probleme la un alt gigant pe piața chineză - Tencent.

Norul Tencent

Tencent tocmai își dezvoltă cloudul - acest lucru se poate vedea dintr-un număr mic de produse. În timp ce îl folosim, am vrut să testăm nu numai CDN-ul lor, ci și infrastructura de rețea în ansamblu:

  • au ceva asemanator cu CEN?
  • Cum funcționează IPSEC pentru ei? Este rapid, care este timpul de funcționare?
  • au Anycast?

Cum am spart Marele Firewall al Chinei (Partea 3)

Să ne uităm la aceste întrebări separat.

CEN analogic

Tencent are un produs Cloud Connect Network (CCN), permițându-vă să conectați VPC-uri din diferite regiuni, inclusiv regiuni din interiorul și din afara Chinei. Produsul este acum în versiune beta internă și trebuie să creați un bilet prin care să vă conectați la el. Am aflat din asistență că conturile globale (nu vorbim despre cetățeni chinezi sau persoane juridice) nu pot participa la programul de testare beta și, în general, pot conecta o regiune din interiorul Chinei cu o regiune din afara. 1-0 în favoarea lui Ali Cloud

IPSEC

Cea mai sudica regiune a lui Tencent este Guangzhou. Am asamblat un tunel și l-am conectat la regiunea Hong Kong în GCP (atunci această regiune devenise deja disponibilă). Al doilea tunel din Ali Cloud de la Shenzhen la Hong Kong a fost, de asemenea, ridicat în același timp. S-a dovedit că prin intermediul rețelei Tencent latența către Hong Kong este în general mai bună (10 ms) decât de la Shenzhen la Hong Kong la Ali (120 ms - ce?). Dar acest lucru nu a accelerat în niciun fel lucrările site-ului care vizează lucrul prin Tencent și acest tunel, care în sine a fost un fapt uimitor și a dovedit încă o dată următoarele: latența - pentru China, acesta nu este un indicator care merită cu adevărat acordând atenție la dezvoltarea unei soluții pentru trecerea firewall-ului chinezesc.

Anycast Internet Acceleration

Un alt produs care vă permite să lucrați prin IP anycast este AIA. Dar nu este disponibil nici pentru conturile globale, așa că nu vă voi spune despre asta, dar știind că un astfel de produs există poate fi util.

Dar testul CDN a arătat niște rezultate destul de interesante. CDN-ul Tencent nu poate fi activat pe un site complet, doar pe anumite domenii. Am creat domenii și le-am trimis trafic:

Cum am spart Marele Firewall al Chinei (Partea 3)

S-a dovedit că acest CDN are următoarea funcție: Optimizarea traficului transfrontalier. Această caracteristică ar trebui să reducă costurile atunci când traficul trece prin firewall-ul chinez. La fel de Origine A fost specificată adresa IP a Google GLB (GLB anycast). Astfel, am dorit să simplificăm arhitectura proiectului.

Rezultatele au fost foarte bune – la nivelul Ali Cloud CDN, iar pe alocuri chiar mai bune. Acest lucru este surprinzător, deoarece dacă testele au succes, puteți abandona o parte semnificativă a infrastructurii, tuneluri, CEN, mașini virtuale etc.

Nu ne-am bucurat mult timp, deoarece a fost dezvăluită o problemă: testele în Catchpoint au eșuat pentru furnizorul de internet China Mobile. Din orice locație am primit un timeout prin intermediul CDN-ului Tencent. Corespondența cu suportul tehnic nu a dus la nimic. Am încercat să rezolvăm această problemă timp de aproximativ o zi, dar nimic nu a funcționat.

Eram în China în acel moment, dar nu am putut găsi Wi-Fi public în rețeaua acestui furnizor pentru a verifica personal problema. În rest, totul arăta rapid și bine.
Cu toate acestea, din cauza faptului că China Mobile este unul dintre cei mai mari trei operatori, am fost nevoiți să returnăm traficul către Ali CDN.
Dar, în general, aceasta a fost o soluție destul de interesantă care merită testare și depanare mai lungă a acestei probleme.

Akamai

Ultimul furnizor CDN pe care l-am testat a fost Akamai. Acesta este un furnizor uriaș care își are rețeaua în China. Desigur, nu am putut trece peste asta.

Cum am spart Marele Firewall al Chinei (Partea 3)

De la bun început, am convenit cu Akamai pentru o perioadă de probă, astfel încât să putem schimba domeniul și să vedem cum va funcționa în rețeaua lor. Voi descrie rezultatul tuturor testărilor sub forma „Ce mi-a plăcut” și „Ce nu mi-a plăcut” și voi oferi și rezultatele testului.

Ce ne-a plăcut:

  • Băieții de la Akamai au fost de mare ajutor în toate întrebările și ne-au însoțit în toate etapele testării. Încercam constant să îmbunătățim ceva din partea noastră. Au dat sfaturi tehnice bune.
  • Akamai este cu aproximativ 10-15% mai lent decât soluția noastră prin Ali Cloud CDN. Ceea ce este impresionant este că în Origin for Akamai am specificat adresa IP a GLB, adică traficul nu a trecut prin soluția noastră (potențial am putea abandona o parte din infrastructură). Dar totuși, rezultatele testelor au arătat că această soluție este mai proastă decât versiunea noastră actuală (rezultate comparative mai jos).
  • Testat atât Origin GLB, cât și Origin în China. Ambele opțiuni sunt aproximativ aceleași.
  • Există Traseu sigur (optimizare automată de rutare). Puteți găzdui un obiect de testare pe Origin, iar serverele Akamai Edge vor încerca să-l ridice (GET obișnuit). Pentru aceste solicitări, se măsoară viteza și alte metrici, pe baza cărora rețeaua Akamai optimizează rutele astfel încât traficul să meargă mai repede pentru site-ul nostru și a fost clar că activarea acestei funcții a avut într-adevăr un impact puternic asupra vitezei site-ului.
  • Versiunea configurației în interfața web este grozavă. Puteți face Comparare pentru versiuni, uitați-vă la dif. Vedeți versiunile anterioare.
  • Puteți lansa o nouă versiune mai întâi numai în rețeaua Akamai Staging - aceeași rețea ca cea de producție, doar că astfel nu va afecta utilizatorii reali. Pentru acest test, trebuie să falsificați înregistrările DNS pe computerul dvs. local.
  • Viteză de descărcare foarte mare prin rețeaua lor pentru fișiere statice mari și, aparent, pentru orice alte fișiere. Un fișier din memoria cache „rece” este preluat de multe ori mai rapid decât același fișier din memoria cache „rece” a Ali CDN. Din memoria cache „fierbinte”, viteza este deja aceeași, plus sau minus.

Testul Ali CDN:

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

Testul Akamai:

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

Am observat că situația din exemplul de mai sus depinde de diverși factori. La momentul scrierii acestui punct, am rulat din nou testul. Rezultatele pentru ambele platforme au fost aproximativ aceleași. Acest lucru ne spune că Internetul din China, chiar și pentru operatorii mari și furnizorii de cloud, se comportă diferit din când în când.

La punctul anterior, voi adăuga un mare plus pentru Akamai: dacă Ali prezintă flash-uri similare de înaltă performanță și performanță foarte scăzută (acest lucru se aplică pentru Ali CDN, Ali CEN și Ali IPSEC), atunci Akamai, de fiecare dată, indiferent de cum le testez rețeaua, totul funcționează stabil.
Akamai are o mare acoperire în China și lucrează prin mulți furnizori.

Ce nu i-a plăcut:

  • Nu-mi place interfața web și modul în care funcționează - este atât de slabă. Dar practic te obisnuiesti (probabil).
  • Rezultatele testelor sunt mai proaste decât site-ul nostru.
  • Există mai multe erori în timpul testelor decât pe site-ul nostru (uptime de mai jos).
  • Nu avem propriile noastre servere DNS în China. Prin urmare, există multe erori în teste din cauza timpului de expirare a rezoluției DNS.
  • Ei nu oferă intervalele lor IP -> nu există nicio modalitate de a le înregistra pe cele corecte set_real_ip_from pe serverele noastre.

Valori (~3626 rulări; toate valorile, cu excepția timpului de funcționare, în ms; statistici pentru o singură perioadă de timp):

Furnizor CDN
Median
75%
95%
Răspuns
Răspuns pe pagina web
Uptime
DNS
Conectați
Așteaptă
A incarca
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

Distribuție după percentile (în ms):

percentila
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

Concluzia este următoarea: opțiunea Akamai este viabilă, dar nu oferă aceeași stabilitate și viteză ca propria noastră soluție cuplată cu Ali CDN.

Note mici

Unele momente nu au fost incluse în poveste, dar aș vrea să scriu și despre ele.

Beijing + Tokyo și Hong Kong

După cum am spus mai sus, am testat un tunel IPSEC către Hong Kong (HK). Dar am testat și CEN la HK. Costă puțin mai puțin și mă întrebam cum ar funcționa între orașe cu o distanță de ~100 km. Sa dovedit a fi interesant că latența dintre aceste orașe este cu 100 ms mai mare decât în ​​versiunea noastră originală (în Taiwan). Viteza, stabilitatea au fost, de asemenea, mai bune pentru Taiwan. Drept urmare, am părăsit HK ca regiune IPSEC de rezervă.

În plus, am încercat să instalăm următoarea instalare:

  • rezilierea clienților din Beijing,
  • IPSEC și CEN către Tokyo,
  • în Ali CDN serverul din Beijing a fost indicat ca origine.

Această schemă nu a fost atât de stabilă, deși în ceea ce privește viteza, în general, nu a fost inferioară soluției noastre. În ceea ce privește tunelul, am văzut scăderi intermitente chiar și pentru CEN, care ar fi trebuit să fie stabil. Prin urmare, am revenit la vechea schemă și am demontat această punere în scenă.

Mai jos sunt statistici despre latența dintre diferite regiuni pentru diferite canale. Poate cineva va fi interesat de el.

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

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

Informații generale despre Internet în China

Ca o completare la problemele cu Internetul descrise chiar la început, în prima parte a articolului.

  • Internetul în China este destul de rapid în interior.
    • Concluzia a fost făcută pe baza testării rețelelor Wi-Fi publice în diferite locații în care aceste rețele sunt folosite de un număr mare de persoane.
    • Vitezele de descărcare și încărcare pe serverele din China au fost de aproximativ 20 Mbit/s, respectiv 5-10 Mbit/s.
    • Viteza către serverele din afara Chinei este pur și simplu slabă, mai mică de 1 Mbit/s.
  • Internetul în China nu este foarte stabil.
    • Uneori site-urile se pot deschide rapid, alteori încet (la aceeași oră a zilei în zile diferite), cu condiția ca configurația să nu se schimbe. Am observat acest lucru cu exemplul semrushchina.cn. Acest lucru poate fi atribuit lui Ali CDN, care funcționează și așa și așa în funcție de ora din zi, de poziția stelelor etc.
  • Internetul mobil este aproape peste tot 4G sau 4G+. Prinde-l în metrou, lifturi - pe scurt, peste tot.
  • Este un mit că utilizatorii chinezi au încredere doar în domeniile din zona .cn. Am aflat acest lucru direct de la utilizatori.
    • Puteți vedea cum http://baidu.cn redirecționați către www.baidu.com (și în China continentală).
  • Multe resurse sunt într-adevăr blocate. Primitive: google.com, Facebook, Twitter. Dar multe resurse Google funcționează (desigur, nu pe toate rețelele Wi-Fi și VPN nu este folosit (și pe partea routerului, asta este sigur).
  • Funcționează și multe domenii „tehnice” ale corporațiilor blocate. Acest lucru înseamnă că nu ar trebui să tăiați întotdeauna cu nesăbuință toate resursele Google și alte resurse aparent blocate. Trebuie să căutați o listă de domenii interzise.
  • Au doar trei operatori principali de internet: China Unicom, China Telecom, China Mobile. Există și altele mai mici, dar cota lor de piață este nesemnificativă

Bonus: diagrama soluției finale

Cum am spart Marele Firewall al Chinei (Partea 3)

Total

A trecut un an de la demararea proiectului. Am început cu faptul că site-ul nostru a refuzat în general să funcționeze în mod normal din China și pur și simplu GET curl a durat 5.5 secunde.

Apoi, cu acești indicatori în prima soluție (Cloudflare):

decizie
Uptime
Median
75 de procente
95 de procente

Cloudflare
86.6
Anii 18
Anii 30
Anii 60

Am ajuns în cele din urmă la următoarele rezultate (statistici pentru ultima lună):

decizie
Uptime
Median
75 de procente
95 de procente

Ali CDN + CEN/IPsec + GLB
99.86
Anii 8.8
Anii 9.5
Anii 13.7

După cum puteți vedea, încă nu am reușit să atingem un timp de funcționare de 100%, dar vom veni cu ceva și apoi vă vom spune despre rezultate într-un nou articol :)

Respect celor care citesc toate cele trei părți până la sfârșit. Sper că ați găsit toate acestea la fel de interesante ca și mine când le-am făcut.

P.S. Piese anterioare

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

Sursa: www.habr.com

Adauga un comentariu