«Камдык иштейт» деген сүйлөмдүн ичинде эки жыйынтык жашырылган. Жаңы суроо ийгиликтүү болот, бул — калыбына келүү. Азыр жүрүп жаткан өткөрмө уланат, бул — үзгүлтүксүздүк. Булар эки башка убада, жана көптөгөн оош долбоорлору биринчисин берет, экинчиси болсо үнсүз убакыт бүтүмү менен аяктайт. Механизмди тандоодон мурун кайсынысы керек экенин чечиңиз жана сынакты аларды ажырата алгандай жазыңыз.

Бир ийгиликке окшош эки жыйынтык

10.90.0.42 дарегиндеги кардардын 198.51.100.20:443 дарегине туташуусу бар деп элестетиңиз. Негизги чыгуу аны бир коомдук дарек жана портко айландырат, камдык чыгуу болсо башкасына. Кардардын ички дареги эч качан өзгөрбөйт, ошондуктан адамдар туташуу аман калат деп күтүшөт.

Сервер ички даректи көрбөйт. Ал айландырылган акыркы чекитти көрөт, ал эми бул чекит ооштон кийин башкача.

Ошентип эски агым убакыт бүтүмү менен аяктайт, ал эми ошол эле кызматка жаңы туташуу дароо иштейт. Эки байкоо тең бир убакта туура.

Чыгуу өзгөргөндө сервер эмнени көрөт

TCP туташуусу өзүнүн төрттүгү менен аныкталат, ал эми баштапкы даректин же порттун өзгөрүшү кабыл алуучу хост үчүн башка туташуу жаратат. Сервер билбеген туташууга жаңы булактан келген пакеттер ташталат же кайра орнотуу менен жооп берилет. VPN кардарынын дарегинде бул өзгөрүү боюнча байланышты сактаган эч нерсе жок.

Абалдуу оош так ушундан качуу үчүн бар жана жиберүүчү түзмөктөрдүн ортосунда айландыруу абалы менен туташуу абалын алмашуу аркылуу иштейт. Бул жуптун касиети, туннелдики эмес, жана аны болжолдоонун ордуна долбоорлоп, сынап көрүү керек.

Бирөөгө үзгүлтүксүздүк убада кылбастан мурун жуп чын эле абалды сактайбы текшериңиз. Төмөнкү буйруктар эки тараптын учурдагы абалын көрсөтөт.

conntrack -L -d 198.51.100.20 2>/dev/null | head
ss -tin dst 198.51.100.20
tcpdump -ni any host 198.51.100.20 -c 10

Эмне үчүн бир коомдук дарек жетишсиз

Эки жолдо бир коомдук даректи сактоо — жакшы башталыш, анткени ошондо сервер ошол эле булак акыркы чекитин көрөт. Бирок жалгыз өзү бул жетишсиз. Жиберүүчү түзмөккө дагы эле айландыруу абалы, брандмауэр абалы жана колдонууга жарактуу кайтуу жолу керек, жана алар ооштон кийин трафикти ташыган түзмөктө болушу керек.

RFC 3022 даректерди айландырууну сүрөттөйт жана айландыруучу түзмөктөрдүн ортосундагы абал алмашууну камдык долбоордун бөлүгү катары карайт. Капкыган дарек же көчүрүлгөн профиль конфигурацияны жылдырат, бирок абалды жылдырбайт.

Ошондуктан камдык аркылуу гана ping жасаган сынак абдан аз нерсени далилдейт. Ping-дин жоготкон туташуу абалы жок.

Талап канчалык күчтүү экенин чечиңиз

Эгер колдонуучулар бузулуудан кийин кайра туташа алса, долбоор — калыбына келтирүү долбоору, ал эми кабыл алуу сынагы — жаңы суроо. Эгер файл өткөрмөсү аман калышы керек болсо, долбоорго абалды синхрондоо жана алда канча кылдат сынак керек. Эгер алыскы сессия аман калышы керек болсо, талап андан да күчтүү жана тармак деңгээлинен тышкары колдонмо деңгээлиндеги механизм керек болушу мүмкүн.

Талапты өлчөнүүчү жыйынтыгы бар сүйлөм катары жазыңыз, мисалы жүктөө кайра башталбастан аяктайт же оператор бир мүнөт ичинде кайра туташат. Анан аны канааттандырган эң арзан механизмди тандаңыз, жана бул көбүнчө калыбына келтирүү долбоору болот.

Негизги жол кайтып келгенде эмне болорун ачык айтыңыз, анткени автоматтык кайра кайтуу камдыкта жаңы эле калыбына келген туташууну үзүп коюшу мүмкүн. Бул учур сынак планына таандык, түшүндүрмөгө эмес.

Эски агымды жана жаңы суроону текшериңиз

Негизги жол аркылуу зыянсыз узак өткөрмөнү баштаңыз, анан ошол эле кызматка өзүнчө жаңы суроо жөнөтүңүз. Колдонмо контекстин, байкалган чыгуу дарегин жана убакытты жазып алыңыз. Негизги жолду уруксат берилген ыкма менен үзүп, жаңы суроону камдык аркылуу жиберип жатканда баштапкы өткөрмөнү байкоону улантыңыз.

Үч маанини билдириңиз: эски агым уландыбы, кайра орнотулдубу же убакыт бүтүмү менен аяктадыбы; жаңы операция биринчи жолу качан иштеди; жана кайра кайтуу бир нерсени үздүбү. Ошол үч сап — кабыл алуу жазуусу.

ss -tin dst 198.51.100.20
curl -sS -o /dev/null -w '%{http_code} %{time_total}\n' https://198.51.100.20/
tcpdump -ni any port 443 -c 20

Эгер жумуш жүктөмү маалымат жазаса, убакыт бүтүмүнөн кийин белгисиз операцияны сокур түрдө кайталабаңыз. Жазуу жооп жоголгонго чейин жеткен болушу мүмкүн. Жыйынтыкты колдонмодон сураңыз же операция идемпотенттүү болгон жерде гана кайра аракет кылыңыз. Анан кабыл алуу билдирүүсүн үч бөлүктө жазыңыз: жаңы операциялар чыгуу саясатынын алдында калыбына келет, учурдагы агымдардын документтелген үзүлүү жүрүм-туруму бар, жана колдонмо коопсуз уланат. Бул билдирүү текшериле алат жана долбоор эмнени убада кылбастыгы тууралуу чынчыл.

Тектеш макалалар