Webb-HighLoad - hur vi hanterar trafiken frÄn tiotusentals domÀner.

Legitim trafik i DDoS-Guard-nÀtverket har nyligen överstigit hundra gigabit per sekund. Nu genererar 50 % av hela vÄr trafik webbservicen frÄn kunder. Det handlar om mÄnga tiotusentals domÀner, vÀldigt olika, och i de flesta fall som krÀver en individuell strategi.

Under ytan - hur vi hanterar frontnodarna och levererar SSL-certifikat för hundratusentals webbplatser.

Webb-HighLoad - hur vi hanterar trafiken frÄn tiotusentals domÀner.

Att konfigurera fronten för en enda webbplats, Àven en mycket stor, Àr enkelt. Vi tar nginx eller haproxy eller lighttpd, konfigurerar enligt guider och glömmer det. Om vi behöver Àndra nÄgot - gör vi en reload och glömmer igen.

Allt förÀndras nÀr du i realtid hanterar stora mÀngder trafik, bedömer legitimiteten av förfrÄgningar, komprimerar och cachar anvÀndarinnehÄll, och samtidigt Àndrar instÀllningar flera gÄnger per sekund. AnvÀndaren vill se resultatet pÄ alla externa noder direkt efter att hen Àndrat instÀllningarna i sitt konto. Dessutom kan anvÀndaren ladda upp flera tusen (ibland tiotusentals) domÀner med individuella trafikbehandlingsparameter via API. Allt detta mÄste ocksÄ fungera direkt, bÄde i Amerika, Europa och Asien - en uppgift som inte Àr sÀrskilt trivial, med tanke pÄ att det bara i Moskva finns flera fysiskt Ätskilda filtreringsnoder.

Varför etablera mÄnga stora, pÄlitliga noder över hela vÀrlden?

  • Kvaliteten pĂ„ servicen för kundtraffic - förfrĂ„gningar frĂ„n USA mĂ„ste bearbetas just i USA (inklusive med avseende pĂ„ attacker, parsing och andra anomalier), och inte dirigeras till Moskva eller Europa, vilket oförutsĂ€gbart ökar latensen för behandlingen.
  • Angreppstrafik mĂ„ste lokaliseras - transitoperatörer kan degradera under attacker, vars volym ofta överstiger 1Tbps. Att transportera angreppstrafik över transatlantiska eller transasiatiska lĂ€nkar Ă€r ingen bra idĂ©. Vi har haft verkliga fall dĂ€r Tier-1-operatörer har sagt: "De angreppsmĂ€ngder ni tar emot Ă€r farliga för oss". Det Ă€r just dĂ€rför vi tar emot inkommande strömmar sĂ„ nĂ€ra deras kĂ€llor som möjligt.
  • StrĂ€nga krav pĂ„ driftsĂ€kerhet – rensningscentraler fĂ„r inte vara beroende av varandra eller av lokala hĂ€ndelser i vĂ„r snabbt förĂ€nderliga vĂ€rld. Strömavbrott pĂ„ alla 11 vĂ„ningar i MMT9 i en vecka? – Ingen fara. Ingen kund som inte har fysisk anslutning i just den hĂ€r platsen kommer att pĂ„verkas, och webbtjĂ€nsterna kommer inte att drabbas under nĂ„gra omstĂ€ndigheter.

Hur hanterar man allt detta?

TjĂ€nstekonfigurationer mĂ„ste spridas sĂ„ snabbt som möjligt (idealiskt omedelbart) till alla frontnoder. Man kan inte bara ta och rekonstruera textkonfigurationer och starta om demonerna vid varje Ă€ndring – samma nginx hĂ„ller avslutande processer (worker shutting down) i flera minuter (eller till och med timmar om det finns lĂ„nga websocket-sessioner).

Vid omstart av nginx-konfigurationen Àr följande bild helt normal:

Webb-HighLoad - hur vi hanterar trafiken frÄn tiotusentals domÀner.

Om minnesanvÀndning:

Webb-HighLoad - hur vi hanterar trafiken frÄn tiotusentals domÀner.

Gamla arbetare anvĂ€nder minne, bland annat, vilket inte Ă€r linjĂ€rt beroende av antalet anslutningar – det Ă€r normalt. NĂ€r de klientanslutningar stĂ€ngs, kommer detta minne att frigöras.

Varför var detta inte ett problem nÀr nginx just började utvecklas? Det fanns varken HTTP/2, WebSocket, eller massor av lÄnga keep-alive anslutningar. 70% av vÄr webtrafik Àr HTTP/2, vilket medför mycket lÄnga anslutningar.

Lösningen Ă€r enkel – att inte anvĂ€nda nginx, inte hantera fronterna baserat pĂ„ textfiler, och absolut inte skicka komprimerade textkonfigurationer över transatlantiska kanaler. Kanalerna Ă€r förstĂ„s garanterade och reserverade, men det gör dem inte mindre transkontinentala.

Vi har en egen front-server-balancer, vars inre strukturer kommer jag att berÀtta om i kommande artiklar. Det viktigaste den kan göra Àr att tillÀmpa tusentals konfigurationsÀndringar i sekunden utan omstarter, omladdningar, plötsliga minnesökningar och sÄ vidare. Det liknar mycket pÄ Hot Code Reload, till exempel i Erlang. Data lagras i en geo-distribuerad key-value databas och lÀses omedelbart av frontens exekveringsmekanismer. Det vill sÀga, du laddade upp SSL-certifikatet via webgrÀnssnittet eller API:t i Moskva, och inom nÄgra sekunder Àr det redan klart att anvÀndas i vÄrt rengöringscenter i Los Angeles. Om det skulle intrÀffa ett vÀrldskrig och internet skulle försvinna över hela vÀrlden, skulle vÄra noder fortsÀtta att fungera autonomt och ÄtgÀrda split-brain sÄ snart en av de dedikerade kanalerna Los Angeles-Amsterdam-Moskva, Moskva-Amsterdam-Hongkong-Los Angeles, eller Ätminstone en av backup-overlay GRE blir tillgÀnglig.

Denna mekanism gör det möjligt för oss att omedelbart utfĂ€rda och förlĂ€nga Let’s Encrypt-certifikat. Mycket förenklat fungerar det sĂ„ hĂ€r:

  1. SÄ snart vi ser minst en HTTPS-förfrÄgan för vÄr kunds domÀn utan certifikat (eller med ett utgÄnget certifikat), meddelar den externa nod som tagit emot förfrÄgan det interna certifieringscentret.

    Webb-HighLoad - hur vi hanterar trafiken frÄn tiotusentals domÀner.

  2. Om anvĂ€ndaren inte har förbjudit utfĂ€rdande av Let’s Encrypt, formar certifieringscentret en CSR, fĂ„r en bekrĂ€ftelsetoken frĂ„n LE och sprider ut den till alla frontar via en krypterad kanal. Nu kan vilken nod som helst bekrĂ€fta valideringsförfrĂ„gan frĂ„n LE.

    Webb-HighLoad - hur vi hanterar trafiken frÄn tiotusentals domÀner.

  3. Inom nĂ„gra ögonblick kommer vi att fĂ„ det korrekta certifikatet och den privata nyckeln och skickar dem pĂ„ samma sĂ€tt till frontarna. Återigen utan att starta om demonerna.

    Webb-HighLoad - hur vi hanterar trafiken frÄn tiotusentals domÀner.

  4. Sju dagar före utgÄngsdatumet initieras proceduren för att ÄterfÄ certifikatet.

Just nu roterar vi 350 000 certifikat i realtid, helt transparent för anvÀndarna.

I kommande artiklar i cykeln kommer jag att berÀtta om andra egenskaper hos realtidsbearbetning av stor webbtrafik - till exempel om analys av RTT baserat pÄ ofullstÀndiga data för att förbÀttra servicekvaliteten för transitkunder och övergripande om skydd av transittrafik mot terabit-attacker, om leverans och aggregering av trafikdata, om WAF, nÀstan obegrÀnsad CDN och mÄnga mekanismer för optimering av innehÄllsleverans.

Endast registrerade anvÀndare kan delta i omröstningen. Logga in, tack.

Vad skulle du vilja veta först?

  • 14,3%Algoritmer för klustring och analys av webbtrafik<3
  • 33,3%Inuti DDoS-Guard balanserare7
  • 9,5%Skydd av L3/L4-transittrafik2
  • 0,0%Skydd av webbplatser pĂ„ transittrafik0
  • 14,3%WebbapplikationsbrandvĂ€gg3
  • 28,6%Skydd mot parsing och klickbedrĂ€gerier6

Röstade 21 anvÀndare. 6 anvÀndare avstod.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster