Клон з офіса працуе, той самы клон праз кропку доступу тэлефона працуе, а той самы клон з гатэльнай сеткі вісіць, пакуль не ўключаць VPN. Рукапоціск SSH завяршаецца, і сеанс змаўкае на першай сапраўднай перадачы. Адзін радок, дададзены ў канфігурацыю кліента, лячыць git і ssh разам. Калі адзін параметр кліента выпраўляе некалькі інструментаў адразу, няспраўнасць у тым, што кліент адпраўляе, а не ў тым канале, праз які ён адпраўляе.

Чытайце сімптом як розніцу ў маршруце

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

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

Кліент ставіць байт QoS на кожны сокет SSH

Кожнае злучэнне OpenSSH з 7.8 і вышэй нясе ў загалоўку IP значэнне, якое маршрутызатары могуць выкарыстоўваць для прыярытэту трафіку. Тэрмінальныя сеансы атрымліваюць адно значэнне, а масавыя капіраванні — іншае, з меркавання, што чалавек, які друкуе, заслугоўвае лепшага абыходжання, чым перадача файла. Большасць сетак цалкам ігнаруе гэтую падказку, таму яна гадамі застаецца незаўважанай. Меншасць драйвераў Wi-Fi, мабільных аператараў і канцэнтратараў VPN рэагуе на яе, і некаторыя рэагуюць дрэнна.

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

Спачатку пацвердзіце зборку кліента камандай ssh -V. Любая версія 7.8 і вышэй нясе гэтыя паводзіны па змаўчанні.

Тры каманды, якія аддзяляюць гэта ад MTU і DNS

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

ssh -o IPQoS=none -v [email protected]
ssh -G [email protected] | grep -i ipqos
sudo tcpdump -ni any -vv "tcp port 22"

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

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

Змясціце выключэнне ў адзін файл, па адным хасту за раз

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

Host gitlab.example.internal
    IPQoS none
    # direct route rewrites the marking; the tunnel route passes it

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

Будзьце дакладныя наконт таго, што выключэнне не пакрывае. Яно дзейнічае для SSH, таму HTTPS-рэпазіторый, люстра пакетаў і браўзер застаюцца па-за ім, і збой у любым з іх патрабуе ўласных доказаў. У ланцугу праз бастыён кожны крок выкарыстоўвае канфігурацыю кліента, і крок, які завісае, — гэта тое, што варта абмежаваць.

Замкніце цыкл з уладальнікам сеткі

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

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

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

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