OpenVPN route-nopull серверээс юу push хийхийг үнэхээр хориглодог вэ
route-nopull push хийсэн маршрут болон DHCP сонголтыг хаядаг, handshake-г биш. Үүн, pull-filter эсвэл юу ч бишийн хооронд сонгоод, маршрутуудыг өөрөө нэмнэ үү.
Та туннель өөрийн үндсэн маршрутыг залгиулахгүйн тулд клиент профайлд route-nopull тавьсан, одоо оффисын дэд сүлжээнд хүрэх боломжгүй байхад клиент холбогдсон гэж хэвээр байна. Хоёр ажиглалт хоёулаа үнэн, юу ч бүтэлгүйтээгүй. Энэ флаг клиентэд серверийн push хийдэг маршрут болон DHCP бичлэгүүдийг алгасахыг хэлдэг бөгөөд энэ нь нэмэх үед ихэнх хүмүүсийн хүлээж байгаагаас илүү нарийн заавар юм. Үлдэх нь аль очих газрууд үүнийг ашиглах ёстой гэсэн саналгүй ажиллаж буй туннель юм.
Тэр зөрүү бол энэ нийтлэлийн сэдэв болсон бүх шийдвэр юм. Сервер сүлжээг дүрсэлнэ, эсвэл клиент дүрсэлнэ, флаг тэр ажлыг таны өмнөөс юу ч хийхгүйгээр клиентэд даатгадаг.
Холбогдох үед флаг юуг унтраадаг вэ
Татаж буй OpenVPN клиент ихэвчлэн баталгаажуулалтын дараа серверээс багц авдаг: маршрутууд, анхдагч гарцын дахин чиглүүлэлт, DNS серверүүд, хэд хэдэн тохируулгын заавар. route-nopull хүчинтэй үед клиент сессийг хүлээн авсаар, гэрчилгээг шалгасаар, шифр болон keepalive-ийн талаар хэлэлцсээр, интерфейсийг өргөсөөр байна. Хаях зүйл нь push хийсэн route мөрүүд болон push хийсэн dhcp-option мөрүүдийн хэрэглээ, DNS-ийг оролцуулан.
Төөрөгдөл үхсэн аппын хажууд байгаа ногоон үзүүлэлтээс үүсдэг. Туннель байгаа; очих газруудыг тэр туннель руу буулгах нь байхгүй. Клиентийн төлөвийн самбарт «холбогдсон ба чиглүүлж байна» ба «холбогдсон ба идэвхгүй» хоёрыг ялгах зүйл байхгүй, учир нь туннелийн өнцгөөс хоёулаа ижил төлөв.
Амьд туннель яагаад юуг ч чиглүүлж чадахгүй байж болох вэ
Интерфейс өөрийн хаягтайгаар гарч ирдэг бөгөөд цэгээс цэг рүү холболтод ихэвчлэн түнш рүү хийх хост маршрутаас илүү тодорхой зүйл байдаггүй. Хувийн дэд сүлжээ нь зөв префикстэй ямар нэг маршрут тэр интерфейс рүү зааж байж л хүрэх боломжтой болдог, push унтарсан үед тэр маршрут хэзээ ч ирдэггүй. Татсан профайл ч ихэвчлэн тус болохгүй, учир нь сервер яг энэ мэдээллийг өгнө гэсэн таамаглалаар бичигдсэн. Тиймээс интерфейс эрүүл харагдаж болох ч дэд сүлжээ харанхуй хэвээр байна.
Тиймээс профайл унших нь маш бага зүйлийг нотолдог. Оронд нь холбогдсон машин дээр ажиллаж буй төлөвийг уншина уу:
ip addr show tun0
ip route show dev tun0
ip route get 10.20.5.10
Хоёр дахь командад дэд сүлжээний маршрутгүй хаяг нь энэ асуудлын гарын үсэг юм. Гурав дахь команд нь хэрэглэгчдэд үнэхээр чухал асуултад хариулдаг, учир нь ашиглана гэж найдаж байсан жагсаалтыг биш, тодорхой очих газарт цөм сонгох интерфейсийг мэдээлдэг. Хэрэв таны физик холболтоор хариулж байвал туннель замд огт байхгүй.
Нэр шийдвэрлэх нь тусдаа шалтгаанаар биш, холбоотой шалтгаанаар бүтэлгүйтдэг. Push хийсэн dhcp-option DNS бичлэгүүдийг мөн адил флаг алгасдаг тул дотоод хост руу хийх асуулга нь локал сүлжээгээр өгөгдсөн аль ч шийдвэрлэгч рүү явдаг. Тэр шийдвэрлэгчид оффисын бүс байхгүй тул асуулга бүтэлгүйтэх эсвэл нийтийн хариулт буцаадаг, алдаа нь серверийн асуудал мэт харагдах боловч үнэндээ клиентийн тохиргооны асуудал юм. Нэрээс өмнө хаяг турших нь хоёрыг ялгадаг.
Флаг болон префикс шүүлтүүрийн хооронд сонгох
Хоёр сонголт нь ижил гомдлын өөр хэлбэрийг шийддэг бөгөөд муу сонголт нь «холбогдсон боловч хэрэггүй» төлөвийг бий болгодог. Нэг нь push хийсэн бодлогыг бүхэлд нь орлуулдаг, нөгөө нь префиксээр засварладаг. Хүснэгт богино хувилбарыг өгдөг, дараах догол мөр хүмүүсийг гайхшруулдаг хэсгийг хамардаг.
| Setting | What the client keeps | Reasonable when |
|---|---|---|
| no option | every pushed route and DHCP entry | the server's view of the network is correct |
route-nopull | the session, none of the pushed routing or DNS | you will write the full local policy yourself |
pull-filter | everything except lines matching your prefixes | the push is nearly right and one or two lines are wrong |
pull-filter нь гурван үйл үгтэй префикс тааруулагч тул мөрийн бүлгийг хүлээн авч, чимээгүйгээр үл тоомсорлож, эсвэл префикс гарч ирэхэд холболтыг бүрэн татгалзаж чадна. Яг сүүлийн зан төлөвийг мэдэх нь зүйтэй: татгалзах дүрэм нь бодлогын санал зөрөлдөөнийг чимээгүй орхигдуулахын оронд бүтэлгүй handshake болгодог. OpenVPN 2.6 гарын авлага хүлээн авдаг префиксүүд болон үйл үг бүрийн нарийн утгыг жагсаасан.
Нийтлэг дунд зам нь зөвхөн redirect-gateway-г татгалзаж, оффисын маршрут болон DNS-ийг зориулалтын дагуу ирэх боломжийг олгох юм. Энэ нь сервер танаас илүү сайн ойлгодог хэсгүүдэд push-ийг ажиллуулж, зэрэг таны анхдагч маршрутыг булаан авах тэр нэг мөрийг сэргийлдэг.
Маршрут болон шийдвэрлэгчийг гараар нэмэх
Хэрэв флагийг үлдээвэл, профайл серверийн хэлэх байсан зүйлийг хэлэх ёстой. Клиентийн талын route зааварууд холболт тогтоосны дараа хэрэгжинэ, тиймээс флагтай зэрэгцэн ажилладаг, түүнд хаагдахгүй. Тэдгээрийг профайлд хий, интерактив командын мөрөнд биш, эс бөгөөс дараагийн дахин холболт ажиллаж буй төлөвийг дахин үүсгэхгүй.
route-nopull
route 10.20.0.0 255.255.0.0
dhcp-option DNS 10.20.0.53
DNS мөр эвгүй байрлалд байна: энэ нь клиентийн талын заавар боловч зарим клиент үүнийг платформын DNS интеграцаар л хэрэгжүүлдэг бөгөөд холболт өөрчлөгдөхөд дээр нь бичиж болно. systemd хост дээр шийдвэрлэгчийг туннелийн интерфейс дээр шууд тохируулах нь клиент давуу эрхийн тэмцээнд ялна гэж найдахаас илүү урьдчилан таамаглах боломжтой:
resolvectl dns tun0 10.20.0.53
resolvectl domain tun0 ~corp.example.com
Чиглүүлэлтийн домэйн нь хаягтай адил чухал. Үүнгүйгээр нийтийн нэрсийн асуулга дотоод шийдвэрлэгч рүү ч явах боломжтой, рекурсийг татгалздаг аливаа дотоод шийдвэрлэгч хувийн бүсийг ажиллуулж байхад хөтөлбөрийг эвдэнэ. Үүнтэй хамт зөвхөн тэр дагаварын доорх нэрс туннелийн шийдвэрлэгч рүү чиглүүлэгдэж, бусад бүх зүйл физик холболтыг дагана.
Үр дүнг шалгах: хаяг, нэр, гадаад зам
Гурван туршилт боломжит алдааг ялгадаг. Эхлээд IP-ээр хувийн хаяг ав, дараа нь нэрээр мөн хост, дараа нь энгийн нийтийн сайт ав. Ажиллаж буй IP, бүтэлгүй нэр нь шийдвэрлэгч рүү заана; бүтэлгүй IP, ажиллаж буй нэр нь чиглүүлэлт рүү заана; хоёулаа бүтэлгүй бол ихэвчлэн туннель замд байхгүй.
Дараа нь дотогш биш, гадагш хар. Туннелийн төгсгөлийн цэгийн өөрийн маршрут өөрчлөлтийг давах ёстой бөгөөд аливаа хориглох алдаа төгсгөлийн цэгийг барихгүйгээр туннельд хязгаарлагдах ёстой. Туннель унасны дараа ч хөтөлбөрөө үргэлжлүүлж буй клиент нь чиглүүлэлтийн бус бодлогын асуудал бөгөөд дээрх гурван туршилтын аль нэгэнд ч илрэхгүй.
Эцсийн жагсаалтыг профайлын баримт бичигт бич: маршрутууд, шийдвэрлэгч, домэйнууд болон тус бүр яагаад байгаа шалтгаан. Ижил хүснэгтийг дахин үүсгэдэг дахин холболт л локал бодлого бүрэн гэдгийн цорын ганц нотолгоо. Хэрэв туннель өргөгдсөн, гурван туршилт бүгд тэнцсэн ч аппууд бүтэлгүйтсээр байвал дараа харах газар нь аль хэдийн шалгасан гэрчилгээ биш, «холбогдсон боловч оффлайн» асуудлын ангилал юм.