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

Які кірунак збойвае?

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

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

wg show wg0 latest-handshakes
wg show wg0 endpoints
wg show wg0 transfer

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

Сон, радыё і стан праграмы

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

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

Што насамрэч робіць keepalive

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

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

Перачакайце інтэрвал, які раней збойваў

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

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

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