Puslapiai įkeliami, VPN praneša apie ryšį, o failo siuntimas kaskart sustingsta toje pačioje vietoje. Šį aprašymą atitinka keturi paaiškinimai: paketo dydžio problema, vardų skyrimo problema, programos limitas ir tunelis, kuris nuolat atsistato. Kiekvieną jų galima patvirtinti arba atmesti skirtingu stebėjimu, tad sprendimas yra tinkamo testo pasirinkimas, o ne priežasties spėjimas.

Keturi kandidatai ir viena forma

Pradėkite nuo gedimo formos, nes ji pašalina didžiąją dalį sąrašo dar neatidarius jokio įrankio. Strigimas esant pastoviam dydžiui yra dydžio problema, kol neįrodyta priešingai. Strigimas atsitiktinėse vietose yra praradimo ar stabilumo problema. Gedimas prieš atsidarant ryšiui yra vardo problema.

Ketvirtasis kandidatas yra programa. Siuntimo limitai, užklausų laiko limitai ir tarpinio serverio korpuso dydžio ribos sukuria gedimus, kurie naršyklėje atrodo kaip tinklo sutrikimai, ir jie paprastai ateina kaip atmetimas, o ne kaip strigimas.

Užsirašykite pastebėtą formą prieš ką nors bandydami. „Sustoja maždaug ties tuo pačiu baitų skaičiumi, kaskart, kai tunelis įjungtas“ yra daug stipresnis atspirties taškas nei „siuntimai neveikia“.

Tada testuodami laikykite maršrutą nepakeistą. Keičiant išėjimą, protokolą ir serverį vienu metu gaunamas rezultatas, kurio negalite priskirti nė vienam iš jų. Vienas kintamasis vienam paleidimui, ir užsirašykite jį.

Padalinkite dydį per pusę, prieš liesdami politiką

Pigiausias atskirtuvas yra zondas, keičiantis vieną skaičių. Siųskite didėjančio dydžio, draudžiamą fragmentuoti ping į paskirties vietą, įkelkite jūsų kontroliuojamą failą į tą pačią paslaugą ir palyginkite, kur kiekvienas sustoja.

ping -M do -s 1472 203.0.113.9
curl -T ./probe.bin -o /dev/null -w '%{size_upload} %{time_total}
' https://example.net/upload

Pirmoji komanda praneša, ar pilno dydžio paketas apskritai praeina maršrutu. Esant 1500 baitų MTU, didžiausia fragmentuojama ICMP naudingoji apkrova yra 1472 baitai, o tunelis paima dar daugiau iš šio biudžeto, kol vidinis paketas dar neprasidėjo. Antroji duoda jums dydį ir trukmę programos lygio perdavimui, ir tai yra skaičius, kuris iš tikrųjų svarbus.

CandidateObservation that confirms itObservation that rules it out
Path MTU or blocked ICMP feedbackStall at a consistent size; large do-not-fragment probes failSmall and large transfers both complete
Name resolutionThe connection never opens for that nameThe connection opens and then stalls mid-transfer
Application or proxy limitA clean rejection at a documented sizeNo log entry on the server at all
Tunnel instabilityReconnects or rekeying during the transferThe tunnel uptime is unchanged across the failure

Skaitykite porą kartu. Zondai, kurie nepavyksta virš slenksčio, ir siuntimas, kuris sustoja prie to paties slenksčio, yra nuosekli istorija. Jei visi zondai pavyksta, o siuntimas stringa ties baitų skaičiumi, kurį maršrutas akivaizdžiai perneša, tai rodo programą ar serverį, ir joks MTU darbas to nepakeis. Tas neigiamas rezultatas vertas tiek pat, kiek teigiamas. Jis pašalina brangiausią tyrimo šaką.

Tada patikrinkite stabilumą perdavimo metu, nes tunelis, kuris didelio siuntimo viduryje atnaujina raktą, sukuria gedimą, kuris atrodo priklausantis nuo dydžio, nors toks nėra. Veikimo laiko rodmuo yra pigiausias būdas tai patvirtinti.

Pasirinkite tarp remonto ir apėjimo

Jei įrodymai rodo dydį, yra du sąžiningi atsakymai ir vienas nesąžiningas. Sąžiningi yra atkurti maršruto MTU aptikimą leidžiant reikiamą ICMP grįžtamąjį ryšį arba apriboti skelbiamą segmento dydį, kad partneriai siųstų mažesnius segmentus. Nesąžiningas yra sumažinti sąsajos MTU iki vertės, nusirašytos iš forumo, ir niekada nepatikrinti, ką ji pakeitė.

Pasirinkimas priklauso nuo to, ką kontroliuojate. Jūsų valdomame tinkle leisti ICMP pranešimus yra švaresnis sprendimas, nes jis palaiko mechanizmą veikiantį kiekvienam protokolui. Maršrute, kurio nekontroliuojate, apribojimas yra praktiškas variantas, ir jį reikia taikyti siaurai, o ne visam serveriui.

Jei įrodymai rodo programą, sutvarkykite programą arba jos tarpinio serverio konfigūraciją. Atsakymas 413 ir pakibęs ryšys yra skirtingi gedimai, o antrasis paprastai yra laiko limitas kažkur grandinėje, kurioje yra savo ribas turintis tarpinis serveris.

Bet kuriuo atveju išsaugokite pradines vertes ir po grąžinimo išbandykite dar kartą. Pakeitimas, sutampantis su veikiančiu perdavimu, nėra įrodymas, kad jis tai sukėlė, o galimybė atšaukti yra tai, kas atskiria diagnozę nuo atsitiktinumo.

Užrašykite sprendimą, kad jis išliktų iki kito incidento

Keturių faktų pakanka: pastebėta gedimo forma, zondų rezultatai, jūsų atliktas pakeitimas ir pakartotinio testo rezultatas. Su jais kitas žmogus gali pasakyti, ar problema ta pati, ar nauja su tuo pačiu simptomu.

Pažymėkite ir maršruto kontekstą, nes MTU išvada būdinga konkrečiai jungčiai. Nešiojamasis kompiuteris, kuris veikia namuose ir nepavyksta viešbutyje, turi du maršrutus, o vienam jų taikomas pataisymas nieko nesako apie kitą.

Galiausiai atsispirkite apibendrinimui, kad „VPN sulaužė siuntimus“. Tunelis buvo abiem atvejais – ir veikiančiu, ir nepavykusiu; pasikeitė paketo, kurį maršrutas turėjo pernešti, dydis arba vieta, kurioje perdavimas buvo sustabdytas. Būtent tikrojo mechanizmo įvardijimas daro pastabą naudingą.

Susiję straipsniai