Баталгаажуулалт дамжиж, 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 дүрэм зайлшгүй байсан, гэхдээ хангалттай биш.

Холбоотой нийтлэлүүд