Ikstundas OpenVPN pārtraukums: atkārtotas sarunas vai īsta atkārtota savienošana?
Pārtraukums aizdomīgi apaļā intervālā parasti ir atslēgu atjaunināšana, nevis mirusi saite. Pirms kaut ko atslēgt, izlasiet faktisko taimeri un žurnāla rindu.
Sešdesmit minūtes, vai trīsdesmit, vai simts divdesmit: pārtraukums, kas iekrīt apaļā intervālā, gandrīz nekad nav tīkls. OpenVPN pēc taimera atjaunina atslēgu materiālu, kas aizsargā datu kanālu, un īsāks taimeris par to, ko pieņēmāt, izskatās tieši kā saite, kas nemitīgi sabrūk. Lietotāji ziņo par pārtrauktu savienojumu, bet žurnāls ziņo par veiksmīgu atslēgu apmaiņu. Zemāk esošā instrukcija atdala šo atjaunināšanu no īstas pārstartēšanas, nolasa faktiski spēkā esošo vērtību un maina to tikai pēc tam, kad izmaksas ir uz galda.
Veiciet soļus secībā, jo pirmais izlemj, vai pārējā lapa uz jums vispār attiecas. Ja pārleksit uz priekšu, pavadīsit vakaru, regulējot taimeri tādas kļūmes dēļ, kurai ar to nav nekāda sakara.
Atšķiriet maigu atiestatīšanu no pārstartēšanas
Žurnāla rinda ir visa diagnostika. Atkārtotas sarunas ieraksta maigu atiestatīšanu un pēc tam jaunu atslēgu apmaiņu tajā pašā tunelī: saskarne saglabā savu adresi, maršruti atkal netiek pievienoti, un izveidotās TCP sesijas parasti pārdzīvo ar pauzi. Īsta pārstartēšana pārrauj sesiju, pārbūvē saskarni, var izsniegt citu klienta adresi un nogalina ikvienu ilglaicīgu savienojumu. Abi notikumi ir parasti; tikai viens no tiem izskaidro pārtrauktu zvanu.
journalctl -u openvpn-client@office -b --no-pager | grep -nE 'soft reset|Connection reset|reneg|TLS Error'
openvpn --version | head -n 1
Versijas rinda ir svarīga, jo žurnāla formulējums mainās starp laidieniem, un ziņojums, ko atceraties no 2.3, 2.6 var būt formulēts citādi. Lasiet savu žurnālu, nevis kāda cita foruma izrakstu. Kad lūdzat palīdzību, citējiet precīzo rindu, jo pārstāsts zaudē detaļu, kas identificē notikumu. Ja saskarnes adrese notikuma laikā nav mainījusies un sesiju saraksts ir pārdzīvojis, jūs redzat atjaunināšanu, un pārējās sadaļas ir piemērojamas.
Lasiet faktisko taimeri, nevis savu failu
reneg-sec ir sekunžu skaits starp datu kanāla atkārtotajām sarunām, un tā noklusējums ir 3600. Katra puse nes savu vērtību, un tieši mazākā no abām faktiski izraisa atjaunināšanu. Šis viens noteikums izskaidro lielāko daļu ziņojumu: klienta profils, kas nosaka lielu skaitli, joprojām tiek atiestatīts ik stundu, kamēr serveris saglabā noklusējumu.
grep -Rn --include='*.conf' -E 'reneg-sec|reneg-bytes' /etc/openvpn
# server side, including included files
grep -Rn -E '^reneg-sec' /etc/openvpn/server/
Izlasiet arī servera faktisko konfigurāciju, ieskaitot visu, ko tas virza, pirms izdarāt secinājumu no klienta faila. Pēc tam paaugstiniet detalizāciju un novērojiet vienu intervālu no sākuma līdz beigām: 3 līmenis jau rāda atkārtoto sarunu rindas, un laika zīmes pasaka, vai notikums atkārtojas ik 3600 sekundes vai seko aktivitātei.
Mainiet to tur, kur tas patiešām tiek virzīts
Aprite esošais līdzeklis ir viena rinda klienta profilā, un apmēram pusi laika tā ir nepareizā vieta. Tā kā uzvar puses zemākā vērtība, klients, kas taimeri iestata uz nulli, joprojām var tikt atkārtoti sarunāts ar serveri, kas nav mainījies.
# on both ends, or on the side that owns the pushed configuration
reneg-sec 0
Ja profili tiek ģenerēti centralizēti, rediģējiet veidni, nevis izvietoto kopiju, citādi nākamā nodrošināšanas palaišana atjaunos tikko noņemto vērtību. Pārbaudiet, novērojot divus intervālus, nevis vienu: viena klusa stunda saskan arī ar taimeri, kas iestatīts uz 7200.
Izlemiet arī, kas notiek jauktā izvietošanā. Ja izmaiņas vispirms izvēršat klientiem, paliek logs, kurā serveris joprojām izraisa atjaunināšanu; tas ir nekaitīgi, bet mulsinoši, ja novērojat žurnālus apstiprinājumam. Vispirms mainiet to pusi, kurai ir mazākā vērtība, un simptoms pazudīs tajā punktā, kuru gaidāt.
No kā jūs atsakāties, atslēdzot atkārtotas sarunas
Regulāras atkārtotas sarunas ierobežo, cik ilgi viens datu kanāla atslēgu komplekts aizsargā trafiku. Taimera izslēgšana nesalauž tuneli, un mājas maršrutētājā vai maza biroja vārtejā praktiskā iedarbība ir pieticīga. Tas tomēr ir maiņa, un maiņu ir vērts nosaukt pirms tās veikšanas. Mainās tas, cik ilgi viens atslēgu komplekts aizsargā sesiju, nevis tas, vai tunelis vispār darbojas.
Saprātīgais atslēgšanas gadījums ir atiestatīšana, kas salauž kaut ko tādu, ko nevar turpināt: zvans, kas pārtrūkst, attālinātās darbvirsmas sesija, kas jāizveido no jauna, dublējums, kas sākas no sākuma. Ja pauze lietotājiem nav redzama, noklusējuma saglabāšana neko nemaksā un saglabā jums doto atslēgu rotāciju.
Dodiet priekšroku cēloņa labošanai, ja modelis to pieļauj. Atjaunināšana, kas neizdodas pusceļā, kamēr pirmā rokasspiediena reize izdevās, norāda uz ceļu, nevis taimeri: meklējiet paketes izmēra problēmu lielākajā vadības kanāla apmaiņā, stāvokļa ugunsmūri, kas nomet plūsmu, vai priekšlikumu, kas izdodas tikai pirmajā mēģinājumā. Katrs no tiem atstāj pēdas tajā pašā žurnālā, kuru tikko lasījāt. Taimera izslēgšana slēpj šos pierādījumus.
Kad intervāls norāda citur
Divi kaimiņi konfigurācijā rada līdzīgus simptomus un atšķirīgus labojumus. ping-restart pārstartē tuneli, kad noteiktā laika posmā nekas neienāk, bet ping-exit pilnībā izslēdz klientu. Pārtraukums dīkstāvē bez jebkādām atkārtotām sarunām žurnālā pieder šiem vai NAT ierīcei, kas ļāva UDP kartējumam izbeigties pēc sava grafika.
Patērētāju maršrutētāji, mobilie hotspoti un operatora līmeņa NAT ļauj dīkstāves UDP sesijām izbeigties, nevienam neziņojot. Šī kļūme seko dīkstāvei, nevis pulkstenim, un tā ir pazīme: sesija, kas pārtrūkst pēc desmit klusām minūtēm un pārdzīvo stundu vienmērīgas plūsmas, neveic atkārtotas sarunas.
Pierakstiet trīs lietas pirms ceturtās maiņas: izmērīto intervālu, atrasto faktisko vērtību un komandu, kas to parādīja. Ja intervāls kustas, kad kustas taimeris, mehānisms ir identificēts, un labojums ir lēmums par iepriekš minēto maiņu. Ja tas nekustas, atgrieziet iestatījumu un turpiniet vērot keepalive, NAT stāvokli un paketes zudumus.