# Networking — NAT (one-screen) **NAT (Network Address Translation)** — трансляция адресов, которая позволяет устройствам с приватными IPv4 выходить во внешний мир через публичные адреса (и экономит IPv4). Источник: [[01 Library/04 Networking/NAT|NAT]]. ## Зачем - решает (частично) дефицит IPv4 вместе с приватными диапазонами - скрывает внутреннюю адресацию (конфиденциальность/сегментация на границе) Приватные IPv4 диапазоны: - `10.0.0.0/8` - `172.16.0.0/12` - `192.168.0.0/16` Обычно NAT стоит на границе **stub‑сети** (один основной маршрут наружу, сеть не транзитит чужой трафик). ## Термины адресов NAT (4 типа) - **Inside local** — внутренний адрес хоста *внутри* (приватный) - **Inside global** — внешний (публичный) адрес, которым этот хост “виден” снаружи - **Outside global** — реальный адрес внешнего узла назначения - **Outside local** — представление внешнего узла “изнутри” (часто совпадает с outside global) Важно: “inside/outside” всегда **с точки зрения транслируемого устройства**. ## Типы NAT 1) **Static NAT** — 1:1 (внутренний ↔ внешний). Удобно для сервисов (например, публичный веб‑сервер), но требует много публичных адресов. 2) **Dynamic NAT** — many:many через пул адресов (занимаются по принципу «кто первый пришёл»). 3) **PAT (Port Address Translation)** aka **NAT Overload** — many:1 (или many:few) за счёт портов. Типично для домашних роутеров. ### PAT: ключевая идея Маршрутизатор различает сессии по **src port** (TCP/UDP). Для протоколов без портов (например ICMP) PAT может использовать **Query ID**. ## Плюсы / минусы (коротко) **Плюсы:** экономия IPv4, приватность, независимость внутренней схемы от провайдера. **Минусы:** теряется end‑to‑end адресация, сложнее диагностика/трассировка, могут быть проблемы с входящими соединениями/UDP/туннелями (например IPsec), возможны задержки. Связанные узлы: [[Networking—MOC]], [[Networking—IPv6 (one-screen)]] (когда появится).