Что такое nat и для чего он нужен?

15 ответов на вопрос “Что такое nat и для чего он нужен?”

  1. stepa09012001 Ответить

    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).
    Итого, на роутере мы настраиваем порты таким образом:
    Имя
    Приложение
    Внутренний IP
    Внутренний порт
    Внешний IP
    Внешний порт
    Сервер 1
    Teamspeak
    192.168.1.2
    9987*
    87.123.41.12
    9987
    Сервер 2
    FTP сервер
    192.168.1.3
    21*
    87.123.41.12
    21000
    Сервер 3
    Веб-сервер
    192.168.1.4
    80*
    87.123.41.12
    80
    Сервер 3
    Веб-сервер
    192.168.1.4
    443*
    87.123.41.12
    444
    ПК 1
    uTorrent
    192.168.1.10
    26000
    87.123.41.12
    26000
    ПК 2
    Bit-Torrent
    192.168.1.20
    26100
    87.123.41.12
    26100
    ПК 2
    Game Server
    192.168.1.20
    27015*
    87.123.41.12
    27015
    ПК 1
    RDP
    192.168.1.10
    3389**
    87.123.41.12
    33891
    ПК 2
    RDP
    192.168.1.20
    3389**
    87.123.41.12
    33892
    Где * – стандартный порт, который использует программа (т.е. вы ее установили и ничего не настраивали);
    ** – стандартный порт, который использует сервис и который нельзя сменить.
    Наглядная схемка ниже:

    Теперь я постараюсь объяснить почему я написал именно эти порты.
    к содержанию ↑

    Немного деталей про порты

    Суть:
    Для сервера 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“

  2. filkint Ответить

    NAT — это специальный механизм, реализованный в сетях TCP/IP, который позволяет изменять айпи адреса пересылаемых пакетов, т.е. тех внутренних IP, которые присылаются на сетевой шлюз — в глобальные для дальнейшей отправки во внешний интернет. Также, такие пакеты называют транзитными.
    Реализуется через маршрутизатор, на программном уровне или настраивается самим провайдером. Полностью расшифровывается, как Network Address Translation и переводится на русский, как Преобразование Сетевых Адресов.
    Простыми словами, работает это так. При создании сетей обычно используются частные IP вида: 10/8, 172.16/12, 192.168/16. Обмен пакетами между этими айпи внутри такой сети происходит напрямую. Но, чтобы выйти в глобальную паутину, такой IP должен быть преобразован в глобальный/публичный — именно этим и занимается NAT.

    Именно НАТ позволяет вам из частной сети общаться с внешними ip адресами, за ее пределами. А между прочем, даже ваш роутер и подсоединенные к нему ПК, ноутбук, телевизор, смартфон и т.д. — это уже локальная частная сеть.
    Интересно! Вот таким вот простыми способом, была решена проблема нехватки уникальных айпи IPv4 для каждого устройства. Т.е. в своей сети — свой IP, а во всемирной паутине — публичный, другой IP.

    Типы NAT

    1. Статический, Static NAT

    Берется один IP-адрес из внутренней сети и преобразовывается во внешний/публичный и все запросы, которые будут на него посылаться извне, будут пересылаться именно на этот внутренний айпи. Т.е. для всемирной паутины он будет выглядеть полностью, как белый/публичный IP.
    Используется чаще всего в корпоративных сетях, когда необходимо, чтобы какой-либо IP всегда был доступен из глобальной паутины.
    Работает это так:
    Есть во внутренней сети айпи 172.15.4.3, он обращается ко внешнему серверу на 198.2.6.2, отправляет пакет данных вначале естественно на шлюз.
    Шлюз 172.15.4.1, на котором настроен NAT преобразует его в белый/внешний 198.1.12.8.
    По глобальном интернете пакеты передаются по этому IP-адресу и обратно приходят к нему же.
    На маршрутизаторе с НАТ есть указание, все пакеты данных, которые приходят на 198.1.12.8 перенаправлять на 172.15.4.3.

    Вот и все. Если у вас несколько роутеров, то такую процедуру можно проделать со всеми ними.

    2. Динамический, Dynamic NAT

    Если вы имеете определенное количество белых/внешних IP, например, ваш поставщик интернета предоставил вам сеть 199.49.101.0/28 — с 16 айпи. Надеюсь помните, что первый и конечный адреса всегда заняты, подробнее в статье про IPv4. Еще два мы возьмем для оборудования на функционирование маршрутизации. И остается их 12, которые можно применять для NAT и пускать посредством них свои устройства.
    Тут все практически также, как и со статичным НАТ, также 1 внутренний айпи привязан к 1 внешнему, но с той лишь разницей, что адреса теперь будут выдаваться динамически каждому нуждающемуся пользователю во внутренней сети, а не одному определенному узлу.
    Все бы хорошо, но если, например, адресов 12, а пользователей 300? Те, кто успел, те и смогут их использовать.

    3. NAT Overload

    Этот вид еще имеет другие названия такие как: Many-to-One NAT, Port Address Translation (PAT) и IP Masquerading.
    Как вы знаете, чаще всего провайдер выдает вам лишь один IP адрес, который может быть статическим или динамическим. Но дома может быть множество устройств с разными программами, которым необходим доступ во всемирную паутину и как определить, какое из них отправило запрос, какое приложение? Проблема эта решается использованием портов, по этой ссылке очень подробно описана эта тема.
    Важно! Надеюсь вы помните, что порт пишется сразу после айпи через двоеточие, например: 176.57.209.9:443. И такая связка называется — сокет.

    Как это будет выглядеть, когда NAT подменяет один IP на другой? Так, например, с двух устройств с внутренними адресами 173.52.6.7 и 173.52.4.5, которые должны заменяться на: 198.50.100.9 и 198.50.100.11 будет выполнен запрос на какой-либо сервер в интернете — это будет смотреться так:
    Устройство 1 — отправитель: IP — 173.52.6.7, порт: 21784; получатель: IP — 192.16.5.3, порт: 80
    Устройство 2 — отправитель: IP — 173.52.4.5, порт: 32714; получатель: IP — 192.16.5.3, порт: 80
    Что происходит дальше? NAT берет IP-пакет первого узла, вынимает его TCP сегмент, при этом узнавая порт. У этого айпи внешний адрес 198.50.100.9 — на него он меняется при выходе в глобальный интернет. Далее происходит выбор порта, к примеру, 11837 и все данные уровня приложений упаковываются в новый TCP сегмент. Порт адресата естественно остается — 80, а вот того, кто отправляет заменяется с 21784 на 11837. TCP сегмент вставляется в новый IP-пакет со сменой самого адреса на 198.50.100.9. Такая же процедура происходит и со вторым хостом только отбирается следующий незанятый PORT.
    Теперь данные отправляемые в интернет будут выглядеть так:
    Устройство 1 — отправитель: IP — 198.50.100.9, порт: 11837; получатель: IP — 192.16.5.3, порт: 80
    Устройство 2 — отправитель: IP — 198.50.100.11, порт: 27289; получатель: IP — 192.16.5.3, порт: 80
    В NAT-таблицу записываются значения отправителя и получателя:
    Локальный сокет отправителя 1: 173.52.6.7:21784; сокет получателя: 192.16.5.3:80
    Глобальный сокет отправителя 1: 198.50.100.9:11837; сокет получателя: 192.16.5.3:80
    Локальный сокет отправителя 2: 173.52.4.5:32714; сокет получателя: 192.16.5.3:80
    Локальный сокет отправителя 2: 198.50.100.11:27289; сокет получателя: 192.16.5.3:80
    Когда приходит ответ от сервера происходит сопоставление данных с таблицей и пакеты данных доставляются именно тому, кто совершил запрос.

    Преимущества NAT

    Под одним внешним IPv4 адресом может сидеть в глобальной паутине множество пользователей одновременно.
    Скрывает ваш настоящий внутренний IP в частной сети и показывает лишь внешний. Так, все устройства из вне видят только ваш общедоступный айпи.
    В определенной степени выполняет функции файрвола, не позволяя соединениям извне достигать основного компьютера. Т.е. если на устройство с НАТ извне приходит пакет, который не ожидался — то он категорически не будет допущен.
    Роутер с поддержкой НАТ может быть настроен сразу с несколькими внешними/белыми IP, это еще называется — пул НАТ.

    Недостатки NAT

    Невысокая скорость передачи данных для протоколов реального времени, например, для VoIP. Т.к. когда НАТ переделывает заголовки у каждого IPv4 адреса — происходят задержки.
    Проблемы с идентификацией, т.к. под одним IP может находится сразу несколько человек.
    Для пиринговых сетей нужна дополнительная настройка маршрутизации, т.к. приложению еще нужно и принимать соединения.
    Если много пользователей с одним айпи зайдут на какой-либо сервис — это может вызывать подозрение на Do S-атаку.

    В заключение

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

  3. Arryneth Ответить

    После подключения компьютера к серверу необходимо его настроить в NAT. В меню пуск находится окно администрирование — маршрутизация и удалённый доступ. Для активации нужно нажать на «включить маршрутизацию и удалённый доступ». Затем на «далее» и выбрать преобразование сетевых адресов NAT. Потом нажимаем на интернет и включаем базовые службы назначения. Продолжаем несколько раз нажимать на «далее» и последний раз на «готово».
    Сделать NAT открытым может помочь провайдер с которым клиент заключил договор на поставку интернет услуг, просто необходимо обратиться к нему с этим вопросом.

    Технология NAT loopback и NAT Traversal

    Суть NAT loopback в том, что если пакет попадает из внутренней сети на IP-адрес роутера, то такой пакет будет принят, как внешний и на него будут распространяться брандмауэрные правила для внешних соединений. После успешного прохождению пакета через брандмауэр вступит в работу Network Address Translation, который будет посредником для двух внутрисетевых машин. Получается следующее:
    снаружи локальной сети можно узнать о настройках сетевой службы;
    зайти на сервер по имени домена, который находится в локальной сети. Без функции loopback (или hairpinning) данные действия были бы невозможными, нужно было бы для любого домена настраивать файл hosts;
    основной минус – увеличение нагрузки на роутер с хабом.
    NAT Traversal – это возможности у сетевых приложений определить то, что они располагаются за границами устройства. В этом случае Network Address Translation оказывает содействие в том, чтобы определить внешний IP-адрес данного устройства и сопоставлять порты, чтобы NAT пересылал используемые приложениями пакеты с внешнего порта на внутренний. Все эти процессы выполняются автоматически. Без них пользователю пришлось бы вручную сопоставлять настройки портов и вносить в разные параметры изменения. Но есть и минусы – нужно проявлять осторожность для таких приложений – они обладают возможностями широкого контроля над устройствами, а следовательно могут появится уязвимости.

  4. Leonon Ответить

    Все современные операционные системы имеют уже встроенный 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 остается неизменным.

  5. oleg.1977 Ответить

    Позволяет сэкономить IP-адреса, транслируя несколько внутренних IP-адресов в один внешний публичный IP-адрес (или в несколько, но меньшим количеством, чем внутренних). По такому принципу построено большинство сетей в мире: на небольшой район домашней сети местного провайдера или на офис выделяется 1 публичный (внешний) IP-адрес, за которым работают и получают доступ интерфейсы с частными (внутренними) IP-адресами.
    Позволяет предотвратить или ограничить обращение снаружи к внутренним хостам, оставляя возможность обращения из внутренней сети во внешнюю. При инициации соединения изнутри сети создаётся трансляция. Ответные пакеты, поступающие снаружи, соответствуют созданной трансляции и поэтому пропускаются. Если для пакетов, поступающих из внешней сети, соответствующей трансляции не существует (а она может быть созданной при инициации соединения или статической), они не пропускаются.
    Позволяет скрыть определённые внутренние сервисы внутренних хостов/серверов. По сути, выполняется та же указанная выше трансляция на определённый порт, но возможно подменить внутренний порт официально зарегистрированной службы (например, 80-й порт TCP (HTTP-сервер) на внешний 54055-й). Тем самым, снаружи, на внешнем IP-адресе после трансляции адресов на сайт (или форум) для осведомлённых посетителей можно будет попасть по адресу http://dlink.ru:54055, но на внутреннем сервере, находящимся за NAT, он будет работать на обычном 80-м порту.

  6. Moto motozp Ответить


    Компьютер может подключаться к глобальной паутине несколькими способами. Если это выполняется напрямую, он получает собственный динамический или статистический 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 – что такое в роутере» и «Устройство роутера». Буду благодарен всем, кто поделится этой публикаций в социальных сетях. Еще увидимся!


    С уважением, автор блога Андрей Андреев.

  7. tocean Ответить

    Существует несколько типов Network Address Translation. Рассмотрим каждый из них детально:
    Static NAT используют только компании, так как у них много IP адресов, которые не изменяются и должны быть всегда доступны извне. Например, для того, чтобы открыть какой-нибудь сайт, необходимо знать его IP адрес и порт, но так как порт всегда автоматически вводится специальной программой, знать нужно только DNS имя. Адреса пользователя в интернете не видны.
    Dynamic NAT. Когда пользователь находится в интернете, то роутер сам выбирает среди полученных IP адресов только один, а затем заносит его в таблицу nat. Данная запись сразу же стирается, как только пользователь выходит из сети.
    PAT либо NAT Overload. Данный тип подходит больше пользователям в виде физических лиц. Поскольку выдаётся единственный внешний адрес и два порта (внутренний и внешний), которые указывают сами пользователи. Зайти на данный сервис можно только с помощью определённой программы.
    Важно! Зачастую порты нужно настраивать вручную.

    Как изменить тип

    Для того чтобы поменять тип NAT с одного на другой необходимо зайти на свой маршрутизатор, введя в поисковой строчке браузера комбинацию 192.168.1.1 либо 192.168.0.1., и ввести свой логин и пароль. Затем посмотреть свой IP адрес и настройки сети своего устройства. После чего необходимо обратиться к провайдеру интернет-подключения, для того чтобы он перенастроил ваш роутер на нужный вам тип. Для этого ему необходимо будет сообщить все данные.

  8. catkiller47 Ответить

    NAT позволяет скрыть адреса внутренней сети.Bо многих случаях для продвижения пакетов во внутренней сети используются одни адреса сетевого уровня, а во внешней — другие. С подобной ситуацией приходится сталкиваться, в частности, при туннелировании, когда пакет передается через транзитную сеть, причем применяемая в ней технология отличается от технологии сетей отправителя и получателя. Например, во внутренних сетях транспортной технологией является IPX, а в соединяющей их внешней транзитной — IP. При передаче во внешнюю сеть «внутренний» пакет снабжается дополнительным заголовком, где в качестве адресов отправителя и получателя указываются адреса пограничных устройств. Туннели могут создаваться и для защиты передаваемой информации, когда пакет шифруется вместе со своим заголовком, включая адресную информацию. Таким способом организуются защищенные каналы в одной из самых популярных технологий безопасности IPSec.
    «Маскарад» сетевых адресов применяется также в широко распространенной технологии трансляции сетевых адресов, Network Address Translation (NAT). Так же, как и при туннелировании, во внешней сети пакеты перемещаются на основании адресов, отличных от тех, которые используются в сети внутренней. Механизм NAT применяется к пакету во время прохождения им пограничного устройства, соединяющего внутреннюю сеть с внешней. Однако, в отличие от туннелирования, внутренние адреса не дополняются, а заменяются внешними, т. е. происходит прозрачное для пользователя отображение внутреннего адресного пространства на внешнее.
    ЗАЧЕМ НУЖЕН NATОдной из причин популярности технологии NAT можно назвать дефицит IP-адресов. Если сеть предприятия автономна, то в ней могут быть использованы любые IP-адреса, лишь бы они были синтаксически правильными. Совпадение адресов в не связанных между собой сетях не вызовет никаких отрицательных последствий. Однако для всех сетей, подключенных к Internet, необходимы глобальные IP-адреса, т. е. позволяющие однозначно определить сетевые интерфейсы в пределах всей составной сети. Их уникальность гарантируется централизованной, иерархически организованной системой их распределения. Главным органом регистрации глобальных адресов в 1998 г. стал Internet Corporation for Assigned Names and Numbers (ICANN) — неправительственная некоммерческая организация, управляемая Советом директоров. Она координирует работу региональных отделов, чья деятельность охватывает большие географические зоны: ARIN — Америка, RIPE — Европа, APNIC — Азия и Тихоокеанский регион. Региональные отделы выделяют блоки глобальных адресов крупным провайдерам, те в свою очередь присваивают их клиентам, среди которых могут быть и более мелкие провайдеры.
    Если по каким-либо причинам предприятию не удается получить у провайдера нужное количество глобальных IP-адресов, оно может прибегнуть к технологии NAT. В этом случае для адресации внутренних узлов применяются специально зарезервированные для подобных целей так называемые частные (private) адреса:
    10.0.0.0 – 10.255.255.255
    172.16.0.0 – 172.31.255.255
    192.168.0.0 – 192.168.255.255
    Приведенные выше диапазоны адресов составляют огромное адресное пространство, достаточное для нумерации узлов сетей практически любых размеров. Эти адреса исключены из множества централизованно распределяемых, а значит, пакеты с такими адресами назначения будут проигнорированы маршрутизаторами на магистралях Internet. Для того чтобы узлы с частными адресами могли связываться друг с другом через Internet или с любыми другими узлами, необходимо использовать технологию NAT.
    Потребность в трансляции IP-адресов возникает и тогда, когда предприятие из соображений безопасности желает скрыть адреса узлов своей сети, чтобы не позволить злоумышленникам составить представление о ее структуре и масштабах, а также о структуре и интенсивности исходящего и входящего трафика.
    Технология трансляции сетевых адресов имеет несколько разновидностей, наиболее популярная из которых — традиционный NAT (Traditional NAT) — позволяет узлам из частной сети прозрачным для пользователей образом получать доступ к узлам во внешних сетях. Подчеркнем, что сеансы традиционного NAT однонаправленные и инициируются изнутри частной сети. (Направление сеанса определяется положением инициатора: если обмен данными инициируется приложением, работающим на узле внутренней сети, такой сеанс называется исходящим, несмотря на то что в рамках указанного сеанса в сеть могут поступать данные извне.) В виде исключения традиционный NAT допускает сеансы обратного направления, посредством статического отображения адресов для некоторого ограниченного, заранее заданного набора узлов, для которых устанавливается взаимно однозначное соответствие между внутренними и внешними адресами.
    Традиционный NAT подразделяется на Basic Network Address Translation (Basic NAT) — метод, использующий для отображения только IP-адреса, и Network Address Port Translation (NAPT) — когда для отображения привлекаются еще и так называемые транспортные идентификаторы, в качестве которых чаще всего выступают порты TCP/UDP.
    БАЗОВЫЙ NATЭтот вариант NAT работает следующим образом (см. Рисунок 1). Сеть предприятия образует тупиковый домен, узлы которого описываются набором частных адресов. Программное обеспечение NAT, установленное на пограничном устройстве, связывающем сеть предприятия с внешней сетью, динамически отображает набор частных адресов {IP*} на набор глобальных адресов {IP}, полученных предприятием от провайдера и привязанных к внешнему интерфейсу.


    Рисунок 1. Общая схема NAT.

    Если число локальных узлов меньше имеющегося количества глобальных адресов или равно ему, то для каждого частного адреса гарантировано отображение на глобальный адрес. Понятно, что в этом случае нет проблемы дефицита адресов, и использование NAT необходимо только в целях безопасности.
    В каждый момент времени взаимодействовать с внешней сетью может столько внутренних узлов, сколько адресов имеется в глобальном наборе. Внутренние адреса некоторых узлов можно статически отображать на определенные глобальные адреса; в этом случае к ним организуется доступ извне с помощью фиксированного адреса. Соответствие внутренних адресов внешним задается таблицей, поддерживаемой устройством NAT.
    В нескольких тупиковых доменах могут встречаться совпадающие частные адреса. Например, сети А и В (см. Рисунок 2) осуществляют внутреннюю адресацию с помощью одного и того же блока адресов 10.0.0.0/8. Причем внешние адреса обеих сетей (181.230.25.1/24, 181.230.25.2/24 и 181.230.25.3/24 в сети A и 185.127.125.2/24, 185.127.125.3/24 и 185.127.125.4/24 в сети B) уникальны глобально, так что никакие другие узлы в составной сети или устройства NAT их не используют.
    Объявления протоколов маршрутизации о внешних сетях распространяются пограничными устройствами во внутренних сетях и обрабатываются внутренними маршрутизаторами. Обратное утверждение неверно — маршрутизаторы внешних сетей не «видят» внутренние сети, так как объявления о них отфильтровываются при передаче на внешние интерфейсы.
    Когда узел 10.0.1.4 сети А хочет послать пакет хосту 10.0.12.2 сети В, то для этого он указывает глобальный адрес 185.127.125.4/24 в качестве адреса назначения. Узел-отправитель направляет пакет своему маршрутизатору по умолчанию; тот знает маршрут к сети 185.127.125.0/24, так что пакет переправляется им на внешний интерфейс. Однако перед отправкой пакета устройство NAT, применяя таблицу отображения внутренних адресов во внешние, транслирует частный адрес отправителя 10.0.1.4 в соответствующий ему глобальный адрес 181.230.25.1/24. После путешествия по составной сети пакет поступает на внешний интерфейс устройства NAT сети B, а глобальный адрес назначения 185.127.125.4/24 преобразуется в частный адрес 10.0.12.2. Пакеты, передаваемые в обратном направлении, проходят аналогичную процедуру трансляции адресов.
    Заметим, что в описанной операции участия узла отправителя и получателя не требуется, т. е. она прозрачна для пользователей.
    NAPTДопустим, что некоторая организация имеет частную сеть IP и соединение с провайдером Internet. Внешнему интерфейсу пограничного маршрутизатора назначен глобальный адрес, а остальным узлам сети — частные адреса. NAPT позволяет всем узлам внутренней сети одновременно взаимодействовать с внешними сетями с помощью одного-единственного зарегистрированного IP-адреса. Каким же образом внешние пакеты, поступающие в ответ на запросы из сети, находят узел-отправитель, ведь в поле адреса источника всех пакетов, отправляющихся во внешнюю сеть, помещается один и тот же адрес внешнего интерфейса? Для идентификации узла отправителя можно привлечь дополнительную информацию — номер порта UDP или TCP. Но и это не вносит полной ясности, поскольку из внутренней сети может исходить несколько запросов с совпадающими номерами портов отправителя, и опять возникает вопрос об однозначности отображения единственного глобального адреса на набор внутренних адресов. Решение состоит в том, что при прохождении пакета из внутренней во внешнюю сеть каждой паре {внутренний частный адрес; номер порта TCP/IP отправителя} ставится в соответствие другая пара {глобальный IP-адрес внешнего интерфейса; назначенный номер порта TCP/IP}. Назначенный номер порта выбирается произвольно, но он должен быть уникальным в пределах всех узлов, получающих выход во внешнюю сеть. Соответствие фиксируется в таблице.
    Эта модель удовлетворяет требованиям большинства сетей средних размеров для доступа к внешним сетям с помощью единственного зарегистрированного IP-адреса, полученного от провайдера.
    На Рисунке 3 приведен пример, когда тупиковая сеть А использует внутренние адреса из блока 10.0.0.0/8. Внешнему интерфейсу маршрутизатора этой сети провайдером назначен адрес 181.230.25.1


    Рисунок 3. Трансляция адресов и номеров портов для исходящих сессий TCP/UDP в случае NAPT.

    Когда хост 10.0.1.4 сети А посылает пакет сервиса telnet хосту 136.56.28.8 во внешней сети, то он в качестве адреса назначения указывает глобальный адрес 136.56.28.8 и направляет пакет маршрутизатору. Маршрутизатор знает путь к сети 136.56.0.0/16, поэтому передает пакет на внешний интерфейс. Но при этом NAPT маршрутизатора транслирует адрес отправителя 10.0.1.4 и его порт TCP 1245 в глобально уникальный адрес 181.230.25.1 и уникально назначенный порт TCP, например 3451. Генерирующий ответное сообщение получатель в качестве адреса назначения указывает единственный зарегистрированный глобальный адрес сети А (адрес внешнего интерфейса устройства NAPT), а также назначенный номер порта TCP/UDP, который он берет из поля порта отправителя пришедшего пакета. При поступлении ответного пакета на устройство NAPT сети А именно по номеру порта в таблице трансляции выбирается нужная строка. Из нее определяется внутренний IP-адрес соответствующего узла и действительный номер порта. Эта процедура трансляции полностью прозрачна для конечных узлов.
    В варианте NAPT разрешаются только исходящие из частной сети сеансы TCP/UDP. Однако нередки ситуации, когда нужно обеспечить доступ извне к некоторому узлу внутренней сети. В простейшем случае, если сервис зарегистрирован, т. е. ему присвоен «хорошо известный» номер порта (например, Web или DNS) и, кроме того, этот сервис представлен во внутренней сети в единственном экземпляре, задача решается достаточно просто. Сервис и узел, на котором он работает, однозначно определяются на основании «хорошо известного» зарегистрированного номера порта сервиса.
    NAT И ICMPДля некоторых протоколов стека TCP/IP работа NAT не является прозрачной. Это относится, например, к протоколу управляющих сообщений ICMP. Он обеспечивает обратную связь для передачи сообщений об ошибках от промежуточных маршрутизаторов сети источнику пакета, вызвавшему ошибку. Диагностическое сообщение, содержащееся в поле данных протокола, включает IP-адреса и порты отправителя и получателя. При использовании NAT в качестве таких адресов и портов будут выступать не оригинальные адреса, а отображенные. При поступлении пакета ICMP на пограничное устройство протоколу NAT недостаточно выполнить только стандартную процедуру отображения адресов, необходимо скорректировать и содержимое поля данных, заменив и в нем IP-адрес и номер порта.
    Еще одной особенностью NAT при обработке сообщений ICMP является невозможность применения портов TCP/UDP для отображения адресов, поскольку эти сообщения переносятся по сети, упакованными непосредственно в пакеты IP без использования транспортных протоколов TCP или UDP. Роль номеров портов в этом случае выполняют идентификаторы запросов ICMP.
    Ситуация, требующая нестандартной обработки внутреннего содержания поля данных пакета, возникает не только в случае протокола ICMP, но и ftp, DNS и ряда других. Специфический алгоритм, добавляемый к стандартному NAT, в таком случае носит название прикладного шлюза (Application Level Gateway, ALG): например, FTP ALG, DNS ALG и т. п.
    ДВОЙНОЙ NATПомимо традиционного NAT существуют и другие варианты технологии трансляции сетевых адресов, например двойной NAT, когда модифицируются оба адреса — и источника, и назначения (в отличие от традиционного NAT с возможностью модификации только одного адреса). Двойной NAT необходим, если внутреннее и внешнее адресные пространства частично пересекаются. Наиболее часто это происходит, когда внутренний домен имеет некорректно назначенные общедоступные адреса, которые принадлежат другой организации. Такая ситуация может возникнуть из-за того, что сеть организации была изначально изолированной, и адреса назначались произвольно, причем из глобального пространства. Или при смене провайдера организация хочет сохранить старые адреса для узлов внутренней сети. И тот и другой случай объединяет то, что адрес внутреннего хоста может совпадать с адресом внешнего, а значит, посланный изнутри пакет не попадет вовне, а будет передан внутреннему хосту.
    Двойной NAT работает следующим образом. Когда хост А хочет инициировать сеанс с хостом Х, он генерирует запрос DNS для хоста Х. Шлюз DNS ALG перехватывает этот запрос и в ответе, который он возвращает хосту А, заменяет адрес для хоста Х адресом, способным правильно маршрутизироваться в локальном домене (например, Host-XPRIME). Хост А затем инициирует взаимодействие с хостом Host-XPRIME. После того как пакеты подвергнутся преобразованию NAT, адрес источника транслируется как и в традиционном NAT, а адрес назначения преобразуется в Host-X. На обратном пути выполняется аналогичное преобразование.
    ОГРАНИЧЕНИЯ NATНа использование метода трансляции адресов налагаются определенные ограничения. Так, все запросы и ответы, относящиеся к одному сеансу, должны проходить через один и тот же маршрутизатор NAT. Этого можно добиться, реализовав NAT на пограничном маршрутизаторе, который является единственным для тупикового домена. Впрочем, такое возможно и при наличии нескольких точек подключения внутренней сети к внешней. Но для того, чтобы сеансы не обрывались при переходе с отказавшего устройства NAT на другое, все маршрутизаторы должны разделять одну и ту же конфигурацию NAT и оперативно обмениваться информацией о состоянии сеансов.
    Как уже было сказано, трансляция адресов не всегда прозрачна для приложений, и в этих случаях надо применять шлюзы прикладного уровня ALG. Приложения, требующие вмешательства ALG, не должны шифровать свой трафик, если только ALG не снабжается ключом для расшифровки трафика.
    Особого внимания требует совместное применение NAT и технологии защищенного канала IPSec. В частности, для обеспечения целостности передаваемых данных в семействе IPSec предусматривается использование протоколов AH и ESP. И тот и другой перед отправлением пакета подсчитывают дайджест (хэш-функцию) содержимого пакета и помещают его в заголовок. Принимающая сторона, получив пакет, заново вычисляет дайджест, и, если локально вычисленное и полученное из сети значения дайджеста совпадают, делает вывод об отсутствии искажений в переданной информации. Разница состоит в том, что протокол AH вычисляет дайджест на основании всех неизменяемых полей исходного IP-пакета, включая адреса источника и назначения из заголовка пакета, а протокол ESP — только на основании поля данных. Поскольку за время прохождения пакетом устройства NAT адреса отправителя или получателя изменяются, при использовании протокола AH нужно пересчитывать дайджест, для чего требуется знание секретного ключа. В то же время протокол ESP позволяет обеспечивать целостность стандартным образом и при работе с NAT.
    Наталья Олифер — обозреватель «Журнала сетевых решений/LAN». С ней можно связаться по адресу: olifer@lanmag.ru.

  9. LoBan79 Ответить

    В инструкции описан процесс настройки NAT для преобразования IP-адресов в маршрутизируемых сетях.

    Что такое NAT?

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

    Как добавить NAT правило?

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

    Перед вами появится новое окно в котором необходимо выбрать тип правила SNAT или DNAT.

    SNAT

    SNAT или Source NAT позволяет изменить исходный IP-адрес сетевого пакета на другой IP-адрес.
    Использование SNAT позволяет увеличить безопасность и сохранить конфиденциальность, поскольку маскируются и скрываются частные IP-адреса устройств.
    Для создания правила такого типа в поле NAT Type выберете SNAT. В поле Description введите удобное описание. В качестве OriginalIp укажите локальный адрес сервера, который нужно преобразовать. TranslatedIp – это белый IP-адрес маршрутизатора в сети, который вводится автоматически и не может быть изменен.
    Флаг Enable служит для включения или отключения правила. Если флаг установлен, то правило включено.

    DNAT

    DNAT или Destination NAT используется для преобразования целевого IP-адреса сетевого пакета в другой IP-адрес. Используя DNAT, можно скрыть внутренний IP-адрес приложения и заменить его другим IP-адресом, что делает его более безопасным.
    Для создания правила такого типа в поле NAT Type выберете DNAT.
    В поле Description введите удобное описание.
    OriginalIp – это белый IP-адрес маршрутизатора в сети, который вводится автоматически, этот адрес будет преобразован.
    В качестве TranslatedIp укажите локальный адрес сервера, для которого нужно выполнить преобразование.
    В выпадающем списке Protocol выберете нужный протокол.
    OriginalPort – это порт маршрутизатора, на который поступают пакеты данных.
    В качестве TranslatedPort укажите порт локального сервера, к которому нужно выполнить преобразование.
    Флаг Enable служит для включения или отключения правила. Если флаг установлен, то правило включено.
    Примечание: если TranslatedPort выбран Any, то и OriginalPort автоматически принимает значение Any. При этом TranslatedPort может может иметь конкретное значение, если OriginalPort выбран Any.

    В результате созданные правила отобразятся в списке в панели управления.

    Редактирование NAT правил

    Для редактирования правила выберете нужное и кликните на его поле NAT type (показано на изображении ниже).

    После внесения изменений не забудьте сохранить правило.

    Удаление NAT правил

    Удалить каждое правило можно с помощью кнопки Крестик.

    Подтвердите свои действия для удаления правила.

  10. malkoruslan Ответить

    В первую очередь NAT был представлен миру IT и сетям из-за отсутствия IP-адресов или взгляда на него с другой точки зрения из-за огромного количества растущей ИТ-технологии, основанной на IP-адресах. Чтобы добавить к этому, NAT добавляет уровень безопасности, скрывая компьютеры, серверы и другое ИТ-оборудование из внешнего мира.
    Когда компьютеры и серверы в сети обмениваются данными, их нужно идентифицировать друг с другом по уникальному адресу, в результате чего создается 32-битное число, а комбинации этих 32 бит будут вмещать более 4 миллиардов уникальных адресов, известный как IP-адрес. Это было названо IPv4, и хотя более 4 миллиардов адресов звучит много, он действительно не рассматривает, как быстро вырос мир компьютеров и Интернета.
    Чтобы обойти эту проблему, было создано временное решение, известное как NAT. NAT привел к двум типам IP-адресов, общедоступных и частных. Был введен ряд частных адресов, которые каждый мог использовать, если они были закрыты в сети и не маршрутизировались в Интернете. Диапазон частных адресов, известных как RFC 1918;
    Класс A 10.0.0.0 – 10.255.255.255
    Класс B 172.16.0.0 – 172.31.255.255
    Класс C 192.168.0.0 – 192.168.255.255NAT позволяет использовать этот частный IP-адрес во внутренней сети. Таким образом, в вашей частной сети вы назначаете уникальный IP-адрес всем вашим компьютерам, серверам и другим ресурсам, управляемым IP, обычно выполняемым через DHCP. Другая компания может использовать одни и те же частные IP-адреса, если они хранятся внутри своей сети. Таким образом, две компании могут использовать один и тот же диапазон IP-адресов, но поскольку они являются частными для своей сети, они не конфликтуют друг с другом.
    Однако, когда внутренним хостам необходимо обмениваться информацией с общедоступной сетью (Интернетом), тогда в это уравнение приходит публичный адрес. Этот адрес, обычно приобретаемый у интернет-провайдера, является маршрутизируемым общедоступным адресом, который каждый может видеть, который будет представлять ваш сетевой шлюз. Этот публичный адрес будет уникальным, никто другой не будет использовать этот адрес.
    Теперь перейдем к делу; Когда хост во внутренней сети с внутренним IP-адресом должен обмениваться данными за пределами своей частной сети, он будет использовать общедоступный IP-адрес в шлюзе сети, чтобы идентифицировать себя с остальным миром, и этот перевод преобразования частного IP-адреса адрес для общественности осуществляется NAT. Например, компьютер по внутреннему адресу 192.168.1.10 хотел бы общаться с веб-сервером где-то в Интернете, NAT переведет адрес 192.168.1.10 на общедоступный адрес компании, например, позвоните по этому 1.1.1.1. так что внутренний адрес определяется как общий адрес при общении с внешним миром. Это необходимо сделать, потому что, когда веб-сервер где-то в Интернете должен был ответить на этот внутренний компьютер, ему необходимо отправить его на уникальный и маршрутизируемый адрес в Интернете, общий адрес. Он не может использовать исходный адрес 192.168.1.10, поскольку он является закрытым, ни одного маршрутизируемого и скрытого от внешнего мира. Этот адрес, 1.1.1.1, будет адресом общего адреса для этой компании и может рассматриваться всеми. Теперь веб-сервер ответит на этот общедоступный адрес, 1.1.1.1. Затем NAT будет использовать свои записи для перевода пакетов, полученных с веб-сервера, который был предназначен для 1.1.1.1, во внутренний сетевой адрес 192.168.1.10, и хотя компьютер, который запросил исходную информацию, получит запрашиваемые пакеты.
    Теперь вы можете увидеть два преимущества NAT. Во-первых, это сэкономит на IP-адресах, которые мы используем, поскольку каждому отдельному компьютеру не нужен публичный адрес, а также он будет скрывать эти частные компьютеры из внешнего мира. Каждый может видеть только публичный адрес, остальное скрывается за этим публичным адресом. Таким образом, из Интернета можно видеть только публичный адрес на внешнем интерфейсе брандмауэра или маршрутизатора и ничего за его пределами.

    Типы NAT

    Три основных типа правил NAT используются сегодня в зависимости от того, что необходимо выполнить;
    Статический NAT
    Пул открытых IP-адресов назначается устройству NAT. Затем частный IP-адрес может быть статически сопоставлен любому из этих общедоступных адресов. Этот тип схемы NATTING обычно используется для серверов, требующих одного и того же IP-адреса, поэтому имя «статическое», поэтому сервер 1 всегда будет иметь тот же самый IP-адрес, назначенный ему, сервер 2 будет иметь другой публичный IP-адрес, назначенный ему и так далее.
    Динамический NAT
    Опять же, устройство NAT будет состоять из пула IP-адресов. На этот раз, хотя пул IP-адресов будет использоваться по мере необходимости, а затем возвращается в пул. Поэтому, если компьютеру A нужен публичный адрес, это займет один из пула, а затем отложите его, когда закончите. В следующий раз, когда одному и тому же компьютеру понадобится IP-адрес, ему может быть присвоен другой общий адрес из пула, потому что тот, который использовался ранее, может использоваться другим компьютером, поэтому имя «динамическое». Поэтому пользователи, которые хотят общаться в Интернете в любой момент времени, будут ограничены тем, сколько общедоступных IP-адресов доступно в пуле NAT. Компания будет покупать несколько публичных IP-адресов в зависимости от их потребностей.
    Трансляция адресов портов (PAT)
    В этом типе настройки компания будет иметь только один общедоступный IP-адрес, назначенный для своей сети, и поэтому каждый будет использовать этот общий публичный адрес при использовании Интернета, например, в Интернете. Да, вы можете спросить, как каждый может поделиться одним адресом, ну и ключ лежит в имени, переводе адреса порта. Когда компьютер хочет использовать Интернет, устройство NAT, используя метод PAT, будет помнить IP-адрес и исходный порт внутреннего хоста. Например, 192.168.1.10 с исходным портом 55331 хотели просмотреть Amazon.com. Устройство NAT сохранит это, и когда Amazon ответит на общедоступный адрес и номер порта 55331, устройство NAT будет использовать метод PAT и искать информацию о порте, которая отображается на внутреннем компьютере, запрашивающем его. Поэтому было бы сказано, что эта информация Amazon отправила обратно на общедоступный адрес и номер порта 55331, сопоставив с IP-адресом 192.168.1.10, который изначально запросил его, хотя информация для этого компьютера. Таким образом, соединения однозначно идентифицируются исходным портом, все используют один и тот же общедоступный IP-адрес, но с уникальными портами-источниками, чтобы определить, кто запросил какую-либо информацию.
    Используя этот метод, компания будет экономить разумные деньги и IP-адреса, потому что использует только один IP-адрес. Это стало основным фактором, почему IPv6 упоминается уже несколько лет, но в большинстве стран он еще не требуется.
    NAT также реализуется в домашних маршрутизаторах и аппаратных брандмауэрах, таких как Netgear и Linksys этого мира, а также высокопроизводительные аппаратные брандмауэры, такие как Cisco и Juniper.
    Это оказалось ценной особенностью аппаратных брандмауэров для сохранения общедоступных IP-адресов, а также контрмеры для некоторых типов атак, таких как разведывательная атака.

    Недостатки NAT

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

    IPv6

    Однако, чтобы обойти вышеупомянутую проблему, для этих специализированных сервисов можно приобрести несколько дополнительных IP-адресов. Однако в долгосрочной перспективе IPv6 уже внедряется в некоторых технологиях и в некоторых частях мира. Эта схема адресации использует 128-битную схему нумерации, в отличие от 32 битов IPv4, используемых для адресов. IPv6 поддерживает 2 по мощности 128 адресов, по сравнению с IPv4 2 до 32, теперь это массовое увеличение IP-адресов, хотя в будущем будет доказано увеличение IP-адресации с использованием IPv6.

  11. sanchessat Ответить

    Добрый день, коллеги!
    судя по многочисленным вопросам на форуме (ссылка в конце поста), от слушателей и коллег, работа NAT на маршрутизаторах Cisco (firewall’ы я опущу, Fedia достаточно подробно его работу расписал в своей серии статей про Cisco ASA) плохо описана, поэтому я попробую описать свой опыт и свое понимание данной технологии в большинстве ее ипостасей. Не претендую на всеобъемлющее описание и 100% точность, но кому интересно — велкам под кат.
    Итак, для структурности описания разберемся с определением, что такое NAT.
    Определение. NAT (Network Address Translation) — технология трансляции сетевых адресов, т.е. подмены адресов в заголовке IP-пакета (иногда может еще и порт менять в заголовках TCP/UDP, но об этом позже).
    Другими словами, пакет, проходя через маршрутизатор, может поменять свой адрес источника и/или назначения.
    Зачем это нужно?
    1. Для обеспечения доступа из LAN, где чаще всего используются частные IP-адреса, в Internet, где маршрутизируются только глобальные IP-адреса.
    2. (в меньшей степени) для сокрытия топологии сети и создания некоторого защитного барьера для проникновения внутрь сети (обсудим это позже на примере).
    NAT бывает разным 🙂 И хотя много по этому поводу уже написано, есть желание отправлять новичков с вопросами о NAT по конкретному адресу, поэтому я все же приведу некоторую классификацию.
    1. Static NAT — статический NAT задает однозначное соответствие одного адреса другому. Иными словами, при прохождении через маршрутизатор, адрес(а) меняются на строго заданный адрес, один-к-одному. (к примеру 10.1.1.1 всегда заменяется на 11.1.1.1 и обратно, но никогда на 12.1.1.1). Запись о такой трансляции хранится неограниченно долго, пока есть строчка в конфиге.
    2. Dynamic NAT — при прохождении через маршрутизатор, новый адрес выбирается динамически из некоторого куска адресов, называемого пулом (англ. pool). Запись о трансляции хранится некоторое время, чтобы ответные пакеты могли быть доставлены адресату. Если в течение некоторого времени трафик по этой трансляции отсутствует, трансляция удаляется и адрес возвращается в пул. Если требуется создать трансляцию, а свободных адресов в пуле нет, то пакет отбрасывается. Иными словами, хорошо бы, чтобы число внутренних адресов было ненамного больше числа адресов в пуле, иначе высока вероятность проблем с доступом наружу.
    3. Dynamic NAT with overload или PAT. Работает почти также, как dynamic NAT, но при этом происходит трансляция много-в-один, задействуя при этом возможности транспортного уровня. Об этом подробнее на примере дальше.
    Поскольку я чаще всего работаю именно с железом Cisco, я опишу в статье именно особенности работы и возможные варианты NAT именно на этих железках.
    Давайте посмотрим, что у нас есть в этом случае.

    1. inside source NAT

    Самый распространенный и достаточно простой вариант. Допустим у нас есть такая топология:

    Другими словами,
    а) подсеть внутренних адресов — 10.0.0.0/8
    б) подсеть внешних адресов — 11.0.0.0/8
    и мы хотим транслировать каким-то образом внутренние адреса во внешние при прохождении трафика через маршрутизатор.
    Что для этого нужно?
    1. Мы явно указываем, что мы хотим транслировать. Т.е. какой трафик и от каких хостов.
    2. Мы явно указываем, во что мы хотим траслировать, т.е. пул внешних адресов (или единственный адрес для статической трансляции).
    3. Помечаем внутренний и внешний интерфейс.
    4. Включаем трансляцию.
    На п.3 я себе позволю остановиться подробнее, потому что именно здесь часто происходит непонимание.
    Как это работает?
    Итак, допустим мы решили, что будем транслировать всю 10ю сеть целиком в 11ю. Задали их соответствующим образом (настройки потом, сначала теория). И пометили наши интерфейсы как внутренний (inside) и внешний (outside).
    Теперь, давайте разберемся, что делает именно inside source NAT. На самом деле, в названии зашита половина действия 🙂 а именно: у пакета, пришедшего на inside интерфейс меняется source :). Но помните, мы говорили о том, что ответные пакеты должны доходить до нашего внутреннего хоста? Отсюда вторая половина действия: у пакета, пришедшего на outside интерфейс меняется destination.
    Рассмотрим прямую трансляцию.
    1. Трафик, приходя на интерфейс, помеченный как inside, если он соответствует тому, что мы хотим транслировать, маркируется как возможно_транслируемый. Часто полагают, что в этот момент происходит трансляция, но это не так.
    2. Следующим этапом, трафик подвеграется маршрутизации (PBR и обычной). И если при этом трафик направляется на интерфейс, помеченный как outside — только тогда происходит трансляция. Если трансляция динамическая, маршрутизатор проверяет ее наличие в таблице трансляций. Если ее там нет — создает, если уже есть — обнуляет счетчик неактивности. Если же пакет попадает на выход на интерфейс, не помеченный как outside — трансляция НЕ происходит.
    Теперь обратная трансляция.
    1. Трафик, попадая на outside интерфейс, в противовес прямой трансляции, сначала подвергается NAT. Если трансляция существует (неважно, динамическая или статическая), в случае с inside source NAT, у него меняется destination. И только после этого трафик подвергается маршрутизации и перенаправляется по назначению.
    Поэтому маркировать интерфейсы как inside или outside нужно именно принимая во внимание механизм работы.
    Замечания и следствия.
    1. Для обратной трансляции не обязательно наличие метки inside на каком-либо интерфейсе. Все равно, если прямая трансляция существует, обратная трансляция сработает до маршрутизации. Но когда будет существовать такая трансляция, ведь мы обсуждали, что трафик должен пройти через inside интерфейс для создания прямой трансляции? Отсюда
    2. Трафик самого роутера подвергается трансляции, если он попадает на интерфейс, помеченный как outside и удовлетворяет правилу NAT. И это сколь полезно, столь и опасно. С одной стороны, мы можем транслировать трафик роутера как и любой другой. С другой стороны, многие хотят описать трафик, подлежащий трансляции как permit any, но тогда и, например, пакеты протоколов маршрутизации будут транслироваться, что приведет к сбою.
    3. Интерфейсы типа loopback маршрутизатора трактуются как и любые другие, мы можем метить их как inside или outside, заворачивать на них трафик и получать от этого профит 🙂
    Теперь посмотрим общую конфигурацию, а потом еще несколько частных случаев.
    Конфигурация inside source NAT
    inside source dynamic NAT
    1. Указываем, что транслировать. Для этого создаем access-list, перечисляющий трафик. Например, в нашем случае достаточно одной строчки:
    (config)# access-list 100 permit ip 10.0.0.0 0.255.255.255 any
    Замечание. В ACL могут встречаться строчки deny. Вопреки распространенному заблуждению, трафик удовлетворяющей данной строчке не дропается, а просто не подвеграется трансляции. Так же, ACL может быть стандартным и расширенным, нумерованным и именованным.
    2. Создаем пул из адресов, указывая стартовый и конечный адрес. Например так:
    (config)# ip nat pool NAME_OF_POOL 11.1.1.10 11.1.1.20 netmask 255.255.255.0
    Замечания.
    1. Стартовый и конечный адрес в пуле могут совпадать, тогда трансляция будет в 1 адрес.
    2. Опция netmask, хотя и является обязательной, по моему мнению — рудимент. Она позволяет вырезать из диапазона адресов в пуле те адреса, которые являются адресами подсети или бродкастными при данной маске.
    3. Маркируем интерфейсы. В нашем случае достаточно
    (config)# interface fa 0/0
    (config-if)# ip nat inside
    и
    (config)# interface fa 0/1
    (config-if)# ip nat outside
    4. создаем собственно трансляцию:
    ip nat inside source list 100 pool NAME_OF_POOL
    вуаля 🙂 Если мы теперь обратимся например с хоста 10.1.1.1 к хосту 11.1.1.2, то получим такую трансляцию:
    Router#sh ip nat translations
    Pro Inside global Inside local Outside local Outside global
    tcp 11.1.1.10:55209 10.0.1.1:55209 11.1.1.2:23 11.1.1.2:23
    Интересно, что хотя в таблице явно записаны source port и destination port, трансляция создается целиком для адреса. И на время ее жизни в таблице трансляция, пакеты снаружи могут проходить на внешний адрес (inside global)
    Например, пинг с некоторого адреса во внешней сети на наш inside global будет успешным (на время жизни трансляции):
    R4#ping 11.1.1.10
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 11.1.1.10, timeout is 2 seconds:
    !!!!!
    Иными словами, открывается трансляция единожды и к некоторому хосту, после этого некоторое время действует для любого адреса извне.
    inside source dynamic NAT with overload
    П. 1,2 и 3 — как в предыдущем разделе.
    4. Создаем собственно трансляцию:
    ip nat inside source list 100 pool NAME_OF_POOL overload
    Видим, что добавилось всего одно слово: overload. Но оно существенно изменило схему работы трансляции.
    Как было сказано, PAT — это трансляция много-в-мало или даже много-в-один. Но чтобы можно было отличить трафик одного соединения от другого, маршрутизатор будет менять не только IP-адреса, но еще и TCP/UDP порты.
    Замечание. Схема работы с портами (когда меняется source, когда destination) — такая же, как и схема работы с IP-адресами.
    Другими словами, при обращении изнутри наружу меняется source IP и source port, запись об этом вносится в таблицу трансляций. При обратной трансляции — все меняется наоборот.
    Посмотрим, что изменилось:
    R3#sh ip nat translations
    Pro Inside global Inside local Outside local Outside global
    tcp 11.1.1.11:21545 10.0.1.1:21545 11.1.1.2:23 11.1.1.2:23
    tcp 11.1.1.11:49000 10.0.2.1:49000 11.1.1.2:23 11.1.1.2:23
    Видим, что разные внутренние адреса (10.0.1.1 и 10.0.2.1) странслировались в один внешний (11.1.1.11).
    Замечания.
    1. Кажется, что source-port не был изменен, как обещали, непорядок :). На деле, маршрутизатор пытается сохранить source port всеми доступными средствами. В частности, если порт inside global адреса уже был занят, он возьмет следующий адрес в пуле и проверит его порт на занятость. И только не найдя адреса со свободным портом возьмет следующий свободный.
    2. Поведение такой трансляции отличается от поведения обычного dynamic NAT еще и тем, что доступ снаружи на inside global адрес невозможен. Именно это я имел ввиду, когда говорил о некоторой повышенной безопасности при использовании PAT, т.к. фактически все соединения инициируются изнутри нашей сети, а снаружи нам могут приходить только ответы на них.
    3. Если мы получили у провайдера не целый блок адресов, а один несчастный адрес, который тут же и назначили внешнему интерфейсу маршрутизатора, можно не городить огород с пулом в один адрес, а сразу писать например так:
    (config)# ip nat inside source list 100 interface fa0/1 overload
    inside source static NAT and PAT
    Много упоминалось о статических трансляциях, давайте наконец их обсудим.
    Зачем это нужно?
    Мы обсудили, что если в случае dynamic NAT трансляция не создана и в случае PAT, доступ извне невозможен. Если даже в случае dynamic NAT трансляция создана, то inside global адрес может меняться. И обращаться к нашему внутреннему хосту по какому-то внешнему адресу невозможно.
    Тем не менее, нередки ситуации, когда внутри корпоративной сети есть сервер, доступ которому извне по статическому внешнему адресу жизненно необходим. В таком случае, можно выставить его прямиком в Интернет, назначив глобальный адрес. Но часто это не очень удобно, например по соображениям безопасности. И в таких случаях нам на помощь приходит static NAT.
    Он создает двустороннюю и постоянную трансляцию. Так что наш хост всегда будет доступен по одному внешнему адресу и эта трансляция никогда не вылетит из таблицы трансляций по таймауту.
    собственно настройка.
    Сразу создаем трансляцию:
    (config)# ip nat inside source static 10.0.1.1 11.1.1.21
    Маркируем интерфейсы и вуаля!
    R3#sh ip nat translations
    Pro Inside global Inside local Outside local Outside global
    icmp 11.1.1.21:14 10.0.1.1:14 11.1.1.2:14 11.1.1.2:14
    — 11.1.1.21 10.0.1.1 — —
    Как видим, появилось две записи — одна постоянная, другая (чисто информативная) — временная, вызванная трафиком изнутри наружу.
    Замечание. Появление таких информативных записей можно отключить командой
    (config)# no ip nat create flow-entries
    Идем дальше. Часто бывает, что нужно выставить наружу не целый адрес, а только один порт (например 80й для www-сервера). Никаких проблем, можно создать и статическую PAT-трансляцию для некоторых портов:
    (config)# ip nat inside source static tcp 10.0.1.1 80 11.1.1.21 80
    (config)# ip nat inside source static udp 10.0.1.1 5060 11.1.1.21 7877
    Видим, что порты одного и того же внешнего адреса можно пробрасывать на разные порты внутренних, и управлять трансляцией портов при этом тоже возможен.
    В заключение добавлю, что изменять различные таймауты для NAT можно командой
    Router(config)#ip nat translation ?
    arp-ping-timeout Specify timeout for WLAN-NAT ARP-Ping
    dns-timeout Specify timeout for NAT DNS flows
    finrst-timeout Specify timeout for NAT TCP flows after a FIN or RST
    icmp-timeout Specify timeout for NAT ICMP flows
    max-entries Specify maximum number of NAT entries
    port-timeout Specify timeout for NAT TCP/UDP port specific flows
    pptp-timeout Specify timeout for NAT PPTP flows
    routemap-entry-timeout Specify timeout for routemap created half entry
    syn-timeout Specify timeout for NAT TCP flows after a SYN and no
    further data
    tcp-timeout Specify timeout for NAT TCP flows
    timeout Specify timeout for dynamic NAT translations
    udp-timeout Specify timeout for NAT UDP flows
    Объемистая статейка получилась, придется разбить на несколько частей. Конечно inside source NAT многократно обсужден и расписан, но надеюсь, что даже не совсем новичкам удастся найти в статье что-то полезное. Надо было начать с некоторой базы, пусть и общеизвестной.
    В следующей статье мы обсудим inside destination NAT, если конечно статья найдет отклик и поддержку.
    С уважением,
    Подкопаев Илья
    P.S. Я открыт для пожеланий по улучшению статьи и исправлению неточностей/ошибок.
    P.P.S. Ссылки:
    1. форум сайта anticisco.ru
    2. Cisco NAT order of operations

  12. VideoAnswer Ответить

Добавить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *