Старонкі загружаюцца, VPN паведамляе пра злучэнне, а выгрузка файла затынае ў адным і тым жа месцы кожны раз. Гэтаму апісанню адпавядаюць чатыры тлумачэнні: праблема памеру пакета, праблема развязання імён, абмежаванне праграмы і тунель, які пастаянна перазапускаецца. Кожнае з іх можна пацвердзіць або выключыць розным назіраннем, таму рашэнне — гэта выбар правільнай праверкі, а не здагадка пра прычыну.

Чатыры кандыдаты і адна форма

Пачніце з формы збою, бо яна выключае большую частку спісу яшчэ да таго, як будзе адкрыты любы інструмент. Затрымка, якая адбываецца пры пэўным памеры, — гэта праблема памеру, пакуль не даказана адваротнае. Затрымка ў выпадковых месцах — гэта праблема страт або стабільнасці. Збой перад адкрыццём злучэння — гэта праблема імён.

Чацвёрты кандыдат — гэта праграма. Абмежаванні выгрузкі, тайм-аўты запытаў і ліміты памеру цела на проксі ствараюць збоі, якія з пункту гледжання браўзера выглядаюць як збоі сеткі, і яны звычайна прыходзяць як адмова, а не як завісанне.

Запішыце назіраную форму да любога тэсціравання. «Спыняецца прыкладна на адной колькасці байтаў, кожны раз, пры ўзнятым тунелі» — куды мацнейшы пункт адліку, чым «выгрузкі не працуюць».

Затым трымайце шлях нязменным падчас тэсціравання. Адначасовая змена выхаду, пратакола і сервера дае вынік, які нельга аднесці ні да аднаго з іх. Адна зменная за прагон, і запішыце яе.

Падзяліце памер, перш чым кранаць палітыку

Самы танны адрознівальнік — гэта проба, якая змяняе адзін лік. Адпраўце ping з забаронай фрагментацыі, які павялічваецца, да прызначэння, загрузіце кантраляваны вамі файл на той жа сэрвіс, затым параўнайце, дзе кожны спыняецца.

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

Першая каманда паведамляе, ці праходзіць паўнапамерны пакет па шляху наогул. Пры MTU 1500 байтаў найбольшая карысная нагрузка ICMP, якая не фрагментуецца, — 1472 байты, а тунель забірае яшчэ больш з гэтага бюджэту да пачатку ўнутранага пакета. Другая дае вам памер і працягласць для перадачы на ўзроўні праграмы, а гэта і ёсць лік, які сапраўды мае значэнне.

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

Чытайце пару разам. Пробы, якія правальваюцца вышэй за парог, і выгрузка, якая спыняецца каля таго ж парога, — гэта ўзгодная гісторыя. Калі ўсе пробы паспяховыя, а выгрузка затынае на колькасці байтаў, якую шлях відавочна пераносіць, гэта паказвае на праграму або сервер, і ніякая праца з MTU гэтага не зменіць. Такі негатыўны вынік каштоўны не менш за станоўчы. Ён прыбірае самую дарагую галіну расследавання.

Затым праверце стабільнасць падчас перадачы, бо тунель, які перагенеруе ключ пасярэдзіне вялікай выгрузкі, стварае збой, які выглядае залежным ад памеру, не будучы такім. Паказчык часу бясперабойнай працы — самы танны спосаб гэта пацвердзіць.

Выберыце паміж рамонтам і абыходным рашэннем

Калі доказы паказваюць на памер, ёсць два сумленныя адказы і адзін нясумленны. Сумленныя — аднавіць выяўленне MTU шляху, дазволіўшы неабходную зваротную сувязь ICMP, або заціснуць абвешчаны памер сегмента, каб партнёры адпраўлялі меншыя сегменты. Нясумленны — знізіць MTU інтэрфейса да значэння, скапіяванага з форуму, і ніколі не праверыць, што яно змяніла.

Выбар залежыць ад таго, чым вы кіруеце. У сетцы, якой вы кіруеце, дазвол паведамленняў ICMP — гэта чысцейшае выпраўленне, бо яно захоўвае працу механізма для кожнага пратакола. На шляху, якім вы не кіруеце, зацісканне — практычны варыянт, і яго трэба ўжываць вузка, а не на ўсім серверы.

Калі доказы паказваюць на праграму, выпраўце праграму або яе канфігурацыю проксі. Адказ 413 і завіслае злучэнне — гэта розныя збоі, і другі звычайна з'яўляецца тайм-аўтам недзе ў ланцугу, які ўключае проксі з уласнымі лімітамі.

У любым выпадку захавайце зыходныя значэнні і паўтарыце тэст пасля адкату. Змена, якая супала з працоўнай перадачай, не з'яўляецца доказам, што яна выклікала поспех, і магчымасць адкату — гэта тое, што аддзяляе дыягназ ад супадзення.

Запішыце рашэнне, каб яно перажыло наступны інцыдэнт

Чатырох фактаў дастаткова: назіраная форма збою, вынікі проб, зробленая вамі змена і вынік паўторнага тэсту. З імі наступны чалавек зможа сказаць, ці гэта тая ж праблема ці новая з такім жа сімптомам.

Адзначце таксама кантэкст шляху, бо выснова пра MTU залежыць ад канкрэтнага канала. Ноўтбук, які працуе дома і здае ў гатэлі, мае два шляхі, і выпраўленне, ужытае да аднаго з іх, нічога не кажа пра другі.

Нарэшце, супрацьстойце выснове «VPN зламаў выгрузкі». Тунель быў наяўны і ў працоўным, і ў збойным выпадку; змяніўся памер пакета, які шлях павінен быў несці, або месца, дзе перадача была спынена. Менавіта называнне фактычнага механізма робіць запіс карысным.

Падобныя артыкулы