Å utelukke et vertsnavn er noe en tunnel ikke kan gjøre. En rute kan derimot sende én enkelt adresse forbi tunnelen og ut gjennom hjemmegatewayen, og det er vanligvis nok for ett nettsted. Haken er at alt nedstrøms for ruten må være enig: brannmuren må slippe pakken ut, DNS må levere tilbake adressen du rutet, og nettstedet må fortsette å bruke den adressen. Når en av de tre driver, slutter unntaket å virke uten å varsle om det.

Les destinasjonsadressen før du rører tunnelen

Last nettstedet én gang med tunnelen oppe, og se deretter på peer-adressen nettleseren faktisk koblet til. På Linux, ss -tunp lister fjernadressen for hver åpen socket, og dig +short på samme navn viser hva resolveren returnerte. Hold begge tallene foran deg.

De to svarene er ofte uenige, og uenigheten er hele problemet. Store nettsteder setter et innholdsnetverk foran opprinnelsen sin, så adressen resolveren din returnerer nå, er kanskje ikke den nettleseren brukte for et minutt siden. Rut det du observerte på socketen, ikke det en eldre veiledning lister opp. Hvis svarene fortsetter å rotere mellom regioner, er et adresseunntak feil verktøy for nettopp det nettstedet.

Kjør oppslaget en gang til fra et annet nettverk, og noter IPv6-svaret sammen med IPv4-svaret. En tunnel som bærer begge familiene trenger et unntak i begge, ellers faller nettleseren lydløst tilbake til IPv6-veien du aldri rørte. Skriv ned adressene og datoen et sted du vil se igjen.

Sett én vertsrute på klienten

Anta at grensesnittet heter home-wg og at LAN-ruteren står på 192.168.1.1. NetworkManager tar en rute der gatewayen er den ruteren og der prefikslengden dekker alle 32 biter, og kjernen foretrekker den fordi det lengste prefikset vinner.

nmcli connection modify home-wg +ipv4.routes "198.51.100.20/32 192.168.1.1"
nmcli connection up home-wg
ip route get 198.51.100.20

Gatewayen må være nåbar uten tunnelen; å peke neste hopp mot tunneladressen ødelegger formålet, fordi pakken ville gå inn i grensesnittet du prøver å unngå igjen. Når tilkoblingen er oppe igjen, ip route get for unntaket skal skrive ut LAN-gatewayen, og samme kommando for en offentlig resolver skal fortsatt skrive ut tunneleenheten.

En wg-quick-profil har ikke noe ruterfelt, så det samme unntaket bor i en PostUp -linje som legger vertsruten til hovedtabellen med LAN-grensesnittet som enhet. Ta grensesnittet ned og opp etter redigering, fordi et kjørende grensesnitt aldri leser filen sin på nytt. fwmark-reglene wg-quick installerer styrer bare sine egne innkapslede pakker, så vanlig nettlesertrafikk følger fortsatt hovedtabellen og finner /32-en din.

Kill switch er det neste som blokkerer det

En brannmurpolicy som bare slipper trafikk inn på tunnelegrensesnittet, vil forkaste unntaket selv når ruten er helt riktig. Les reglene bak bryteren i stedet for å stole på bryteren, fordi de som implementerer kill switch vanligvis er begrenset til et grensesnittnavn.

Det du vil ha, er en smal tillatelse for det fysiske grensesnittet og det ene målet, plassert før forkastelsen, mens standardpolicyen forblir urørt. Å pause kill switch helt beviser poenget, men lar også maskinen stå åpen så lenge du glemmer å slå den på igjen.

Test de to retningene hver for seg. En forespørsel til unntaksadressen skal lykkes, mens en forespørsel til et ikke-relatert nettsted fortsatt går ut gjennom tunnelen. Hvis begge lykkes, men den andre rapporterer hjemadressen, er rekkefølgen på brannmurreglene feil, ikke ruten.

DNS avgjør hvilken adresse nettleseren ringer

Når navnet løses inne i tunnelen, kan leverandørens resolver svare med en annen adresse enn den lokale gjorde. Ruten din gjelder da for en adresse nettleseren aldri kontakter, og siden lastes gjennom tunnelen som om ingenting var endret. Denne feilen ser ut som et ødelagt unntak selv når rutetabellen er korrekt.

Send spørringene for det navnet gjennom den lokale resolveren også, eller hopp helt over navn og test adressen direkte. Å dele adressen mens DNS blir værende inne i tunnelen er den vanligste halvferdige versjonen av dette oppsettet, og den er også vanskeligst å legge merke til, fordi nettstedet fortsetter å virke, bare ikke slik du mente.

Samme unntak på ruteren, én gang, for hver enhet

Når tunnelen kjører på ruteren, hører vertsruten til ruterens policy-rutingtabell og peker mot WAN-gatewayen i stedet for LAN-gatewayen. Hver enhet bak den arver unntaket, noe som betyr noe for en strømmeboks eller en arbeidslaptop der du ikke kan endre nettverksinnstillingene.

La tunnelen være standardutgangen for alle andre klienter, og verifiser deretter fra en klientmaskin i stedet for fra ruterens konsoll. Last unntaksnettstedet og et andre nettsted i samme nettleserøkt og sammenlign utgangsadressene; hvis det andre fortsatt viser tunnelen, gjør policytabellen det du ba om.

Skriv ned adressen, datoen og årsaken i ruterens notater. Et unntak bygget rundt en adresse som senere flytter seg, blir en feil ingen kan forklare om et år, og rettelsen ser alltid ut som en gåte til noen finner den gamle notaten.

Relaterte artikler