OpenVPN mssfix: том дамжуулалтад нэг клиент яагаад гацдаг вэ
mssfix туннелийн дотор зарлагдсан TCP сегментийн хэмжээг дахин бичдэг. Энэ нь UDP-ийн хэмжээг өөрчлөхгүй бөгөөд утга нь таны хувилбар хэлсэн санааг л илэрхийлнэ.
Нэг зөөврийн компьютер туннелээр байршуулах үед гацдаг бол нэг сервер дээрх бусад бүх төхөөрөмж үргэлжлүүлэн ажилладаг. Энэ хэв маяг нь серверийн тохиргоог бус, нэг замыг зааж байгаа бөгөөд энэ нь mssfix асуултын ердийн орц юм. Энэ сонголт тус болж болох ч зөвхөн түүнийг үнэхээр дахин бичдэг TCP холболтуудад л. Түүний хүрээг мэдэх нь нэг клиентийг авархын тулд ажиллаж буй серверийг өөрчлөхөөс таныг хамгаална.
Сонголт юуг дахин бичдэг вэ
mssfix нь туннелээр дамждаг TCP гар барилтад зарлагдсан сегментийн дээд хэмжээг засварлаж, илгээгч тал капсуллагдсан төсөвт багтах сегментүүдийг сонгоно. Энэ нь гар барилтад үйлчилдэг бөгөөд өөрчлөлтөөс өмнө нээгдсэн холболт тохиролцсон утгыг хадгална гэсэн үг.
Энэ нь UDP датаграммуудыг багасгахгүй бөгөөд туннелийн MTU-г тогтоохгүй. Хоёр өөр асуудал ижил шинж тэмдэг өгдөг: замын хязгаарыг үл тоомсорлодог TCP илгээгч, болон ямар ч хэмжээтэй том пакетуудыг чимээгүй хаядаг зам. mssfix эхнийхийг шийддэг бөгөөд хоёр дахьд нь юу ч хийдэггүй.
Энэ ялгаа нь урам хугарсан туршилтуудыг тайлбарладаг. Хар нүхтэй зам дээр бага утга тогтоох нь сегментийн хэмжээг өөрчилдөг ч дараагийн хаялтыг өөрчлөхгүй тул дамжуулалт өөр цэг дээр бүтэлгүйтдэг.
Хүрээ нь туннелийн доторх TCP
Зөвхөн TCP урсгалыг дахин бичдэг. QUIC сесс, тоглоом эсвэл том UDP датаграмм илгээдэг програм өөрийн пакетын хэмжээг хадгалж, хэрэв тэдгээр дамжуулалт гацвал засвар нь туннель эсвэл замын MTU-д хамаарна. TCP сонголт руу орохын өмнө бүтэлгүйтсэн дамжуулалт ямар протокол ашигладагыг уншина уу, учир нь буруу давхарга өөрийн засвартай.
Чиглэл ч бас чухал. Клиентийн тохиргоо тухайн клиентийн туннель рүү илгээх урсгалд нөлөөлдөг бол сервер нь клиентүүд рүү дамжуулдаг урсгалуудыг хамардаг. Зөвхөн ирж буй татан авалт гацвал клиентийн талын утга бүх түүх биш.
Тоо болон түлхүүр үг зөөвөрлөгдөхгүй
OpenVPN 2.6-ын нийгэмлэгийн хувилбар утгын дараа сонголтоор түлхүүр үг хүлээн авдаг. mtu-тэй бол тоо нь IP болон UDP толгойг оролцуулан гадаад пакетын хэмжээг тодорхойлно; үүнгүйгээр аргумент өөр тооцооны конвенцийг дагана. Тиймээс хувилбаруудын хооронд хуулагдсан мөр ижил пакетын төсвийг тодорхойлохгүй. Өөр хувилбарын сургалтын оронд таны үнэхээр ажиллуулж буй бүтээцтэй хамт ирдэг гарын авлагын хуудсыг үзээрэй.
Синтакс нь иймэрхүү харагдана:
mssfix 1400 mtu
1400-г замд тань өгөх зөвлөмж бус, орлуулагч гэж үзээрэй. Утгыг хэмжсэн зам болон бодитоор ашиглаж буй капсулаас гаргаж, хуучин хувилбар эсвэл бусад хэрэгжүүлэлтийн клиентүүд түлхүүр үгийг татгалзах эсвэл өөрөөр тайлбарлаж болзошгүйг санаарай.
Эхлээд нэг клиент дээр баталгаажуулна уу
Ямар нэг зүйлийг өөрчлөхөөс өмнө бүтэлгүйтсэн машинаас замыг хэмжинэ. Зам фрагментгүйгээр зөөж чадах ачаалал бол таны хайж буй тоо:
ping -M do -s 1472 10.8.0.1
ping -M do -s 1400 10.8.0.1
Эхний туршилт 28 байт толгой нэмэгдсэнээр 1500 байтын пакетад багтана. Хэрэв энэ нь фрагментийн алдаатай бүтэлгүйтэж, бага нь амжилттай болвол ашиглагдах хэмжээ нь тэдний хооронд хаа нэгтээ байх бөгөөд туннелийн илүүдэл зардлыг дээрээс нь хасна.
Дараа нь гацсан дамжуулалтыг шинэ холболт дээр давтаж харьцуулна уу. Ганц клиент сайжирч, бусад нь хөндөгдөөгүй хэвээр байвал та асуудлын хүрээг оллоо. Бүх клиент гацвал серверийн талын утгыг хянах ёстой. Хоёр үр дүнгийн аль нь ч хэзээ ч бүтэлгүйтсэн зам дээр байгаагүй тоног төхөөрөмж дээр өөрчлөлт хийхийг зөвтгөхгүй.