Traceroute išvestis, kuri baigiasi viena kryptimi, o kitoje spausdina žvaigždučių eilutes, atrodo kaip asimetrinis persiuntimas, ir paprastai juo nėra. Kiekvienam rodomam šuoliui reikia, kad zondas atvyktų, kad maršrutizatorius nuspręstų atsakyti ir kad atsakymas sugrįžtų ir būtų suporuotas su zondą. Nutraukite bet kurią iš šių grandžių ir eilutė tampa žvaigždute, o tunelis toliau perduoda duomenis.

Trasė yra diagnostikos įrodymas anksčiau, nei tampa transporto įrodymu. Verta klausti, kuri iš trijų grandžių nepavyko, ir atsakymas ateina iš paketų, o ne iš išvesties formos.

Žvaigždutė yra trūkstamas atsakymas, o ne trūkstamas šuolis

Traceroute juda į išorę siųsdamas zondus, kurių TTL kiekviename raunde baigiasi vienu maršrutizatoriumi toliau. Maršrutizatorius, kuris išmeta pasibaigusį zondą, turėtų grąžinti ICMP Time Exceeded pranešimą, nurodantį save, ir įrankis atspausdina tą vardą. Iš tikrųjų įrankis laukia, kad tas pranešimas atvyktų per laiko limitą. Jei maršrutizatorius atsako iš kito šaltinio adreso, riboja klaidų generavimo dažnį arba numeta zondą be žodžio, raundas nieko nespausdinamo neduoda.

Nė vienas iš šių rezultatų nesako, kad pirmyn einantis kelias sulaužytas. Žvaigždutė yra ataskaita apie neatsakytą paštą, o ne apie tuščią kelią.

Zondo metodas nusprendžia, kokį filtrą sutiksite

Numatytasis metodas Linux sistemoje paprastai yra didelio numerio UDP paskirties prievadas, Windows tracert siunčia ICMP aidą, o Linux galima nurodyti naudoti ICMP arba TCP. Kiekvienas iš jų atrodo kaip kitokia srauto rūšis būsenos ugniasienei arba debesijos saugos grupei. Lyginti UDP trasę iš vienos pusės su ICMP trase iš kitos reiškia lyginti du skirtingus eksperimentus. Užfiksuokite metodą, adresų šeimą, šaltinio adresą ir laiko limitą, prieš pavadindami rezultatus skirtumu.

Sąžiningam palyginimui vykdykite trasę iš tų pagrindinių kompiuterių, kurie iš tikrųjų neša srautą, o ne iš tinklų sietuvos, kuri persiunčia jų vardu. Maršrutizatoriaus sugeneruota trasė naudoja savo šaltinio adresą ir išėjimo politiką, kurios gali būti griežtesnės už bet ką, ką mato klientas. Užsirašykite tikslią komandą, kad kitas žmogus galėtų ją pakartoti.

Laiko limito reikšmė yra antroji eksperimento pusė, ir ją lengva pamiršti pastabose. Dviejų sekundžių laukimas perkrautame kelyje praneša žvaigždutes ten, kur penkių sekundžių laukimas praneša šuolius. Išlaikykite reikšmę vienodą visuose paleidimuose, kad palyginimas liktų apie tinklą.

Grįžimo kelias yra atskiras maršrutas

ICMP klaida yra įprastas paketas su savo šaltiniu ir paskirtimi, ir jam reikia maršruto atgal iki sekėjo. Jei tunelio politika neša LAN priešdėlius, bet ne maršrutizatoriaus, kuris sukūrė klaidą, adresą, pranešimas išeina keliu, kuris negali jūsų pasiekti. Atsakymų filtravimas gali jį numesti net ir tada, kai maršrutas egzistuoja, nes paketas atvyksta iš netikėto adreso netikėtoje sąsajoje. Tai diagnostikos plokštumos neatitikimas, o ne programos gedimas.

Kiekvieno selektoriaus platinimas tol, kol trasė baigsis, daro vaizdą gražesnį, o politiką blogesnę. Sutaisykite konkretų diagnostikos adresą arba priimkite žvaigždutę ir išbandykite programą kitu būdu.

Patvirtinkite tunelį tikra užklausa

TCP rankos paspaudimas paslaugos pačiame prievade išbando persiuntimą, grįžimo maršrutizavimą ir filtravimą ta kryptimi, kuri svarbi. Toliau pateiktos komandos veikia abiejuose galuose ir lygina, ką kiekviena pusė gali atidaryti. Pakeiskite paslaugos prievadą ir tunelio sąsajos pavadinimą savo konfigūracijos.

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

Pirmiausia perskaitykite du traceroute paleidimus: jei ICMP paleidimas rodo šuolius, o TCP paleidimas ne, skirtumas yra metode, o ne kelyje. Tada imkite curl rezultatą kaip programos lygmens atsakymą, nes baigtas mainai su pagrįstu būsenos kodu reiškia, kad pirmyn ir atgal einantys keliai abu veikia tikram srautui. Lizdų sąrašas rodo, ar ryšys apskritai užmegztas, ko jokia trasė negali pasakyti.

Tunelis, kuris abiem kryptimis neša interaktyvią sesiją, kol vienas traceroute spausdina žvaigždutes, yra sveikas ir tiesiog nefotogeniškas. Saugokite kiekvienos pusės komandų išvestį kaip įrašą ir trūkstamus šuolius laikykite atviru klausimu apie diagnostiką, o ne nuosprendžiu apie VPN.

Susiję straipsniai