CGNAT (Carrier-Grade NAT, также LSN — Large Scale NAT) — NAT-технология, применяемая провайдерами для обслуживания миллионов абонентов при недостаточном количестве публичных IPv4-адресов. Провайдер выдаёт абоненту «серый» IP из диапазона 100.64.0.0/10 (RFC 6598), а на CGNAT-шлюзе транслирует тысячи таких адресов в десятки публичных.
Как работает
Два уровня NAT: домашний роутер транслирует домашние устройства (192.168.x.x) → абонентский адрес (100.64.x.x). CGNAT-шлюз провайдера транслирует 100.64.x.x → публичный IP (например, 203.0.113.x). Одному публичному IP могут соответствовать 100–1000 абонентов. Каждое соединение идентифицируется пятёркой: IP-источника, порт-источника, IP-назначения, порт-назначения, протокол.
Диапазон 100.64.0.0/10 (RFC 6598, 2012) зарезервирован IANA специально для CGNAT — это «shared address space», отличный от обычных приватных диапазонов RFC 1918. Это позволяет избежать конфликтов с домашними сетями абонентов.
Проблемы CGNAT
- Невозможность входящих подключений — нельзя открыть порт для сервера, удалённого доступа, P2P
- Идентификация в логах — один IP = тысячи пользователей, сложно найти нарушителя
- Некоторые протоколы не работают — IPsec, SIP без ALG, некоторые игровые протоколы
- Производительность — дополнительная задержка 1–3 мс на CGNAT-шлюзе
История
Исчерпание IPv4-адресов (IANA выдала последние блоки в 2011 году, RIPE NCC — в 2019-м) сделало CGNAT неизбежным для провайдеров, не успевших внедрить IPv6. RFC 6598 стандартизировал «shared address space» в 2012 году. В России CGNAT широко применяется с 2015–2018 годов мобильными и кабельными операторами.
На что обращать внимание
VPS/VDS без CGNAT — стандарт для хостинга: вы получаете прямой публичный IP без промежуточного NAT. Если провайдер использует CGNAT — для хостинга сервера нужно доплачивать за «белый IP». CGNAT несовместим с: входящими VPN-подключениями по L2TP/IPsec, хостингом игровых серверов, работой BitTorrent в режиме раздачи.
CGNAT и хостинг
CGNAT (Carrier Grade NAT) — механизм, при котором провайдер прячет тысячи клиентов за одним публичным IP-адресом. Используется из-за исчерпания адресов IPv4. Проблемы CGNAT для серверных задач: невозможно пробросить порты (port forwarding), сложности с VPN и игровыми серверами, нарушение работы протоколов, требующих входящих соединений. Для хостинга CGNAT неприемлем — каждый сервер должен иметь публичный IP без NAT. CGNAT описан в RFC 6888. Решение — переход на IPv6, где адресов хватит на десятилетия (340 ундециллионов адресов).
История CGNAT
CGNAT стал массовым явлением в 2012--2015 годах, когда IANA распределила последние блоки IPv4-адресов. Региональные регистраторы (RIPE для Европы) начали строгие политики выдачи IPv4 с 2011 года. Российские мобильные операторы активно используют CGNAT с 2014--2016 годов. NAT (обычный, на домашнем роутере) отличается от CGNAT масштабом: один роутер на домашнюю сеть vs один IP на тысячи абонентов провайдера.