WireGuard sūta datus, bet neko nesaņem atpakaļ: kura puse?
Augošs sūtīšanas skaitītājs ir virziens, nevis diagnoze. Pirms kaut ko mainīt, izlemiet, vai pieprasījums nekad nav atstājis tuneli vai atbilde nekad nav atgriezusies.
Sūtīšanas skaitītāji, kas aug, kamēr saņemšanas skaitītājs paliek nullē, raksturo virzienu, nevis diagnozi. Tas pats nolasījums parādās, kad partneris nekad nav pabeidzis rokasspiedienu, kad galamērķis izvēlējās nepareizo partneri, kad tālajā pusē nav atgriešanās maršruta un kad filtrs nomet atbildi ceļā mājās. Katrs no tiem tiek labots citā vietā.
Salīdzinājums, kas saīsina darbu, ir starp pieprasījumu, kas nekad nav atstājis tuneli, un atbildi, kas nekad nav atgriezusies. Viens ieraksts pareizajā saskarnē izšķir starp tiem.
Skaitītāji raksturo apjomu, nevis kļūdas virzienu
WireGuard skaitītāji reģistrē, ko saskarne nodeva partnerim un ko no tā saņēma. Tie nenosaka, kurš galamērķis, kurš partneris vai kura apmaiņas puse neizdevās. Fona trafiks kopsummas padara vēl mazāk informatīvas, jo daži baiti var būt savienojuma uzturēšanas ziņojumi vai nesaistītas plūsmas. Lasiet tos kā norādi, ka saskarne ir aktīva, un pēc tam pārstājiet tos uzskatīt par pierādījumu.
Pirmais noderīgais fakts ir tas, vai rokasspiediens ir aktuāls. Bez tā šim partnerim nekas netika šifrēts, un saņemšanas skaitītājam nav iemesla kustēties.
Partnera izvēle vai atbildes ceļš: divi skaidrojumi
Pirmais skaidrojums ir tāds, ka pakete nekad nesasniedza paredzēto partneri, jo maršruts norādīja citur vai partnera atļautie prefiksi neaptvēra galamērķi. Otrais ir tāds, ka pakete ieradās, bet atbilde nevarēja atgriezties, un tā ir maršrutēšanas problēma tālajā galā. Tabula tos atdala pēc tā, ko jūs novērotu katrā punktā.
| Observation | Points to |
|---|---|
| No handshake while transmit climbs | Peer selection or endpoint |
| Handshake current, request visible on the server | Reply path or far-side route |
| Request never visible on the server | Allowed prefixes or local route |
| Both packets visible, nothing reaches the client | Return filter or translation |
Lasiet tabulu no augšas. Trūkstošs rokasspiediens sūta jūs pie atslēgām, galapunktiem un ārējā ceļa, jo vēl nav nekā cita, ko pārbaudīt. Aktuāls rokasspiediens ar redzamu pieprasījumu serverī pārvieto problēmu uz atgriešanās virzienu, kur izšķir paša galamērķa maršrutu tabula. Pieprasījums, kas nekad neparādās serverī, ir izvēles problēma, un abu partneru atļautie prefiksi ir pirmais, kas jāsalīdzina.
Divi no šīm četrām rindām tiek laboti klientā un divi serverī. Zināšana, kurā pārī jūs esat, ir lielākā darba daļa.
Kur pazūd atbildes
Atbilde atstāj galamērķi, sasniedz servera tuneļa saskarni un tiek šifrēta tam partnerim, kura atļautās adreses atbilst klienta iekšējai adresei. Ja šī atbilstība neizdodas, atbilde tiek klusi izmesta, un no klienta puses tas izskatās tieši kā tīkla kļūme. Ja atbilde ir šifrēta un paša klienta filtrs to noraida, simptoms atkal ir identisks. Abos gadījumos vajadzīgs ieraksts, nevis skaitītājs.
Spēcīgākā šīs kļūdas forma ir serveris, kas pārsūta paketes klienta vietā, bet kam nav atgriešanās maršruta uz klienta iekšējo diapazonu. Tas pieņem pieprasījumu, sūta atbildi uz savu noklusējuma vārteju, un tunelis to nekad neredz. Serverim pievienots plašs tulkošanas noteikums slēpj šo kļūmi, nevis salabo maršrutu.
Pārbaudiet vienu galamērķi no sākuma līdz beigām
Izvēlieties vienu galamērķi partnera diapazonā un pārbaudiet to, kamēr rokasspiediens acīmredzami ir aktuāls. Tālāk dotās komandas nolasa partnera stāvokli, izvēlēto maršrutu un abas apmaiņas puses. Palaidiet ierakstu saskarnē, ko šifrētās paketes faktiski izmanto.
wg show wg0 latest-handshakes
wg show wg0 transfer
ip route get 10.60.9.5
sudo tcpdump -ni wg0 host 10.60.9.5
Ieraksts, kurā pieprasījums redzams tuneļa saskarnē, bet nekas neatgriežas, ir atbilde no servera puses, un galamērķa maršrutu tabula ir nākamā vieta, kur jāskatās. Ja neparādās pilnīgi nekas, pakete nogāja citu ceļu, tāpēc aizdomās turamais ir vietējais maršruts. Apmaiņa, kas redzama abos ierakstos bez progresa lietojumprogrammā, pārvieto jautājumu uz paketes izmēru vai uz filtru, ko saskarnes statistika nekad nerāda. Paturiet pārbaudē vienu galamērķi un vienu klientu, jo otrs mainīgais pierādījumu atkal pārvērš iespaidā.
Ja vārdi neizdodas, kamēr atļautā adrese darbojas, atbilde ir DNS, nevis tunelī. Ja iesprūst tikai lieli pārraides, paketes izmēru pārbaudiet atsevišķi.