Ракувањето работи, адресата ја нема: три состојби на WireGuard
Свежо ракување докажува дека партнерот одговорил, а не дека интерфејсот ја чува својата адреса или дека следниот пакет оди по предвидениот горен канал.
WireGuard може истовремено да има свежо ракување и да нема адреса, и таа состојба е кожерентна, а не противречна. Ракувањето е настан на партнерот, адресата им припаѓа на интерфејсот, а рутата одлучува по кој горен канал пакетот излегува. Три слоја, три сопственици, и секој може да откаже додека другите два изгледаат здрави.
Нивното читање како еден статус е тоа што двоминутната дијагноза ја претвора во цело попладне поминато во рестартирање услуги.
Ракувањето е настан на партнерот, а не настан на адресирање
Ракувањето на WireGuard докажува дека конфигурираниот партнер одговорил со валиден клуч и дека клучевите на сесијата се актуелни. Тоа не кажува ништо за локалната адреса на интерфејсот, ниту за тоа дали некоја рута води таму. Адресата ја доделува помошник или мрежен менаџер, додека конфигурацијата на протоколот само ги именува партнерите и клучевите. Мешањето на овие две е причината зошто здраво ракување се чита како тунел што работи.
Затоа wg show може да пријави ракување старо неколку секунди на интерфејс што не може да прими ниту еден пакет од апликација.
Менаџер што го пресоздава интерфејсот може да ја испушти адресата без да ја допре конфигурацијата на партнерот, и следното ракување веднаш успева бидејќи клучевите никогаш не се смениле. Редот во дневникот за успешно ракување е точен и неважен за дефектот.
| 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 |
Адресата на интерфејсот има свој сопственик
Адресата на тунелскиот уред може да дојде од Address редот на помошник, од DHCP клиент што работи на интерфејсот, или од демон за управување што ја создава при поврзување. Што и да е, таа компонента ја поседува адресата и ќе ја врати или не според сопствената логика. Читањето на адресата без да се именува нејзиниот сопственик ве остава без објаснување зошто исчезнала.
Два сопственици на еден интерфејс сѐ уште е класичниот дефект. Стартувањето на помошник и на десктоп мрежен менаџер над истиот уред создава трка во која едниот го отстранува тоа што другиот штотуку го конфигурирал, а крајната точка продолжува да одговара цело време.
Изберете еден сопственик и дозволете другата алатка да набљудува наместо да управува. Таа одлука вреди да се запише, бидејќи симптомот се појавува недели подоцна и изгледа како случајна загуба на адреса.
Рутата избира горен канал, а не интерфејсот
Внатрешна рута што покажува на wg0 одлучува дека сообраќајот влегува во тунелот. Одделна одлука ги праќа шифрираните надворешни пакети кон партнерот, и на домаќин со неколку горни канали таа одлука доаѓа од табелата за препраќање и од правилата за политика. Wi-Fi роамингот може да го смени надворешниот пат без да ја допре внатрешната адреса.
Значи, тунел што работи и недостапен партнер се компатибилни состојби, како и правилен партнер со скршена внатрешна рута. Трите набљудувања мора да се земат заедно, во истиот момент, инаку споредбата е бесмислена.
Споредете ги трите состојби во еден премин
Три команди само за читање одговараат на трите прашања по редоследот што дефектот најбргу го изолира. Извршете ги без да смените ништо меѓу нив.
ip address show dev wg0
ip route get 10.80.0.1
wg show wg0 latest-handshakes transfer
Првата покажува дали интерфејсот воопшто има адреса, а втората покажува кој уред конкретна дестинација би го користела сега. Третата го пријавува времето на последното ракување и бројачите на бајти, и таа е единствената од трите што го опишува партнерот, а не локалниот домаќин.
Читајте ги бројачите, како и временската ознака. Ракување што постојано се обновува додека преносот стои рамно значи дека партнерот одговара, но ништо корисно не поминува, што упатува на рутирање или на ACL, а не на клучеви. Временска ознака што престанува да напредува додека има адреса упатува нагоре. Двете читања доаѓаат од истиот излезен ред, и ниту едно не се гледа ако само проверувате дали постои ракување.
Исправете ја конкретната состојба што е погрешна, потоа повторно тестирајте ја апликацијата, а не тунелот. Свежото ракување е доказ за партнерот, а доказот за партнерот не е доказ дека следното барање од вашиот прелистувач ќе најде адреса, рута и горен канал што работи. Прирачникот за wg-quick јасно кажува кое од тоа го поставува помошникот и кое му припаѓа на протоколот.