Vmesnik se dvigne, konfiguracija partnerja je videti pravilna in noben rokovanje se nikoli ne zaključi. Dodajanje privzete poti skozi tunel je korak, ki to pogosto povzroči: ista tabela usmerjanja zdaj odloča, kam naj gredo lastni šifrirani paketi tunela, in odgovor, ki ga ustvari, vodi nazaj v tunel. Nič ne more prenašati zunanjega paketa, ki bi prenašal notranjega, zato se povezava ustavi, preden se začne. Popravilo je majhno, vendar ima vrstni red, in preverjanje je pomembnejše od urejanja.

Potrdite zanko, preden spremenite pot

Preberite trenutni naslov končne točke partnerja in nato vprašajte sklad usmerjanja, kam bi šel paket na ta naslov. Če odgovor navaja vmesnik tunela, je zanka potrjena in nadaljnja diagnostika ni potrebna. Shranite oba izhoda v dnevnik sprememb, preden se česar koli dotaknete, ker je primerjava po popravilu istih dveh ukazov. Zanka ni subtilna, ko jo enkrat vidite; težava je v tem, da je vmesnik videti zdrav, medtem ko se to dogaja.

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

V ta zapis vključite pravila politike. Privzeta pot, ki je v glavni tabeli videti pravilna, lahko še vedno izgubi proti pravilu, ki izbere drugo tabelo za označen ali neoznačen promet, in zanka se bo znova pojavila s tabelo poti, ki je videti v redu.

Berite pot do končne točke, ne poti tunela

Pot do končne točke je pot, po kateri šifrirani datagrami potujejo do javnega naslova partnerja, in mora ostati zunaj tunela, dokler tunel obstaja. Pot tunela je vse, kar sme partner prenašati. Ti dve poti si delita eno tabelo usmerjanja, in prav zato lahko en vnos, ki ujame vse, zdrobi eno v drugo. Ločevanje prometa tunela od lastnega prevoza tunela je celoten problem zasnove, in vsako podprto orodje ga rešuje nekje nekoliko drugače.

Preverite obe družini naslovov ločeno, če vmesnik prenaša obe. Delujoča izključitev IPv4 ne pove ničesar o tem, ali je končna točka IPv6 še dosegljiva, in mešana konfiguracija je lahko videti delujoča, dokler ni izbran naslov IPv6 partnerja.

Obnovite pot do končne točke z eno skladno spremembo

Obstajata dva podprta pristopa, in njuno mešanje je način, kako delujoča nastavitev postane nepredvidljiva. Prvi je prepustiti orodju, ki ima vmesnik, upravljanje celotnega tunela: wg-quick ima namensko obravnavo privzetega obsega partnerjev, ki namesti ločeno tabelo, pravila politike in oznako vtičnice, kar zadrži zunanje pakete zunaj tunela. Pustite to mehaniko nedotaknjeno, namesto da bi polovico reproducirali ročno. Nastavitev, ki meša ročno dodano privzeto pot z upraviteljem, ki že namešča oznake in pravila, po ponovni povezavi običajno ne uspe, ko upravitelj prepiše stanje, ki ga je ročni korak predpostavljal.

Drugi je ročna zasnova, v kateri končna točka dobi izrecno pot do gostitelja prek fizičnega prehoda. Dodajte to pot pred privzeto, zamenjajte namesto dodajajte, da zastarel vnos ne more zmagati, in nato potrdite iskanje.

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

Preverite in nato obdržite pot nazaj

Časovni žig rokovanja, ki napreduje, je prvi dokaz in je močnejši od vmesnika, ki preprosto obstaja. Sledite mu s preskusom aplikacije skozi tunel, nato namenoma spustite vmesnik in potrdite, da se gostitelj vrne v uporabno stanje, namesto da obdrži privzeto pot, ki kaže v prazno. Ta zadnji korak ljudje preskočijo, in prav ta odloči, ali bo ponovni zagon pustil stroj brez povezave.

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

Pred vsem tem shranite trenutno stanje usmerjanja in poskrbite, da obstaja vstopna pot, ki ni odvisna od tunela: konzola, naslov zunajpasovnega upravljanja ali sodelavec na mestu. Oddaljenega stroja, ki izgubi privzeto pot, ni mogoče obnoviti prek povezave, ki jo je pravkar izgubil, in najvarnejši korak v runbooku je tisti, ki je narejen pred prvim ukazom.

Sorodni članki