P_CONTROL_HARD_RESET_CLIENT_V2 žurnale: ar tai klaida?
hard-reset operacijos kodas atidaro sesiją, tai ne gedimas. Skaitykite toliau, kad rastumėte sertifikato, prisijungimo duomenų ar maršrutizavimo gedimą, kuris jus iš tikrųjų sustabdė.
Eilutė kartojasi kas kelias sekundes ir atrodo kaip visko priežastis: paketas pavadinimu control hard reset, ateinantis iš kliento, kuris niekur nenuėjo. Tai ne klaida. Tai pirmoji naujos sesijos žinutė, o kartojimasis yra simptomas, kad toliau nepavyksta kažkas kita. Atskyrimas, ką sako etiketė, nuo to, ką ryšys padarė po to, ir yra visa diagnostika.
Operacijos kodas nurodo vietą protokole
OpenVPN multipleksuoja kelis paketų tipus per vieną lizdą, o operacijos kodas pasako priėmėjui, kokį tipą jis laiko. hard-reset paketai atidaro sesiją, valdymo paketai neša rankos paspaudimo medžiagą, patvirtinimai patvirtina gavimą, o duomenų paketai neša tunelio naudingąją apkrovą. Pirmo baito perskaitymas parodo, kur tame apsikeitime paketas priklauso, o pirminio kodo paketų apibrėžtys kiekvieną šeimą įvardija aiškiai.
Tai viskas, ką jis sako. Paketas, pažymėtas kaip pradinis kliento atstatymas, įrodo, kad paketas pasiekė jūsų stebėjimo tašką ir kad partneris nori pradėti sesiją. Tai neįrodo, kad klientas pasitikėjo jūsų sertifikatu, kad jo prisijungimo duomenys buvo priimti ar kad duomenų kanalas kada nors tapo naudojamas.
Priesaga V2 yra tos paketų šeimos protokolo kartos žymė, ne produkto versija ir ne nustatymas, kurį įdiegiate. Pavadinime nieko nėra apie tunelio atstatymą, paslaugos paleidimą iš naujo ar podėlio išvalymą.
Ką klientas tuo metu iš tikrųjų daro
Klientas atidaro sesijos identifikatorių, prie kurio abi pusės pririš tolesnį valdymo srautą. Kai valdymo kanalo apsauga sukonfigūruota, tas pirmas paketas jau neša HMAC, leidžiantį priėmėjui nuspręsti, ar verta skirti pastangų likusiai apsikeitimo daliai. Priėmėjas, kuris negali jo patikrinti, paketą tyliai atmeta, todėl neteisingas bendras raktas atrodo kaip klientas, kalbantis į tuštumą.
Naudotojui nieko matomo dar neįvyko. Nė vienas sertifikatas nebuvo patvirtintas, nė vienas naudotojo vardas nepasiūlytas ir nė vienas tunelio adresas nepriskirtas. Atstatymas yra rankos paspaudimo įžanga, todėl bet koks sprendimas apie ryšį šiuo metu yra per ankstyvas.
Tuščioje pakartotinio prisijungimo kilpoje įdomi detalė yra intervalas. Klientas, kuris bando iš naujo fiksuotu ciklu nepasistūmėjęs, paprastai atmetamas dar prieš galėdamas pasistūmėti, o priežastis yra partnerio žurnale, ne paketo pavadinime.
Kur po atstatymo slepiasi tikrasis gedimas
Skaitykite du žurnalus greta ir raskite pirmą įvykį, kuris nėra atstatymas. Kliente sertifikato patikros nepavykimas pranešamas su konkrečia priežastimi: pasibaigęs sertifikatas, vardo neatitikimas ar nežinomas išdavėjas. Serveryje prisijungimo duomenų atmetimas pranešamas kaip autentifikacijos nepavykimas su savo priežastimi. Abu yra daug konkretesni nei pakartotinis serverio požiūris į naujus bandymus.
Susiekite vieną bandymą pagal laiko žymą, o ne skaitykite kiekvieną žurnalą atskirai, nes tas pats nepavykimas pasirodo abiejose vietose skirtingais žodžiais ir skirtingu sunkumu. Partneris, kuris pasiduoda, paprastai pasako kodėl.
Jei nė viena pusė nepraneša apie atmetimą, o apsikeitimas vis tiek strigta, riba yra pasiekiamumas, o ne pasitikėjimas. Užkarda, kuri atmeta grįžtamąją kryptį, tinklo adresų vertimo įtaisas, kurio atvaizdavimas baigiasi, arba MTU problema, kuri nužudo didesnius rankos paspaudimo paketus, visi sukuria sustojusį apsikeitimą be jokios autentifikacijos klaidos.
grep -nE 'VERIFY|AUTH_FAILED|TLS Error|SIGUSR1' /var/log/openvpn*.log
Ta paieška pati savaime nėra diagnostika, bet vienu žingsniu perkelia jus nuo protokolo žodyno prie tikros gedimo klasės.
Kodėl patikros išjungimas yra netinkama reakcija
Kai atstatymas ir toliau rodomas, greičiausiai atrodantis pataisymas yra išjungti sertifikatų patikrą arba atsisakyti valdymo kanalo apsaugos, kad kažkas prisijungtų. Tai iškeičia diagnozuojamą gedimą į nediagnozuojamą ir palieka diegimą priimti partnerius, kurių atmetimui jis buvo sukurtas.
Vietoj to pakeiskite ribą, kuri iš tikrųjų nepavyko. Pasitikėjimo problema priklauso sertifikatų institucijai ir profiliui, kuris ją nurodo. Laiko problema priklauso laikrodžiui. Prisijungimo duomenų problema priklauso autentifikacijos sistemai, kuri juos atmetė, o nepasiekiamas partneris priklauso keliui tarp dviejų serverių.
Operacijos kodas palaikymo pokalbyje naudingas vienu dalyku: jis pasako, kad partneris nuėjo pakankamai toli, kad pabandytų. Tai, kas įvyko po to, yra tai, ką reikia žinoti, ir tai užrašyta tame žurnale, kuris užfiksuoja pirmą konkretų atmetimą. Pradėkite nuo ten, ir atstatymo eilutė nustoja atrodyti kaip priežastis ir pradeda atrodyti kaip laiko žyma.