OpenVPN up skripti juda erta ishga tushdimi, yoki u hech qachon tayyor bo'lmaganmi?
up ilgagi tunnel qurilmasi paydo bo'lganda, marshrutlar va ilova tayyorligidan oldin ishga tushadi. Skriptni uyqu qo'shish o'rniga unga kerak bo'lgan hodisaga moslang.
up skripti ishga tushadi, nol bilan chiqadi, va uning ichidagi vazifa terminaldan ikki soniya o'tib mukammal ishlaydigan xususiy xizmatga yeta olmaydi. Instinkt vaqtni ko'rsatadi, va odatiy tuzatish — bu uyqu, u poygani tushunmasdan yashiradi. Foydaliroq o'qish — “up” ilgakning nomi, tayyorlik kafolati emas. U tunnel qurilmasi sozlanganda ishga tushadi, bu marshrutlar, DNS va tunnel orqasidagi har qanday ilovadan oldin.
Shell testi muvaffaqiyatli bo'ldi, chunki u hamma narsa tinchlangandan keyin ishga tushdi. Ilgak ma'lum bir lahzada ishga tushdi.
up ishga tushish tartibida qayerda turadi
OpenVPN tunnel qurilmasini sozlaydi va keyin up ilgagini ishga tushiradi. Marshrutlarni o'rnatish keyingi bosqich, va uning o'z ilgagi bor, shuning uchun up ichiga qo'yilgan marshrutga bog'liq vazifa foydali yo'li bo'lmagan qurilmani ko'rishi mumkin. Marshrut ishini route-up ichiga qo'ying, va vaqt muammosi odatda yo'qoladi.
Qo'llanma bu tartibni va har bir ilgak oladigan muhitni hujjatlashtiradi. Bu tartib “mening shellimdan ishlaydi” degan klassik hisobotning to'liq izohi, va aynan shu sabab bilan bir xil skript bir mashinada o'tib, sekinroq marshrut bosqichi bo'lgan boshqasida muvaffaqiyatsiz bo'lishi mumkin. Ikkala natija ham skript sifati haqida hech narsa aytmaydi.
DNS va ilova tayyorligi bundan ham kechroq keladi. O'rnatilgan marshrutlar ham uzoq so'nggi nuqta tinglayotganiga, nom hal bo'layotganiga yoki foydalanuvchi doirasidagi vazifa uchun ish stoli sessiyasi mavjudligiga dalil emas.
Ilgak aslida nimani meros oladi
Ilgak OpenVPN jarayonining hisobi va muhiti ostida ishlaydi, bu sizning interaktiv shellingiz bilan bir xil emas. Unda foydalanuvchining sessiya shinasi, ish stoli muhiti yoki faqat kirishda ochiladigan hisob ma'lumotlari bo'lmasligi mumkin. Vazifaga ulardan qaysi biri haqiqatan kerakligini yozib qo'ying.
Bu tarmoqqa o'xshab ko'rinadigan, lekin foydalanuvchi kontekstiga bog'liq vazifalar uchun muhim: foydalanuvchi hisobi bilan umumiy papkani ulash, foydalanuvchiga xos proksi o'rnatish yoki printerni sozlash. Imtiyozli tunnel ilgagi ular uchun noto'g'ri joy, va qancha kutilsa ham yo'q sessiyani tuzatmaydi.
Ilgakda vazifa muvaffaqiyatsiz bo'lsa, hisobni, muhitni va birinchi muvaffaqiyatsiz bo'lgan amalni yozib oling. Bu erta vaqtni ruxsat yoki kontekst muammosidan ajratadi, va ikkalasining tuzatishlari butunlay boshqacha. Ular orasida taxmin qilish — besh daqiqalik tuzatishni butun kunga aylantirish yo'li.
Nega uyqu qo'shish tayyorlik tekshiruvi emas
Uyqu skriptni kechiktiradi va poyga oynasini siljitadi. Tez kunda vazifa muvaffaqiyatli bo'ladi; sekin kunda u yana muvaffaqiyatsiz bo'ladi, va kechikish ishlayotgandek ko'ringani uchun xatoni qayta hosil qilish qiyinlashadi. Faqat yengil yuklama ostida ishlaydigan kechikish — tasodif, tuzatish emas.
Agar bog'liqlik marshrut bo'lsa, marshrutlarni o'rnatishga mos keladigan ilgakdan foydalaning. Agar bog'liqlik tunnel orqasidagi xizmat bo'lsa, o'sha aniq shartni kutadigan va u hech qachon kelmasa aniq muvaffaqiyatsiz bo'ladigan cheklangan tekshiruvdan foydalaning.
Muvaffaqiyatsizlikni aniq qoldiring. Haqiqiy ishi muvaffaqiyatsiz bo'lgan holda nol bilan chiqadigan ilgak — muvaffaqiyatsiz bo'ladigan ilgakdan yomonroq, chunki xizmat menejeri muvaffaqiyat deb yozadi va boshqa hech kim qaramaydi. Skriptning o'zidan keladigan bitta jurnal satri buni halol saqlashning eng arzon yo'li.
Tozalash va qayta ulanish ham xuddi shunday e'tiborga loyiq
Umumiy holatni o'zgartiradigan skriptga mos bekor qilish yo'li kerak. Ilgak qo'shgan marshrutlar, rezolver yozuvlari va xavfsizlik devori belgilari idempotent va qaytariladigan bo'lishi kerak, aks holda qayta ulanish ikkinchi nusxani birinchisining ustiga qo'yadi.
Qayta ulanishlar ilgaklarni to'liq xizmat ishga tushishidan ko'proq ishga tushirishi mumkin. Sessiyani qayta tiklaydigan doimiy interfeys up va route-up tsiklini yana qo'zg'atishi mumkin, shuning uchun har bir yuklashda bitta bajarilishni nazarda tutadigan skript oxir-oqibat noto'g'ri ishlaydi. Bir kunlik tebranish jurnalida bajarilishlarni sanab, u haqiqatan qanchalik tez-tez ishga tushishini ko'ring. Keyin skriptni shuncha marta ishga tushirish uchun xavfsiz qiling.
Muvaffaqiyatsiz bo'lgan hayot siklini sinang, keyingi buyruqni emas. Yuklash yoki qayta ulanishni qayta hosil qiling, ilgakning ishlashini kuzating va vazifa haqiqatan ishga tushgan lahzada muvaffaqiyatli bo'lganini tasdiqlang. Keyin interaktiv shelldan olingan muvaffaqiyat bog'liqlik haqida dalil, ishga tushish yo'li ishlayotganiga dalil emas.
Har bir vazifa bog'liq bo'lgan hodisani nomlang, keyin vazifani o'sha hodisaga bog'lang. Qolgan hamma narsa tekshiruvga o'xshab ko'rinadigan kechikish.