Trei lucruri trebuie să fie în acord înainte ca un tunel Kerio să transporte trafic: adresa de pe interfața kvnet, valoarea înregistrată de client și ceea ce așteaptă politica serverului sau DHCP. Când nu sunt în acord, tunelul se autentifică totuși și urcă totuși, și exact asta face defectul înșelător. Interfața este creată la fiecare conexiune, așa că o adresă stabilită manual aparține acelei sesiuni și nimic altceva. Aceasta este forma problemei, iar soluția este un cârlig, nu un fișier de configurare. Restul este de unde se citește valoarea și unde se aplică.

De ce adresa revine mereu

kvnet este un adaptor virtual pe care clientul îl creează la începutul unei conexiuni și îl elimină la sfârșit. Un ip link set manual supraviețuiește deci exact cât durează sesiunea căreia i-a fost aplicat, iar conexiunea următoare pornește de la ce atribuie clientul. Pe o mașină unde clientul nu reușește să aplice adresa așteptată, fiecare reconectare reintroduce aceeași nepotrivire, iar regula de închiriere sau de acces respinge din nou dispozitivul.

Acest tipar este diagnostic în sine. Un tunel care funcționează o sesiune și eșuează în următoarea nu este o problemă de acreditări, pentru că acreditările nu se schimbă între conexiuni.

Citiți valoarea de la client, nu de la interfață

Clientul Linux scrie detaliile negocierii în jurnalul său de depanare, iar adresa pe care intenționează să o folosească apare acolo ca ultimul token în formă de adresă din secvența conexiunii. Comparați-o cu ceea ce deține de fapt nucleul, care este la un readlink distanță: cat /sys/class/net/kvnet/address.

Dacă cele două diferă, clientul cunoștea valoarea corectă și nu a reușit să o aplice, iar un cârlig care o aplică după ce interfața există închide această lacună. Dacă jurnalul nu conține nicio adresă, problema este mai devreme și ține de versiunea clientului sau de profilul serverului, nu de un script.

Aplicați-o după ce interfața există

Utilizatorii NetworkManager pot plasa un script în directorul său de dispecer și pot acționa doar când interfața VPN urcă. Un client administrat de systemd necesită mai multă atenție: un drop-in executat la pornirea serviciului se activează de obicei înainte ca adaptorul să existe, așa că cârligul trebuie să aștepte interfața în loc să o presupună. Stabiliți atunci adresa, iar dacă nucleul refuză în timp ce legătura este sus, coborâți-o, stabiliți adresa și ridicați-o din nou. Citiți tokenul extras înapoi printr-un model MAC înainte de a-l pasa la ip link, ca o linie de jurnal neașteptată să nu poată deveni un argument.

Orice rulează ca root din jurnalul unui client merită o proprietate îngustă: un fișier deținut de root, care nu poate fi scris de alții, și fără interpolare de shell dincolo de adresa validată. Țineți verificarea modelului în interiorul scriptului. Nu lăsați conținutul jurnalului să decidă ce comandă rulează.

Verificați închirierea, nu legătura

ip -4 -o addr show dev kvnet ar trebui să arate o adresă în intervalul așteptat, ip neigh show dev kvnet ar trebui să arate poarta de acces, iar un serviciu din spatele VPN ar trebui să răspundă. Apoi deconectați-vă și reconectați-vă o dată; dacă adresa revine, cârligul se declanșează pe evenimentul greșit sau nu se declanșează deloc.

O interfață care apare cu adresa corectă și nu primește niciodată o închiriere indică partea serverului. Aceea este o altă verificare și de obicei o altă echipă. Confirmați că contul este permis și că pool-ul mai are o adresă înainte de a edita din nou cârligul.

Revedeți soluția ocolitoare după o actualizare

O versiune de client care stabilește corect adresa lasă cârligul dumneavoastră să aplice o valoare învechită, ceea ce este un defect nou introdus de o corectură. De asemenea, nu copiați niciodată un MAC de pe altă mașină sau dintr-o postare de forum; folosiți valoarea pe care acest client o înregistrează pentru acest cont și notați data la care ați verificat-o.

Țineți scriptul suficient de scurt pentru a fi citit dintr-o singură ședință. Soluțiile ocolitoare care analizează jurnale sunt temporare prin natura lor. Supraviețuiesc cele pe care un cititor viitor le înțelege fără firul original.

Articole similare