OpenVPNдин саат сайын үзүлүшү: кайра сүйлөшүүбү же чыныгы кайра туташуубу?
Шектүү тегерек аралыктагы үзүлүү адатта ачкычтардын жаңыртылышы, өлүк байланыш эмес. Бир нерсени өчүрүүдөн мурун колдонуудагы таймерди жана журнал сабын окуңуз.
Алтымыш мүнөт, же отуз, же жүз жыйырма: тегерек аралыкка түшкөн үзүлүү дээрлик эч качан тармак эмес. OpenVPN таймер боюнча маалымат каналын коргогон ачкыч материалын жаңыртат, жана сиз ойлогондон кыска таймер дайыма иштен чыккан байланышка так окшош. Колдонуучулар үзүлгөн байланыш тууралуу билдиришет, ал эми журнал ачкычтардын ийгиликтүү алмашуусу тууралуу билдирет. Төмөнкү нускама ошол жаңыртууну чыныгы кайра иштетүүдөн ажыратат, иш жүзүндө колдонуудагы маанини окуйт жана чыгым үстөлгө коюлгандан кийин гана аны өзгөртөт.
Кадамдарды тартиби менен аткарыңыз, анткени биринчиси барактын калган бөлүгү сизге таптакыр тиешелүүбү, аны чечет. Алдыга секирсеңиз, ага эч кандай тиешеси жок бузуктук үчүн таймерди жөндөөгө бир кечти өткөрөсүз.
Жумшак кайра орнотууну кайра иштетүүдөн ажыратыңыз
Журнал сабы — бүткүл диагностика. Кайра сүйлөшүү жумшак кайра орнотууну жазат, андан кийин ошол эле туннелдин ичинде жаңы ачкыч алмашууну: интерфейс өз дарегин сактайт, маршруттар кайра кошулбайт, жана орнотулган TCP сессиялары адатта тыныгуу менен аман калат. Чыныгы кайра иштетүү сессияны ажыратат, интерфейсти кайра курат, башка кардар дарегин бериши мүмкүн жана бардык узак өмүрлүү байланыштарды өлтүрөт. Эки окуя тең кадимки; алардын бирөө гана үзүлгөн чалууну түшүндүрөт.
journalctl -u openvpn-client@office -b --no-pager | grep -nE 'soft reset|Connection reset|reneg|TLS Error'
openvpn --version | head -n 1
Версия сабы маанилүү, анткени журналдын сүрөттөлүшү чыгарылыштар арасында өзгөрөт, жана 2.3тен эсте калган билдирүү 2.6да башкача түзүлүшү мүмкүн. Башка бирөөнүн форум үзүндүсүн эмес, өз журналыңызды окуңуз. Жардам сураганда так сапты келтириңиз, анткени кайра айтуу окуяны аныктаган деталды жоготот. Эгер окуянын учурунда интерфейс дареги өзгөрбөсө жана сессиялардын тизмеси аман калса, сиз жаңыртууну көрүп турасыз жана калган бөлүмдөр колдонулат.
Колдонуудагы таймерди окуңуз, өз файлыңызды эмес
reneg-sec — маалымат каналынын кайра сүйлөшүүлөрүнүн ортосундагы секунддардын саны, анын демейки мааниси 3600. Ар бир тарап өз маанисин алып жүрөт, жана экөөнүн кичинеси жаңыртууну иш жүзүндө баштайт. Ушул бир эреже отчеттордун көбүн түшүндүрөт: чоң санды койгон кардар профили сервер демейкини сактап турганда саат сайын кайра орнотулат.
grep -Rn --include='*.conf' -E 'reneg-sec|reneg-bytes' /etc/openvpn
# server side, including included files
grep -Rn -E '^reneg-sec' /etc/openvpn/server/
Кардар файлынан тыянак чыгарганга чейин сервердин колдонуудагы конфигурациясын да, ал түрткөн нерселердин баарын кошуп окуңуз. Андан кийин деталдуулукту көтөрүп, бир аралыкты башынан аягына чейин байкаңыз: 3-деңгээл кайра сүйлөшүү саптарын эчак эле көрсөтөт, жана убакыт белгилери окуя ар 3600 секундда кайталанабы же активдүүлүккө ээрчийби, аны айтат.
Аны иш жүзүндө түртүлгөн жерден өзгөртүңүз
Айланадагы дары — кардар профилиндеги бир сап, жана болжол менен жарым учурда туура эмес жер. Тараптын кичине мааниси жеңет, ошондуктан таймерди нөлгө койгон кардарды өзгөрбөгөн сервер дагы эле кайра сүйлөшүүгө тарта алады.
# on both ends, or on the side that owns the pushed configuration
reneg-sec 0
Профилдер борбордон түзүлсө, жайгаштырылган көчүрмөнү эмес, шаблонду түзөтүңүз, антпесе кийинки камсыздоо жүрүшү жаңы эле алып салган маанини калыбына келтирет. Бир эмес, эки аралыкты байкоо менен текшериңиз: бир тынч саат 7200гө коюлган таймер менен да үйлөшөт.
Аралаш жайгаштырууда эмне болорун да чечиңиз. Өзгөртүүнү адегенде кардарларга таратсаңыз, сервер дагы эле жаңыртууну баштаган терезе калат; бул зыянсыз, бирок ырастоо үчүн журналдарды байкап жатсаңыз татаалдатат. Адегенде кичине маани турган тарапты өзгөртүңүз, ошондо симптом күткөн жерде жоголот.
Кайра сүйлөшүүнү өчүрүү менен эмнеден баш тартасыз
Үзгүлтүксүз кайра сүйлөшүү маалымат каналынын ачкычтарынын бир топтому трафикти канча убакыт коргой турганын чектейт. Таймерди өчүрүү туннелди бузбайт, жана үй маршрутизаторунда же кичине кеңсе дарбазасында практикалык таасир жөнөкөй. Бул баары бир алмашуу, жана аны жасоодон мурун алмашууну атап өткөн жөн. Өзгөргөнү — бир ачкыч топтому сессияны канча убакыт коргой турганы, ал эми туннелдин таптакыр иштеши эмес.
Өчүрүүнүн орундуу учуру — улантуу мүмкүн болбогон нерсени бузган кайра орнотуу: үзүлгөн чалуу, кайра орнотууну талап кылган алыскы иш үстөл сессиясы, башынан башталган камдык көчүрмө. Эгер тыныгуу колдонуучуларга көрүнбөсө, демейки маанини калтыруу эч нерсеге турбайт жана сизге берилген ачкыч айландыруусун сактайт.
Үлгү мүмкүндүк берсе, себебин оңдоону артык көрүңүз. Биринчи кол алышуу ийгиликтүү болгондо жарым жолдо ишке ашпаган жаңыртуу таймерге эмес, жолго көрсөтөт: башкаруу каналынын чоңураак алмашуусунда пакет өлчөмү маселесин, агымды таштаган абалдык коргоо дубалын, же биринчи аракетте гана ийгиликтүү болгон сунушту издеңиз. Алардын ар бири жаңы эле окуган ошол эле журналда из калтырат. Таймерди өчүрүү ошол далилди жашырат.
Аралык башка жерди көрсөткөндө
Конфигурациядагы эки кошуна окшош симптомдорду жана ар башка түзөтүүлөрдү пайда кылат. Белгиленген мезгилде эч нерсе келбесе, ping-restart туннелди кайра иштетет, ал эми ping-exit кардарды толугу менен түшүрөт. Журналдын эч жеринде кайра сүйлөшүүсүз бош турган үзүлүү буларга же UDP картасын өз графиги боюнча мөөнөтүн бүтүргөн NAT түзмөгүнө таандык.
Керектөөчү маршрутизаторлор, мобилдик хотспоттор жана оператордук деңгээлдеги NAT баары тең бош турган UDP сессияларынын мөөнөтүн эч кимге айтпай бүтүрөт. Бул бузуктук саатка эмес, бош турууга ээрчийт, жана бул — белги: он тынч мүнөттөн кийин үзүлүп, бир саат туруктуу трафикке чыдаган сессия кайра сүйлөшпөйт.
Төртүнчүсүн өзгөртүүдөн мурун үч нерсени жазыңыз: өлчөгөн аралыгыңызды, тапкан колдонуудагы маанини жана аны көрсөткөн буйрукту. Эгер таймер кыймылдаганда аралык да кыймылдаса, механизм аныкталды, ал эми түзөтүү — жогорудагы алмашуу тууралуу чечим. Эгер кыймылдабаса, жөндөөнү кайтарып коюңуз жана keepalive, NAT абалы жана пакет жоготууну байкоону улантыңыз.