Ping er ikke bevis: test veien mellom to lokasjoner
En ping fra gatewayen sier ingenting om tjenesten. Gå veien fra en ekte klient, bruk protokollen applikasjonen bruker, og gjenskap størrelsen eller navnet som feiler.
Tunnelen er oppe, gatewayene svarer hverandre, og brukerne på den ene lokasjonen kan fortsatt ikke åpne fildelingen på den andre. Noen pinger fra gatewayen, får et svar og erklærer nettverket friskt. Det svaret reiste mellom to enheter som aldri var problemet. En nyttig test starter på verten som trenger tjenesten, bruker protokollen applikasjonen bruker, og gjenskaper betingelsen den feiler under. Alt annet er grønt lys for en vei ingen er på.
Start ved klienten som trenger tjenesten
Skriv ned fire ting før du tester noe: klientadressen, destinasjonsadressen, vertsnavnet og applikasjonens port. Bekreft deretter at tjenesten virker lokalt på sin egen lokasjon, fra en vert ved siden av. Uten den grunnlinjen kan du ikke skille en brutt tunnel fra en brutt tjeneste, og halvparten av disse sakene er det andre.
Prøv det dokumenterte vertsnavnet og, der tjenesten tillater det, en direkte adressekontroll av samme port. Et mislykket navneoppslag og en uoppnåelig oppslått adresse sender deg ned ulike veier. Hvis du erstatter et vertsnavn med en IP, ikke slå av HTTPS-identitetskontrollen for å få det til å virke; en sertifikatadvarsel er informasjon, ikke en hindring.
Gå veien ved hver kant
Les ruten klienten velger, deretter ruten gatewayen velger for den destinasjonen, deretter tellerne eller et avgrenset opptak ved hver kant. Du leter etter to fakta: nådde forespørselen det fjerne LAN-et, og kom det et svar tilbake. Grensesnitttellere omfatter enhver annen strøm, så korreler etter nøyaktig tidsstempel og adressepar i stedet for grafens form. Et opptak tatt ved feil kant er verre enn ingen, fordi det ser ut som bevis.
ip route get 10.10.0.5
sudo tcpdump -ni any host 10.10.0.5 and port 445
sudo tcpdump -ni any net 10.10.0.0/24 and net 10.20.0.0/24
Hvis forespørselen dukker opp ved den fjerne kanten uten et svar bak seg, er problemet på den andre siden: en brannmur, en manglende returrute eller en vert som ikke godtar kilden. Hvis forespørselen aldri dukker opp, har den lokale ruten eller tunnelvelgerne ikke båret den, og den andre siden er ennå ikke verdt å undersøke.
Bruk protokollen applikasjonen bruker
ICMP er en svak sonde. Den kan filtreres, hastighetsbegrenses eller håndteres av en annen policy enn tjenesten, noe som gjør både suksessen og fiaskoen tvetydig. Test den faktiske porten og, der du kan, det faktiske protokollhåndtrykket.
nc -vz 10.10.0.5 445
curl -sv --max-time 5 https://files.corp.internal/ -o /dev/null
openssl s_client -connect 10.10.0.5:443 -servername files.corp.internal
Et fullført TCP-håndtrykk beviser nåbarhet og policy for den porten. Det beviser ikke at applikasjonen virker: autentisering, en opplasting eller et bestemt API-kall kan fortsatt feile. Test operasjonen brukerne faktisk utfører, med en ufarlig ekvivalent i stedet for å sende inn en ekte transaksjon gang på gang.
Gjenskap betingelsen som feiler
Feil som bare vises ved store overføringer er et størrelsesproblem, ikke et tilkoblingsproblem. Send en stor pakke med don't-fragment-biten satt og se hvor den stopper. Hvis en liten forespørsel lykkes og en stor henger, er tunnelens MTU og MSS-håndteringen på gatewayene de neste mistenkte.
ping -M do -s 1400 10.10.0.5
ping -M do -s 1472 10.10.0.5
curl -sS --max-time 30 -F file=@./sample.bin https://files.corp.internal/upload
Hvis bare ett subnett feiler, se på trafikkvelgere, ruteannonseringer og det subnettets returgateway. Hvis bare vertsnavnet feiler, følg DNS, inkludert hvilken resolver klienten brukte og om fjernvisningen er synlig fra den lokasjonen. Tre forskjellige feil, tre forskjellige rettelser, og pingtesten skiller ikke én av dem.
Etter rettelsen, gjenta den samme testen
Kjør den identiske klienten, destinasjonen, porten og nyttelasten på nytt. Koble deretter til på nytt eller prøv failover-veien hvis designet har en, fordi en rettelse som bare virker mens den opprinnelige tunnelinstansen lever, ikke er testet. Hold testen knyttet til en ekte kilde, en ekte destinasjon og en ekte operasjon i stedet for én grønn indikator på et dashbord.
Noter de fire grunnverdiene og resultatet. Den neste rapporten om samme symptom kan da starte med bevis i stedet for med en ping.