Таны /etc/hosts бичлэг VPN-ийн DNS-д хүрэхгүй байгаа шалтгаан
VPN-д холбогдох нь /etc/hosts файлыг байршуулдаггүй. Системийн хайлтыг шууд DNS асуулгаас салгаж, дараа нь удирдлагатай бүсээр дамжуулан хувийн нэрсийг нийтлээрэй.
Та /etc/hosts файлд нэр нэмж, VPN-д холбогдож, бичлэг хүн бүрт харагдана гэж хүлээсэн. Тийм зүйл болохгүй бөгөөд гайхшрал ихэвчлэн хоёр дахь шинж тэмдэгтэй хамт ирдэг: нэр таны машин дээр шийдэгдэж, хамт олны машин дээр бүтэлгүйтдэг нь эвдэрсэн VPN DNS үйлчилгээ мэт харагдах боловч үнэндээ hosts файл яг зориулалтынхаа ажлыг хийж байгаа хэрэг. hosts файл бол локал нэр шийдвэрлэх тохиргоо, бүсийн шинэчлэл биш бөгөөд ердийн VPN холболтод үүнийг байршуулах зүйл байхгүй.
Hosts бол локал давхарлалт, бүсийн шинэчлэл биш
Файл нь нэр үйлчилгээний сангууд DNS серверээс асуухаас өмнө эсвэл оронд нь ханддаг буулгалтын жагсаалт юм. 10.40.0.20 build.corp.example гэх мэт мөр нь тухайн нэг машин дээрх програмуудын дүгнэлтийг өөрчилдөг. Энэ нь бичлэг үүсгэхгүй, туннелээр явахгүй, туннелийн заасан DNS сервер үүнийг байгааг мэдэхгүй.
Тиймээс алдаа нь тэгш бус байна. Таны клиент файлаас хариулт авдаг. Өөр клиент VPN-ийн DNS серверээс асуухад тэр юу ч буцаахгүй, програм нэр байхгүй гэж мэдээлнэ. Хоёр машин зөв ажиллаж байгаа бөгөөд зөвхөн нэг нь нөгөөгийнхөө хэзээ ч хараагүй давхарлалттай байна.
Хоёр команд, хоёр өөр бүрэлдэхүүн
Энэ маргааныг зогсоох хамгийн хурдан арга бол ялгааг хоёр команд дээр харагдахуйц болгох бөгөөд хоёуланг нь hosts бичлэгтэй клиент дээр ажиллуулна:
getent ahosts build.corp.example
dig @10.40.0.53 build.corp.example A
Эхнийх нь системийн өөрийн хайлтын замаас асуудаг бөгөөд ердийн glibc системд DNS-ээс өмнө локал файлуудыг уншдаг. Хоёр дахь нь DNS асуулгыг тухайн хаяг дээрх сервер рүү шууд илгээж, локал файлуудад огт ханддаггүй. Эхнийх таны бичлэгийг буцааж, хоёр дахь нь NXDOMAIN буцаахад та бичлэг DNS-д байхгүй, таны машин локал давхарлалтаас хариулж байгааг нотолсон байна.
Дараалал нь тохируулагдах бөгөөд тодорхой түгээлтийн талаар дүгнэлт хийхээс өмнө шалгах нь зүйтэй. /etc/nsswitch.conf файл дахь hosts: мөрийг хараарай; hosts: files dns эхлээд файлуудад ханддаг. Зөвхөн дарааллыг өөрчлөх гэж тэр жишээг ажиллаж буй тохиргоо дээр хуулах хэрэггүй, учир нь бодит системүүд жишээнд байхгүй нэмэлт эх үүсвэр, нөхцөлт үйлчилгээний бичлэгүүдийг ихэвчлэн жагсаадаг.
systemd-resolved шалгалтыг бүдэг болгодог
systemd-resolved ашигладаг системд локал stub нь hosts мэдээллийн сангаас ч нэр өгдөг. Тиймээс 127.0.0.53-д асуулга хийх нь алсын серверийн бие даасан шалгалт биш бөгөөд DNS асуулга мэт харагдаж, тэгж ажилладаг ч мөн адил. Resolver юу мэддэг, ямар серверүүдээс асуухыг та ингэж баталгаажуулж болно:
resolvectl query build.corp.example
resolvectl status
status-ийн гаралт холболт бүрийн DNS серверүүдийг нэрлэдэг бөгөөд ингэснээр VPN холболт resolver авсан эсэхийг мэднэ. Тэр асуулт hosts бичлэгээс тусдаа бөгөөд хувийн нэр нэг хүнд биш бүх хэрэглэгчид бүтэлгүйтэх үед асуух нь зүйтэй асуулт юм.
Програмууд өөр нэг давхарга нэмж болно. Өөрийн DNS-over-HTTPS тохиргоотой хөтөч, өөрийн resolver тохиргоотой контейнер, эсвэл процессын бүх амьдралын турш хайлтыг кэшлэдэг гүйцэтгэх орчин нь системээс өөрөөр хариулж болно. Нэг команд машин дээрх бүх програмыг тодорхойлдог гэж үзэхийн оронд танд чухал програмыг шалгаарай.
VPN-ээр дамжуулан нэрийг үнэхээр юу хуваалцдаг вэ
Хувийн нэр бүгдэд ажиллах ёстой бол бүгдийн resolver хүрч чадах эзэн хэрэгтэй. Цэвэр хариулт бол бичлэгийг удирдлагатай бүсэд нийтэлж, тэр бүсийг VPN-ийн зорьсон DNS замаар шийдэгдэх боломжтой болгох юм. Тэгвэл бичлэг нэг үнэний эх сурвалж, аудитын ул мөр, амьдралын мөчлөгтэй болж, хэн ч аль зөөврийн компьютер локал давхарлалттайг санах шаардлагагүй.
hosts файлуудыг тараах нь хууль ёсны хувилбар бөгөөд энэ нь нэр үйлчилгээ биш, төгсгөлийн цэгийн удирдлага юм. Хэрэв та үүнийг сонговол файлыг флотыг удирддаг зүйл байршуулж, хувилбарлаж, устгах ёстой бөгөөд дизайнд яг ингэж тодорхойлсон байх ёстой. «VPN үүнийг шийднэ» гэдэг нь тэр процессын тодорхойлолт биш.
Динамик DNS бүртгэл нь гурав дахь механизм бөгөөд өөрийн зөвшөөрөл, шинэчлэлтийн баталгаажуулалт, бичлэгийн амьдрах хугацаатай. Энэ нь hosts бичлэгээс үүсэхгүй, зөвхөн клиент холбогдохоос ч үүсэхгүй, хэрэв сервер, клиент хоёулаа үүнд тохируулагдаагүй бол. Өөрөө гарч ирсэн бичлэг нь хэн нэгэн аюулгүй шинэчлэлтийг идэвхжүүлж, клиент өөрийгөө бүртгэж байгаагийн дохио бөгөөд тэр тохиргоо нь алдаа олсны урсгалд биш, дизайны бичлэгт хамаарна. Хэрэв хэн ч тэр тохиргооны эзнийг нэрлэж чадахгүй бол автомат бичлэгийг баталгаажаагүй гэж үзэж, удирдлагатай бүсийг үнэний эх сурвалж болгон хадгал.
Шийдэгдсэн нэр бол зам биш
Нэр шийдвэрлэх, хүртээмж нь тусдаа зүйл бөгөөд хуучирсан локал буулгалт нь тэдгээрийг андуурах сонгодог арга юм. Нүүсэн хаяг руу заасан hosts бичлэг нь DNS засагдсаны дараа ч удаан хугацаанд хуучирсан хост сонгосоор байх бөгөөд шинж тэмдэг нь сайн шийдэгддэг нэр дээрх чиглүүлэлтийн алдаа мэт харагдана.
Тиймээс тайлан «нэр шийдэгдэж байна, гэхдээ үйлчилгээ хүртээмжгүй» гэж байвал системийн хайлтыг VPN-ийн DNS серверт хийсэн тодорхой асуулгатай харьцуулж, дараа нь авсан хаягаа үйлчилгээний бодитоор ашигладаг хаягтай тулгаарай. systemd-resolved-ийн лавлагаа нь түүний ханддаг локал эх үүсвэрүүдийг баримтжуулдаг бөгөөд тэр харьцуулалтад хэрэгтэй газрын зураг нь энэ юм.
Дараа нь давхарлалтыг эзнээр нь зас. Өөрийн hosts файлаас нэг мөр устгах нь байршуулалтын скриптээс ижил мөрийг авсан арван хоёр зөөврийн компьютерт юу ч хийхгүй бөгөөд хүмүүсийн үнэхээр тулгардаг энэ асуудлын хувилбар нь энэ юм.