VPN яагаад том дамжуулалтад гацдаг, жижигт нь гацдаггүй вэ
Жижиг хүсэлтүүд хариу авдаг бол том дамжуулалтууд хөлддөг. Тогтмол MTU хуулахаас өмнө интерфэйсийн хязгаар, замын хязгаар, зарласан TCP ачааллыг харьцуулна уу.
Хуудас ачаалагдаж, 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 туршилт илгээдэг бол хоёр дахь нь ачааллыг -l-ээр тогтоодог Windows дээр мөн адил хийдэг. Хариу гэдэг нь тэр хэмжээ замд тэсвэрлэсэн гэсэн үг. Фрагментаци хэрэгтэй гэсэн мессеж мэдээлэлтэй, харин хугацаа дуусах нь хоёрдмол утгатай, учир нь хост эсвэл завсрын төхөөрөмж 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 эсэхээс хамаарна. Ашиглаж буй хувилбарын гарын авлагыг уншиж, нэг удаад нэг сонголтыг өөрчил.
Нэг дэмжигдсэн тохиргоог өөрчилж, хоёр гүйлтийг давт
Анхны профайлыг хадгалж, нэг дэмжигдсэн утгыг өөрчилж, ажилласан жижиг хүсэлт болон бүтэлгүйтсэн том дамжуулалтыг хоёуланг нь давт. Зөвхөн том нь өөрчлөгдвөл та хэмжээний араас явж байсан. Хоёулаа өөрчлөгдвөл түүнтэй хамт өөр зүйл хөдөлсөн.
Бага утга нь шинж тэмдгийг бууруулж болох ч нэмэлт зардал нэмдэг тул боломжит хамгийн бага тоо нь зорилго биш. Зорилго нь зам хамгийн бага үрэлгэн дээр найдвартай зөөдөг хэмжээ юм. Утга, зам, клиентийн хувилбарыг тасалбарт бич, учир нь ижил тоог өөр газар хэрэглэх нь таамаг.
Хэрэв ижил профайл өөр итгэмжлэгдсэн сүлжээнээс ажиллаж байвал клиентийг зассан гэж зарлахын оронд тэр ялгааг оношлогоонд үлдээ. Өөрчлөгдсөн хувьсагч нь зам бөгөөд туршилтын хэмжсэн зүйл нь зам.