Можете объяснить, что такое NAT (Network Address Translation)?
Опишите сценарии, в которых NAT обычно реализуется, и почему?
Что такое переадресация портов в этом контексте?
Подсказки:
- NAT: Трансляция сетевых адресов
- Знаете ли вы, что такое приватные или серые IP-адреса?
Выше ожиданий:
- Знание проблем NAT traversal.
NAT — это техника, используемая для изменения информации о сетевом адресе в заголовках пакетов IP во время их транзита через устройство маршрутизации трафика. Основная цель NAT — сохранить адресное пространство глобального IPv4, позволяя нескольким устройствам в локальной сети использовать один публичный IP-адрес. Эту технику можно применять и во внутренних сетях.
Приватные IP-адреса — это зарезервированные диапазоны, которые не могут быть маршрутизированы в публичном интернете. Эти адреса часто называют «серыми» IP-адресами, потому что они скрыты от публичного интернета.
Список приватных адресов:
- 10.0.0.0 - 10.255.255.255 (10.0.0.0/8)
- 172.16.0.0 - 172.31.255.255 (172.16.0.0/12)
- 192.168.0.0 - 192.168.255.255 (192.168.0.0/16) - (этот точно надо знать)
Переадресация портов (port forwarding)
Переадресация портов — это техника, перенаправляющая внешние запросы подключений (из интернета) на конкретное устройство в локальной сети. Это тип NAT, который сопоставляет:
- Внешний IP:Порт → Внутренний IP:Порт.
Проблемы с NAT
NAT создаёт сложности для peer-to-peer приложений (например, VoIP или онлайн-игры), потому что:
- Устройства за NAT не могут получать незапрашиваемые входящие подключения
- Два устройства за разными NAT не могут напрямую подключиться друг к другу
Ряд решений:
- STUN (Session Traversal Utilities for NAT)
- TURN (Traversal Using Relays around NAT)
- ICE (Interactive Connectivity Establishment)
- UPnP (Universal Plug and Play) для автоматической переадресации портов