Att utesluta ett värdnamn är något en tunnel inte kan göra. En rutt kan däremot skicka en enda adress förbi tunneln och ut genom hemmagatewayen, och det räcker oftast för en webbplats. Haken är att allt nedströms rutten måste vara överens: brandväggen måste släppa ut paketet, DNS måste lämna tillbaka adressen du routade, och webbplatsen måste fortsätta använda den adressen. När någon av de tre driver slutar undantaget att fungera utan att meddela sig.

Läs destinationsadressen innan du rör tunneln

Ladda webbplatsen en gång med tunneln uppe och titta sedan på peer-adressen som webbläsaren faktiskt anslöt till. På Linux, ss -tunp listar fjärradressen för varje öppen socket, och dig +short på samma namn visar vad resolvern returnerade. Håll båda talen framför dig.

De två svaren stämmer ofta inte, och den avvikelsen är hela problemet. Stora webbplatser sätter ett innehållsnätverk framför sitt ursprung, så adressen din resolver returnerar nu är kanske inte den webbläsaren använde för en minut sedan. Routa det du observerade på socketen, inte det en äldre guide listar. Om svaren fortsätter rotera mellan regioner är ett adressundantag fel verktyg för just den webbplatsen.

Kör uppslaget en gång till från ett annat nätverk och notera IPv6-svaret tillsammans med IPv4-svaret. En tunnel som bär båda familjerna behöver ett undantag i båda, annars faller webbläsaren tyst tillbaka till IPv6-vägen du aldrig rörde. Skriv ner adresserna och datumet någonstans där du tittar igen.

Sätt en värdrutt på klienten

Anta att gränssnittet heter home-wg och att LAN-routern står på 192.168.1.1. NetworkManager tar en rutt vars gateway är den routern och vars prefixlängd täcker alla 32 bitar, och kärnan föredrar den eftersom det längsta prefixet 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åste vara nåbar utan tunneln; att peka nästa hopp mot tunneladressen omintetgör syftet, eftersom paketet skulle gå in i gränssnittet du försöker undvika igen. När anslutningen är uppe igen, ip route get för undantaget bör skriva ut LAN-gatewayen, och samma kommando för en offentlig resolver bör fortfarande skriva ut tunneleenheten.

En wg-quick-profil har inget ruttfält, så samma undantag bor i en PostUp -rad som lägger till värdrutten i huvudtabellen med LAN-gränssnittet som enhet. Ta ner och upp gränssnittet efter redigeringen, eftersom ett körande gränssnitt aldrig läser om sin fil. fwmark-reglerna som wg-quick installerar styr bara sina egna inkapslade paket, så vanlig webbläsartrafik följer fortfarande huvudtabellen och hittar din /32.

Kill switch är nästa sak som blockerar det

En brandväggspolicy som bara släpper in trafik på tunnelgränssnittet kommer att kasta undantaget även när rutten är exakt rätt. Läs reglerna bakom strömbrytaren i stället för att lita på strömbrytaren, eftersom de som implementerar en kill switch oftast är begränsade till ett gränssnittsnamn.

Det du vill ha är ett smalt tillstånd för det fysiska gränssnittet och just det målet, placerat före släppandet, medan standardpolicyn förblir orörd. Att pausa kill switch helt bevisar poängen, men lämnar också maskinen exponerad så länge du glömmer att slå på den igen.

Testa de två riktningarna separat. En begäran till undantagsadressen bör lyckas medan en begäran till en orelaterad webbplats fortfarande går ut genom tunneln. Om båda lyckas men den andra rapporterar hemadressen är ordningen på brandväggsreglerna fel, inte rutten.

DNS avgör vilken adress webbläsaren ringer

När namnet löses inuti tunneln kan leverantörens resolver svara med en annan adress än den lokala gjorde. Din rutt gäller då för en adress som webbläsaren aldrig kontaktar, och sidan laddas genom tunneln som om ingenting hade ändrats. Det här felet ser ut som ett trasigt undantag även när routingtabellen är korrekt.

Skicka frågorna för det namnet genom den lokala resolvern också, eller hoppa helt över namn och testa adressen direkt. Att dela adressen medan DNS stannar inuti tunneln är den vanligaste halvfärdiga versionen av den här uppsättningen, och den är också svårast att märka, eftersom webbplatsen fortsätter fungera, bara inte som du tänkt.

Samma undantag på routern, en gång, för varje enhet

När tunneln körs på routern hör värdrutten till routerns policy-routingtabell och pekar mot WAN-gatewayen i stället för LAN-gatewayen. Varje enhet bakom den ärver undantaget, vilket spelar roll för en streamingbox eller en arbetslaptop vars nätverksinställningar du inte kan ändra.

Låt tunneln vara standardutgången för alla andra klienter och verifiera sedan från en klientmaskin i stället för från routerns konsol. Ladda undantagswebbplatsen och en andra webbplats i samma webbläsarsession och jämför utgångsadresserna; om den andra fortfarande visar tunneln gör policytabellen det du bad om.

Skriv ner adressen, datumet och orsaken i routerns anteckningar. Ett undantag byggt kring en adress som senare flyttar blir ett fel ingen kan förklara om ett år, och rättelsen ser alltid ut som en gåta tills någon hittar den gamla anteckningen.

Relaterade artiklar