Аутентификациядан өтіп, ping тасымалдап, содан кейін алғашқы үлкен тасымалдауда тұрып қалатын туннель — бұл сынған VPN емес, жоғалған ICMP хабарламасының классикалық белгісі. Жіберуші пакеттің тым үлкен болғанын ешқашан білмейді, сол өлшемді қайталайды, ал қолданба күтеді. Мұны түзету — брандмауэр саясатының шешімі, клиентті қайта орнату емес. Реті маңызды: өлшем шекарасы қайда екенін өлшеп алыңыз, содан кейін есепті жұтып қойған ережені тарылтыңыз.

ICMP бұл жолда шын мәнінде не тасымалдайды

IPv4 жолының MTU анықтауы don't-fragment биті қойылған пакетті жіберу мүмкін болмағанын маршрутизатор хабарлауына сүйенеді. Бұл хабарлама — ICMP Fragmentation Needed, ал онсыз жіберушінің сегмент өлшемін азайтуға себебі жоқ. IPv6 қатаңырақ: маршрутизаторлар транзитте бөлшектемейді, сондықтан ICMPv6 Packet Too Big хабарламасы жіберушіні кішірейтетін жалғыз сигнал.

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

Кейбір транспорттар өз анықтауын зондтық пакеттермен жүзеге асырады, RFC 4821 сипаттағандай, және олар бұл кері байланысқа азырақ тәуелді. Бұл қай транспортты іске қосып жатқаныңызды тексеруге дәлел, әр туннельді иммунды деп есептеуге емес.

ХабарламаЖолдағы мақсатыБлокталса
ICMPv4 түрі 3 коды 4Пакет келесі буын үшін тым үлкен болдыЖіберуші қайталай береді және тұрып қалады
ICMPv6 түрі 2Packet Too Big, IPv6 баламасыСол тұрып қалу, бөлшектеу қосалқы нұсқасынсыз
ICMP түрі 11Уақыт асты, traceroute қолданадыДиагностика секірістерді жоғалтады, трафик аға береді
ICMP жаңғырық сұранысы мен жауабыҚолжетімділік сынағыping сәтсіз аяқталады, жол дұрыс болуы мүмкін

Ақау өлшемге тәуелді

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

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

Ережелерді өңдеуден бұрын өлшеңіз

don't-fragment битімен және өзіңіз таңдаған пайдалы жүктеме өлшемімен зондтаңыз, ақаулы клиенттен қорғалған мекенжайға қарай:

ping -M do -s 1472 10.20.5.7
ping -M do -s 1300 10.20.5.7

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

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

Ережені тарылтыңыз, содан кейін тапсырманы қайта тексеріңіз

Түзету нақты басқару хабарламаларына рұқсат беруі керек, бүкіл протоколға емес. iptables хостында пішін — түрге тән рұқсат; синтаксисті платформаңызда брандмауэрді басқаратын нәрсеге бейімдеңіз:

iptables -I INPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT
ip6tables -I INPUT -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT

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

Егер хабарламаларға рұқсат берілгеннен кейін де үлкен тасымалдау тұрып қалса, қалған шектеу басқа жерде: тым биік қойылған туннель MTU-ы, пакеттерді қайта жазатын прокси немесе хабарлаудың орнына тастайтын аралық құрылғы. ICMP ережесі қажет еді, бірақ жеткіліксіз.

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