Rozhranie je hore, ale wg-quick zlyhal: čo ďalej
Zlyhaná jednotka môže zanechať napoly nakonfigurovaný tunel. Prečítajte si prvý krok, ktorý zlyhá, rozhodnite sa, či čistiť alebo opraviť, a potom to dokážte požiadavkou.
Jednotka je červená, rozhranie existuje a tunel väčšinou funguje, čo je najviac mätúca kombinácia, aká môže nastať. Nastavenie je postupnosť: najprv sa vytvorí rozhranie, potom prichádzajú adresy, trasy, nastavenia prekladača a akékoľvek hook príkazy. Zlyhanie na štvrtom kroku nechá prvé tri na mieste, takže názov rozhrania je dôkazom, že spúšťanie začalo, nie že skončilo. Jeden fakt navyše by tej zmetenosti ušetril: krok, ktorý zlyhal.
Čiastočný stav je bežné zlyhanie
Toto správanie treba očakávať, nie ho považovať za poškodenie. Rozhranie je najlacnejšia časť nastavenia a najľahšie zostane zabudnuté, a práve ono robí stroj navonok polovične funkčným.
Čo ešte neexistuje, je všetko, čo prišlo po zlyhanom kroku. Ak k zlyhaniu došlo vo fáze prekladača, adresy aj trasy existujú a DNS nie. Ak išlo o trasu, tunel má adresu a žiadnu cestu cez ňu.
Dôsledkom je stroj, ktorý odpovedá na niektoré testy a na iných zlyháva, a preto ľudia usudzujú, že služba bliká, hoci sa nikdy úspešne nespustila. Služba, ktorá sa nikdy nedokončila, blikať nemôže. Môže len opakovane zlyhávať z toho istého dôvodu.
Nájdite prvý zlyhaný krok
Čítajte žurnál jednotky, nie len aktuálny stav, a čítajte ho od začiatku neúspešného behu. Posledný riadok vám povie návratový kód; prvý chyba povie, čo opraviť.
Tieto príkazy vypíšu stav jednotky, zavádzací žurnál tejto jednotky a živý stav tunela:
systemctl status wg-quick@wg0
journalctl -u wg-quick@wg0 -b --no-pager | tail -40
wg show
ip -4 addr show dev wg0Chyba prekladača, trasa, ktorá už existuje, hook, ktorý skončil s nenulovým kódom, a zlyhanie parsovania konfigurácie sa všetky objavia v tom okne a každý pomenúva svoju komponentu. Hádanie len zo stavu rozhrania všetky tieto informácie ignoruje.
Tri podmienky, ktoré rozhodujú o oprave
Rozhodnite sa, či čistíte, opravujete na mieste alebo odstraňujete jednotku zo zavádzacej cesty, a rozhodnite to skôr, než niečo napíšete.
Ak je rozhranie rozbité, ale konfigurácia správna, vyčistite a začnite znova. Ak je konfigurácia nesprávna, opravte ju a aj tak najprv vyčistite, pretože spustenie druhého správcu nad čiastočným stavom vytvára dvoch vlastníkov jedného rozhrania. Ak je zlyhaním chýbajúca systémová komponenta, napríklad pomocník prekladača, ktorý stroj nemá, nainštalujte alebo odstráňte závislosť zámerne, namiesto úprav jednotky, kým si neprestane sťažovať.
Tieto tri prípady pokrývajú väčšinu toho, čo vyzerá ako záhadná červená jednotka. Rozlišujúcou otázkou je, či by rovnaké zlyhanie nastalo na stroji s čistým stavom, a odpoveď zvyčajne prichádza z prvého riadku chyby.
Pred ďalším pokusom vyčistite
Nový pokus nad existujúcim stavom môže zlyhať z nového dôvodu a skryť ten pôvodný. Zložte rozhranie tým istým nástrojom, ktorý ho vytvoril, a potom potvrďte, že nič neostalo.
Nemažte nesúvisiace rozhrania a neresetujte sieťový stack hostiteľa. Oboje sú veľké zásahy na opravu malého objektu a menia jeden zlyhaný tunel na stroj, ktorého ostatné spojenia treba znova nadviazať. Správny rozsah je jedno rozhranie a jednotka, ktorá ho vlastní. Čokoľvek širšie potrebuje dôvod zapísaný predtým, než sa to stane.
Dokážte tunel, nie jednotku
Zelená jednotka znamená, že spúšťacia postupnosť skončila s nulou. Neznamená, že paket dorazil na druhú stranu, ani že prekladač je nastavený tak, ako ste zamýšľali.
Pošlite požiadavku tunelom a prečítajte stav, ktorý ju vytvoril:
systemctl is-active wg-quick@wg0
wg show wg0 latest-handshakes
ping -c 3 10.63.0.1
resolvectl query internal.example.netPodanie ruky bez odpovede vám stále povie, že tunel vznikol a protistrana mlčí, čo je iný problém než jednotka, ktorá sa nikdy nespustila. Držte stav jednotky, podanie ruky a výsledok požiadavky v jednom zázname, pretože zlyhávajú nezávisle a systém opisuje len ich kombinácia.