Server yordamchilari quyi tarmoqni sozlaydi, so‘ng uni o‘zlari tanlagan dinamik hovuz bilan to‘ldiradi. Bu standart qiymat ba’zi manzillar taqsimotdan tashqarida qolishi kerak bo‘lgunga qadar qulay — ular qat’iy biriktirishlar uchun ajratilganmi yoki kelajak segmenti uchun ushlab turilganmi, baribir. Avtomatik hovuzni to‘xtatish va oraliqni o‘zingiz e’lon qilish ikki qatorni va qaysi manzillar taqsimot uchun emasligi haqida bitta ongli qarorni talab qiladi. Qolgani operatsion tartib: inventar, qo‘llash, tekshirish, qaytarish.

Bu ishlab turgan xizmatdagi o‘zgarish, shuning uchun uni operatsion vazifa sifatida ko‘ring: avval inventar, keyin odatdagi hayot sikli orqali qo‘llash, yangi mijoz bilan tekshirish va tayyor qaytarish.

O‘zingizda bor quyi tarmoqdan boshlang

Joriy server konfiguratsiyasini va mijozlar aslida egallab turgan manzillarni o‘qing. Hovuz o‘zgarishi faqat shu asosga nisbatan ma’noga ega, va asos har doim fayl aytganidek bo‘lavermaydi, chunki boshqariladigan mahsulot yoki konfiguratsiya generatori siz o‘qiyotgan faylning egasi bo‘lishi mumkin.

grep -nE '^(topology|server|ifconfig-pool|max-clients|client-config-dir)' /etc/openvpn/server/lab.conf
ip -4 addr show tun0

Amaldagi topologiyani tasdiqlang. Quyi tarmoq topologiyasida har bir mijoz hovuzdan bitta manzil oladi; eski net30 sxemalari har bir mijozga kichik blok ajratadi va arifmetika butunlay boshqacha. Agar server hali ham net30 da bo‘lsa, bu sahifa noto‘g‘ri ko‘chirish qo‘llanmasi va hovuz raqamlari siz kutgan ma’noni bermaydi. Manzil arifmetikasini boshqa joydan ko‘chirishdan oldin shu qatorni tekshiring.

Serverning o‘z manzilini, mijoz konfiguratsiyalari papkasidagi har bir qat’iy biriktirishni va marshrut yoki kirish qoidasi bog‘liq bo‘lgan har qanday manzilni yozib qo‘ying. Dinamik oraliqdan tashqarida qolishi kerak bo‘lgan manzillar aynan shular. Ularni birinchi bo‘lib yozish oraliqni taxmin emas, qarorga aylantiradi. Bu qaytarishga tiklash uchun aniq narsa ham beradi.

nopool qo‘shing va oraliqni e’lon qiling

Yordamchi kalit so‘z nopool ni qabul qiladi, u quyi tarmoq konfiguratsiyasini saqlab, avtomatik dinamik hovuzni to‘xtatadi, OpenVPN 2.6 qo‘llanmasi tavsiflaganidek. So‘ng aniq ifconfig-pool qatori siz ko‘zlagan qamrab oluvchi oraliqni beradi va uning tarmoq maskasi quyi tarmoqqa mos keladi. Ikkala qator ham bir server blokiga tegishli, chunki o‘z quyi tarmog‘isiz hovuzning ma’nosi yo‘q. Ularning orasidagi tartib faqat o‘qish qulayligi uchun muhim, chunki xizmat ishga tushganda yordamchi bu juftlikni ochadi.

topology subnet
server 10.70.0.0 255.255.255.0 nopool
ifconfig-pool 10.70.0.50 10.70.0.120 255.255.255.0

Ikkala chegara ham qamrab oladi, shuning uchun misol yetmish bir manzilni taklif qiladi. Server manzilini va har bir qat’iy biriktirishni shu oraliqdan tashqarida saqlang; dinamik oraliq ichiga tushgan qat’iy biriktirish ulanish tartibiga bog‘liq to‘qnashuv keltiradi, va bu tuzatish uchun eng yomon tur. Qat’iy biriktirishlar o‘sishi ehtimoli bo‘lsa, ajratilgan to‘plam bilan oraliq orasida bo‘sh joy qoldiring.

Oraliq hajmi va bir vaqtdalik alohida cheklovlar. max-clients boshqacha aytmasa, yuz manzil yuz bir vaqtda mijoz degani emas, va bir vaqtdalik chegarasidan katta hovuz isrofgarchilik emas, odatiy hol. Muhimi — ikki cheklov ham standart qiymatdan meros qolmasdan, ongli ravishda tanlanishi.

Qat’iy biriktirishlarni dinamik oraliqdan tashqarida saqlang

Mijozga xos ifconfig-push hovuzdan taqsimlashdan boshqa mexanizm va faol topologiyaga mos parametrlarni ishlatishi kerak. Quyi tarmoq rejimida bu bitta manzil va tarmoq maskasi; eski misolda uchragani uchun net30 juftini ko‘chirish keng tarqalgan xato.

Taqsimlash tarixi — ishora, hokimiyat emas. persist fayli qaysi mijozda qaysi manzil bo‘lganini eslab qoladi, shuning uchun qayta ulanadigan mijozlar odatda o‘shani oladi, va u manzillarni ajratmaydi, bo‘shatmaydi yoki qat’iy biriktirishni almashtirmaydi. Muayyan qurilma doim muayyan manzilga ega bo‘lishi kerak bo‘lsa, persist fayliga tayanmasdan qat’iy biriktirishdan foydalaning.

So‘ng manzillarga bog‘liq yo‘llarni tekshiring. Mijozlarga suriladigan marshrut, quyi tarmoqqa ruxsat beruvchi xavfsizlik devori qoidasi yoki muayyan xostni kutayotgan monitoring tekshiruvi eski oraliqni nazarda tutishi mumkin. Ularni o‘qimasdan hovuzni o‘zgartirish nosozlikni aloqasiz ko‘rinadigan joyga ko‘chiradi.

Hayot sikli orqali qo‘llang, so‘ng tekshiring

O‘zgarishni xizmat odatda konfiguratsiyani qabul qiladigan usulda qo‘llang — to‘g‘ridan-to‘g‘ri fayl va qayta ishga tushirish, yoki faylni qayta yaratadigan boshqaruv qatlami. Yaratilgan fayldagi qo‘lda tuzatish keyingi yaratishgacha yashaydi, undan ko‘proq emas. Fayl qaysi mexanizmga tegishli ekanini yozib qo‘ying, chunki keyingi operator xuddi shu o‘zgarishni qayerda qilishni bilishi kerak. So‘ng bir marta qayta ishga tushiring va mijozni chaqirishdan oldin jurnalni o‘qing.

systemctl restart openvpn-server@lab
journalctl -u openvpn-server@lab -n 30 --no-pager
# on a fresh client
ip -4 addr show tun0

Avval ulanmagan mijozni ulang va manzil e’lon qilingan oraliq ichida hamda ajratilgan to‘plamdan tashqarida ekanini tasdiqlang. So‘ng qaytish yo‘lini tasdiqlang: mijoz siyosat ruxsat bergan narsaga yetishi kerak, undan ortig‘iga emas. Rejaga mos, lekin ishlaydigan marshruti yo‘q manzil muvaffaqiyatli o‘zgarish emas.

Eski oraliqdan manzil ushlab turgan mijozni qayta ulang. U yangi oraliqdan manzil olishi kerak, va eski manzilga bog‘langan har qanday sessiya darajasidagi holat yo‘qolgan bo‘lishi kerak. Agar u eski manzilni saqlab qolsa, uni boshqa narsa biriktiryapti va hovuz siz o‘ylagan egasi emas.

Oraliq o‘zgarishini qaytarish

O‘zgarishlar yozuvingizda oldingi uch qatorni saqlang, faqat oldingi faylni emas. Ularni tiklash va qayta ishga tushirish taqsimotni eski xatti-harakatga qaytaradi, va keyin qayta ulanadigan mijozlar undan manzillar oladi.

Yozuvga ikkita ogohlantirish kiradi. Qaytarish paytida allaqachon ulangan mijozlar qayta ulanmaguncha joriy manzillarini saqlaydi, shuning uchun qaytarish butun parkda bir zumda emas. Va agar eski oraliq qat’iy biriktirish bilan kesishgan bo‘lsa, uni tiklash to‘qnashuvni ham tiklaydi; aynan o‘sha kesishuv o‘zgarish sababi edi va u qaytarishdan boshqa tuzatishni talab qiladi.

Hovuz o‘zgarishi yangi mijoz oraliq ichidagi manzil olganda, ajratilgan manzil hech qachon berilmaganda va o‘sha manzillarni ishlatadigan marshrutlar hamda qoidalar ko‘zlangandek xatti-harakat qilganda tugallanadi. Bundan kam narsa keyingi odamga uchtadan qaysi biri haqiqat emasligini aniqlashni qoldiradi.

O'xshash maqolalar