WireGuard poate avea simultan un handshake recent și nicio adresă, iar această stare este coerentă, nu contradictorie. Handshake-ul este un eveniment al partenerului, adresa aparține interfeței, iar ruta decide prin ce legătură superioară iese un pachet. Trei straturi, trei proprietari, iar fiecare poate eșua în timp ce celelalte două par sănătoase.

Citirea lor ca un singur status este ce transformă un diagnostic de două minute într-o după-amiază întreagă de repornit servicii.

Handshake-ul este un eveniment al partenerului, nu un eveniment de adresare

Handshake-ul WireGuard dovedește că partenerul configurat a răspuns cu o cheie validă și că cheile de sesiune sunt actuale. Nu spune nimic despre adresa locală a interfeței și nici dacă vreo rută indică spre ea. Adresa este atribuită de un asistent sau de un manager de rețea, în timp ce configurația protocolului doar numește parteneri și chei. Confundarea celor două este motivul pentru care un handshake sănătos este citit ca un tunel care funcționează.

De aceea wg show poate raporta un handshake de câteva secunde pe o interfață care nu poate primi niciun pachet de la o aplicație.

Un manager care recreează interfața poate pierde adresa fără să atingă configurația partenerului, iar următorul handshake reușește imediat pentru că cheile nu s-au schimbat niciodată. Linia de jurnal despre un handshake reușit este exactă și irelevantă pentru defecțiune.

ObservationWhich layer it belongs toWrong conclusion it invites
Handshake a few seconds oldPeer and keysThe tunnel is usable for application traffic
Address present on wg0Interface configurationTraffic actually egresses through it
Route points at wg0Forwarding tableThe outer packet uses the intended uplink

Adresa interfeței are propriul proprietar

O adresă pe dispozitivul tunel poate veni din linia Address a unui asistent, de la un client DHCP care rulează pe interfață sau de la un demon de administrare care o creează la conectare. Oricare ar fi, acea componentă deține adresa și o va restabili sau nu după propria logică. Citirea adresei fără a-i numi proprietarul te lasă fără explicație pentru motivul dispariției.

Doi proprietari pe o singură interfață este defecțiunea clasică. Pornirea unui asistent și a unui manager de rețea de birou peste același dispozitiv produce o cursă în care unul elimină ce celălalt tocmai a configurat, iar punctul final continuă să răspundă tot timpul.

Alege un singur proprietar și lasă celălalt instrument să observe în loc să administreze. Această decizie merită notată, pentru că simptomul apare săptămâni mai târziu și pare o pierdere aleatorie de adresă.

Ruta alege o legătură superioară, nu interfața

O rută internă care indică spre wg0 decide că traficul intră în tunel. O decizie separată trimite pachetele externe criptate spre partener, iar pe un host cu mai multe legături superioare acea decizie vine din tabela de expediere și din regulile de politică. Un roaming Wi-Fi poate schimba calea externă fără să atingă adresa internă.

Așadar un tunel funcțional și un partener inaccesibil sunt stări compatibile, la fel ca un partener corect și o rută internă ruptă. Cele trei observații trebuie luate împreună, în același moment, altfel comparația este lipsită de sens.

Compară cele trei stări într-o singură trecere

Trei comenzi doar pentru citire răspund celor trei întrebări în ordinea care izolează cel mai repede defecțiunea. Rulează-le fără să schimbi nimic între ele.

ip address show dev wg0
ip route get 10.80.0.1
wg show wg0 latest-handshakes transfer

Prima arată dacă interfața are vreo adresă, iar a doua arată ce dispozitiv ar folosi acum o destinație anume. A treia raportează momentul ultimului handshake și contoarele de octeți, și este singura dintre cele trei care descrie partenerul, nu gazda locală.

Citește contoarele, precum și marca de timp. Un handshake care se reînnoiește continuu în timp ce transferul rămâne plat înseamnă că partenerul răspunde dar nu trece nimic util, ceea ce indică rutarea sau o ACL, nu cheile. O marcă de timp care nu mai avansează în prezența unei adrese indică în schimb în amonte. Ambele citiri provin din aceeași linie de ieșire și niciuna nu este vizibilă dacă verifici doar că există un handshake.

Corectează starea concretă care este greșită, apoi testează din nou aplicația, nu tunelul. Un handshake recent este o dovadă despre partener, iar dovada despre partener nu este dovada că următoarea cerere din browserul tău va găsi o adresă, o rută și o legătură superioară funcțională. manualul wg-quick spune explicit care dintre acestea sunt configurate de asistent și care aparțin protocolului.

Articole similare