Rokasspiediens darbojas, adrese pazudusi: trīs WireGuard stāvokļi
Svaigs rokasspiediens pierāda, ka pretējā puse atbildēja, nevis to, ka interfeiss saglabā savu adresi vai ka nākamā pakete iziet pa paredzēto augšupējo kanālu.
WireGuard var vienlaikus turēt svaigu rokasspiedienu un nekurināt adresi, un šis stāvoklis ir saskaņots, nevis pretrunīgs. Rokasspiediens ir pretējās puses notikums, adrese pieder interfeisam, un maršruts izlemj, pa kuru augšupējo kanālu pakete iziet. Trīs slāņi, trīs īpašnieki, un katrs var sabojāties, kamēr pārējie divi izskatās veseli.
To lasīšana kā viena statusa ir tas, kas divu minūšu diagnostiku pārvērš veselā pēcpusdienā, kas paiet ar pakalpojumu pārstartēšanu.
Rokasspiediens ir pretējās puses notikums, nevis adresācijas notikums
WireGuard rokasspiediens pierāda, ka konfigurētā pretējā puse atbildēja ar derīgu atslēgu un ka sesijas atslēgas ir aktuālas. Tas neko nepasaka par interfeisa lokālo adresi, ne arī par to, vai kāds maršruts turp ved. Adresi piešķir palīgs vai tīkla pārvaldnieks, kamēr protokola konfigurācija tikai nosauc pretējās puses un atslēgas. Šo divu sajaukšana ir iemesls, kāpēc vesels rokasspiediens tiek lasīts kā strādājošs tunelis.
Tāpēc wg show var ziņot par sekunžu vecu rokasspiedienu interfeisā, kas nevar saņemt pat vienu lietojumprogrammas paketi.
Pārvaldnieks, kas atkārtoti izveido interfeisu, var nomest adresi, neaizskarot pretējās puses konfigurāciju, un nākamais rokasspiediens uzreiz izdodas, jo atslēgas nekad nemainījās. Žurnāla rinda par veiksmīgu rokasspiedienu ir precīza un kļūmei nebūtiska.
| Observation | Which layer it belongs to | Wrong conclusion it invites |
|---|---|---|
| Handshake a few seconds old | Peer and keys | The tunnel is usable for application traffic |
Address present on wg0 | Interface configuration | Traffic actually egresses through it |
Route points at wg0 | Forwarding table | The outer packet uses the intended uplink |
Interfeisa adresei ir savs īpašnieks
Adrese tuneļa ierīcē var nākt no palīga Address rindas, no DHCP klienta, kas darbojas interfeisā, vai no pārvaldības dēmona, kas to izveido savienošanas laikā. Lai kas tas būtu, šis komponents pārvalda adresi un to atjaunos vai neatjaunos pēc savas loģikas. Adreses lasīšana, nenosaucot tās īpašnieku, atstāj jūs bez paskaidrojuma, kāpēc tā pazuda.
Divi īpašnieki vienā interfeisā ir klasiskā kļūme. Palīga un darbvirsmas tīkla pārvaldnieka palaišana vienā ierīcē rada skrējienu, kurā viens noņem to, ko otrs tikko konfigurēja, un galapunkts visu laiku atbild.
Izvēlieties vienu īpašnieku un ļaujiet otram rīkam novērot, nevis pārvaldīt. Šo lēmumu ir vērts pierakstīt, jo simptoms parādās pēc nedēļām un izskatās kā nejaušs adreses zudums.
Maršruts izvēlas augšupējo kanālu, nevis interfeiss
Iekšējs maršruts, kas norāda uz wg0, izlemj, ka satiksme ieiet tunelī. Atsevišķs lēmums sūta šifrētās ārējās paketes pretējās puses virzienā, un resursdatorā ar vairākiem augšupējiem kanāliem šis lēmums nāk no pāradresācijas tabulas un politikas noteikumiem. Wi-Fi viesabonēšana var mainīt ārējo ceļu, neaizskarot iekšējo adresi.
Tātad strādājošs tunelis un nesasniedzama pretējā puse ir savienojami stāvokļi, tāpat kā pareiza pretējā puse un salauzts iekšējais maršruts. Trīs novērojumi jāņem kopā, tajā pašā mirklī, citādi salīdzinājumam nav jēgas.
Salīdziniet trīs stāvokļus vienā piegājienā
Trīs tikai lasāmas komandas atbild uz trim jautājumiem tādā secībā, kas kļūmi izolē visātrāk. Izpildiet tās, neko starp tām nemainot.
ip address show dev wg0
ip route get 10.80.0.1
wg show wg0 latest-handshakes transfer
Pirmā parāda, vai interfeisam vispār ir adrese, un otrā parāda, kuru ierīci konkrēts galamērķis izmantotu tagad. Trešā ziņo par pēdējā rokasspiediena laiku un baitu skaitītājiem, un tā ir vienīgā no trim, kas raksturo pretējo pusi, nevis vietējo resursdatoru.
Lasiet skaitītājus, kā arī laika zīmogu. Rokasspiediens, kas nepārtraukti atjaunojas, kamēr pārsūtīšana stāv uz vietas, nozīmē, ka pretējā puse atbild, bet nekas noderīgs neplūst cauri, kas norāda uz maršrutēšanu vai ACL, nevis uz atslēgām. Laika zīmogs, kas pārstāj virzīties uz priekšu, kamēr adrese ir, norāda uz augšu. Abi nolasījumi nāk no vienas un tās pašas izvades rindas, un neviens nav redzams, ja pārbaudāt tikai to, vai rokasspiediens pastāv.
Izlabojiet konkrēto stāvokli, kas ir nepareizs, un pēc tam pārbaudiet lietojumprogrammu, nevis tuneli. Svaigs rokasspiediens ir pierādījums par pretējo pusi, un pierādījums par pretējo pusi nav pierādījums, ka jūsu pārlūka nākamais pieprasījums atradīs adresi, maršrutu un strādājošu augšupējo kanālu. wg-quick rokasgrāmata skaidri pasaka, kurus no tiem iestata palīgs un kuri pieder protokolam.