WireGuard AllowedIPs: ruten, som NetworkManager aldrig tilføjede
En gyldig WireGuard-profil kan fuldføre sit håndtryk og alligevel ikke sende noget. Sammenlign kernetabellen med AllowedIPs, og giv derefter rutestien én ejer.
Håndtrykstælleren opdateres, grænsefladen beholder sin adresse, og en ping til den anden side ender ingen steder. Den kombination forvirrer folk, fordi et fungerende håndtryk føles som bevis på, at tunnelen er klar. Det er det ikke: en tunnel kan være fuldt forhandlet og alligevel ikke have nogen rute, der sender trafik ind i den, og det er to adskilte opgaver udført af to adskilte stykker tilstand. Rettelsen afhænger helt af, hvilken af de to der mangler, så første skridt er at finde ud af det.
wg-quick udfører begge uden at blive bedt om det. NetworkManagers indbyggede WireGuard-understøttelse installerer også peer-ruter som standard, hvilket indsnævrer de mistænkte til en deaktiveret indstilling, en anden rutetabel eller en konfiguration importeret gennem noget andet.
Bekræft tunnelen, før du jager ruten
wg show udskriver grænsefladen, peeren, endepunktet og alderen på det seneste håndtryk, og ip addr show bekræfter, at adressen er til stede. Et nyligt håndtryk betyder, at nøglerne, endepunktet og UDP-stien virker. Alt, hvad der er i stykker, sidder nedstrøms for dem: routing, filtrering eller navneopløsning.
Spørg derefter kernen, hvad den ville gøre med en rigtig destination i stedet for en hypotetisk: ip route get 10.42.7.9. Svaret navngiver den udgående grænseflade og kildeadressen, som pakken ville bære. Når det navngiver den fysiske adapter, kommer pakken aldrig ind i tunnelen, uanset hvor sundt håndtrykket ser ud.
AllowedIPs er et filter og en ruteliste
Præfikserne i AllowedIPs gør to ting. De vælger, hvilken peer der bærer en udgående destination, og de validerer kildeadressen på indgående pakker, hvilket er grænsen for kryptonøgle-routing. I wg-quick styrer de også automatisk ruteinstallation, og netop den ekstra adfærd er grunden til, at den samme konfiguration virker fra en terminal og ikke fra en skrivebordsklient.
I sagen bag denne artikel blev profilen importeret gennem et tredjeparts-plugin i stedet for gennem den indbyggede understøttelse, og grænsefladen kom op uden præfiksnuten. En opremsning af tabellen viser det med det samme: ip route show indeholder kun den forbundne rute for grænsefladens adresse og intet for det fjerne område.
Spørg, om peer-ruter overhovedet er aktiveret
Læs indstillingen, før du ændrer noget: nmcli -f wireguard.peer-routes,ipv4.route-table connection show work-wg. Når peer-routes viser no, er den understøttede reparation nmcli connection modify work-wg wireguard.peer-routes yes efterfulgt af en genopkobling. At tilføje en statisk rute i stedet virker indtil næste aktivering og forsvinder så stille. Den forsvinden er tegnet: en rute, der kommer tilbage som et mysterium hver morgen, bliver ikke installeret af profilen.
Hvis indstillingen allerede er aktiveret, så tjek, om præfikset bor i en anden tabel med ip route show table all | grep 10. En rute i en tabel, der ikke er hovedtabellen, mangler ikke, den er bare usynlig for et opslag, der kun konsulterer hovedtabellen. Ret politik-routing i stedet for at stable en dubletpost ovenpå.
Føj præfikset til forbindelsen, ikke til det kørende system
I forbindelseseditoren holder WireGuard-siden peeren og dens AllowedIPs, og IPv4-siden holder ekstra ruter. En rute, der tilføjes der, overlever genopkoblinger, fordi den hører til profilen. På kommandolinjen er ækvivalenten at tilføje en rute til forbindelsen i formen med tom gateway og derefter tage forbindelsen ned og op, så ændringen anvendes.
Vælg det smalleste præfiks, der dækker de værter, du har brug for. At kopiere udbyderens eksempel /8 kan sluge lokale områder, der tilfældigvis ligger indeni, og de resulterende fejl ser ud som en tunnel i stykker snarere end en for bred rute.
Opdelt tunnelling afgøres af præfikslisten
Der er ingen kontakt til opdelt tunnel; præfikslisten er beslutningen. En peer med et område til kontorets LAN og et til et laboratorienetværk sender præcis de destinationer gennem tunnelen og lader alt andet være. En enkelt vært skal have et /32, og overlappende områder på to lokaliteter skal have værtspræfikser, indtil nogen omnummererer et subnet.
At vælge ikke at sende noget gennem tunnelen fører den samme beslutning til sin grænse: en minimal liste holder forbindelsen oppe, mens almindelig trafik holder sig på sin sædvanlige vej. Skriv hensigten ned, for ellers vil den næste læser behandle den korte liste som en forglemmelse og hjælpsomt udvide den.
Én ejer af rutetabellen
wg-quick og NetworkManager mener begge, at de ejer grænsefladens ruter. Importer en konfiguration skrevet til wg-quick og start derefter også wg-quick-tjenesten, og du får dublerede eller modstridende poster, hvis adfærd afhænger af, hvilken der kørte sidst. Vælg én ejer og fjern den anden: hvis NetworkManager styrer forbindelsen, så deaktiver wg-quick-enheden for den grænseflade, og tilføj aldrig en anden profil til den samme enhed.
Når opdelingen skal følge en fysisk adapter i stedet for en destination, er du flyttet til politik-routing, og politik-routing kræver også én forfatter. Bekræft ved at gentage ip route get og derefter nå en vært inde i det fjerne præfiks med noget, der udskriver den kildeadresse, den valgte. Tjek IPv6 og DNS separat, hvis profilen bærer en af dem.