CreateYourVPN Academy
Kurz: Jak to funguje

Monitoring serverů a mesh síť

Jak CreateYourVPN hlídá zdraví serverů: vlastní kontroly, mesh síť vzájemných kontrol mezi servery a automatické skrývání nedostupných serverů před uživateli.

Server vás může zklamat v tu nejhorší možnou chvíli: spadne služba, poskytovatel hostingu stroj restartuje — nebo, ještě hůř, server je v zemi uživatele zablokovaný a přestane být dostupný, i když technicky běží dál. Vaši uživatelé by z toho neměli nic poznat. Tato lekce popisuje, jak CreateYourVPN hlídá vaše servery a co se stane, když se některý z nich dostane do potíží.

Dvě vrstvy kontrol

Systém se na každý server dívá ze dvou úhlů.

1. Server kontroluje sám sebe

Každých pár minut se každý server hlásí: žije naslouchání provozu na portu 443 a běží služba VPN? Se stejným hlášením přicházejí i metriky z lekce 3. Pokud hlášení říká "nejsem v pořádku", server dostane stav "Server nedostupný". Pokud hlášení přestanou chodit úplně, stav se změní na "Žádná data ze serveru" — stroj může být vypnutý nebo ztratil síť.

2. Servery si navzájem "klepou na dveře"

Vlastní kontroly nemohou zachytit ten nejzáludnější případ: server věří, že je zdravý, ale zvenčí je nedosažitelný — třeba proto, že jeho IP byla zablokovaná. Proto jsou všechny vaše servery propojené do mesh sítě vzájemných kontrol: každý server se pravidelně snaží dosáhnout na každého souseda — stejným způsobem, jakým by to zkoušela aplikace uživatele.

Odtud přebírá otěže "hlasování":

  • Jediné neúspěšné klepnutí nic neznamená — síť mohla jen krátce zaškobrtnout. Počítají se jen trvalé série selhání.
  • Server se označí jako "Nedostupný z vašich serverů" pouze tehdy, když ho několik nezávislých serverů trvale nedokáže dosáhnout — názor jednoho serveru není verdikt.
  • Existuje i ochrana proti "nespolehlivému svědkovi": pokud nějaký server náhle tvrdí, že nevidí polovinu svých sousedů, problém je nejspíš na jeho vlastní straně — a jeho hlasy se zahazují.

Přesně tímto schématem se odhalují blokace: pokud je server zablokovaný v zemi, kde žijí vaše další servery, sousedé z té země ho brzy přestanou dosahovat, sesbírá se kvórum a systém server označí jako nedostupný. Zatímco servery v zemích bez blokace ho budou dál vidět v pořádku — a rozdíl v názorech udělá obrázek jasným.

Když kontrola spojení mezi dvěma servery neprochází

Hlasování zachytí blokaci, když máte v zemi, která přístup zavřela, několik serverů. Častěji tam ale stojí přesně jeden: přestane vidět váš zahraniční server, zatímco zahraniční se mezi sebou vidí bez problémů. Pro takový obraz se kvórum nikdy nesejde.

Přesto si toho všimneme, ale poctivě říkáme, co nevíme. Z „A nevidí B" nelze odvodit, čí adresa je blokovaná: je to jedno a totéž tvrzení o cestě mezi nimi a zvenčí oba případy vypadají stejně. Proto:

  • Ve výchozím nastavení nikoho neobviňujeme. Jako „Nedostupný" označíme vstupní body té strany, ke které kontrola nedojde, a obou stran, pokud neprojde ani jedním směrem. V důvodu jsou uvedeny oba servery (uvidíte je, když vstupní bod otevřete v kartě serveru). Rozhodnout, který server vyměnit, musíte vy: obvykle je to ten, na který se nedovolají vaši klienti.
  • Ani jeden z nich se neskrývá. Skrýt dvojici by znamenalo vzít z předplatného i zcela funkční server. Klienti dál dostávají vstupní body obou serverů a vyvažování prostě upřednostní zdravé, pokud je trasa má.

Ověřující server

Abyste místo „jeden ze dvou" dostávali přesnou odpověď, označte server, jehož kontrole důvěřujete: karta serveru → „Použít tento server ke kontrole blokací ostatních".

Pravidlo je pak jednoduché: pokud ověřující server přestane vidět běžný server, považujeme adresu běžného serveru za blokovanou, napíšeme vám s radou vyměnit IP a přestaneme jeho vstupní body vydávat klientům, dokud má trasa alternativy. Opačný případ, kdy běžný server nevidí ověřující, neznamená nic.

Nejlepší ověřující server stojí ve stejné zemi jako vaši klienti: jeho pohled je nejblíž tomu, co vidí aplikace uživatele. Označit jich můžete několik. Pokud ale označíte všechny servery, směr zase zmizí: nezbyl by nikdo, kdo by rozhodl, a dvojice se vrátí k výchozímu chování. Počítejte s tím, že samotný ověřující server už tímto signálem označen nebude: soudíme z jeho strany, takže nezbývá nikdo, kdo by soudil jeho.

Co se stane s problematickým serverem

Stavy se přímo propisují do vyvažování: servery se stavem "Server nedostupný" a "Nedostupný z vašich serverů" jsou staženy z rotace — nová připojení už se k nim nesměrují a v odběrech uživatelů jejich místo zaberou zdravé servery ze stejných tras. Jedinou výjimkou je přerušená dvojice bez ověřujícího serveru: tam se vstupní body označí, ale žádný se z nabídky nevyřazuje.

Systém je přitom zároveň opatrný — je postavený na principu "neuškodit":

  • Trasa nikdy nezůstane prázdná. Pokud se všechny servery na trase ukážou jako "špatné", systém uživatelům raději nabídne nejlepší dostupnou možnost, než aby ukázal prázdný seznam — jinak by aplikace usoudily, že servery zmizely, a smazaly je.
  • Ticho není verdikt. Stav "Žádná data ze serveru" sám o sobě server z rotace neodstraňuje: bez čerstvých dat systém nedělá žádné unáhlené kroky.

Všechno se hojí samo

Žádný ze stavů "nelpí" napořád — stav se pořád odvozuje z čerstvých dat:

  • server znovu pošle zdravé hlášení → stav "Server nedostupný" se zruší;
  • sousedé ho znovu začnou dosahovat → série selhání se resetuje a značka "Nedostupný z vašich serverů" zmizí;
  • hlášení se obnoví → "Žádná data ze serveru" zmizí.

Opravte server (nebo počkejte, až bude odblokovaný) — a sám se vrátí do provozu. Žádné ruční "zase ho zapnout".

Kde to v panelu vidět

Otevřete kartu libovolného uživatele → seznam jeho serverů: vedle každého serveru je stavová tečka, a pokud je něco v pořádku, popisek s důvodem: "Server nedostupný", "Nedostupný z vašich serverů" (včetně toho, kolik vašich serverů ho nevidí), nebo "Žádná data ze serveru". Nepřímé signály se objevují i na kartách serverů: štítek "zastaralé" u metrik a "Žádná data — agent neodpovídá".

Mesh kontroly jsou extrémně skromné: jde o drobné testovací dotyky s přísným denním limitem objemu — na provoz ani výkon vašich serverů nemají žádný vliv.

Klíčové poznatky

  • Dvě vrstvy kontroly: server kontroluje sám sebe a jeho mesh sousedé ho kontrolují zvenčí.
  • Blokace se odhalují "hlasováním" několika serverů — žádná panika kvůli jednorázovému zaškobrtnutí.
  • Problematické servery vypadnou z rotace; uživatelé se tiše přesunou na zdravé.
  • Všechno se hojí samo: jakmile se server vrátí k životu, sám se znovu zapojí.
  • Pokud kontrola spojení mezi dvojicí serverů neprochází a ověřující server není nastaven, označíme vstupní body nedosažitelné strany (nebo obou, pokud neprojde ani jedním směrem) a žádný z nich neskryjeme: rozhodnutí je na vás.

Co dál

Infrastruktura se umí opravit sama, ale je tu jedna věc, kterou stojí za to chránit zvlášť — vaše uživatelská základna.

On this page