Что такое nat в роутере
NAT: что такое в роутере и как ей пользоваться?
В Интернете встречается много вопросов по поводу NAT, что это такое в роутере, и какие функции выполняет. Простыми словами, это механизм, позволяющий всему оборудованию локальной сети (мобильным устройствам, планшетам, ПК, ноутбукам) использовать только один общедоступный IP адрес для подключения к Интернету. Ниже рассмотрим, в чем особенности этой опции, для чего она необходима, и как правильно ее настроить в маршрутизаторе.
Что такое NAT в роутере
Кратко рассмотрим особенности NAT, и что это в роутере. Расшифровывается как Network Address Translation, а именно «трансляция сетевых адресов». С помощью процесса компьютер или другое оборудование получает доступ к Интернету.
Простыми словами, NAT в роутере — процесс перевода внутренних (приватных) адресов во внешние. Такая функция применяется всеми маршрутизаторами вне зависимости от установленных настроек и цены.
Многие путают NAT в роутере с фаерволом. Задача Firewall в запрете доступа к ресурсу по конкретному порту, к примеру, UDP или TCP. Он может устанавливаться на любом оборудовании для фильтрации трафика. Что касается NAT, он дает разрешение или запрещает доступ к определенному адресу или диапазону IP внутри сети.
NAT бывает трех видов:
- Static — примеряется только компаниями, у которых много IP. Адреса доступа не меняются и должны быть открыты извне. К примеру, для входа на Интернет-ресурс необходимо знать его IP-адрес и порт. Благодаря автоматическому вводу последнего достаточно знать только DNS. При этом адресов Интернет-пользователя не видно в Сети.
- Dynamic — роутер сам выбирает среди IP-адресов тот, который в дальнейшем вносится в таблицу NAT. Информация удаляется сразу после отключения от Интернета.
- Overload — оптимальный вариант для физических лиц. Пользователи получают один адрес, а также два порта (задаются лично). Вход возможен только с помощью специальной программы.
Много вопросов касается еще одного термина — что такое NAT loopback в роутере. Здесь все просто. Если пакет поступает из внутренней сети на IP-адрес, он принимается в качестве внешнего. Это означает, что на него распространяются правила брандмауэра. После прохождения firewall в силу вступает NAT роутера, являющийся неким посредником. В результате удается следующее:
- Получить сведения о настройках сетевой службы.
- Войти на сервер по имени домена, находящегося в локальной сети.
Существует также NAT Traversal, позволяющий сетевым приложениям определить тот факт, что они находятся вне границ устройства. В таких ситуациях NAT применяется для определения IP адреса устройства и сопоставления портов.
Для чего он нужен
Выше мы кратко затронули функции NAT в роутере, что это, и как работает. Но назначение такой технологии заслуживает более глубокого изучения. При проектировании сети подразумевается применение локальных IP-адресов, которые используются внутри компании или площадки для локального взаимодействия. Иными словами, они не маршрутизируются во «всемирной паутине». Для обращения к устройствам вне локальной платформы приватный адрес необходимо перевести в публичный. Для этого и существует NAT.
Благодаря действию такой функции, устройство с персональным адресом IPv4 может подавать запросы вне частной интернет-сети. Дополнительное преимущество механизма состоит в обеспечении конфиденциальности и безопасности. На практике маршрутизаторы NAT могут настраиваться с одним или группой общедоступных адресов (пулом NAT). Как только оборудование вышло во внешнюю интернет-сеть, роутер с поддержкой технологии переводит внутренний адрес в общедоступный. При этом маршрутизатор NAT, как правило, функционирует на границе Stub (тупиковой) сети, имеющей одно соединение (вход/выход).
С помощь NAT все устройства, подключенные к интернет-сети, используют один IP-адрес внешнего интерфейса. Простыми словами, сетевые пакеты корректируются и в них происходит подмена IP-адреса источника и назначения.
Подводя промежуточные итоги, можно выделить следующие особенности NAT в роутере:
- Преобразование локального адреса в общедоступный. После получения ответа происходит обратный процесс.
- Предотвращение и ограничение обращения извне к устройствам локальной сетки. Таким способом скрываются внутренние сервисы ПК и серверов от обращений из Интернет-сети.
- Настройка переадресации портов. Последние могут использоваться для открытия доступа из Интернета к сетевому NAS-хранилищу или к серверу «локалки».
- Подмена номера порта для обращения к иному порту. К примеру, для перевода управления роутером из Интернета на иной источник, если провайдером блокируется стандартный порт 80 и необходимо получить возможность применения порта 8080 для доступа к настройкам.
С помощью NAT частная сеть подключается к Интернету через общий публичный IP, которые выдается провайдером, а ресурс адресов тратится более экономично. Кроме того, применение опции важно с позиции безопасности. В частности, можно скрыть локалку от пользователей из вне, что исключает несанкционированный доступ.
Как пользоваться функцией NAT
С учетом сказанного возникает вопрос, как открыть NAT для своего роутера. В большинстве случаев опция включена по умолчанию. Если это не так, необходима ее активация и дополнительная настройка. Алгоритм действий следующий:
- Войдите в любой веб-проводник на ПК, после чего в поисковой строке введите адрес роутера (к примеру, 192.168.1.1.).
- Авторизуйтесь для входа в настройки путем ввода слов Admin и Admin.
- Войдите в Настройки, а там Сеть и Маршрутизация.
- Жмите на Новое правило. Таким способом удается задать условия маршрутизации. Здесь доступно пять направлений — с помощью имени DNS, через порт или трансляцию по пользователю, через подмену адреса или сетевой интерфейс.
- Задайте условия трафика путем выбора одного из вариантов. На выбор доступны следующие решения — Auto, Interface, Gateway, Trunk. На следующем этапе жмите Далее, а после Закрыть.
Для каждого роутера принципы включения NAT могут отличаться. К примеру, в Zyxel необходимо войти в настройки маршрутизатора, перейти в раздел Network — Routing, а там в Policy routing, Здесь будет тумблер, позволяющий включить службу. Далее задаются настройки в группе Criteria. Если необходимо отключить NAT в роутере, проделайте рассмотренные выше шаги и деактивируйте службу. В качестве альтернативы отключению можно перевести маршрутизатор в другой режим работы.
Если возникает необходимость изменения типа NAT, войдите в настройки роутера, посмотрите IP и настройки сетевого подключения. После этого звоните провайдеру для получения помощи в перенастройке на нужный тип.
Плюсы и минусы использования
Перед тем как отключить NAT на роутере или до включения функции обратите внимание на ее плюсы и минусы.
- Экономия IP адресов. Актуально в случае, когда опция применяется в режиме PAT с передачей только нескольких IP-адресов в один публичный. По такой технологии работают почти все.
- Защита локальной сети от взлома извне с сохранением возможности выхода наружу. Иными словами, исходящие пакеты пропускаются, а ответные запросы должны соответствовать созданной трансляции. Если условие не выполняется, данные не пропускаются.
- Скрытие внутренних сервисов или хостов. При желании можно подменить внутренний порт на другой (официально зарегистрированный). Такая методика позволяет повысить безопасность и скрыть «непубличные» сайты.
- Повышение гибкости соединений с общедоступной Интернет-сетью.
- Из-за преобразования множества внутренних адресов в один появляются трудности с идентификацией участников. Во избежание проблем приходится хранить данные по логам трансляций.
- Применение NAT в роутере повышает задержку переключения, ведь перевод IPv4 требует временных затрат.
- Старые протоколы не могут работать при появлении между постами трансляции IP-адресов. Для исправления ситуации могут применяться межсетевые экраны.
- Риск нарушения служб или протоколов, нуждающихся в инициации соединений TCP из внешней сети.
- При попытке подключения нескольких пользователей к одному сайту возникает подозрение на DoS атаку. В результате могут возникнуть трудности с подключением.
- Если роутер не поддерживает Universal Plug & Play, процесс настройки усложняется (когда требуется взаимодействие с пиринговыми сетями).
Если говорить в целом, технологию NAT в роутере трудно переоценить. С ее помощью обеспечивается удобство выхода в Интернет, гарантируется безопасность подключения и гибкость настройки. При этом решение о включении и отключении режима необходимо принимать самостоятельно.
Что такое NAT, как его настроить и использовать — NAT, PAT, Static NAT, Dynamic NAT
Доброго времени суток, дорогие читатели! Ну, что давайте про NAT .
Сегодня затронем подробнее тему несколько болезненную и довольно непонятную, но более непонятную, чем болезненную.
В большей степени эта проблема касается тех, кто играет в многопользовательские игры и коротко эта проблема звучит примерно так: «ПОЧЕМУ КО МНЕ НИКТО НЕ ЗАХОДИТ?». Для других эта проблема выглядит несколько иначе, а именно:
- Почему не качает торрент?
- Почему пользователи/друзья/знакомые/неизвестные личности не могут подключиться к FTP, WEB, VOIP ( TS, Mamble , ведро) и прочим серверам, которые вы так долго пытались настроить и даже проверяли что у вас все работает?
- Почему ваш личный домашний сервер пустует? Может это вселенский заговор?
Но, однако, нет никакого заговора, виновник всех этих бед находится рядом с вами и хитро подмигивает вам лампочками, а зовут его. роутер, да-да, тот самый, который раздает вам интернет на все ваши (и может быть соседские) девайсы.
Если коротко, то пользователи из интернета просто не могут к вам подключиться, потому что ваш роутер их не пускает, но он делает это не просто из прихоти, а потому, что не знает о том, что все эти люди хотят подключиться именно к вам. Вот он и думает, что они что-то хотят от него самого.
Да, только что я вам обрисовал для чего нужен NAT . А теперь о том, что это такое.
Общее определение
NAT (Network Address Translation) — это такой механизм, который позволяет роутеру определять какие сервисы находятся за роутером и должны быть доступны из интернета, чтобы пользователи оттуда могли этими сервисами пользоваться (определение из вики я брать не стал, т.к. оно заумное и не всем понятное).
NAT присутствует во всех роутерах и серверных операционках в том или ином виде. В роутерах это обычно называется port forwarding , в линуксах iptables , на виндовых серверах — в специальной оснастке. А теперь давайте поговорим о различных типах NAT .
Тип первый, Static NAT
Static NAT не требуется для дома, а нужен в том случае, если провайдер выделил несколько IP адресов (внешние или «белые» адреса) вашей компании, и вам нужно, чтобы некоторые серверы всегда были видны из интернета, при этом их адреса бы не менялись.
Т.е. происходит преобразование адресов 1-1 (один внешний IP назначается одному внутреннему серверу). При такой настройке ваши серверы всегда будут доступны из интернета на любом порту.
Кстати говоря о портах, попробую несколько углубиться в эту тему, но не слишком сильно. Дело в том, что любой сервис, любая программа обращается к компьютеру, серверу, роутеру или сервису (будь то почта, веб-страничка или любой другой сервис) не только по IP адресу, но и по порту. Например, чтобы вам открыть страничку google.com со своего компьютера, вам надо ввести две вещи: IP адрес ( DNS имя) и.. порт.
Но постойте, возмутитесь вы, ведь никакого порта вы не вводите и все отлично открывается!
Так в чем же дело в статике?
Дело в том, что, нет, в DNS записи порт не прячется, как некоторые могли бы подумать, этот самый порт ваш браузер сам подставляет в адресную строку вместо вас. Вы можете легко это проверить. Введите в адресной строке google.com:80 и увидите, что страничка гугла открылась, но волшебные » :80 » внезапно исчезли.
Так вот, чтобы пользователям из интернета вас видеть и иметь возможность к вам подключаться, они должны знать две вещи: ваш IP адрес и ваш порт, на котором расположен ваш сервис.
При статическом NAT вам будет фиолетово какой порт использует сервер или программа, т.к. сервер становится полностью доступен из интернета. Чтобы уже ограничить используемые порты, настраивается на этом сервере межсетевой экран.
Если провести параллель, то IP адрес — это адрес вашего дома, а порт — это номер вашей квартиры. Таким образом, чтобы люди могли к вам попасть, им нужно знать эти две вещи, иначе они вас просто не найдут.
Схема работы статического NAT
Попробую рассказать о схеме работы статического NAT .
Например, провайдер выдал вам четыре IP адреса 87.123.41.11, 87.123.41.12, 87.123.41.13, 87.123.41.14 , а у вас есть три сервера и роутер. Вы назначаете роутеру, например, первый адрес из этого диапазона ( 87.123.41.11 ), а остальные делите между серверами (сервер 1 — .12, сервер 2 — .13, сервер 3 — .14 ).
Чтобы пользователи из интернета могли подключаться на эти серверы, им достаточно будет ввести внешние IP адреса серверов. Например, когда пользователь подключается на адрес 87.123.41.12 , то роутер перенаправляет его на сервер 1 и пользователь уже общается с сервером, хотя не знает что реальный адрес сервера на самом деле другой ( 192.168.1.2 ). Такая запись в NAT таблице роутера будет храниться всегда.
Преимущества данного способа:
- реальные адреса серверов будут скрыты;
- Ваши серверы всегда будут видны в интернете.
- Злоумышленники могут на них попытаться пробиться или осуществлять какие-нибудь атаки;
- Требуется несколько внешних адресов, что может быть затратно.
Тип второй, Dynamic NAT
Динамический NAT отличается от статического немногим. Он используется почти также, но с тем лишь исключением, что ваши сервера не видны из интернета, но самим серверам этот интернет нужен. Суть его в том, что вам также выдаются несколько внешних IP адресов от провайдера, после чего роутер сам распределяет адреса между «нуждающимися».
Т.е. как только сервер или компьютер захотел выйти в интернет, роутер смотрит на свой список внешних адресов, выданных провайдером, и выдает один адрес из этого списка, при этом помечает что вот он выдал такой-то внешний адрес такому-то серверу или компьютеру (таблица NAT ).
При этом срок жизни такой записи длится очень короткое время и как только сервер/компьютер перестал требовать доступ в интернет, этот адрес удаляется из таблицы NAT роутера.
Существенный недостаток в том, что количество серверов и компьютеров, которым требуется доступ в интернет, не должен сильно превышать кол-во выданных провайдером внешних адресов.
Недостаток и преимущества динамики
Ведь как только у роутера закончатся адреса в списке, он не сможет пустить новые компьютеры или серверы в интернет, пока не освободится хотя бы один внешний адрес.
В данном примере провайдер выдал нам всего два внешних адреса: 87.123.41.11 и 87.123.41.12 . В этом случае мы IP 87.123.41.11 назначаем роутеру, а оставшийся адрес будет автоматически отдаваться тому серверу, который первым попросит доступ в интернет (в данном примере это был сервер 2), остальные серверы будут ждать, когда первый закончит и этот IP адрес освободится.
Преимущества данного способа:
- Всякие злоумышленники не смогут определить по каким адресам доступны ваши серверы, т.к. их адреса будут все время меняться;
- Не нужно вручную назначать IP адреса, роутер сам распределит.
- Требуется несколько внешних адресов;
- Кол-во хостов в вашей сети не должно быть сильно больше, чем выданных провайдером IP адресов.
к содержанию ↑
Тип третий, Port Address Translation (PAT), также известный как NAT Overload или NAT Masquerading
Это именно то, что актуально для обычного рядового пользователя. Суть данного метода в том, что вам провайдер выдает только один внешний адрес (например 87.123.41.12 ), при этом вы каждому компьютеру или серверу назначаете какой-нибудь порт .
Например, нам нужно, чтобы пользователи из интернета могли подключаться к торрент-клиенту на ПК 1 и 2 , к серверу Teamspeak на сервере 1, серверу FTP на сервере 2, веб-сайту на сервере 3 (по протоколу http и https), плюс ко всему на ПК 1 и 2 нужен будет удаленный доступ. Теперь затронем немного тему внутренних и внешних портов (да, такое тоже есть).
Внутренний порт — это порт, который использует программа на том компьютере или сервере, на котором находится. Внешний порт — это порт, который вы хотите открыть на роутере, чтобы на него подключались пользователи. Часто внутренний и внешний порты совпадают, но далеко не всегда.
Еще немного про порты и другие нюансы
Многие программы (не только лишь все) имеют вшитые порты без возможности перенастройки, либо, к примеру, у вас есть два Веб-сервера на винде (так называемый IIS ), которые работают на 80 порту каждый и вам нужно дать доступ из интернета на оба сервера.
Здесь вы откроете на роутере одному серверу порт 80 , а оставшемуся вам придется выбрать другой порт (например 8080 ).
Итого, на роутере мы настраиваем порты таким образом:
Где * — стандартный порт, который использует программа (т.е. вы ее установили и ничего не настраивали);
** — стандартный порт, который использует сервис и который нельзя сменить.
Наглядная схемка ниже:
Теперь я постараюсь объяснить почему я написал именно эти порты.
Немного деталей про порты
- Для сервера Teamspeak (TS) я порт не менял, т.к. такой сервер у нас один и пользователям не придется вообще вводить его порт. Они просто вбивают у себя адрес 87.123.41.12 и попадают на наш сервер TS , удобно и практично;
- Для FTP сервера я порт поменял, т.к., строго говоря, FTP -сервер не должен быть доступен по стандартному порту, на него могут лазить недобросовестные люди. А так вы говорите тем, кому надо, чтобы подключались на 87.123.41.12:21000 и они попадут на ваш FTP -сервер;
- Для Веб-сервера я http порт не менял опять же из-за удобства, чтобы пользователям не надо было вводить адрес вместе с портом в адресной строке. Они просто вводят 87.123.41.12 и подключаются на ваш Веб-сервер. Порт HTTPS же я поменял для наглядности. Пользователям, чтобы попасть на ваш Веб-сервер по защищенному каналу, придется вводить в адресной строке адрес 87.123.41.12:444 ;
- С торрентами в общем-то все просто, какой порт настроен в самой программе, такой и настраивается на роутере;
- Порт игрового сервера, где в качестве примера я взял обычный стимовский игровой сервер (Dedicated Server), я также не менял, а оставил стандартный;
- А вот с RDP ситуация интересная. Дело в том, что на каждом компьютере служба RDP работает по порту 3389 и это никак не поменять без своего RDP сервера (такие тоже бывают). Поэтому, чтобы иметь возможность подключаться на ПК 1 и 2 я задал на роутере порты 33891 и соотв. 33892 , ибо так проще помнить где какой используется. Таким образом, введя в RDP клиенте адрес 87.123.41.12:33891 мы попадем на ПК 1, а введя 87.123.41.12:33892 мы соотв. попадем на ПК 2 .
Подытожив все это получаем, что удаленным пользователям всеравно какие у нас внутренние порты, они о них не знают и знать не могут. Эта информация нужна только нашему роутеру, чтобы он мог пересылать запросы туда, куда они и должны попадать.
Преимущества и недостатки третьего варианта
Теоретически, вы можете назначить одному IP адресу до 131072 (2 * 2^16) приложений. Почему я говорю «приложений», а не компьютеров/серверов?
Потому что один комп или сервер, как вы уже заметили выше, может использовать несколько различных приложений (при этом одно приложение может использовать несколько портов), при этом каждый порт может быть двух типов: TCP и UDP .
Углубляться в это в рамках этой статьи я не буду, в этом нет необходимости.
Для любой программы есть хелп, в котором написано какие порты ей нужны для работы, если их нельзя сменить. Многие приложения позволяют вам самим назначить какие порты какого типа использовать, таким образом упрощая вашу задачу. Для остальных же есть такой замечательный ресурс, как portforward.com.
- Преимущество такого метода в том, что вы открываете доступ из интернета именно для определенной программы на определенном компьютере/сервере, все остальные порты компьютера/сервера остаются закрытыми;
- Недостаток в том, что требуется все порты открывать вручную (иногда программы делают это за вас при помощи технологии UPnP , но такое бывает не всегда).
к содержанию ↑
Послесловие
Получилось несколько сумбурно, да и тема довольно непростая, но надеюсь теперь при слове NAT вас не будет бросать в дрожь 🙂
Как и всегда, если есть какие-то вопросы, мысли, дополнения и всё такое прочее, то добро пожаловать в комментарии к этой записи.
PS : За существование статьи отдельное спасибо другу проекта и члену нашей команды под ником “barn4k“
Функция NAT в роутере – что это такое простыми словами
Доброго времени суток, уважаемые гости. Сегодня поговорим о NAT: что это в роутере за функция, можно ли обойтись без нее, обязательно ли нужно включать и как открыть NAT своего роутера.
Об адресации в локальной сети
Компьютер может подключаться к глобальной паутине несколькими способами. Если это выполняется напрямую, он получает собственный динамический или статистический IP адрес, по которому его можно всегда найти.
При подключении с помощью модема, собственный внешний IP адрес получает только модем (как вариант, маршрутизатор со встроенным модемом), все прочие девайсы уже являются участниками собственной локальной сети и получают адресацию внутри нее.
Роутер берет на себя функцию распределения исходящего и входящего трафика между шлюзом и клиентами интернета. Из-за нестыковки сетевых адресов, возможны некоторые глюки:
- Некорректно работают торрент-загрузчики и прочий софт для пилинговых сетей;
- Не всегда удается подключиться к серверу онлайн игры, особенно если он пиратский;
- Не проходят запросы извне к серверу внутри локальной сети.
Эти недостатки можно устранить при правильной настройке на маршрутизаторе.
Что такое режим NAT
Если совсем простыми словами, то НАТ – это интерпретация внутренних сетевых адресов локалки во внешние адреса интернета. Независимо от модели, стоимости и используемого протокола подключения эта функция присутствует абсолютно во всех роутерах.
Разница может быть только в наличии или отсутствии дополнительной опции nat loopback (обратная петля), когда пакет из локальной сети, приходящий на внешний порт маршрутизатора, считается пришедшим извне, поэтому обрабатывается согласно установленным брандмауэром или антивирусной программой сценариям.Как правило, нет необходимости отдельно включить NAT при настройке маршрутизатора: функция активна по умолчанию.
Более того, часто отключить аппаратный NAT невозможно: производитель убирает эту опцию в качестве «защиты от дурака», дабы слишком любопытный пользователь, который любит поиграть с настройками, не особо в них разбираясь, вообще не остался без интернета.
По умолчанию маршрутизатор находится в nat окружении, запрещая извне обращаться к девайсу внутри локалки: весь трафик проходит только через него.
Как определить, находится ли компьютер за NAT
Проверить, скрыт ли компьютер с помощью режима NAT или транслирует в сеть свой реальный IP, можно с помощью простого способа.
Выполняется он аналогично в любой версии Виндовс – запустить командную строку (нажать кнопку «Пуск» и в строке «Выполнить» ввести команду cmd). В открывшемся интерфейсе следует вручную ввести команду ipconfig. На экран выведутся такие данные:
- IP – реальный адрес, присвоенный компьютеру;
- Subnet mask – маска подсети;
- Gateway – адрес шлюза.
Согласно принятой спецификации, исключительно внутри локалки всегда используются следующие диапазоны:
- 1.0.0.0 – 10.255.255.255;
- 2.Х.0.0 – 172.Х.255.255 (Х в диапазоне от 16 до 32);
- 168.0.0.0 – 192.168.255.255;
- 254.0.0. – 169.254.255.255.
Если адрес компьютера попадает в один из этих диапазонов, то это означает, что устройство находится в локальной сети за НАТом. Самый распространенный пример – адрес 192.168.1.Х – именно такой диапазон используется для роутера и подсети большинством производителей.
Где найти в настройках маршрутизатора
Относительно того, нужно ли включать эту опцию дополнительно, то могу сказать что в большинстве моделей маршрутизаторов вай-фай она активирована по умолчанию. Проверить или настроить самостоятельно это можно, перейдя в браузере на страницу настроек роутера – как правило, для этого нужно ввести его сетевой адрес.
Нужная функция находится во вкладке Network в разделе Routing. Если она включена, то статус будет отображаться как Enable.
Также для вас будут полезны статьи «UPNP – что такое в роутере» и «Устройство роутера». Буду благодарен всем, кто поделится этой публикаций в социальных сетях. Еще увидимся!
Технология преобразования сетевых адресов, механизмы PAT и NAT
Технология преобразования сетевых адресов (NAT)
Ещё одним механизмом, позволяющим поддерживать сетевую безопасность , является технология NAT .
NAT ( Network Address Translation – преобразование сетевых адресов) – это механизм в сетях TCP/IP , позволяющий преобразовывать IP-адреса транзитных пакетов. Механизм NAT описан в RFC 1631, RFC 3022.
Преобразование адресов методом NAT может производиться почти любым маршрутизирующим устройством – Интернет -маршрутизатором, сервером доступа, межсетевым экраном. Наиболее популярным является Source NAT (SNAT), суть механизма которого состоит в замене адреса источника (source) при прохождении пакета в одну сторону и обратной замене адреса назначения ( destination ) в ответном пакете. Наряду с адресами источника/назначения могут также заменяться номера портов источника и назначения.
Помимо SNAT, т.е. предоставления пользователям локальной сети с внутренними адресами доступа к сети Интернет , часто применяется также Destination NAT, когда обращения извне транслируются межсетевым экраном на сервер в локальной сети, имеющий внутренний адрес и потому недоступный из внешней сети непосредственно (без NAT ).
На рисунках ниже приведен пример действия механизма NAT .
Пользователь корпоративной сети отправляет запрос в Интернет , который поступает на внутренний интерфейс маршрутизатора, сервер доступа или межсетевого экрана (устройство NAT ).
Устройство NAT получает пакет и делает запись в таблице отслеживания соединений, которая управляет преобразованием адресов.
Затем подменяет адрес источника пакета собственным внешним общедоступным IP-адресом и посылает пакет по месту назначения в Интернет .
Узел назначения получает пакет и передает ответ обратно устройству NAT .
Устройство NAT , в свою очередь , получив этот пакет, отыскивает отправителя исходного пакета в таблице отслеживания соединений, заменяет IP- адрес назначения на соответствующий частный IP- адрес и передает пакет на исходный компьютер . Поскольку устройство NAT посылает пакеты от имени всех внутренних компьютеров, оно изменяет исходный сетевой порт и данная информация хранится в таблице отслеживания соединений.
Существует 3 базовых концепции трансляции адресов:
- статическая (SAT, Static Network Address Translation),
- динамическая (DAT, Dynamic Address Translation),
- маскарадная (NAPT, NAT Overload, PAT).
Статический NAT отображает локальные IP-адреса на конкретные публичные адреса на основании один к одному. Применяется, когда локальный хост должен быть доступен извне с использованием фиксированных адресов.
Динамический NAT отображает набор частных адресов на некое множество публичных IP-адресов. Если число локальных хостов не превышает число имеющихся публичных адресов, каждому локальному адресу будет гарантироваться соответствие публичного адреса. В противном случае, число хостов, которые могут одновременно получить доступ во внешние сети, будет ограничено количеством публичных адресов.
Маскарадный NAT (NAPT, NAT Overload , PAT , маскарадинг) – форма динамического NAT , который отображает несколько частных адресов в единственный публичный IP- адрес , используя различные порты. Известен также как PAT ( Port Address Translation ).
Механизмов взаимодействия внутренней локальной сети с внешней общедоступной сетью может быть несколько – это зависит от конкретной задачи по обеспечению доступа во внешнюю сеть и обратно и прописывается определенными правилами. Определены 4 типа трансляции сетевых адресов:
- Full Cone (Полный конус)
- Restricted Cone (Ограниченный конус)
- Port Restricted Cone (Порт ограниченного конуса)
- Symmetric (Симметричный)
В первых трех типах NAT для взаимодействия разных IP-адресов внешней сети с адресами из локальной сети используется один и тот же внешний порт . Четвертый тип – симметричный – для каждого адреса и порта использует отдельный внешний порт .
При использовании NAT , работающему по типу Full Cone, внешний порт устройства (маршрутизатора, сервера доступа, межсетевого экрана) открыт для приходящих с любых адресов запросов. Если пользователю из Интернета нужно отправить пакет клиенту, расположенному за NAT ’ом, то ему необходимо знать только внешний порт устройства, через который установлено соединение. Например, компьютер за NAT ’ом с IP-адресом 192.168.0.4 посылает и получает пакеты через порт 8000, которые отображаются на внешний IP- адрес и порт , как 10.1.1.1:12345. Пакеты из внешней сети приходят на устройство с IP-адресом:портом 10.1.1.1:12345 и далее отправляются на клиентский компьютер 192.168.0.4:8000.
Во входящих пакетах проверяется только транспортный протокол; адрес и порт назначения, адрес и порт источника значения не имеют.
При использовании NAT , работающему по типу Restricted Cone, внешний порт устройства (маршрутизатора, сервера доступа, межсетевого экрана) открыт для любого пакета, посланного с клиентского компьютера, в нашем примере: 192.168.0.4:8000. А пакет, пришедший из внешней сети (например, от компьютера 172.16.0.5:4000) на устройство с адресом:портом 10.1.1.1:12345, будет отправлен на компьютер 192.168.0.4:8000 только в том случае, если 192.168.0.4:8000 предварительно посылал запрос на IP- адрес внешнего хоста ( в нашем случае – на компьютер 172.16.0.5:4000). То есть, маршрутизатор будет транслировать входящие пакеты только с определенного адреса источника (в нашем случае компьютер 172.16.0.5:4000), но номер порта источника при этом может быть любым. В противном случае, NAT блокирует пакеты, пришедшие с хостов, на которые 192.168.0.4:8000 не отправлял запроса.
Механизм NAT Port Restricted Cone почти аналогичен механизму NAT Restricted Cone. Только в данном случае NAT блокирует все пакеты, пришедшие с хостов, на которые клиентский компьютер 192.168.0.4:8000 не отправлял запроса по какому-либо IP-адресу и порту. Mаршрутизатор обращает внимание на соответствие номера порта источника и не обращает внимания на адрес источника. В нашем примере маршрутизатор будет транслировать входящие пакеты с любым адресом источника, но порт источника при этом должен быть 4000. Если клиент отправил запросы во внешнюю сеть к нескольким IP-адресам и портам, то они смогут посылать пакеты клиенту на IP- адрес : порт 10.1.1.1:12345.
Symmetric NAT существенно отличается от первых трех механизмов способом отображения внутреннего IP-адреса:порта на внешний адрес : порт . Это отображение зависит от IP-адреса:порта компьютера, которому предназначен посланный запрос . Например, если клиентский компьютер 192.168.0.4:8000 посылает запрос компьютеру №1 (172.16.0.5:4000), то он может быть отображен как 10.1.1.1:12345, в тоже время, если он посылает с того же самого порта (192.168.0.4:8000) на другой IP- адрес , он отображается по-другому (10.1.1.1:12346).
Компьютер №1 (172.16.0.5:4000) может отправить пакет только на 10.1.1.1:12345, а компьютер №2 (169.10.2.8:6000) – только на 10.1.1.1:12346. Если любой из них попытается отправить пакеты на порт , с которого он не получал запроса, NAT заблокирует данные пакеты.
Внешний IP- адрес : порт открыт только тогда, когда клиентский компьютер отправляет данные во внешнюю сеть по определенному адресу:порту.
NAT выполняет три важных функции.
- Позволяет сэкономить IP-адреса, транслируя несколько внутренних IP-адресов в один внешний публичный IP-адрес (или в несколько, но меньшим количеством, чем внутренних). По такому принципу построено большинство сетей в мире: на небольшой район домашней сети местного провайдера или на офис выделяется 1 публичный (внешний) IP-адрес, за которым работают и получают доступ интерфейсы с частными (внутренними) IP-адресами.
- Позволяет предотвратить или ограничить обращение снаружи к внутренним хостам, оставляя возможность обращения из внутренней сети во внешнюю. При инициации соединения изнутри сети создаётся трансляция. Ответные пакеты, поступающие снаружи, соответствуют созданной трансляции и поэтому пропускаются. Если для пакетов, поступающих из внешней сети, соответствующей трансляции не существует (а она может быть созданной при инициации соединения или статической), они не пропускаются.
- Позволяет скрыть определённые внутренние сервисы внутренних хостов/серверов. По сути, выполняется та же указанная выше трансляция на определённый порт, но возможно подменить внутренний порт официально зарегистрированной службы (например, 80-й порт TCP (HTTP-сервер) на внешний 54055-й). Тем самым, снаружи, на внешнем IP-адресе после трансляции адресов на сайт (или форум) для осведомлённых посетителей можно будет попасть по адресу http://dlink.ru:54055, но на внутреннем сервере, находящимся за NAT, он будет работать на обычном 80-м порту.
Однако следует упомянуть и о недостатках данной технологии:
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
- Главная
- Проброс портов и Hairpin NAT в роутерах Mikrotik
Проброс портов и Hairpin NAT в роутерах Mikrotik
- Автор: Уваров А.С.
- 08.07.2019
Проброс портов — на первый взгляд тривиальная повседневная задача, которая не должна вызывать никаких затруднений. Действительно, в бытовых роутерах это так, но если речь идет об оборудовании Mikrotik, то сложности могут не заставить себя ждать. А все потому, что RouterOS дает в руки администратора богатые сетевые возможности, требуя в ответ понимания работы сетей хотя бы на базовом уровне. Конечно, можно настроить все по готовой инструкции, но гораздо лучше понимать каждое свое действие, и именно для тех, кто хочет разобраться предназначена эта статья.
Проброс портов
Проброс, он же форвардинг, портов — что это такое? Это технология, которая позволяет обращаться к узлам, находящимся за маршрутизатором путем перенаправления трафика для определенных портов с внешнего адреса маршрутизатора на внутренний адрес узла в локальной сети. Это становится возможным благодаря технологии NAT.
Давайте рассмотрим небольшую схему, которая поможет понять принцип действия проброса портов.
Допустим, некий удаленный ПК хочет обратиться к нашему веб-серверу, который находится за маршрутизатором в локальной сети. Но обратиться он может только по внешнему адресу маршрутизатора (в нашем примере 192.168.3.113), на который мы пробросили порт 80 веб-сервера. Поэтому он формирует пакет, в котором адресом назначения выступает маршрутизатор и отправляет его получателю, в качестве адреса источника он указывает собственный адрес.
Маршрутизатор, получив такой пакет выполняет замену адреса назначения с собственного, на адрес веб-сервера, также, при необходимости, он может изменить и порт назначения. После чего пакет отправляется в локальную сеть и достигает веб-сервера. Данные о преобразовании заносятся в специальную таблицу трансляции NAT.
Нужно ли менять адрес отправителя? Нет, если маршрутизатор выступает основным шлюзом сети, а в подавляющем большинстве случаев это так. Веб-север обработает запрос, а так как он ничего не знает о сети получателя, то обратный пакет будет направлен шлюзу по умолчанию, т.е. назад нашему маршрутизатору.
Маршрутизатор на основании данных таблицы трансляции выполнит обратное преобразование, заменив на этот раз адрес источника с внутреннего адреса веб-сервера, на свой внешний адрес и отправит пакет запросившему его узлу.
На первый взгляд все понятно, поэтому перейдем к практике. В RouterOS в качестве сетевого фильтра используется iptables, поэтому далее мы будем оперировать его терминами. В таблице NAT используются две цепочки: PREROUTING — в которую попадают все пришедшие на маршрутизатор пакеты и POSTROUTING — через нее проходят все прошедшие через устройство пакеты. В PREROUTING нам доступно действие dst-nat (DNAT), которое позволяет изменить адрес назначения пакета, в POSTROUTING будут доступны src-nat (SNAT) и masquerade, которые позволяют изменить адрес источника пакета.
Мы не даром заостряем на этом особое внимание, так как непонимание процесса прохождения пакета по цепочкам сетевого фильтра способно привести к значительным затруднениям, когда вроде-бы все правила составлены верно, но ничего не работает.
Так для пакета от клиента к веб-серверу и обратно порядок прохождения цепочек будет следующим:
Обратите внимание, что пакет не попадает в цепочки INPUT и OUTPUT, которые используются для собственных пакетов маршрутизатора.
Как правильно выполнить настройку? Перейдем в IP — Firewall — NAT и добавим следующее правило: Chain — dstnat (читай PREROUTING), Dst. Address — 192.168.1.113 — внешний IP-адрес нашего роутера, Protocol — tcp — используемый протокол, если сервис может использовать несколько протоколов, скажем TCP и UDP — потребуется создать отдельное правило для каждого протокола, Dst. Port — 80 — порт, на котором маршрутизатор будет принимать внешние соединения.
На закладке Action укажите: Action — dst-nat — выполняем замену адреса получателя, To Addresses — 192.168.186.195 — внутренний адрес веб-сервера, To Ports — 80 — порт, на котором веб-сервер принимает соединения. Если внешний и внутренний порт совпадают, то последний можно не указывать.
Либо выполните в терминале:
Но это еще не все, после PREROUTING пакет попадет в цепочку FORWARD, в которой, если вы настраивали роутер по нашей инструкции, запрещены любые внешние пакеты, кроме инициированных из локальной сети соединений.
Создадим новое правило. IP — Firewall — Filter Rules, где добавим: Chain — forward — цепочка FORWARD, Protocol — tcp, Dst. Port — 80 — протокол и порт, In. Interface — ether5 — внешний интерфейс вашего роутера. Так как по умолчанию в новых правилах стоит действие accept, на закладку Action можно не переходить.
Располагаться данное правило должно выше правила, запрещающего транзитный трафик из внешней сети во внутреннюю.
Обратите внимание, что если вы пробрасываете порт с изменением номера, скажем внутренний 3389 (RDP) на внешний 3390, то в правиле брандмауэра вы всегда должны указывать внутренний порт, т.е. 3389, так как пакет уже прошел цепочку PREROUTING и данные о получателе в нем уже изменены на адрес и порт внутреннего сервера.
Из терминала это можно сделать командами:
Осталось только проверить работу наших правил, попробуем получить доступ к веб-серверу со внешнего узла:
Как видим, все прекрасно работает.
Hairpin NAT
Все это хорошо, но ровно до тех пор, пока мы не попытаемся получить доступ по внешнему адресу из внутренней сети. Вообще, таких ситуаций следует избегать, предпочтительно использовать для доступа доменные имена и двойной горизонт DNS, когда для внешних пользователей одно и тоже имя разрешается во внешний адрес, а для внутренних — во внутренний. Но это возможно не всегда. Попробовав же обратиться изнутри по внешнему адресу, мы получим ошибку соединения:
Почему так происходит? Давайте рассмотрим еще одну схему:
Первая ее часть нам уже знакома, узел отправляет запрос на внешний адрес маршрутизатора, он заменяет адрес назначения адресом внутреннего сервера и отправляет пакет к нему, адрес отправителя остается неизменным. А вот дальше начинается самое интересное, веб-сервер видит, что отправитель находится в ним в одной сети и отправляет ответ ему напрямую. Но отправитель направлял запрос на внешний адрес сервера и ждет ответа именно от него, поэтому ответный пакет, отправителем которого указан внутренний адрес веб-сервера будет отброшен и связь установить не удастся.
Что же делать? Очевидно, что нужно каким-то образом заставить веб-сервер отвечать не напрямую клиенту, а пересылать пакет обратно маршрутизатору. Здесь нам на помощь придет действие src-nat (SNAT), которое позволяет изменить адрес отправителя, находящееся в цепочке POSTROUTING. В терминах Mikrotik данная настройка носит наименование Hairpin NAT.
Чтобы понять, как это работает мы подготовили следующую схему:
Теперь наш маршрутизатор не только изменяет адрес назначения, но и адрес источника, указывая в его качестве собственный внутренний IP. Обработав такой пакет веб-сервер отправит его обратно к маршрутизатору, который выполнит обратные преобразования (согласно таблице трансляции) и оправит его получателю. А так как отвечать будет именно тот узел, к которому был отправлен запрос, то в данном случае все будет работать.
Для настройки на Mikotik перейдем в IP — Firewall — NAT и добавим: Chain — src-nat (POSTROUTING), Src. Address — 192.168.186.0/24 — диапазон вашей локальной сети, Dst. Address — 192.168.186.195 — внутренний адрес веб-сервера, Protocol — tcp, Dst. Port — 80 — протокол и порт.
Обратите внимание, что в качестве адреса и порта назначения мы указываем внутренние адрес и порт, так как пакет уже прошел цепочку PREROUTING, где данные получателя были изменены. К сожалению, не все это понимают, во многих инструкциях в сети в данном правиле фигурирует внешний адрес, стоит ли говорить, что такое правило работать не будет.
Затем переходим на закладку Action и указываем: Action — src-nat (SNAT), To Addresses — 192.168.186.1 — указываем внутренний адрес нашего маршрутизатора. Если вы используете на внешнем интерфейсе другой порт, то обязательно укажите его в поле To Ports, если порты совпадают, то делать это необязательно.
Через терминал данное правило можно создать следующим образом:
Во многих иных статьях для данного правила используется действие masquerade, давайте разберемся в чем разница. В первом приближении оба действия делают одно и тоже — изменяют адрес источника пакета, но src-nat работает только со статическими адресами, зато позволяет указать в качестве источника любой адрес, masquerade работает с динамическими адресами, но в качестве адреса источника может использовать только адрес того интерфейса, с которого уходит пакет. За счет того, что masquerade при каждом запросе определяет адрес интерфейса — это действие требует больше вычислительных ресурсов, нежели src-nat.
В нашем случае все адреса статические, поэтому использование src-nat здесь будет более уместно.
Правило создано, проверим его работу:
Если вы нигде не допустили ошибок — все будет работать, как и предполагалось.
Подводя итог, можем сказать, что в пробросе портов нет ничего сложного, но только в том случае, если вы представляете в каком порядке и как обрабатываются пакеты, в противном случае даже такая элементарная задача способна превратиться в длительные мучения на ровном месте. Поэтому мы надеемся, что данный материал пригодится вам не только в практическом плане, но и позволит повысить собственный уровень знаний.