WireGuard гацах: MTU-гийн хязгаар уу, эсвэл дутуу дамжуулах дүрэм үү?
Серверийн цаана юу ч ажиллахгүй бол энэ нь дамжуулалт эсвэл буцах замын асуудал юм. Жижиг хүсэлтүүд өнгөрч, том нь гацах нь пакетийн хэмжээний шинж юм.
WireGuard буруу ажиллаж эхэлмэгц MTU-г бууруулах нь дадал бөгөөд тэр дадал өөр гэмтлийг нуудаг. Дамжуулдаггүй гарц, том пакет даадаггүй зам нь ялгагдах хэв маяг үүсгэдэг: нэг нь хоёр чиглэлд, бүх хэмжээнд бүтэлгүйтдэг, нөгөө нь жижиг хүсэлтэд тэсч, томд нь үхдэг. Ямар ч тоог өөрчлөхөөс өмнө ямар хэлбэр байгааг тодорхойл. Туршилт хямд бөгөөд боломжит шалтгааны талыг арилгадаг.
Хоёр гэмтэл, хоёр өөр хэлбэр
Дамжуулалтын асуудал серверийн дараа шууд илэрдэг. Гар барилт амжилттай болно, тунелийн хаяг хариулдаг, гарцын цаана жижиг хүсэлтээр ч хүрэх зүйл байхгүй. Пакет серверт хүрсэн боловч дамжуулагдаагүй, эсвэл хариултад буцах зам байгаагүй.
Хэмжээний асуудал зөвхөн босгоос дээш илэрдэг. DNS, TCP гар барилт, жижиг API дуудлага ажилладаг бол файл татах эсвэл том хариулт өлгөөтэй болно. Багтсан пакетууд эхнээс эцэс хүртэл явсан, багтаагүй нь хаа нэгтээ ашигтай тайлангүйгээр хаягдсан.
Эдгээр тайлбар нь өөр хүмүүс, өөр тохиргооны файлуудыг заадаг тул таамаглалаас илүү хэлбэрийг хэмжих нь үнэ цэнэтэй. Гарц руу нэг ping тэдгээрийг ялгаж чадахгүй.
Ямар нэг зүйлийг багасгахаас өмнө дамжуулалтыг үгүйсгэ
Гарцыг өөрөө биш, гарцын цаана байгаа очих цэгийг туршиж үз. Серверийн тунелийн хаяг руу ping нь интерфейс ажиллаж байгаа, тунелийг дуусгадаг машин руу хүрч байгааг л батална. Өргөн сүлжээний урсгал нь тухайн машин дээр IP дамжуулалт идэвхжсэн эсэх, дамжуулсан урсгалыг зөвшөөрдөг галт ханын хамааралтай. Хоёулаа үнэн байх ёстой бөгөөд аль нэг нь худал бол мөн ижил чимээгүй байдал үүсдэг.
Буцах маршрутлалт мөн адил чухал. Хэрэв очих сүлжээ клиентийн тунелийн хаяг руу хэрхэн хүрэхийг мэдэхгүй бол хүсэлт ирж, хариулт алга болдог, клиент хаягдсан дамжуулалттай адил харагдах хугацаа дуусах тухай мэдээлдэг.
Дизайн хаягийн хөрвүүлэлт ашигладаг газарт хөрвүүлэлтийн дүрэм нь тэр буцах замын нэг хэсэг юм. MTU-гийн асуудлыг мөшгөх үед түүнийг устгах нь ажиллаж байсан дизайныг эвдэрхий болгоно, тиймээс засахын өмнө одоо байгаа дүрмүүдийг уншаарай.
Таслал хаанаас эхлэхийг хэмж
Эхлээд дамжуулалтын төлөв, шүүлтүүрийн дүрмийг уншаарай. Эдгээр нь зөвхөн унших шалгалт бөгөөд хямд асуултад хариулна:
sysctl net.ipv4.ip_forward
sudo iptables -S FORWARD
ip route get 10.30.0.9
Дараа нь клиентээс гарцын цаана байгаа хост руу don’t-fragment битээр хэмжээг шалга:
ping -M do -s 1200 10.30.0.9
ping -M do -s 1400 10.30.0.9
Эхний шалгалт ажиллаж, хоёр дахь нь фрагментацийн алдаатай бүтэлгүйтвэл зам өөрийн ашиглаж болох хэмжээг хэлж байна. Аль нь ч ажиллахгүй бол та дамжуулалт эсвэл маршрутлалтыг харж байна, MTU нь өөрчлөх хувьсагч биш.
| Observation | Points toward | Where to look |
|---|---|---|
| Nothing beyond the gateway works | Forwarding or return route | Forwarding flag, filter rules, routing table |
| Small works, large stalls | Packet size on the path | Tunnel MTU and the link underneath |
| Only names fail | DNS resolution | The resolver configured for the tunnel |
| Works sometimes | Multiple paths or state expiry | Flow selection and NAT state |
Нотолсон давхаргаа зас
Дамжуулалт нь гэмтэл бол засвар нь дамжуулах дүрэм эсвэл маршрут бөгөөд дизайны зөвшөөрснөөр нарийн илэрхийлэгдэнэ. Хэмжээ нь гэмтэл бол засвар нь энэ тодорхой зам дахь инкапсуляцийг харгалзсан MTU бөгөөд түүнд хэрэгтэй интерфейст хэрэглэгдэх бөгөөд флотын бүх адаптерт биш.
Ямар ч байсан, дараа нь ижил даалгаврыг ижил очих цэг рүү давтана. Анхны том шилжүүлэг одоо дуусвал өөрчлөлт нь бүтэлгүйтэж байсан давхаргыг шийдсэн. Зөвхөн жижиг шалгалт сайжирсан бол та шинж тэмдгийг эмчилсэн бөгөөд жинхэнэ хязгаар хэвээр байна.
Өөрчлөлтийн өмнө ямар хэлбэр ажигласнаа бич. Засварын хажууд тэмдэглэсэн тэр нэг мөр нь дараагийн хүнийг хэзээ ч асуудал байгаагүй MTU-г бууруулахаас сэргийлдэг.