Bosh sahifa Wiki NAT

NAT

NAT — tarmoq paketidagi IP manzilni, ayrim hollarda esa transport portini boshqa qiymatga almashtiradigan mexanizm. Uning to‘liq nomi Network Address Translation, ya’ni tarmoq manzillarini tarjima qilish hisoblanadi.

NAT ko‘pincha lokal tarmoqdagi xususiy IPv4 manzillarni internetdagi bitta yoki bir nechta ommaviy IP manzil orqali ishlatish uchun qo‘llanadi. Uy routeri, korporativ firewall yoki operator qurilmasi ichki va tashqi tarmoqlar orasidan o‘tadigan paketlarni tekshiradi, kerakli maydonlarni o‘zgartiradi va javob paketini asl qurilmaga qaytarish uchun holat jadvalini yuritadi.

NATning vazifasi

IPv4 manzillar soni cheklangan. Lokal tarmoqlarda esa 10.0.0.0/8, 172.16.0.0/12 va 192.168.0.0/16 kabi xususiy diapazonlardan foydalaniladi. Bu manzillar global internetda marshrutlanmaydi. Ichki qurilma internetga chiqishi uchun router uning manba manzilini ommaviy IP manzilga almashtiradi.

NAT quyidagi vazifalarda uchraydi:

  • xususiy IPv4 tarmog‘ini internetga chiqarish;
  • bitta ommaviy IP manzil ortida ko‘plab qurilmalarni ishlatish;
  • tashqi portni ichki serverga yo‘naltirish;
  • ikki tarmoqda bir xil manzil diapazoni ishlatilganda ularni vaqtincha moslashtirish;
  • IPv4 va IPv6 tarmoqlari orasida tarjima qilish;
  • server yoki xizmatning tashqi manzilini ichki topologiyadan ajratish.

NAT marshrutlashning o‘rnini bosmaydi. Router paket qayerga yuborilishini marshrut jadvali orqali aniqlaydi, NAT esa shu paketdagi manzil yoki portni qoida asosida o‘zgartiradi.

NAT ishlash jarayoni

Lokal tarmoqdagi kompyuter 192.168.1.20 manzilidan internetdagi serverga TCP ulanish yuborsin. Paket routerga kelganda quyidagi ma’lumotlar mavjud bo‘lishi mumkin:

Manba:       192.168.1.20:51520
Qabul qiluvchi: 93.184.216.34:443

Router manba IP manzilini o‘zining ommaviy manziliga, manba portini esa bo‘sh tashqi portga almashtiradi:

Manba:       203.0.113.8:40001
Qabul qiluvchi: 93.184.216.34:443

Shu paytda NAT jadvalida ichki va tashqi manzil-port juftligi saqlanadi. Javob 203.0.113.8:40001 manziliga kelganda router jadvaldagi yozuvni topadi va paketni 192.168.1.20:51520 manziliga qaytaradi. Foydalanuvchi qurilmasi tashqi port almashganini sezmaydi.

NAT turlari

Tur Mazmuni Qo‘llanishi
Static NAT Bitta ichki IP doim bitta tashqi IPga bog‘lanadi Ichki serverni barqaror tashqi manzil bilan ko‘rsatish
Dynamic NAT Ichki qurilmaga ommaviy manzillar hovuzidan vaqtincha manzil ajratiladi Cheklangan public IP hovuzini taqsimlash
SNAT Paketning manba manzili o‘zgartiriladi Ichki tarmoqdan tashqariga chiqish
DNAT Paketning qabul qiluvchi manzili o‘zgartiriladi Tashqi trafikni ichki xizmatga yo‘naltirish
PAT yoki NAPT IP bilan birga TCP yoki UDP port ham o‘zgartiriladi Bitta public IP ortida ko‘plab ulanish

Uy routerlarida eng ko‘p uchraydigan ko‘rinish PAT hisoblanadi. Bir xil tashqi IPdan foydalanayotgan ulanishlar port raqamlari orqali ajratiladi.

Port forwarding

Port forwarding — tashqi IP manzilning ma’lum portiga kelgan trafikni ichki serverning manzili va portiga yo‘naltirish qoidasi. Masalan, routerdagi 203.0.113.8:443 trafik ichki 192.168.1.50:443 serverga yuborilishi mumkin.

Port forwarding ishlashi uchun quyidagi qismlar mos bo‘lishi kerak:

  • routerdagi DNAT qoidasi;
  • ichki serverga olib boradigan marshrut;
  • firewall ruxsati;
  • serverning kerakli portda tinglashi;
  • qaytish trafikining shu NAT qurilmasi orqali o‘tishi.

NAT qoidasi mavjudligi xizmat avtomatik ravishda xavfsiz degani emas. Tashqi port ochilgach, ichki xizmat internetdan keladigan so‘rovlarga javob bera boshlaydi va unga alohida autentifikatsiya hamda himoya talab qilinadi.

NAT jadvali va sessiya holati

NAT qurilmasi faol ulanishlar haqidagi yozuvlarni vaqtincha saqlaydi. Jadvalda odatda quyidagilar bo‘ladi:

  • protokol turi;
  • ichki manzil va port;
  • tarjima qilingan tashqi manzil va port;
  • qabul qiluvchi manzil va port;
  • sessiya holati;
  • yozuvning amal qilish muddati.

TCP ulanishi SYN, ESTABLISHED va FIN kabi holatlar bilan kuzatilishi mumkin. UDPda doimiy ulanish bo‘lmagani sabab yozuv vaqt tugashi asosida o‘chiriladi. Uzoq vaqt trafik bo‘lmasa, NAT yozuvi o‘chadi va kechikib kelgan paket ichki qurilmaga yetkazilmasligi mumkin.

Hairpin NAT

Lokal tarmoqdagi foydalanuvchi ichki serverga uning tashqi domeni yoki public IP manzili orqali murojaat qilishi mumkin. Router trafikni tashqi manzil sifatida qabul qilib, yana ichki serverga qaytarsa, bu hairpin NAT yoki NAT loopback deyiladi.

Masalan, portal.uzbekdevs.uz domeni tashqi IPga yo‘naltirilgan bo‘lsa, ofis ichidagi foydalanuvchilar ham shu nomdan foydalanishi mumkin. Hairpin NAT bo‘lmasa, ichki foydalanuvchi uchun alohida ichki DNS yozuvi talab qilinishi mumkin.

NAT va tarmoq protokollari

Ko‘p protokollar NAT orqali muammosiz ishlaydi, chunki manzil va portlar paket sarlavhasida joylashadi. Ayrim protokollar esa IP manzil yoki portni payload ichida ham uzatadi. Bunday holatda oddiy sarlavha tarjimasi yetarli bo‘lmaydi.

FTPning active rejimi, ayrim SIP konfiguratsiyalari va eski multimedia protokollarida Application Layer Gateway ishlatilishi mumkin. ALG paket mazmunini tahlil qilib, ichki manzil ko‘rsatilgan joylarni ham o‘zgartirishga urinadi. Noto‘g‘ri ALG esa ishlayotgan protokolni buzishi mumkin.

NAT va firewall

NAT hamda firewall bir qurilmada ishlashi mumkin, ammo ularning vazifasi boshqa-boshqa. NAT manzilni tarjima qiladi. Firewall esa trafikni manba, qabul qiluvchi, port, holat va siyosat asosida ruxsat qiladi yoki bloklaydi.

Ichkaridan boshlangan PAT ulanishi uchun qaytish trafikining avtomatik o‘tishi NAT jadvali va stateful firewall holatiga bog‘liq. Tashqaridan yangi ulanish esa port forwarding va firewall ruxsatisiz ichki qurilmaga yetib bormaydi.

NATning cheklovlari

NAT IPv4 manzil tanqisligini yumshatgan bo‘lsa-da, internetning dastlabki end-to-end aloqa tamoyilini o‘zgartiradi. Ichki qurilmaga tashqaridan bevosita ulanish qiyinlashadi. P2P dasturlari STUN, TURN, UPnP yoki NAT traversal mexanizmlariga ehtiyoj sezishi mumkin.

Carrier-Grade NAT ishlatilganda ko‘plab abonentlar bitta public IPni bo‘lishadi. Bunda kiruvchi port ochish cheklanadi va tarmoq hodisasini aniqlash uchun IP bilan birga port hamda aniq vaqt qayd etilishi zarur.

IPv6 va NAT

IPv6 manzil maydoni juda katta bo‘lgani uchun oddiy internet chiqishi uchun IPv4 dagidek manzil tejovchi NAT talab qilinmaydi. Qurilmalar global IPv6 manzilga ega bo‘lishi mumkin, kiruvchi trafik esa firewall bilan boshqariladi.

IPv4 va IPv6 tizimlarini bog‘lash uchun NAT64 ishlatiladi. Bu mexanizm IPv6 mijozning IPv4 serverga murojaat qilishini ta’minlaydi va odatda DNS64 bilan birga qo‘llanadi.

Bog‘liq tushunchalar

Private IP, Public IP, Router, Firewall, PAT, SNAT, DNAT, Port forwarding, NAT table, Hairpin NAT, CGNAT, NAT64