Miért hal meg a traceroute egy irányban egy VPN-alagúton
Az a nyom, amely az egyik irányban teljes, a másikban csillagokat ír ki, általában diagnosztikai probléma. Hasonlítsa össze a szonda módszereket, a visszautakat és egy valódi kérést.
Az a traceroute-kimenet, amely az egyik irányban teljes, a másikban pedig csillagok sorait írja ki, aszimmetrikus továbbításnak látszik, és általában nem az. Minden megjelenített ugrás megköveteli, hogy a szonda megérkezzen, hogy egy útválasztó úgy döntsön, válaszol, és hogy a válasz visszajusson és párosuljon a szondával. Törje meg bármelyik láncszemet, és a sor csillaggá válik, miközben az alagút tovább szállítja az adatokat.
A nyom a diagnosztikáról szóló bizonyíték, mielőtt a szállításról szóló bizonyíték lenne. A kérdés, amelyet érdemes feltenni, az, hogy a három láncszem közül melyik hibázott, és a válasz a csomagokból jön, nem a kimenet formájából.
A csillag hiányzó válasz, nem hiányzó ugrás
A traceroute kifelé halad olyan szondák küldésével, amelyek TTL-je minden körben egy útválasztóval távolabb jár le. Az az útválasztó, amely eldobja a lejárt szondát, elvileg egy ICMP Time Exceeded üzenetet küld vissza, amely megnevezi önmagát, és az eszköz kiírja ezt a nevet. Amit az eszköz valójában vár, az az, hogy ez az üzenet egy időkorláton belül megérkezzen. Ha az útválasztó más forrásból válaszol, korlátozza a hibák létrehozásának gyakoriságát, vagy szó nélkül eldobja a szondát, a kör semmi kiírhatót nem ad.
Ezek egyike sem mondja, hogy az előre vezető út elromlott. A csillag a megválaszolatlan levélről szóló jelentés, nem az üres útról.
A szonda módszere dönti el, melyik szűrőbe botlik
A Linux alapértelmezett módszere általában egy magas számú UDP célport, a Windows tracert ICMP visszhangokat küld, a Linux pedig utasítható, hogy helyette ICMP-t vagy TCP-t használjon. Mindegyik másként néz ki egy állapotkövető tűzfal vagy egy felhő biztonsági csoport számára. Ha az egyik oldali UDP-nyomot a másik oldali ICMP-nyommal hasonlítja össze, két különböző kísérletet hasonlít össze. Rögzítse a módszert, a címcsaládot, a forráscímet és az időkorlátot, mielőtt az eredményeket különbségnek nevezné.
A tisztességes összehasonlításhoz azokról a gazdagépekről futtassa a nyomot, amelyek valóban szállítják a forgalmat, ne egy átjáróról, amely a nevükben továbbít. Az útválasztó által létrehozott nyom az útválasztó saját forráscímét és kimeneti szabályzatát használja, amelyek szigorúbbak lehetnek mindennél, amit egy ügyfél lát. Jegyezze fel a pontos parancsot, hogy a következő ember meg tudja ismételni.
Az időkorlát értéke a kísérlet másik fele, és könnyű kihagyni a jegyzetekből. Két másodperces várakozás egy zsúfolt úton csillagokat jelent ott, ahol öt másodperces várakozás ugrásokat jelent. Tartsa az értéket azonosnak minden futásban, hogy az összehasonlítás a hálózatról szóljon.
A visszaút a saját útvonala
Az ICMP-hiba egy közönséges csomag saját forrással és céllal, és visszaútra van szüksége a nyomkövetőhöz. Ha az alagút szabályzata szállítja a LAN-előtagokat, de nem a hibát létrehozó útválasztó címét, az üzenet olyan úton indul el, amely nem ér el önhöz. A válaszok szűrése akkor is eldobhatja, ha az útvonal létezik, mert a csomag váratlan címről, váratlan interfészen érkezik. Ez a diagnosztikai síkban lévő eltérés, nem alkalmazáshiba.
Minden szelektor szélesítése addig, amíg a nyom teljessé nem válik, szebbé teszi a képet és rosszabbá a szabályzatot. Javítsa a konkrét diagnosztikai címet, vagy fogadja el a csillagot, és más módon tesztelje az alkalmazást.
Erősítse meg az alagutat valódi kéréssel
A szolgáltatás saját portján végzett TCP-kézfogás a fontos irányban gyakorolja a továbbítást, a visszairányítást és a szűrést. Az alábbi parancsok mindkét végén futnak, és összehasonlítják, mit tud megnyitni mindkét oldal. Cserélje ki a szolgáltatás portját és az alagút interfészének nevét a saját beállításaiból.
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
Először olvassa el a két traceroute-futást: ha az ICMP-futás ugrásokat mutat, a TCP-futás pedig nem, a különbség a módszerben van, nem az útvonalban. Utána vegye a curl eredményét alkalmazásszintű válasznak, mert egy értelmes állapotkóddal befejezett csere azt jelenti, hogy az oda- és a visszaút is működik valódi forgalomhoz. A socketlista megmutatja, hogy a kapcsolat egyáltalán létrejött-e, amit egyetlen nyom sem tud megmondani.
Az az alagút, amely mindkét irányban interaktív munkamenetet szállít, miközben egy traceroute csillagokat ír ki, egészséges, csak éppen nem fotogén. Őrizze meg mindkét oldal parancskimenetét feljegyzésként, és a hiányzó ugrásokat a diagnosztikáról szóló nyitott kérdésnek tekintse, nem a VPN-ről szóló ítéletnek.