De handshake-teller wordt bijgewerkt, de interface behoudt zijn adres, en een ping naar de andere kant komt nergens aan. Die combinatie verwart mensen, omdat een werkende handshake als bewijs voelt dat de tunnel klaar is. Dat is het niet: een tunnel kan volledig zijn onderhandeld en toch geen enkele route hebben die verkeer erheen stuurt, en dat zijn twee afzonderlijke taken die door twee afzonderlijke stukken toestand worden uitgevoerd. De oplossing hangt er volledig van af welke van de twee ontbreekt, dus de eerste stap is dat uitzoeken.

wg-quick doet beide zonder dat erom gevraagd wordt. De ingebouwde WireGuard-ondersteuning van NetworkManager installeert standaard ook peer-routes, wat de verdachten beperkt tot een uitgeschakelde optie, een andere routingtabel of een configuratie die via iets anders is geïmporteerd.

Bevestig de tunnel voordat je de route achternagaat

wg show toont de interface, de peer, het eindpunt en de leeftijd van de laatste handshake, en ip addr show bevestigt dat het adres aanwezig is. Een recente handshake betekent dat de sleutels, het eindpunt en het UDP-pad werken. Alles wat stuk is zit stroomafwaarts: routing, filtering of naamresolutie.

Vraag de kernel daarna wat hij met een echte bestemming zou doen in plaats van een hypothetische: ip route get 10.42.7.9. Het antwoord noemt de uitgaande interface en het bronadres dat het pakket zou dragen. Als het de fysieke adapter noemt, komt het pakket nooit in de tunnel, hoe gezond de handshake er ook uitziet.

AllowedIPs is een filter en een routelijst

De prefixen in AllowedIPs doen twee dingen. Ze kiezen welke peer een uitgaande bestemming draagt, en ze valideren het bronadres van inkomende pakketten, wat de grens van cryptokey-routing is. In wg-quick sturen ze ook de automatische route-installatie aan, en juist dat extra gedrag is de reden dat dezelfde configuratie vanaf een terminal werkt en niet vanaf een desktopclient.

In het geval achter dit artikel is het profiel geïmporteerd via een plugin van derden in plaats van via de ingebouwde ondersteuning, en kwam de interface omhoog zonder de prefixroute. De tabel opsommen laat het meteen zien: ip route show bevat alleen de verbonden route van het interfaceadres, en niets voor het externe bereik.

Vraag of peer-routes überhaupt aan staan

Lees de instelling voordat je iets wijzigt: nmcli -f wireguard.peer-routes,ipv4.route-table connection show work-wg. Als peer-routes no toont, is de ondersteunde reparatie nmcli connection modify work-wg wireguard.peer-routes yes, gevolgd door opnieuw verbinden. In plaats daarvan een statische route toevoegen werkt tot de volgende activering en verdwijnt dan stil. Dat verdwijnen is de aanwijzing: een route die elke ochtend als raadsel terugkomt, wordt niet door het profiel geïnstalleerd.

Als de optie al aan staat, controleer dan met ip route show table all | grep 10 of het prefix in een andere tabel leeft. Een route in een tabel die niet de hoofdtabel is, ontbreekt niet, hij is alleen onzichtbaar voor een zoekopdracht die uitsluitend de hoofdtabel raadpleegt. Repareer de beleidsroutering in plaats van er een dubbele vermelding bovenop te stapelen.

Voeg het prefix aan de verbinding toe, niet aan het draaiende systeem

In de verbindingseditor houdt de WireGuard-pagina de peer en zijn AllowedIPs, en de IPv4-pagina houdt extra routes. Een daar toegevoegde route overleeft herverbindingen omdat hij bij het profiel hoort. Op de opdrachtregel is het equivalent een route aan de verbinding toevoegen in de vorm met lege gateway, en de verbinding daarna naar beneden en weer omhoog brengen zodat de wijziging wordt toegepast.

Kies het smalste prefix dat de hosts dekt die je nodig hebt. Het voorbeeld /8 van de provider kopiëren kan lokale bereiken opslokken die er toevallig binnen vallen, en de daaruit volgende storingen lijken op een kapotte tunnel in plaats van een te brede route.

Split-tunneling wordt door de prefixlijst bepaald

Er is geen schakelaar voor split-tunnel; de prefixlijst is de beslissing. Een peer met één bereik voor het kantoor-LAN en één voor een laboratoriumnetwerk stuurt precies die bestemmingen door de tunnel en laat al het andere met rust. Eén enkele host heeft een /32 nodig, en overlappende bereiken op twee locaties hebben hostprefixen nodig tot iemand een subnet hernummert.

Kiezen om niets door de tunnel te sturen brengt dezelfde beslissing naar zijn uiterste: een minimale lijst houdt de verbinding omhoog terwijl gewoon verkeer zijn gebruikelijke weg volgt. Schrijf de bedoeling op, want anders ziet de volgende lezer de korte lijst als een vergissing en verlengt die behulpzaam.

Eén eigenaar voor de routetabel

wg-quick en NetworkManager menen beide dat zij de routes van de interface bezitten. Importeer een configuratie die voor wg-quick is geschreven en start daarna ook de wg-quick-dienst, en je krijgt dubbele of tegenstrijdige vermeldingen waarvan het gedrag afhangt van welke als laatste liep. Kies één eigenaar en verwijder de ander: als NetworkManager de verbinding beheert, schakel dan de wg-quick-unit voor die interface uit, en voeg nooit een tweede profiel toe voor hetzelfde apparaat.

Wanneer de splitsing een fysieke adapter moet volgen in plaats van een bestemming, ben je overgestapt op beleidsroutering, en beleidsroutering heeft ook één auteur nodig. Controleer door ip route get te herhalen en vervolgens een host binnen het externe prefix te bereiken met iets dat het gekozen bronadres toont. Controleer IPv6 en DNS apart als het profiel een van beide bevat.

Gerelateerde artikelen