Az egy másodperc alatt befejeződő újracsatlakozás azt mondja, hogy a kliens gyors. Nem mondja meg, hogy kiszökött-e valami, amíg az alagút le volt. Az egy percig tartó újracsatlakozás azt mondja, hogy a kliens lassú, és még mindig nem mondja meg, hogy engedélyezett volt-e a közvetlen forgalom a résben. Ez két mérés, és az a kill switch-teszt, amely csak az elsőről számol be, nem tesztelte a kapcsolót.

Két megfigyelés, két külön ítélet

Az elérhetőség kérdése egyszerű: mikor vált ismét használhatóvá az alagút, és szükség volt-e az új kapcsolatra a védett alkalmazásnak, hogy odaérjen. A kikényszerítés kérdése más: mely csomagok hagyták el a gépet a védelem leomlásának pillanata és visszatérésének pillanata között.

Külön feljegyzésekkel válaszoljon rájuk. Az egyik sor azt mondja, a rés bizonyos számú másodpercig tartott. A másik sor azt mondja, sikerült-e egy védelem nélküli kérés a rés alatt. Egyetlen megfelelt vagy megbukott eredménybe olvasztásuk elrejti a legfontosabb esetet: a gyors újracsatlakozást szivárgással.

Építsen időzíthető szondát

Olyan kérést használjon, amely ártalmatlan, olcsó és független az alagút saját vezérlőcsatornájától. Az alábbi ciklus másodpercenként egyszer kiír egy időbélyeget, egy HTTP-állapotot és az eltelt időt, és hangosan meghibásodik ahelyett, hogy lefagyna:

while true; do
  printf '%s ' "$(date +%H:%M:%S)"
  curl -sS -o /dev/null -w '%{http_code} %{time_total}\n' --max-time 2 https://example.com || echo "curl-exit-$?"
  sleep 1
done

A curl kilépési kódjait olvassa, ne csak az állapotot. A 28 azt jelenti, hogy a kérés túllépte az időt, így néz ki egy blokkolt útvonal. A 6 azt jelenti, hogy a névfeloldás meghiúsult, ami más lelet és gyakran az érdekesebb. A 200 rövid eltelt idővel a rés alatt azt jelenti, hogy a forgalom kimehetett.

Írja a kimenetet fájlba, és őrizze meg. A terminál visszagörgetése nem bizonyíték, és az érdekes rész általában három sor középen.

Valódi hibát váltson ki, ne rendezettet

A kliens saját menüjéből való leválasztás az együttműködő utat teszteli, ahol a kliensnek ideje van telepíteni a blokkolási szabályait. Inkább ölje meg a folyamatot, vagy szakítsa meg az alatta lévő kapcsolatot, és azt az utat teszteli, amelyet egy valódi hiba bejár.

Minden kiváltó más kódutat gyakorol. A kiszolgáló oldali kiesés, a helyi kapcsolat elvesztése és a kliens összeomlása egyaránt más állapotot hagyhat maga után, és egyikük valószínűleg az az eset, amellyel végül találkozik. Futtassa a szondát legalább két kiváltóval, és címkézze az eredményeket kiváltó szerint.

Olvassa a naplót, hogy lássa, milyen az engedélyezett forgalom

A 200 vagy a gyors kapcsolatmeghibásodás a rés alatt szivárgás, bármelyik irányba mutat is. A rés egészében jelentkező időtúllépések a blokkolási szabályzat várt formája. A névfeloldás sikere a kapcsolatok meghibásodása közben arra utal, hogy a feloldó még elérhető, ami másfajta szivárgás.

A meglévő socketek odafigyelést igényelnek. Egy program tovább használhatja a leválasztás előtt megnyitott kapcsolatot, ezért a látszólag élő forgalom nem feltétlenül bizonyítja, hogy új útvonalat engedélyeztek. A socketlista megmutatja, hogy a kapcsolat régebbi-e az eseménynél:

ss -tunp | grep -E 'ESTAB|SYN-SENT'
ip route get 198.51.100.7
resolvectl status | sed -n '1,20p'

Hasonlítsa össze a socket kezdési idejét a leválasztás időbélyegével. A kiesésnél régebbi kapcsolat a socket újrafelhasználásának bizonyítéka, nem szivárgásé, és hibaként jelenteni annyi, mint a következő embert egy nem létező hiba vadászatára küldeni.

Rögzítse az eredményt olyan formában, amely túlél egy frissítést

Jegyezze fel a kiváltót, a rést másodpercben, hogy sikerült-e bármely nem blokkolt kérés, hogy sikerült-e a névfeloldás, valamint a kliens és az operációs rendszer verzióit. Ez az öt tényből álló készlet kiadások között összehasonlítható, amire egy prózai bekezdés nem képes.

Futtassa újra ugyanazt a tesztet kliensfrissítés vagy profilváltás után, mert a blokkolási viselkedés implementációs részlet, és mozog. A feljegyzés célja az elmozdulás észlelése, mielőtt incidenssé válik, nem a kliens egyszeri tanúsítása.

Kapcsolódó cikkek