Как сделать маршрут на микротике

Обновлено: 08.07.2024

1. Настройка интернет.

Рассмотрим самую простую ситуацию. У тебя есть роутер MikroTik hAP или любой другой MikroTik, твой домашний компьютер (может два или больше) и любимый провайдер.

С чего начать? Начнём с того, что определим три основных шага:

  • Получение доступа к устройству;
  • Настройка взаимодействия с провайдером;
  • Настройка взаимодействия с компьютером.

В дальнейшем постараюсь держать именно такой формат. Три простых шага для настройки MikroTik. Ничего лишнего, ни каких попутных косвенных действий.

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

Существует ряд способов доступа к устройствам MikroTik. Среди них основным и наиболее понятным инструментом является Winbox.

Winbox — это приложение для ОС Windows, которое предоставляет пользователю графический интерфейс со всем необходимым инструментарием. Стоит отметить, что Winbox вполне нормально чувствует себя в Wine (Linux). Следующими способами доступа будут WEB интерфейс, SSH, Telnet, RS232 (у кого есть), но мы во всех примерах будем использовать Winbox.

И вновь три простых шага:


2. Подключаем MikroTik к электросети и соединяем патчкордом с ПК.


3. Нажимаем кнопку Refresh, выбираем из обнаруженных устройств свой MikroTik кликом на его MAC-адрес, вводим имя пользователя и нажимаем кнопку Connect.


При первом подключении, устройство спросит сбросить ли настройки или оставить всё как есть. Чтобы предустановленная конфигурация не мешалась и не вводила в заблуждение, подтверждаем её удаление кнопкой Remove Configuration.


Вот в таких три простых действия мы получили доступ к устройству.

Переходим к следующему шагу.

3. Настройка взаимодействия с провайдером.

Теперь нам нужно получить интернет от провайдера и здесь мы вновь выполним три простых шага:

  1. Подключение кабеля провайдера;
  2. Настройки провайдера;
  3. Проверка соединения.

4. Подключение кабеля провайдера.

В отличие от всякого рода D-Link’ов и TP-Link’ов, MikroTik не разделяет физические порты на LAN/WAN. Здесь роль порта зависит от вносимой конфигурации. Всё это возможно благодаря его операционной системе — RouterOS. Данная ОС основанная на ядре Linux, представляет из себя качественно иной класс программного обеспечения для телекоммуникационных устройств. К примеру в самом дешёвом маршрутизаторе MikroTik будет доступен функционал маршрутизатора из Enterprise сегмента за несколько сотен килобаксов. Это не означает что он будет работать на том же уровне, но он там есть.

Так и в случае с назначением портов, в связи с чем подключаем кабель в первый понравившийся порт. В нашем случае, это Ether1.


5. Настройки провайдера.

Сперва нужно взять предоставленные провайдером настройки и внимательно с ними ознакомиться. Предполагаем, что провайдер передал следующие настройки:

IP адрес: 10.0.0.33
Маска: 255.255.255.0
Шлюз: 10.0.0.1

DNS сервер 1: 10.10.8.8
DNS сервер 1: 10.10.4.4

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

6. Статический IP.

В случае со статическим IP всё достаточно просто. Нам нужно указать данный адрес на интерфейсе, указать DNS сервер и настроить маршрут по умолчанию.

Взяв настройки провайдера, делаем это в три простых шага.

Успешно установив адрес, нажимаем ОК и переходим к следующему действию.


2. Устанавливаем DNS сервер, нажимаем ОК и переходим к следующему действию.



Нажимаем везде ОК и переходим к проверке соединения.

7. DHCP Client.

В случае с DHCP всё ещё проще. Всё что нужно, это настроить DHCP клиент. После установок на скриншоте, жмём ОК и можно проверять подключение при помощи ping.


8. PPPoE Client.

PPPoE представляет из себя симбиоз из одного из предыдущих типов подключения и самого PPP клиента. В данном примере к настройкам провайдера добавляется ещё два пункта — логин и пароль абонента. Выполнив настройку со статическим IP или DHCP клиентом, переходим к настройке PPPoE клиента.



Нажав везде ОК, можно смело переходить к ping’у.

9. Проверка соединения.

Теперь можно проверять подключение при помощи ping. Если потери 0% (0% packet loss), значит всё работает правильно.


Это стандартный набор настроек для подключения к провайдеру. Периодически встречается специфика, такая как формат передачи пароля, чёткое указание PPPoE сервера и прочее. Описать всё невозможно, да и не имеет смысла.

Теперь пришло время завершающего этапа настройки.

10. Настройка взаимодействия с компьютером.

В данном примере будем рассматривать случай, когда все оставшиеся 4 порта заняты делом.

И вновь три простых шага:

11. Объединяем порты в Bridge.

  • Создаём список интерфейсов;
  • Создаём Bridge;
  • Добавляем интерфейсы в Bridge.

12. Список интерфейсов.



Добавляем интерфейсы в Bridge, жмём ОК.


13. Настраиваем DHCP сервер.

Для того чтобы наши компьютеры получали IP адреса, шлюз и DNS сервер, необходимо настроить DHCP сервер.

Продолжаем в три шага.

Создаём пул адресов;
Создаём DHCP сервер;
Создаём сеть DHCP сервера.

14. Создаём пул адресов.

Важно обратить внимание на то, что адресное пространство провайдера и внутреннее (домашнее) не должны пересекаться. То есть если у провайдера сеть 10.0.0.0/24, то внутри не может быть 10.0.0.0/24 или 10.0.0.0/25 или 10.0.0.128/25 и так далее. Одним словом, всё что попадает в диапазон 10.0.0.0-10.0.0.255 использовать нельзя, иначе NAT работать не будет.

Устанавливая пул 192.168.0.10-192.168.0.20 определяем, что будет использовано 11 IP адресов. Пул не может содержать адрес подсети (192.168.0.0), адрес маршрутизатора (192.168.0.1) и адрес широковещательного домена (192.168.0.255 для сети /24).

Таким образом, в нашем случае доступно адресное пространство с 192.168.0.2 по 192.168.0.254.


15. Создаём DHCP сервер.


16. Создаём сеть DHCP сервера.

Создавая сеть DHCP сервера, мы указываем такие параметры как адресное пространство+подсеть, адрес шлюза (в нашем случае это 192.168.0.1) и адрес DNS сервера. Последние два необходимы для того, чтобы компьютер знал куда отправлять все пакеты и где брать IP адреса доменов.

Жмём везде ОК и идём дальше.


Если всё сделано корректно, то подключенный к любому из портов компьютер, должен получить IP адрес из пула 192.168.0.10-192.168.0.20 со шлюзом 192.168.0.1 и DNS 192.168.0.1. К слову DNS может быть и внешним. К примеру можно использовать публичные DNS Yandex — это 77.88.8.8, 77.88.8.1 или Google — это 8.8.8.8, 8.8.4.4 или DNS провайдера.

17. Включаем NAT.

Вот собственно и финал.

На MikroTik’е созданы все необходимые сети и настроен DHCP сервер. Теперь осталось только включить перенаправление пакетов из внутренней сети 192.168.0.0/24 в сеть провайдера 10.0.0.0/24.


Теперь пришло время нажать в последний раз кнопку ОК и маршрутизатор настроен.

Вот так, совсем не сложно как могло показаться с первого взгляда.

18. Оригиналы источников информации.

Резервирование каналов в Mikrotik при помощи рекурсивной маршрутизации

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

Как показывает читательский отклик, маршрутизация для многих администраторов является достаточно сложной темой. Тем не менее если вы внимательно выполните все инструкции данной статьи, то всё будет работать. Однако слепое выполнение инструкций не добавляет понимания происходящих процессов и, если что-то пойдет не так вы окажетесь в весьма затруднительном положении, поэтому перед тем, как перейти к практике мы выполним небольшой теоретический ликбез.

Теория

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

Что такое маршрутизация? Это процесс определения пути следования данных в сетях связи. Его можно сравнить с прокладкой маршрута с использованием навигатора, вы задаете начальную и конечную точку и получаете несколько вариантов проезда с указанием всех промежуточных точек. В некоторых точках маршрут может разделяться на несколько вариантов, из которых вы можете выбрать наиболее оптимальный, исходя из оценки текущей дорожной обстановки.

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

Прежде всего разберемся как заполняется таблица маршрутизации. Это может происходить несколькими способами:

  • Непосредственно присоединенные сети - в данном случае они имеют флаг С - connect - это сети к которым физически подключен маршрутизатор, они добавляются при подключении интерфейса и удаляются при его отключении.
  • Статические маршруты - добавляются системным администратором, либо динамически, при подключении коммутируемого соединения или получения сетевых параметров по DHCP. В этом случае к флагу S -static, добавляется флаг D - dynamic.
  • Динамические маршруты - маршруты добавляемые при помощи протоколов динамической маршрутизации, таких как OSPF, RIP и т.д. Не следует путать их с динамически добавляемыми статическими маршрутами и маршрутами непосредственно присоединенных сетей. Флаг D - dynamic в Mikroitk обозначает только то, что маршрут добавлен автоматически, без участия пользователя. А динамические маршруты обозначаются флагами r - rip, b - bgp, o - ospf, m - mme, однако их рассмотрение выходит за рамки данной статьи.

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

Теперь разберемся как все это работает. Допустим мы хотим обратиться к узлу 8.8.8.8, роутер берет таблицу маршрутизации и осуществляет в ней поиск наилучшего маршрута к запрашиваемому узлу. В нашем случае искать особо нечего и это будет "нулевой" маршрут со шлюзом 192.168.3.1. Но маршрутизаторы крупных сетевых узлов могут содержать тысячи и десятки тысяч маршрутов и поэтому поиск может оказаться совсем не простым и дешевым действием.

Здесь тоже следует дать краткие пояснения, если интерфейс выхода является сетью Ethernet, то роутер выполнит ARP-запрос для адреса шлюза и сформирует Ethernet-кадр, а если это туннельный интерфейс точка-точка (VPN, PPPoE), то выполнит инкапсуляцию IP-пакета и отправит его на другую сторону туннеля.

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

Для решения этой проблемы в Linux, а следовательно, и в RouterOS, введены понятия области маршрута - Scope, и области поиска - Target-scope. Теперь вернемся к нашей таблице маршрутизации, "нулевой" маршрут имеет область - 30 и область поиска - 10. Следовательно дальнейший поиск будет вестись только среди маршрутов с областью 10.

По умолчанию данные опции имеют следующее значение:

  • Непосредственно присоединенные сети: Scope - 10, Target Scope не имеет смысла, так как данный маршрут указывает на интерфейс выхода
  • Динамические маршруты - OSPF, RIP, MME: Scope - 20, Target Scope - 10
  • Статические маршруты: Scope - 30, Target Scope - 10

Таким образом область поиска существенно снижается и маршрут к шлюзу ищется только среди непосредственно присоединенных сетей. Теперь самое время перейти к рекурсивной маршрутизации.

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

Давайте рассмотрим следующую таблицу маршрутизации:

В качестве шлюза по умолчанию мы указали адрес одного из DNS-серверов Cloudflare, обратите внимание, что такой адрес не должен использоваться в вашей сети, потому что после отказа связанного с ним провайдера он окажется недоступен. Теперь мы можем проверять наличие интернета за пределами сети провайдера и своевременно переключать маршруты в случае его недоступности.

Теперь разберемся как это работает. Когда мы хотим связаться с каким-либо узлом в сети интернет маршрутизатор выполнит поиск по таблице маршрутизации и, если не указано иных маршрутов, выберет "нулевой" в котором указан шлюзом 1.1.1.1, так как найден адрес, то поиск будет продолжен, чтобы определить интерфейс выхода. Так как указанный нами шлюз не находится ни в одной из непосредственно присоединенных сетей, то сделать это не удастся и такой маршрут работать не будет.

Поэтому мы "подскажем" маршрутизатору как достичь указанного нами узла и добавим маршрут к 1.1.1.1 через сеть провайдера, а чтобы он участвовал в поиске его область должна быть меньше или равна области поиска "нулевого" маршрута, т.е. 10. Это очень важный момент, если вы неправильно укажете область второго маршрута - рекурсивная маршрутизация работать не будет.

Итак, роутер находит адрес первого шлюза - 1.1.1.1 и начинает искать маршрут к нему с среди маршрутов с областью 10, там он находит второй маршрут и получает из него новое значение шлюза - 192.168.3.1 - который является шлюзом нашего провайдера, затем еще раз выполняет поиск и находит связанный с ним интерфейс выхода - ether5. После чего пакет отправляется провайдеру, а удаленный узел 1.1.1.1 используется нами только как способ проверки наличия интернета через данный канал. Это и есть рекурсивная маршрутизация.

Практика

Будем считать что на вашем роутере уже настроен доступ к двум провайдерам и мы не будем останавливаться на этапе базовой настройки, если вы испытываете затруднения с этим, то обратитесь к нашей статье: Базовая настройка роутера MikroTik.

В нашем примере будут использоваться два условных провайдера, основной и резервный, подключенные к интерфейсам ether5 и ether4, тип интерфейса и подключения в данном случае никакой роли не играют. Откроем таблицу маршрутизации IP - Routes, в простейшем виде она будет выглядеть приблизительно так:

mikrotik-recursive-routing-001.jpg

У нас есть два нулевых маршрута с разными административными дистанциями (1 для основного провайдера, 2 для резервного) и три маршрута для непосредственно присоединенных сетей, где 192.168.3.0/24 - сеть основного провайдера, а 192.168.16.0/24 - резервного.

Перед тем, как переходить к дальнейшим настройкам нам нужно выяснить и запомнить адреса шлюзов провайдеров, для этого можно заглянуть на закладку Nexthops, для коммутируемых подключений (VPN, PPPoE) следует проверить свойства соответствующего соединения.

mikrotik-recursive-routing-002.jpg

Внимание! Дальнейшие действия следует производить имея физический доступ к устройству!

Прежде всего отключим автоматическое создание нулевых маршрутов для сетей провайдеров, для этого следует снять флаг Add Default Route в свойствах подключения, либо установить одноименную опцию в значение - no.

mikrotik-recursive-routing-003.jpg

После этого доступ в интернет по обоим каналам пропадет. Имейте это ввиду при планировании работ.

Теперь начнем добавлять собственные маршруты, но сначала выберем два высокодоступных узла для первого и второго провайдера. Допустим это будут 1.1.1.1 (Cloudflare DNS) и 9.9.9.9 (Quad9 DNS). Каких-либо ограничений по их выбору нет, это могут быть как ваши собственные, так и публичные узлы, единственное условие - они не должны использоваться в вашей сети, потому как при отказе одного из провайдеров окажутся недоступными.

В первую очередь создадим маршруты к этим узлам. Для этого снова перейдем в IP - Routes и создадим новый маршрут:

mikrotik-recursive-routing-004.jpg

Где Dst. Address - 1.1.1.1 - узел для проверки первого провайдера, Gateway - 192.168.3.1 - шлюз первого провайдера, Distance - 1, Scope - 10. Обратите внимание на значение области (Scope), если вы оставите там значение по умолчанию - 30, то рекурсивная маршрутизация работать не будет! Затем добавим второй аналогичный маршрут, но уже к узлу 9.9.9.9 через шлюз второго провайдера.

Эти же действия через терминал:

Затем добавим два рекурсивных "нулевых" маршрута. Для первого провайдера:

mikrotik-recursive-routing-005.jpg

Dst. Address оставляем по умолчанию - 0.0.0.0/0, Gateway - 1.1.1.1 - высокодоступный узел для первого провайдера, Check Gateway - ping - указываем проверку доступности шлюза, Distance - 1.

Для второго провайдера:

mikrotik-recursive-routing-006.jpg

Dst. Address - 0.0.0.0/0, Gateway - 9.9.9.9, Check Gateway - ping , Distance - 2. Обратите внимание на значение административной дистанции второго маршрута, она должна быть больше, чем у основного провайдера, в нашем случае - 2.

То же самое быстро в терминале:

Теперь таблица маршрутизации будет выглядеть следующим образом:

mikrotik-recursive-routing-007.jpg

Наши маршруты добавились как рекурсивные и активным является маршрут через основного провайдера. Теперь имитируем аварию у первого провайдера, буквально через 10-20 секунд таблица маршрутизации изменится и рабочим станет маршрут через резервный канал:

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

Рекурсивная маршрутизация и PPPoE

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

Чтобы этого избежать используем одну небольшую хитрость. Вспомним, о чем мы говорили в теоретической части. При использовании PPPoE соединения адрес шлюза провайдера роутеру как таковой не нужен. Он используется только для определения интерфейса выхода. Для работы протокола PPP, который лежит в основе PPPoE, IP-адреса не требуются. Это дает возможность самостоятельно присвоить произвольный адрес для удаленного конца туннеля и использовать его в качестве шлюза.

Для этого перейдем в PPP - Profiles и создадим новый профиль, укажем для него понятное имя и зададим параметр - Remote Address, адрес можно указать любой, единственное условие - он не должен пересекаться с вашими внутренними сетями, в нашем случае это 10.253.252.251. Также установите переключатель Change TCP MSS в положение yes.

mikrotik-recursive-routing-009.jpg

В терминале это можно сделать так:

После чего назначим этот профиль вашему PPPoE соединению:

mikrotik-recursive-routing-010.jpg

И после его перезапуска убедимся, что удаленный адрес соединения теперь соответствует назначенному нами:

mikrotik-recursive-routing-011.jpg

Теперь можно использовать данный адрес как шлюз для этого провайдера, не беспокоясь о возможных изменениях.

Рекурсивная маршрутизация и DHCP

Описанная выше проблема актуальна и для провайдеров, выдающих настройки по DHCР, в том случае если у клиента нет выделенного IP-адреса, текущий адрес может быть назначен из нескольких диапазонов, а следовательно, будет изменен и адрес шлюза. В отличие от PPPoE здесь мы не сможем задать произвольный адрес, поэтому нам на выручку придут скрипты.

Прежде всего добавим к маршруту для высокодоступного узла через шлюз провайдера уникальный комментарий, например, ISP1.

mikrotik-recursive-routing-012.jpg

Затем перейдем в настройки DHCP-клиента - IP - DHCP Client - и на закладке Advanced внесем в соответствующее поле короткий скрипт:

mikrotik-recursive-routing-013.jpg

Теперь при каждом новом получении адреса по DHCP скрипт будет находить наш маршрут и изменять в нем значение шлюза на реально полученный адрес. Попробуем смоделировать данную ситуацию и выдадим нашему роутеру адрес первого провайдера из другого диапазона. Как видим, все автоматически изменилось согласно вновь полученных настроек:

mikrotik-recursive-routing-014.jpg

Таким образом мы снова успешно решили задачу поддержания маршрутной информации в актуальном состоянии несмотря на ее возможные изменения со стороны провайдера.

Из этой статьи мы узнаем, как настроить на MikroTik проброс портов и NAT (трансляция сетевых адресов) для доступа хостов локальной сети в интернет. Для примера выполним проброс портов через туннель между двумя MikroTik. А также продемонстрируем реализацию перенаправление трафика на маршрутизатор.

Поговорим о настройке Masquerade, выясним, когда рекомендуется использовать Srcnat вместо Masquerade. Рассмотрим пример, где объединим две разные сети, IP-адреса которых совпадают, с помощью Netmap.

MikroTik NAT. Общая информация

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


По умолчанию для LAN сети, находящейся за “натом”, доступ в интернет есть, а из глобальной сети в NAT-сеть попасть нельзя. За исключением случаев проброса портов.

Настройка NAT на MikroTik подразделяется на два типа:

  • Destination NAT – изменение IP-адреса назначения и выполнение обратной функции для ответа. Преобразование адреса получателя называется dst-nat;
  • Source NAT – изменение IP-адреса источника и выполнение обратной функции для ответа. Преобразование адреса источника называется src-nat.

Все остальные действия – производные от dst-nat и src-nat.

NAT обрабатывает только первый пакет соединения (connection-state=new).

Схематично принцип работы NAT можно изобразить так:


Destination NAT

Цепочка Dstnat при настройке NAT на MikroTik служит для изменения IP-адреса и/или порта назначения и выполнения обратной функции для ответа.

Практически применяется в следующих случаях:

  • Чтобы выполнить на MikroTik проброс портов в локальную сеть, для доступа извне.
  • Перенаправление любого DNS-трафика через маршрутизатор.

Стандартные действия возможные для цепочки dst-nat:

  • dst-nat – преобразование адреса и/или порта получателя;
  • redirect – преобразование адреса и/или порта получателя на адрес маршрутизатора.

Давайте практически разберем, как выполняется настройка NAT на MikroTik для цепочки dstnat.

Проброс портов на MikroTik

Пример проброса порта для RDP

Как говорилось ранее, в MikroTik проброс портов делается при помощи создания правил для цепочки dstnat. В качестве примера выполним проброс порта RDP соединения для доступа к внутреннему компьютеру локальной сети.

Так как стандартный порт 3389 для RDP подключения является известным и часто подвергается атакам, то пробросить его напрямую будет не очень хорошей идеей. Поэтому скроем данный сервис с помощью подмены порта.

Для этого откроем:

На вкладке “General” укажем цепочку правил, протокол, протокол подключения и входящий интерфейс:


  • Chain: dstnat – цепочка правил для IP-адреса назначения;
  • Protocol: 6 (tcp) – протокол;
  • Dst. Port: 47383 – номер порта по которому будем обращаться к роутеру;
  • In. Interface – входящий WAN-интерфейс (у меня это ether1, у вас может быть другой).

При пробросе портов на MIkroTik надо обязательно указать входящий интерфейс. Иначе возможны проблемы.

Следующим шагом откроем вкладку “Action”:

Как итог все запросы, приходящие на внешний IP роутера по порту 47383, будут пересылаться на внутренний адрес локальной сети 192.168.12.100 порт 3389 (RDP).

Проброс порта на MikroTik для видеонаблюдения

Следующим примером мы постараемся показать, как настроить на MikroTik проброс портов для видеосервера с установленным ПО “Линия”.

Проброс порта на MikroTik для видеорегистратора напрямую, настраивается аналогичным образом.

Предположим, что есть Видеосервер с ПО “Линия” к которому необходимо получить доступ извне. Для начала откроем настройки программного обеспечения “Линия”, чтобы узнать порт Веб-сервера:


Чтобы получить доступ к видеосерверу, необходимо пробросить порт 9786. Откроем Winbox и добавим правило:


Распространенной ошибкой при пробросе портов на MikroTik является то, что не указывают входящий интерфейс.

Откроем пункт меню “Action”:

Проброс портов для нескольких внешних IP

Чтобы сделать проброс портов для нескольких WAN, то необходимо создать Interface List и добавить в него нужные интерфейсы. Далее укажем созданный лист в параметре In. Interface List. Покажем это на примере:

Создадим новый лист для интерфейсов “ISP”:

Следующим шагом добавим нужные WAN интерфейсы:


Повторить данный шаг для всех WAN-интерфейсов.

Модернизируем ранее созданное правило проброса порта для RDP соединения, указав лист “ISP” для настройки In. Interface List:


Так можно настроить проброс портов на MikroTik для нескольких WAN.

Как защитить проброшенные порты вы можете узнать изучив статью MikroTik настройка Firewall.

Перенаправление трафика на маршрутизатор

С помощью действия redirect возможно перенаправление трафика на Микротик. Практическое применение данного действия мы рассмотрим, выполнив переадресацию запросов DNS.

Перенаправим весь DNS-трафик на маршрутизатор. Следовательно, пользователи компьютеров в LAN, какие бы настройки DNS ни указывали локально, будут считать, что им отвечает DNS-сервер, которому сделан запрос, но фактически ответ будет приходить от маршрутизатора.

Для этого выполним настройку NAT на MikroTik следующим образом.


Перейдем в пункт меню “Action” и укажем действие redirect:


MikroTik проброс портов по туннелю L2TP


Нам нужно пробросить порт до компьютера (WS01), через GW1.




Следующим шагом, на основании соединений сделаем маркировку маршрутов:






Осталось добавить маршрут по умолчанию для пакетов маркированных как пришедшие из туннеля. Для этого открываем:

Настройка GW2 закончена. Переходим к конфигурированию GW1, выполнив проброс порта до хоста 192.168.13.48:


Mikrotik проброс портов через туннель L2TP

Настройка проброса порта на MikroTik через туннель L2TP закончена.

Source NAT

Основное назначение Source NAT MikroTik – изменение IP-адреса и/или порта источника и выполнение обратной функции для ответа.

Самое распространенное применение – это выход множества ПК в интернет через один белый IP-адрес.

Стандартные действия для цепочки src-nat:

  • src-nat – преобразование адреса и/или порта отправителя;
  • masquerad – преобразование адреса отправителя на адрес исходящего интерфейса и порта на случайный порт.

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

Настройка NAT для статического WAN

Если мы получаем статический IP от провайдера, то рекомендуем для настройки NAT на MikroTik использовать правило src-nat. Это позволит устройствам из LAN выходить в глобальную сеть интернет. Откроем:

Откроем вкладку “Action”:

Настройка NAT для динамического WAN

Если мы получаем динамический IP от провайдера, то необходимо использовать правило Masquerade.

Masquerade – это частный случай src-nat для ситуаций, когда внешний IP-адрес может динамически изменяться.

Тогда настройка NAT на MikroTik будет выглядеть следующим образом:


Настройка masquerade MikroTik

Правило src-nat/masquerade должно стоять первым в списке.

Настройка nat на MikroTik

Использование masquerade вместо src-nat может вызвать проблемы:

  • С телефонией;
  • Большая нагрузка ЦП, если создано много PPPoE соединений.
  • Проблемы с установкой соединения при 2 и более WAN-каналов.

Рекомендуем, при получении статического IP от провайдера, использовать правило scr-nat.

Если у вас несколько внешних интерфейсов, то рекомендуется добавлять условие, выделяя трафик по адресу источника:


Где Src. Address – локальная подсеть.

NAT loopback (Hairpin NAT)

Настройка Hairpin NAT MikroTik предназначена, чтобы организовать доступ из LAN к ресурсу в LAN по внешнему IP-адресу WAN. Чтобы подробно описать данную настройку и разобраться в проблеме, рассмотрим пример:


Если хост локальной сети (Ws01) обращается к серверу, находящемуся в этой же сети по внешнему IP, то сервер, получив запрос, зная, что данное устройство находится в одной LAN с IP 192.168.12.10 отвечает ему напрямую. Хост не принимает данный ответ, так как не обращался к серверу по айпи 192.168.12.100.

Правило Hairpin NAT MikroTik для статического WAN

Чтобы избежать проблему, описанную выше, выполним настройку hairpin NAT на MikroTik. При получение статического айпи от поставщика интернет-услуг, советуем использовать правило Src-nat:


Для значений Src. Address и Dst. Address указываем локальную подсеть.

Далее открыв вкладку “Action”:

NAT Loopback при динамическом WAN

При получении динамического IP-адреса от провайдера, для правила NAT loopback нужно использовать masquerade:

  • Выбираем цепочку srcnat;
  • Для значений Src. Address и Dst. Address указываем локальную подсеть;
  • Out. Interface – назначаем bridge;

Затем откроем пункт меню “Action”:


Назначим действие(Action) – маскарад.

Поставим созданное правило вторым:

Hairpin NAT MikroTik

При этом необходимо учитывать то, что при этом проброс портов должен быть выполнен с параметром dst-address.

Покажем пример такого правила:


На этом настройка Hairpin NAT на MikroTik выполнена. Теперь мы сможем обращаться к внутренним ресурсам сети по внешнему IP.

Netmap

Действие Netmap служит для создания связки из IP-адресов (1:1 NAT). На практике применяется для решения следующих задач:

  • сделать IP-адрес или группу адресов доступными из интернета по белому IP. (принцип 1:1);
  • объединить разные сети с одинаковыми адресами сетей.

Далее мы покажем примеры конфигурации MikroTik реализующие задачи, описанные выше используя netmap.

Проброс всех портов и протоколов на локальный IP

Для случая, когда нам нужно на MikroTik пробросить все порты и сервисы до компьютера, который находится за “натом”, чтобы обращаться к нему по белому IP, воспользуемся действием Netmap:


На вкладке “Action”, выберем действие netmap и укажем айпи хоста, доступ к которому хотим получить:

MikroTik проброс всех портов на локальный IP

Как объединить разные сети с одинаковой IP-адресацией

Предположим, что у нас есть два филиала с одинаковыми адресами подсетей 192.168.12.0/24, которые надо объединить.

MikroTik netmap

Чтобы избежать проблем с маршрутизацией нам необходимо:

  • Филиал № 1 подменить сеть 192.168.12.0/24 на 192.168.30.0/24;
  • Филиал № 2 подменить сеть 192.168.12.0/24 на 192.168.40.0/24.

Для этого откроем конфигурацию GW1 (Филиал №1) и добавим правила:

  • Srcnat – цепочка источника;
  • 192.168.12.0/24 – локальная подсеть;
  • 192.168.40.0/24 – подсеть удаленного филиала.

Далее открыв пункт меню “Action”, выберем действие netmap:

  • Action: netmap – выбираем действие;
  • To Addresses: 192.168.30.0/24 – Подсеть на которую подменяем текущую адресацию.

Теперь создадим цепочку dstnat:



Разместим эти правила первыми:


Переходим к конфигурированию GW2 (Филиал №2).

Открыв меню NAT, добавляем цепочку srcnat:



Осталось добавить цепочку dstnat:



И также разместим эти правила первыми:

Netmap пример объединения сетей с одинаковой адресацией

Также надо учитывать, что на обоих маршрутизаторах должна быть настроена маршрутизация до удаленной сети.

Надеюсь, статья была для вас полезна. Если остались вопросы, то пишите в комментарии, постараемся оперативно ответить.

Переключение маршрутов на MikroTik при пропадании пинга к хосту

Существует простая схема резервирования соединений с интернетом установкой разной метрики на маршруты и опрос шлюза пингами или арпами для проверки его доступности. Но иногда для соединения с провайдером используется специфичный роутер устанавливающий специфичный протокол тунелирования. Те же 4G модемы YOTA являются маршрутизаторами с USB интерфейсом не всегда совместимы с MikroTik. Для работы с ними приходится использовать промежуточные маршрутизаторы, которые будут пинговаться даже если интернет пропадёт в сети YOTA.

Для тех кто не хочет тратить своё дорогое время на изучение данного мануала предлагаем нашу платную помощь.

В этом случае создаются марки маршрутов на хосты с высоким тайм апом. Например: 8.8.8.8, 8.8.4.4, 77.88.8.8, 77.88.8.1

Создаём основной маршрут на хост 0.0.0.0/0 с марком route-gw1 и коментарием kam_gw1. Комментарий необходим так как в будущем невозможно обратится к номеру маршрута командой ввиду того, что они меняются. Приходится искать скриптом комментарий.

/ip route
add check-gateway=ping comment=kam_gw1 disabled=no distance=1 dst-address=\
0.0.0.0/0 gateway=192.168.0.1 routing-mark=route-gw1 scope=30 target-scope=10

Само собой должен быть и дополнительный маршрут на шлюз 192.168.1.1 который будет работать при отключении первого:

/ip route
add check-gateway=ping comment=kam_gw2 disabled=no distance=5 dst-address=\
0.0.0.0/0 gateway=192.168.1.1 routing-mark=route-gw1 scope=30 target-scope=10

Создадим контрольный маршрут для роутера к хосту 8.8.8.8 c марком route-1. Смысл в том что если будет пропадать/появляться пинг к хосту 8.8.8.8 c маршрутизатора NetWatch будет переключать маршрут для пользователей интернета с коментарием kam_gw1

/ip route
add check-gateway=ping comment=kontrolnij disabled=no distance=1 dst-address=\
8.8.8.8/32 gateway=192.168.0.1 routing-mark=route-1 scope=30 target-scope=10

Создадим правило маршрутизации в ip route rules для таблицы route-1 и это сделает таблицу маршрутизации для самого роутера однозначной.


Создадим проверку 8.8.8.8 в netwatch на доступность c правилами на падение и подъём хоста:

В Mikrotik есть механизм, называется check-gateway=ping в /ip route . Многие его используют в дефолтных маршрутах для проверки соединения до оборудования провайдера. В такой реализации Сheck-gateway=ping не видит, что происходит за шлюзом провайдера. А вот рекурсивная маршрутизация мониторит наличие интернета за шлюзом провайдера.

check-gateway=ping

Check-gateway=ping + рекурсия


Проверяется соединение до удаленного сервера, а не оборудование провайдера. В примере, если ping до 8.8.8.8 пропадает, происходит переключение на резервную линию.

Есть удаленный сервер в Германии. К нему подключаются пользователи из офиса в Алматы. Иногда возникают проблемы с интернетом, не по нашей вине. Связь с сервером теряется. Решено подключить резервную линию интернета и настроить рекурсивную маршрутизацию в Mikrotik. У нас все IP-адреса белые и статичные. Настраиваем.

172.16.1.1 - адрес шлюза основного интернет провайдера
172.16.2.1 - адрес шлюза резервного интернет провайдера
8.8.8.8 - адрес удаленного сервера в Германии

В Winbox



Правило 1

Правило 2

Правило 3


Через консоль

/ip route
add check-gateway=ping distance=1 gateway=8.8.8.8
add distance=1 dst-address=8.8.8.8/32 gateway=172.16.1.1 scope=10
add distance=2 gateway=172.16.2.1

Готово, при разрыве соединения до сервера 8.8.8.8 маршрутизатор переключится на резервную линию интернета и обратно, если пинг восстановится.

От автора

Существует несколько вариантов реализации рекурсивной маршрутизации. В данной статье описан самый простой. Единственный минус данного способа, это возникновение проблем в работе телефонии при переключении линка. Для решение проблемы можно настроить маршрутизацию с помощью ECMP + PCC + Mangle, но это уже совсем другая инструкция.

Читайте также: