WireGuard: pēc apakštīkla maiņas nav maršruta uz partneri — divi ceļi
Apakštīkla maiņa salauž WireGuard divās vietās: AllowedIPs un atgriešanās ceļā. Salīdziniet pārnumurēšanu uz vietas ar saskarnes pārbūvi.
Rokasspiediens ir svaigs wg show izvadē, galapunkts ir pareizs, atslēgas nekad nav mainījušās — un ping joprojām saka, ka nav maršruta uz partneri. Tuneļa apakštīklu jūs nomainījāt pirms stundas. Šis simptoms ir prefiksa neatbilstības pazīme, nevis atslēgu problēma: WireGuard pabeidza rokasspiedienu un pēc tam izmeta datus, jo avota adrese vairs neatbilst tam, ko pieņems saņēmējpartneris. Ir divi saprātīgi veidi, kā īstenot apakštīkla maiņu, un tie neizdodas dažādās vietās.
Divi veidi, kā īstenot maiņu, un cik katrs izmaksā
A variants ir pārnumurēšana uz vietas: mainiet saskarnes adresi, partneru diapazonus, maršrutus un katru konfigurācijas kopiju, pēc tam ielādējiet no jauna. B variants ir uz jaunā prefiksa blakus vecajam uzbūvēt otru saskarni, pārvietot partnerus un noņemt veco saskarni, kad trafiks patiešām ir pārvietojies.
| 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 |
Tieši daļēji piemērotais stāvoklis padara A variantu bīstamu, jo tas neizskatās salauzts. Saskarne ceļas, rokasspiediens izdodas, un tikai datu ceļš neizdodas. B variants prasa vairāk darba, bet uztur dzīvu strādājošu ceļu, kamēr atrodat katru atsauci.
Kam jākustas kopā jūsu pusē
Četras lietas lokālajā resursdatorā apraksta vienu un to pašu apakštīklu, un vienas maiņa ir visu maiņa: saskarnes adrese, katra partnera AllowedIPs, maršruts, ko sistēma izmanto šiem mērķiem, un viss, ko pārvaldnieks instalē jūsu vārdā. Ar wg-quick pēdējie divi tiek ģenerēti no konfigurācijas katru reizi, kad saskarne ceļas, tāpēc novecojusi kopija klusi atjauno veco prefiksu.
Salīdziniet konfigurēto ar dzīvo, nevis uzticieties kādam no tiem:
wg show
wg showconf wg0
ip addr show wg0
ip route get 10.90.0.5Maršruta meklēšana ir solis, ko cilvēki izlaiž. Tā atbild, ko kodols patiešām darītu mērķim, tostarp konkrētāku maršrutu, ko atstājis pārvaldnieks vai konteineru izpildlaiks. Ja tā norāda citu saskarni nekā tunelis, konfigurācija nav problēma.
Darbojošai saskarnei piemērojiet rediģēto failu, nesabojājot tuneli:
wg syncconf wg0 <(wg-quick strip wg0)Tas atjaunina partnerus un diapazonus uz vietas. Tas neatjaunina saskarnes adresi vai maršrutus, jo tie nav WireGuard iestatījumi — tāpēc pārnumurēšanai joprojām ir vajadzīga saskarnes atjaunošana vai adreses maiņa ar ip, un pēc tam maršrutēšanas atkārtota pārbaude.
Kam jākustas kopā tālajā galā
Šeit apakštīkla maiņa parasti mirst. AllowedIPs ir ne tikai maršrutēšanas mājiens; tas ir arī avota adrešu saraksts, ko partneris drīkst uzrādīt. Kad pārnumurējat klientus un atstājat servera AllowedIPs uz vecā prefiksa, serveris pieņem rokasspiedienu, saņem šifrētos paketes un izmet tās, jo iekšējais avots neatbilst nevienam diapazonam, ko tas saista ar šo partneri. Kļūda netiek reģistrēta, un klients redz taimautu.
Tāpēc apzināti atjauniniet saņēmējpusei: partnera ierakstam serverī jāuzskaita jaunais klienta prefikss, paša servera atgriešanās maršrutam jānorāda uz tuneli šim prefiksam, un jebkuram lejupstraumes tīklam aiz servera jāiemācās jaunais ceļš. Ugunsmūra politikai, kas nosauca veco diapazonu, vajadzīga tāda pati apstrāde, un arī visam, kas veic atlasi pēc avota.
Diagnostika, kas atdala abas kļūmes, ir lēta. Svaigs rokasspiediens bez datiem nozīmē, ka tunelis ir augšā un iekšējā adresācija nesaskan. Pilnīgi nav rokasspiediena — jūs skatāties sasniedzamību vai atslēgas. Negrieziet atslēgas prefiksa problēmas dēļ; tas atiestata vienīgo, kas strādāja.
Novecojušas kopijas, kas pārdzīvo jūsu labojumu
Faila rediģēšana nav tas pats, kas darbojošās sistēmas maiņa, un kopiju ir vairāk, nekā cilvēki gaida: vienība vai pārvaldnieks, kam pieder saskarne, otrs profils ar to pašu nosaukumu citā direktorijā, konteiners ar konfigurāciju, kas iecepta attēlā, maršrutētāja saskarne ar savu rediģēto versiju un klienta lietotne, kas palaišanas laikā atkārtoti importē saglabāto tuneli. Katra no tām var atjaunot veco prefiksu pēc tam, kad jūsu izmaiņas izskatās pabeigtas.
Arī nosaukumi ceļo. Ja skaitliskais maršruts strādā, bet resursdatora nosaukums neizdodas, iekšējs DNS ieraksts vai pakalpojuma konfigurācija joprojām norāda uz veco tuneļa adresi. Izlabojiet atsauci, nevis paplašiniet katru partnera diapazonu, jo tas aizsegtu īsto problēmu un vienlaikus palielinātu avota ACL.
Strādājot turiet atvērtu vienu atkopšanas ceļu: otru veidu, kā iekļūt resursdatorā, seriālo konsoli vai ieplānotu konfigurācijas failu atritināšanu. Tuneļa maiņa, kas jūs izslēdz no mašīnas, kuru maināt, ir visizplatītākais veids, kā šis uzdevums pārvēršas vakarā.
Izvēle starp abiem un pārslēgšanās pārbaude
Izvēlieties A, kad jums pieder katrs partneris, skaits ir mazs un īsa pārtraukšana ir pieņemama. Izvēlieties B, kad partneri ir tālas rokas, kuras jūs nekontrolējat, kad savienojumam starp vietnēm jāpaliek, vai kad nevarat garantēt, ka katra kopija tiks atjaunināta vienā piegājienā. Tādā gadījumā pievienojiet jauno prefiksu abām saskarnēm, pārvietojiet partnerus pa vienam, vērojiet trafiku uz jaunās un tikai tad noņemiet veco saskarni un tās maršrutus.
Abos variantos maiņa ir pabeigta, kad iztur četras pārbaudes: rokasspiediens ir svaigs, jaunā prefiksa mērķa maršruta meklēšana nosauc tuneli, dažu simtu baitu kravne pāriet abos virzienos, un tas pats attiecas pēc resursdatora vai pārvaldnieka restartēšanas. Oficiālā wg(8) rokasgrāmata ir atsauce uz to, ko AllowedIPs nozīmē katrā virzienā, un to ir vērts pārlasīt pirms diapazona paplašināšanas, lai simptoms izzustu.
- Svaigs rokasspiediens un nav datu: apskatiet AllowedIPs pie saņēmēja, pirms aiztiekat atslēgas.
- Maršruta meklēšana norāda nepareizo saskarni: maršruts pieder pārvaldniekam vai konteineram, nevis jūsu failam.
- Skaitliskā adrese kārtībā, resursdatora nosaukums salauzts: veca atsauce, nevis maršrutēšanas cilpa.
- Maiņa ir pabeigta tikai tad, kad pēc restartēšanas joprojām tiek izmantots jaunais prefikss.