VPN sier tilkoblet, men ingenting rutes: to steder å se
Rutevalg og resolverregistrering blir utdatert på hver sin måte. Spør kjernen først, så resolveren per lenke og til slutt den overordnede tilkoblingen.
En tunnel kan melde seg tilkoblet mens ingenting når den, og de to fakta bor på forskjellige steder. Det ene er rutetabellen, som fortsatt kan sende pakker til en enhet ingen eier. Det andre er resolveren, som fortsatt kan liste en server på en lenke som er borte. Nettverksendringen skadet ikke profilen, den gjorde tilstanden som hørte til den forrige tilkoblingen foreldreløs, og reparasjonen avhenger av hvilken av de to du faktisk ser på.
Spør først kjernen hvilken enhet den ville bruke
En ruteliste viser hva som finnes; et ruteoppslag viser hva som ville skje. Spør om en offentlig adresse og les enhetsnavnet i svaret, for det ene feltet avgjør om pakken når noe nyttig. Når svaret navngir en tunnelenhet, gir kjernen pakkene dit selv om ingen klientprosess fortsatt kjører bak det grensesnittet. Når svaret navngir den fysiske adapteren mens klienten hevder å være tilkoblet, er tunnelen oppe og bare ikke den valgte veien.
Det andre tilfellet er det vanlige etter at en kabel har erstattet trådløst, og det presenterer seg som en ødelagt VPN.
ip route show default
ip route get 203.0.113.9Les standardoppføringene deretter, siden en rute lagt til av den forrige basistilkoblingen kan overleve et lenkebytte og stå foran den nye. En standardrute gjennom en enhet som er nede er verre enn ingen standardrute, fordi kjernen fortsatt foretrekker den. Legg merke til metrikken ved hver oppføring, for den rekkefølgen forklarer preferansen raskere enn grensesnittnavnene.
Deretter les resolveren per lenke, ikke per fil
Navneoppslag bærer sin egen tilstand og sin egen utdatering. En resolver som lister DNS-servere per lenke beholder serverne til en tunnellenke som er nede men fortsatt registrert, og hvert oppslag venter da på en server som ikke vil svare. Symptomet er et nettverk som føles dødt mens rutetabellen ser perfekt ut.
Undersøk tilstanden per lenke i stedet for filen, for på mange distribusjoner er filen en symbolsk lenke inn i resolveren, og å redigere den gjør enten ingenting eller blir raskt overskrevet. Se hvilken lenke som eier hvilke servere og hvilket søkedomene, og spør så om tunnellenken i det hele tatt fortsatt bør være registrert. Hvis ikke, deaktiver tilkoblingen som eier den i stedet for å redigere generert tilstand for hånd. Et navn som løses opp mens ruteoppslaget sender pakkene et annet sted, er en tredje og separat feil.
resolvectl status
resolvectl query app.internal.exampleHvis adresser løses opp og tilkoblinger feiler, er resolveren i orden og ruten ikke. Hvis adresser ikke løses opp i det hele tatt, er dette riktig sted å begynne.
Hvordan en utdatert rute overlever endringen
Klienten eier ikke nettverket alene. På en NetworkManager-vert aktiveres en VPN-profil oppå en basistilkobling, og tilkoblingsinnstillingene lar den basen navngi VPN-en som skal følge den. Når basen endres fordi en annen profil blir foretrukket, følger tunnelen over til den nye basen eller blir stående uten noen.
En VPN-profil tar ikke opp seg selv, så parkoblingen betyr langt mer enn profilens egen autoconnect-innstilling.
Les den aktive listen og noter hvilken base som er oppe før du rører tunnelen. Hvis basen står der og tunnelen ikke, mangler ruten snarere enn å være utdatert, og rettelsen er aktivering. Hvis aktiveringen av tunnelen klager over at ingen kildetilkobling finnes, er basen den var parkoblet med borte, så få den opp først eller reparer parkoblingen i stedet for å prøve tunnelen igjen. Å prøve en profil på nytt der forelderen mangler gir samme feil hver gang, noe som er et nyttig signal og ikke en plage.
nmcli device status
nmcli connection show --active
nmcli connection up office-vpnSkille utdatert tilstand fra en manglende forelder
Tre tilstander forklarer nesten hver rapport, og hver krever sin egen reparasjon. En standardrute gjennom en enhet som fortsatt finnes men ikke lenger bærer tunnelen, er utdatert tilstand, ryddet enten ved å slette oppføringen eller ved å starte profilen som er ansvarlig på nytt. En tunnelenhet der klientprosessen er forsvunnet, er en oppryddingsfeil, så frakoblingsveien fortjener oppmerksomheten og ikke rutetabellen. Ingen tunnelenhet i det hele tatt betyr at forelderen eller parkoblingen mangler og at rutetabellen aldri var involvert.
En omstart skjuler hvilken av de tre du hadde, og det er nettopp derfor det føles som en rettelse.
Etter reparasjonen, spør kjernen om en offentlig og en intern adresse, og slå deretter opp et internt navn. Når adressen virker og navnet ikke, har du funnet et domeneomfangproblem i resolveren og ikke et ruteproblem. Noter hvilken tilstand du fant, for den neste nettverksendringen vil gjenskape den du lot være.