Twee WireGuard-peers deel ’n bereik: wie kry die pakket
Oorvleuelende bereike word deur die mees spesifieke voorvoegsel opgelos, nie deur volgorde nie. Kyk eers na die roete, dan na die peer-lys, voordat jy iets verbreed.
Twee peers lys bereike wat mekaar raak, en verkeer beland by die verkeerde een. Niks is beskadig nie: WireGuard kies ’n peer deur die bestemming teen die gekonfigureerde bereike te pas, en die mees spesifieke passing wen. Voordat jy iets verbreed, besluit watter peer veronderstel is om watter voorvoegsel te besit.
Die langste voorvoegsel wen binne WireGuard
Elke peer-inskrywing dra ’n stel bestemmingsvoorvoegsels. Wanneer ’n pakket na die koppelvlak gerouteer word, soek die implementering die inskrywing met die mees spesifieke passende voorvoegsel, dieselfde reël wat ’n roetertabel toepas. ’n /24 klop dus ’n /16 wat dit bevat, en die nouer peer ontvang die verkeer.
Road-warrior-opstellings gebruik dit doelbewus. Een peer besit ’n breë bereik vir ’n terrein, en individuele gashere word met /32-inskrywings uitgekerf wat aan ander peers behoort. Die patroon werk omdat die uitsny meer spesifiek is, nie omdat die volgorde reg is nie.
Skryf die eienaarskap neer as ’n tabel van voorvoegsel en peer. As twee inskrywings dieselfde voorvoegsel beskryf, druk die konfigurasie nie meer ’n bedoeling uit nie, dit druk ’n wedloop uit.
Die bedryfstelsel kies eerste die koppelvlak
WireGuard kies net tussen die peers op een koppelvlak. Watter koppelvlak die pakket ontvang, word vroeër deur die gasheer se roetertabel bepaal, en ’n tweede verstekroete of ’n verouderde roete kan die verkeer stuur na ’n plek waar die peer-lys dit nooit sien nie. Dit is waarom ’n diagnose op peer-vlak korrek kan wees en tog nie die fout verklaar nie. Kyk na die roete vir die bestemming voordat jy die peer-konfigurasie lees, want ’n roete wat na die fisiese koppelvlak wys, omseil die hele vraag.
Die hulpmiddel installeer gewoonlik daardie roetes uit die peer-bereike, wat beteken dat ’n verandering aan een peer se lys verkeer wat vantevore aan ’n ander behoort het, stilweg kan herpunt. ’n Peer-wysiging is dus ’n roeteverandering in vermomming. Hersien albei gelyktydig, of jy sal die een regmaak en die ander breek.
Inkomende pakkette word volgens bron nagegaan
Die bereiklys doen dubbele diens. Vir uitgaande verkeer kies dit ’n peer volgens bestemming, en vir inkomende verkeer magtig dit ’n bronadres. ’n Pakket wat van ’n adres buite daardie peer se bereike aankom, word laat val voordat enige firewall dit sien.
Daardie asimmetrie is maklik om mis te kyk wanneer jy een kant van die konfigurasie lees. ’n Peer wat ’n subnet kan bereik, word daardeur nie toegelaat om vanaf daardie subnet te stuur nie, en die twee rigtings word deur verskillende kontroles afgedwing.
Nou bron-eienaarskap maak dit ’n voordeel. Gee elke peer ’n /32 vir sy eie adres, dan het die firewall stroomaf ’n betroubare bron om te pas, eerder as ’n groepwye bereik wat enige lid kan opeis.
Dubbele bereike is nie failover nie
Om dieselfde voorvoegsel aan twee peers toe te wys, skep nie ’n lasbalanseerder of ’n bystandpad nie. Daar is geen gesondheidskontrole en geen sessie-affiniteit nie: die inskrywing wat wen, word deur die implementering se interne volgorde bepaal, wat nie ’n kontrak is waarop jy moet ontwerp nie. As jy alternatiewe uitgange nodig het, druk dit uit waar die keuse gedefinieer is. ’n Roetebeleid, ’n maatstaf of ’n paar afsonderlike voorvoegsels met elkeen ’n gedokumenteerde eienaar lewer gedrag wat jy kan voorspel en toets.
Om ’n bereik te verbreed om ’n onverwante fout reg te maak, is die ander algemene fout. Dit skuif verkeer weg van die peer wat gewerk het, en die nuwe simptoom kom voordat die oue verstaan is.
Verifieer die keuse voordat jy wysig
Drie opdragte beantwoord die drie vrae in volgorde. Die eerste lys die bereike wat elke peer opeis. Die tweede wys watter koppelvlak die gasheer vir ’n bestemming sou gebruik. Die derde wys lewende peer-toestand nadat verkeer gevloei het.
wg show wg0 allowed-ips ip route get 10.66.8.20 wg show wg0 ip rule show
Voer hulle voor en na ’n verandering uit en vergelyk. As die roete-uitset verander het maar die verkeer steeds by die verkeerde peer aankom, oorvleuel die voorvoegsellys op ’n manier wat jy nog nie neergeskryf het nie. As die roete-uitset nie verander het nie, was die peer-konfigurasie nooit die ding wat geraadpleeg is nie.
Teken die bestemming, die gekose koppelvlak en die gekose peer in die kaartjie aan. Daardie drietal is wat ’n oorvleueling later nareviseerbaar maak, en dit is baie nuttiger as ’n skermkopie van die konfigurasie.