Nega OpenVPN UDP javobi noto'g'ri manzildan chiqadi
Bir nechta mahalliy manzilli UDP server mijozga u bog'langan manzildan boshqa manzildan javob berishi mumkin. multihome qo'llab-quvvatlanadigan platformalarda manbani tuzatadi.
OpenVPN mijozi bitta manzilga qo'ng'iroq qiladi, server boshqasidan javob beradi va tunnel hech qachon ko'tarilmaydi. Server jurnali paket kelayotganini, yozuv esa javob chiqayotganini ko'rsatadi, shuning uchun xato mijozga yuklanadi. Bir nechta interfeysli yoki bitta interfeysda bir nechta manzilli xostda ikki tomon qaysi manzil ishlatilayotgani haqida kelisha olmaydi. Javob IP qatlamida to'g'ri, ammo ko'p mijozlar manbasi o'zlari bog'langan manzil bo'lmagan datagramni tashlab yuboradi.
Manba o'zgarganda mijoz nima ko'radi
Muayyan mahalliy manzilga bog'lanmagan UDP soketining doimiy manbasi yo'q, shuning uchun yadro yuborish vaqtida birini tanlaydi. Bu tanlov mijoz manzili tomon marshrut qidiruvidan keladi va manba qidiruv tanlagan interfeys manzili bo'ladi. Bitta interfeysli mashinada tanlov ko'rinmaydi; boshqaruv manzili, ommaviy manzil va o'sha tarmoq kartasidagi ikkilamchi manzilga ega xostda esa marshrut metrikalari va siyosatiga bog'liq. Siyosatga asoslangan marshrutlash nomuvofiqlikni kamaytirish o'rniga oshiradi, chunki qoida mijoz hech qachon yetib bormagan yuqori kanalni tanlashi mumkin. Bir provayderdan o'rganilgan standart marshrut va boshqasiga ishora qiluvchi manba qoidasi buni keltirib chiqarish uchun yetarli.
Javoblarni filtrlaydigan mijozlar va aniq to'rtlik hamda manbani kutadigan ulanish kuzatuvi javobni foydali xabarsiz tashlab yuboradi. Keyin tunnel hech narsa kelmagan kabi vaqt tugaydi, shuning uchun bu mijoz tomonidagi xavfsizlik devori muammosi deb noto'g'ri tushuniladi. Faqat serverda olingan yozuv xatoni tushuntirish o'rniga tasdiqlaydi, chunki javob haqiqatan chiqadi. Boshqa narsani o'zgartirishdan oldin javob manbasini mijoz qo'ng'iroq qilgan manzil bilan solishtiring.
multihome opsiyasi aslida nima qiladi
Ko'rsatma konfiguratsiya faylida multihome va buyruq satrida --multihome shaklida yoziladi va UDP serverni mijoz paketi yetib borgan manzildan javob berishga majbur qiladi. Yadro qabul qilishda asl manzil manzilini qo'shimcha ma'lumot sifatida beradi va OpenVPN o'sha qiymatni javob manbasi sifatida ishlatadi. Shu tarzda umumiy manzilda tinglayotgan server, IPv4 uchun local 0.0.0.0 yoki uning IPv6 ekvivalenti, har bir mijoz alohida tinglovchiga yetib borgandek harakat qiladi. Ommaviy manzil orqali kirgan mijozlar ommaviy manzildan javob oladi, ichki manzildagi mijozlar esa o'sha manzildan oladi. Paket yo'lida boshqa hech narsa qimirlamaydi: marshrut, filtr qoidalari va tunnel konfiguratsiyasi avvalgidek qoladi.
Aynan shu oxirgi xususiyat opsiyani boshqa jihatdan ishlayotgan serverga qo'shishni xavfsiz qiladi va faqat bitta manzilga ruxsat beruvchi filtrni u tuzata olmasligining sababi ham shu. Paket baribir o'zi yuradigan yo'lda qabul qilinishi kerak, shuning uchun manba tuzatishi javobning kelib chiqishini o'zgartiradi, boshqa narsani emas. U faqat UDP uchun: TCP tinglovchida bu muammo xuddi shu shaklda yo'q, chunki ulanish javob manbasi manzili bilan emas, to'rtlik bilan aniqlanadi.
Qachon qat'iy mahalliy manzil noto'g'ri standart bo'ladi
Opsiyaga o'tishdan oldin server bitta aniq mahalliy manzilni bog'laydimi-yo'qmi tekshiring, chunki bog'langan tinglovchi doim o'sha manzildan javob beradi. Bu bitta interfeysli joylashtirish uchun to'g'ri va mijozlar qonuniy ravishda birdan ortiq manzildan foydalana boshlaganda noto'g'ri bo'ladi. Agar bog'lash ataylab qilingan bo'lsa, server qo'shimcha manzillarda trafikni qabul qilishi kerakmi-yo'qmi hal qiling. Bog'lashni olib tashlash ta'sir doirasini oshiradi, shuning uchun ruxsat etilgan interfeyslar va manba tarmoqlarini faqat bog'lash manzili emas, xizmat va filtr amalga oshirishi kerak.
OpenVPN ma'lumotnomasi opsiyani UDP serverlar bilan cheklaydi, paket yo'lidagi qo'shimcha ishlovni qayd etadi va qaysi platformalar uni qo'llab-quvvatlashini yozadi. Shunga asoslanib rejalashtirishdan oldin uni o'rnatilgan nashrda tasdiqlang. Qo'llab-quvvatlanmaydigan joylarda aniq manzilni bog'lash yoki qaytish marshrutini tuzatish muqobil bo'lib, ikkalasi ham bir qarashda ko'ringanidan torroq o'zgarishlar. Umumiy manzilda tinglashning javoblardan tashqari oqibatlari ham bor: barcha manzillardagi server xost ulangan har bir tarmoqdan yetib boriladi, va bu kimningdir ko'zda tutgan ta'sir doirasi bo'lmasligi mumkin.
Javob manbasini tashqaridan isbotlang
Serverdan tashqarida sinab ko'ring va biror narsani yozib olishdan oldin mijoz ishlatgan aniq manzil va transportni qayd eting. Quyidagi uchta tekshiruv uch xil savolga javob beradi va tartib muhim.
tcpdump -ni any udp port 1194
ss -lunp 'sport = :1194'
ip route get 203.0.113.10 from 198.51.100.20
Yozuv javobdagi manba manzilini ko'rsatadi va butun maqola shu faktga tayanadi. Soketlar ro'yxati server aslida nimani bog'laganini ko'rsatadi, chunki umumiy va aniq tinglovchilar konfiguratsiya faylida bir xil ko'rinadi va tarmoqda boshqacha harakat qiladi. Marshrut qidiruvi yadro o'sha oqim uchun tanlaydigan manbani ko'rsatadi va bu biror narsani o'zgartirishdan oldin yozuvni tushuntiradi. Uchalasini IPv4 va IPv6 uchun alohida takrorlang, chunki ular alohida tinglovchilar va alohida qidiruvlar, bir oila uchun umumiy yozuv ikkinchisi haqida hech narsa demaydi.
Marshrutlash, aniqlash va filtrlash alohida qoladi
Javob manbasini saqlash chiquvchi marshrut o'rnatmaydi, dinamik DNS ni yangilamaydi va bir manzil oilasini ikkinchisini qabul qilishga majbur qilmaydi. Bir nechta yuqori kanalli serverda har bir manba uchun qaytish yo'li ataylab kelishilishi kerak, aks holda javoblar mijoz filtri hech qachon ruxsat bermagan interfeysdan chiqadi. Xuddi shunday, prefiks o'zgargandan keyingi yangi manzil mijozlarga yetib borishi kerak aniqlash va qo'llab-quvvatlanadigan qayta ulanish oqimi orqali, eski yozuv orqali emas.
Server identifikatsiyasi tekshiruvlari va sertifikat tekshiruvini aynan qanday bo'lsa shunday qoldiring, chunki o'zgargan manzil tekshirilmagan sherikni qabul qilishni oqlamaydi. Agar javob endi ko'zlangan manbadan chiqsa-yu, tunnel hali ham ishlamasa, manba muammosini hal qilingan deb hisoblang va davom eting. Keyingi kuzatilgan xato marshrutlash, filtrlash yoki autentifikatsiyaga tegishli, va tinglovchini yana o'zgartirish u yerga yetib bormaydi. Javob manbasini biletga mijoz qo'ng'iroq qilgan manzilning yoniga yozing, shunda keyingi odam o'sha faktni bitta buyruq bilan tekshira oladi.