Cumu avemu sfondatu u Great Chinese Firewall (Parte 3)

Hello!
Tutte e storii boni venenu à a fine. È a nostra storia di cumu avemu ghjuntu cù una suluzione per passà rapidamente u Firewall Chinese ùn hè micca eccezzioni. Per quessa, aghju prestu à sparte cun voi l'ultimu, a parte finale nantu à stu tema.

In a parte precedente avemu parlatu di parechji banchi di prova chì avemu ghjuntu cù i risultati chì anu datu. È avemu stabilitu nantu à ciò chì saria bonu per aghjunghje CDN! per a viscosità in u nostru schema.

Vi dicu cumu avemu pruvatu Alibaba Cloud CDN, Tencent Cloud CDN è Akamai, è ciò chì avemu finitu. E di sicuru, riassumemu.

Cumu avemu sfondatu u Great Chinese Firewall (Parte 3)

Alibaba Cloud CDN

Semu ospitati nantu à Alibaba Cloud è utilizate IPSEC è CEN da elli. Saria logicu per pruvà e so suluzioni prima.

Alibaba Cloud hà dui tipi di prudutti chì ponu cunvene per noi: CDN и DCDN. A prima opzione hè un CDN classicu per un duminiu specificu (subdominiu). A seconda opzione significa Percorso dinamico per CDN (U chjamu CDN dinamica), pò esse attivatu in u modu Full-site (per i duminii wildcard), cache ancu u cuntenutu staticu è accelera u cuntenutu dinamicu nantu à ellu stessu, vale à dì, a dinamica di a pagina serà ancu caricata da u fornitore. rete veloci. Questu hè impurtante per noi, perchè in fondu u nostru situ hè dinamicu, usa assai subdominii, è hè più cunvene per stabilisce un CDN una volta per l'"asteriscu" - *.semrushchina.cn.

Avemu digià vistu stu pruduttu in i primi fasi di u nostru prughjettu Chinese, ma tandu ùn era ancora u travagliu, è i sviluppori prumessu chì u pruduttu prestu prestu dispunibbili di tutti i clienti. È hà fattu.

In DCDN pudete:

  • cunfigurà a terminazione SSL cù u vostru certificatu,
  • permette l'accelerazione di u cuntenutu dinamicu,
  • cunfigurà in modu flessibile a cache di i fugliali statici,
  • purgà a cache,
  • socket web in avanti,
  • attivà a cumpressione è ancu HTML Beautifier.

In generale, tuttu hè u listessu cum'è cù l'adulti è i grandi fornitori di CDN.

Dopu chì l'Origine (u locu induve andaranu i servitori CDN edge) hè specificatu, tuttu ciò chì resta hè di creà un CNAME per l'asteriscu, riferimentu. all.semrushchina.cn.w.kunluncan.com (questu CNAME hè statu ricevutu in a cunsola Alibaba Cloud) è u CDN hà da travaglià.

Basatu nantu à i risultati di a prova, questu CDN ci hà aiutatu assai. E statistiche sò mostrate quì sottu.

dicisioni
Uptime
Mediu
75 percentile
95 percentile

Cloudflare
86.6
18s
30s
60s

IPsec
99.79
18s
21s
30s

CEN
99.75
16s
21s
27s

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

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

Quessi sò risultati assai boni, soprattuttu se paragunate cù ciò chì i numeri eranu à u principiu. Ma sapemu chì a prova di u navigatore di a versione americana di u nostru situ web www.semrush.com corre da l'USA in una media di 8.3s (un valore assai apprussimativu). Ci hè spaziu per migliurà. Inoltre, ci era ancu fornituri CDN chì eranu interessanti per pruvà.

Allora andemu tranquillamente à un altru giant in u mercatu cinese - Tencent.

Tencent Cloud

Tencent hè solu sviluppatu u so nuvulu - questu pò esse vistu da un picculu numeru di prudutti. Mentre l'utilizanu, vulemu pruvà micca solu u so CDN, ma ancu a so infrastruttura di rete in generale:

  • anu qualcosa simili à CEN?
  • Cumu funziona IPSEC per elli? Hè veloce, chì hè u uptime?
  • anu Anycast ?

Cumu avemu sfondatu u Great Chinese Firewall (Parte 3)

Fighjemu queste dumande separatamente.

CEN analogicu

Tencent hà un pruduttu Cloud Connect Network (CCN), chì vi permette di cunnette VPC da diverse regioni, cumprese regioni in Cina è fora di a Cina. U pruduttu hè avà in beta interna, è avete bisognu di creà un bigliettu per dumandà à cunnette à questu. Avemu amparatu da u sustegnu chì i cunti glubale (ùn parlemu micca di citadini chinesi o entità giuridiche) ùn ponu micca participà à u prugramma di prova beta è, in generale, cunnette una regione in Cina cù una regione fora. 1-0 in favore di Ali Cloud

IPsec

A regione più meridionale di Tencent hè Guangzhou. Avemu assemblatu un tunnel è cunnessu à a regione di Hong Kong in GCP (tandu sta regione era digià dispunibule). U sicondu tunelu in Ali Cloud da Shenzhen à Hong Kong hè statu ancu risuscitatu à u stessu tempu. Hè risultatu chì a rete Tencent a latenza à Hong Kong hè generalmente megliu (10ms) chì da Shenzhen à Hong Kong à Ali (120ms - chì?). Ma questu ùn hà micca in alcun modu accelerà u travagliu di u situ destinatu à travaglià à traversu Tencent è stu tunnel, chì in sè stessu era un fattu maravigghiusu è una volta hà dimustratu i seguenti: latenza - per a Cina ùn hè micca un indicatore chì vale veramente a pena. attente à quandu si sviluppa una suluzione per passà u firewall Chinese.

Anycast Internet Acceleration

Un altru pruduttu chì vi permette di travaglià via anycast IP hè Aia. Ma ùn hè ancu dispunibule per i cunti glubale, per quessa ùn vi dicu micca, ma sapendu chì un tali pruduttu esiste pò esse utile.

Ma a prova CDN hà dimustratu risultati abbastanza interessanti. U CDN di Tencent ùn pò micca esse attivatu in un situ sanu, solu in domini specifichi. Avemu criatu domini è mandatu u trafficu à elli:

Cumu avemu sfondatu u Great Chinese Firewall (Parte 3)

Hè risultatu chì questu CDN hà a seguente funzione: Ottimisazione di u trafficu transfruntieru. Questa funzione deve riduce i costi quandu u trafficu passa per u firewall cinese. As Origini L'indirizzu IP di Google GLB (GLB anycast) hè statu specificatu. Cusì, vulemu simplificà l'architettura di u prugettu.

I risultati eranu assai boni - à u livellu di Ali Cloud CDN, è in certi lochi ancu megliu. Questu hè surprisante, perchè se e teste sò successu, pudete abbandunà una parte significativa di l'infrastruttura, tunnelli, CEN, macchine virtuali, etc.

Ùn avemu micca rallegratu per longu, cum'è un prublema hè statu revelatu: e teste in Catchpoint falliu per u fornitore di Internet China Mobile. Da ogni locu avemu ricevutu un timeout via u CDN di Tencent. A currispundenza cù u supportu tecnicu ùn hà purtatu à nunda. Avemu pruvatu à risolve stu prublema per circa un ghjornu, ma nunda hà travagliatu.

Eru in Cina à quellu mumentu, ma ùn pudia truvà u Wi-Fi publicu nantu à a reta di stu fornitore per verificà personalmente u prublema. Altrimenti tuttu pareva prestu è bonu.
In ogni casu, per via di u fattu chì China Mobile hè unu di i trè più grandi operatori, avemu statu obligatu à rinvià u trafficu à Ali CDN.
Ma in generale, questa era una suluzione piuttostu interessante chì merita una prova più longa è una risoluzione di prublemi di stu prublema.

Akamai

L'ultimu fornitore CDN chì avemu pruvatu hè statu Akamai. Questu hè un grande fornitore chì hà a so reta in Cina. Di sicuru, ùn pudemu micca passà.

Cumu avemu sfondatu u Great Chinese Firewall (Parte 3)

Da u principiu, avemu accunsentutu cù Akamai per un periodu di prova in modu chì pudemu cambià u duminiu è vede cumu travaglià in a so reta. Descriveraghju u risultatu di tutte e teste in a forma di "Ciò chì mi piace" è "Ciò chì ùn aghju micca", è daraghju ancu i risultati di a prova.

Ciò chì mi piaceva:

  • I picciotti di Akamai sò stati assai utili in tutte e dumande è ci anu accumpagnatu in tutte e tappe di teste. Avemu sempre pruvatu à migliurà qualcosa da a nostra parte. Hanu datu boni cunsiglii tecnichi.
  • Akamai hè circa 10-15% più lento di a nostra suluzione via Ali Cloud CDN. Ciò chì hè impressiunanti hè chì in Origin for Akamai avemu specificatu l'indirizzu IP di GLB, vale à dì chì u trafficu ùn hà micca passatu per a nostra suluzione (potenzialmente pudemu abbandunà una parte di l'infrastruttura). Ma sempre, i risultati di a prova anu dimustratu chì sta suluzione hè peghju chè a nostra versione attuale (risultati cumparativi sottu).
  • Pruvatu sia Origin GLB sia Origin in Cina. E duie opzioni sò apprussimatamente listessi.
  • Ci sò Percorsu sicuru (ottimisazione automatica di u routing). Pudete accoglie un oggettu di prova in Origin, è i servitori Akamai Edge pruvaranu di coglie (GET regular). Per questi dumandesi, a velocità è altre metriche sò misurate, basate nantu à quale a reta di Akamai optimizeghja e rotte per chì u trafficu viaghja più veloce per u nostru situ è ​​era chjaru chì l'attivazione di sta funzione hà veramente un forte impattu in a velocità di u situ.
  • A versione di a cunfigurazione in l'interfaccia web hè bella. Pudete fà Comparare per versioni, fighjate diff. Vede e versioni precedenti.
  • Pudete sparghje una nova versione prima solu nantu à a reta di Akamai Staging - a listessa reta cum'è a pruduzzione, solu questu modu ùn affetterà micca l'utilizatori veri. Per questa prova, avete bisognu di spoof records DNS in a vostra macchina locale.
  • Velocità di scaricamentu assai veloce attraversu a so reta per i grandi schedarii statici, è, apparentemente, qualsiasi altri schedari. Un schedariu da a cache "frida" hè ricuperata parechje volte più veloce di u stessu schedariu da a cache "fredda" di Ali CDN. Da a cache "calda", a vitezza hè digià a stessa, più o minus.

Test 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

Test 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

Avemu nutatu chì a situazione in l'esempiu sopra dipende da parechji fatturi. À u mumentu di scrive stu puntu, aghju currettu a prova di novu. I risultati per e duie piattaforme eranu quasi uguali. Questu ci dice chì l'Internet in Cina, ancu per i grandi operatori è i fornituri di nuvola, si cumportanu di manera diversa da u tempu à u tempu.

À u puntu precedente, aghju aghjunghje un grande plus per Akamai: se Ali mostra lampi simili d'alta prestazione è prestazioni assai bassu (questu s'applica à Ali CDN, Ali CEN è Ali IPSEC), allora Akamai, ogni volta, ùn importa micca. cumu pruvà a so reta, tuttu funziona stabilmente.
Akamai hà assai copertura in Cina è travaglia attraversu parechji fornituri.

Ciò chì ùn mi piace micca:

  • Ùn mi piace micca l'interfaccia web è u modu di travagliu - hè cusì poviru. Ma in fondu vi abituate (probabilmente).
  • I risultati di a prova sò peggiu di u nostru situ.
  • Ci sò più errori durante e teste chì in u nostru situ (uptime sottu).
  • Ùn avemu micca i nostri servitori DNS in Cina. Dunque ci sò parechji errori in i testi per via di u timeout di risoluzione DNS.
  • Ùn furnisce micca i so intervalli IP -> ùn ci hè micca manera di registrà i curretti set_real_ip_from nantu à i nostri servitori.

Metriche (~ 3626 corse; tutte e metriche eccettu Uptime, in ms; statistiche per un periodu di tempu):

Fornitore CDN
Mediu
75%
95%
rispunniu
Risposta di a pagina web
Uptime
DNS
cunnette
Aspettate
Load
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

Distribuzione per percentile (in ms):

percentile
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

A cunclusione hè questu: l'opzione Akamai hè viable, ma ùn furnisce micca a listessa stabilità è rapidità cum'è a nostra propria suluzione accumpagnata da Ali CDN.

Picculi note

Certi mumenti ùn sò micca stati inclusi in a storia, ma vogliu scrive ancu nantu à elli.

Beijing + Tokyo è Hong Kong

Cumu l'aghju dettu sopra, avemu pruvatu un tunnel IPSEC à Hong Kong (HK). Ma avemu ancu pruvatu da CEN à HK. Custa un pocu menu, è mi dumandava cumu si travaglià trà e cità cù una distanza di ~ 100 km. Hè risultatu interessante chì a latenza trà queste cità hè 100ms più altu ch'è in a nostra versione originale (à Taiwan). A velocità, a stabilità era ancu megliu per Taiwan. In u risultatu, avemu lasciatu HK cum'è una regione IPSEC di salvezza.

Inoltre, avemu pruvatu à stallà a stallazione seguente:

  • terminazione di i clienti in Pechino,
  • IPSEC è CEN à Tokyo,
  • in Ali CDN u servitore in Pechino hè statu indicatu cum'è l'origine.

Stu schema ùn era micca cusì stabile, ancu s'ellu in termini di rapidità ùn era in generale micca inferitu à a nostra suluzione. In quantu à u tunelu, aghju vistu gocce intermittenti ancu per CEN, chì duveria esse stabile. Per quessa, avemu vultatu à u vechju schema è dismantellatu sta messa in scena.

Quì sottu sò statistiche nantu à a latenza trà e diverse regioni per i diversi canali. Forse qualcunu serà interessatu in questu.

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 — 54ms (!)
Ali cn-shenzhen <—> Ali cn-hongkong — 6 ms (!)
Ali cn-shenzhen <—> Ali us-east1 — 216 ​​ms

Informazione generale nantu à Internet in Cina

Cum'è un aghjuntu à i prublemi cù l'Internet descritti à u principiu, in a prima parte di l'articulu.

  • Internet in Cina hè abbastanza veloce in l'internu.
    • A cunclusione hè stata fatta nantu à a prova di e rete Wi-Fi publicu in parechji lochi induve queste rete sò aduprate da un gran numaru di persone.
    • A velocità di scaricamentu è di carica in i servitori in Cina era di circa 20 Mbit/s è 5-10 Mbit/s, rispettivamente.
    • A velocità à i servitori fora di a Cina hè simplicemente magra, menu di 1 Mbit/s.
  • Internet in Cina ùn hè micca assai stabile.
    • A volte i siti ponu apre rapidamente, à volte lentamente (à u stessu tempu di u ghjornu in parechji ghjorni), basta chì a cunfigurazione ùn cambia micca. Avemu osservatu questu cù l'esempiu di semrushchina.cn. Questu pò esse attribuitu à Ali CDN, chì travaglia ancu questu modu è chì sicondu l'ora di u ghjornu, a pusizione di e stelle, etc.
  • Internet mobile hè quasi in ogni locu 4G o 4G+. Catch it in u metro, ascensori - in corta, in ogni locu.
  • Hè un mitu chì l'utilizatori chinesi solu fiducia in i domini in a zona .cn. Avemu amparatu questu direttamente da l'utilizatori.
    • Pudete vede cumu http://baidu.cn redirezzione à www.baidu.com (in Cina continentale ancu).
  • Parechji risorse sò veramente bluccati. Primitivu: google.com, Facebook, Twitter. Ma assai risorse di Google travaglianu (di sicuru, micca in tutti i Wi-Fi è VPN ùn sò micca utilizati (in u latu di u router ancu, questu hè sicuru).
  • Parechji duminii "tecnichi" di corporazioni bluccati sò ancu travagliendu. Questu significa chì ùn deve micca sempre tagliatu imprudente tutte Google è altre risorse apparentemente bluccate. Avete bisognu di circà una lista di domini pruibiti.
  • Anu solu trè operatori Internet principali: China Unicom, China Telecom, China Mobile. Ci sò ancu più chjuchi, ma a so parte di u mercatu hè insignificante

Bonus: diagramma di suluzione finale

Cumu avemu sfondatu u Great Chinese Firewall (Parte 3)

U risultatu

Un annu hè passatu da u principiu di u prugettu. Avemu principiatu cù u fattu chì u nostru situ generalmente ricusatu di travaglià nurmalmente da a Cina, è simpricimenti GET curl hà pigliatu 5.5 seconde.

Allora, cù questi indicatori in a prima suluzione (Cloudflare):

dicisioni
Uptime
Mediu
75 percentile
95 percentile

Cloudflare
86.6
18s
30s
60s

Avemu eventualmente righjuntu i seguenti risultati (statistiche per l'ultimu mese):

dicisioni
Uptime
Mediu
75 percentile
95 percentile

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

Comu pudete vede, ùn avemu micca ancu pussutu ottene u 100% uptime, ma avemu da vene cun qualcosa, è dopu vi cuntaremu i risultati in un novu articulu :)

U rispettu à quelli chì leghjenu tutte e trè parti finu à a fine. Spergu chì avete trovu tuttu questu interessante cum'è aghju fattu quandu l'aghju fattu.

PS Parti precedenti

Parte di 1
Parte di 2

Source: www.habr.com

Add a comment