OpenVPN laboratoriyasiga xususiy IPv6 qo'shish, bir vaqtda bitta nazorat nuqtasi
Tashqi transportni IPv4 da qoldirib, ichki rejani kengaytiring. Beshta nazorat nuqtasi: prefikslar, yordamchi, marshrut turtkisi, uzatish va mijoz tomonidagi sinov.
Sizda allaqachon IPv4 orqali ulanib, server orqasidagi xususiy IPv4 ish yuklamasiga yetib boradigan mijoz bor. Maqsad tashqi transportga tegmasdan o'sha tunneldan xususiy IPv6 ish yuklamasiga yetish. Bu tartib muhim: tashqi yo'l IPv4 bo'lib qoladi va faqat ichki manzil rejasi, mijoz marshruti hamda serverdan LAN ga qaytish yo'li o'zgaradi. Beshta nazorat nuqtasi, har birida davom etishdan oldin ko'rish kerak bo'lgan aniq narsa bor.
Birinchi nazorat nuqtasi: allaqachon ishlayotgan ulanish
Biror narsa qo'shishdan oldin mijozni ulang va IPv4 yo'lini tasdiqlang. Ishlayotgan tunnel yangi IPv6 xatosini eski ulanish muammosidan ajratadigan tayanch chiziq beradi. Shuningdek, qaysi server nusxasini haqiqatda tahrirlayotganingizni ham aytadi.
Siz allaqachon tayanadigan hovuz, topologiya va turtib yuborilgan marshrutlarni yozib qo'ying. IPv6 ishi bu konfiguratsiyani kengaytiradi; almashtirmaydi.
Ikkinchi nazorat nuqtasi: ichki prefikslarni tanlang
Sayt uchun bitta ULA /48 tanlang va undan ikkita /64 kesib oling: biri tunnel mijozlari uchun, biri IPv6 ish yuklamasi bo'lgan LAN segmenti uchun. Namuna prefiksni ko'chirish o'rniga 40 bitli global ID yarating, va ikkala subnetworkni ham sayt allaqachon marshrutlaydigan har bir tarmoq bilan solishtiring:
Outer transport: IPv4 OpenVPN UDP
IPv4 pool: 10.90.0.0/24
IPv6 VPN pool: fd73:93bc:b6e9:77::/64
IPv6 LAN: fd73:93bc:b6e9:60::/64
Server LAN IPv6: fd73:93bc:b6e9:60::1Ikkita mustaqil /64 mijoz hovuzining LAN segmentidan kesilishiga yo'l qo'ymaydi, bu keyinchalik qaytish marshrutini yozganda muhim. Yuqoridagi qiymatlar bitta ishlangan namuna, qayta ishlatiladigan prefiks emas.
Uchinchi nazorat nuqtasi: yordamchi va marshrut turtkisini qo'shing
Biror narsa qo'shishdan oldin serverning joriy konfiguratsiyasini o'qing. Mavjud direktivaning ikkinchi nusxasi birinchisi bilan qo'shilmaydi va chiqqan xato IPv6 ni emas, direktivani nomlaydi. Mavjud IPv4 yordamchisi bo'lsa, ikki qator uni kengaytiradi. Har biri boshqa savolga javob beradi:
server-ipv6 fd73:93bc:b6e9:77::/64
push "route-ipv6 fd73:93bc:b6e9:60::/64"Birinchisi interfeys va mijoz hovuzini sozlaydigan qulay yordamchi. Ikkinchisi mijoz yetib borishi kerak bo'lgan LAN manzilini nomlaydi. Mijozga IPv6 manzili berish unga server orqasida qanday tarmoqlar borligini aytmaydi, shuning uchun ikkala qator kerak.
Yordamchi statik IPv6 hovuzi yoki nopool bilan birga mavjud bo'lmaydi. Agar joylashtirish manzillarni ataylab statik taqsimlasa, bu siyosatni saqlang va namunaga moslashish uchun siyosatni o'chirish o'rniga IPv6 muqobilini aniq loyihalang.
To'rtinchi nazorat nuqtasi: uzatish va javob marshruti
Serverda IPv6 uzatishni tizimning o'z konfiguratsiya egasi orqali yoqing, unutib qo'yadigan bir martalik ish vaqti yozuvi bilan emas. Ish vaqti shakli tez sinov uchun foydali. Doimiy konfiguratsiya distributivning tarmoq egasi o'qiydigan drop-in faylida bo'ladi:
sysctl -w net.ipv6.conf.all.forwarding=1Uzatish paketlarni marshrutlashdan tashqari xostning IPv6 xatti-harakatini o'zgartiradi. Mijoz sifatida router e'lonlarini qabul qilgan xost uzatishni boshlashi bilanoq xuddi shunday qabul qilishni to'xtatadi. Shuning uchun IPv6 yuqori kanali RA ga bog'liq mashina o'sha kanal uchun aniq rejaga muhtoj.
Keyin LAN ga tunnel hovuziga qaytish marshrutini bering. Ish yuklamasining IPv6 shlyuzi VPN serveri emas, LAN routeri, shuning uchun marshrut o'sha routerda bo'lib, serverning LAN manziliga ishora qiladi:
ip -6 route add fd73:93bc:b6e9:77::/64 via fd73:93bc:b6e9:60::1Bog'lanishga kerakli ICMPv6 turlarini, yo'l-MTU javobini ham qo'shib saqlang. IPv4 xavfsizlik devori qoidasi IPv6 qoidasini anglatmaydi va IPv6 ni butunlay bloklash qo'shnilarni aniqlashni marshrut nosozligidek ko'rinadigan tarzda buzadi.
Beshinchi nazorat nuqtasi: mijozni o'qing, keyin sinab ko'ring
Mijozni qayta ulang va serverning yordamchi manzilidan taxmin qilish o'rniga u haqiqatda olgan manzillarni o'qing. Interfeys ro'yxati ikkala oilani bitta qurilmada ko'rsatadi:
ip -6 addr show tun0
ip -6 route get fd73:93bc:b6e9:60::20Tunnelni tanlagan marshrut mijoz paketni qayerga yuborishni bilishini isbotlaydi. Ammo server uni uzatishini, LAN routerida qaytish marshruti borligini yoki ilovaga javob berishga ruxsat borligini isbotlamaydi.
Ilovaning o'zini har bir oilada navbat bilan sinab ko'ring, so'ng qayta ulanishdan va xostni qayta ishga tushirishdan keyin takrorlang. Faqat qayta yuklashgacha yashaydigan marshrut yoki sysctl sinov, loyiha emas.
AAAA yozuvini IPv6 yo'li boshdan oxirigacha javob bergandan keyingina e'lon qiling. IPv4 orqali so'ralgan DNS hali ham IPv6 manzilini qaytarishi mumkin, shuning uchun hal qilinadigan nom biror narsa tinglayotganiga dalil emas. RFC 4193 ULA qo'llanmasi bu prefikslarni nusxa emas, sizniki qiladigan global ID yaratishni qamrab oladi.