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

Ёсць тры кандыдаты, і іх лёгка зблытаць.

Тры месцы, адкуль можа прыйсці значэнне

Значэнне можа быць зададзенае явна ў канфігурацыі інтэрфейса, вылічанае інструментам наладжвання паводле звестак пра маршрут або ўсталяванае любым сеткавым мэнэджарам, які валодае інтэрфейсам. Звычайны выклік wg не робіць нічога з гэтага, бо wg кіруе толькі ключамі і партнёрамі. MTU жыве на сеткавым інтэрфейсе, таму ip link show wg0 — гэта месца, дзе вы яго чытаеце.

Калі вы не ўпэўненыя, які выпадак падыходзіць, спачатку прачытайце MTU, потым высветліце, хто запусціў інтэрфейс.

Вырашайце па тым, хто кіруе інтэрфейсам

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

Рашэнне не ў тым, які лік лепшы ў абстракцыі. Яно ў тым, які кампанент вы фактычна можаце наладзіць.

Што робіць прадвызначанае вылічэнне

wg-quick шукае маршрут да канцовай кропкі партнёра, бярэ MTU таго выходнага інтэрфейса і аднімае накладныя выдаткі інкапсуляцыі. З вонкавым загалоўкам IPv4 гэта каля 60 байтаў; з IPv6 — каля 80. Вынік абмяжоўваецца, каб шлях у 1500 байтаў даваў 1420, а не значэнне, якое працуе толькі для аднаго сямейства адрасоў. Гэта разумнае прадвызначанае значэнне, а не вымярэнне вашага шляху.

Ён не можа ведаць пра пазнейшы тунель, мабільнае злучэнне або адфільтраваны шлях ICMP.

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

Калі шлях змяняецца пад вамі

Ноўтбук, які перамяшчаецца з Ethernet на Wi-Fi, а потым на кропку доступу тэлефона, захоўвае MTU інтэрфейса, з якім пачаў. Вонкавы шлях цяпер можа быць меншы, і нішто не перагаворваецца нанова. Укладзеныя тунелі робяць горш, бо кожны слой аднімае свае выдаткі з таго ж бюджэту. Значэнне, якое працавала ў офісе, — не тое значэнне, якое працуе ў аэрапорце.

Нядаўні handshake даказвае, што ключы працуюць. Ён нічога не даказвае пра тое, ці змяшчаюцца вялікія пакеты.

Правярайце адзін лік за раз

Пакіньце тую ж праграму і прызначэнне, змяніце адно значэнне і вымерайце. ping -M do -s 1372 правярае пакет у 1400 байтаў з усталяваным бітам DF, і гэта менавіта тая форма тэсту, якая вам патрэбная. Калі малыя запыты працуюць, а вялікія затынаюцца, у вас праблема памеру, а не маршрутызацыі.

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

І не чакайце, што змена MTU выправіць адсутны зваротны маршрут, правіла перасылкі або збой DNS. Яны таксама даюць сімптомы адсутнасці трафіку, і для іх ёсць свае тэсты. Кіраўніцтва wg-quick апісвае аўтаматычны выбар.

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