WireGuard: peerile pole marsruuti pärast alamvõrgu muutust — kaks väljapääsu
Alamvõrgu muutus lõhub WireGuardi kahes kohas: AllowedIPs ja tagasitee. Võrrelge kohapeal ümbernummerdamist liidese uuesti ülesehitamisega.
Käepigistus on wg show väljundis värske, lõpp-punkt on õige, võtmeid ei ole kunagi muudetud — ja ping ütleb ikka, et peerile pole marsruuti. Muutsite tunnelialamvõrku tund aega tagasi. See sümptom on prefiksi mittevastavuse tunnus, mitte võtmeprobleem: WireGuard lõpetas käepigistuse ja viskas seejärel andmed ära, sest lähteaadress ei vasta enam sellele, mida vastuvõttev peer aktsepteerib. Alamvõrgu muutuse elluviimiseks on kaks mõistlikku viisi ja need ebaõnnestuvad erinevates kohtades.
Kaks viisi muutuse elluviimiseks ja mis kumbki maksab
Valik A on kohapeal ümbernummerdamine: muutke liidese aadressi, peeride vahemikke, marsruute ja iga konfiguratsiooni koopiat, seejärel laadige uuesti. Valik B on ehitada uue prefiksi peale teine liides vana kõrvale, viia peerid üle ja eemaldada vana liides alles siis, kui liiklus on tõesti liikunud.
| 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 |
Just poolikult rakendatud olek teeb valiku A ohtlikuks, sest see ei näe katki välja. Liides tõuseb, käepigistus õnnestub ja ainult andmetee ebaõnnestub. Valik B nõuab rohkem tööd, kuid hoiab töötava tee elus, kuni te iga viite üles leiate.
Mis peab teie poolel koos liikuma
Neli asja kohalikus hostis kirjeldavad sama alamvõrku ja ühe muutmine on kõigi muutmine: liidese aadress, iga peeri AllowedIPs, marsruut, mida süsteem nende sihtkohtade jaoks kasutab, ja kõik, mida haldur teie nimel paigaldab. wg-quickiga genereeritakse kaks viimast konfiguratsioonist iga kord, kui liides tõuseb, nii et aegunud koopia paigaldab vaikselt vana prefiksi tagasi.
Võrrelge seadistatut toimivaga, selle asemel et kummastki üksi usaldada:
wg show
wg showconf wg0
ip addr show wg0
ip route get 10.90.0.5Marsruudi otsing on samm, mille inimesed vahele jätavad. See vastab, mida kernel sihtkoha jaoks tegelikult teeks, sealhulgas täpsemat marsruuti, mille haldur või konteinerite käituskeskkond on maha jätnud. Kui see teatab tunnelist erineva liidese, ei ole konfiguratsioon probleem.
Töötava liidese puhul rakendage muudetud faili tunnelit lammutamata:
wg syncconf wg0 <(wg-quick strip wg0)See uuendab peere ja vahemikke kohapeal. See ei uuenda liidese aadressi ega marsruute, sest need ei ole WireGuardi seaded — seega vajab ümbernummerdamine ikkagi liidese uuesti loomist või aadressi muutmist ip abil ja seejärel marsruutimise uuesti kontrollimist.
Mis peab kaugemas otsas koos liikuma
Siin sureb alamvõrgu muutus tavaliselt. AllowedIPs ei ole ainult marsruutimise vihje; see on ka lähteaadresside loend, mille peer võib esitada. Kui nummerdate kliendid ümber ja jätate serveri AllowedIPs-i vanale prefiksile, võtab server käepigistuse vastu, saab krüptitud paketid kätte ja viskab need ära, sest sisemine lähteaadress ei vasta ühelegi vahemikule, mille ta selle peeriga seostab. Viga ei logita ja klient näeb ajalõppu.
Seega uuendage vastuvõtvat poolt teadlikult: serveri peerkirje peab loetlema kliendi uue prefiksi, serveri enda tagasimarssruut peab selle prefiksi jaoks tunnelile osutama ja iga serveri taga asuv allavoolu võrk peab uue tee õppima. Tulemüüripoliitika, mis nimetas vana vahemikku, vajab sama kohtlemist, ja sama kehtib kõige kohta, mis teeb lähtepõhist valikut.
Diagnostika, mis need kaks tõrget eristab, on odav. Värske käepigistus ilma andmeteta tähendab, et tunnel on üleval ja sisemine adresseerimine ei ole kooskõlas. Käepigistuse täielik puudumine tähendab, et vaatate kättesaadavust või võtmeid. Ärge pöörake võtmeid prefiksiprobleemi pärast; see lähtestab ainsa asja, mis töötas.
Aegunud koopiad, mis teie muudatuse üle elavad
Faili muutmine ei ole sama, mis töötava süsteemi muutmine, ja koopiaid on rohkem, kui inimesed ootavad: liidest omav unit või haldur, teine sama nimega profiil teises kataloogis, konteiner, mille konfiguratsioon on kuvandisse sisse küpsetatud, ruuteri liides oma muudetud versiooniga ja kliendirakendus, mis impordib käivitamisel salvestatud tunneli uuesti. Igaüks neist võib vana prefiksi taastada pärast seda, kui teie muudatus tundub valmis.
Ka nimed rändavad. Kui numbriline marsruut töötab, aga hostinimi ei, osutab sisemine DNS-kirje või teenuse konfiguratsioon ikka vanale tunneliaadressile. Parandage viide, selle asemel et iga peeri vahemikku laiendada, mis kataks tegeliku probleemi kinni ja suurendaks samal ajal lähte-ACL-i.
Hoidke töötamise ajal üks taastetee lahti: teine viis hosti pääseda, jadapordi konsool või konfiguratsioonifailide plaaniline tagasipööramine. Tunnelimuudatus, mis lukustab teid välja masinast, mida muudate, on kõige tavalisem viis, kuidas sellest ülesandest saab õhtu.
Kahe vahel valimine ja lülituse kontrollimine
Valige A, kui teile kuulub iga peer, arv on väike ja lühike katkestus on vastuvõetav. Valige B, kui peerid on kauged käed, mida te ei kontrolli, kui saidi-saidi link peab püsti jääma või kui te ei saa garanteerida, et iga koopia uuendatakse ühe läbimisega. Sel juhul lisage uus prefiks mõlemale liidesele, viige peere ükshaaval üle, jälgige liiklust uuel ja alles siis eemaldage vana liides ja selle marsruudid.
Kummalgi valikul on muudatus tehtud, kui neli kontrolli läbivad: käepigistus on värske, uue prefiksiga sihtkoha marsruudiotsing nimetab tunnelit, paarisaja baidi suurune koormus liigub mõlemas suunas ja sama kehtib ka pärast hosti või halduri taaskäivitamist. Ametlik wg(8) käsiraamat on viide sellele, mida AllowedIPs igas suunas tähendab, ja tasub uuesti lugeda enne, kui laiendate vahemikku, et sümptom kaoks.
- Värske käepigistus ja andmeid pole: vaadake vastuvõtja AllowedIPs-i enne, kui võtmeid puudutate.
- Marsruudiotsing osutab valele liidesele: marsruut kuulub haldurile või konteinerile, mitte teie failile.
- Numbriline aadress korras ja hostinimi katki: vana viide, mitte marsruutimise silmus.
- Muudatus on lõplik alles siis, kui taaskäivitamine kasutab ikka uut prefiksi.