Настройка NAT в панели управления

В инструкции описан процесс настройки 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 правил
Удалить каждое правило можно с помощью кнопки Крестик.

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


P. S. Другие инструкции:
- Создание маршрутизируемой сети
- Настройка VPN в панели управления 1cloud
- Настройка файлового сервера Samba в локальной сети
- Маршрутизация внутри локальной сети на pfSense
- Чек-лист параметров безопасности сервера Windows/Linux
Поделиться в соцсетях:
Средняя оценка: 5,0, всего оценок: 1 Спасибо за Вашу оценку! К сожалению, проголосовать не получилось. Попробуйте позже
NAT на Cisco. Часть 1
судя по многочисленным вопросам на форуме (ссылка в конце поста), от слушателей и коллег, работа 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
NAT (обзор и примеры)
NAT — собирательный термин, обозначает технологию трансляции сетевых адресов и/или протоколов. NAT устройства производят над проходящими пакетами преобразования с заменой адресов, портов, протоколов и пр.
Существуют более узкие понятие SNAT, DNAT, маскарадинг, PAT, NAT-PT и т.д.
зачем нужен NAT, как его используют
Для вывода в интернет внутренней сети
- через пул внешних адресов
- через один внешний адрес
Для подмены внешнего ip адреса другим (перенаправление трафика)
Для балансировки нагрузки между одинаковыми серверами с разными ip адресами.
Для объединения двух локальных сетей с пересекающейся внутренней адресацией.
как устроен NAT
s+d NAT (branch merging — evil!)
port-mapping, прокидывание портов
Преимущества и недостатки
Несовместим с некоторыми протоколами. Конкретная реализация NAT должна поддерживать инспекцию требуемого протокола.
NAT обладает свойством «экранировать» внутреннюю сеть от внешнего мира, но его нельзя использовать вместо межсетевого экрана.
Настройка на Cisco IOS
Маршрутизаторы и межсетевые экраны Cisco поддерживают различные типы NAT, в зависимости от набора опций ПО. Наиболее используемым является метод NAT с привязкой внутренних локальных адресов в различные порты одного внешнего адреса (PAT в терминологии Cisco).
Для настройки NAT на маршрутизаторе требуется:
- Определить трафик, который необходимо транслировать (при помощи access-list’ов или route-map);
ip access-list extended LOCAL permit ip 10.0.0.0 0.255.255.255 any
route-map INT1 match ip address LOCAL match interface FastEthernet0/1.1
Аксесс-лист LOCAL выбирает весь трафик из 10 сети.
Роут-мап INT1 выбирает трафик аксесс-листа LOCAL, выходящий через сабинтерфейс Fa 0/1.1
- Определить на какие внешние адреса проводить трансляцию. Выбрать пул внешних адресов. Для PAT достаточно одного адреса.
ip nat pool GLOBAL 212.192.64.74 212.192.64.74 netmask 255.255.255.0
Задание пула внешних адресов с именем GLOBAL. В пуле всего один адрес.
- Включить NAT для выбранных внутренних и внешних адресов.
ip nat inside source route-map INT1 pool GLOBAL overload
Включение NAT для трансляции адресов источника на внутреннем интерфейсе. Будет транслироваться только трафик попадающий под условия роут-мапа INT1. Внешний адрес будет браться из пула GLOBAL. Ключевое слово overload активирует трансляцию портов транспортного уровня помимо IP-адресов (Port Address Translation).
- Если требуется, прописать публикацию сервиса:
ip nat inside source static tcp 10.0.0.1 23 212.192.64.74 23 extend
Статическое «прокидывание порта» или «публикация сервиса». В трафике идущем внутрь на адрес 212.192.64.74 на порт tcp 23 будет заменен адресат на адрес 10.0.0.1 и порт 23. Ключевое слово extended разрешает «растягивать» статическую трансляцию на несколько внешних интерфейсов одновременно, чтобы внутренний сервис стал доступен через несколько внешних.
- Назначить внутренние и внешние интерфейсы.
interface FastEthernet0/0 ip nat inside
interface FastEthernet0/1.1 ip nat outside
Интерфейс Fa 0/0 назначен внутренним для NAT.
Сабинтерфейс Fa 0/1.1 назначен внешним для NAT.
- Отладка и диагностика:
sh ip nat translations - просмотр таблицы текущих трансляций; clear ip nat translations - удалить все текущие трансляции; debug ip nat – включение отладочных сообщений (undebug all – выключение отладки).
Настройка на Cisco IOS через ACL
! interface FastEthernet0/0 ip address 10.0.0.1 255.255.255.0 ip nat inside ! interface FastEthernet0/1 ip address 212.192.64.74 255.255.255.0 ip nat outside ! ! ip nat inside source list LAN interface FastEthernet0/1 overload ip route 0.0.0.0 0.0.0.0 212.192.64.1 ! ip access-list extended LAN permit ip 10.0.0.0 0.0.0.255 any ! ip nat inside source static tcp 10.0.0.1 23 212.192.64.74 23 extend !
Примеры
Приведем несколько демонстрационных примеров для эмулятора cisco Packet Tracer.
Простая схема вывода небольшой сети в интернет через пул внешних адресов http://k.psu.ru/disk/files/user/MoiseevVI/wiki/NAT_exapmles_Simple_SNAT.pkt
Порядок работы NAT
Порядок применения правил NAT различается у различных производителей и на различном оборудовании. Приведем порядок применения политик NAT для маршрутизаторов на cisco IOS:
If IPSec then check input access list decryption - for CET (Cisco Encryption Technology) or IPSec check input access list check input rate limits input accounting redirect to web cache policy routing routing NAT inside to outside (local to global translation) crypto (check map and mark for encryption) check output access list inspect (Context-based Access Control (CBAC)) TCP intercept encryption Queueing
If IPSec then check input access list decryption - for CET or IPSec check input access list check input rate limits input accounting redirect to web cache NAT outside to inside (global to local translation) policy routing routing crypto (check map and mark for encryption) check output access list inspect CBAC TCP intercept encryption Queueing
Интернет-канал от одного провайдера через NAT
Простая схема реализации NAT с одним провайдером
Резервирование интернет-канала от двух провайдеров при помощи NAT, ip sla
Дано: мы получаем для нескольких компьютеров интернет от провайдера ISP1. Он выделили нам адрес 212.192.88.150. Выход в интернет организован с этого ip адреса через NAT.
Задача: подключить резервного провайдера — ISP2. Он выделит нам адрес 212.192.90.150. Организовать балансировку трафика: web-трафик пускать через ISP1, прочий трафик — через ISP2. В случае отказа одного из провайдеров — пускать весь трафик по живому каналу.
В чем сложность задачи? clear ip nat translations?
Схема
Конфиг
1 clear ip nat translations *
Найден, оттестирован такой кусок EEM. Не на всех версиях IOS генерируется событие.. Надо уточнить.
! event manager applet NAT-TRACK event syslog pattern "TRACKING-5-STATE" action 0.1 cli command "enable" action 0.2 wait 3 action 0.3 cli command "clear ip nat translation *" action 0.4 syslog msg "NAT translation cleared after track state change" !
2 При падении интерфейса на провайдера, велики шансы, что его шлюз будет пинговаться через второго
! username ИМЯ password 0 ПАРОЛЬ enable secret 0 ПАРОЛЬКОНФИГА ! ! контроль входа на маршрутизатор line vty 0 4 login local ! ! ДХЦП ip dhcp pool LAN network ВнутрСеть Маска default-router Шлюз dns-server 10.11.12.13 ! DNS - фиктивный придумали - НЕ из нашей локальной сети ! ! ! Монитор пинга на адрес шлюза провайдера-1 ! Ждать ответа 100 мс ! Пинговать с частотой 1 секунда ip sla monitor 1 type echo protocol ipIcmpEcho ШлюзПров1 source-interface ИнтерфейсНаПров1 timeout 100 frequency 1 ! ! Монитор пинга на провайдера-2 ip sla monitor 2 type echo protocol ipIcmpEcho ШлюзПров2 source-interface ИнтерфейсНаПров2 timeout 50 frequency 1 ! ! Запуск пинговалок 1 и 2, сейчас и навсегда ip sla monitor schedule 1 life forever start-time now ip sla monitor schedule 2 life forever start-time now ! ! Трэки 10 и 20 - отслеживание состояния пинговалок ! Реагирует на состояние Down или Up с задержкой 1 сек. track 10 rtr 1 reachability delay down 1 up 1 ! track 20 rtr 2 reachability delay down 1 up 1 ! ! ! Маршруты на все внешние сети на обоих провайдеров ! Маршруты привязаны к трэкам ! и будут активироваться только если трэк в состоянии Up ! т.е. если шлюз на соответствующего провайдера доступен ip route 0.0.0.0 0.0.0.0 ШлюзПров1 track 10 ip route 0.0.0.0 0.0.0.0 ШлюзПров2 track 20 ! ! ! int fa 0/0 no shut ! ! Саб-интерфейсы в сторону внешних провайдеров ! помечаются как outside для NAT interface FastEthernet0/0.1 description ISP1 encaps dot1q НомерВланПров1 ip address ipНаПров1 Маска ip nat outside ! interface FastEthernet0/0.2 description ISP2 encapsulation dot1Q НомерВланПров2 ip address ipНаПров2 Маска ip nat outside ! ! Интерфейс на внутр сеть ! помечается как inside для NAT ! Привязывается политика маршрутизации PBR interface FastEthernet0/1 ip address ipНаВнутрСеть маска ip nat inside ip policy route-map PBR no shut ! ! Аксесс-листы из внутр сети наружу ! На веб-трафик и на все остальное ip access-list extended LOCAL permit ip внутрСеть any ! ip access-list extended WEB permit tcp внутрСеть any eq www permit tcp внутрСеть any eq 443 ! ip access-list extended ALL permit ip any any ! ! ! хитрый рут-мап PBR ! Если трафик из локалки на Веб ! то назначить ему шлюзом первого провайдера ! Иначе, прочему трафику из локалки ! назначить шлюзом второго провайдера. ! При назначении шлюза проверяются Трэки route-map PBR permit 10 match ip address WEB set ip next-hop verify-availability ШлюзПров1 1 track 10 ! route-map PBR permit 20 match ip address ALL set ip next-hop verify-availability ШлюзПров2 1 track 20 ! ! ! хитрый рут-мап ISP1 ! срабатывает если трафик из локалки ! пытается выйти через интерфейс Fa0/0.1 route-map ISP1 permit 10 match ip address LOCAL match interface FastEthernet0/0.1 ! ! хитрый рут-мап ISP2 ! срабатывает если трафик из локалки ! пытается выйти через интерфейс Fa0/0.2 route-map ISP2 permit 10 match ip address LOCAL match interface FastEthernet0/0.2 ! ! ! Наконец, NAT ;-) ! ! Трафик из локалки в первого провайдера Натить через первый интерфейс ip nat inside source route-map ISP1 interface FastEthernet0/0.1 overload ! ! Трафик из локалки во второго провайдера Натить через второй интерфейс ip nat inside source route-map ISP2 interface FastEthernet0/0.2 overload ! ! Трафик на фиктивный ДНС переНатить на Гугл-ДНС ! no-alias - не создавать arp-proxy-alias для внешнего ip в статик-трансляции ip nat outside source static 8.8.8.8 10.11.12.13 no-alias ! ! проброс внутреннего порта 3389 на внешний порт 1111 ! extendable - разрешает делать много записей для одного внутрХоста ip nat inside source static tcp внутрХост 3389 внешip1 1111 extendable ip nat inside source static tcp внутрХост 3389 внешip2 1111 extendable ! !
Разное
CGN (carrier grade nat) с особым пулом приватных адресов
NAT как ALG (application layer gateway), (plain text protocols e.g. SIP) NAT — helpers
linux-style masquerade, mikrotik netmap
Что такое NAT? Особенности в MOXA

NAT (Network Address Translation, трансляция сетевых адресов) — это функция для изменения IP-адреса во время передачи пакетов Ethernet через маршрутизатор. Чаще всего используется для подключения устройств в локальной сети к сети Интернет, но может использовать и для других целей.
Зачем использовать NAT?
- Из-за ограниченного количества IP адресов. В сетях IPv4 количество адресов чуть более 4 млрд. (4 228 250 625). Это в два раза меньше населения нашей планеты, так что на всех не хватит. А ведь еще есть миллиарды устройств, которые тоже должны выходить в Интернет (привет Интернету Вещей). Для решения проблемы нехватки уникальных IP адресов и придумали NAT. Теперь к одному маршрутизатору можно подключить десятки устройств, которые будут иметь разные внутренние IP адреса и только один уникальный внешний IP адрес, по которому будут доступны из Интернета. (только при использовании NAT в режиме N-к-1).
- Для безопасности, когда нужно скрыть внутренний IP-адрес (LAN) устройств от внешней сети (WAN). Функция NAT преобразовывает внутренний IP-адрес в определенный IP-адрес или диапазон внутренних IP-адресов в один внешний IP-адрес.
- Для безопасности, когда нужно скрыть тип сервиса или номер порта, который использует устройство. В этом случае происходит подмена не IP адреса, а номер порта заменяется на общеизвестный порт (например, на 80-й порт HTTP).
- Когда один и тот же IP-адрес используется идентичными сетевыми устройствами и нет возможности его изменить.
Какие бывают NAT?
Всего есть 4 типа NAT:
- 1-к-1 NAT или Статический NAT
- Bidirectional 1-к-1 NAT
Подробнее о NAT 1-к-1 или Статический NAT
Самый простой для понимания тип NAT, но и наименее полезный. В случае статического NAT каждому внутреннему IP адресу присваивается уникальный внешний IP адрес.
Пример статического NAT и сетевые настройки:
На картинке ниже ПЛК с локальным IP 192.168.127.1 присвоен внешний постоянный IP 10.0.0.1, по которому он всегда будет доступен из глобальной сети WAN.

Настройка сетевого адаптера на ПЛК:
Обратите внимание, так как сообщение отправляется в другую подсеть, на ПЛК обязательно указывать Шлюз по умолчанию. В качестве MAC-адреса получателя ПЛК ставит адрес шлюза. При этом IP-адрес получателя в пакете остаётся 192.168.126.1.
Настройка маршрутизатора:
На маршрутизаторе создаем WAN интерфейс, через который он будет подключаться к внешней сети.
Внешний адрес WAN-интерфейса: 10.0.0.1
LAN интерфейс: 192.168.127.254
IP веб-интерфейса маршрутизатора: 192.168.127.254
Правило NAT на маршрутизаторе будет таким:
Для исходящих соединений – заменить внутренний адрес 192.168.127.1 на внешний 10.0.0.1
Для входящих соединений – переслать пакеты с адресом 10.0.0.1 на внутренний 192.168.127.1

Вот так происходит подмена IP адресов:

Особенности 1-1 NAT:
- Количество устройств за NAT ограничено количеством полученных у провайдера уникальных IP адресов или количеством WAN портов на натирующем устройстве.
- Устройства с зарезервированными адресами могут быть доступны извне по уникальным адресам.
- Связь двунаправленная, т.е. можно связаться с устройством за NAT по его внешнему IP-адресу, не требуется первичной установки соединения, и устройство за NAT может связываться с внешним миром.
- При Static NAT все порты открыты и не нужно делать проброс портов, устройство за NAT (или запущенная на нем программа) будет всегда доступно по любому порту.
- Этот тип NAT не помогает сохранять IP адреса, но бывает полезен. Например, на производственной линии станки могут иметь одинаковые внутренние IP-адреса (спрятаны за маршрутизатором) и подключаться к внешней сети с разными внешними IP-адресами. Здесь мы используем NAT 1-к-1 для сопоставления внутренних адресов с публичными IP-адресами. Внутренний IP-адрес устройств не изменяется, что позволяет, например, заготавливать заранее настроенный ЗИП или просто выпускать с производства оборудование с одинаковыми настройками (в данном случае – станки).

Пример настройки правил NAT на двух маршрутизаторах EDR-G903:


Bidirectional 1-к-1 NAT
Bidirectional NAT является разновидностью обычного NAT 1-1 и позволяет организовать связь между разными подсетями без указания Основного шлюза в настройках сетевого адаптера.
На некоторых устройствах нельзя прописать основной шлюз по умолчанию в настройках сетевого адаптера. Как быть, если нужно соединить такое устройство с другой подсетью через маршрутизатор? В этом случае на помощь приходит Bidirectional NAT.

Вот как настраивается правило Bidirectional NAT на маршрутизаторе EDR-810:

Разница между обычным 1-1 NAT и Bidirectional NAT заключается в простом нюансе: в первом случае устройство знает, что существуют другие подсети, и для выхода на них использует шлюз умолчанию с дальнейшей подменой адресов на роутере; во втором случае устройство «обмануто» и думает, что общается внутри своей подсети. Логично, что Bidirectional NAT используется для более старых или простых приборов, а обычный 1-1 NAT работает с более умными устройствами.

Подробнее о NAT N-к-1, он же Port Address Translation (PAT), NAT Overload или IP Masquerading
В случае NAT N-к-1 через один внешний IP адрес в сеть могут выходить десятки и сотни устройств, находящиеся за NAT. Такой подход помогает экономить дефицитные IP адреса v4. Можно иметь до 65 535 одновременных активных соединений через один и тот же адрес.
Также технология позволяет скрыть реальный IP адрес и порт устройств и приложений за NAT, что повышает безопасность.
Ограничение N-1 NAT:
Главным минусом и в то же время плюсом (в зависимости от задач) этой технологии является то, что она не позволяет иметь доступ извне к внутренним узлам. Все соединения должны быть инициированы изнутри, т.е. инициатором связи всегда является устройство за NAT. Невозможно установить связь с устройством из внешней сети.



Как мы видим, роутер метит информацию от компьютеров из внутренней сети при помощи портов на 4 уровне модели OSI: он запоминает сопоставление внутренних портов источника (до WAN) и вновь сгенерированных внешних (после WAN). Когда приходят разные ответы, то, хоть они и поступают на один и тот же IP-адрес WAN-порта, роутер безошибочно распределяет их по правильным компьютерам согласно этому сопоставлению.
Port Forward / Проброс портов
Проброс портов позволяет указать, что все запросы, приходящие на конкретный внешний адрес и конкретный порт маршрутизатора, должны быть перенаправлены на конкретный внутренний адрес и порт получателя.
Требуется, если TCP-сервер находится за NAT или для подключения UDP, инициированного извне. То есть, Port Forward позволяет обойти ограничение NAT N-к-1.



Функция проброса портов NAT является одним из способов подключения из внешней незащищенной зоны (WAN) во внутреннюю защищенную зону (LAN). Пользователь может инициировать подключение из внешней сети к внутренней сети, но не сможет инициировать подключение из внутренней сети к внешней сети.
Внимание: будьте осторожны, используя проброс портов в Интернет! Если злоумышленники узнают IP-адрес и TCP/UDP-порт вашего устройства, то они смогут получить к нему доступ из любой точки мира! Прежде, чем настраивать проброс портов в открытом доступе, лучше заранее подумать обо всех необходимых мерах по кибербезопасности.


Оборудование с поддержкой NAT
Модель 


EDR-G903 EDR-G902 EDR-810 Требования Двойное резервирование WAN Защита между WAN and LAN Защищенный маршрутизатор с функциями управляемого коммутатора L2; несколько портов для подключения устройств Порты 2 WAN (Комбо)
1 LAN (Комбо)1 WAN (Комбо)
1 LAN (RJ45)1 WAN
15 LAN (оптика по SFP или RJ45)Пропускная способность 40,000 fps 25,000 fps 10,000 fps Firewall/NAT 512 / 256 правил 256 / 128 правил 256 / 128 правил VPN 100 IPSec туннелей 50 IPSec туннелей 10 IPSec туннелей Резервирование WAN 2 независимых WAN — — DMZ (демилитаризованная зона) 1 — — Если у Вас есть вопросы по продукции МОХА, обращайтесь по телефону: +7 (495) 419-1201 или по e-mail: russia@moxa.pro
Товары из статьи


2-портовоый промышленный модуль контроллера ретрансляции сетевых адресов (NAT device), 12/24/48VDC-in, -40. +75C
$990,77 88 860,48 ₽


Промышленный маршрутизатор безопасности: 2 WAN комбо-порта Gigabit Ethernet (RJ-45 + SFP), 1 комбо-порт LAN Gigabit Ethernet, Firewall/NAT/VPN, 0. +60C
$2 988,04 267 992,23 ₽


Промышленный маршрутизатор безопасности: 1 WAN комбо-порт Gigabit Ethernet (RJ-45 + SFP), 1 LAN Gigabit Ethernet, Firewall/NAT/VPN, 0. +60C


Промышленный маршрутизатор безопасности: 8 портов 10/100 BaseT(X) + 2 Gigabit Ethernet SFP, Firewall/NAT, -10. +60 С
$1 435,80 128 774,46 ₽
Рекомендованные продукты


Промышленный маршрутизатор безопасности: 8 портов 10/100 BaseT(X) + 2 Gigabit Ethernet SFP, Firewall/NAT, -10. +60 С
$1 435,80 128 774,46 ₽


Промышленный маршрутизатор безопасности: 8 портов 10/100 BaseT(X) + 2 Gigabit Ethernet SFP, Firewall/NAT, -40. +75 С
$1 598,15 143 335,36 ₽


Промышленный маршрутизатор безопасности: 8 портов 10/100/1000 BaseT(X) + 2 Gigabit Ethernet SFP, Firewall/NAT/VPN, -40. +75 С
$4 293,83 385 106,31 ₽


Промышленный маршрутизатор безопасности: 8 портов 10/100/1000 BaseT(X) + 2 Gigabit Ethernet SFP, Firewall/NAT/VPN, -10. +60 С
$4 150,86 372 283,58 ₽


2-портовоый промышленный модуль контроллера ретрансляции сетевых адресов (NAT device), 12/24/48VDC-in, -40. +75C
$990,77 88 860,48 ₽


2-портовоый промышленный модуль контроллера ретрансляции сетевых адресов (NAT device), 12/24/48VDC-in, -10. +60C
$854,24 76 615,33 ₽


Система предотвращения сетевых атак: 2 порта 10/100/1000 BaseT(X), Firewall, -40. +75 С
$2 263,52 203 011,26 ₽

Промышленный маршрутизатор безопасности, 8 портов GbE copper, 2 порта GbE SFP, Firewall/NAT/VPN, 12/24/48 VDC-in, -10. +60C