3.0 KiB
Networking — NAT (one-screen)
NAT (Network Address Translation) — трансляция адресов, которая позволяет устройствам с приватными IPv4 выходить во внешний мир через публичные адреса (и экономит IPv4).
Источник: 01 Library/04 Networking/NAT.
Зачем
- решает (частично) дефицит IPv4 вместе с приватными диапазонами
- скрывает внутреннюю адресацию (конфиденциальность/сегментация на границе)
Приватные IPv4 диапазоны:
10.0.0.0/8172.16.0.0/12192.168.0.0/16
Обычно NAT стоит на границе stub‑сети (один основной маршрут наружу, сеть не транзитит чужой трафик).
Термины адресов NAT (4 типа)
- Inside local — внутренний адрес хоста внутри (приватный)
- Inside global — внешний (публичный) адрес, которым этот хост “виден” снаружи
- Outside global — реальный адрес внешнего узла назначения
- Outside local — представление внешнего узла “изнутри” (часто совпадает с outside global)
Важно: “inside/outside” всегда с точки зрения транслируемого устройства.
Типы NAT
- Static NAT — 1:1 (внутренний ↔ внешний). Удобно для сервисов (например, публичный веб‑сервер), но требует много публичных адресов.
- Dynamic NAT — many:many через пул адресов (занимаются по принципу «кто первый пришёл»).
- 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) (когда появится).