Nima uchun GCP VMingiz OpenVPN IPv6 puliga javob bera olmaydi
OpenVPN ichidagi manzil Google Cloud quyi tarmog‘i emas. Pulga VPC marshruti qo‘shing, uzatishni yoqing va internet chiqishini alohida saqlang.
IPv6 VPN mijozingiz ish yukiga yetib boradi, ish yuki tunnel ichiga javob beradi, ammo javob hech qachon yetib kelmaydi. Birinchi instinkt — firewall yoki tunnelni ayblash, va odatda ikkalasi ham aybdor emas. OpenVPN beradigan manzil faqat tunnel ichida mavjud bo‘lgan ichki tarmoqdir; Google Cloud fd42:90::/64 ma’lum bir VM orqasida bo‘lishi kerakligini siz aytmaguningizcha bilmaydi.
Bu faktni ikki alohida tizim o‘rganishi kerak va ulardan faqat bittasi OpenVPN. VPC biror narsani qaytarishdan oldin marshrutga muhtoj, VM esa kelgan narsani uzatishga ruxsat berilishi kerak. Har qanday yarmida xato qilsangiz, alomat bir xil ko‘rinadi.
Pul — ichki tarmoq, quyi tarmoq emas
OpenVPN siz tanlagan diapazondan IPv6 manzillarini bera oladi va bu diapazon tunnelning ikki uchi kelishadigan xayoliy narsadir. Bu Google Cloud quyi tarmog‘i emas, VPC quyi tarmoqlari ro‘yxatida ko‘rinmaydi va VM tarmoq interfeysi bu manzillarni olmaydi. Shuning uchun mijozga javob beradigan ish yuki tarmoq marshrutlanmaydigan deb hisoblaydigan manzilga paket yuboradi.
Pulni VPC allaqachon ishlatadigan har bir diapazondan tashqarida saqlang. Uni boshqa tunnellaringiz orqasidagi diapazonlardan ham tashqarida saqlang. Qoplanish toza marshrutlash xatosini faqat yuk ostida ko‘rinadigan davriy xatoga aylantiradi.
fd42:90::/64 kabi noyob mahalliy manzillash bu ichki tarmoq uchun oqilona tanlov. Prefiks dizayn tabiatan xususiy ekanini ham eslatadi. ULA pulidagi hech narsa uni ochiq internetda qonuniy manba qilmaydi.
VPCga manzil va keyingi qadam bering
Javobga manzili pul, keyingi qadami VPN VM bo‘lgan VPC marshruti kerak. Joriy statik marshrut hujjatlari IPv6 manzil diapazonlarini qamrab oladi va qaysi keyingi qadam turlari mos kelishini sanab o‘tadi, shuning uchun eski IPv4 misolini ko‘chirish o‘rniga topologiyangiz uchun qo‘llab-quvvatlanadigan shaklni tekshiring.
Keyingi qadam manzili haqiqatda instansning bulut interfeysiga tayinlangan bo‘lishi kerak. VMning ichki tunnel manzili bu manzil emas. Baribir ishlatish toza o‘rnatiladigan va hech qachon paketga mos kelmaydigan marshrut yaratadi. Marshrutni yozishdan oldin interfeyslar ro‘yxatini o‘qing.
Marshrut ustuvorligi yozuvning o‘zi kabi muhim. Quyi tarmoq marshrutlari siz qo‘shgan maxsus marshrutlardan aniqroq, shuning uchun mavjud quyi tarmoq diapazonidan kesilgan pul maxsus marshrut qanday yozilganidan qat’i nazar, quyi tarmoq marshrutiga yutqazadi. Alohida pul tanlang, so‘ng marshrut instansni keyingi qadam va to‘g‘ri manzil prefiksi sifatida ko‘rsatishini tasdiqlang:
gcloud compute routes create vpn6-return \
--network=vpn-vpc \
--destination-range=fd42:90::/64 \
--next-hop-instance=openvpn-vm \
--next-hop-instance-zone=europe-west1-bUzatishni ikki marta yoqish kerak
Marshrut paketni instansga yetkazadi. U instansni o‘ziga manzillanmagan narsani uzatishga tayyor qilmaydi va bu ruxsat ikki darajada mavjud.
Bulut tomoniga instansning uzatish qobiliyati yoqilgan bo‘lishi kerak; bu VMga o‘zi egalik qilmaydigan manzillar uchun trafikni qabul qilib, uni uzatishga imkon beradigan sozlama. Mehmon tomoniga o‘zining IPv6 uzatishi kerak, chunki yadro paket kelgandan keyin alohida qaror qabul qiladi. Bitta javob tunneldan o‘tishidan oldin ikkalasi ham yoniq bo‘lishi kerak.
sysctl -w net.ipv6.conf.all.forwarding=1Keyin firewall qoidalari ichki manba diapazonini ikki yo‘nalishda ham ruxsat berishi kerak. Google Cloud dekapsulyatsiya qilingan paketni baholaydi, shuning uchun faqat VPC quyi tarmog‘ini qamrab oladigan qoida tunnel allaqachon muvaffaqiyatli bo‘lgandan keyin pul trafigini tashlab yuboradi. Pulni kirish qoidasiga manba diapazoni sifatida qo‘shing va hech qanday maxsus chiqish siyosati javobni to‘smasligini tekshiring. Yashirin ruxsat qoidasi standart holatni qamrab oladi, qo‘lda yozilgan chiqish qoidasi esa yo‘q.
OpenVPNga kim nimaga egalik qilishini ayting
OpenVPN mijozga, o‘sha mijoz manzilga egalik qilishini bilganda uzatadi. Puldagi mijoz manzillarini pulni belgilaydigan server direktivasi boshqaradi, ammo mijoz orqasidagi quyi tarmoq boshqa tartib va o‘sha mijoz uchun aniq egalik yozuvini talab qiladi.
Ikkalasini aralashtirish serverga ping ishlaydigan, ammo uning orqasida hech narsa ishlamaydigan tunnel hosil qiladi. Qaysi holatni qurayotganingizni hal qiling, so‘ng ikkinchi push qatorini qo‘shib umid qilish o‘rniga mos yozuvni yozing.
Internet chiqishini bu dizayndan tashqarida saqlang
Xususiy kirish va internetga kirish alohida rejalar. ULA puli marshrutlash va uzatish kelishilgandan keyin tunnel orqali VPC ish yuklariga yetib borishi mumkin va o‘sha pulning VPC orqali ochiq internetga hech qanday yo‘li yo‘q, chunki bulut shlyuzi o‘zboshimchalik bilan tunnel manbasini o‘ziniki deb qabul qilmaydi.
Agar mijozlarga internet chiqishi ham kerak bo‘lsa, buning uchun qo‘llab-quvvatlanadigan manzillash va marshrutlash dizaynini rejalashtiring, uni xususiy puldan mustaqil saqlang va ikki yo‘lni alohida sinab ko‘ring. Ishlaydigan bitta yo‘l ikkinchisi haqida hech narsa demaydi va ikkalasini aralashtirgan dizayn buzilgan tunnelga o‘xshab muvaffaqiyatsizlikka uchraydi.