Что такое двойной NAT и откуда он берётся
NAT — это трансляция адресов, благодаря которой устройства с внутренними адресами выходят в интернет под одним общим. Обычно в квартире один NAT: на роутере. Но если после роутера провайдера подключён ещё один, или к сети оператора подключён терминал, работающий как роутер, трансляция выполняется дважды. Это и называют двойным NAT.
Он нередко возникает случайно. Человек покупает свой роутер, подключает его к роутеру провайдера кабелем в порт LAN и получает два роутера подряд. Иногда двойной NAT создаёт сам провайдер, применяя общий адрес на несколько абонентов (CGNAT). Последствия: сложности с входящими подключениями, проблемы в некоторых играх, невозможность удалённого доступа к камерам и накопителям. См. также словарь: NAT и CGNAT.
Проверка первая: адрес на порту WAN и внешний адрес
Самая простая проверка основана на сравнении двух адресов. Их нужно найти и сопоставить.
- Откройте веб-интерфейс вашего роутера и найдите на странице состояния адрес на порту WAN («IP-адрес интернета»).
- Откройте в браузере любой сайт, показывающий ваш внешний адрес, и запишите его.
- Сравните два значения.
Возможны три исхода.
| Результат | Что это значит |
|---|---|
| Адреса совпадают | Один уровень NAT, адрес публичный |
| Адрес на WAN частный (из диапазонов ниже), внешний отличается | Перед вашим роутером есть ещё устройство с NAT: второй роутер, терминал или оборудование оператора |
| Адрес на WAN публичный, но отличается от внешнего | Возможно, оператор использует общий адрес (CGNAT) |
Частные диапазоны адресов: от 10.0.0.0 до 10.255.255.255, от 172.16.0.0 до 172.31.255.255 и от 192.168.0.0 до 192.168.255.255. Адреса из диапазона 100.64.0.0–100.127.255.255 обычно указывают на общий адрес оператора.
Проверка вторая: трассировка маршрута
Трассировка показывает узлы, через которые проходит пакет. Если между вашим компьютером и интернетом стоят два роутера с частными адресами, это видно сразу.
Откройте командную строку и выполните команду tracert с адресом любого публичного сервера. Подробнее о ключах команды написано в материале про tracert. В результате появится список узлов, пронумерованных по порядку.
Обратите внимание на первые строки. Первый узел — ваш роутер, его адрес совпадает с адресом шлюза по умолчанию. Если второй узел имеет частный адрес (например, из диапазона 192.168.x.x или 10.x.x.x), значит, за вашим роутером стоит ещё одно устройство с NAT. Если второй узел уже публичный, и адрес на WAN тоже публичный, двойного NAT, скорее всего, нет.
Учтите, что некоторые узлы могут не отвечать на запросы и показываться звёздочками. Это не всегда ошибка, но при нескольких подряд идущих пропусках ориентируйтесь на адреса, которые удалось получить. Для диагностики дополнительно используйте вывод параметров сети.
Как трактовать результат и что делать дальше
Найти двойной NAT — половина дела: важно понять, где он находится и можно ли на это повлиять.
- Два ваших устройства подряд (роутер провайдера и ваш). Ситуация исправима: можно перевести одно из устройств в режим моста или точки доступа, либо настроить проброс порта на обоих. Способы описаны в материале о том, как убрать двойной NAT.
- Оптический терминал (ONT) провайдера с включённой маршрутизацией. Иногда терминал можно перевести в режим моста; это делает провайдер или вы по его инструкции. Об этом рассказано в статье про ONT.
- Общий адрес оператора (CGNAT). Средствами домашней сети его не убрать: нужно обращаться к провайдеру за публичным адресом, если такая услуга предусмотрена.
Если у вас нет проблем с играми, камерами и другими сервисами, двойной NAT можно не трогать: для обычного просмотра сайтов и видео он практически не заметен. Разбираться стоит, когда нужны входящие подключения, например для игр или доступа к устройствам дома.
Отдельные случаи, где определение усложняется
Не всякая картина однозначна, и стоит знать частые исключения.
Провайдер выдаёт адрес из частного диапазона, но сам создаёт единый выход для сети. Тогда на WAN вы видите частный адрес, хотя второго роутера в квартире нет. Причина находится на стороне оператора, и решать вопрос нужно с ним.
Роутер показывает публичный адрес, но он отличается от внешнего. Такое бывает при использовании общего адреса на выходе. Проверьте несколько раз в разные дни: адрес может меняться.
Оптический терминал выполняет маршрутизацию, а ваш роутер подключён к нему. На WAN вашего роутера будет частный адрес терминала. Двойной NAT есть, даже если оба устройства вы не покупали сами.
Устройство на выходе работает как мост, но вы этого не знаете. В этом случае адрес на WAN будет публичным, и двойного NAT нет.
Если картина остаётся неясной, распечатайте результаты проверок и обратитесь в поддержку провайдера: им проще определить схему на своей стороне.
Чтобы результаты проверки были надёжными, повторите их дважды и в разное время, а также выполните с проводного подключения. Wi-Fi и мобильные приложения иногда показывают адрес, полученный через другой канал (например, при включённом мобильном интернете телефон покажет внешний адрес оператора, а не домашней сети). Убедитесь, что вы на самом деле измеряете свой домашний канал: отключите мобильные данные на телефоне и проверяйте с компьютера, подключённого кабелем. Так вы исключите ошибки, которые проще всего допустить при самой первой проверке. Кроме того, полезно записать полученные значения: адрес на WAN, внешний адрес, адрес шлюза и адрес второго узла в трассировке. Эта короткая запись пригодится при обращении в поддержку провайдера, так как позволит сразу показать, где именно вы видите второй уровень трансляции.