OpenVPN qayta ishga tushirilgandan so’ng IPv6 chiqishi o’ladi: prefiks egaligini tekshiring
Tunnel qayta yaratilgandan so’ng IPv6 o’ladi. Biror narsani qayta ishga tushirishdan oldin vakolat berilgan prefiks, mijoz manzillari va qaytish marshruti kimga tegishli ekanini hal qiling.
IPv6 trafikni o’tkazishni to’xtatadi aynan OpenVPN qayta ishga tushgan lahzada, IPv4 esa ishlashda davom etadi. Tunnel interfeysi qayta yaratildi va uning IPv6 holatini boshqargan boshqa narsa yo manzilni, yo prefiksni yetib borish mumkin qiladigan marshrutni yo’qotdi. Holatning uchta alohida qismi ishtirok etadi va har birining egasi boshqacha: provayderning vakolat bergan prefiksi va uning umri, VPN mijozlariga berilgan manzillar, va o’sha mijoz prefiksini serverga qaytaradigan yuqori marshrut. Har qanday daemonga tegishdan oldin har birining egasini aniqlang, chunki noto’g’risini qayta ishga tushirish muammoni bir kunga yashiradi va keyingi ulanishda qaytaradi.
IPv6 holatining uchta qismi, uchta egasi
| State | Typical owner | What breaks when it is wrong |
|---|---|---|
| Delegated prefix and lifetime | Upstream router or provider via DHCPv6-PD | Clients keep addresses that the upstream no longer routes |
| Client addresses inside the tunnel | OpenVPN server config or a delegation daemon | No global address, or an address outside the routed prefix |
| Return route for the client prefix | Upstream router, or the server's own routing table | Outbound works, replies never arrive |
Tunnel ichidagi global qamrovli manzil o’zi bilan yetarli emas. Yuqori routerlar o’sha prefiksni baribir VPN serveriga qaytarishi kerak va ular buni faqat serverda tasodifan undan bitta manzil borligi uchun qilmaydi.
Shuning uchun jamoat /64 ni tunnel hovuziga ko’chirish ham xavfli. Serverga yo’naltirilgan prefiks yuqori tomon on-link deb hisoblaydigan prefiks bilan bir xil emas, qo’shnilarni aniqlash bu bo’shliqni to’ldirmaydi.
Biror narsani o’zgartirishdan oldin server holatini o’qing
Holatni ikki marta qayd eting: bir marta IPv6 ishlab turganda, bir marta qayta ishga tushirilgandan keyin, so’ng solishtiring. Faqat o’qish uchun ko’rinishlar yetarli va texnik xizmat oynasida hech qanday xarajat tug’dirmaydi:
ip -6 addr show
ip -6 route show table all
ip -6 rule show
sysctl net.ipv6.conf.all.forwarding
Uchta aniq farqni izlang: yo’qolgan marshrut, eskirgan yoki yaroqsiz umrga o’tgan manzil, va qayta vakolatlashdan keyin o’zgargan, ammo VPN konfiguratsiyasi hali eskisini e’lon qilayotgan prefiks.
Agar manzil yo’qolgan bo’lsa, lekin prefiks o’zgarmagan bo’lsa, uni tayinlaydigan daemon interfeysni boshqarishni to’xtatgan. Agar prefiks o’zgargan bo’lsa, lekin manzillar yo’q bo’lsa, mijoz konfiguratsiyasi eskirgan. Ikkala nosozlik brauzerdan bir xil ko’rinadi va ularning umumiy jihati yo’q.
dhcpcd tunnelni boshqarishi kerakmi, hal qiling
dhcpcd interfeyslarni aniqlay oladi va DHCPv6 prefiksining qismlarini quyi interfeyslarga vakolatlashi mumkin, konfiguratsiyasi esa vakolatlash maqsadlarini aniq nomlashi mumkin. Aniq maqsad bo’lmasa, uning hujjatlashtirilgan xatti-harakati boshqa interfeyslarni qamrab olishi mumkin va shu tariqa tunnel hech kim rejalashtirmagan manzilga ega bo’ladi.
Ikki shart sizni tunnelning statik manzillashini OpenVPN ga qoldirishga undashi kerak: server o’z konfiguratsiyasida qat’iy manzillarni itarib yuboradi va qayta ulanishda tunnel nomi o’zgaradi. Ikkalasi ham to’g’ri bo’lsa, tunnelni vakolatlash daemonidan ataylab chiqarib tashlang, sababini aytadigan izoh bilan.
Agar aksincha tunnelga vakolatlash ataylab bo’lsa, prefiks o’zgarishini qayta ishlashni joriy qiling. Bu vakolat berilgan prefiks yoki uning umri o’zgarganda javob berishni, server e’lon qilgan mijoz prefiksini yangilashni va marshrutni yana qo’shishni anglatadi. O’sha dizaynda interfeysni chiqarib tashlash yangi prefiksni biladigan yagona komponentni olib tashlaydi.
dhcpcd ni qayta ishga tushirish holatni qayta yaratgani uchun nimanidir tuzatgandek ko’rinishi mumkin, ammo u siz o’ylamagan interfeyslarning konfiguratsiyasini ham yangilaydi yoki qaytarib oladi. Bunday tiklanish uni har bir VPN qayta ishga tushirilgandan keyin majburiy qilmaydi. U dalil sifatida ishlatgan hisoblagichlarni ham nolga qaytaradi. Siz haqiqatan o’zgartirgan interfeysni maqsadli qayta yuklashni afzal ko’ring.
IPv6 ni IPv4 NAT dan alohida tekshiring
Yo’naltirish yoqilganini va yuqori marshrut haqiqiy mijoz prefiksiga ishora qilishini tasdiqlang, so’ng yangi ruxsat etilgan IPv6 ulanishini yarating. Mijozning o’z IPv6 marshrutlar jadvalini ham tekshiring, chunki ommaviy manzilni ko’rsatgan mijoz uning so’rovi tunneldan foydalanganini isbotlamaydi.
IPv4 maskalash boshqa muammoni hal qiladi: xususiy manbalar uchun qaytish yo’lini. U qaytarib olingan IPv6 prefiksi uchun hech narsa qilmaydi va uni qo’shish IPv6 ni qaytarmaydi.
Egalik yozuvi bilan yakunlang: qaysi komponent prefiksni vakolatlaydi, qaysi biri mijoz manzillarini tayinlaydi, qaysi biri qaytish marshrutini ushlab turadi va qayta ulanishda har biriga nima bo’ladi. Runbookdagi to’rt satr keyingi odamni muhim daemonni topish uchun uchta daemonni qayta ishga tushirishdan xalos qiladi.