Шездесет минута, или тридесет, или сто двадесет: прекид који падне на округао интервал скоро никада није мрежа. 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 потпуно искључује клијента. Прекид у мировању без икаквог поновног преговарања у запису припада њима или NAT уређају који је пустио мапирање UDP да истекне по свом распореду.

Потрошачки рутери, мобилне приступне тачке и NAT на оператерском нивоу пуштају неактивне UDP сесије да истекну без да икоме кажу. Тај квар прати мировање, а не сат, и то је знак: сесија која падне после десет тихих минута и преживи сат равномерног саобраћаја не преговара поново.

Запишите три ствари пре него што промените четврту: интервал који сте измерили, стварну вредност коју сте нашли и команду која ју је показала. Ако се интервал помера кад се тајмер помери, механизам је препознат и поправка је одлука о горњој размени. Ако се не помера, вратите подешавање и наставите да гледате keepalive, стање NAT-а и губитак пакета.

Повезани чланци