Бет ашылады, ping сәтті өтеді, ал файл көшірмесі әр жолы бір жерде тұрып қалады. Бұл үлгі өткізу қабілетіне немесе тіркелу деректеріне емес, пакет өлшеміне нұсқайды. Инкапсуляция әр пакетке байт қосады, сондықтан бастапқы жолға сыятын пайдалы жүктеме туннель арқылы өткенде шектен асуы мүмкін. Бұл әңгімелерде үш түрлі сан MTU деп аталады, ал оларды шатастыру бір қолданбаны түзетіп, екіншісін бұзатын параметрге әкеледі.

Адамдар MTU деп атайтын үш сан

Интерфейс MTU — осы байланыстағы пакет үшін конфигурацияланған шек. Жол MTU — маршрут бойындағы ең кіші шек, ол конфигурацияланбайды, анықталады. TCP MSS — қарсы тарап қабылдай алатынын жариялайтын пайдалы жүктеме өлшемі, ол қалған екеуінен шығарылады, жеке физикалық шек емес.

Туннельдің ішкі және сыртқы көрінісі бар. Сыртқы пакет инкапсуляцияланған пакетті және протоколға қажет тақырыптарды тасымалдайды, сондықтан пайдалануға болатын ішкі өлшем сыртқы жол рұқсат ететіннен кіші. VPN серверіне дейінгі жол да серверден межелі орынға дейінгі жолдан өзгеше.

Жол MTU-ын анықтау жіберушіге жұмыс істейтін өлшемді білуге мүмкіндік береді, бірақ кері байланыстың жетуіне байланысты. Аралық құрылғы тиісті ICMP хабарламаларын сүзгенде, жіберуші ешқашан аяқталмайтын пакеттерді жіберуді жалғастырады, және бұл классикалық қара құрдым. Симптом оны білгенде айқын: қол алысу сәтті болады, толық өлшемді алғашқы жүктеме жоғалады, ал байланыс ақырында қайта орнатылады немесе ілініп қалады. Қолданба журналында ешнәрсе желі мәселесіне ұқсамайды.

Жолды өзіңіз басқаратын жүктемемен тексеріңіз

Сынақ бір маршрут пен бір өлшем жайлы дәлел, ұсынылған параметр емес. Жауап беретін хостты пайдаланыңыз және тек жүктеме өлшемін өзгертіңіз.

ping -M do -s 1372 -c 2 203.0.113.20
ping -4 -f -l 1372 vpn.example

Бірінші команда фрагментацияны өшіріп, 1372 байт жүктемемен Linux сынағын жібереді, екіншісі дәл солай Windows-та жасайды, онда жүктеме -l арқылы беріледі. Жауап бұл өлшемнің жолдан өткенін білдіреді. Фрагментация қажеттігі туралы хабарлама ақпараттандырады, ал таймаут екіұшты, өйткені хост немесе аралық құрылғы ICMP-ны жай ғана тастауы мүмкін.

Өлшемді байтқа дейінгі бинарлық іздеу орнына бірнеше қадаммен төмендетіңіз. Сіз өлшем төбесінің бар-жоғын анықтауға тырысып жатырсыз, әр желі үшін сан жариялауға емес. Тапқан саныңыз осы жолға, осы протоколға және осы мекенжайлар отбасына қатысты.

IPv4 мен IPv6 әртүрлі фрагменттеледі, сондықтан бір отбасының нәтижесі екіншісі туралы ештеңе айтпайды. Қолданба шын мәнінде қолданатын отбасын тексеріңіз.

MSS шектеу тек TCP-ге көмектеседі

TCP-де тиімді жүктеме қол алысу кезінде келісіледі, ал жолдағы маршрутизатор бұл мәнді төмен қарай қайта жаза алады, сондықтан екі ұш та кішірек сегменттер жібереді. MSS шектеу осыны жасайды және клиентке мүлде тимей жұмыс істейді.

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
ip link show tun0

Бірінші ереже берілетін TCP қол алысулары үшін жарияланған MSS-ті жол MTU-ына шектейді, екіншісі туннель интерфейсінің өз MTU-ын көрсетеді, осылайша оны жол рұқсат ететінмен салыстыра аласыз. Қол алысудан кейін ілінетін TCP қолданбасы үшін шектеу ең аз араласатын түзету.

UDP үшін ол ештеңе жасамайды. Үлкен дейтаграммалар жіберетін дауыс немесе ойын клиенті MSS параметрін толығымен елемейді, өйткені қайта жазатын қол алысу жоқ. Егер сәтсіз қолданба UDP болса, оның орнына клиенттің өз пакет өлшемі параметрлерін қараңыз. Екі протокол әртүрлі сәтсіздікке ұшырайды және әртүрлі құралдармен жөнделеді, сондықтан протокол билеттің бірінші сөйлемінде болуы керек.

OpenVPN tun-mtu, mssfix және фрагментацияға қатысты параметрлер сияқты опцияларды ұсынады, олардың әрекеті нұсқаға және деректер арнасының AEAD болуына байланысты. Қолданылып жатқан нұсқаның нұсқаулығын оқып, бір уақытта бір опцияны өзгертіңіз.

Бір қолдау көрсетілген параметрді өзгертіп, екі жүгірісті қайталаңыз

Түпнұсқа профильді сақтап, бір қолдау көрсетілген мәнді өзгертіңіз және жұмыс істеген шағын сұранысты да, сәтсіз болған үлкен жіберуді де қайталаңыз. Тек үлкені өзгерсе, сіз өлшемнің соңынан жүрдіңіз. Екеуі де өзгерсе, онымен бірге тағы бірдеңе қозғалды.

Төмен мән симптомды азайтуы мүмкін, бірақ қосымша шығын қосады, сондықтан мүмкін болатын ең кіші сан мақсат емес. Мақсат — жолдың ең аз ысыраппен сенімді тасымалдайтын өлшемі. Мәнді, жолды және клиент нұсқасын билетке жазыңыз, өйткені сол санды басқа жерде қолдану — болжам.

Егер сол профиль басқа сенімді желіден жұмыс істесе, клиентті түзетілді деп жариялаудың орнына бұл айырмашылықты диагностикада қалдырыңыз. Өзгерген айнымалы — жол, және сынақ өлшеген де жол.

Қатысты мақалалар