WireGuard: kaksi puolikasta reittiä vastaan 0.0.0.0/0 wg-quickissa
Kaksi /1-aluetta kattavat samat osoitteet kuin /0, mutta wg-quick reitittää ne eri tavalla. Tarkista politiikkasäännöt, merkit ja päätepisteen polku ennen muokkausta.
Kaksi /1-etuliitettä kattavat täsmälleen samat IPv4-osoitteet kuin yksi /0, ja tämä yhtäsuuruus pätee vain vertaispartnerin sallittujen etuliitteiden luettelon sisällä. Se lakkaa pätenemästä heti, kun asennustyökalu päättää, miten reitittää, koska Linuxin wg-quick käsittelee oletusetuliitettä erikoistapauksena eikä aritmetiikkana. Erikoishaara asentaa oman taulun, kaksi politiikkasääntöä, pistokemerkinnän ja käänteisen polun asetukset, joita puolikkaiden reittien pari ei koskaan saa. Kun välityspalvelin tai selain siis lakkaa toimimasta muutoksen jälkeen, etuliitteet ovat muutoksen vähiten kiinnostava osa.
Etuliiteluettelo ei ole koko kokoonpano
AllowedIPs tekee kaksi työtä kerralla, ja vain toinen niistä koskee kattavuutta. WireGuardille itselleen luettelo on salausavainreititys: se päättää, mitkä kohteet salataan vertaispartneria kohti ja mitä lähdeosoitteita tämä vertaispartneri saa käyttää. wg-quick:lle sama luettelo toimii myös reittimääritelmänä, ja tuotettu reitti riippuu siitä, mihin haaraan luettelo sattuu osumaan. Identtinen kattavuus kahdella eri luettelomuodolla ei siis kerro mitään identtisestä isäntätilasta.
Oletuskokoonpano ottaa tämän päätöksen pois käsistäsi, koska Table on oletuksena automaattinen ja työkalu valitsee, mihin reitit laskeutuvat. Toinen verkkohallinta, jakelun kääre tai mukautettu Table-arvo muuttaa tulosta taas, ja siksi yhdelle isännälle kirjoitettu neuvo voi näyttää väärältä seuraavalla.
Mitä oletushaara lisää reitin lisäksi
/0-merkintä lähettää wg-quick-työkalun oletusreittinsä polulle: erillinen reititystaulu vastaanottaa oletuksen, yksi politiikkasääntö ohjaa merkitsemättömän liikenteen sinne, toinen sääntö pitää päätaulun tarkemmat reitit ensisijaisina, ja liitännälle asetetaan palomuurimerkintä sen omaan pistokkeeseen. Tämä merkintä on silmukan vartija. Tunneliliikennettä kuljettavat salatut datagrammit lähtevät merkintä asetettuna, jottei sääntö, joka ohjaa kaiken muun tunneliin, niele tunnelin omia kuljetuspaketteja.
Kahden /1-merkinnän pari kulkee sen sijaan tavallista reittipolkua. Kaksi reittiä laskeutuu määritettyyn tauluun, eikä mitään ympäröivästä koneistosta ilmesty, ei siksi että se olisi tarpeetonta, vaan siksi että sitä koodipolkua ei koskaan kuljettu.
Missä kaksi järjestelyä erkanevat
Ero näkyy ensin rekursiona. Kun puolikkaat reitit ovat päätaulussa, vertaispartnerin oma kuljetusosoite osuu tunnelin etuliitteen sisään, joten paketti, jonka pitäisi kuljettaa tunnelia, osuu reittiin, joka osoittaa tunnelin sisään. Jonkin on vapautettava se: isäntäreitti nykyiselle päätepisteelle, käsin asetettu merkintä tai liitäntäkohtainen sääntö. Isäntäreitti toimii, kunnes päätepisteen osoite muuttuu, mitä tapahtuu DNS-pohjaisilla päätepisteillä, vierailevilla asiakkaille ja usean vertaispartnerin kokoonpanoilla.
Toiseksi kaikki, mikä päättelee merkinnöistä, muuttaa käytöstään. Läpinäkyvä välityspalvelin, joka uudelleenohjaa yhteydet paikallisesti, luo uusia pistokkeita, joiden merkinnät ja lähteet eroavat alkuperäisestä asiakasvirrasta, ja oletusharan tuottamat politiikkasäännöt olivat osa sitä, mikä eritteli nämä virrat. Välityspalvelimen oman lähtevän yhteyden lukeminen on eri harjoitus kuin sen testaaminen, onko alkuperäinen kohde tavoitettavissa.
Lue säännöt ja merkinnät ennen muokkausta
Tallenna nykytila tunnelin ollessa terve ja uudelleen muutoksen jälkeen, ja vertaa kahta tulostetta sen sijaan että päättelet kokoonpanotiedostosta. Sisällytä politiikkasäännöt, jokainen taulu, liitännän merkintä ja tallennetut päätepisteet.
ip rule show
ip -4 route show table all | grep -E 'default|wg1'
wg show wg1 fwmark
wg show wg1 endpoints
Jos tulosteen ensimmäinen rivi on menettänyt merkitsemättömän liikenteen säännön ja erillinen taulu on tyhjä, oletushaara ei ole käynnissä, eikä mikään etuliitearitmetiikka palauta sen vaikutuksia. Nollamerkintä liitännällä, jolla sellainen aiemmin oli, on sama signaali, nähtävissä yhdessä arvossa.
Harjoittele tunnelin menetys ennen käyttöönottoa
Jos puolikkaiden reittien asettelu on tietoinen valinta, sen on tarjottava puuttuvat osat nimenomaisesti: osoitemuutokset kestävä päätepisteen polku, aiottu käytös tunnelin pudotessa ja vastaava käsittely IPv6:lle. Kirjoita ne vaatimuksiksi sen sijaan että löytäisit ne keskeytyksen aikana. Harjoittele sitten vika, sillä täysi tunneli, joka putoaa hiljaa fyysiselle uplinkille, on pahempi kuin se, joka lakkaa toimimasta.
sudo ip -4 route add 198.51.100.20/32 via 192.0.2.1 dev eth0
ip -4 route get 198.51.100.20
sudo wg-quick down wg1
Reittihaku ratkaisisi päätepisteen fyysiseltä liitännältä kulkematta tunnelin läpi, ja liitännän alas ajaminen jättäisi isännän siihen tilaan, jonka suunnittelu lupasi. Vaihdon jälkeen toimiva välityspalvelin todistaa, että luotu isäntätila oli merkityksellinen; se ei todista, että silmukan esto ja alas-ajetun tilan käytös selvisivät muutoksesta.