Rozhranie naskočí, konfigurácia partnera vyzerá správne a žiadny handshake sa nikdy nedokončí. Pridanie predvolenej trasy tunelom je krok, ktorý to často spôsobuje: tá istá smerovacia tabuľka teraz rozhoduje, kam majú ísť vlastné šifrované pakety tunela, a odpoveď, ktorú vydá, vedie späť do tunela. Nič nemôže niesť vonkajší paket, ktorý by niesol vnútorný, takže spojenie sa zastaví skôr, než začne. Oprava je malá, ale má poradie a overenie je dôležitejšie ako úprava.

Potvrďte slučku, kým zmeníte trasu

Prečítajte si aktuálnu adresu koncového bodu partnera a potom sa opýtajte smerovacieho zásobníka, kam by išiel paket na túto adresu. Ak odpoveď uvádza rozhranie tunela, slučka je potvrdená a ďalšia diagnostika nie je potrebná. Uložte oba výstupy do záznamu o zmene, kým sa čohokoľvek dotknete, pretože porovnanie po oprave sú tie isté dva príkazy. Slučka nie je nenápadná, keď ju raz uvidíte; ťažkosť je v tom, že rozhranie vyzerá zdravo, kým sa to deje.

sudo wg show wg1 endpoints
ip route get 198.51.100.20
ip rule show

Zahrňte do toho záznamu aj pravidlá zásad. Predvolená trasa, ktorá vyzerá v hlavnej tabuľke správne, môže stále prehrať s pravidlom, ktoré vyberá inú tabuľku pre označenú alebo neoznačenú prevádzku, a slučka sa znova objaví s tabuľkou trás, ktorá vyzerá v poriadku.

Čítajte cestu ku koncovému bodu, nie cestu tunela

Cesta ku koncovému bodu je trasa, ktorou šifrované datagramy idú k verejnej adrese partnera, a musí zostať mimo tunela, kým tunel existuje. Cesta tunela je všetko, čo smie partner niesť. Tieto dve cesty zdieľajú jednu smerovaciu tabuľku, a práve preto jeden záznam zachytávajúci všetko ich môže zrútiť jeden do druhého. Oddelenie prevádzky tunela od vlastnej dopravy tunela je celý problém návrhu a každý podporovaný nástroj ho rieši niekde trochu inak.

Skontrolujte obe rodiny adries oddelene, ak rozhranie nesie obe. Fungujúce vylúčenie IPv4 nič nehovorí o tom, či je koncový bod IPv6 ešte dostupný, a zmiešaná konfigurácia môže vyzerať funkčne, kým sa nevyberie adresa IPv6 partnera.

Obnovte cestu ku koncovému bodu jednou ucelenou zmenou

Existujú dva podporované prístupy a ich miešanie je spôsob, akým sa fungujúce nastavenie stane nepredvídateľným. Prvý je nechať nástroj, ktorý vlastní rozhranie, spravovať celý tunel: wg-quick má vyhradené spracovanie pre predvolený rozsah partnerov, ktoré inštaluje samostatnú tabuľku, pravidlá zásad a značku soketu, čo drží vonkajšie pakety mimo tunela. Nechajte tento mechanizmus nedotknutý, namiesto toho, aby ste polovicu reprodukovali ručne. Nastavenie, ktoré mieša ručne pridanú predvolenú trasu so správcom, ktorý už inštaluje značky a pravidlá, zvyčajne zlyhá po opätovnom pripojení, keď správca prepíše stav, ktorý ručný krok predpokladal.

Druhý je ručný návrh, v ktorom koncový bod dostane výslovnú trasu k hostiteľovi cez fyzickú bránu. Pridajte túto trasu pred predvolenú, nahraďte namiesto pridania, aby nemohol vyhrať zastaraný záznam, a potom overte vyhľadanie.

sudo ip route replace 198.51.100.20/32 via 192.0.2.1 dev eth0
ip route get 198.51.100.20
sudo ip route add default dev wg1

Overte a potom si ponechajte cestu späť

Časová značka handshake, ktorá postupuje, je prvým dôkazom a je silnejšia ako rozhranie, ktoré jednoducho existuje. Nasledujte ju testom aplikácie tunelom, potom rozhranie zámerne znížte a potvrďte, že hostiteľ sa vráti do použiteľného stavu, namiesto toho, aby držal predvolenú trasu ukazujúcu do prázdna. Ten posledný krok ľudia preskakujú a práve on rozhoduje, či reštart nechá stroj bez spojenia.

sudo wg show wg1 latest-handshakes
sudo wg-quick down wg1
ip route show default
ip route get 198.51.100.20

Pred tým všetkým si uložte aktuálny stav smerovania a uistite sa, že existuje vstupná cesta, ktorá nezávisí od tunela: konzola, adresa mimopásmovej správy alebo kolega na mieste. Vzdialený stroj, ktorý stratí predvolenú trasu, nemožno obnoviť cez spojenie, ktoré práve stratil, a najbezpečnejším krokom v runbooku je ten, ktorý sa vykoná pred prvým príkazom.

Súvisiace články