Pse traceroute vdes në një drejtim përmes një tuneli VPN
Një gjurmim që përfundon në një drejtim dhe shtyp yje në tjetrin është zakonisht problem diagnostikimi. Krahasoni metodat e sondave, rrugët e kthimit dhe një kërkesë reale.
Dalja e traceroute që përfundon në një drejtim dhe shtyp rreshta yjesh në tjetrin duket si përcjellje asimetrike, dhe zakonisht nuk është. Çdo hop i shfaqur kërkon që sonda të mbërrijë, që një router të vendosë të përgjigjet dhe që përgjigja të kthehet dhe të përputhet me sondën. Thyeni cilindo prej këtyre lidhjeve dhe rreshti bëhet yll, ndërsa tuneli vazhdon të mbajë të dhëna.
Gjurmimi është provë për diagnostikimin përpara se të jetë provë për transportin. Pyetja që ia vlen të bëhet është cila nga tre lidhjet dështoi, dhe përgjigja vjen nga paketat, jo nga forma e daljes.
Një yll është një përgjigje që mungon, jo një hop që mungon
Traceroute ecën nga jashtë duke dërguar sonda, TTL-ja e të cilave skadon një router më larg në çdo raund. Një router që hedh një sondë të skaduar duhet të kthejë një mesazh ICMP Time Exceeded që e emërton vetveten, dhe mjeti shtyp atë emër. Ajo që mjeti pret në të vërtetë është që ky mesazh të mbërrijë brenda një afati kohor. Nëse routeri përgjigjet nga një adresë tjetër burimi, kufizon sa shpesh krijon gabime ose e hedh sondën pa një fjalë, raundi nuk jep asgjë të shtypëshme.
Asnjë prej këtyre rezultateve nuk thotë se rruga përpara është e thyer. Një yll është raport për postë pa përgjigje, jo për një rrugë bosh.
Metoda e sondës vendos cilin filtër do të takoni
Metoda e parazgjedhur në Linux është zakonisht një port destinacioni UDP me numër të lartë, tracert në Windows dërgon jehonë ICMP, dhe Linux-it mund t'i thuhet të përdorë ICMP ose TCP në vend të kësaj. Secila prej tyre duket si lloj tjetër trafiku për një firewall me gjendje ose për një grup sigurie në re. Të krahasosh një gjurmim UDP nga njëra anë me një gjurmim ICMP nga ana tjetër krahaso dy eksperimente të ndryshme. Fiksoni metodën, familjen e adresave, adresën e burimit dhe afatin kohor përpara se t'i quani rezultatet ndryshim.
Për një krahasim të drejtë, ekzekutoni gjurmimin nga hostet që mbajnë vërtet trafikun, jo nga një portë që përcjell në emër të tyre. Një gjurmim i krijuar nga routeri përdor adresën e vet të burimit dhe politikën e daljes, të cilat mund të jenë më të rrepta se çdo gjë që sheh një klient. Shënoni komandën e saktë që personi tjetër të mund ta përsërisë.
Vlera e afatit kohor është gjysma tjetër e eksperimentit, dhe është e lehtë ta lësh jashtë shënimeve. Një pritje prej dy sekondash në një rrugë të mbingarkuar raporton yje ku një pritje prej pesë sekondash raporton hop. Mbani vlerën identike në të gjitha ekzekutimet që krahasimi të mbetet për rrjetin.
Rruga e kthimit është një rrugë më vete
Një gabim ICMP është një paketë e zakonshme me burimin dhe destinacionin e vet, dhe i duhet një rrugë përsëri te gjurmuesi. Nëse politika e tunelit mban prefikset LAN por jo adresën e routerit që krijoi gabimin, mesazhi del në një rrugë që nuk mund t'ju arrijë. Filtrimi i përgjigjeve mund ta hedhë edhe kur rruga ekziston, sepse paketa vjen nga një adresë e papritur në një ndërfaqe të papritur. Ky është një mospërputhje në rrafshin diagnostik, jo një dështim i aplikacionit.
Zgjerimi i çdo selektori derisa gjurmimi të përfundojë e bën figurën më të bukur dhe politikën më të keqe. Rregulloni adresën specifike diagnostike, ose pranoni yllin dhe provoni aplikacionin në një mënyrë tjetër.
Konfirmoni tunelin me një kërkesë reale
Një shtrëngim duarsh TCP në portën e vet të shërbimit ushtron përcjelljen, rrugëtimin e kthimit dhe filtrimin në drejtimin që ka rëndësi. Komandat më poshtë ekzekutohen në të dy skajet dhe krahasojnë çfarë mund të hapë secila anë. Zëvendësoni portën e shërbimit dhe emrin e ndërfaqes së tunelit me ato të konfigurimit tuaj.
traceroute -I -n -w 2 203.0.113.40
traceroute -T -p 443 -n -w 2 203.0.113.40
curl -sS -o /dev/null -w '%{http_code} %{time_total}\n' --max-time 5 http://203.0.113.40:8080/health
ss -tan state established
Lexoni së pari dy ekzekutimet e traceroute: nëse ekzekutimi ICMP tregon hop dhe ai TCP jo, ndryshimi është në metodë, jo në rrugë. Pastaj merrni rezultatin e curl si përgjigje në nivel aplikacioni, sepse një shkëmbim i përfunduar me një kod statusi të arsyeshëm do të thotë që rrugët përpara dhe të kthimit funksionojnë për trafik real. Lista e socket-eve tregon nëse lidhja është vendosur fare, gjë që asnjë gjurmim nuk mund t'ju thotë.
Një tunel që mban një sesion interaktiv në të dy drejtimet ndërsa një traceroute shtyp yje është i shëndetshëm dhe thjesht jo fotografik. Ruani daljen e komandave nga secila anë si regjistër dhe trajtoni hopet që mungojnë si pyetje të hapur për diagnostikimin, jo si verdikt për VPN-në.