Компьютерные сети
NAT: один IP на всех
IPv4-адресов всего 4.3 миллиарда, а устройств - десятки миллиардов. NAT - это хак, который позволяет интернету работать: ваш дом, офис, кофейня делят один публичный IP между сотнями устройств.
- **Домашние сети:** каждый роутер использует NAT
- **Корпоративные сети:** тысячи устройств за несколькими IP
- **Серверы:** port forwarding для веб-хостинга дома
Предварительные знания
Типы NAT
**NAT** (Network Address Translation) - технология подмены IP-адресов при прохождении через роутер. Позволяет устройствам с приватными адресами (192.168.x.x) выходить в интернет через один публичный IP. Решает проблему нехватки IPv4-адресов.
**PAT = Port Address Translation** - самый распространённый тип. Домашние роутеры используют PAT. Один публичный IP обслуживает сотни устройств благодаря уникальным портам.
Какой тип NAT использует домашний роутер?
SNAT и DNAT
**SNAT** (Source NAT) - подмена адреса источника. Используется для выхода из приватной сети наружу. **DNAT** (Destination NAT) - подмена адреса назначения. Используется для проброса портов внутрь сети.
**Masquerade в Linux** - динамический SNAT. Автоматически использует IP интерфейса. Удобно когда внешний IP динамический (DHCP от провайдера).
Когда используется DNAT?
Port Forwarding
**Port Forwarding** - частный случай DNAT. Роутер перенаправляет входящие соединения на определённый порт к конкретному устройству в локальной сети. Нужен для серверов, игр, торрентов, удалённого доступа.
**Hairpin NAT / NAT Loopback:** Позволяет обращаться к серверу по внешнему IP изнутри сети. Без него: изнутри 192.168.1.100 доступен, но 203.0.113.50:80 - нет. Не все роутеры поддерживают.
Зачем нужен Port Forwarding?
NAT Traversal
**NAT Traversal** - методы установки соединения между устройствами за NAT без ручного проброса портов. Критично для P2P, VoIP, видеозвонков, онлайн-игр. Основные техники: STUN, TURN, ICE.
**Типы NAT по RFC 3489:** Full Cone (самый открытый), Restricted Cone, Port Restricted Cone, Symmetric (самый закрытый). Symmetric NAT сложнее всего пробить - может потребоваться TURN-сервер.
NAT - это защита от хакеров
NAT скрывает устройства, но не является файрволом
NAT не фильтрует трафик - он транслирует адреса. Безопасность - побочный эффект: входящие соединения блокируются, если нет записи в таблице. Но это не замена файрволу. Для защиты нужен настоящий firewall.
Что делает STUN-сервер?
Ключевые идеи
- **NAT** транслирует приватные IP в публичные
- **SNAT** - подмена источника (выход в интернет)
- **DNAT** - подмена назначения (проброс портов)
- **NAT Traversal** (STUN) - P2P через NAT без ручного проброса
Связанные темы
NAT взаимодействует со многими технологиями:
- Проблемы NAT — P2P, VoIP, игры - детальнее о сложностях
- IPv6 — IPv6 устраняет необходимость NAT
- VPN — VPN решает проблемы NAT туннелированием
Вопросы для размышления
- Почему IPv6 не требует NAT?
- Как NAT влияет на peer-to-peer приложения?
- Почему NAT - не замена файрволу?