Veřejný seznam uzlů ukazuje server s dobou běhu měřenou v týdnech, vyberete ho a připojení selže hned na první pokus. To není klamavá reklama; je to špatná otázka položená číslu, které měří něco jiného. Doba běhu obvykle udává, jak dlouho proces, kontejner nebo stroj běží od posledního spuštění, a to je vlastnost infrastruktury vydavatele, ne vaší cesty k ní. Považovat ji za spolehlivost je stejná kategorie chyby jako považovat počítač kilometrů u auta za zprávu o silnici.

Co číslo měří

Na hostiteli s moderním správcem služeb je počítadlo ukotveno k události, kterou skutečně můžete přečíst: k časové značce, kdy jednotka přešla do aktivního stavu, nebo k času bootování stroje. Vše ostatní je aritmetika na tomto ukotvení a definice ukotvení se mezi vydavateli liší. Jeden seznam se může resetovat při restartu démona, jiný při restartu stroje a třetí při ručním resetu, který provedl operátor toužící po čistém grafu.

systemctl show -p ActiveEnterTimestamp --value openvpn-server@server
uptime -s
systemctl is-active openvpn-server@server

Tyto tři příkazy odpovídají na tři různé otázky a adresář, který ukazuje jedno číslo, vám nemůže říct, který z nich použil. Srovnávat surové počítadlo ze dvou seznamů proto není vůbec srovnání, dokud nevíte, na čem se každé z nich resetuje.

Proces může běžet, i když je cesta nedostupná

Démon naslouchá. Certifikát je platný. Proces je naživu už třiadvacet dní. Nic z toho nezaručuje, že pakety z vaší sítě k němu dorazí, protože dostupnost je vlastností celé cesty: poskytovatelova vzestupného spoje, propojení mezi jeho sítí a tou vaší, zahlcení na sdíleném tranzitním spoji a firewallu před vaším vlastním připojením.

Server může být také v provozu a přesto k ničemu z jiného důvodu. Uzel, který přijal mnohem víc klientů, než jeho šířka pásma unese, ukáže dlouhou dobu běhu a hrozný zážitek, protože počítadlo neměří kapacitu ani soupeření. To je nejčastější způsob, jak uzel s dlouhou dobou běhu zklame: nic není rozbité, všechno je zaneprázdněné.

Opačný případ stojí také za zapamatování. Uzel restartovaný před hodinou může být teď naprosto zdravý a řazení podle největšího čísla ho tiše vynechá. Doba běhu není skóre kvality, a brát ji jako skóre vybírá podle stáří, ne podle vhodnosti.

Čerstvost: zpráva je starší než váš pokus

Veřejné adresáře jsou stránky generované z pravidelných kontrol, ne živá telemetrie. Doba běhu, kterou čtete, byla spočítána při posledním obnovení a připojení, které zkoušíte, nastává po něm. Mezitím může poskytovatel ztratit spoj, změnit certifikát, přesunout adresu nebo vyřadit uzel z provozu a stránka bude dál ukazovat poslední známý dobrý stav až do dalšího procházení.

Tato mezera působí i opačným směrem. Uzel hlášený jako nedostupný se mohl vzpamatovat minuty po vygenerování zprávy, takže okamžitý nový pokus na jiném uzlu není vždy lepší volbou.

Praktické pravidlo je, že každé hlášené pole je tvrzení o minulosti. Použijte ho k sestavení krátkého seznamu a pak ověřte měřením, které sami provedete v okamžiku, na kterém vám záleží.

Co místo toho testovat

Rozhodněte, co od uzlu potřebujete, a to testujte. Pokud potřebujete dostupnost, pokus o TCP spojení na naslouchající port vám za jednu sekundu řekne víc než jakékoli počítadlo. Pokud potřebujete funkční tunel, vyjednejte ho. Pokud potřebujete použitelnou propustnost, přeneste něco skutečného a změřte to, protože doba připojení a propustnost jsou různé vlastnosti a rychlý handshake o té druhé neříká nic.

nc -vz -w 5 vpn.example.net 1194
curl -sS -o /dev/null -w '%{time_connect} %{time_appconnect} %{time_total}\n' https://vpn.example.net/
mtr -rwc 20 vpn.example.net

Test opakujte, místo abyste věřili jednomu pokusu. Spolehlivost je rozdělení v čase a podmínkách a jedno úspěšné připojení je vzorek velikosti jedna. Několik pokusů během hodin, kdy připojení skutečně používáte, překoná jakoukoli zveřejněnou dobu běhu s velkým náskokem.

Čtení veřejných seznamů uzlů bez klamání

Doba běhu také nenese žádnou informaci o věcech, které lidé obvykle od VPN chtějí: platnost certifikátu, kdo provozuje výstup, jaká politika DNS platí a zda operátor uchovává záznamy o připojení. To jsou oddělená tvrzení, která potřebují oddělené důkazy, a dlouhé počítadlo není důkazem pro žádné z nich. Uzel může být měsíce stabilní a přesto být špatnou volbou pro požadavek soukromí.

Kde seznam skutečně pomáhá, je zužování výběru. Seřaďte podle toho, co víte, že potřebujete, odfiltrujte uzly v regionech, které s úkolem nesouvisejí, a pak otestujte tři nebo čtyři, které zůstanou. Uchovávejte fázi selhání každého pokusu místo jednoho ano, či ne, protože „handshake TLS selhal“ a „připojeno, ale bez propustnosti“ vedou k úplně jiným závěrům.

Rámec pro měření výkonu cesty říká totéž v přísnější podobě: definujte metriku, podmínky a metodu dřív, než začnete sbírat čísla. Aplikováno na seznam uzlů to znamená, že pole doby běhu je kontext. Měření, které provedete sami, je rozhodnutí.

Související články