P_CONTROL_HARD_RESET_CLIENT_V2 u logu: je li to greška?
Hard-reset opkod otvara sesiju; nije kvar. Čitajte dalje da pronađete grešku certifikata, akreditiva ili usmeravanja koja vas je zaustavila.
Linija se ponavlja svakih nekoliko sekundi i izgleda kao uzrok svega: paket nazvan control hard reset, koji dolazi od klijenta koji nigde ne stiže. To nije greška. To je prva poruka nove sesije, a ponavljanje je simptom nečeg drugog što kasnije pada. Razdvajanje onoga što oznaka kaže od onoga što je veza uradila posle je cela dijagnoza.
Opkod imenuje poziciju u protokolu
OpenVPN multipleksira nekoliko vrsta paketa preko jednog soketa, a opkod govori primaocu koju vrstu drži. Hard-reset paketi otvaraju sesiju, kontrolni paketi nose materijal rukovanja, potvrde potvrđuju prijem, a podaci nose teret tunela. Čitanje prvog bajta pokazuje gde u toj razmeni paket pripada, a definicije paketa u izvornom kodu imenuju svaku familiju izričito.
To je sve što govori. Paket označen kao početni reset klijenta dokazuje da je paket stigao do vaše tačke posmatranja i da druga strana želi da započne sesiju. Ne dokazuje da je klijent poverovao vašem certifikatu, da su njegovi akreditivi prihvaćeni ili da je podatkovni kanal ikada postao upotrebljiv.
Sufiks V2 je oznaka generacije protokola za tu familiju paketa, a ne verzija proizvoda i ne podešavanje koje instalirate. Ništa u imenu ne odnosi se na resetovanje tunela, ponovno pokretanje servisa ili čišćenje keša.
Šta klijent zapravo radi u tom trenutku
Klijent otvara identifikator sesije na koji će obe strane prikačiti sledeći kontrolni saobraćaj. Kada je konfigurisana zaštita kontrolnog kanala, taj prvi paket već nosi HMAC koji primaocu omogućava da odluči hoće li uložiti trud u ostatak razmene. Primalac koji ga ne može proveriti tiho odbacuje paket, zbog čega pogrešan zajednički ključ izgleda kao klijent koji govori u prazno.
Ništa vidljivo korisniku još se nije dogodilo. Nijedan certifikat nije validiran, nijedno korisničko ime nije ponuđeno i nijedna adresa tunela nije dodeljena. Reset je preambula rukovanja, pa je svaka ocena veze u ovom trenutku preuranjena.
Za praznu petlju ponovnog povezivanja zanimljiv detalj je interval. Klijent koji pokušava ponovo u fiksnom ciklusu bez napretka obično se odbija pre nego što može da napreduje, a razlog je u logu druge strane, a ne u imenu paketa.
Gde se krije pravi kvar nakon resetovanja
Pročitajte dva loga jedan uz drugi i pronađite prvi događaj koji nije reset. Kod klijenta se neuspeh validacije certifikata prijavljuje s konkretnim razlogom: istekao certifikat, nesklad imena ili nepoznat izdavalac. Na serveru se odbijanje akreditiva prijavljuje kao neuspeh autentifikacije s vlastitim razlogom. Oba su daleko konkretnija od ponovljenog pogleda servera na nove pokušaje.
Uparite jedan pokušaj po vremenskoj oznaci umesto čitanja svakog loga izolovano, jer se isti neuspeh pojavljuje na oba mesta sa različitom formulacijom i različitom težinom. Strana koja odustaje obično navede zašto.
Ako nijedna strana ne prijavljuje odbijanje, a razmena i dalje staje, granica je dostupnost, a ne poverenje. Vatrozid koji odbacuje povratni smer, uređaj za prevođenje mrežnih adresa kojem ističe mapiranje ili problem s MTU-om koji ubija veće pakete rukovanja svi stvaraju zaglavljenu razmenu bez ikakve greške autentifikacije.
grep -nE 'VERIFY|AUTH_FAILED|TLS Error|SIGUSR1' /var/log/openvpn*.log
Ta pretraga nije dijagnoza sama po sebi, ali vas u jednom koraku premesta iz protokolnog rečnika u stvarnu klasu kvara.
Zašto je ukidanje provere pogrešan refleks
Kada se reset stalno pojavljuje, najbrže rešenje na izgled je isključiti validaciju certifikata ili odustati od zaštite kontrolnog kanala da se nešto poveže. To menja dijagnostikovan kvar za nedijagnostikovan i ostavlja implementaciju da prihvata strane koje je napravljena da odbije.
Promenite umesto toga granicu koja je zaista pala. Problem poverenja pripada sertifikacionom telu i profilu koji ga referencira. Problem vremena pripada satu. Problem akreditiva pripada autentifikacionom backendu koji ih je odbio, a nedostupna strana pripada putu između dva hosta.
Opkod je u razgovoru s podrškom koristan za jednu stvar: govori vam da je druga strana otišla dovoljno daleko da pokuša. Ono što se dogodilo posle trebate znati, i to je zapisano u onom logu koji beleži prvo konkretno odbijanje. Pođite odatle, i linija reseta prestaje da izgleda kao uzrok i počinje da izgleda kao vremenska oznaka.