NAT изнутри: как один IP отвечает за тысячи устройств — и что это выдаёт антибот-системе

NAT изнутри: как один IP отвечает за тысячи устройств — и что это выдаёт антибот-системе

NAT (Network Address Translation) — механизм, который позволяет тысячам устройств выходить в интернет через один публичный IP-адрес. Именно то, чей это NAT — домашнего роутера, сотового оператора, дата-центра или его вообще нет — определяет тип прокси. Но то же самое, что делает NAT полезным для маскировки внутренней сети, оставляет технические следы, по которым антибот-системы отличают один тип IP от другого. Разберём саму механику трансляции адресов и то, что она выдаёт наружу.

Как устроена трансляция адресов

NAT родился из нехватки адресов IPv4 (их около 4,3 млрд на весь мир) и из соображений приватности: он прячет за одним публичным адресом целую внутреннюю сеть с приватными адресами вида 192.168.x.x или 10.x.x.x, которые не маршрутизируются напрямую в интернете. Маршрутизатор с поддержкой NAT снаружи выглядит как одно устройство с одним IP, хотя внутри может быть сколько угодно хостов.

Почему одна таблица трансляции обслуживает тысячи сессий

Секрет — в номере порта. Заголовки TCP и UDP содержат 16-битное поле номера порта, то есть теоретически до 65536 значений. NAT-маршрутизатор запоминает связку «внутренний IP + внутренний порт» и подменяет её на «свой публичный IP + свободный порт» из своего диапазона, записывая соответствие в таблицу трансляции. Когда ответ приходит на этот порт, маршрутизатор смотрит в таблицу и понимает, какому внутреннему устройству его доставить. Ограничение упирается не в число устройств за NAT, а в число одновременных портов-сессий на одном публичном IP.

Что остаётся видно снаружи, а что — нет

Целевой сервер видит только публичный IP и номер порта из таблицы трансляции — какой именно внутренний хост стоит за этим сочетанием, снаружи не определить напрямую. Но сама структура NAT всё равно оставляет статистические следы: сколько разных портов используется одновременно с одного IP, как быстро они переиспользуются, меняется ли сам публичный адрес во времени. Это уже не про конкретное устройство, а про паттерн поведения адреса — и именно на нём строится классификация трафика.

Как антибот-система определяет тип NAT по косвенным признакам

Системы вроде Cloudflare, DataDome или PerimeterX не видят NAT напрямую, но опираются на несколько источников: базу ASN (Autonomous System Number), которая показывает, кому принадлежит адрес — хостинг-провайдеру, сотовому оператору или интернет-провайдеру; поведение адреса во времени (стабилен неделями или меняется каждые несколько минут); число параллельных сессий с одного IP относительно типичного профиля обычного пользователя. Дата-центровый IP без NAT выдаёт себя ASN-ом хостинга. Домашний NAT обычно держит один и тот же адрес долго и обслуживает трафик, похожий на поведение одного-двух реальных пользователей.

CGNAT: почему смена IP у мобильного трафика — это норма, а не аномалия

Сотовые операторы обслуживают NAT в промышленных масштабах — carrier-grade NAT (CGNAT), когда тысячи абонентов делят между собой относительно небольшой пул публичных IP. Из-за этого один и тот же внешний IP в моменте может использоваться сразу несколькими реальными абонентами, а конкретному устройству IP может смениться при простой смене базовой станции. Для систем анализа трафика это ожидаемое поведение мобильной сети, а не аномалия — высокая частота смены адреса и большое число независимых сессий с одного IP для CGNAT считаются нормой, тогда как для дата-центрового IP это выглядело бы подозрительно.

TTL и число хопов как побочный технический признак

Поле TTL (time-to-live) в заголовке IP-пакета уменьшается на единицу на каждом маршрутизаторе по пути. Разные операционные системы по умолчанию выставляют разное начальное значение TTL, и по итоговому значению, дошедшему до сервера, можно грубо прикинуть число пройденных хопов и тип устройства-отправителя. Трафик, прошедший через дополнительный NAT-переход или через несколько транзитных сетей, будет отличаться по этому параметру от прямого подключения — это один из технических сигналов, которые попадают в более широкие модели анализа трафика, наравне с ASN и поведением сессий.

Сигналы, по которым различают тип IP

ПризнакДата-центр (без NAT)Домашний NATCGNAT оператора связи
ASN в базахХостинг-провайдерИнтернет-провайдер (жилой сегмент)Оператор сотовой связи
Стабильность адреса во времениВысокая, меняется редкоВысокая, недели и месяцыНизкая, может меняться в течение часов
Число параллельных сессий с IPМожет быть очень большим — и это ожидаемоЕдиницы устройств одного домаСотни-тысячи независимых абонентов — и это тоже ожидаемо
Как это интерпретирует антиботПо умолчанию подозрительно — «не похоже на человека»По умолчанию доверительно — «обычный пользователь»Смена IP и много сессий — норма для этого типа сети, не флаг

Как это устроено у нас

В Proxy.Market можно выбрать, за каким именно NAT будет работать ваш трафик: резидентские прокси за домашним NAT, мобильные прокси за CGNAT оператора, ISP-прокси со статичным NAT провайдера и серверные IPv4 вообще без NAT. Если нужен практический разбор, какой тип выбрать под конкретную задачу — в блоге уже есть отдельная статья с детальным сравнением серверных, резидентских и мобильных прокси; здесь же — только техническая механика, которая стоит за этим делением.

Частые вопросы

Может ли антибот-система точно узнать, что за IP стоит несколько устройств?
Точно и напрямую — нет, NAT как раз для того и придуман, чтобы скрывать внутреннюю структуру сети. Но по косвенным признакам (ASN, стабильность адреса, число сессий) можно с высокой вероятностью классифицировать тип NAT и источник трафика.

Почему мобильный IP иногда «слетает» посреди сессии?
Это следствие carrier-grade NAT: оператор перераспределяет ограниченный пул публичных адресов между абонентами и может пересадить устройство на другой IP при смене соты — это нормальная работа сети, а не сбой прокси.

Что такое ASN и почему он так важен для репутации IP?
ASN (Autonomous System Number) — идентификатор сети в интернете, по которому можно определить, кому принадлежит блок адресов: хостинг-провайдеру, интернет-провайдеру или оператору связи. Репутационные системы используют именно ASN как один из главных признаков для классификации трафика.

Можно ли определить тип NAT только по TTL пакета?
Только по TTL — нет, это слишком грубый и легко подделываемый признак. На практике его используют как один из нескольких сигналов в связке с ASN и поведением сессий, а не как самостоятельный метод.

Источники

Kurose J., Ross K. Computer Networking: A Top-Down Approach, 6th Edition — раздел о NAT в сетевом уровне; RFC 1918 (адреса для частных сетей); RFC 3022 (Traditional IP Network Address Translator).

Хотите проверить, как ваш трафик выглядит с той стороны NAT — резидентского, мобильного или ISP? Опишите задачу менеджеру Proxy.Market — подберём пул под конкретный кейс.