Výstup traceroute, ktorý sa dokončí jedným smerom a v druhom vypíše rady hviezdičiek, vyzerá ako asymetrické preposielanie a zvyčajne ním nie je. Každý zobrazený skok potrebuje, aby sonda dorazila, aby sa smerovač rozhodol odpovedať a aby sa odpoveď vrátila a spárovala so sondou. Prerušte ktorýkoľvek z týchto článkov a riadok sa zmení na hviezdičku, zatiaľ čo tunel ďalej prenáša dáta.

Trasa je dôkazom o diagnostike skôr, než je dôkazom o prenose. Otázka, ktorú stojí za to položiť, je, ktorý z troch článkov zlyhal, a odpoveď prichádza z paketov, nie z podoby výstupu.

Hviezdička je chýbajúca odpoveď, nie chýbajúci skok

Traceroute postupuje von vysielaním sond, ktorých TTL v každom kole vyprší o jeden smerovač ďalej. Smerovač, ktorý zahodí vypršanú sondu, by mal vrátiť správu ICMP Time Exceeded s vlastným menom, a nástroj to meno vypíše. Nástroj v skutočnosti čaká, že tá správa dorazí v rámci časového limitu. Ak smerovač odpovie z inej zdrojovej adresy, obmedzí, ako často generuje chyby, alebo sondu bez slova zahodí, kolo nevydá nič na vytlačenie.

Žiadny z týchto výsledkov nehovorí, že je dopredná cesta pokazená. Hviezdička je správa o neodpovedanej pošte, nie o prázdnej ceste.

Metóda sondy rozhoduje, na ktorý filter narazíte

Predvolená metóda na Linuxe býva UDP cieľový port s vysokým číslom, tracert vo Windows posiela ICMP ozveny a Linuxu sa dá prikázať, aby namiesto toho použil ICMP alebo TCP. Každý z nich vyzerá pre stavový firewall alebo cloudovú bezpečnostnú skupinu ako iný druh prevádzky. Porovnávať UDP trasu z jednej strany s ICMP trasou z druhej znamená porovnávať dva rôzne pokusy. Zafixujte metódu, rodinu adries, zdrojovú adresu a časový limit, kým výsledky nazvete rozdielom.

Pre poctivé porovnanie spúšťajte trasu z hostiteľov, ktoré prevádzku skutočne nesú, nie z brány, ktorá za nich preposiela. Trasa vytvorená smerovačom používa jeho vlastnú zdrojovú adresu a výstupnú politiku, ktoré môžu byť prísnejšie než čokoľvek, čo vidí klient. Zaznamenajte presný príkaz, aby ho ďalší človek mohol zopakovať.

Hodnota časového limitu je druhá polovica pokusu a v poznámkach ľahko chýba. Dvojsekundové čakanie na preťaženej ceste hlási hviezdičky tam, kde päťsekundové čakanie hlási skoky. Udržujte hodnotu rovnakú vo všetkých spusteniach, aby porovnanie zostalo o sieti.

Spätná cesta je vlastná trasa

Chyba ICMP je obyčajný paket s vlastným zdrojom a cieľom a potrebuje cestu späť k trasovaču. Ak politika tunela nesie prefixy LAN, ale nie adresu smerovača, ktorý chybu vytvoril, správa odchádza cestou, ktorá k vám nedorazí. Filtrovanie odpovedí ju môže zahodiť aj vtedy, keď trasa existuje, pretože paket prichádza z neočakávanej adresy na neočakávanom rozhraní. To je nesúlad v diagnostickej rovine, nie zlyhanie aplikácie.

Rozširovanie každého selektora, kým sa trasa nedokončí, robí obrázok krajším a politiku horšou. Opravte konkrétnu diagnostickú adresu alebo hviezdičku prijmite a otestujte aplikáciu inak.

Potvrďte tunel skutočnou požiadavkou

TCP podanie ruky na vlastnom porte služby preverí preposielanie, spätné smerovanie aj filtrovanie v smere, na ktorom záleží. Príkazy nižšie bežia na oboch koncoch a porovnávajú, čo dokáže každá strana otvoriť. Nahraďte port služby a názov rozhrania tunela podľa svojho nastavenia.

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

Najprv si prečítajte obe spustenia traceroute: ak spustenie ICMP ukazuje skoky a spustenie TCP nie, rozdiel je v metóde, nie v ceste. Potom vezmite výsledok curl ako odpoveď na úrovni aplikácie, pretože dokončená výmena s rozumným stavovým kódom znamená, že dopredná aj spätná cesta fungujú pre skutočnú prevádzku. Výpis socketov ukazuje, či je spojenie vôbec nadviazané, čo vám žiadna trasa nepovie.

Tunel, ktorý obojsmerne nesie interaktívnu reláciu, zatiaľ čo jeden traceroute vypisuje hviezdičky, je zdravý a len nefotogenický. Uchovajte výstup príkazov z každej strany ako záznam a chýbajúce skoky berte ako otvorenú otázku o diagnostike, nie ako verdikt o VPN.

Súvisiace články