Что такое NAT на роутере?

Компьютер подключается к глобальной сети несколькими способами. Это может быть прямое подключение, в этом случае имеется внешний IP адрес (динамический или статический), который виден из интернета. Или же подключение может осуществляться через маршрутизатор. При таком подключении внешний адрес имеет только роутер, а все подключенные к нему пользователи являются клиентами другой сети. Роутер берет на себя распределение входящего и исходящего трафика между клиентами и интернетом. Возникает ряд проблем при подключении через маршрутизатор:

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

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

NAT: общие определения

NAT (network address translation) или трансляция сетевых адресов — это процесс перевода внутренних или локальных адресов во внешние. NAT используется абсолютно всеми маршрутизаторами независимо от их конфигурации, назначения и стоимости. По умолчанию роутер запрещает напрямую обращаться к любому устройству, находящимися внутри сети. Он блокирует доступ на любые порты для входящих соединений поступающие из интернета.

Но NAT и Firewall это суть разные понятия. Firewall просто запрещает доступ к ресурсу по определенному TCP или UDP порту, может устанавливаться на локальной машине для ограничения доступа только к ней или же на сервере для фильтрации трафика по всей локальной сети. Перед NAT задача стоит более развернуто. Сервис запрещает или разрешает доступ внутри сети по конкретному IP адресу или диапазону адресов. Таким образом клиент, который обращается к ресурсу не видит действительного IP адреса ресурса. NAT переводит внутренний IP в адрес, который будет виден из интернета.

Чтобы проверить находится ли компьютер за NAT или транслирует в интернет реальный адрес можно следующим образом:

  • в Windows нужно нажать «Пуск — Выполнить — cmd» и прописать ipconfig и нажать «Ввод»;
  • в Linux и MacOS в терминале выполняется ifconfig.

Вывод команды показывает следующие данные:

  • IP — реальный, действительный адрес компьютера;
  • Subnet mask — маска подсети;
  • Gateway — адрес шлюза маршрутизатора.

Как теперь разобрать является ли адрес локальным или же напрямую «смотрит» в интернет. Согласно спецификации, существует четыре диапазона адресов, которые ни при каких обстоятельствах не используются в интернете, а являются исключительно локальными:

  1. 0.0.0 — 10.255.255.255
  2. Х.0.0 — 172.Х.255.255, где Х в диапазоне от 16 до 31.
  3. 168.0.0 — 192.168.255.255
  4. 254.0.0 — 169.254.255.255

В том случае, когда адрес машины попадает в один из этих диапазонов, следует считать, что компьютер находится в локальной сети или «за» NAT. Можно также дополнительно использовать специальные службы, которых есть множество в интернете для определения реального IP адреса. Теперь стало понятнее находится ли компьютер за NAT в роутере что это за сервис, и за то он отвечает.

nat схема

Проблемы NAT и возможности решения

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

В качестве примера можно рассмотреть протокол передачи файлов (FTP), который был саммым распространенным к появлению NAT. Для файловых серверов (FTP) ключевым является реальный IP адрес компьютера, который посылает запрос на доступ. Здесь преобразование адресов не работает, потому что запрос на сервер отправляется с IP, невидимого из интернета. Нет возможности создать сессию клиент-сервер для загрузки файлов. Обойти проблему помогает использование FTP в пассивном режиме. В этом режиме используется другой набор команд, и работа ведется через специальный прокси-сервер, который дополнительно открывает другой порт для соединения и передает его программе клиенту. Проблемой такого решения является то, что необходимо использовать сторонние FTP клиенты.

Полностью избавиться от проблемы доступа получилось только с появлением SOCKS (Socket Secure) протокола. Этот протокол позволяет обмениваться данными через прокси-сервер в «прозрачном» режиме. То есть сервер не будет знать, что происходит подмена адресов с локальных на глобальные и наоборот. Изобретение SOCKS позволило избавиться от ряда проблем и упростить работу администрирования сети:

  • создает на сервере службу, слушающую входящие запросы, что позволяет обслуживать многосвязные протоколы наподобие FTP;
  • нет необходимости использовать и обслуживать службу DNS внутри локальной сети. Теперь такая задача возложена на кэширующие прокси;
  • дополнительные способы авторизации позволяют с большей эффективностью проводить отслеживание и фильтрацию пакетов. Средствами NAT можно фильтровать запросы только по адресам.

Использование NAT и SOCKS не всегда оправдано с точки зрения сетевого администрирования. Иногда более целесообразным является использование специализированных прокси, которых существуете множество для любого протокола передачи данных.

Настройка NAT на компьютере

Все современные операционные системы имеют уже встроенный NAT. В Windows эта функция реализована с 1999 года с появлением Windows XP. Управление NAT осуществляется непосредственно через свойства сетевого подключения. Чтобы настроить службу нужно сделать следующее:

  • Через меню «Пуск» запустить программу «Панель управления».
  • Найти иконку «Сетевые подключения» и запустить ее.
  • В новом окне кликнуть правой кнопкой мыши на активном сетевом подключении и выбрать в выпадающем списке «Свойства».
  • Перейти на вкладку «Дополнительно».
  • Установить галочки напротив «Разрешить другим пользователям сети использовать подключение к интернету данного компьютера».
  • Подтвердить изменение кнопкой «Ок».

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

nat схема 2

Настройка NAT на маршрутизаторе

Что такое NAT в роутере, целесообразность его использования и проблемы, которые он может создать было описано выше, теперь можно перейти непосредственно к реализации задачи. Настройка службы на роутере зависит от его модели, используемой прошивки и других параметров. Но достаточно понять механизм, чтобы не возникало сложностей и вопросов по настройке отдельного устройства. Для настройки выполняются следующие действия (в качестве примера настройки выполняются на роутере Zyxel на прошивке v1):

  • В браузере зайти на страницу настроек роутера.
  • Перейти в меню «Network — Routing» на вкладку «Policy routing».

Открывшаяся страница и будет той, которая управляет политиками доступа и маршрутизацией. Здесь необходимо включить службу, активировав переключатель в положение «Enable». Сами настройки выполняются в группе «Criteria». Выбираются параметры NAT по нескольким категориям фильтров:

  • User — трансляция по определенному пользователю.
  • Incoming — по сетевому интерфейсу.
  • Source Address — подмена адреса по адресу источника.
  • Destination Address — по адресу конечного получателя
  • Service — по конкретному порту службы.

В качестве объекта перенаправления можно выбрать следующие варианты:

  • Auto — автоматический выбор объекта назначения. По умолчанию установлен Wan интерфейс.
  • Gateway — шлюз, указанный заранее в настройках.
  • VPN Tunel — соответственно через VPN туннель.
  • Trunk — диапазон интерфейсов, настроенных на совместную работу.
  • Interface — конкретный интерфейс по выбору.

В каждом отдельно взятом роутере настройки и название пунктов меню может отличаться, но принцип построения NAT остается неизменным.