CGNAT: что это такое, как работает и зачем нужен провайдерам

CGNAT — одна из тех технологий, которые работают практически незаметно, но всплывают, стоит копнуть глубже: при настройке видеонаблюдения, в курсовой по сетям, при разговоре с провайдером.

Слово звучит непонятно, а за ним стоит простая идея, из-за которой сегодня устроен доступ в интернет у многих домашних и мобильных абонентов.

Разберём технологию полностью и понятным языком: что такое CGNAT, зачем он появился, как работает по шагам, что даёт провайдеру и чем оборачивается для пользователя. А в конце покажем, как определить, работает ли ваше подключение через эту технологию.

Коротко

CGNAT (Car­ri­er-Grade NAT) — это преобразование сетевых адресов на уровне оператора связи. Технология позволяет провайдеру раздать один публичный адрес IPv4 сразу многим абонентам.

Она нужна, чтобы справиться с нехваткой адресов IPv4, которых на всех давно не хватает.

Каждому абоненту достаётся внутренний (серый) адрес, а в интернете все они видны под общим публичным адресом провайдера.

Плата за экономию адресов — сложности с прямым доступом к устройствам извне: не работает проброс портов, удалённый доступ к камере или серверу.

Что такое CGNAT

CGNAT расшифровывается как Car­ri­er-Grade NAT, дословно «NAT операторского класса». По-русски это преобразование сетевых адресов, которое выполняется не в домашнем роутере, а на оборудовании интернет-провайдера, то есть в масштабах целого оператора связи. Встречаются и другие написания той же технологии: CG-NAT, а ещё её называют Large-Scale NAT (LSN), то есть крупномасштабный NAT.

Суть технологии в том, что провайдер выдаёт одному публичному адресу обслуживать сразу множество абонентов. Публичный адрес, его ещё называют белым, виден из интернета напрямую, и обратиться к устройству с таким адресом можно снаружи. Каждый абонент при CGNAT получает не собственный публичный адрес, а внутренний, из специально зарезервированных диапазонов. В интернете же все эти абоненты видны под общим публичным адресом оператора. Проще говоря, десятки и сотни квартир выходят в сеть через один адрес, примерно как большой офис звонит наружу через один городской номер с добавочными.

Чтобы понять, почему до этого вообще дошло, нужно вспомнить про нехватку адресов.

Почему CGNAT вообще понадобился

Интернет старого образца работает на адресах стандарта IPv4, четвёртой версии интернет-протокола. Такой адрес выглядит как четыре числа через точку, например 203.0.113.1. Всего в этом стандарте около 4,3 миллиарда адресов. В восьмидесятые годы, когда протокол создавали, это казалось запасом на все времена.

Но интернет вырос куда сильнее, чем ожидалось. Сначала к сети подключались только компьютеры, потом добавились смартфоны, а следом телевизоры, роутеры, умные колонки, камеры, бытовые датчики. Устройств стало в разы больше, чем адресов, и свободные адреса закончились. Центральный мировой запас адресов IPv4 был исчерпан ещё в 2011 году, а следом в течение десятилетия свои запасы раздали и региональные распорядители адресов по всему миру. Теперь новые адреса IPv4 можно только перекупать на вторичном рынке, где они стоят дорого.

У провайдера при этом тысячи абонентов, и выдать каждому по отдельному публичному адресу физически не из чего. Радикальное решение проблемы — переход на новый стандарт IPv6, где адресов практически неограниченно. Но переход этот идёт медленно и требует обновления оборудования по всему миру. Пока он не завершён, провайдерам нужен способ обойтись имеющимися адресами, и этим способом стал CGNAT. Он позволяет дотянуть до полного перехода на IPv6, растягивая скудный запас адресов IPv4 на всех абонентов.

Отдельно стоит сказать, что массовым явлением CGNAT стал именно в последние годы. Раньше домашним абонентам чаще доставался публичный адрес, а теперь всё наоборот: большинство и домашних, и почти все мобильные подключения работают через CGNAT, а публичный адрес превратился в отдельную платную услугу.

Как работает CGNAT: разбираем по шагам

Чтобы понять механику, сначала вспомним про обычный NAT, который работает у вас дома.

Домашний роутер получает от провайдера один адрес, а внутри квартиры раздаёт собственные внутренние адреса ноутбуку, телефону, телевизору. Когда любое из этих устройств выходит в интернет, роутер подменяет его внутренний адрес на свой единый внешний. Это и есть NAT, преобразование сетевых адресов. Благодаря ему несколько домашних устройств пользуются одним адресом провайдера, а роутер по специальной таблице помнит, какой ответ какому устройству вернуть.

CGNAT — это тот же принцип, но поднятый на уровень выше. Роутер объединяет устройства одной квартиры, а CGNAT объединяет уже целые квартиры и дома под одним публичным адресом провайдера. Получается, что преобразование адресов происходит дважды: сначала в вашем роутере, потом на оборудовании оператора. Из-за этой двойной обработки в домашних сетях CGNAT обычно выглядит как двойной NAT.

По шагам весь путь выглядит так:

  1. ваше устройство отправляет запрос в интернет и получает от роутера внутренний адрес домашней сети;
  2. роутер подменяет его на адрес, который выдал провайдер, но это тоже не публичный адрес, а внутренний адрес из сети оператора;
  3. запрос доходит до шлюза CGNAT в сети провайдера, и уже там внутренний адрес подменяется на общий публичный адрес из пула оператора;
  4. чтобы не перепутать абонентов, которые сидят под одним публичным адресом, шлюз присваивает каждому соединению свой номер порта и заносит это в таблицу соответствия;
  5. когда из интернета приходит ответ, шлюз по этой таблице и номеру порта понимает, какому именно абоненту и на какое устройство переслать данные.

Номера портов здесь важная деталь. Теоретически у одного адреса IPv4 около 65 тысяч портов, но на практике оператор распределяет между абонентами только доступный пул, часть портов зарезервирована под служебные нужды. Именно порт позволяет различить, кому из десятков людей за общим адресом предназначен конкретный ответ.

Диапазоны адресов, которые использует CGNAT

Внутренние адреса берутся не произвольно, под них зарезервированы специальные диапазоны. Знать их полезно, потому что по ним как раз и определяют CGNAT.

Классические частные диапазоны, которые применяются в домашних и офисных сетях, описаны в стандарте под названием RFC 1918. Их три: адреса от 10.0.0.0 до 10.255.255.255, от 172.16.0.0 до 172.31.255.255 и от 192.168.0.0 до 192.168.255.255. Обратите внимание на второй: частный не весь диапазон 172, а только участок от 172.16 до 172.31, остальные адреса на 172 к частным не относятся. Скорее всего, адрес вашего устройства внутри квартиры как раз из третьего диапазона, что-нибудь вроде 192.168.1.5.

Для самого же CGNAT в 2012 году выделили отдельный диапазон — от 100.64.0.0 до 100.127.255.255 (в записи специалистов 100.64.0.0/10). У него есть собственное название, Shared Address Space, то есть общее адресное пространство, и закреплён он стандартом RFC 6598. Эти адреса провайдер выдаёт абонентам на участке между их роутером и своим шлюзом. В обычных домашних сетях и в открытом интернете такой диапазон не используется, поэтому адрес из него на внешнем интерфейсе роутера — почти верный признак CGNAT.

CGNAT и родственные виды NAT

CGNAT не единственный вид преобразования сетевых адресов, и рядом с ним встречаются смежные понятия. Для полноты картины коротко назовём основные, без глубокого погружения.

Обычный NAT — то самое преобразование в домашнем роутере, с которого мы начали. Когда несколько внутренних адресов выходят наружу через один внешний с помощью распределения по портам, это называют ещё PAT (Port Address Trans­la­tion), то есть преобразование по портам. На практике именно так домашний NAT и работает.

Двойной NAT — ситуация, когда преобразование происходит дважды подряд. В домашних сетях за CGNAT это как раз так: первый раз в роутере абонента, второй на шлюзе провайдера. Для такой схемы есть и более точное обозначение, NAT444: оно описывает три уровня адресов IPv4 подряд, то есть частный адрес дома, адрес в сети оператора и общий публичный адрес на выходе. CGNAT может быть частью этой схемы, но сам термин применяют шире, ко всему операторскому преобразованию адресов.

Все эти названия описывают вариации одного принципа: как разделить дефицитные публичные адреса между множеством устройств. Обычному пользователю достаточно понимать саму идею, а точные обозначения нужны скорее в технической документации и учебных материалах.

Что CGNAT даёт провайдеру

У технологии есть понятные преимущества, и все они на стороне оператора связи.

Главное — экономия адресов. Один публичный адрес обслуживает десятки и сотни абонентов, поэтому провайдеру не нужно добывать отдельный адрес под каждого клиента. Отсюда же вытекает и экономия денег: перекупать дорожающие адреса IPv4 на вторичном рынке приходится куда меньше.

Технология упрощает переход на IPv6. Пока часть оборудования и программ поддерживает только старый стандарт, CGNAT позволяет всему этому работать без сбоев, обеспечивая плавный, растянутый во времени переход.

Есть и побочный плюс в безопасности. Устройства абонентов находятся за общим адресом и не видны из интернета по отдельности, поэтому напрямую просканировать или атаковать конкретное домашнее устройство снаружи сложнее.

Что CGNAT означает для пользователя

Обратная сторона у экономии тоже есть, и её ощущают уже абоненты.

Самое заметное — пропадает возможность прямого подключения к своим устройствам из интернета. Раз у вашего роутера нет собственного публичного адреса, снаружи к нему не обратиться. Из-за этого перестаёт работать проброс портов, то есть настройка, которой открывают доступ к домашнему устройству извне. Как следствие, не получается удалённо подключиться к камере видеонаблюдения, домашнему серверу, сетевому хранилищу, рабочему компьютеру, если всё это работает напрямую, а не через облако производителя.

Страдают и приложения, которым нужно прямое соединение между пользователями: часть онлайн-игр, интернет-звонки, файлообменные сети. Они либо работают хуже, либо требуют обходных решений. Геймерам это знакомо по так называемому типу NAT в настройках консоли или игры: за CGNAT он часто становится строгим или умеренным (по-английски Strict или Mod­er­ate), из-за чего сложнее подключаться к другим игрокам и голосовому чату.

Ещё одно ограничение связано с портами. Их у общего адреса конечное число, и они делятся между всеми абонентами. При очень активной нагрузке, например при интенсивной загрузке файлов, порты могут заканчиваться, и тогда часть соединений обрывается.

Есть у CGNAT и не такая очевидная особенность. Все соединения абонентов оператор держит в специальной таблице соответствия, и запись в ней живёт ограниченное время. Если соединение долго простаивает, запись может удалиться, и связь придётся устанавливать заново. На практике это иногда проявляется как внезапно оборвавшийся удалённый доступ к камере или разрыв в игре после паузы, хотя интернет при этом работает.

Наконец, общий адрес влияет на репутацию и безопасность в широком смысле. За одним публичным адресом сидит множество незнакомых людей. Если кто-то из них нарушает правила какого-нибудь сайта, ограничение может прилететь на весь общий адрес, и тогда посторонний человек невольно подставляет остальных. Отсюда, например, внезапные проверки капчей или временные блокировки на сайтах, где вы ничего не нарушали. По той же причине сервисы геолокации иногда неверно определяют местоположение, ведь под одним адресом оказываются абоненты из разных мест.

Отдельно стоит упомянуть юридическую сторону, о ней редко пишут. Раз под одним публичным адресом выходят в сеть сразу многие, самого адреса уже недостаточно, чтобы установить конкретного пользователя. Нужны ещё номер порта и точное время соединения, иначе за общим адресом человека не отличить. Это усложняет расследование нарушений и разбор спорных ситуаций.

Как проверить, работает ли ваше подключение через CGNAT

Способ, доступный любому, без специальных программ.

Откройте любой сайт-определитель, для этого достаточно набрать в поиске «узнать свой IP», и запомните адрес, который он покажет. Затем зайдите в настройки роутера: обычно для этого в браузере вводят 192.168.0.1 или 192.168.1.1, а логин с паролем указаны на наклейке снизу. Найдите там внешний адрес подключения, его обозначают WAN. Сравните два числа. Если адрес в роутере совпадает с тем, что показал сайт, у вас, скорее всего, обычный публичный адрес. Если они разные, значит роутер сам находится за адресом провайдера, и это указывает на CGNAT.

Есть и дополнительная примета для тех, кто заглянул в настройки роутера. Посмотрите на внешний адрес: если он начинается на 100.64 и далее до 100.127, это тот самый зарезервированный под CGNAT диапазон, и наличие технологии почти не вызывает сомнений.

Ну а самый быстрый вариант — позвонить провайдеру и спросить напрямую, использует ли он CGNAT на вашем тарифе и можно ли получить публичный адрес (если он вам действительно нужен).

Хоть статья и опубликована на сайте о МТС, мы не владеем информацией об использовании этим провайдером CGNAT. Статья информационная и предназначена для широкого круга читателей, независимо от того, к какому оператору вы подключены.

Что делать, если нужен прямой доступ

Если CGNAT мешает конкретной задаче, например удалённому просмотру камер, есть несколько путей.

Самый надёжный — заказать у провайдера белый публичный IP-адрес. Обычно это отдельная платная услуга. При подключении стоит уточнить, будет ли адрес статическим, то есть постоянным, поскольку для удалённого доступа важно, чтобы он не менялся. С публичным адресом CGNAT перестаёт мешать, и прямой доступ работает как обычно.

Если публичный адрес недоступен, применяют обходные пути. Их общий принцип в том, что не внешний пользователь подключается к вашему устройству, а само устройство первым выходит на посредника, через которого потом идёт связь. При такой схеме общий адрес провайдера уже не мешает. К таким решениям относятся частные виртуальные сети, которые обычно называют сокращением VPN, а также сервисы удалённого доступа и облачные платформы производителей камер и хранилищ, где устройство само подключается к серверу сервиса.

А вот обычный проброс портов и сервисы динамических доменных имён при CGNAT не помогут: они рассчитаны на то, что у вас есть собственный публичный адрес, а его как раз и нет.

Распространённые заблуждения

Вокруг CGNAT накопилось несколько мифов, которые стоит развеять.

  1. CGNAT всегда замедляет интернет.
    На деле на обычное пользование сетью он почти не влияет, а заметная задержка возможна лишь в приложениях, чувствительных к каждой миллисекунде.
  2. Серый адрес опаснее белого.
    Скорее наоборот: устройство за серым адресом не видно из интернета напрямую, зато у него ограничены входящие соединения. Речь не про опасность, а про доступность снаружи.
  3. Если у меня адрес 192.168, значит я за CGNAT.
    Нет. Адрес 192.168 есть почти у каждого, это внутренний адрес домашней сети, и сам по себе он ни о чём не говорит. Смотреть надо на внешний адрес роутера.
  4. Белый IP всегда постоянный.
    Тоже нет. Белый адрес может быть и меняющимся (динамическим), и постоянным (статическим), это разные характеристики, и при подключении услуги стоит уточнять, какой именно вы получите.
  5. Переход на IPv6 полностью отменит любые преобразования и защиту.
    Адресов в IPv6 хватает каждому, поэтому прятать устройства за общим адресом не нужно. Но базовая сетевая защита, ограничивающая нежелательные входящие соединения, всё равно остаётся, просто устроена иначе.

Вопрос-ответ

Чем CGNAT отличается от обычного NAT?

Принцип у них одинаковый, разница в масштабе. Обычный NAT работает в домашнем роутере и объединяет устройства одной квартиры. CGNAT работает на оборудовании провайдера и объединяет под одним публичным адресом множество абонентов сразу.

CGNAT это навсегда?

Нет, это временная мера на период нехватки адресов IPv4. Когда интернет массово перейдёт на IPv6, где адресов практически неограниченно, надобность в CGNAT отпадёт. Но переход идёт медленно, так что в ближайшие годы технология останется распространённой.

CGNAT замедляет интернет?

На обычный просмотр сайтов, видео и мессенджеры он практически не влияет. Небольшая дополнительная задержка возможна разве что в играх и других приложениях, чувствительных к каждой миллисекунде, из-за лишнего узла на пути данных.

Мой адрес начинается на 192.168, это признак CGNAT?

Нет. Адрес 192.168 — это внутренний адрес вашей домашней сети, его выдаёт роутер, и он есть практически у всех. Чтобы судить о CGNAT, смотреть надо на внешний адрес роутера (WAN) и сравнивать его с тем, что показывает сайт-определитель.

У меня мобильный интернет, я за CGNAT?

Почти наверняка да. У мобильных операторов эта технология применяется практически повсеместно, поэтому получить публичный адрес на обычной SIM-карте, как правило, нельзя или можно только как отдельную услугу.

Коротко о главном

CGNAT — это технология, которой провайдеры раздают один публичный адрес сразу многим абонентам, чтобы справиться с нехваткой адресов IPv4. Каждому абоненту достаётся внутренний адрес, а в интернете все они видны под общим адресом оператора, при этом соединения различаются по номерам портов. Для провайдера это экономия адресов и денег, а для абонента — плата в виде потери прямого доступа к своим устройствам из интернета. Определить CGNAT можно за минуту, сравнив внешний адрес роутера с адресом на сайте-определителе, а вернуть прямой доступ помогает публичный IP-адрес от провайдера. В долгосрочной перспективе технологию вытеснит переход на IPv6, но пока он не завершён, CGNAT остаётся частью устройства современного интернета.

Если хотите глубже разобраться в самих типах адресов, у нас есть отдельные материалы: чем белый IP отличается от серого, статический от динамического и какие вообще бывают виды IP-адресов.

Не копируйте текст!