Kill switch сынагы: үзгүлтүктү өлчөңүз, кайра туташууну гана эмес
Тез кайра туташуу кардардын тез экенин далилдейт. Үзгүлтүк учурунда машинадан эмне чыкканын жана колдонгон триггерди жаздырыңыз, болбосо сынак жарымын гана өлчөдү.
Бир секундда бүткөн кайра туташуу кардардын тез экенин айтат. Ал туннель өчүк турганда бир нерсе сыртка чыктыбы — айтпайт. Бир мүнөткө созулган кайра туташуу кардардын жай экенин айтат, жана үзгүлтүктө түз трафикке уруксат берилдиби — аны да айтпайт. Булар эки өлчөм, ал эми биринчисин гана билдирген kill switch сынагы ажыраткычты сынаган жок.
Эки байкоо, эки өзүнчө өкүм
Жеткиликтүүлүк суроосу жөнөкөй: туннель качан кайра жарактуу болду, жана корголгон колдонмого ал жакка жетүү үчүн жаңы туташуу керекпи. Аткаруу суроосу башка: коргоо кулаган учурдан анын кайткан учуруна чейин машинадан кайсы пакеттер чыкты.
Аларга өзүнчө жазуулар менен жооп бериңиз. Бир сап үзгүлтүктүн белгилүү сандагы секундга созулганын айтат. Башка сап ошол үзгүлтүктө корголбогон сурам ийгиликтүү болдубу — айтат. Аларды бир өттү же кулады натыйжасына бириктирүү эң маанилүү учурду жашырат: агып кетүү менен коштолгон тез кайра туташуу.
Убактысын өлчөөгө боло турган зонд куруңуз
Мындай сурамды колдонуңуз: зыянсыз, арзан жана туннелдин өзүнүн башкаруу каналынан көз карандысыз. Төмөнкү цикл секундасына бир жолу убакыт белгисин, HTTP абалын жана өткөн убакытты басып чыгарат, жана илинип калуунун ордуна катуу үн менен ишке ашпайт:
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
Абалды гана эмес, curl чыгуу коддору окуңуз. 28 сурамдын убактысы бүткөнүн билдирет — бөгөттөлгөн жол ушундай көрүнөт. 6 аттарды чечүү ишке ашпаганын билдирет, бул башка табылга жана көбүнчө кызыктуураак. Үзгүлтүктө өткөн убактысы аз 200 трафикке сыртка чыгууга уруксат берилгенин билдирет.
Чыгууну файлга жазып, аны сактап коюңуз. Терминалдын тарыхы далил эмес, ал эми кызыктуу бөлүгү адатта ортодогу үч сап.
Чыныгы бузулууну пайда кылыңыз, тазаланганын эмес
Кардардын өз менюсунен ажыратуу кызматташтык жолун текшерет, мында кардардын бөгөттөө эрежелерин орнотууга убактысы бар. Анын ордуна процессти өлтүрүңүз же төмөнкү байланышты үзүңүз, ошондо чыныгы бузулуу жүрө турган жолду текшересиз.
Ар бир триггер башка код жолун машыктырат. Сервер тараптагы иркилик, жергиликтүү байланыштын жоголушу жана кардардын кулашы ар бири башка абал калтырышы мүмкүн, жана алардын бири акыры туш боло турган учур болушу ыктымал. Зондду кеминде эки триггерде иштетиңиз жана натыйжаларды триггер боюнча белгилеңиз.
Уруксат берилген трафиктин кандай экенин журналдан окуңуз
Үзгүлтүктөгү 200 же тез байланыш ишке ашпастыгы — кайсы тарапка карабасын, агып кетүү. Бүт үзгүлтүк бою убакыттын бүтүшү бөгөттөө саясатынын күтүлгөн формасы. Байланыштар ишке ашпаганда аттарды чечүүнүн ийгиликтүү болушу чечүүчү дагы жеткиликтүү экенин көрсөтөт, бул башка түрдөгү агып кетүү.
Бар сокеттер этияттыкты талап кылат. Программа ажыратууга чейин ачкан байланышты колдонууну уланта алат, ошондуктан тирүү көрүнгөн трафик жаңы жолго уруксат берилгенин далилдей албашы мүмкүн. Сокеттердин тизмеси байланыштын окуядан мурун болгонун көрсөтөт:
ss -tunp | grep -E 'ESTAB|SYN-SENT' ip route get 198.51.100.7 resolvectl status | sed -n '1,20p'
Сокеттин башталган убактысын ажыратуунун убакыт белгиси менен салыштырыңыз. Иркиликтен эски байланыш — агып кетүүнүн эмес, сокетти кайра колдонуунун далили, жана аны ишке ашпастык деп билдирүү кийинки адамды жок катаны издөөгө жиберет.
Натыйжаны жаңыртуудан аман кала турган формада жазыңыз
Триггерди, үзгүлтүктү секунд менен, кандайдыр бөгөттөлбөгөн сурам ийгиликтүү болдубу, аттарды чечүү ийгиликтүү болдубу, ошондой эле кардар менен операциялык системанын версияларын жазыңыз. Беш фактыдан турган бул топтомду чыгарылыштар арасында салыштырууга болот, ал эми прозанын бир абзацы муну кыла албайт.
Кардар жаңыртылгандан же профиль өзгөргөндөн кийин ошол эле сынакты кайра иштетиңиз, анткени бөгөттөө жүрүм-туруму ишке ашыруунун деталы жана ал ордунан жылат. Жазуунун максаты — жылышты окуяга айланганга чейин байкоо, кардарды бир жолу сертификаттоо эмес.