Бүх ICMP-г хаах нь ажиллаж буй VPN замыг яагаад эвддэг вэ
Хэмжээний талаарх эргэх холбооны мэдээ нь ping-ийн хариулт биш. Тэд хэзээ ч ирэхгүй бол жижиг пакетууд өнгөрч, том нь алга болж, туннель чичирч байгаа мэт харагдана.
Баталгаажуулалт дамжиж, 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 төрөл 2 | Packet 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 дүрэм зайлшгүй байсан, гэхдээ хангалттай биш.