- Маршруты с разным приоритетом
- Настройка двух интернет-подключений
- Доступ за НАТ
- А также source NAT?
- Одновременная работа 2-ух провайдеров в MikroTik, настройка режима балансировки
- Маркировка соединений от провайдера
- Выход с маршрутизатора
- Настройка двух провайдеров MikroTik, режим резервирования(автопереключение)
- Добавить статический маршрут для Google DNS
- Запретить ICMP запросы через провайдера-2
- Добавить правило Netwatch для переключения
- Выпускаем всех остальных и балансируем нагрузку
- Ручная настройка балансировки 2 провайдеров в MikroTik
- Mangle маркировка соединений для балансировки 2 провайдеров
- Mangle маркировка маршрута для балансировки двух провайдеров
- Общий вид раздела Mangle
- Общий вид таблицы маршрутизации при балансировке 2 провайдеров
- Контроль ICMP запросов через нужный интерфейс
- Настройка Netwatch для переключения провайдеров
- Настройка балансировки двух провайдеров Per Connection Classifier (PCC) раздела Mangle
- Два провайдера в разных подсетях
- Настройка двух провайдеров на MikroTik, балансировка и автопереключение
- Одновременный проброс с двух провайдеров в MikroTik настройка Mangle
- Два провайдера на микротике
- Подготовка настроек для работы с двумя провайдерами в MikroTik
- Освободить порт для 2-ого провайдера
- Настроить 2-ого провайдера
- DHCP client
- Статический IP
- PPPoE client
- Добавление 2-ого провайдера в список WAN
- Отключить добавление DNS серверов для провайдера-1
- DHCP client
- PPPoE client
- Определить общедоступные DNS сервера
- Отключить автоматическое добавление маршрутов
- DHCP client
- PPPoE client
- Добавление маршрутов для двух провайдеров
- Статический IP или DHCP клиент
- PPPoE client
- Mangle маркировка ответов для двух провайдеров
- Настройка IP адресации
- Проверка
- Провайдер меняет шлюз в DHCP клиенте, не работает переключение или балансировка
- Настройка двух интернет-подключений
- Два провайдера на микротике
- Читайте также
- Использование сценария, запускаемого в Netwatch
- 1. Задаем описания
- 2. Настраиваем узел для проверки канала
- 3. Настройка задания в Netwatch
- Выпустить с правильного адреса
- Балансировка и резервирование в MikroTik используя настройки NTH раздела Mangle
- Статическая маршрутизация для маркированных маршрутов
- Доступ к маршрутизатору
- Два провайдера в разных подсетях
Маршруты с разным приоритетом
Раскрываем в меню IP:
Добавляем 2 маршрута. Первый через одного Интернет провайдера со следующими настройками:
* мы указываем шлюз от нашего провайдера (в данном примере 1.1.1.1), задаем настройку проверки шлюза (Check Gateway) с помощью утилиты ping, задаем приоритет (Distance 10).
Для второго провайдера мы задаем, практически, аналогичные настройки:
* обратите внимание, что в отличие от первого маршрута, в данном указана большая дистанция и другой шлюз (для второго провайдера).
После удаляем старые маршруты. Должны остаться только те, что мы добавили.
Настройка двух интернет-подключений
Для начала сбросим Mikrotik на заводские настройки, подключившись к нему через программу Winbox: выберите раздел System — Reset Configuration, в открывшемся меню ставим галочки на No default configuration и Do not backup и нажимаем Reset configuration. После сброса оборудования можно приступать к настройке.
Сначала настроим первый WAN порт – в нашем примере на нем будет динамическое подключение.
В меню IP – DHCP Client добавляем новое подключение, назначив интерфейс ether1.
Можно поступить проще, введя на микротике в New Terminal данную команду:
Далее настроим второй порт на статику.
Откроем меню IP – Addresses и добавим новый адрес с указанием нужного порта.
Откроем меню IP – Route и добавляем новый адрес шлюза.
Также не забываем указать адрес DNS сервера ( меню IP – DNS):
Или же введите в New Terminal следующий конфиг (соответственно, указав вашу индивидуальную адресацию):
Также стоит упомянуть PPpoE соединение. Для того, чтобы поднять его на вашем оборудовании, используйте следующие строки в New Terminal:
Где в PASSWORD и LOGIN вы прописываете ваши данные и указываете в interface нужный порт, в который будет подключен кабель.
Далее создадим бридж LAN, в который добавим оставшиеся порты и Wi-Fi подключение.
Добавление бриджа с помощью конфига:
После этого добавляем желаемую адресацию для созданного бриджа и настраиваем DHCP Server локальной сети. Можете использовать наш конфиг, заменив в нем адресацию на нужную вам:
Данные настройки применяются в следующих разделах:
IP – Addresses
IP – Pool
IP – DHCP Server
IP – DHCP Server – Networks
По умолчанию Wi-Fi интерфейс отключен, не забудьте включить, задать название Wi-Fi сети и выставить на нее пароль.
Это можно сделать с помощью следующего конфига:
/interface wireless set wlan1 mode=ap-bridge ssid=work default-forwarding=no disabled=no security-profile=profile1
Настроим NAT, чтобы устройства, подключенные к локальной сети, могли выходить в интернет.
Для этого в IP – Firewall – NAT добавим правило. Во вкладке General в графе Chain выбираем srcnat, в Out. Interface назначаем первый порт.
Во вкладке Action выбираем masquerade:
Создаем еще одно схожее правило, где отличаться будет Out. Interface – там соответственно выбираем второй порт.
Или же используем следующий конфиг:
Доступ за НАТ
172.20.18.2 — это exchange сервер, мы должны обеспечить доступность 25,80,443 портов через каждого провайдера.
НАТ делаем, как обычно, без всяких излишеств.
[admin@MikroTik.Me] /ip firewall nat
add chain=dstnat in-interface=ether1 dst-address=88.88.88.2 protocol=tcp dst-port=25,80,443 action=dst-nat to-addresses=172.20.18.2
add chain=dstnat in-interface=ether1 dst-address=99.99.99.2 protocol=tcp dst-port=25,80,443 action=dst-nat to-addresses=172.20.18.2
add chain=dstnat in-interface=ether2 dst-address=44.44.44.2 protocol=tcp dst-port=25,80,443 action=dst-nat to-addresses=172.20.18.2
А теперь давайте вспомним то, что мы делали самым первым правилом в mangle мы промаркировали все соединения, которые приходят через всех провайдеров! Данная маркировка нам опять поможет.
Нам необходимо отфильтровать весь трафик, который идёт из локальной сети и отправить в том направлении к маркировке которого соединение имеет отношение.
Попробуем логически по шагам описать то, как это будет работать.Опишем для одного провайдера, для остальных по тоже схеме.
1.Когда пакет придёт на IP адрес 88.88.88.2 мы промаркировали соединение, которому принадлежит пакет.
2.Далее в NAT мы изменили адрес назначения, и маршрутизатор отправит его до сервера.
3.Естественно сервер в ответ отправит пакет, как минимум syn,ack, так как данный пакет принадлежит уже существующему соединению, мы по имени соединению отправим данный пакет в именованную таблицу маршрутизации.
НАТ уже сделали, дело осталось за малым- найти трафик, который приходит от сервера.
[admin@MikroTik.Me] /ip firewall mangle
add chain=prerouting connection-mark=Next-Hop/88.88.88.1 in-interface=!ether1 action=mark-routing new-routing-mark=Next-Hop/88.88.88.1 passthrough=no
add chain=prerouting connection-mark=Next-Hop/99.99.99.1 in-interface=!ether1 action=mark-routing new-routing-mark=Next-Hop/99.99.99.1 passthrough=no
add chain=prerouting connection-mark=Next-Hop/44.44.44.1 in-interface=!ether2 action=mark-routing new-routing-mark=Next-Hop/44.44.44.1 passthrough=no
Наверное нет смысла описывать, всё предельно понятно, на входе мы промаркировали трафик от провайдеров, и когда пакет снова попал на вход маршрутизатора, но уже пакеты идут от серверов мы отправляем такие пакеты в именованную таблицу маршрутизации.
Наверное многие спросят, а почему указывается не интерфейс ether1, а не взять и указать явно локальный интерфейс, например ether4.
Мы с вами делаем универсальную конфигурацию, если явно указать какой-либо другой интерфейс, значит в случае если у нас будет ещё один NAT, который пойдёт в другой порт, нам необходимо будет добавлять ещё одно аналогичное правило, но уже с другим интерфейсом.А ведь мы можем даже завернуть трафик с помощью NAT вообще на внешние сервера например 1.1.1.1, и что тогда? Единственный интерфейс откуда в цепочке prerouting мы не должны ожидать данный трафик, это трафик с самого провайдера и причём именно с того, с которого он пришёл.
Всё работает, теперь вы можете подключаться в своему серверу по любому IP адресу.Создайте DNS A запись RR и укажите все три внешних IP адреса и всегда ссылайтесь на данную запись.
mail.mycompany.ru A 88.88.88.2
mail.mycompany.ru A 99.99.99.2
mail.mycompany.ru A 44.44.44.2
А также source NAT?
Промелькнула такая мысль в голове? Ведь когда пакет от сервера будет уходить через маршрутизатор, нам надо будет подменить его src адрес, на адрес на который он шёл в самом начале.Но мы ничего не сделали для этого.
Нам делать ничего не нужно, если вспомнить что в правило NAT попадает только самый первый пакет, тот на основании которого было создано соединение new, именно поэтому обычно вы видите небольшие значения в счётчиках правила NAT.
Обратное преобразования NAT произойдёт автоматически, давайте взглянем на запись в conntrack.
[admin@MikroTik.Me] /ip firewall connection print detail where dstnat
Flags: E - expected, S - seen-reply, A - assured, C - confirmed, D - dying, F - fasttrack, s - srcnat, d - dstnat
0 SAC d protocol=tcp src-address=5.19.245.3:57839 dst-address=88.88.88.2:80 reply-src-address=172.20.18.2:80 reply-dst-address=5.19.245.3:57839 tcp-state=established timeout=23h56m33s orig-packets=191 orig-bytes=19 352 orig-fasttrack-packets=0 orig-fasttrack-bytes=0 repl-packets=200 repl-bytes=32 631 repl-fasttrack-packets=0 repl-fasttrack-bytes=0 orig-rate=0bps repl-rate=0bps
Давайте уберём из вывода лишнее, чтобы оно нам не мешало.
0 SAC protocol=tcp src-address=5.19.245.3:57839 dst-address=88.88.88.2:80 reply-src-address=172.20.18.2:80 reply-dst-address=5.19.245.3:57839
И так когда пакет попал на маршрутизатор и соединение было “только-только” создано, соединение имело такой вид
0 SAC src-address=5.19.245.3:57839 dst-address=88.88.88.2:80
После того как произошла процедура dst NAT, маршрутизатор добавил флаги и самое главное на какой адрес изменяется IP адрес во всех пакетах в данном соединении.
0 SAC d src-address=5.19.245.3:57839 dst-address=88.88.88.2:80 reply-src-address=172.20.18.2:80
Когда пакет уходил с маршрутизатора в цепочки postrouting работает процедура src NAT, но у нас нет правил src NAT, оставили значение исходное.
0 SAC d src-address=5.19.245.3:57839 dst-address=88.88.88.2:80 reply-src-address=172.20.18.2:80 reply-dst-address=5.19.245.3:57839
Обратите внимание, что все данные этапы были сделаны на момент прохождения только первого пакета.
Теперь, если пакет приходит на маршрутизатор и у него в заголовках src-address=5.19.245.3:57839 dst-address=88.88.88.2:80
dst-address изменится на 172.20.18.2:80.
Если пакет приходит на маршрутизатор с адресами в заголовках src-address=172.20.18.2:80 dst-address=5.19.245.3:57839
src адрес изменится на 88.88.88.2:80.
Тем самым src NAT на данном этапе работает автоматически на основании правил dst-NAT.
Одновременная работа 2-ух провайдеров в MikroTik, настройка режима балансировки
Существует два метода распределения нагрузки между 2-мя провайдерами в MikroTik:
Ручная балансировка. Все узлы делятся в ручном режиме на 2-ве условные группы и каждая из групп направляется к выделенному ей провайдеру;
Автоматическая балансировка. Узлы роутера MikroTik будут поделены на группы с помощью внутренних инструментов RouterOS.
Пример с балансировкой будет отличаться тем, чтобы в рамках настройки внимание также будет уделено соединениям. Переключение станет более мягким и незаметным и это будет достигнуто благодаря маркировке соединений и частичную их очистку при переключении между провайдерами.
Когда работают оба провайдеры, нагрузка распределяется согласно ручному распределению в Address list.
Маркировка соединений от провайдера
Вы наверное помните, а если и нет, то стоит напомнить, что любой пакет, который приходит на маршрутизатор и попадает в цепочку prerouting и не важно куда он дальше попадёт forward или Input.
Наша задача пометить определённой маркой все пакеты, которые приходят от провайдеров и предназначены для определённого префикса, это необходимо для того, чтобы мы далее могли на любом этапе обработки пакетов определить, какому провайдеру принадлежит данный пакет.
Сначала настроим, а далее разберём что сделали.
[admin@MikroTik.Me] /ip firewall mangle
add chain=prerouting in-interface=ether1 dst-address=88.88.88.0/29 connection-state=new action=mark-connection new-connection-mark=Next-Hop/88.88.88.1 passthrough=no
add chain=prerouting in-interface=ether1 dst-address=99.99.99.0/24 connection-state=new action=mark-connection new-connection-mark=Next-Hop/99.99.99.1 passthrough=no
add chain=prerouting in-interface=ether2 dst-address=44.44.44.0/24 connection-state=new action=mark-connection new-connection-mark=Next-Hop/44.44.44.1 passthrough=no
Разберём только первое правило, все остальные по аналогии.
Если пакет приходит с интерфейса ether1 и адрес назначения лежит в сети 88.88.88.0/29, и такой пакет создал соединение, то маркируем соединение маркой Next-Hop/88.88.88.1.
88.88.88.0/29 — почему сеть, а не IP? Если вы будете делать правила для каждого IP адреса, количество правил будет расти, а смысл будет тот же самый.
connection-state=new — нет смысла пытаться маркировать соединения, которые уже установлены.Как вы помните new — это пакет, который создал соединение, т.е он только один, а в случае со всеми пакетами routeros будет каждый раз пытаться маркировать соединение.Которое уже и так может иметь маркировку.
Next-Hop/99.99.99.1 — почему именно так? Как вы помните, наша главная задача отправить трафик через тот же самый шлюз, через который трафик пришёл, а мы таким названием себе явно напоминаем, какой шлюз будет использоваться для выхода в сторону провайдера.Мы бы могли использовать что-нибудь вроде ISP1, но так как у нас первый провайдер даёт два префикса в одном и том же интерфейсе, мы должны трафик, который приходит на разные префиксы каким нибудь образом разделить.
И так это наша заготовка, далее мы начнём работать непосредственно с логикой.
С этого момента весть трафик, который придёт со стороны провайдера, будет промаркирован, а далее бы будем оперировать данной маркировкой.
Выход с маршрутизатора
Хоть и по сути мы сделали уже много, но у нас ещё несколько кейсов впереди.Теперь мы должны сделать таким образом, чтобы пакеты, которые генерирует сам маршрутизатор (не в ответ), уходили через нужного провайдера и шлюза.
Когда вы “пингуете” с маршрутизатора, строите PPP* или IP туннели с самого маршрутизатора или dns запросы отправляете с самого маршрутизатора.Разница с прошлым кейсом в том, что мы отправляли пакет по уже установленному соединению, а здесь пакет улетает с маршрутизатора и соединение не имеет маркировки.
Здесь будет значительно проще.
[admin@MikroTik.Me] /ip firewall mangle
add chain=output src-address=88.88.88.0/29 action=mark-routing new-routing-mark=Next-Hop/88.88.88.1 passthrough=no
add chain=output src-address=99.99.99.0/24 action=mark-routing new-routing-mark=Next-Hop/99.99.99.1 passthrough=no
add chain=output src-address=44.44.44.0/24 action=mark-routing new-routing-mark=Next-Hop/44.44.44.1 passthrough=no
Весь трафик, уходящий с маршрутизатора, и имеющий IP адрес попадающий под префикс, будет отправлен в именованную таблицу маршрутизации.
Всё, теперь вы можете строить туннели и у вас всё будет работать, но только в том случае если явно указан IP адрес, например в Ipsec или gre, ip туннели и прочее, там где явно можно указать Source адрес.А что делать с сервисами, где нельзя указать явно IP адрес источника? Ответ на этот вопрос кроется в таблице маршрутизации.Параметр pref-src отвечает за то, какой IP адрес будет выбран если он явно не задан.
Если вам необходимо установить соединение из локальной сети с адресом который назначен на интерфейсе провайдера, допустим при использовании Hairpin-NAT, в правилах вы должны исключить BOGON сети из адресов назначения.
В нашем примере если только для одного IP адреса.
[admin@MikroTik.Me] /ip firewall mangle
add chain=output src-address=88.88.88.0/29 dst-address-list=!BOGON action=mark-routing new-routing-mark=Next-Hop/88.88.88.1 passthrough=no
Ещё раз для понимания, у нас есть два варианта развитая сюжета, если IP адрес источника явно указан и тогда нам нечего не грозит и всё замечательно работает.Второй вариант, когда IP адрес явно не задан, например вы подминаете l2tp-client у нас нет возможности указать source адрес, но ведь адрес назначения есть в любом случае.Тогда маршрутизатор поступает следующим образом, он находит маршрут в таблице маршрутизации main, смотрит какой указан pref-src и использует данный ip адрес, как адрес источника.
Вы помните что мы создавали фиктивный маршрут.
[admin@MikroTik.Me] /ip route add dst-address=0.0.0.0/0 gateway=Br-Loopback distance=254
Давайте его немного изменим так, чтобы мы определили IP адрес, с которого будет формироваться трафик.
[admin@MikroTik.Me] /ip route
set pref-src=88.88.88.2 [ find gateway=Br-Loopback dst-address=0.0.0.0/0 ]
Выбор IP адреса зависит только от вас, выбирайте тот адрес, который считаете менее загруженным.
На этом этапе всё, теперь вы можете строить различные туннели и устанавливать соединения не только указывая явно source адрес.
Настройка двух провайдеров MikroTik, режим резервирования(автопереключение)
Как было сказано выше, резервирование или автоматическое переключение между провайдерами это режим работы роутера MikroTik, когда есть основной провайдер и резервный. При отсутствии интернета у основного провайдера, должно происходить переключение на резервного провайдера. А когда когда услуга интернета на основном провайдере будет восстановлена, то следует снова вернуться с резервной линии на основную.
Резервирование(автопереключение) это самый распространённый метод работы двух и более интернет провайдеров на роутере MikroTik.
Описание переключение на резервную линию условно такое: роутер MikroTik будет отправлять ICMP(ping) запросы на 8.8.8.8(Google DNS) и в случае отсутствия ответа или большой задержки, интернет будет переключаться с основной(провайдер-1) линии на резервную(провайдер-2).
Добавить статический маршрут для Google DNS
Запретить ICMP запросы через провайдера-2
Этим правилом будет гарантирована диагностика статуса интернет канала только через провайдера-1. При попытке отправить аналогичный запрос через провайдера-2, Firewall роутера MikroTik будет это блокировать.
Добавить правило Netwatch для переключения
- Host – узел, на который будут отправляться ICMP(ping) запросы;
- Interval – время, в течении которого будет производиться диагностика для смены статуса;
- Timeout – задержка пакета, которая будет восприниматься как отсутствие связи;
- Status – текущий статус узла;
- Закладка Up – скрипт, который будет выполнен, если провайдер-1 восстановит связь, после её обрыва;
- Закладка Down – скрипт, который будет выполнен, если связь с провайдером-1 будет прервана.
Представленными скриптами с помощью утилиты Netwatch будет происходить переключение между провайдерами. Все соединения, которые были установлены через провайлера-1 будут удалены. Это позволит гарантированно переключиться на провайдера-2.
Выпускаем всех остальных и балансируем нагрузку
Осталось дело за малым, выпустить всех остальных в интернет и постараться распределить нагрузку.Оговорю сразу мы не можем распределить нагрузку по пакетно, нам мешает то, что провайдеры не пропустят трафик с другими IP адресами через свою сеть.Поэтому будем балансировать соединениями.Да, мы не получим суммарную пропускную способность на одно соединение всех провайдеров, но это лучшее, что мы можем сделать в данном случае.
Мы будем использовать ECMP для того, чтобы распределить нагрузку по провайдерам.
Наверное вы уже догадались, что весь оставшийся трафик от ваших локальных хостов будет попадать в таблицу main.
Давайте сделаем маршрут ECMP с тем учётом, что шлюз 88.88.88.1 это 10Mbps, а 44.44.44.1 5Mbps.
[admin@MikroTik.Me] /ip route
add dst-address=0.0.0.0/0 gateway=88.88.88.1,88.88.88.1,44.44.44.1 pref-src=88.88.88.2
Пакеты будут отправляться поочередно для каждого шлюза, на каждые 3 пакета, 2 пакету будут отправлены в 88.88.88.1 и оставшийся один пакет на шлюз 44.44.44.1.
Хотя это немного и не правильно, дело в том, что у процесса ECMP есть отдельная таблица кеша, и чтобы каждый раз не выбирать маршрут, маршрутизатор для связки src-address:port dst-address:port создаёт хеш и выберет для данного хеша уже шлюз по схеме Round Robin, тем самым для одного соединения будет выбираться один и тот же шлюз.
Но не все так однозначно, каждый раз, когда вы изменили маршрут, например добавили шлюз или шлюз умер то кеш ECMP чистится, а также каждые 10 минут всё также чистится кеш, отсюда появляется проблема, что каждые 10 минут может выбраться другой шлюз.И снова для каждого уникального хеша будет выбираться маршрут.
Проблема в том, что ограничение в 10 минут, это ограничение жёсткое и нам его не убрать и не изменить.
Будем решать штатными средствами RouterOS.
Давайте подумаем вместе, что нам известно о пакете, который попал под ECMP маршрут? Конечно, данный пакет находится в таблице main.
Идея данного способа заключается в следующем.Дать маршрутизатору выбрать маршрут с помощью ECMP, промаркировать такие соединения и все последующие пакеты в этом соединение пускать мимо ECMP, тем самым мы убираем проблему 10 минут.
[admin@MikroTik.Me] /ip firewall mangle
add chain=postrouting routing-table=main out-interface=ether1 connection-state=new action=mark-connection new-connection-mark=ECMP/ether1 passthrough=no
add chain=postrouting routing-table=main out-interface=ether2 connection-state=new action=mark-connection new-connection-mark=ECMP/ether2 passthrough=no
chain=postrouting — Работаем в цепочке по факту того, что уже выбрал ECMP, можно использовать и цепочку forward, но тогда не попадёт трафик который был сгенерирован самим маршрутизатором.
routing-table=main — Маршрут ECMP находиться в main таблице.
out-interface=ether1 — ECMP выбрал шлюз, который лежит через первый интерфейс.
connection-state=new — Мы маркируем соединение, нет смысла работать со всеми пакетами.
action=mark-connection new-connection-mark=ECMP/ether1 — маркируем соединение.
Ещё раз, мы дали возможность ECMP выбрать направление и мы уже по факту промаркировали соединения, основываясь на выборе интерфейса.
А теперь все последующие пакеты в соединениях с такой маркировкой должны быть отправлены в тот же интерфейс, но не в таблицу main, так как там работает ECMP, нам это уже не к чему.
Не забудьте, что трафик смотрится со всех сторон, а нам необходимо только трафик из локальной сети, а так как интерфейсов может быть много, лучше всего отфильтровывать по принципу весь трафик КРОМЕ того который пришёл с интерфейса провайдера.
[admin@MikroTik.Me] /ip firewall mangle
add chain=prerouting connection-mark=ECMP/ether1 action=mark-routing new-routing-mark=Next-Hop/88.88.88.1 passthrough=no in-interface=!ether1
add chain=prerouting connection-mark=ECMP/ether2 action=mark-routing new-routing-mark=Next-Hop/44.44.44.1 passthrough=no in-interface=!ether2
Осталось настроить NAT
[admin@MikroTik.Me] /ip firewall nat
add chain=srcnat out-interface=ether1 routing-table=main action=src-nat to-addresses=88.88.88.2
add chain=srcnat out-interface=ether2 routing-table=main action=src-nat to-addresses=44.44.44.2
За сим всё, спасибо за внимание.
Удалённая настройка маршрутизатора, к дальней дороге.
Ручная настройка балансировки 2 провайдеров в MikroTik
Как видно из названия, условную подсеть роутера MikroTik будет поделено на две группы: To-ISP-1 и To-ISP-2.
- pppoe-out1 – это провайдер-1;
- ether2 – это провайдер-2.
И для каждой из групп, нужно промаркировать соединения и маршрут, для плавного переключение между провайдерами в случае обрыва одного из них.
Mangle маркировка соединений для балансировки 2 провайдеров
Mangle маркировка маршрута для балансировки двух провайдеров
Аналогичные действия по маркировке соединений и маршрута нужно выполнить для Address List = To-ISP-2.
Общий вид раздела Mangle
Для каждой группы узлов To-ISP-1 и To-ISP-2 будет создано по два маршрута, чтобы обеспечить плавное переключение согласно первоначальным условиям по балансировке 2 провайдеров.
Общий вид таблицы маршрутизации при балансировке 2 провайдеров
Контроль ICMP запросов через нужный интерфейс
Эти правила обеспечат контроль статуса интернет соединения для каждого из провайдера. Диагностика статуса интернета будет осуществляться только через те интерфейсы, которые обозначены в таблице маршрутизации с комментариями Netwatch-1 и Netwatch-2.
Настройка Netwatch для переключения провайдеров
И собственно утилита Netwatch, именно она будет заниматься переключением между провайдерами в случае обрыва связи на одном из них.
Настройка балансировки двух провайдеров Per Connection Classifier (PCC) раздела Mangle
Per Connection Classifier (PCC) позволят разделить трафик на равные потоки с возможностью держать пакеты с определенным набором параметров в одном потоке (определяется в наборе параметров из src-address, src-port, dst-address, dst-port)
Два провайдера в разных подсетях
Нередки случаи, когда возникает необходимость настроить два независимых друг от друга интернет-подключения, при которых не будет смешиваться трафик. Подробнее о том, как это сделать, далее.
Для начала сбросим Mikrotik на заводские настройки, подключившись к нему через программу Winbox: System — Reset Configuration, в открывшемся меню ставим галочки на No default configuration и Do not backup и нажимаем Reset configuration.
Далее настраиваем наши интернет-подключения: в первом порту будет динамика, во втором – статика.
Настраиваем первый порт: в меню IP – DHCP Client добавляем новое подключение, назначив интерфейс ether1, а в строке Add Default Route выбираем no.
Можно поступить проще, введя на микротике в New Terminal данную команду:
Далее настроим второй порт на статику: в меню IP – Addresses добавляем новый адрес с указанием нужного порта.
Также не забываем указать адрес DNS сервера (IP – DNS):
Или же введите в New Terminal следующий конфиг (указав вашу адресацию):
Теперь создадим два бриджа – подключенные к BRIDGE1 устройства будут использовать интернет-канал первого провайдера (динамика), а подключенные к BRIDGE2 – второго провайдера соответственно.
Конфиг для New Terminal:
Добавим в эти бриджи желаемые порты (мы в примере хотим, чтобы пользователи, подключающиеся через Wi-Fi, «ходили» в интернет через первого провайдера, остальные порты микротика будут относиться ко 2 провайдеру):
Конфиг для New Terminal:
Не забываем включить Wi-Fi интерфейс, по умолчанию он выключен.
/interface wireless set wlan1 mode=ap-bridge ssid=work default-forwarding=no disabled=no security-profile=profile1
Следующий шаг — добавление желаемой адресации для созданных бриджей и настройка DHCP Server локальной сети. Используйте наш конфиг, заменив в нем при необходимости адресации на нужные вам:
Данные настройки применяются в следующих разделах:
IP – Pool
IP – Addresses
IP – DHCP Server
IP – DHCP Server – Networks
Далее настраиваем NAT, чтобы устройства, подключенные к локальной сети, могли выходить в интернет. В IP – Firewall – NAT добавим правило. Во вкладке General в графе Chain выбираем srcnat, в Out. Interface назначаем первый порт.
Во вкладке Action выбираем masquerade:
Создаем еще одно схожее правило, где отличаться будет Out. Interface – там соответственно выбираем второй порт.
Или же используем следующий конфиг:
Настройка с конфигом (не забываем выставить адресацию в соответствии с созданным ранее пулом):
Следующий шаг – маркировка трафика. IP – Firewall – Mangle, добавляем маркировку трафика для первого провайдера: во вкладке General в графе Chain указываем prerouting:
Вкладка Advanced, в графе Src. Address List выбираем ранее созданный LIST1:
Вкладка Action, в графе Action выбираем mark routing, а в графе New Routing Mark прописываем маршрут первого провайдера — isp1.
Создаем еще одно правило для маркировки трафика уже соответственно для второго провайдера, где выбираем адресацию LIST2 и в маршруте прописываем isp2.
Конфиг для быстроты:
Добавим в IP – Routes этот маршрут. Указываем в поле Gateway адрес, который узнали ранее, в графе Distance выставляем приоритет 1, в графе Routing Mark выбираем isp1.
Также добавим еще два маршрута с этими же шлюзами, у первого провайдера выставим приоритет 10, у второго – 20. Эти правила нужны на случай, если какой-либо трафик будет без маркеров, например, трафик самого микротика:
Работа двух независимых друг от друга интернет-подключений настроена.
Настройка двух провайдеров на MikroTik, балансировка и автопереключение
Инструкция по настройке 2-ух провайдеров на роутере MikroTik. В описании буду рассмотрены два распространённых типа работы двух провайдеров: резервирование и балансировка.
Резервирование(автопереключение) – при обрыве провайдера-1, весь интернет трафик переключается на провайдера-2;
Балансировка – тип настройки, когда две линии интернета работают одновременно. Распределение между провайдером-1 и провайдером-2 может быть в ручном или автоматическом режиме.
Одновременный проброс с двух провайдеров в MikroTik настройка Mangle
Входящая задача: сделать проброс портов таким образом, чтобы сервер отвечал с того провайдера, с которого пришёл запрос. На практике это может быть Web сервер(443\https), у которого объявлены две DNS записи с двумя внешними IP роутера MikroTik.
- pppoe-out1 – это провайдер-1;
- ether2 – это провайдер-2;
- bridge – локальный bridge интерфейс.
Два провайдера на микротике
Многие организации подключают два интернет-канала – от двух разных провайдеров. Зачастую это используется для того, чтобы в случае проблем с одним из провайдеров связь не прерывалась. В этой инструкции подробно поговорим о том, как правильно настроить два интернет-подключения на одном Mikrotik.
Краткий план данной статьи:
Подготовка настроек для работы с двумя провайдерами в MikroTik
Данный набор настроек будет считаться контрольной точкой для дальнейших режимов работы роутера MikroTik, а именно резервирования(автопереключения) и балансировки.
В исходной настройке роутера MikroTik произведена базовая настройка и как минимум один интернет провайдер уже работает.
Начать нужно с того, что требуется физическое подключение 2-ого провайдера. Для этого нужно подготовить свободный порт и исключить его из Bridge(LAN).
Освободить порт для 2-ого провайдера
На данном примере, был удалён ether2 со списка портов, принадлежащих к Bridge-LAN.
Настроить 2-ого провайдера
DHCP client
Add Default Route = no – статическая маршрутизация для 2-ого провайдера будет доставлена вручную.
Статический IP
PPPoE client
Add Default Route = no – статическая маршрутизация для 2-ого провайдера будет доставлена вручную.
Добавление 2-ого провайдера в список WAN
Отключить добавление DNS серверов для провайдера-1
Эти действия приведут к тому, что роутер MikroTik не будет использовать DNS сервера текущих интернет провайдеров. К примеру ситуация переключения на резервную линию может спровоцировать отсутствие DNS ответа, т.к. клиент или сам роутер осуществляет DNS запрос через основного провайдера. А он в то время уже перестал работать. Поэтому будут установлены общедоступные DNS сервера, который будут работать с двух провайдеров.
DHCP client
PPPoE client
Определить общедоступные DNS сервера
Отсутствие записей DNS серверов в разделе Dynamic Servers указывает на то, что роутер MikroTik не использует автоматические DNS сервера, которые назначаются в автоматическом режиме.
Отключить автоматическое добавление маршрутов
Т.к. все маршруты будут добавлены в ручном режиме, следует отключить все динамические маршруты для основного провайдера. Такие маршруты помечены буквой D(Dynamic) в таблице маршрутизации:
DHCP client
PPPoE client
Добавление маршрутов для двух провайдеров
Для переключение между провайдерами, будет использоваться скрипт, который будет находить маршрут с комментарием ISP-1 или ISP-2 и выключать или включать его в зависимости от статуса работы интернета. Ниже будет описан метод, как это можно сделать для типов подключения: статический IP, dhcp клиент, PPPoE подключение. Этим методом нужно воспользоваться для назначения комментария двух провайдеров.
Кроме обозначенных комментариев нужно определить distance = 2.
Статический IP или DHCP клиент
В случае с DHCP client значение Gateway можно взять с раздела Status самого DCHP клиента
PPPoE client
Mangle маркировка ответов для двух провайдеров
Правила маркировки маршрутов нужно определять только для белых(постоянных) IP адресов! Этот набор правил будет гарантировать то, что если пришёл input запрос на порт второго(или первого) провайдера, через этот же порт будет отправлен ответ. При отсутствии этих правил, доступ к роутеру по внешним IP может сопровождаться непредсказуемой работой.
Маркировка будет состоять из двух каскадных правил: маркировки соединения и маркировки маршрута
Настройка IP адресации
Настроим IP адреса, согласно выданным настройкам от провайдера.
[admin@MikroTik.Me] /ip address
add interface=ether1 address=88.88.88.2/29 comment=ISP1
add interface=ether1 address=99.99.99.2/24 comment=ISP1
add interface=ether2 address=44.44.44.2/24 comment=ISP2
add interface=ether3 address=172.20.17.1/24 comment=LocalNetworkComputers
add interface=ether4 address=172.20.18.1/24 comment=LocalNetworkServers
Я думаю бессмысленно как-то дополнять данные настройки.
Проверка
Для проверки отказоустойчивости лучше всего отключить кабель основного провайдера (вытащить провод из WAN-разъема) — через небольшой промежуток времени Mikrotik должен начать раздавать Интернет второго провайдера. Проверить, что внешний канал изменился можно с помощью различных сайтов, например, 2ip.ru.
Провайдер меняет шлюз в DHCP клиенте, не работает переключение или балансировка
DHCP клиент это один из самых распространённых типов настроек WAN интерфейса. Все настройки проходят в автоматическом режиме и не требуют ни каких дополнительных усилий. Однако в варианте с балансировкой двух провайдеров, используемая настройка требует явного определения шлюза(Gateway) в таблице маршрутизации. А если IP адрес серый(динамический), то правила с балансировкой перестанут работать при его изменении.
Для того, чтобы в правиле статической маршрутизации указывался текущий шлюз(Gateway) провайдера, в свойствах DHCP клиента следует укатать скрипт
Скрипт может быть дополнен добавлениями(и удалениями) маршрутов для Routing-mark и Netwatch.
Настройка двух интернет-подключений
Для начала сбросим Mikrotik на заводские настройки, подключившись к нему через программу Winbox: выберите раздел System — Reset Configuration, в открывшемся меню ставим галочки на No default configuration и Do not backup и нажимаем Reset configuration. После сброса оборудования можно приступать к настройке.
Сначала настроим первый WAN порт – в нашем примере на нем будет динамическое подключение.
В меню IP – DHCP Client добавляем новое подключение, назначив интерфейс ether1.
Можно поступить проще, введя на микротике в New Terminal данную команду:
Далее настроим второй порт на статику.
Откроем меню IP – Addresses и добавим новый адрес с указанием нужного порта.
Откроем меню IP – Route и добавляем новый адрес шлюза.
Также не забываем указать адрес DNS сервера ( меню IP – DNS):
Или же введите в New Terminal следующий конфиг (соответственно, указав вашу индивидуальную адресацию):
Также стоит упомянуть PPpoE соединение. Для того, чтобы поднять его на вашем оборудовании, используйте следующие строки в New Terminal:
Где в PASSWORD и LOGIN вы прописываете ваши данные и указываете в interface нужный порт, в который будет подключен кабель.
Далее создадим бридж LAN, в который добавим оставшиеся порты и Wi-Fi подключение.
Добавление бриджа с помощью конфига:
После этого добавляем желаемую адресацию для созданного бриджа и настраиваем DHCP Server локальной сети. Можете использовать наш конфиг, заменив в нем адресацию на нужную вам:
Данные настройки применяются в следующих разделах:
IP – Addresses
IP – Pool
IP – DHCP Server
IP – DHCP Server – Networks
По умолчанию Wi-Fi интерфейс отключен, не забудьте включить, задать название Wi-Fi сети и выставить на нее пароль.
Это можно сделать с помощью следующего конфига:
/interface wireless set wlan1 mode=ap-bridge ssid=work default-forwarding=no disabled=no security-profile=profile1
Настроим NAT, чтобы устройства, подключенные к локальной сети, могли выходить в интернет.
Для этого в IP – Firewall – NAT добавим правило. Во вкладке General в графе Chain выбираем srcnat, в Out. Interface назначаем первый порт.
Во вкладке Action выбираем masquerade:
Создаем еще одно схожее правило, где отличаться будет Out. Interface – там соответственно выбираем второй порт.
Или же используем следующий конфиг:
Два провайдера на микротике
Многие организации подключают два интернет-канала – от двух разных провайдеров. Зачастую это используется для того, чтобы в случае проблем с одним из провайдеров связь не прерывалась. В этой инструкции подробно поговорим о том, как правильно настроить два интернет-подключения на одном Mikrotik.
Краткий план данной статьи:
Читайте также
Данная информация также может быть полезной:
Базовая настройка MikroTik
Перенаправление запросов (проброс портов) на Mikrotik
Настройка OpenVPN сервера на Mikrotik
Была ли полезна вам эта инструкция?
Использование сценария, запускаемого в Netwatch
Данный метод поможет настроить резервирование канала, если один из провайдеров выдает динамические адреса в разных подсетях, например, подключение через 4G-модем.
1. Задаем описания
Сначала необходимо задать описание для маршрутов. Это понадобиться для сценария, который будет работать с последними через данные описания.
Раскрываем в меню IP:
* провайдер 1.
* провайдер 2.
2. Настраиваем узел для проверки канала
Мы настроим узел, который будет пинговать провайдер 1. Если пинг пропадает, то необходимо переключать активный Интернет-канал на провайдера 2. Также мы должны заблокировать возможность пинговать проверочный узел с провайдера 2.
И так, переходим к настройке маршрутов:
Добавляем новый маршрут к проверочному узлу, например 77.88.8.2 (DNS Яндекса):
* в данной настройке мы задали маршрут к проверочному узлу через шлюз 1.1.1.1 (в нашем примере это шлюз от провайдера 1).
Переходим в IP — Firewall:
Создаем новое правило для запрета пинга проверочного узла через провайдера номер 2:
3. Настройка задания в Netwatch
Переходим в Tools — Netwatch:
Создаем новое правило. На вкладке Host прописываем следующее:
* в данном примере мы будем проверять узел 77.88.8.2 раз в минуту.
На вкладке Up пропишем:
Выпустить с правильного адреса
Часто бывают ситуации, что вам необходимо жёстко определить, чтобы какой-то внутренний хост выходил только с определённого IP адреса.
Например, VoIP телефония, ваш провайдер телефонии требует, чтобы вы регистрировались только с определённого IP адреса, или банк клиент на компьютере главного бухгалтера должен подключаться с определённого адреса.
Сначала настроим адрес листы в которые будем добавлять внутренние адреса хостов, которые необходимо отправить через нужного провайдера и с определённого IP адреса.
[admin@MikroTik.Me] /ip firewall address-list
add list=via/88.88.88.2 address=0.0.0.1
add list=via/99.99.99.2 address=0.0.0.1
add list=via/44.44.44.2 address=0.0.0.1
Адрес 0.0.0.1, для того чтобы создать лист, но не привязывать к реальному адресу.
Название листа явно говорит о том, на какой IP адрес необходимо изменить адрес источника.
Для реализации данного кейса нам необходимо учитывать особенность работы RouterOS.
Дело в том, что для трафика который проходит через маршрутизатор мы можем изменить таблицу маршрутизации только в цепочке prerouting, и естественно исходящий интерфейс нам ещё не известен, он будет известен только в цепочке forward.
И мы не можем просто взять и завернуть весь трафик от внутреннего хоста в определённого провайдера, так как у нас есть ещё и локальная сеть.
Допустим, если мы добавим хост 172.20.17.100 и скажем, что весь трафик направить в первого провайдера, то что будет с трафиком, который идёт на хост 172.20.18.2? Естественно он будет направлен в первый провайдер.
Для решения данной задачи нам помогут BOGON сети, это список сетей, которые никогда не должны использоваться для публикации между public AS в протоколе BGP, другими словами это все те сети, которые используются исключительно в локальных целях.
Создадим адрес лист с BOGON сетями.
[admin@MikroTik.Me] /ip firewall address-list
add list=BOGONS address=0.0.0.0/8
add list=BOGONS address=10.0.0.0/8
add list=BOGONS address=100.64.0.0/10
add list=BOGONS address=127.0.0.0/8
add list=BOGONS address=169.254.0.0/16
add list=BOGONS address=172.16.0.0/12
add list=BOGONS address=192.0.0.0/24
add list=BOGONS address=192.0.2.0/24
add list=BOGONS address=192.168.0.0/16
add list=BOGONS address=198.18.0.0/15
add list=BOGONS address=198.51.100.0/24
add list=BOGONS address=203.0.113.0/24
add list=BOGONS address=224.0.0.0/3
А далее создадим правила для того, чтобы выпустить хосты с определённого IP адреса.
[admin@MikroTik.Me] /ip firewall mangle
add chain=prerouting src-address-list=via/88.88.88.2 dst-address-list=!BOGONS action=mark-routing new-routing-mark=Next-Hop/88.88.88.1 passthrough=no
add chain=prerouting src-address-list=via/99.99.99.2 dst-address-list=!BOGONS action=mark-routing new-routing-mark=Next-Hop/99.99.99.1 passthrough=no
add chain=prerouting src-address-list=via/44.44.44.2 dst-address-list=!BOGONS action=mark-routing new-routing-mark=Next-Hop/44.44.44.1 passthrough=no
Если пакет в адресе источника находится адрес, который перечислен в адрес листе и при этом адрес назначения не попадает под BOGON листы (т.е трафик в интернет), отправить в именованную таблицу.
И последний нюанс-это настроить NAT.
[admin@MikroTik.Me] /ip firewall nat
add chain=srcnat routing-mark=Next-Hop/88.88.88.1 src-address-list=via/88.88.88.2 action=src-nat to-addresses=88.88.88.2
add chain=srcnat routing-mark=Next-Hop/99.99.99.1 src-address-list=via/99.99.99.2 action=src-nat to-addresses=99.99.99.2
add chain=srcnat routing-mark=Next-Hop/44.44.44.1 src-address-list=via/44.44.44.2 action=src-nat to-addresses=44.44.44.2
Обратите внимание, что не весь трафик, а только тот, который находится в определённом маркированном маршруте, это необходимо для того, чтобы трафик между локальными сетями не попадал под NAT правило.
Балансировка и резервирование в MikroTik используя настройки NTH раздела Mangle
Можно также применить схему, в которой каждое соединение будет промаркировано по принципу:
четный-пакет = провайдер-1
нечетный-пакет = провайдер-2
Балансировка между двумя провайдерами будет производиться в соотношении 50:50, это определяется параметрами nth=2,1 и nth=2,2.
Статическая маршрутизация для маркированных маршрутов
Кроме стандартных правил маршрутизации, нужно добавить маршруты для промаркированных ответов с раздела Mangle.
И все текущие правила статической маршрутизации будут иметь вид:
Доступ к маршрутизатору
Первая задача, которую нам необходимо решить, это организовать возможность управления маршрутизатором через разных провайдеров.Мы должны иметь возможность подключаться по любому IP адресу по ssh, winbox, а также если вы будете использовать RouterOS в случае VPN сервера.В общем организовать правильный выход пакетов, которые будет отправлены с маршрутизатора в ответ на входящие соединения.
Для начала нам надо организовать правильные таблицы маршрутизации.В одной таблице маршрутизации не могут быть одновременно два одинаковых активных маршрута, если маршруты одинаковы, то приоритет выбирается из значения distance.Для того чтобы можно было использовать несколько одинаковых маршрутов в RouterOS есть возможность создавать альтернативные (именованные) таблицы маршрутизации.
Создадим данные таблицы.
[admin@MikroTik.Me] /ip route
add dst-address=0.0.0.0/0 gateway=88.88.88.1 routing-mark=Next-Hop/88.88.88.1
add dst-address=0.0.0.0/0 gateway=99.99.99.1 routing-mark=Next-Hop/99.99.99.1
add dst-address=0.0.0.0/0 gateway=44.44.44.1 routing-mark=Next-Hop/44.44.44.1
dst-address=0.0.0.0/0 — обычный маршрут по умолчанию, не более чем.
gateway=88.88.88.1 — шлюз, обратите внимание на то, что нам первый провайдер даёт два префикса с разными шлюзами, и поэтому мы создаём три маршрута, для нас по факту не два провайдера, а три.
routing-mark=Next-Hop/88.88.88.1 — это и есть именованная таблица маршрутизации.Она может иметь любое имя, какое вам удобнее, лично моё мнение, такое именование удобно записывать в названии таблицы шлюз, через который будет отправлен пакет в случае если он будет использовать данный маршрут.Имена маркировок соединений и маршрутов просто совпали и могут быть совершенно разные.
Вы обратили внимание, что я писал про таблицы и маркировки? Дело в том, что маркировка маршрута это не таблица, хотя в большинстве случаев это так.Попробуйте ответить на вопрос, для чего и какая разница в правилах между двумя фильтрами в firewall.
[admin@MikroTik.Me] /ip firewall mangle add routing- tab tab
routing-mark routing-table
Дело в том, что routing-mark это маркировка, когда вы своими руками с помощью mangle назначили на пакет маркировку, а routing-table это то, через какую таблицу маршрутизации вышел пакет.
Если маршрутизатор не найдёт подходящего маршрута в именованной таблице маршрутизации, маршрутизатор продолжит поиск подходящего маршрута в таблице по умолчанию main и такой пакет можно будет отфильтровать например так routing-mark=custommark routing-table=main
.Нам же такое поведение не нужно, если по какой-то причине маршрут не будет найден, пакет должен умереть на маршрутизаторе, а отправлять через другого провайдера нет никакого смысла.
Нам необходимо переопределить данное поведение.
[admin@MikroTik.Me] /ip route rule
add routing-mark=Next-Hop/88.88.88.1 action=lookup-only-in-table table=Next-Hop/88.88.88.1
add routing-mark=Next-Hop/99.99.99.1 action=lookup-only-in-table table=Next-Hop/99.99.99.1
add routing-mark=Next-Hop/44.44.44.1 action=lookup-only-in-table table=Next-Hop/44.44.44.1
Т.е марка и таблица по факту это одно и тоже, пакет, который имеет определённую routing-mark и пытается найти маршрут в таблице с таким же именем.
Осталась самая малость, это отправить в нужную марку необходимый трафик.
[admin@MikroTik.Me] /ip firewall mangle
add chain=output connection-mark=Next-Hop/88.88.88.1 action=mark-routing new-routing-mark=Next-Hop/88.88.88.1 passthrough=no
add chain=output connection-mark=Next-Hop/99.99.99.1 action=mark-routing new-routing-mark=Next-Hop/99.99.99.1 passthrough=no
add chain=output connection-mark=Next-Hop/44.44.44.1 action=mark-routing new-routing-mark=Next-Hop/44.44.44.1 passthrough=no
Цепочка output, так как мы работаем только с трафиком, который генерирует в ответ на запрос соединения.Выбрали пакеты принадлежащие только определённым соединениям и отправили в именованную таблицу.
Вроде бы всё хорошо и всё должно работать, но это не так, в RouterOS есть один маленький нюанс, который необходимо помнить и учитывать.Дело в том, что маршрутизатор, прежде чем отправить пакет в цепочку output, смотрит в таблицу маршрутизации и ищет для адреса назначения подходящий маршрут в таблице main, есть всего три типа сервисов, которые умеют работать вне данного поведения, это ping, traceroute и ospf — это необходимо для работы в VRF.
На данный момент у нас нет маршрута по умолчанию в таблице маршрутизации main, встаёт вопрос, какой шлюз указать в качестве маршрута по умолчанию, если мы укажем первого провайдера, то в случае падения интерфейса мы останемся у разбитого корыта, мы можем сразу указать три шлюза и с помощью distance указать приоритеты, но тогда мы должны помнить про данную настройку и случае замены провайдера или какого-либо изменения править конфигурацию и в этом моменте, а там то всего нужно пройти выбор маршрута и далее уже переопределить направление, т.е по факту это логический кейс.
Все интерфейсы имеют способность падать, есть один интерфейс, который всегда находится в состоянии UP, но в RouterOS использовать его в конфигурации не представляется возможным — это Loopback.
В RouterOS данный интерфейс можно заменить пустым bridge.
[admin@MikroTik.Me] /interface bridge add name=Br-Loopback
Я часто рассказываю на курсах, почему именно такое название, а не просто Loopback, возможно в ближайшем будущем в RouterOS будет добавлено поддержка Loopback интерфейса и если разработчики заложат такое же название, то при обновлении версии RouterOS могут возникнуть проблемы.
А теперь создадим маршрут в таблице main, который необходим для преодоления выбора маршрута и попадания пакета в цепочку output.
[admin@MikroTik.Me] /ip route add dst-address=0.0.0.0/0 gateway=Br-Loopback distance=254
Максимальная дистанция для того, чтобы в случае если мы создадим нормальный маршрут по умолчанию, а не фиктивный, нам данный маршрут не мешал.
Напоминаю, что дистанция 255 это административная дистанция, которая явно указывает на то, что данный маршрут мёртв и не участвует в маршрутизации.
Всё, на данном этапе вы должны иметь возможность подключаться к маршрутизатору по любому IP адресу через любого провайдера одновременно, можете “пинговать” и делать всякие другие непотребства с внешними IP адресами.
Два провайдера в разных подсетях
Нередки случаи, когда возникает необходимость настроить два независимых друг от друга интернет-подключения, при которых не будет смешиваться трафик. Подробнее о том, как это сделать, далее.
Для начала сбросим Mikrotik на заводские настройки, подключившись к нему через программу Winbox: System — Reset Configuration, в открывшемся меню ставим галочки на No default configuration и Do not backup и нажимаем Reset configuration.
Далее настраиваем наши интернет-подключения: в первом порту будет динамика, во втором – статика.
Настраиваем первый порт: в меню IP – DHCP Client добавляем новое подключение, назначив интерфейс ether1, а в строке Add Default Route выбираем no.
Можно поступить проще, введя на микротике в New Terminal данную команду:
Далее настроим второй порт на статику: в меню IP – Addresses добавляем новый адрес с указанием нужного порта.
Также не забываем указать адрес DNS сервера (IP – DNS):
Или же введите в New Terminal следующий конфиг (указав вашу адресацию):
Теперь создадим два бриджа – подключенные к BRIDGE1 устройства будут использовать интернет-канал первого провайдера (динамика), а подключенные к BRIDGE2 – второго провайдера соответственно.
Конфиг для New Terminal:
Добавим в эти бриджи желаемые порты (мы в примере хотим, чтобы пользователи, подключающиеся через Wi-Fi, «ходили» в интернет через первого провайдера, остальные порты микротика будут относиться ко 2 провайдеру):
Конфиг для New Terminal:
Не забываем включить Wi-Fi интерфейс, по умолчанию он выключен.
/interface wireless set wlan1 mode=ap-bridge ssid=work default-forwarding=no disabled=no security-profile=profile1
Следующий шаг — добавление желаемой адресации для созданных бриджей и настройка DHCP Server локальной сети. Используйте наш конфиг, заменив в нем при необходимости адресации на нужные вам:
Данные настройки применяются в следующих разделах:
IP – Pool
IP – Addresses
IP – DHCP Server
IP – DHCP Server – Networks
Далее настраиваем NAT, чтобы устройства, подключенные к локальной сети, могли выходить в интернет. В IP – Firewall – NAT добавим правило. Во вкладке General в графе Chain выбираем srcnat, в Out. Interface назначаем первый порт.
Во вкладке Action выбираем masquerade:
Создаем еще одно схожее правило, где отличаться будет Out. Interface – там соответственно выбираем второй порт.
Или же используем следующий конфиг:
Настройка с конфигом (не забываем выставить адресацию в соответствии с созданным ранее пулом):
Следующий шаг – маркировка трафика. IP – Firewall – Mangle, добавляем маркировку трафика для первого провайдера: во вкладке General в графе Chain указываем prerouting:
Вкладка Advanced, в графе Src. Address List выбираем ранее созданный LIST1:
Вкладка Action, в графе Action выбираем mark routing, а в графе New Routing Mark прописываем маршрут первого провайдера — isp1.
Создаем еще одно правило для маркировки трафика уже соответственно для второго провайдера, где выбираем адресацию LIST2 и в маршруте прописываем isp2.
Конфиг для быстроты:
Добавим в IP – Routes этот маршрут. Указываем в поле Gateway адрес, который узнали ранее, в графе Distance выставляем приоритет 1, в графе Routing Mark выбираем isp1.
Также добавим еще два маршрута с этими же шлюзами, у первого провайдера выставим приоритет 10, у второго – 20. Эти правила нужны на случай, если какой-либо трафик будет без маркеров, например, трафик самого микротика:
Работа двух независимых друг от друга интернет-подключений настроена.