WireGuard: ni poti do sopotnika po spremembi podomrežja — dva izhoda
Sprememba podomrežja pokvari WireGuard na dveh mestih: AllowedIPs in povratno pot. Primerjajte preštevilčenje na mestu z obnovitvijo vmesnika.
Rokovanje je v wg show sveže, končna točka je pravilna, ključi se niso nikoli spremenili — in ping še vedno pravi, da ni poti do sopotnika. Podomrežje tunela ste spremenili pred eno uro. Ta simptom je podpis neujemanja predpone in ne težave s ključi: WireGuard je dokončal rokovanje in nato zavrgel podatke, ker izvorni naslov ne ustreza več temu, kar bo sprejel prejemni sopotnik. Obstajata dva smiselna načina za izvedbo spremembe podomrežja in vsak odpove na drugem mestu.
Dva načina za izvedbo spremembe in koliko vsak stane
Možnost A je preštevilčenje na mestu: uredite naslov vmesnika, razpone sopotnikov, poti in vsako kopijo konfiguracije, nato znova naložite. Možnost B je zgraditi drugi vmesnik na novi predponi ob starem, prestaviti sopotnike in odstraniti stari vmesnik, ko se promet resnično prestavi.
| A: renumber in place | B: parallel interface | |
|---|---|---|
| Downtime | The reload window, per host | None if peers are added to both |
| Rollback | Re-apply the previous files | Point peers back at the old interface |
| Risk | Half-applied change: new address, old ranges | Two live interfaces with overlapping intent |
| Effort | Small, if the deployment has one owner | Higher, and needs a cleanup step |
| Fits | Two or three peers you control | Many peers, remote sites, or no maintenance window |
Prav na pol izvedeno stanje naredi možnost A nevarno, ker ni videti pokvarjeno. Vmesnik se dvigne, rokovanje uspe in odpove le podatkovna pot. Možnost B zahteva več dela, a ohranja delujočo pot živo, medtem ko iščete vsako referenco.
Kaj se mora premikati skupaj na vaši strani
Štiri stvari na lokalnem gostitelju opisujejo isto podomrežje in sprememba ene je sprememba vseh: naslov vmesnika, AllowedIPs vsakega sopotnika, pot, ki jo sistem uporablja za te cilje, in vse, kar upravitelj namesti v vašem imenu. Pri wg-quick se zadnji dve ustvarita iz konfiguracije vsakič, ko se vmesnik dvigne, zato zastarela kopija tiho vrne staro predpono.
Primerjajte, kar je konfigurirano, s tem, kar je živo, namesto da bi zaupali enemu od obeh:
wg show
wg showconf wg0
ip addr show wg0
ip route get 10.90.0.5Iskanje poti je korak, ki ga ljudje preskočijo. Odgovori, kaj bi jedro za cilj v resnici naredilo, vključno s podrobnejšo potjo, ki jo je pustil upravitelj ali okolje za izvajanje vsebnikov. Če navede drug vmesnik kot tunel, konfiguracija ni problem.
Pri delujočem vmesniku uporabite urejeno datoteko, ne da bi podrli tunel:
wg syncconf wg0 <(wg-quick strip wg0)To posodobi sopotnike in razpone na mestu. Ne posodobi naslova vmesnika ali poti, ker to niso nastavitve WireGuarda — preštevilčenje torej še vedno zahteva ponovno ustvarjanje vmesnika ali spremembo naslova z ip in nato ponovno preverjanje usmerjanja.
Kaj se mora premikati skupaj na oddaljenem koncu
Tu sprememba podomrežja običajno umre. AllowedIPs ni le namig za usmerjanje; je tudi seznam izvornih naslovov, ki jih sopotnik sme predstaviti. Ko preštevilčite odjemalce in pustite AllowedIPs strežnika na stari predponi, strežnik sprejme rokovanje, prejme šifrirane pakete in jih zavrže, ker se notranji izvor ne ujema z nobenim razponom, ki ga povezuje s tem sopotnikom. Nobena napaka se ne zabeleži in odjemalec vidi potek časa.
Zato zavestno posodobite sprejemno stran: vnos sopotnika na strežniku mora navesti novo predpono odjemalca, lastna povratna pot strežnika mora za to predpono kazati na tunel in vsako nižje omrežje za strežnikom se mora naučiti novo pot. Pravila požarnega zidu, ki so imenovala stari razpon, potrebujejo enako obravnavo, in tudi vse, kar izbira na podlagi izvora.
Diagnostika, ki loči oba odpovedi, je poceni. Sveže rokovanje brez podatkov pomeni, da tunel stoji in da se notranje naslavljanje ne ujema. Povsem brez rokovanja pomeni, da gledate dosegljivost ali ključe. Ne vrtite ključev zaradi težave s predpono; to ponastavi edino stvar, ki je delovala.
Zastarele kopije, ki preživijo vaš popravek
Urejanje datoteke ni isto kot spreminjanje delujočega sistema in kopij je več, kot ljudje pričakujejo: enota ali upravitelj, ki ima v lasti vmesnik, drug profil z istim imenom v drugi mapi, vsebnik s konfiguracijo, pečeno v sliko, vmesnik usmerjevalnika z lastno urejeno različico in odjemalska aplikacija, ki ob zagonu znova uvozi shranjen tunel. Vsaka od njih lahko obnovi staro predpono, potem ko je vaša sprememba videti končana.
Tudi imena potujejo. Če številska pot deluje, ime gostitelja pa ne, notranji zapis DNS ali konfiguracija storitve še vedno kaže na stari naslov tunela. Popravite referenco, namesto da razširite vsak razpon sopotnika, kar bi zakrilo resnično težavo in hkrati povečalo ACL izvora.
Med delom imejte odprto eno pot za obnovitev: drug način vstopa na gostitelja, serijsko konzolo ali načrtovano vračanje konfiguracijskih datotek. Sprememba tunela, ki vas zaklene zunaj stroja, ki ga spreminjate, je najpogostejši način, da se ta naloga spremeni v večer.
Izbira med obema in preverjanje preklopa
Izberite A, ko imate vsakega sopotnika, število je majhno in kratka prekinitev je sprejemljiva. Izberite B, ko so sopotniki oddaljene roke, ki jih ne nadzorujete, ko mora povezava med lokacijami ostati, ali ko ne morete zagotoviti, da bo vsaka kopija posodobljena v enem prehodu. V tem primeru dodajte novo predpono na oba vmesnika, premikajte sopotnike enega za drugim, opazujte promet na novem in šele nato odstranite stari vmesnik in njegove poti.
Pri obeh možnostih je sprememba končana, ko prestanejo štiri preverjanja: rokovanje je sveže, iskanje poti za cilj z novo predpono imenuje tunel, tovor nekaj sto bajtov preide v obe smeri in isto velja po ponovnem zagonu gostitelja ali upravitelja. Uradni priročnik wg(8) je referenca za to, kaj AllowedIPs pomeni v vsaki smeri, in vredno ga je znova prebrati, preden razširite razpon, da simptom izgine.
- Sveže rokovanje in ni podatkov: poglejte AllowedIPs pri prejemniku, preden se dotaknete ključev.
- Iskanje poti kaže na napačen vmesnik: pot ima v lasti upravitelj ali vsebnik, ne vaša datoteka.
- Številski naslov v redu in ime gostitelja pokvarjeno: stara referenca, ne zanka usmerjanja.
- Sprememba je končana šele, ko se po ponovnem zagonu še vedno uporablja nova predpona.