Bosh sahifa Wiki NAT64

NAT64

NAT64IPv6-only clientlarga IPv4 serverlar bilan aloqa qilish imkonini beradigan manzil va protokol tarjima mexanizmi.

NAT64 gateway IPv6 paketdagi destination manzil ichidan IPv4 manzilni ajratadi, paketni IPv4 formatga o‘giradi va qaytish trafikini yana IPv6ga tarjima qiladi.

NAT64 odatda DNS64 bilan birga ishlaydi. DNS64 IPv4-only server uchun sun’iy IPv6 manzil yaratadi.

Muammo

IPv6 host IPv4 manzilga to‘g‘ridan-to‘g‘ri packet yubora olmaydi.

Masalan:

  • client faqat 2001:db8::/64 tarmog‘ida;
  • server faqat 198.51.100.20;
  • clientda IPv4 yo‘q.

NAT64 va DNS64 ular orasida tarjima qiladi.

NAT64 prefiksi

NAT64 IPv4 manzilni maxsus IPv6 prefiks ichiga joylaydi.

Well-known prefix:

64:ff9b::/96

IPv4 192.0.2.33 shu prefiks bilan quyidagiga o‘xshash IPv6 manzilga aylantiriladi:

64:ff9b::c000:221

Oxirgi 32 bit IPv4 manzilning hexadecimal ko‘rinishi.

Operator network-specific prefix ham ishlatishi mumkin.

DNS64

Client example.com uchun AAAA record so‘raydi.

Agar authoritative DNSda:

bo‘lsa, DNS64 resolver A recorddagi IPv4 manzilni NAT64 prefiks bilan birlashtirib synthetic AAAA javob yaratadi.

Jarayon:

A: 198.51.100.20
NAT64 prefix: 64:ff9b::/96
Synthetic AAAA: 64:ff9b::c633:6414

Client bu manzilga oddiy IPv6 packet yuboradi.

Paket oqimi

  1. IPv6-only client synthetic IPv6 manzilga ulanadi.
  2. Router packetni NAT64 gatewayga yo‘naltiradi.
  3. Gateway embedded IPv4 manzilni ajratadi.
  4. Source IPv6 manzil IPv4 pooldagi manzil va portga bog‘lanadi.
  5. IPv4 packet serverga yuboriladi.
  6. Javob NAT64 gatewayga qaytadi.
  7. Gateway uni IPv6 packetga aylantiradi.
  8. Client javobni oladi.

Ilova ko‘pincha tarjimani sezmaydi.

Stateful NAT64

Stateful NAT64 har ulanish uchun state saqlaydi.

State tarkibi:

Ko‘plab IPv6 clientlar kichik IPv4 pooldan foydalanishi mumkin. Bu NAT44 PATga o‘xshaydi.

Stateless NAT64

Stateless NAT64 algoritmik mapping ishlatadi va per-flow state talab qilmaydi.

IPv6 manzil va IPv4 manzil o‘rtasida qayta tiklanadigan moslik bo‘ladi.

Stateless variant:

  • 1:1 mapping;
  • data center;
  • aniq adreslash;
  • katta scale

uchun ishlatilishi mumkin.

U port translation bilan ko‘p clientni bitta IPv4ga siqmaydi.

SIIT

Stateless IP/ICMP Translation IPv4 va IPv6 headerlari orasidagi stateless tarjima algoritmlarini belgilaydi.

NAT64 SIIT tamoyillaridan foydalanadi.

Tarjima quyidagilarni o‘z ichiga oladi:

ICMP tarjimasi

IPv4 ICMP va ICMPv6 xabar turlari bir xil emas.

NAT64 quyidagilarni moslashtiradi:

Path MTU Discovery ishlashi uchun ICMP tarjimasi muhim.

Checksum

TCP va UDP checksum pseudo-header ichida source va destination IP manzillarni hisobga oladi.

NAT64 manzillarni o‘zgartirgani sabab checksumni ham moslashtiradi.

IPv4 UDP checksum nol bo‘lishi mumkin, IPv6 UDP checksum esa odatda majburiy. Tarjimon bunday paketlarni maxsus qoidalar bilan qayta ishlaydi.

Fragmentatsiya

IPv4 va IPv6 fragmentatsiya modeli farq qiladi.

IPv4 router yo‘lda fragmentlashi mumkin. IPv6da fragmentatsiyani faqat sender bajaradi.

NAT64:

ni mos tarjima qilishi kerak.

Fragmentlar security va state trackingni murakkablashtiradi.

IPv4 literal muammosi

DNS64 faqat DNS so‘roviga ta’sir qiladi.

Ilova URL ichida to‘g‘ridan-to‘g‘ri IPv4 literal ishlatsa:

http://198.51.100.20/

DNS so‘rovi bo‘lmaydi va synthetic AAAA yaratilmaydi.

Yechimlar:

  • ilovani IPv6ga moslash;
  • CLAT;
  • platformaga xos address synthesis API;
  • hostname ishlatish.

464XLAT

464XLAT mobil tarmoqlarda keng qo‘llanadigan arxitektura.

Ikki qism:

  • CLATclient tomonda IPv4 packetni IPv6ga stateless tarjima qiladi;
  • PLAT — operator tarmog‘idagi stateful NAT64.

IPv4-only ilova lokal IPv4 socket ishlatadi. CLAT paketni IPv6ga aylantiradi. PLAT internetdagi IPv4 serverga uzatadi.

Bu IPv6-only mobil tarmoqda eski ilovalarni ishlatadi.

DNSSEC bilan munosabat

DNS64 resolver authoritative A recorddan synthetic AAAA yaratadi.

DNSSEC end-to-end tekshiruvchi client synthetic AAAA authoritative zone tomonidan imzolanmaganini ko‘rishi mumkin.

DNS64 resolver odatda DNSSEC validationni o‘zi bajaradi va synthesis ma’lumotini tegishli tarzda qaytaradi.

Client-side validation va DNS64 kombinatsiyasi maxsus e’tibor talab qiladi.

IPv6 native server

Serverda haqiqiy AAAA record bo‘lsa, DNS64 odatda synthetic AAAA yaratmaydi.

Client native IPv6 orqali bevosita serverga ulanadi.

NAT64 faqat IPv4-only destination uchun ishlaydi.

Bu IPv6 kontentni ustun qo‘yadi.

Port exhaustion

Stateful NAT64 ko‘p client uchun cheklangan IPv4 pool va portlardan foydalanadi.

Har tashqi IPv4da TCP va UDP port maydoni cheklangan.

Port exhaustionga ta’sir qiluvchi omillar:

  • concurrent connection;
  • destination;
  • timeout;
  • port allocation;
  • subscriber quota;
  • IPv4 pool hajmi.

Monitoring tashqi port sarfini kuzatadi.

Log va tracing

Bir ulanishni aniqlash uchun:

kerak.

Carrier-scale muhitda NAT log hajmi katta bo‘ladi.

Application Layer Gateway

Ba’zi protokollar IP manzilni payload ichida uzatadi.

Misollar:

Oddiy header tarjimasi yetarli bo‘lmasligi mumkin.

ALG payloadni o‘zgartiradi, lekin murakkablik va xavfsizlik muammosi keltiradi.

NAT64 cheklovlari

NAT64 quyidagilarni avtomatik hal qilmaydi:

Ilovalar hostname va standart transportdan foydalansa yaxshi ishlaydi.

Diagnostika

NAT64 ishlamasa:

tekshiriladi.

AAAA javobi bor, lekin ulanish ishlamasa, synthetic manzil NAT64 prefixga mosligi va gateway route’i tekshiriladi.

Bog‘liq tushunchalar

IPv6-only, IPv4, DNS64, Synthetic AAAA, Stateful NAT64, Stateless NAT64, SIIT, 464XLAT, CLAT, PLAT, ICMP translation