Internetdagi qurilmalar soni IPv4 manzillari sig'imidan allaqachon oshib ketgan, shuning uchun mobil operatorlar va provayderlar asta-sekin IPv6'ga o'tmoqda. Ko'p foydalanuvchilar hozircha ikkala protokoldan ham foydalanadi va saytingiz faqat IPv4'da bo'lsa ham ochiladi. Lekin IPv6'ni to'g'ri yoqish kelajakka tayyorgarlik bo'lib, ayrim tarmoqlarda ulanishni soddalashtiradi. Noto'g'ri yoqilgan IPv6 esa saytni bir qism foydalanuvchilar uchun sekin yoki umuman ochilmaydigan qilib qo'yishi mumkin, shuning uchun bu ishni bosqichma-bosqich bajarish muhim.
IPv6 manzil qanday ko'rinadi va DNS'da qanday yoziladi
IPv6 manzili 128 bitli bo'lib, ikki nuqta bilan ajratilgan sakkizta o'n oltilik guruhdan iborat. Ketma-ket nollar qisqartiriladi, masalan 2001:db8:10::25. Bu maqolada 2001:db8::/32 diapazoni ishlatilgan, u faqat hujjatlar va misollar uchun ajratilgan va real tarmoqda uchramaydi. IPv4 uchun DNS'da A yozuvi ishlatilsa, IPv6 uchun AAAA yozuvi qo'shiladi. Ikkala yozuv bir vaqtda mavjud bo'lishi mumkin va bu "dual-stack" deb ataladi: mijoz o'zi qaysi protokol orqali ulanishni tanlaydi.
example.uz. 3600 IN A 203.0.113.10
example.uz. 3600 IN AAAA 2001:db8:10::25
www.example.uz. 3600 IN CNAME example.uz.
Birinchi qadam: server haqiqatan IPv6'ga egami
AAAA yozuvi qo'shishdan oldin serverda ishlaydigan, tashqaridan kirish mumkin bo'lgan IPv6 manzil borligiga ishonch hosil qiling. Faqat fe80:: bilan boshlanadigan lokal manzil yetarli emas, u faqat bir segment ichida ishlaydi. Global manzil odatda 2 yoki 3 bilan boshlanadi. Quyidagi buyruqlar manzilni va tashqi ulanishni tekshiradi:
ip -6 addr show scope global
ping -6 -c 3 2001:4860:4860::8888
curl -6 -I https://example.uz
Agar server umumiy xostingda bo'lsa, IPv6 mavjudligi xosting provayderiga bog'liq. sayt.uz xostingi yoki VPS uchun bu imkoniyatni kabinetdan yoki texnik yordam orqali aniqlash mumkin. Manzil bo'lmasa, AAAA yozuvini umuman qo'shmang: noto'g'ri yoki ishlamaydigan AAAA yozuvi uning yo'qligidan ancha yomonroq.
Veb-serverni IPv6'da tinglashga sozlash
Ko'p veb-serverlar standart holatda faqat IPv4 portlarini tinglaydi. Nginx'da har bir server blokiga IPv6 uchun alohida listen qatori qo'shiladi. Bu qatorlarsiz AAAA yozuvi ishlasa ham, server IPv6 ulanishlarini qabul qilmaydi va brauzer kutib qoladi.
server {
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name example.uz www.example.uz;
# ...
}
O'zgarishdan keyin nginx -t bilan sintaksisni tekshirib, so'ng systemctl reload nginx bajaring. ss -tlnp | grep ':443' buyrug'i natijasida [::]:443 qatori ko'rinsa, server IPv6'da tinglayapti. Apache'da esa Listen 443 ko'rsatmasi odatda ikkala protokolni ham qamrab oladi, lekin virtual xostlar aniq IPv4 manzilga bog'langan bo'lsa, ularga IPv6 manzilni ham qo'shish kerak bo'ladi.
Xavfsizlik devori va boshqa unutiladigan joylar
Eng ko'p uchraydigan xato shuki, IPv4 uchun sozlangan firewall qoidalari IPv6'ga avtomatik o'tmaydi. iptables va ip6tables alohida qoidalar to'plamiga ega, shuning uchun 80 va 443 portlarni IPv6 uchun ham ochish kerak. UFW ishlatilsa, /etc/default/ufw faylida IPV6=yes turganini tekshiring. Teskari holat ham xavfli: IPv4'da yopilgan ma'lumotlar bazasi yoki SSH porti IPv6'da ochiq qolib ketishi mumkin.
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ip6tables -L -n
Ilova darajasida ham tekshiradigan narsalar bor. IP manzil bo'yicha ruxsat berish ro'yxatlari, masalan admin panelga faqat ofis IP'sidan kirish, IPv6 manzillarni hisobga olmasa, ofis xodimlari IPv6 orqali kelganda bloklanadi. Ma'lumotlar bazasida IP saqlanadigan ustun VARCHAR(15) bo'lsa, IPv6 manzil sig'maydi, kamida 45 belgi kerak. Log tahlil qiluvchi skriptlar va fail2ban kabi vositalar ham IPv6 manzillarni to'g'ri ajrata olishi kerak.
Pochta: SPF, PTR va ehtiyotkorlik
Agar pochta serveri ham IPv6'dan xat yuborsa, SPF yozuviga ip6: mexanizmi qo'shiladi, aks holda qabul qiluvchi server xatni shubhali deb belgilaydi. Bundan tashqari, IPv6 manzil uchun teskari DNS, ya'ni PTR yozuvi sozlangan bo'lishi kerak: yirik pochta xizmatlari IPv6 orqali kelgan xatlarga PTR va autentifikatsiya bo'yicha ancha qattiq talab qo'yadi. PTR sozlash imkoni bo'lmasa, pochtani hozircha faqat IPv4 orqali yuborgan ma'qul.
example.uz. 3600 IN TXT "v=spf1 ip4:203.0.113.10 ip6:2001:db8:10::25 -all"
Tekshirish tartibi va real misol
Toshkentdagi bir xususiy klinika sayti VPS'ga ko'chirilganda administrator IPv6'ni quyidagi tartibda yoqdi. Avval serverda global manzil borligini va tashqi tarmoqqa ping o'tishini tekshirdi. Keyin Nginx'ga listen [::] qatorlarini qo'shdi va firewall'da portlarni ochdi. Shundan so'ng AAAA yozuvini qisqa TTL bilan, masalan 300 soniya, qo'shdi va IPv6 ulanishi bor tarmoqdan tekshirdi. Bir necha kun muammo bo'lmagach, TTL odatiy qiymatga qaytarildi.
dig AAAA example.uz +short
curl -6 -sS -o /dev/null -w '%{http_code}\n' https://example.uz
curl -4 -sS -o /dev/null -w '%{http_code}\n' https://example.uz
Ikkala curl buyrug'i ham bir xil javob kodini qaytarishi kerak. SSL sertifikati domen nomiga beriladi, IP manzilga emas, shuning uchun IPv6 qo'shilishi bilan sertifikatni qayta chiqarish shart emas. Lekin Let's Encrypt HTTP tekshiruvi AAAA yozuvi bor domenga IPv6 orqali ham murojaat qilishi mumkin, shuning uchun sertifikat yangilanishi ishlashi uchun 80-port IPv6'da ham ochiq bo'lishi kerak. Domen DNS yozuvlarini sayt.uz kabinetidagi DNS bo'limida boshqarish mumkin.
Qachon IPv6'ni vaqtincha o'chirib qo'yish kerak
Agar AAAA yozuvi qo'shilgandan keyin ba'zi foydalanuvchilar sayt "uzoq o'ylab qoladi" deb shikoyat qilsa, IPv6 yo'nalishida muammo bo'lishi mumkin. Zamonaviy brauzerlar ikkala protokolni parallel sinab, tezrog'ini tanlaydi, lekin eski ilovalar va ayrim API mijozlari bunday qilmaydi. Muammoning sababi aniqlanguncha AAAA yozuvini olib tashlash eng xavfsiz yo'ldir, chunki IPv4 orqali sayt baribir ishlashda davom etadi.