Quomodo perrupimus Magnus Firewall Sinarum (Part 1)

Всем привет!

Nikita in tactus systematis machinalis e comitatu est SEMrush. Hodie tibi narrabo quomodo aggressi sumus munus obtinendi stabilitatem semrush.com servitutis nostrae in Sinis, et quas difficultates in eius exsecutione invenimus (locus datus centri nostri in oram orientali Civitatum Foederatarum).

Magna haec erit narratio, in plures articulos divisa. Dicam tibi quomodo omnia nobis acciderunt: ex officio omnino non-muneris Sinarum, indicibus faciendis servitii in ambitu Americanorum versionis pro Americanis. Promitto interesting et utilis erit. Eamus igitur.

Quaestiones de Sinensi Internet

Etiam extremus homo e specialibus retis administrationis audivit de retis Magna Firewall Sinarum. Wow, frigus sonat, vox? Quid autem sit et quomodo actu operatur quaestio est magis perplexa. Plures articulos in Interrete huic deditos invenire potes, sed ex parte technica huius muri structura nullibi describitur. Quod tamen mirum non est. Ilicet fateor me in exitu operis annui innixum, quomodo operatur, exacte dicere non possum, sed de meis commentis et conclusionibus practicis tibi dicere possum. Et nos de hoc fire muro rumoribus incipiemus.

Multae opiniones de hoc ipso firewall. Colligamus praecipuum et gratissimum studium eorum in unum album:

  • Google, Facebook, Twitter aliaque similia officia interclusa sunt nec in Sinis operantur.
  • Quaelibet negotiatio extra Sinas et in Sinas abiens est parsed et limitata per machinam discendi (in casu negotiationis suspectae), quod valde retardat eum per terminum (negotiationis) transeuntem.
  • Sinenses intelligentiae institutiones quaslibet mercaturas encryptas per eorum fire parietem transeuntes trucidabunt.
  • VPN cuniculos, IPSEC cuniculos instabiles sunt, fragores et assidue impediuntur.
  • Quo simplicior encryption, quo simplicior locutio ad authenticas encrypt negotiationis usus est, eo celerius per firewall Sinensem percurrit.

Hic est quod invenimus de istis rumoribus.

  • Google, Facebook, Twitter et alia huiusmodi officia quidem obstructa sunt (tuo KO), sed multae ditiones technicae Google, exempli gratia, interdictum et opus non sunt (eadem gstatic.com). Conclusio sequitur ex hoc: omnia Google aliaque facultates quae obstructae videntur ne temere excidas.
  • Negotiatio quaelibet terminus transiens vere graves moras suo tempore addit. Vide duos eventus. Unus situs, una pagina, simplex GET Crispum' om. Mensura prima ab ipsa Sina fuit (pulchra Shenzhen urbs). Secundum ab extra Hong Kong (principatum habet, nec est inter ipsum et mundum murus). Distantia inter urbes recta linea est circiter 30-40 km.

nikita@china-shenzhen:~# curl -o /dev/null -w@curl_time "https://www.semrush.com/info/ebay.com"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  381k    0  381k    0     0  71824      0 --:--:--  0:00:05 --:--:-- 82832
time_namelookup:  0.004500
time_connect:  0.169342
time_appconnect:  0.723189
time_pretransfer:  0.723499
time_redirect:  0.000000
time_starttransfer:  1.532912
----------
time_total:  5.443407
----------
size_download:  390968 Bytes
speed_download:  71824.000B/s

nikita@china-hongkong:~# curl -o /dev/null -w@curl_time "https://www.semrush.com/info/ebay.com"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  319k    0  319k    0     0  2555k      0 --:--:-- --:--:-- --:--:-- 2573k
time_namelookup:  0.029366
time_connect:  0.030742
time_appconnect:  0.047310
time_pretransfer:  0.047388
time_redirect:  0.000000
time_starttransfer:  0.120793
----------
time_total:  0.124871
----------
size_download:  326755 Bytes
speed_download:  2616740.000B/s

Ut attendere time_connect. Et generaliter effectum vides: murus addit secundas 4 extra secundas, quae est monstrosa longa.

  • VPN et IPEC cuniculos saepe deficiunt. De hoc paulo post ac fusius loquar. VPN servientes qui ab utentibus utuntur temporis praecluduntur (plerumque intra diem post initium usus).
  • Opinio ab hominibus in Sinis habitantibus recepta est quod encryption negotiationis simplicior eo celerius per fines transit, quia facile intellegitur nihil esse illicitum. Eodemque modo "mundum" commercium maiorem latitudinem et meatum celeritatem recipit, sordidum autem commercium, in quo nihil intelligi potest, e contra tardiorem transitum recipit. Exempli gratia utar Crispum ad ifconfig.co per HTTPS et HTTP protocol.

curl -o /dev/null -w@curl_time "https://ifconfig.co/"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    13  100    13    0     0      2      0  0:00:06  0:00:05  0:00:01     3
time_namelookup:  0.004305
time_connect:  0.397465
time_appconnect:  5.149305
time_pretransfer:  5.149393
time_redirect:  0.000000
time_starttransfer:  5.568847
----------
time_total:  5.568893
----------
size_download:  13 Bytes
speed_download:  2.000B/s

curl -o /dev/null -w@curl_time "http://ifconfig.co/"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    13  100    13    0     0     28      0 --:--:-- --:--:-- --:--:--    28
time_namelookup:  0.004282
time_connect:  0.212457
time_appconnect:  0.000000
time_pretransfer:  0.212484
time_redirect:  0.000000
time_starttransfer:  0.450565
----------
time_total:  0.450620
----------
size_download:  13 Bytes
speed_download:  28.000B/s

Differentia 5 secundis pro totali download tempore 13 bytes. Praeterea cum pluries tale experimentum facere potes, animadvertere HTTP in eodem fere tempore compleri, dum in HTTPS situs interdum in 3, 5, 10 atque etiam 17 secundis respondet. Interdum SSL errores eveniunt;

Unknown SSL protocol error in connection to ifconfig.co:443.

Quid igitur habemus;

  • Problemata a firewall Sinensi condita supra descripta sunt.
  • Pings ad facultates externas et intra cuniculos periodice evanescunt.
  • Latentia inter duo puncta perpetuo variatur et saepe simpliciter vagus est. Cum diversas civitates/regiones coniungentes, exspectas, secundum locorum situm regionum minus moram futuram, sed prorsus contrariam.
  • Interreti et communicationis canales vel celeriter vel tarde sunt. Exigua dependentia est a tempore diei ac feriae, sed non semper.
  • DNS petitiones terrarum exteriores e Sinis interdum permissas excedunt.

Imago, quae emergit, simpliciter est "egregium".

Mauris interdum, ut ante dixi, in Civitatibus Foederatis Americae orientalis est, et tota SEMrush ex justo productorum inter se cohaerentium consistit, tergum, frontibus, databases, et haec omnia in DC et nubibus. Nos, ut turmae administratorum systematis, munus celeriter in Sinis magno cum labore suscepti sunt.

Ad quaestionem magni momenti respondendum habuimus: potestne parvo sumptu acquirere et solvere problemata omnia cum Internet Sinensi et firewall ad retis/nubis/servientem gradum?

Nos coepi a sumptione ICP-licenses.

ICP licentia

Ut servitium tuum in Sinis (continentiis Sinis) et probationibus exercere valeas, primum licentiam pro ditione obtinenda ICP debes.

Si negotiatio usoris tui siti intra continentem Sinas terminatur, et si dominium tuum licentiam ICP non habet, negotiatio tua in parte ISP/hostilis claudetur. Interestingly, licentia ICP provisor specificum includit, sit Cloudflare vel Alibaba Cloud. Si ergo Cloudflare licentiam acceperis et cum eis locum tuum hosted, ad Alibaba Cloud "seamlessly" non poteris. Huic licentiae obnoxius aliam addere necesse erit.

Accepta licentia pro dominio ICP, ascendere potuimus cum notionibus technicis et solutionibus specificatis.

Testis solutiones

Sed antequam optiones choragias directe creas, scapulas converte, optimize situs actionem et celeritatem, opus est instrumentum ad id probandum eligere ut videas quid actionum nostrorum emendare vel e contra situs effectus peioratur.

Nostra probatio instrumentum habuit ad duo praecipua requisita:

  • probata ex Sinis currere possit,
  • necesse est ut navigatrum probat.

Sic invenimus Catchpoints! Habent optimam coverage locorum per orbem terrarum. In Sinis, probationes etiam ex 100500 provinciis per hoc instrumentum detegere possunt. Cuique plura alia provisoribus + facultas faciendi narum-tests (sicut aliquid virtualis apparatus in Mauris interdum) and Lastmile-tests (quam proxime ad condiciones usoris, aka workstation). Hoc genus probat carior est.

Pacto annuo confecto (minus quam id fieri non potest), instrumento studere incepimus. Ingenue nos eius functionem iucunde mirati sumus. Potes currere:

  • Dns probat;
  • Interretiales probationes (probat pasco, simplex GET/post, emulatio clientis mobilis, etc.);
  • Transactionales compescit (exempli gratia login);
  • API probat,
  • Ping, traceroute, NTP, etc.

Omnia enumerare non potes. Ac praesertim, quaelibet probatio satis bene nativus esse potest addito fasciculo capitis et aliis parametris. In output est ingens moles notitiarum quae testem tuam plene describit. Si loquimur de rebus maxime interesting nobis (probat pasco), effectus includit:

  • Connect, expecta, onera, SSL, DNS tempus;
  • TTFB, TTLB, Documentum completum, redde tempus, dom onus;
  • Responsio (res proxima ad primum Byte tempus), Webpage Responsio (quod propinquus ad tempus Last Byte);
  • Quodvis cent, mediocris, tempus Medus
  • ETC.

Haec igitur omnia metrica magna sunt ad videndum mutationes et intelligentias an res meliores obtinuerint. Nos maxime intuens Responsio, Webpage Responsio, Medus, 75 et 95 Percentiles.

Magna quaestio quae ab initio fuit in aere; Credis Catchpoint?? Hoc instrumentum refert realem locum loading celeritatis in Sinis ex diversis urbibus, an tantum est aliquod genus experimenti in vacuo quod nihil ad realem usoris experientiam pertinet?
Magna quaestio haec est, quia in Russia esse paene impossibile est ut certo scias locum e Sinis operari. Faciens tibialia-procuratorem per machinam virtualem, finis effectus est ut situs oneret intra duos minutas, quod est simpliciter ingratum pro probationibus, ideo sola optionis manualis probatio est Crispum et simplex GET a console cum timer. . Hoc adiuvat quia hic testis bene ostendit celeritatem solutionis retiaculae, et si etiam probata navigatoris sunt, ipsum bonum est.

Postea in Sinas venimus et pro comperto habemus Catechpoint confidere potes, satis accurate indicat reales effectus indicios.

Cloudflare Sina Network

Cum Cloudflare feliciter utimur pro semrush.com principale domain, constituimus statim eorum plumam vocatam experiri Sina Network. Haec optio tantum datur inceptis locis in petitione separata et pro feudo addito. Est etiam solum in promptu sitis qui licentiam aptam ICP habent quae Cloudflare sicut provisor enumerat. Postquam id sinit, "Chinese CDN" ex Cloudflare praesto fit pro situ - commercii regionum Sinensium regionum ad proximas POP (Puncta praesentiae) CF, ac deinde per reticulas vel retia provisorum/socium origini traditur. .

Figura huius scamni examinis infra exhibetur.

Hic optio magnam nobis. Evenit ut secunda domain etiam pro CF erit, quae numerum solutionum in societatis usu non addit, ac etiam infrastructuram paene non implicat.

Currens navigatrum probat et hoc est quod factum est;

Ruber adamantibus defectis test sunt. Tabulae infrascriptae sunt DNS errores (propono timeout). Peccata in summo sunt timeouts.

Uptime: 86.6
Medus: 18s
75 Percentile: 29.3s
95 Percentile: 60s

Medus, oneratisque remotus est reCaptcha (Google ministerium in Sinis obstructum) ab 28 ad 18 secundis decrevit. Sed hi eventus adhuc terribiles sunt, cum idem experimentum semrush.com (ab US) minus quam 10 seconds pro 95% usorum (ex US) in eadem pagina (static + dynamica) dedit.

Intrare potes in se test et vultus cataracta aliosque accuratiores parametri. Rationes errorum investigare coepimus, et si omnia per tempus magis vel minus perspicua sunt: ​​Penitus in Sinis "ingreditur et egreditur", propterea quod celeritas nexus et onerationum rerum extranearum instabilis est et inaequabilis; tunc DNS errores vehementer nos admirati sunt. Invenimus that Po Cloudflare actu in Sinis sitae sunt, locus inscriptionis ad quemlibet IP, sed DNS servientes Americani sunt, unde DNS petitiones trans fines transire coguntur, ideo interdum deficiunt.

Hac quaestione declarata cum CF., evenit ut DNS servientes suos in Sinis non habentet quando incognitum sit.

Ideo decrevimus DNS Cloudflare solum probare et Cloudflare mechanismum operantem pro nostro situ ad "mutatam"DNS solum" Hic modus est cum Cloudflare per se negotiationem procuratorem non facit, qui significat praesidium DDoS, CDN et alia lineamenta non praebet, et in modum servientis regularis DNS operatur.

Hoc schema schematically ostenditur in sequenti figura. Figura cognitionis emergentis cogitat quod DNS Cloudflare servientes post murum fired sunt.

In Catchpoint cucurrimus probationes simplices (non probat pasco), quae multa peccata monstraverunt. DNS per eosdem errores causati sunt.

Nos coepi debugging hos errores utendo metalla fodiuntur: et invenit quod in prima petitione oratio recte determinata est, et repetita petitio singulis vicibus accipimus SERVFAIL и non inventum. Quid hoc subito accidit?

root@iZwz97n2wgbp61qucbfrjsZ:~# host semrushchina.cn
semrushchina.cn has address 220.170.186.192
Host semrushchina.cn not found: 2(SERVFAIL)
root@iZwz97n2wgbp61qucbfrjsZ:~# host semrushchina.cn
semrushchina.cn has address 220.170.186.192
Host semrushchina.cn not found: 2(SERVFAIL)
root@iZwz97n2wgbp61qucbfrjsZ:~# host semrushchina.cn
semrushchina.cn has address 220.170.186.192
Host semrushchina.cn not found: 2(SERVFAIL)
root@iZwz97n2wgbp61qucbfrjsZ:~# host semrushchina.cn
semrushchina.cn has address 220.170.186.192
Host semrushchina.cn not found: 2(SERVFAIL)

Non sunt tales errores cum interrogationes Cloudflare NS servientes directe:

root@iZwz97n2wgbp61qucbfrjsZ:~# for i in `seq 1 2`; do host semrushchina.cn ray.ns.cloudflare.com.; done
Using domain server:
Name: ray.ns.cloudflare.com.
Address: 173.245.59.138#53
Aliases: 

semrushchina.cn has address 220.170.186.192
semrushchina.cn has address 220.170.186.192
Using domain server:
Name: ray.ns.cloudflare.com.
Address: 173.245.59.138#53
Aliases: 

semrushchina.cn has address 220.170.186.192
semrushchina.cn has address 220.170.186.192

Id significat quaestionem ex parte "loci" DNS servientis vel provisoris ministrantis esse.
Inquisitio ulterior revelatum est SERVFAIL dabimus tibi in proposito AAAA-records.

Contigit quod petens a Cloudflare AAAA-record non esse in regione, Cloudflare respondit А-an viscus quod est error et non-obsequium cum RFC. Cur localis resolvens (xxxxnon placet, et respondit SERVFAIL. Hic mores clare clare conspiciuntur in indice infra:

root@iZwz97n2wgbp61qucbfrjsZ:~# dig -t AAAA semrushchina.cn @x.x.x.x

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -t AAAA semrushchina.cn @x.x.x.x
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 55467
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;semrushchina.cn.               IN      AAAA

;; Query time: 334 msec
;; SERVER: x.x.x.x#53(x.x.x.x)
;; WHEN: Tue Aug 14 23:38:50 CST 2018
;; MSG SIZE  rcvd: 44

root@iZwz97n2wgbp61qucbfrjsZ:~# dig -t AAAA semrushchina.cn @dana.ns.cloudflare.com.

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -t AAAA semrushchina.cn @dana.ns.cloudflare.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63944
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;semrushchina.cn.               IN      AAAA

;; ANSWER SECTION:
semrushchina.cn.        300     IN      A       220.170.186.192

;; Query time: 185 msec
;; SERVER: 173.245.58.105#53(173.245.58.105)
;; WHEN: Tue Aug 14 23:43:03 CST 2018
;; MSG SIZE  rcvd: 60

Cimex Cloudflare renuntiavimus, idque post aliquod tempus figimus. Evenit ut interesting: in momento adhuc nullum IPv6 subsidium in Sinis est, ita Cloudflare non potuit suam electronicam IPv6 ibi in responsione ad petitionem edicere. AAAA-records. Ad extremum omnia ita statuerunt ut Cloudflare pro Sinis respondere coepisset NODATA ad has petitiones.

Sic errores DNS in Catchpoint probat decrescentes acriter, sed non perfecte. Timeouts adhuc hic sunt;

Et aliam solutionem quaerebamus.

In altera parte dicam tibi quomodo Sinensium nubem probavimus Cloud Alibabaquomodo, ope parvae "magicae" Nginx, potuimus cito solutiones creare PoC (Probatio Conceptus) quomodo solutiones Multi-Cloud creavimus, quarum una tandem multum adiuvit ad opus servitii accelerandum. de Sinis.

Subsisto tuned!

Partes proximae

Part 2

Source: www.habr.com

Emptum certos hospites pro locis cum praesidio DDoS, VPS VDS servers 🔥 Eme hospitium interretiale fidum cum praesidio DDoS, servitores VPS VDS | ProHoster