’n Herverbinding wat in ’n sekonde klaarkom, sê die kliënt is vinnig. Dit sê nie of iets ontsnap het terwyl die tonnel af was nie. ’n Herverbinding wat ’n minuut neem, sê die kliënt is stadig, en steeds nie of direkte verkeer in die gaping toegelaat is nie. Dit is twee metings, en ’n killswitch-toets wat net die eerste rapporteer, het nie die skakelaar getoets nie.

Twee waarnemings, twee afsonderlike uitsprake

Die beskikbaarheidsvraag is eenvoudig: wanneer het die tonnel weer gewerk, en het die beskermde toepassing ’n nuwe verbinding nodig gehad om daar te kom. Die handhawingsvraag is anders: watter pakkette het die masjien verlaat tussen die oomblik toe beskerming geval het en die oomblik toe dit teruggekeer het.

Beantwoord dit met afsonderlike rekords. Een reël sê die gaping het ’n sekere aantal sekondes geduur. ’n Ander reël sê of ’n onbeskermde versoek tydens daardie gaping geslaag het. Om dit in een enkele slaag of druip saam te voeg, verberg die geval wat die meeste saak maak: ’n vinnige herverbinding met ’n lek.

Bou ’n probe wat jy kan meet

Gebruik ’n versoek wat onskadelik, goedkoop en onafhanklik van die tonnel se eie beheerkanaal is. Die lus hieronder druk ’n tydstempel, ’n HTTP-status en die verstreke tyd een keer per sekonde, en dit misluk luidkeels in plaas van om te hang:

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

Lees die curl-uitgangskodes, nie net die status nie. ’n 28 beteken die versoek het verstryk, wat is hoe ’n geblokkeerde pad lyk. ’n 6 beteken naamresolusie het gefaal, wat ’n ander bevinding is en dikwels die interessanter een. ’n 200 met ’n klein verstreke tyd tydens die gaping beteken verkeer is toegelaat om uit te gaan.

Skryf die uitset na ’n lêer en hou dit. ’n Terminale terugrol is nie bewyse nie, en die interessante deel is gewoonlik drie reëls in die middel.

Veroorsaak ’n werklike faling, nie ’n netjiese een nie

Om van die kliënt se eie kieslys te ontkoppel, toets die samewerkende pad, waar die kliënt tyd het om sy blokkeringsreëls te installeer. Maak eerder die proses dood, of laat die onderliggende skakel val, en jy toets die pad wat ’n werklike faling volg.

Elke sneller oefen ’n ander kodepad. ’n Onderbreking aan die bedienerkant, ’n plaaslike skakelverlies en ’n kliënt-ineenstorting kan elk ander toestand agterlaat, en een daarvan is waarskynlik die geval wat jy uiteindelik teëkom. Hardloop die probe oor ten minste twee snellers en benoem die resultate volgens sneller.

Lees die log vir die vorm van toegelate verkeer

’n 200 of ’n vinnige verbindingsfaling tydens die gaping is ’n lek, in watter rigting dit ook al wys. Verstrykings regdeur die gaping is die verwagte vorm van ’n blokkeringsbeleid. Naamresolusie wat slaag terwyl verbindings faal, dui daarop dat die resolveerder steeds bereikbaar is, wat ’n lek van ’n ander soort is.

Bestaande sokkels verg sorg. ’n Program kan ’n verbinding bly gebruik wat hy voor die ontkoppeling oopgemaak het, so oënskynlik lewendige verkeer bewys dalk nie dat ’n nuwe pad toegelaat is nie. Die sokkellys wys of ’n verbinding die gebeurtenis voorafdateer:

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

Vergelyk die sokkel se begintyd met die tydstempel van die ontkoppeling. ’n Verbinding ouer as die onderbreking is bewyse van sokkelhergebruik, nie van ’n lek nie, en om dit as ’n faling te rapporteer, stuur die volgende persoon op soek na ’n fout wat nie bestaan nie.

Teken die resultaat aan in ’n vorm wat ’n opdatering oorleef

Skryf die sneller neer, die gaping in sekondes, of enige ongeblokkeerde versoek geslaag het, of naamresolusie geslaag het, en die weergawes van die kliënt en die bedryfstelsel. Daardie stel van vyf feite kan oor vrystellings heen vergelyk word, wat ’n paragraaf prosa nie kan nie.

Herhaal dieselfde toets ná ’n kliëntopdatering of ’n profielverandering, want blokkeringsgedrag is implementeringsbesonderhede en dit beweeg. Die punt van die rekord is om die beweging raak te sien voordat dit ’n voorval word, nie om die kliënt een keer te sertifiseer nie.

Verwante artikels