# 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)]] (когда появится).
