OpenVPN паведамляе пра непаслядоўнае выкарыстанне MTU: што параўноўвае папярэджанне
Папярэджанне параўноўвае параметры партнёраў, а не памеры пакетаў. Аддзяліце старое значэнне link-mtu ад рэальнай праблемы MTU на шляху і праверце зондам, які ўлічвае памер.
Гэта папярэджанне паведамляе пра параўнанне параметраў партнёраў, а не пра вымярэнне шляху паміж імі. Людзі чытаюць яго як «MTU няправільны» і мяняюць лік, пакуль радок не знікне. Так параўнанне канфігурацыі прымаюць за вымярэнне сеткі, і гэта часта робіць тунель горшым, а журнал цішэйшым. Карысны першы крок — вырашыць, якая з гэтых дзвюх праблем у вас насамрэч ёсць.
Адказ вызначаюць тры ўмовы: што параўноўваюць партнёры, ці састарэлае значэнне і які сімптом існуе акрамя папярэджання.
Папярэджанне параўноўвае параметры, а не пакеты
Партнёры OpenVPN абменьваюцца радкамі сваіх параметраў падчас рукапаціскання і параўноўваюць іх у рамках праверкі адпаведнасці параметраў. Калі адзін бок паведамляе link-mtu або tun-mtu інакш, чым другі, неадпаведнасць запісваецца з абодвума значэннямі. Гэты абмен ніколі не адпраўляе вялікі пакет, каб паглядзець, што адбудзецца, таму папярэджанне апісвае канфігурацыю, а не прапускную здольнасць. Тунель можа перадаваць поўнапамерны трафік і ўсё роўна друкаваць яго, або збаўляцца на вялікіх пакетах і не друкаваць нічога.
Захоўвайце поўнае папярэджанне разам з яго лакальным і аддаленым значэннямі. Пара — гэта доказ; адзіны лік, які вы памятаеце, не.
Чаму link-mtu лічыцца састарэлым
OpenVPN 2.6 абвяшчае link-mtu састарэлым, бо зменлівыя загалоўкі і ўзгодненыя шыфры робяць фіксаванае значэнне спасылкі ненадзейным. Параметр меркаваў структуру пакета, якую пратакол больш не гарантуе, таму стары профіль з літаральным link-mtu апісвае намер, які бягучы код не можа выканаць. Капіраванне гэтага ліку ў новы профіль распаўсюджвае састарэлае дапушчэнне. Чытайце яго як частку гісторыі старога профілю, а не як рэкамендацыю.
Праверка адпаведнасці таксама мае неабавязковае значэнне OCC, звязанае з tun-mtu, якое змяняе тое, што параўноўваецца, не змяняючы таго, што перадае сетка. Яго ўсталяванне не дазваляе вялікім пакетам змясціцца.
Выпраўце профіль перад праверкай шляху
Выпраўляйце непажаданую неадпаведнасць праз тых, хто валодае профілямі, і памятайце, што змена на баку сервера закранае кожнага кліента. Рэдагуйце профіль, які экзэмпляр насамрэч загружае, а не экспарт з папкі загрузак. Затым перавызначце адзін тэставы кліент і адзначце, якое папярэджанне засталося. Калі паведамленне змяняе форму, а не знікае, вы параўноўваеце не тыя параметры, пра якія думаеце.
Агульны сервер патрабуе праверкі інвентару кліентаў перад зменай глабальнага значэння, бо значэнне, якое падыходзіць аднаму сайту, можа зламаць іншы.
Затым праверце сімптом, які ў вас сапраўды ёсць
Калі вялікія перадачы заміраюць, а малыя запыты паспяховыя, вымерайце памер пакетаў да кантраляванага адрасата. Зонд, які ўсталёўвае біт «не фрагментаваць» і павялічвае памер карыснай нагрузкі, знаходзіць прыдатны MTU шляху значна надзейней, чым проста паспяховы ping. Уключыце ў тэст праграму, якая збаўляецца: тайм-аўт ICMP можа адлюстроўваць фільтраванне, а маленькі паспяховы ping нічога не кажа пра поўнапамерны пакет праграмы.
mssfix абмяжоўвае MSS, які абвяшчаецца для TCP-сесій унутры тунеля; гэта дапамагае TCP і нічога не робіць для ўнутранай нагрузкі UDP. Налады фрагментацыі і разгрузкі маюць свае ўмовы сумяшчальнасці. Выбірайце механізм для даказанай праблемы, а не мяняйце некалькі адразу, каб прыглушыць радок журнала.
Захоўвайце эфектыўныя значэнні разам з вынікам
Запішыце першапачатковыя і выпраўленыя эфектыўныя значэнні побач з вынікам рэальнай перадачы. Менавіта гэтая пара аддзяляе састарэлы параметр профілю ад праблемы MTU на шляху, якая існуе самастойна. Без яе наступны чытач бачыць папярэджанне, якое знікла, і мяркуе, што сетка змянілася.
Падаўленне праверкі адпаведнасці нічога не ўзгадняе. Яно прыбірае назіранне і пакідае абедзве канфігурацыі як былі.