Клиент баталгаажуулалт хийж, лог нь холбогдсон гэж хэлж байгаа ч нэг ч пакет туннелээр дамжихгүй байна. Сервер оролдлогыг write to TUN/TAP: Invalid argument (code=22)-ээр дуусгадаг бөгөөд энэ нь драйверын гэмтэл мэт харагдах боловч ихэвчлэн тийм биш. Маршрутлагч болон жижиг Linux серверт энэ мөр нь ихэвчлэн хоёр тал өгөгдлийн пакетыг хэрхэн фреймчлэх талаар санал нийлэхгүй байгааг илэрхийлдэг тул цөм түүнд өгсөн тайлагдсан буферыг татгалздаг. Тэр үед маршрутлалт хараахан шалгагдаагүй байна.

Зөв маршрутлалтын хүснэгт ба эвдэрсэн фреймчлэлийн тохиролцоо клиентийн талаас ижил харагдана: холбогдсон, юу ч ажиллахгүй.

Туннель босч ирнэ, юу ч түүгээр дамжихгүй

Туннель төхөөрөмж дээрх бичих алдаа нь тайлагдсаны дараа, маршрутлалтаас өмнө гардаг. Демон пакетыг тайлж интерфэйст өгөхөд буфер нь тухайн төхөөрөмжийн хүлээж буйтай таарахгүй тул интерфэйс татгалздаг. 22 код нь хүчингүй аргументын ерөнхий хариулт тул хэрэгтэй мэдээлэл нь давхарга: энэ нь өгөгдлийн зам бөгөөд гар барилт биш. Хэрэв урсгал өчигдөр ажиллаж, өнөөдөр тохиргооны өөрчлөлтгүйгээр зогссон бол сүлжээг сэжиглэхийн өмнө өгөгдмөл утгыг зөөсөн пакет эсвэл програм хангамжийн шинэчлэлтийг сэжиглэ.

Эхний алдааны оронд өгөгдлийн сувгийн тохиргооны эргэн тойрон дахь логийг уншина уу. Зөвшилцсөн шахалтын горим, dev төрөл, түлхсэн сонголтууд бүгд илүү өндөр дэлгэрэнгүй байдалд гарч ирдэг бөгөөд тэд гурван зөрүүгийн алийг нь байгааг хэлдэг.

Шахалт нь фреймчлэл, зурвасын өргөн биш

Шахалт идэвхжсэн үед өгөгдлийн пакет бүр хэрхэн кодлогдсоныг тодорхойлсон толгойг агуулдаг бөгөөд хоёр төгсгөл тэр толгой дээр санал нийлэх ёстой. Хуучин жишээ тохиргооноос одоо ч comp-lzo агуулж буй сервер, шахалтын мөргүй клиенттэй хослуулбал яг энэ алдааг үүсгэдэг: сервер клиентийн хэзээ ч бичээгүй толгойг хүлээж байна. comp-lzo-ийг compress lz4-v2-тэй холих нь мөн адил бүтэлгүйтдэг, учир нь хоёуланг нь шахалт гэдэг ч алгоритмууд өөр. Энэ сонголт нь орчин үеийн холбоос дээр зурвасын өргөний функц биш, харин фреймчлэлийн гэрээ юм.

Хувилбаруудын зан байдал урхи нэмдэг. 2.5 цуврал шахалтын сонголтуудад хуучирсан анхааруулга гаргаж эхэлсэн бол 2.6 нь шахагдсан пакетуудыг татгалзах ба өгөгдлийг зүгээр л шахаагүй үлдээх хоёрын хооронд шугам татдаг. Тиймээс маршрутлагчийн програм хангамжийн шинэчлэлт хэн ч туннелийг засварлахгүйгээр бодит тохиролцоог өөрчилж болно.

Хоёр төгсгөлийг тэгшлэх эсвэл хоёулааас нь хасах

Шахалтын заавар бүрийг жагсаа: серверийн файл, түлхсэн аливаа сонголт, клиентэд хамаарах файлууд болон клиентийн профайл. Сервер дээрх comp-lzo клиент дээр ижил үгийг шаарддаг бөгөөд adaptive нь хуучин бүтээцүүдэд нүцгэн сонголт ихэвчлэн илэрхийлдэг өвлөгдсөн өгөгдмөл утга юм. LZO эсвэл шахалт гэсэн шошготой маршрутлагчийн GUI унтраалга мөн адил сонголтыг бичдэг тул алгоритмыг холихын оронд тохируулан тааруул. Ижил төстэй нэр нийцтэй гэж бүү бод.

Хэрэв шахалт хүсээгүй бол хоёр төгсгөлөөс нь санаатайгаар хас. Сервер дээрх allow-compression no шахагдсан пакетуудыг татгалздаг боловч клиентүүд тэдгээрийг санал болгохыг зогсоосны дараа л; клиент шахалтыг түлхсээр байхад хэрэглэх нь зөрүүг эсрэг чиглэлд дахин үүсгэдэг.

Түлхэлт ба төхөөрөмжийн төрлийг шалга

Сервер шахалтын зааврыг үндсэн файл эсвэл клиентэд хамаарах файлаас түлхэж болох бөгөөд клиент pull-filter-аар түлхсэн сонголтуудыг хаяж болно. Нэг клиентийг 4 дэлгэрэнгүй байдалд холбож, серверийн зарласан ба клиентийн хүлээн авсан зүйлийг харьцуулан уншиж, дараа нь ямар ч шүүлтүүр үүнийг хасаагүйг баталгаажуул. Хоёр тал одоо санал нийлж байгаа ч алдаа үлдвэл, төхөөрөмжийн төрлийг хараарай: нэг төгсгөлд dev tap, нөгөө талд dev tun фрейм солилцож чадахгүй бөгөөд цөм мөн адил бичихийг татгалздаг.

Гүүртэй TAP байршуулалт нь сервер дээр жинхэнэ гүүр шаарддаг, зөвхөн өөр төхөөрөмжийн нэр биш. Интерфэйсийг гүүрэнд нэмэхгүйгээр tap0 гэж нэрлэвэл бичихийг хүлээн авдаг ч хаашаа ч явдаггүй төхөөрөмж үүснэ.

Дараа нь нэг клиент ба нэг очих газартайгаар шалга: серверийн туннелийн хаяг руу ping хий, дараа нь түүний LAN дахь хост руу. Эхнийх нь өгөгдлийн сувгийг, хоёр дахь нь дамжуулалтыг батална.

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