NAT в роутере и на сервере – что это такое и где используется
NAT (происходит от английского термина Network Address Translation, который переводится как «преобразование сетевых адресов») при помощи этой функции в сетях TCP/IP преобразовываются IP-адреса транзитных пакетов. Он есть у всех роутеров, имеет название port forwarding.
Преимущество данной технологии в том, что не надо изменять конфигурацию маршрутизаторов и окончательных узлов внутренней сети. Эти технологии не применяются там, где в работе с внешними сетями задействовано много внутренних узлов.
Типы NAT
Static NAT
Как правило, не используется физическими лицами для их потребностей, а применяется компаниями, в которых есть много IP адресов с необходимостью, чтобы они для некоторых серверов оставались постоянными и были доступны из вне. Чтобы открыть какой-нибудь сервис (почта, сайт и т.д.) необходимо знать 2 параметра: IP адрес (DNS имя) и порт. При этом порт обычно не вводится (если он не был изменен), поскольку программы вводят его автоматически и, следовательно, пользователь даже не задумывается о его наличии. Для того чтобы другие пользователи глобальной паутины могли работать с определённым компьютером, им необходимы знать его IP (DNS имя) и порт сервиса.
Если у человека статический Network Address Translation и один компьютер в сети, то знать порт не обязательно, достаточно будет знания IP. Чтобы ограничить доступ, нужна установка межсетевого экрана.
Чтобы было понятнее, можно провести такую аналогию: IP адрес — это чей-то дом, а порт – его квартира. Чтобы человека нашли, нужно знать и то и другое.
Как это работает. Допустим, провайдер выдал 4 IP для 3-х серверов. Роутеру назначается первый, а остальные достаются серверам. Чтобы на них смогли попасть достаточно указать внешние IP, например, второй, а роутер всё равно перенаправит на первый сервер. Человек попадает на сервер, работает на нём, но не знает, что его адрес иной. Запись будет храниться об этом в таблице NAT.
Есть положительные моменты: адреса пользователя не видны, но он сам виден из интернета. Минусы: любому другому пользователю будет просто совершить попытку взлома его компьютера.
Dynamic NAT
В отличие от статического имеет одно исключение: из глобальной паутины нет возможности увидеть сервера, с которыми производится работа. Клиент получает несколько IP, но здесь их распределяет роутер. Когда клиент находится в интерне, роутер сам выбирает среди полученных один адрес, выдаёт его и заносит в таблицу Network Address Translation. Но сама запись долго не хранится, когда пользователь вышел из интернета она вытирается из таблицы.
Большим недостатком является то, что необходимое число входов в глобальную паутину не может быть больше количества IP адресов, которые выдал провайдер. Пока не найдутся свободные, новые пользователи не смогут подключиться к компьютеру. Но по сравнению с первым типом есть большое превосходство, другие пользователи не смогут свободно зайти на жёсткий диск компьютера, так как адреса постоянно меняются. Также самим клиентам не надо распределять IP адреса, их распределит роутер.
Port Address Translation (PAT), NAT Overload и Masquerading
Данный тип актуальнее физическому лицу, поскольку выдается единственный внешний адрес, а пользователь только назначает порт любому серверу. Скажем, кому-то необходимо, чтобы к нему могли зайти в торрент, для этого понадобятся не только внутренние, но и внешние порты. Программой используется внутренний порт только на компьютере, на котором она установлена. С других же машин будут подключаться к внешнему порту, находящемуся на роутере. Очень часто, но не всегда они совпадают.
У данного метода есть преимущество: доступ открыт для определённой программы, все остальное закрыто. А недостаток в том, что очень часто порты нужно настраивать вручную.
Как изменить тип NAT
Нужно зайти на свой роутер. Для этого, в браузере набираем 192.168.1.1 или 192.168.0.1 (или другую комбинацию в зависимости от маршрутизатора). Вводим логин и пароль. Там смотрим свой IP и настройки сети.
Затем необходимо обратиться к провайдеру интернет-подключения, сообщить данные, которые смотрели в роутере и он всё перенастроит.
Терминология NAT
Для NAT важно различать внутреннюю и внешнюю сеть. К внутренней относятся все сети, которые необходимы в преобразовании, к внешней – все остальные сети.
Система имеет 4 разновидности адресов:
- внутренний и внешний локальный;
- внутренний и внешний глобальный.
В задачи внутреннего входит преобразование механизмов NAT, внешний служит адресом устройства, куда необходимо войти. Под локальным понимают тот, который бывает во внутренних, а глобальным – во внешних сетях.
Как проверить находится ли компьютер за NAT
Для этого достаточно определить IP компьютера пользователя. Если какой-то адрес попадает в диапазоны (используются только для локальных сетей):
- 10.0. 0. 0 — 10. 255.255.255;
- 172.Х. 0. 0 — 172. Х.255.255 (Х принимает значение от 16 до 31);
- 192.168. Х. 0 — 192.168.Х.255 (Х чаще всего 0 или 1, принимает значения от 0 до 255).
Это значит, что данный компьютер находится в локальной сети и пользователь в NAT.
Настройки NAT, как сделать его открытым
Чтобы настроить NAT в роутере, нужно зайти в браузер, набрать 192.168.1.1 или 192.168.0.1 (адрес роутера) после чего потребуется ввести логин с паролем (обычно Admin/Admin). Затем находится поле Configuration (настройки), потом Network (сеть) и Routing (маршруты или маршрутизация). В новом окне выбирают Policy Routing (новое правило). Здесь задаются условия маршрутизации. Выбрать можно по различным свойствам, таким, как: пользователи, интерфейсы, IP-адрес источников или получателей, порт назначения.
Задаем условия трафика, там есть несколько назначений: Auto перенаправит трафик в глобальный интерфейс, который указан по умолчанию, Gateway на адрес, имеющийся в настройках, Trunk — на несколько интерфейсов, Interface – на тот интерфейс, который указан.
На сервере настраивается следующим образом: в начале находится Диспетчер сервера, на который щёлкают мышкой, потом в новом окошке на добавить роли и компоненты, затем далее, устанавливают удалённый доступ, потом добавить компоненты и продолжить. Затем выбирают службы ролей и отмечают маршрутизация, нажимают на далее. В самом конце на закрыть.
После подключения компьютера к серверу необходимо его настроить в NAT. В меню пуск находится окно администрирование — маршрутизация и удалённый доступ. Для активации нужно нажать на «включить маршрутизацию и удалённый доступ». Затем на «далее» и выбрать преобразование сетевых адресов NAT. Потом нажимаем на интернет и включаем базовые службы назначения. Продолжаем несколько раз нажимать на «далее» и последний раз на «готово».
Сделать NAT открытым может помочь провайдер с которым клиент заключил договор на поставку интернет услуг, просто необходимо обратиться к нему с этим вопросом.
Технология NAT loopback и NAT Traversal
Суть NAT loopback в том, что если пакет попадает из внутренней сети на IP-адрес роутера, то такой пакет будет принят, как внешний и на него будут распространяться брандмауэрные правила для внешних соединений. После успешного прохождению пакета через брандмауэр вступит в работу Network Address Translation, который будет посредником для двух внутрисетевых машин. Получается следующее:
- снаружи локальной сети можно узнать о настройках сетевой службы;
- зайти на сервер по имени домена, который находится в локальной сети. Без функции loopback (или hairpinning) данные действия были бы невозможными, нужно было бы для любого домена настраивать файл hosts;
- основной минус – увеличение нагрузки на роутер с хабом.
NAT Traversal – это возможности у сетевых приложений определить то, что они располагаются за границами устройства. В этом случае Network Address Translation оказывает содействие в том, чтобы определить внешний IP-адрес данного устройства и сопоставлять порты, чтобы NAT пересылал используемые приложениями пакеты с внешнего порта на внутренний. Все эти процессы выполняются автоматически. Без них пользователю пришлось бы вручную сопоставлять настройки портов и вносить в разные параметры изменения. Но есть и минусы – нужно проявлять осторожность для таких приложений – они обладают возможностями широкого контроля над устройствами, а следовательно могут появится уязвимости.
Что такое 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 — адрес шлюза маршрутизатора.
Как теперь разобрать является ли адрес локальным или же напрямую «смотрит» в интернет. Согласно спецификации, существует четыре диапазона адресов, которые ни при каких обстоятельствах не используются в интернете, а являются исключительно локальными:
- 0.0.0 — 10.255.255.255
- Х.0.0 — 172.Х.255.255, где Х в диапазоне от 16 до 31.
- 168.0.0 — 192.168.255.255
- 254.0.0 — 169.254.255.255
В том случае, когда адрес машины попадает в один из этих диапазонов, следует считать, что компьютер находится в локальной сети или «за» NAT. Можно также дополнительно использовать специальные службы, которых есть множество в интернете для определения реального IP адреса. Теперь стало понятнее находится ли компьютер за 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 на маршрутизаторе
Что такое 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 остается неизменным.