Pasisveikinimas veikia, adreso nebėra: trys WireGuard būsenos
Naujas pasisveikinimas įrodo, kad priešinė pusė atsakė, o ne tai, kad sąsaja išlaiko savo adresą arba kad kitas paketas išeis numatytu viršutiniu kanalu.
WireGuard gali vienu metu turėti naują pasisveikinimą ir neturėti adreso, ir ši būsena yra nuosekli, o ne prieštaringa. Pasisveikinimas yra priešinės pusės įvykis, adresas priklauso sąsajai, o maršrutas nusprendžia, kuriuo viršutiniu kanalu paketas išeis. Trys sluoksniai, trys savininkai, ir kiekvienas gali sugesti, kol kiti du atrodo sveiki.
Jų skaitymas kaip vienos būsenos paverčia dviejų minučių diagnostiką visu popiete, praleistu perkraunant paslaugas.
Pasisveikinimas yra priešinės pusės įvykis, o ne adresavimo įvykis
WireGuard pasisveikinimas įrodo, kad sukonfigūruota priešinė pusė atsakė galiojančiu raktu ir kad sesijos raktai yra aktualūs. Jis nieko nesako apie vietinį sąsajos adresą, nei apie tai, ar koks nors maršrutas ten veda. Adresą priskiria pagalbinė priemonė arba tinklo tvarkyklė, o protokolo konfigūracija tik įvardija priešines puses ir raktus. Šių dviejų painiojimas yra priežastis, kodėl sveikas pasisveikinimas skaitomas kaip veikiantis tunelis.
Todėl wg show gali pranešti apie sekundžių senumo pasisveikinimą sąsajoje, kuri negali priimti nė vieno programos paketo.
Tvarkyklė, kuri iš naujo sukuria sąsają, gali numesti adresą neliesdama priešinės pusės konfigūracijos, ir kitas pasisveikinimas iš karto pavyksta, nes raktai niekada nepasikeitė. Žurnalo eilutė apie sėkmingą pasisveikinimą yra tiksli ir nesusijusi su gedimu.
| 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 |
Sąsajos adresas turi savo savininką
Tunelio įrenginio adresas gali ateiti iš pagalbinės priemonės Address eilutės, iš DHCP kliento, veikiančio sąsajoje, arba iš valdymo tarnybos, kuri jį sukuria prisijungimo metu. Kad ir kas tai būtų, tas komponentas valdo adresą ir jį atkurs arba ne pagal savo logiką. Adreso skaitymas neįvardijant jo savininko palieka jus be paaiškinimo, kodėl jis dingo.
Du savininkai vienoje sąsajoje yra klasikinis gedimas. Pagalbinės priemonės ir darbalaukio tinklo tvarkyklės paleidimas tame pačiame įrenginyje sukuria lenktynes, kuriose vienas pašalina tai, ką kitas ką tik sukonfigūravo, o galinis taškas visą laiką atsakinėja.
Pasirinkite vieną savininką ir leiskite kitai priemonei stebėti, o ne valdyti. Šį sprendimą verta užrašyti, nes simptomas pasirodo po savaičių ir atrodo kaip atsitiktinis adreso praradimas.
Maršrutas pasirenka viršutinį kanalą, o ne sąsaja
Vidinis maršrutas, nukreiptas į wg0, nusprendžia, kad srautas patenka į tunelį. Atskiras sprendimas siunčia užšifruotus išorinius paketus priešinės pusės link, o mazge su keliais viršutiniais kanalais tas sprendimas ateina iš perdavimo lentelės ir politikos taisyklių. Wi-Fi roamingas gali pakeisti išorinį kelią neliesdamas vidinio adreso.
Taigi veikiantis tunelis ir nepasiekiama priešinė pusė yra suderinamos būsenos, kaip ir teisinga priešinė pusė su sugedusiu vidiniu maršrutu. Trys stebėjimai turi būti imami kartu, tuo pačiu metu, kitaip palyginimas neturi prasmės.
Palyginkite tris būsenas vienu ėjimu
Trys tik skaitymo komandos atsako į tris klausimus ta tvarka, kuri gedimą išskiria greičiausiai. Vykdykite jas nieko tarp jų nekeisdami.
ip address show dev wg0
ip route get 10.80.0.1
wg show wg0 latest-handshakes transfer
Pirmoji parodo, ar sąsaja apskritai turi adresą, o antroji parodo, kurį įrenginį konkretus tikslas naudotų dabar. Trečioji praneša paskutinio pasisveikinimo laiką ir baitų skaitiklius, ir ji vienintelė iš trijų apibūdina priešinę pusę, o ne vietinį mazgą.
Skaitykite skaitiklius ir laiko žymą. Pasisveikinimas, kuris nuolat atnaujinamas, kol perdavimas stovi vietoje, reiškia, kad priešinė pusė atsako, bet nieko naudingo nepereina, o tai rodo maršrutizavimą arba ACL, o ne raktus. Laiko žyma, kuri nustoja judėti į priekį esant adresui, rodo aukštyn. Abi išvados ateina iš tos pačios išvesties eilutės, ir nė viena nematoma, jei tik tikrinate, ar pasisveikinimas egzistuoja.
Ištaisykite konkrečią būseną, kuri yra neteisinga, tada išbandykite programą, o ne tunelį. Naujas pasisveikinimas yra įrodymas apie priešinę pusę, o įrodymas apie priešinę pusę nėra įrodymas, kad kitas jūsų naršyklės prašymas ras adresą, maršrutą ir veikiantį viršutinį kanalą. wg-quick vadovas aiškiai nurodo, kuriuos iš jų nustato pagalbinė priemonė, o kurie priklauso protokolui.