Strângerea de mână WireGuard reușește, dar nu se întoarce niciun răspuns
O strângere de mână recentă dovedește că cheile funcționează. Urmați o singură adresă internă și citiți contoarele de transfer înainte de a da vina pe tunel, pe firmware sau pe chei.
Strângerile de mână recente sunt o veste bună și o afirmație mult mai mică decât propoziția pe care oamenii vor să o scrie. Perechile au schimbat mesaje de strângere de mână autentificate. Un pachet de aplicație tot trebuie să ajungă la destinația lui internă și să se întoarcă.
Acest gol dintre un plan de control sănătos și un plan de date tăcut este tot subiectul aici. Două citiri ale acelorași contoare vă spun de ce parte a lui sunteți.
Strângerea de mână dovedește chei, nu livrarea
Strângerea de mână WireGuard este un acord de chei cu autentificare. Reușește de îndată ce perechile se pot atinge și au chei valide. Rutarea, politica firewall-ului și destinația însăși sunt întrebări pe care strângerea de mână nu le pune niciodată.
Deci un tunel poate fi perfect stabilit în timp ce fiecare pachet din el este aruncat. Un pachet intern rutat greșit și un răspuns care ia altă cale arată la fel din partea clientului.
O singură adresă internă este tot testul
Alegeți o destinație și rămâneți la ea. Adresa de tunel a perechii înseși este cazul cel mai simplu, iar o gazdă din spatele ei adaugă exact un salt. Alternarea între ele fără a nota schimbarea produce rezultate pe care nimeni nu le poate compara.
Apoi priviți ruta pe care o alege clientul. O rută locală mai specifică poate trimite pachetul în altă parte înainte ca WireGuard să fie întrebat măcar, iar asta se întâmplă ori de câte ori LAN-ul de acasă se suprapune cu intervalul îndepărtat.
ip route get 10.30.8.10
ip -4 addr show wg0
ip route show table all | grep -w wg0
O adresă care se rezolvă la interfața fizică a răspuns deja la întrebare. Tunelul nu aruncă nimic. Pachetul nu a intrat niciodată în el.
Contoarele sunt dovezi, nu o sentință
wg show raportează octeții trimiși și primiți pe pereche, iar cele două numere se mișcă independent. Faceți o citire, faceți o cerere permisă, apoi faceți altă citire în același minut.
wg show wg0 transfer
wg show wg0 latest-handshakes
ping -c 4 10.30.8.10
wg show wg0 transfer
Trimiterea care urcă în timp ce primirea rămâne plată este semnătura unei cereri fără răspuns. Nu spune dacă cererea a fost filtrată, dacă destinația era oprită sau dacă răspunsul a plecat pe altă rută. Sunt trei investigații cu un singur simptom. Separați-le înainte de a schimba orice configurație.
Nici un număr fix de octeți nu este un prag de succes. Valorile contoarelor urmează traficul, iar tratarea unui singur număr ca dovadă de sănătate produce absurdități încrezătoare.
Perechea verifică ea însăși pachetul de retur
Partea îndepărtată acceptă un pachet intern doar când sursa cade în allowedips acelei părți. O rută care există la expeditor nu este suficientă. O intrare de sursă lipsă la receptor aruncă traficul de retur în tăcere.
Firewall-urile gazdei stau în spatele acelei verificări. O regulă de redirecționare care permite interfața tunelului dar nu subrețeaua internă acceptă strângerea de mână și respinge pachetul. Din partea clientului asta arată exact ca o pereche moartă. O gazdă cu două interfețe poate răspunde și din sursa greșită, iar atunci perechea aruncă răspunsul pe care nu l-a așteptat niciodată.
Țineți experimentul cinstit
Testarea unui profil de acces la distanță din aceeași rețea de acasă pe care trebuie să o atingă exersează o cale diferită de cea dorită. Treceți pe rețeaua externă și notați prefixul ei local, ca cele două rulări să poată fi comparate.
Nici un schimb mic reușit nu exclude toate problemele de cale. Pachetele mai mari pot eșua unde trec cele mici, iar un filtru care se potrivește după dimensiune sau protocol se poate comporta diferit sub sarcină.
Păstrați strângerea de mână ca etapa despre care se știe că funcționează și mergeți mai departe de acolo. Următoarea dovadă utilă este unde se oprește o cerere internă, nu un set nou de chei și încă o rundă de presupuneri.