UDP үргэлж хурдан биш: OpenVPN-ийн дамжуулалтыг сонгох
UDP бол OpenVPN-д тохиромжтой өгөгдмөл сонголт, шийтгэл биш. Нэг зам, нэг ажил дээр дамжуулалтуудыг харьцуулж, аль сонсогч үнэхээр ажиллаж байгааг шалгаарай.
Гарын авлага бүр OpenVPN-д UDP нь TCP-ээс илүү гэж хэлдэг бөгөөд энэ зөвлөгөө нь хэмжилт биш, өгөгдмөл сонголт юм. Дамжуулалт нь багцууд хэрхэн хүргэгдэх, зам тэднийг хаях үед юу болохыг өөрчилдөг, туннель хэрхэн шифрлэгдэхийг биш. Captive portal эсвэл зөвхөн 443 портыг зөвшөөрдөг проксины ард удаан хувилбар нь огт холбогддог цорын ганц хувилбар юм. Дараах нь протокол юу хийдэг, таны хандалтын сүлжээ юуг зөвшөөрдөгийг ялгана.
Дамжуулалт үнэндээ юуг өөрчилдөг вэ
TCP найдвартай, дараалсан байтын урсгалыг өгч, алдагдсан бүгдийг дахин илгээдэг, RFC 9293-д заасны дагуу. UDP датаграммуудыг сүлжээнд шилжүүлдэг, OpenVPN тэр сокет дээр өөрийн найдвартай байдлын давхаргыг ажиллуулдаг. TCP-г TCP дотор инкапсулбал хоёр сэргээх давталт давхарлана, тиймээс нэг алдагдсан сегмент дотоод урсгалыг баримтлаж болно, гадаад дахин илгээлт ирэх хүртэл. Энэ харилцан үйлчлэл нь UDP-ийн жинхэнэ үндэслэл бөгөөд энэ нь дамжуулах чадвар биш, саатал хэлбэрээр илэрдэг.
Нөлөө нь алдагдал, очих-буцах хугацаатай хамт өсдөг. Цэвэр орон нутгийн замд хоёр дамжуулалт ижил мэт мэдрэгддэг тул лабораторийн туршилт гомдлыг дахин гаргах нь ховор. Ачаалал ихтэй гар утасны холбоос дээр ялгаа нь том дамжуулалт юуг ч анзаарахаас хамаагүй өмнө интерактив сессүүдэд илэрдэг.
Эдгээрийн аль нь ч нууцлал, бүрэн бүтэн байдалд хамаарахгүй. TLS гар барих, өгөгдлийн сувгийн шифр хоёр дамжуулалтад ижил тул солих нь сул шифрийн багцыг аварч чадахгүй.
TCP хаана өөрийн байр сууриа олдог вэ
Хандалтын сүлжээ нь TCP сонгох ердийн шалтгаан. Зочид буудал, нисэх онгоцны буудал эсвэл зочны сүлжээ нь гадагш 443-ыг зөвшөөрч, бусад бүгдийг хаяж болох бөгөөд тэр порт дээрх TCP сонсогч л ажилладаг цорын ганц профайл юм. Энэ нь хүртээмж, гүйцэтгэл биш бөгөөд өөрөө хангалттай сайн шалтгаан.
Зам тогтвортой боловч завсрын төхөөрөмжүүд дайсагнасан үед ч TCP тусалдаг. Зарим сүлжээ энгийн вэб трафиктай төстэй TCP сессийг тэсвэрлэхдээ урт хугацааны UDP урсгалыг дахин тохируулдаг. Энэ ижилсэл амжилттай болох эсэх нь тухайн сүлжээний шинж чанар бөгөөд ямар ч гарын авлага бүгдэд амлаж чадахгүй. Протоколыг буруутгахаасаа өмнө бүтэлгүйтдэг сүлжээний дотор туршаарай.
Татгалзсан нэвтрэлт нь дамжуулалтын асуудал биш. Холболтыг хүчээр нэвтрүүлэхийн тулд гэрчилгээний шалгалтыг унтраах нь үр дүн нь хамаагүй муу өөр өөрчлөлт юм.
TCP профайлыг бэлэн байлгах нь практик буулт. Ихэнх клиентүүд хоёуланг нь хадгалж, сүлжээ UDP замыг татгалзах үед солих боломж олгодог бөгөөд энэ нь хэрэгтэй болох хүртэл юу ч зарцуулдаггүй. Хийх ёсгүй зүйл бол өөр өөр төгсгөлийн цэгүүд рүү заасан хоёр профайлыг хүргэх явдал, учир нь тэгвэл таны харьцуулалт серверүүдийг хэмжинэ.
Үнэндээ аль сонсогч байгааг шалгаарай
Гүйцэтгэлийг харьцуулахаас өмнө хоёр тал дамжуулалт, портын талаар санал нийлж байгааг баталгаажуулна уу. Клиент файл дахь proto udp-г proto tcp-ээр солих нь серверийн сонсогч үүсгэхгүй. Сервер тэр протоколд тохируулагдсан байх ёстой, профайл нь түүнтэй тохирох ёстой.
grep -E '^(proto|port|remote)' /etc/openvpn/server.conf
ss -lunp | grep openvpn
ss -ltnp | grep openvpn
grep нь серверт юу ашиглахыг хэлснийг хэвлэдэг бол хоёр сокетын жагсаалт нь юунд холбогдсоныг харуулна. UDP сонсогч зөвхөн эхний жагсаалтад, TCP сонсогч зөвхөн хоёрдугаарт харагдана, тиймээс дутуу мөр нь хэзээ ч хэрэглэгдээгүй профайлыг олох хамгийн хурдан арга юм. Портыг ч харьцуулаарай, учир нь 1194 дэх TCP профайл ихэнх хандалтын сүлжээнд 443-аас өөрөөр ажилладаг. Өөрчлөлтийн дараа үйлчилгээг дахин эхлүүлж, холболтын тухай мэдээлдэг лог мөрийг уншина уу.
Клиент талын баталгаажуулалт хямд: холболтыг --verb 4-той ажиллуулж, лог дахь дамжуулалтын мөрийг уншина уу. Клиент UDP гэж хэлж, сервер TCP дээр сонсож байвал гар барих хэзээ ч эхлэхгүй бөгөөд ямар ч тохируулга тус болохгүй.
Дамжуулалтын шошгыг биш, ажлын ачааллыг харьцуулаарай
Шударга харьцуулалт нь дамжуулалтаас бусад бүгдийг тогтмол барина. Ижил төхөөрөмж, ижил хандалтын сүлжээ, ижил очих хост, ижил програм, боломжтой бол ижил сервер. Хоёр профайл өөр хост руу зааж байвал тэдгээр хостүүдийг ч хэмжиж байна.
Гүйлт бүрд гурван үр дүнг бүртгээрэй: туннель үүсэх эсэх, тогтох эсэх, ажил дуусах эсэх. Том дамжуулалт гацах үед жижиг хүсэлт ажиллаж байвал энэ нь дамжуулалт биш, багцын хэмжээ, MTU-г заана. Давтан дахин холбогдолт нь зам эсвэл завсрын төхөөрөмжийн хугацаа хэтрэлтийг заана.
Үнэхээр тулгардаг нөхцөлд ажилладаг профайлыг үлдээж, нөгөөг нь хадгал. Сонголт нь хүнд биш, сүлжээнд хамаарна, тиймээс ганц өгөгдмөл хариулт хаа нэгтээ буруу.