Jaribio la kill switch: pima pengo, sio kuunganisha tena tu
Kuunganisha tena haraka kunaonyesha kuwa mteja ni mwepesi. Rekodi kile kilichotoka kwenye mashine wakati wa pengo, pamoja na kichocheo ulichotumia, vinginevyo jaribio limepima nusu tu.
Kuunganisha tena kunakokamilika kwa sekunde moja kunakuambia mteja ni mwepesi. Hakukuambii kama kitu kilitoroka wakati handaki ilikuwa imezimwa. Kuunganisha tena kunakochukua dakika moja kunakuambia mteja ni wa polepole, na bado hakukuambii kama trafiki ya moja kwa moja iliruhusiwa katika pengo. Hizi ni vipimo viwili, na jaribio la kill switch linaloripoti la kwanza tu halijajaribu swichi.
Uchunguzi mbili, maamuzi mawili tofauti
Swali la upatikanaji ni rahisi: handaki ilifanyika lini tena kutumika, na je, programu iliyolindwa ilihitaji muunganisho mpya kufika huko. Swali la utekelezaji ni tofauti: ni pakiti zipi zilitoka kwenye mashine kati ya wakati ulinzi ulipoanguka na wakati uliporudi.
Wajibu kwa kumbukumbu tofauti. Mstari mmoja unasema pengo lilidumu idadi fulani ya sekunde. Mstari mwingine unasema kama ombi lisilolindwa lilifanikiwa katika pengo hilo. Kuyachanganya katika kufaulu au kushindwa moja kunaficha kisa cha muhimu zaidi: kuunganisha tena haraka na uvujaji.
Jenga kichunguzi unachoweza kupima muda wake
Tumia ombi lisilo na madhara, la bei nafuu na lisilategemea chaneli ya udhibiti ya handaki yenyewe. Mzunguko hapa chini unachapisha muhuri wa muda, hali ya HTTP na muda uliopita mara moja kwa sekunde, na unashindwa kwa sauti badala ya kuning’inia:
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
Soma misimbo ya kutoka ya curl, sio hali tu. 28 inamaanisha ombi liliisha muda, njia iliyozuiwa inaonekana hivi. 6 inamaanisha utatuzi wa majina ulishindwa, ambayo ni matokeo tofauti na mara nyingi ya kuvutia zaidi. 200 ikiwa na muda mfupi uliopita katika pengo inamaanisha trafiki iliruhusiwa kutoka.
Andika matokeo kwenye faili na uihifadhi. Historia ya terminal sio ushahidi, na sehemu ya kuvutia kawaida ni mistari mitatu katikati.
Sitisha kosa la kweli, sio lililopangwa
Kutenganisha kutoka menyu ya mteja wenyewe hujaribu njia ya ushirikiano, ambapo mteja ana muda wa kufunga sheria zake za kuzuia. Badala yake ua mchakato, au vunja kiungo cha chini, na utajaribu njia ambayo kosa la kweli hupitia.
Kila kichocheo hufanya mazoezi ya njia tofauti ya msimbo. Hitilafu upande wa seva, upotevu wa kiungo cha ndani na kuanguka kwa mteja kila kimoja kinaweza kuacha hali tofauti, na kimoja chao kina uwezekano wa kuwa kisa utakachokutana nacho mwishoni. Endesha kichunguzi kwa angalau vichocheo viwili na uweke lebo kwenye matokeo kwa kichocheo.
Soma kumbukumbu ili uone trafiki inayoruhusiwa inaonekanaje
200 au kushindwa kwa muunganisho haraka katika pengo ni uvujaji, iwe inaelekea upande wowote. Muda kuisha katika pengo lote ni umbo linalotarajiwa la sera ya kuzuia. Utatuzi wa majina kufanikiwa wakati miunganisho inashindwa unaonyesha kuwa kitatuzi bado kinafikiwa, ambayo ni uvujaji wa aina nyingine.
Soketi zilizopo zinahitaji uangalifu. Programu inaweza kuendelea kutumia muunganisho iliyoufungua kabla ya kutenganisha, kwa hiyo trafiki inayoonekana hai inaweza isithibitishe kuwa njia mpya iliruhusiwa. Orodha ya soketi inaonyesha kama muunganisho ni wa zamani kuliko tukio:
ss -tunp | grep -E 'ESTAB|SYN-SENT' ip route get 198.51.100.7 resolvectl status | sed -n '1,20p'
Linganisha muda wa kuanza kwa soketi na muhuri wa muda wa kutenganisha. Muunganisho wa zamani kuliko hitilafu ni ushahidi wa kutumia tena soketi, sio uvujaji, na kuiripoti kama kushindwa kunampeleka mtu anayefuata kuwinda hitilafu isiyokuwepo.
Rekodi matokeo katika umbo linalostahimili sasisho
Andika kichocheo, pengo kwa sekunde, kama ombi lolote lisilozuiwa lilifanikiwa, kama utatuzi wa majina ulifanikiwa, na matoleo ya mteja na mfumo wa uendeshaji. Seti hiyo ya mambo matano inaweza kulinganishwa kati ya matoleo, jambo ambalo aya ya nathari haiwezi.
Endesha tena jaribio lilelile baada ya sasisho la mteja au mabadiliko ya wasifu, kwa sababu tabia ya kuzuia ni maelezo ya utekelezaji na inasogea. Madhumuni ya kumbukumbu ni kutambua msogeo kabla haujakuwa tukio, sio kuthibitisha mteja mara moja.