WireGuard kan gelyktydig 'n vars handskud en geen adres hê, en daardie toestand is samehangend eerder as teenstrydig. Die handskud is 'n eweknie-gebeurtenis, die adres behoort aan die koppelvlak, en die roete bepaal watter opvoerpad 'n pakket verlaat. Drie lae, drie eienaars, en elkeen kan faal terwyl die ander twee gesond lyk.

Om hulle as een status te lees, is wat 'n diagnose van twee minute in 'n middag van herbegin dienste verander.

'n Handskud is 'n eweknie-gebeurtenis, nie 'n adresseringsgebeurtenis nie

WireGuard se handskud bewys dat die gekonfigureerde eweknie met 'n geldige sleutel geantwoord het en dat die sessiesleutels aktueel is. Dit sê niks oor die plaaslike adres op die koppelvlak nie, en niks oor of enige roete daarheen wys nie. 'n Helper of netwerkbestuurder ken die adres toe, terwyl die protokolkonfigurasie net eweknieë en sleutels noem. Om die twee te verwar, is hoe 'n gesonde handskud as 'n werkende tonnel gelees word.

Dit is waarom wg show 'n handskud van sekondes oud kan rapporteer op 'n koppelvlak wat nie 'n enkele pakket van 'n toepassing kan aanvaar nie.

'n Bestuurder wat die koppelvlak herskep, kan die adres laat val sonder om die eweknie-konfigurasie aan te raak, en die volgende handskud slaag dadelik omdat die sleutels nooit verander het nie. Die logreël oor 'n suksesvolle handskud is akkuraat en irrelevant vir die fout.

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

Die koppelvlakadres het sy eie eienaar

'n Adres op die tonneltoestel kan van 'n helper se Address-reël kom, van 'n DHCP-kliënt wat op die koppelvlak loop, of van 'n bestuursdaemon wat dit by verbindingstyd skep. Wat dit ook al is, daardie komponent besit die adres en sal dit herstel of nie volgens sy eie logika. Om die adres te lees sonder om sy eienaar te noem, laat jou nie in staat om te verduidelik waarom dit verdwyn het nie.

Twee eienaars op een koppelvlak is die klassieke fout. Om 'n helper en 'n lessenaar-netwerkbestuurder oor dieselfde toestel te begin, veroorsaak 'n wedloop waar een verwyder wat die ander pas opgestel het, en die eindpunt bly deurgaans antwoord.

Kies een eienaar en laat die ander gereedskap eerder waarneem as bestuur. Daardie besluit is werd om neer te skryf, want die simptoom verskyn weke later en lyk soos 'n toevallige adresverlies.

'n Roete kies 'n opvoerpad, die koppelvlak nie

'n Binneste roete wat na wg0 wys, besluit dat verkeer die tonnel binnegaan. 'n Aparte besluit stuur die geënkripteerde buitenste pakkette na die eweknie, en op 'n gasheer met verskeie opvoerpaaie kom daardie besluit van die aanstuurtafel en beleidsreëls. 'n Wi-Fi-swerm kan die buitenste pad verander sonder om die binneste adres aan te raak.

Dus is 'n werkende tonnel en 'n onbereikbare eweknie versoenbare toestande, en so ook 'n korrekte eweknie en 'n gebreekte binneste roete. Die drie waarnemings moet saam geneem word, op dieselfde oomblik, anders is die vergelyking betekenisloos.

Vergelyk die drie toestande in een deurloop

Drie lees-alleen-opdragte beantwoord die drie vrae in die volgorde wat die fout die vinnigste isoleer. Voer hulle uit sonder om iets tussenin te verander.

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

Die eerste wys of die koppelvlak hoegenaamd 'n adres het, en die tweede wys watter toestel 'n spesifieke bestemming nou sou gebruik. Die derde rapporteer die laaste handskudtyd en die greptellers, wat die enigste van die drie is wat die eweknie eerder as die plaaslike gasheer beskryf.

Lees die tellers sowel as die tydstempel. 'n Handskud wat aanhou vernuwe terwyl die oordrag plat bly, beteken die eweknie antwoord maar niks bruikbaars gaan deur nie, wat op roetering of 'n ACL wys eerder as op sleutels. 'n Tydstempel wat ophou vorder terwyl 'n adres teenwoordig is, wys eerder stroomop. Beide lesings kom uit dieselfde reël uitset, en nie een is sigbaar as jy net kyk of 'n handskud bestaan nie.

Maak die spesifieke toestand reg wat verkeerd is, en toets dan die toepassing eerder as die tonnel. 'n Onlangse handskud is eweknie-bewys, en bewys oor die eweknie is nie bewys dat die volgende versoek van jou blaaier 'n adres, 'n roete en 'n werkende opvoerpad sal vind nie. Die wg-quick-handleiding is duidelik oor watter van dié dinge die helper opstel en watter aan die protokol behoort.

Verwante artikels