/etc/hosts ga nom qo’shdingiz, VPN ga ulandingiz va yozuv hammaga ko’rinadi deb kutdingiz. Bu sodir bo’lmaydi, va hayrat odatda ikkinchi alomat bilan keladi: nom sizning mashinangizda hal bo’ladi, hamkasbingiznikida esa hal bo’lmaydi, bu buzilgan VPN DNS xizmatiga o’xshaydi, aslida esa hosts fayli aynan shu uchun yaratilgan ishni qilmoqda. hosts fayli mahalliy nom hal qilish konfiguratsiyasi, zona yangilanishi emas, va oddiy VPN ulanishida hech narsa uni yuklamaydi.

Hosts mahalliy almashtirish, zona yangilanishi emas

Fayl — nom xizmati kutubxonalari DNS serverdan so’rashdan oldin yoki uning o’rniga murojaat qiladigan mosliklar ro’yxati. 10.40.0.20 build.corp.example kabi satr faqat o’sha bitta mashinadagi ilovalar qanday xulosa qilishini o’zgartiradi. U yozuv yaratmaydi, tunnel orqali o’tmaydi, va tunnel ko’rsatgan DNS server uning borligini bilmaydi.

Shuning uchun muvaffaqiyatsizlik assimetrik. Mijozingiz fayldan javob oladi. Boshqa mijoz VPN ning DNS serveridan so’raydi, u hech narsa qaytarmaydi, va ilova nom mavjud emasligini bildiradi. Ikkala mashina ham to’g’ri ishlayapti; faqat bittasida ikkinchisi hech qachon ko’rmagan almashtirish bor.

Ikki buyruq, ikki xil komponent

Bu bahsni to’xtatishning eng tez yo’li — farqni ikki buyruqda ko’rinadigan qilish, ikkalasi ham hosts yozuvi bor mijozda bajariladi:

getent ahosts build.corp.example
dig @10.40.0.53 build.corp.example A

Birinchisi tizimning o’z qidiruv yo’lidan so’raydi, u odatiy glibc tizimida DNS dan oldin mahalliy fayllarni o’qiydi. Ikkinchisi DNS so’rovini to’g’ridan-to’g’ri shu manzildagi serverga yuboradi va mahalliy fayllarga umuman murojaat qilmaydi. Birinchisi sizning yozuvingizni qaytarsa, ikkinchisi NXDOMAIN qaytarsa, siz yozuv DNS da yo’qligini va mashinangiz mahalliy almashtirishdan javob berayotganini isbotladingiz.

Tartib konfiguratsiya qilinadi, va muayyan distributiv haqida biror xulosa chiqarishdan oldin uni tekshirishga arziydi. /etc/nsswitch.conf dagi hosts: satriga qarang; hosts: files dns avval fayllarga murojaat qiladi. Faqat tartibni o’zgartirish uchun bu misolni ishlaydigan konfiguratsiya ustiga ko’chirmang, chunki haqiqiy tizimlar ko’pincha misolda yo’q qo’shimcha manbalar va shartli xizmat yozuvlarini sanab o’tadi.

systemd-resolved testni xiralashtiradi

systemd-resolved ishlatadigan tizimda mahalliy stub hosts ma’lumotlar bazasidan ham nomlarni taqdim etadi. Shuning uchun 127.0.0.53 ga so’rov yuborish uzoq serverning mustaqil testi emas, garchi u DNS so’roviga o’xshasa va shunday harakat qilsa ham. Resolver nimalarni bilishini va qaysi serverlardan so’rashini quyidagi bilan tasdiqlashingiz mumkin:

resolvectl query build.corp.example
resolvectl status

status chiqishi har bir ulanish uchun DNS serverlarni nomlaydi, va shu bilan VPN ulanishi resolver olganmi yo’qmi bilasiz. Bu savol hosts yozuvidan alohida va shaxsiy nom bittaga emas, balki har bir foydalanuvchiga muvaffaqiyatsiz bo’lganda berishga arziydigan savol shu.

Ilovalar yana bir qatlam qo’shishi mumkin. O’zining DNS-over-HTTPS sozlamasi bo’lgan brauzer, o’zining resolver konfiguratsiyasi bo’lgan konteyner yoki jarayonning butun umri davomida qidiruvlarni keshlaydigan ish muhiti har biri tizimdan boshqacha javob berishi mumkin. Bitta buyruq mashinadagi har bir dasturni tavsiflaydi deb o’ylash o’rniga sizga muhim bo’lgan ilovani sinab ko’ring.

VPN bo’ylab nomni aslida nima baham ko’radi

Agar shaxsiy nom hamma uchun ishlashi kerak bo’lsa, unga hammaning resolveri yeta oladigan egasi kerak. Toza javob — yozuvni boshqariladigan zonada e’lon qilish va bu zonani VPN ning mo’ljallangan DNS yo’li orqali hal qilinadigan qilish. Shunda yozuvning yagona haqiqat manbasi, audit izi va hayot sikli bo’ladi, va hech kim qaysi noutbukda mahalliy almashtirish borligini eslab yurishi shart emas.

hosts fayllarini tarqatish qonuniy muqobil, va bu nom xizmati emas, oxirgi nuqtalarni boshqarish. Agar uni tanlasangiz, faylni flotni boshqaradigan narsa joylashtirishi, versiyalashi va olib tashlashi kerak, va dizaynda aynan shunday tavsiflanishi lozim. «VPN buni hal qiladi» bu jarayonning tavsifi emas.

Dinamik DNS ro’yxatga olish uchinchi mexanizm, o’z ruxsatlari, yangilanish autentifikatsiyasi va yozuv umri bilan. U hosts yozuvidan kelib chiqmaydi, va mijozning shunchaki ulanishidan ham kelib chiqmaydi, agar server va mijoz ikkalasi ham bunga konfiguratsiya qilinmagan bo’lsa. O’z-o’zidan paydo bo’ladigan yozuv — kimdir xavfsiz yangilanishlarni yoqqanining va mijoz o’zini ro’yxatga olayotganining belgisi, va bu konfiguratsiya muammolarni bartaraf etish mavzusiga emas, dizayn yozuviga tegishli. Agar hech kim bu sozlamaning egasini ayta olmasa, avtomatik yozuvni tasdiqlanmagan deb hisoblang va boshqariladigan zonani haqiqat manbasi sifatida saqlang.

Hal qilingan nom — marshrut emas

Nomlarni hal qilish va yetib borish imkoniyati alohida narsalar, va eskirgan mahalliy moslik ularni chalkashtirishning klassik usuli. Ko’chib ketgan manzilga ishora qiladigan hosts yozuvi DNS tuzatilgandan ancha keyin ham eski xostni tanlashda davom etadi, va alomat yaxshi hal bo’ladigan nomdagi marshrutlash xatosi kabi ko’rinadi.

Shuning uchun hisobot «nom hal bo’ladi, lekin xizmatga yetib bo’lmaydi» bo’lganda, tizim qidiruvini VPN ning DNS serveriga aniq so’rov bilan solishtiring, so’ngra olgan manzilingizni xizmat aslida ishlatadigan manzil bilan tekshiring. systemd-resolved ma’lumotnomasi u murojaat qiladigan mahalliy manbalarni hujjatlashtiradi, va bu solishtirish uchun kerak bo’lgan xarita shu.

So’ngra almashtirishni uning egasi orqali tuzating. O’z hosts faylingizdan bitta satrni olib tashlash joylashtirish skriptidan xuddi shu satrni olgan o’n ikki noutbukka hech narsa qilmaydi, va odamlarda aslida shu muammoning shu versiyasi bor.

O'xshash maqolalar