Серверийн туннелийн хаяг руу ping амжилттай болж, клиентийн өөрийн маршрутын хүснэгт зөв харагдаж байгаа ч тухайн клиентийн ард байгаа LAN-д хүрэхгүй хэвээр байна. Клиентийн маршрутжуулалтын хүснэгт зөв харагдаж, серверт туннель рүү чиглэсэн маршрут байгаа ч пакетууд алга болсоор байна. Энэ бол өөрийн клиентүүдийн нэг нь гарц мөн гэдгийг мэдэхгүй layer-3 туннелийн сонгодог шинж тэмдэг юм.

tun интерфэйс клиент бүрт дараагийн үсрэлтгүй. Цөм олон түнштэй нэг интерфэйсийг хардаг тул алсын LAN-д зориулсан пакетыг аль клиент авах вэ гэдэг шийдвэрийг OpenVPN процессын дотор гаргах ёстой. Энэ шийдвэрийг iroute-оор тохируулдаг бөгөөд түүнгүйгээр пакет явах газаргүй.

Сервер интерфэйсээр биш, клиентээр маршрутжуулдаг

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

OpenVPN үүнийг очих газрын угтварыг тодорхой клиентэд холбодог дотоод маршрутжуулалтын хүснэгтээр шийддэг. Тэр хүснэгт iroute бичлэгүүдээс бүрддэг тул серверийн хост дээрх энгийн маршрут хангалтгүй. Цөмийн маршрут пакетыг туннелийн интерфэйс хүртэл хүргэдэг; дотоод холболт нь аль сесс хүлээн авахыг шийддэг. Тиймээс засвар нь цөмийн маршрутын гаралтад хэзээ ч харагддаггүй.

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

Клиентийг нэрлэсэн iroute бичлэгийг бичих

iroute нь серверийн үндсэн тохиргоонд биш, клиентэд тусгай тохиргооны файлд байрладаг. Серверийг client-config-dir сонголтоор директор руу чиглүүлээд, дараа нь нэр нь клиентийн гэрчилгээний нийтлэг нэр болох файл үүсгэж, угтварыг дотор нь хий.

LAN нь 10.20.0.0/24, гэрчилгээний нийтлэг нэр нь branch-router болох салбарын хувьд тэр замын файлд iroute 10.20.0.0 255.255.255.0 гэх мэт мөр байна. Үндсэн тохиргоонд зөвхөн директорын сонголт хэрэгтэй; угтвар нь клиент дээр байрлана.

Нийтлэг нэр бол эмзэг хэсэг. Өөр subject-оор олгосон гэрчилгээ, эсвэл хэрэглэгчдийг хэрэглэгчийн нэрээр баталгаажуулдаг атлаа файл нь гэрчилгээгээр нэрлэгдсэн байршуулалт нь хэзээ ч уншигддаггүй файл үүсгэдэг. Сервер сессэд бодитоор ямар нэр мэдээлдэгийг шалгаж, тохирохгүй клиентийг маршрутгүйгээр чимээгүй холбогдохын оронд бүтэлгүйтэх боломж олгодог сонголтыг бодолцоорой. Файлыг гэрчилгээтэй тохируулан нэр солих нь маш урт оройг сэргийлдэг таван минутын засвар.

Нэг клиент хэд хэдэн угтвар эзэмшиж болно. Сүлжээ бүрт нэг iroute мөр нэмж, холболт шалгагдахуйц хэвээр байхын тулд жагсаалтыг тухайн клиентийн бусад тохиргооны дэргэд хадгал.

Буцах замыг хоёр чиглэлд барих

Пакетыг алсын LAN хүртэл хүргэх нь ажлын хагас. Клиент мөн тухайн LAN-ын урсгалыг туннель рүү илгээх ёстой бөгөөд үүнийг ихэвчлэн клиент рүү маршрут түлхэх замаар хийдэг: push "route 10.8.0.0 255.255.255.0" гэх мэт мөр нь клиент бүрт серверийн талын сүлжээнд хэрхэн хүрэхийг хэлдэг. Салбарын хувьд ижил утгатай маршрут нь серверийн талд хүрэх ёстой бүх зүйл рүү туннелийг заана.

Буцах чиглэлд алс талд эзэмшигч хэрэгтэй. Тэр талд хэн нэгэн буцах замыг мэдэх ёстой: VPN-ийн пулыг сервер рүү чиглүүлдэг LAN маршрутжуулагч дээрх статик маршрут, эсвэл урсгал LAN-д орохоос өмнө сервер дээрх хаягийн хөрвүүлэлт. Статик маршрут нь анхны хаягуудыг бүртгэл, хандалтын дүрэмд харагдуулахаар үлдээдэг ч LAN-ын эзэмшигчийн хамтын ажиллагаа шаарддаг; хөрвүүлэлт нь бие даасан ч хэн бодитоор холбогдсоныг нуудаг.

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

Хүрэх боломжийг зөв мэдрүүрээр шалгах

Алсын үзүүрт ping хийж таамаглахын оронд давхаргаар турш. Серверээс угтварын дотоод холболт байгаа эсэх, цөмийн маршрут туннель рүү чиглэсэн эсэхийг шалга. Клиентээс түлхэгдсэн маршрут суулгагдсан эсэх, LAN хаяг руу чиглэсэн анхдагч зам нь туннель эсэхийг батал.

Дараа нь пакетуудыг ажигла. Туннелийн интерфэйс дээрх барилт сервер клиент рүү дамжуулж байгаа эсэхийг, LAN интерфэйс дээрх барилт нь дамжуулж байгаа эсэхийг харуулна. Эхнийх нь пакет харуулж, хоёр дахь нь юу ч харуулахгүй бол асуудал дамжуулалт эсвэл шүүлтүүрт байна; аль нь ч юу ч харуулахгүй бол хайлт өмнө нь бүтэлгүйтсэн.

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

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