Granska Linux-policyrouting innan du ändrar standardrutten
En regel kan skicka ett flöde till en annan tabell och göra huvudstandarden irrelevant. Läs prioritet, tabell och ägare innan du ändrar en Linux VPN-rutt.
En VPN-värd svarar på ett gränssnitt och vägrar skicka svar tillbaka genom tunneln, och standardrutten ser korrekt ut. Det är där huvudtabellen slutar vara hela historien. Linux kan välja en routingtabell per paket med hjälp av policyregler, och VPN:en kan ha installerat en. Läs reglerna innan du rör standardrutten.
Ordningen spelar roll: regler först, sedan tabellen varje regel väljer.
Läs reglerna i prioritetsordning
Kör ip rule show och läs uppifrån och ned. Prioritetsnumret styr utvärderingsordningen, och ett lägre nummer kontrolleras tidigare. Standardregeln på 32766 är oftast den sista som spelar roll. Är listan lång, spara den i en fil innan du ändrar något.
För varje regel noterar du prioritet, matchningen (källa, markering, gränssnitt eller destination) och tabellen den refererar till. En regel utan användbar tabell är en återvändsgränd, inte en rutt.
Gör samma sak för IPv6 med ip -6 rule show. En policy som bara finns i IPv4-familjen lämnar den andra familjen på huvudtabellen.
Läs tabellen varje regel väljer
Använd ip route show table <name or number> för varje refererad tabell. Jämför dess rutter med gränssnittet och nästa hopp du förväntar dig. En tom eller ofullständig tabell förklarar ett fel som huvudtabellen inte kan.
Huvudtabellen kan fortfarande innehålla standardrutten, och det är okej. Om en regel skickar ditt flöde till tabell 51820 först är huvudstandarden irrelevant för det paketet.
Slå upp tabellnamnet i /etc/iproute2/rt_tables om numret är okänt. Den uppslagningen tar en sekund och förhindrar en lång omväg.
Ta reda på vem som installerade regeln
NetworkManager, wg-quick och andra skript kan installera regler dynamiskt. Att radera en under drift kan återställas vid nästa återanslutning. Kontrollera hanterarens konfiguration innan du lägger till en konkurrerande regel.
wg-quick lägger till exempel till en markerad regel och en tabell för tunnelns tillåtna adresser. Den regeln är anledningen till att trafik till dessa adresser kringgår huvudstandarden. Tar du bort den utan att ändra konfigurationen återställer nästa up den.
Bevara slutpunktens yttre rutt och administratörsåtkomst medan du granskar. Töm inte alla regler på en aktiv fjärrgateway för att förenkla utdata. En administratörssession som överlever ändringen är en del av testet.
Testa källkontexten som spelar roll
En generisk ip route get svarar på en annan fråga än applikationsflödet. Lägg till källadressen, och markeringen om VPN:en använder en, för att se vägen det verkliga paketet tar. Testa en inkluderad och en utesluten destination med samma källkontext. Upprepa sedan för IPv6 om värden kör dubbla stackar.
Efter en godkänd korrigering, kör samma två uppslagningar igen och jämför. Notera den avsedda regeln, tabellen och hur länge regeln överlever en omstart. Den anteckningen gör nästa tjänsteomstart förklarlig i stället för mystisk. ip-rule-manualsidan dokumenterar matchningsväljarna och tabellsyntaxen.