VPN forbundet, men én tjeneste fejler: isolér stadiet
Et afsluttet handshake siger intet om navnet, ruten, pakkestørrelsen eller lytteren. Gå gennem fire stadier, og lad den første fejl navngive problemet.
„Forbundet“ er det mindst informative faktum i en VPN-sag. Det registrerer, at to parter har afsluttet et handshake, og intet om navnet, der blev slået op, det interface pakken forlod gennem, dens størrelse, eller om den anden ende accepterede den. Derfor kan én tjeneste fejle, mens alle andre programmer på samme bærbare computer virker. Gå gennem stadierne i rækkefølge, og det første, der fejler, navngiver fejlen.
Begynd med navnet, ikke tunnelen
Slå op, før du ruter, fordi et dårligt svar gør enhver senere test meningsløs. Spørg navnet via systemets resolver og sammenlign det svar med den adresse, programmet faktisk brugte. Et privat navn, der kommer tilbage som en offentlig adresse, betyder, at forespørgslen gik til en resolver, der ikke har noget at gøre med at svare på den. Et navn, der ikke kan slås op, er samme kategori, blot højere.
resolvectl query host.internal
getent hosts host.internal
Browsere med deres egen indstilling for sikker DNS fejler her, mens resten af systemet virker. Derfor hører en klage, der kun gælder browseren, først hjemme på dette stadie, før nogen rører en rute. Sammenlign begge kommandoer i stedet for én, fordi getent følger NSS-vejen, og resolverforespørgslen gør ikke.
Spørg kernen, hvilken vej den valgte
Routingtabellen er en præferencerækkefølge, og den vej kernen vælger, er ikke altid den, diagrammet viser. Spørg den direkte om den pågældende destination. Svaret navngiver interfacet, næste hop og den kildeadresse, der vil blive brugt. En pakke kan forlade tunnelen med en kildeadresse, som den anden ende afviser, og en mere specifik post i den fysiske tabel kan sende den ud gennem Wi-Fi-interfacet i stedet.
ip route get 10.20.30.40
ip -brief address show
Læs felterne dev, via og src i den rækkefølge, fordi hvert af dem udelukker en forskellig mistanke. Dette stadie ejer også den tilstand, klienten har installeret, fordi firewallregler og ruter kan bestå efter en unormal afslutning. Derfor er „ingen internet uden tunnelen“ og „ingen internet, medmindre klienten kører“ én familie af fejl, ikke to.
Test pakkestørrelsen
Et lille svar, der kommer tilbage, mens en stor overførsel går i stå, peger først på rutens MTU. En enkelt probe med do-not-fragment-bitten sat, sendt inde fra tunnelen, adskiller dette stadie fra resten. Hæv payloaden, indtil proben fejler, og du har det tal, der betyder noget.
ping -M do -s 1400 10.20.30.40
Små prober, der lykkes, mens en mappeliste eller en upload hænger, er dette stadies signatur. Klagen lyder som loginoplysninger eller en firewallregel, og den er ingen af delene.
Tallet er en egenskab ved ruten, ikke ved klienten, så en værdi, der virker på en kontorforbindelse, kan fejle på et mobilt link. Gem probekommandoen sammen med sagen, fordi den næste person har brug for den samme måling. Hvis en mindre payload passerer, er løsningen en clamp eller en lavere tunnel-MTU, ikke en ny cipher.
Test den anden ende
Test destinationen på dens adresse, og se derefter, hvad der lytter der. En afvist forbindelse og en forbindelse, der aldrig svarer, er forskellige fund. Den første siger, at noget kører og ikke betjener den port, og den anden siger, at intet kom tilbage. Ingen af dem er som udgangspunkt et klientproblem.
curl -sv http://10.20.30.41:8080/health
nc -vz -w 3 10.20.30.41 3389
ss -lnt 'sport = :8080'
Intet, der kan nås gennem en tunnel, kan være en tjeneste, der kun lytter på 127.0.0.1, fordi lytteren aldrig ser pakken. Når den fjerne værts firewall tillader kontorets undernet og afviser tunnelpoolen, ser resultatet ud som en klientfejl og er det ikke. Remote Desktop eller fildeling, der brækker, mens webtrafik overlever, lander normalt her, uanset hvordan brugeren formulerer det.
Knyt klagen til ét stadie
De fleste rapporter falder i én af fem former, og hver form navngiver et stadie. Et websted, der kun virker gennem tunnelen, er et navnesvar eller en politik bundet til kildeadressen. Opdateringer, der fejler uden tunnelen, mens browsing virker, er et navne- eller ruteproblem for den klient.
At alt stopper, når en udbyderklient starter, er installeret tilstand, altså et rute- og firewallspørgsmål. Én tjeneste utilgængelig, mens resten er fin, er den anden ende. Overførsler, der går i stå efter få sekunder, er pakkestørrelse. Match formen, før du kører kommandoer, fordi den afgør, hvilke beviser der skal indsamles først.
Notér det stadie, der gav den første fejl, sammen med kommandoens output. En sag, der siger, at kildeadressen var forkert, med rutelinjen vedhæftet, er værd at handle på, mens en, der rapporterer VPN som brudt, ikke er.