OpenVPN ичиндеги keepalive же systemd restart: кайсы калыбына келтирет?
Үнсүз өнөктөш, өлүк процесс жана колдонууга жараксыз колдонмо үч түрдүү бузулуу. keepalive-ты OpenVPN-ге, процессти systemd-ге бериңиз жана ар бир учурду сынаңыз.
Туннелде үч түрдүү нерсе туура эмес болушу мүмкүн жана алар үч түрдүү жооп талап кылат. Өнөктөш жооп берүүнү токтотот, демон процесси өлөт же туннелдин артындагы колдонмо кызмат көрсөтүүнү токтотот. Ушулардын кайсынысы болбосун кызматты кайра баштоочу конфигурация этият көзөмөл эмес; ал байланышсыз бузулууларга колдонулган бир одоно аракет. Ар бир механизм иш жүзүндө эмнени байкай аларын салыштыруу эмгек бөлүштүрүүнү ачык кылат.
Бирдей көрүнгөн үч бузулуу
Өнөктөштүн үнсүздүгү экинчи тарап жиберүүнү токтотконун билдирет жана OpenVPN муну өзү аныктай алат, анткени жүрөк кагышы өзүндө. Процесстин өлүмү демон чыкканын билдирет, муну кызмат менеджери байкайт, ал эми OpenVPN байкай албайт. Колдонмо бузулуусу туннел жакшы, ал эми анын артындагы бир нерсе жакшы эмес дегенди билдирет жана калган эки механизмдин эч биринде муну билүүнүн жолу жок. Ар бири башка жооп талап кылат жана алардын эч бири туннелдин иштеп жатканын байкоо менен бирдей эмес.
Булар ар башка катмарлардын ар башка сигналдары жана ар биринин божомолдобой аракет кыла алган ээси бар. Аларды аралаштыруу түшүндүрө албаган симптомдорго кайра башталган системаны жаратат.
Каалаган таймерди өзгөртүүдөн мурун үч учурду жазыңыз. Тизменин өзү адатта бир механизмден үчөөнү тең жабуу суралып жатканын көрсөтөт.
keepalive иш жүзүндө эмнеге кеңейет
keepalive директивасы кыскартма жана кеңейүү режимге жараша ар башка. Серверде keepalive 10 60 ар он секунд сайын жергиликтүү ping, 120 секунддук жергиликтүү кайра баштоо мөөнөтү жана кардарларга жиберилүүчү 10 жана 60 маанилерине айланат. Сервердин мөөнөтү атайын эки эселенет, ошондо кардар сервер баш тартканга чейин кайра баштоого мүмкүнчүлүк алат. Профилдеги кыскартманы эмес, иштеп жаткан конфигурациядагы кеңейтилген форманы окуңуз.
Ушул эки эселенүү себебинен улам эки тарап тең алтымыш секунддан кийин кайра башталат деген каалаган сүрөттөмө туура эмес. Ал жол начарлаганда эки тарап эмнеге бирге термелбей турганын да түшүндүрөт.
Жүрөк кагышы — OpenVPN өнөктөш трафиги, кандайдыр бир ачык хосттун ICMP текшерүүсү эмес. Жооп туннелдин алыс тарабы тирүү экенин гана далилдейт. Ал колдонуучуга чындап керек болгон маалымат базасы же веб-кызмат жөнүндө эч нерсе айтпайт.
Restart=on-failure эмнени көзөмөлдөбөйт
Кайра аныктоо коштон мурун орнотулган юнитти окуңуз. Restart=on-failure документтелген процесс бузулуу шарттарына жооп берет, бул байланыш абалын көзөмөлдөө менен бирдей эмес. Ал ички кайра туташуу башталганы үчүн иштебейт жана таза чыгуунун кырсыктан башка мааниси бар.
Бул айырма маанилүү, анткени ички кайра баштоо ошол эле процессти тирүү кармайт. Юнит эч нерсе көрбөйт, туннел өзү калыбына келет жана бул туура натыйжа.
RestartSec жана баштоо чектөөлөрүн атайын коюңуз, болбосо кырсыктар циклы шлюзди уруп, чыныгы катаны кайра баштоо билдирүүлөрүнүн астына көмөт. Иштеп кеткен кайра баштоо чеги юнитти бузулган абалда калтырат, бул көрүнөт, ал эми чексиз цикл көрүнбөйт.
ping-restart жана ping-exit өз ара алмаштырылбайт
ping-restart OpenVPNдин ички кайра башталышын козготот жана процессти сактайт. ping-exit процессти ушундай эле мөөнөттө бүтүрөт, бул чечимди кызмат менеджерине өткөрөт. Алар бири-бирин жокко чыгарат жана экинчисин тандоо калыбына келтирүү кимге таандык экенин өзгөртөт. Айырма — кайра аракет кылууну ким чечет жана аракеттен канча абал аман калат.
Эгер мөөнөт бүткөндө чыгууну тандасаңыз, юнитке дал келген кайра баштоо саясаты жана чыгуу статусун иштетүү керек, болбосо жашоо жөндөмдүүлүгүнүн бузулушу туруктуу токтоо сыяктуу көрүнөт. Туруктуулук параметрлери ички кайра баштоо учурунда интерфейстерди жана маршруттарды сактай алат, бирок процесс чыкканда сактай албайт.
Ар бир жайгаштыруу үчүн бир жашоо циклин тандап, себебин жазыңыз. Эки директиваны тең алып жүргөн профиль — чечим кабыл албаган профиль.
Ар бир бузулууну өзүнчө учур катары сынаңыз
Уруксат берилген терезеде үнсүз өнөктөштү, өлтүрүлгөн демонду жана жеткиликсиз колдонмону окшоштуруңуз, анан кайсы калыбына келтирүү иштегенин текшериңиз. Үнсүз өнөктөш ички кайра туташууну, өлтүрүлгөн процесс юниттин кайра башталышын, ал эми колдонмо үзгүлтүгү алардын эч бирин бербеши керек. Эки учур бир аракетти берсе, ээлик дагы эле аралаш.
Кайталанма калыбына келтирүү да оңдоо эмес. Четке кагылган эсептик маалыматтар же бир эффективдүү атты бөлүшкөн эки кардар бири-бирин алмаштыра берет жана тезирээк таймерлер ошол термелүүнү тездетет гана.