OpenVPN клиент нэг хаяг руу залгадаг, сервер өөр хаягаас хариулдаг, туннель хэзээ ч босдоггүй. Серверийн лог пакет ирж буйг, бичлэг хариу гарч буйг харуулдаг тул алдааг клиентэд хамааруулдаг. Хэд хэдэн интерфейс бүхий эсвэл нэг интерфейс дээр хэд хэдэн хаяг бүхий хост дээр хоёр тал аль хаяг хэрэглэгдэж байгаа талаар ердөө л санал нийлдэггүй. Хариу нь IP түвшинд хүчинтэй боловч олон клиент холбогдсон хаяг нь биш эх сурвалжтай датаграмыг хаядаг.

Эх сурвалж өөрчлөгдөхөд клиент юу хардаг вэ

Тодорхой локал хаягт холбогдоогүй UDP сокет тогтмол эх сурвалжгүй тул цөм илгээх үед нэгийг сонгодог. Энэ сонголт клиентийн хаяг руу чиглэсэн маршрутын хайлтаас гарч, эх сурвалж нь хайлтын сонгосон интерфейсийн хаяг болдог. Нэг интерфейс бүхий машин дээр сонголт үл үзэгдэх боловч удирдлагын хаяг, нийтийн хаяг, ижил сүлжээний карт дээрх хоёрдогч хаяг бүхий хост дээр маршрутын хэмжүүр, бодлогоос хамаарна. Бодлогод суурилсан маршрутлалт зөрүүг багасгахын оронд нэмэгдүүлдэг, учир нь дүрэм клиентийн хэзээ ч хүрээгүй дээд холболтыг сонгож болно. Нэг үйлчилгээ үзүүлэгчээс сурсан анхдагч маршрут болон нөгөө рүү заасан эх сурвалжийн дүрэм хангалттай.

Хариуг шүүдэг клиентүүд болон яг дөрвөлжин ба эх сурвалжийг хүлээдэг холболтын хяналт ашигтай мессежгүйгээр хариуг хаяна. Дараа нь туннель юу ч ирээгүй мэт хугацаа дуусаж, иймээс үүнийг клиентийн талын галт хананы асуудал гэж буруу ойлгодог. Зөвхөн сервер дээр авсан бичлэг алдааг тайлбарлахын оронд баталгаажуулдаг, учир нь хариу үнэхээр гардаг. Өөр юу ч өөрчлөхөөс өмнө хариуны эх сурвалжийг клиентийн залгасан хаягтай харьцуулна уу.

multihome сонголт үнэндээ юу хийдэг вэ

Зааврыг тохиргооны файлд multihome, командын мөрөнд --multihome гэж бичдэг бөгөөд энэ нь UDP серверийг клиентийн пакет хүрсэн хаягаас хариулахыг албаддаг. Цөм хүлээн авахдаа анхны очих хаягийг нэмэлт өгөгдөл болгон өгдөг бөгөөд OpenVPN тэр утгыг хариуны эх сурвалж болгон ашигладаг. Ингэснээр ерөнхий хаяг дээр сонсдог сервер, IPv4-ийн хувьд local 0.0.0.0 эсвэл түүний IPv6 дүйцэл, клиент бүр тусдаа сонсогч хүрсэн мэт аашладаг. Нийтийн хаягаар орсон клиентүүд нийтийн хаягаас хариу авдаг, дотоод хаяг дээрх клиентүүд тэр хаягаас авдаг. Пакетын замд өөр юу ч хөдлөхгүй: маршрут, шүүлтийн дүрэм, туннелийн тохиргоо яг байсан хэвээрээ үлддэг.

Яг энэ сүүлийн шинж чанар нь сонголтыг өөрөөр ажиллаж буй серверт нэмэхэд аюулгүй болгодог бөгөөд зөвхөн нэг хаяг зөвшөөрдөг шүүлтийг засах боломжгүй байх шалтгаан нь мөн. Пакет явах замаараа хүлээн авагдах ёстой тул эх сурвалжийн засвар нь хариуны гарал үүслийг өөрчлөх бөгөөд өөр юу ч биш. Энэ нь зөвхөн UDP-д зориулагдсан: TCP сонсогч энэ асуудлыг ижил хэлбэрээр үздэггүй, учир нь холболтыг хариуны эх сурвалж хаягаар биш, дөрвөлжөөр тодорхойлдог.

Тогтмол локал хаяг хэзээ буруу анхдагч вэ

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

OpenVPN-ийн лавлах сонголтыг UDP серверт хязгаарлаж, пакетын замд нэмэлт боловсруулалт хийхийг тэмдэглэж, аль платформууд дэмждэг болохыг бүртгэдэг. Үүний үндсэн дээр төлөвлөхөөс өмнө суулгасан хувилбар дээр баталгаажуулна уу. Дэмжигдээгүй газарт тодорхой хаягийг холбох эсвэл буцах маршрутыг засах нь хувилбар бөгөөд хоёулаа анх харсан шиг нарийн өөрчлөлт юм. Ерөнхий хаяг дээр сонсох нь хариунаас гадна үр дагавартай: бүх хаяг дээрх сервер хост холбогдсон сүлжээ бүрээс хүртээмжтэй бөгөөд энэ нь хэн нэгний санаархсан илрэл биш байж болно.

Хариуны эх сурвалжийг гаднаас батлаарай

Серверийн гаднаас туршиж, юу ч бичихээс өмнө клиентийн хэрэглэсэн яг хаяг, тээврийг тэмдэглээрэй. Доорх гурван шалгалт гурван өөр асуултад хариулдаг бөгөөд дараалал чухал.

tcpdump -ni any udp port 1194
ss -lunp 'sport = :1194'
ip route get 203.0.113.10 from 198.51.100.20

Бичлэг хариун дээрх эх сурвалж хаягийг харуулдаг бөгөөд бүх өгүүлэл энэ баримт дээр тогтдог. Сокетын жагсаалт серверийн үнэндээ юу холбосныг харуулдаг, учир нь ерөнхий болон тодорхой сонсогч тохиргооны файлд ижил харагдаж, сүлжээнд өөрөөр аашилдаг. Маршрутын хайлт тухайн урсгалд цөмийн сонгох эх сурвалжийг харуулдаг бөгөөд энэ нь юу ч өөрчлөхөөс өмнө бичлэгийг тайлбарладаг. Гурвыг IPv4 болон IPv6-д тусад нь давтана уу, учир нь тэдгээр нь тусдаа сонсогч, тусдаа хайлт бөгөөд нэг гэр бүлийн ерөнхий бичлэг нөгөөгийн талаар юу ч хэлдэггүй.

Маршрутлалт, илрүүлэлт, шүүлт тусдаа хэвээр үлддэг

Хариуны эх сурвалжийг хадгалах нь гарч буй маршрут суулгахгүй, динамик DNS шинэчлэхгүй, нэг хаягийн гэр бүлийг нөгөөг хүлээн авахад хүргэхгүй. Хэд хэдэн дээд холболт бүхий сервер дээр эх сурвалж бүрийн буцах замыг зориуд тохиролцох ёстой, эс бөгөөс хариунууд клиентийн шүүлт зөвшөөрөөгүй интерфейсээр гардаг. Үүнтэй адил, угтвар өөрчлөгдсөний дараах шинэ хаяг клиентүүдэд хүрэх ёстой илрүүлэлт болон дэмжигдсэн дахин холболтын урсгалаар, хуучин бүртгэлээр биш.

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

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