Home » Mikrotik » Доступ к Mikrotik по 2 или более WAN (внешним IP) одновременно

Доступ к Mikrotik по 2 или более WAN (внешним IP) одновременно

Продолжаю цикл статей про функциональные и очень доступные роутеры из Латвии. Речь пойдет о том, как получить доступ к Mikrotik через несколько одновременно настроенных провайдеров или внешних IP. Настройка не сложная, плюс в интернете есть информация на эту тему. Я дополню ее тем, что поделюсь своим опытом применения этого функционала.

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Курс стоящий, все подробности читайте по ссылке.

Введение

Настройка нескольких провайдеров или одновременный доступ через разные внешние IP на микротике не представляет какой-то особенной сложности. Я настраивал такие вещи очень давно еще на Linux. Ну а тут под капотом он же и стоит, так что принцип будет один и тот же.

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

Таким образом, настройка одновременно двух провайдеров сводится к следующему:

  1. Маркируем все входящие соединения, назначая разные метки для разных WAN интерфейсов.
  2. Для промаркированных соединений назначаем ту или иную метку маршрутизации.
  3. В зависимости от метки маршрутизации, направляем трафик на тот или иной маршрут по умолчанию, которых будет несколько, в зависимости от количества одновременно подключенных провайдеров.

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

Маркировка соединений с двух WAN

Первым делом маркируем все соединения. Для этого идем в раздел IP -> Firewall -> Mangle и добавляем новое правило маркировки для пакетов из wan-1.

Маркировка соединений с двух WAN интерфейсов в Mikrotik

Следующим этапом назначаем метку маршрутизации для этих соединений. Делается этот тут же в новом правиле.

Роутинг метки для двух провайдеров

То же самое делаете для второго соединения, заменяя ip ардес, имя интерфейса и назначая другую метку. Должны получиться следующие 4 правила.

/ip firewall mangle
add action=mark-connection chain=input dst-address=109.68.184.112 in-interface=ether1-wan1 new-connection-mark=wan1-in passthrough=no
add action=mark-routing chain=output connection-mark=wan1-in new-routing-mark=wan1 passthrough=no
add action=mark-connection chain=input dst-address=77.31.15.221 in-interface=ether2-wan2 new-connection-mark=wan2-in passthrough=no
add action=mark-routing chain=output connection-mark=wan2-in new-routing-mark=wan2 passthrough=no

С маркировкой закончили.

Одновременный доступ по двум внешним IP

Теперь нам нужно настроить маршрутизацию таким образом, чтобы работали одновременно два wan интерфейса с двумя разными ip адресами. У меня есть очень старая статья, где тоже используются 2 провайдера, но только для резервирования интернета. Одновременно работает только один провайдер, а на второй происходит переключение в случае проблем у первого.

Идем в раздел IP -> Routes и добавляем 2 дефолтных маршрута. Настраиваем их точно так же, как это делали, если бы был только один провайдер. Но при этом указываем для каждого маршрута свою метку маршрутизации (Routing Mark).

Одновременный доступ через два провайдера

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

/ip route
add distance=1 gateway=109.68.184.1 routing-mark=wan1
add distance=1 gateway=77.31.15.1 routing-mark=wan2

Все, этого достаточно, чтобы к Mikrotik можно было подключиться извне по любому из предложенных IP адресов обоих WAN интерфейсов. По сути он стал доступен через обоих провайдеров одновременно. Важно понимать, что мы настроили только доступ к самому устройству через оба wan интерфейса, а не работу через обоих провайдеров клиентов локальной сети, если mikrotik выступает в качестве шлюза. Там нужно выполнить дальнейшие настройки, чтобы все корректно работало. Надо промаркировать пакеты и из локальной сети и направить их на тот или иной маршрут в зависимости от меток. В данной статье я это не рассматриваю. Возможно, сделаю отдельно.

Mikrotik как резервный шлюз

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

В удаленных местах, где нет постоянного технического персонала для обслуживания шлюза, я всегда ставлю 2 устройства, которые могут работать в качестве шлюза для локальной сети. Обычно это полноценный роутер Mikrotik или шлюз в виртуальной машине на базе какого-то линукса. Там могут быть настроены два провайдера, резервирование и т.д. Не суть важно, рассказываю не об этом. В качестве резерва чаще всего выступает свитч микротик с возможностью роутинга. Например, CRS326. Это очень удобно, так как свитч в любом случае какой-то будет установлен, пусть уж сразу с доп. функуионалом.

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

В случае, если у вас только 1 провайдер, но он предоставляет несколько внешних ip адресов, то все настраивается примерно так же. На резервном Микротике настраивается интернет через основной шлюз в локальной сети (в моей статье это wan1), а отдельный внешний ip адрес настраивается как дополнительный (wan2). Отличие будет только в том, что соединения через основной шлюз и локальную сеть не надо маркировать. Будут проблемы с доступом через локальную сеть, vpn и т.д. Достаточно настроить маркировку входящих пакетов только через wan2 - внешний ip адрес провайдера.

При такой схеме вы будете застрахованы от физической поломки основного шлюза. Если она случится, вы подключаетесь через внешний ip адрес к запасному микротику и делаете его временно основным шлюзом. Можно просто назначить ему ip адрес мертвого шлюза или настроить dhcp сервер и выдавать новые сетевые настройки. Это уже будет зависеть от вашей топологии.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

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

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте . Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:
  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

44 комментария

  1. Аватар
    Владислав

    Доброго времени суток, перечитав много статей не могу найти решение для подобной схемы:
    Есть два RB951G-2HnD
    Один подключен в квартире со статичным ip, а второй на даче через lte модем.
    Есть желание сделать на дачном две разных подсети, так скажем все что через lte раздаем по wi-fi и lan 2,3,5/.
    Lan-4 хочу использовать для отдельной сети, так скажем связать ее с квартирой через vlan.
    На домашнем RB951G поднял pptp сервер, а на дачном клиента, соединение происходит, но как это связать не могу сообразить.
    Да еще есть такое желание, что бы управлять дачным миктотиком через отдельный vlan.
    К примеру когда я в офисе, то я подключаюсь через впн на микротик и по адресу домашней локалки 192.168.1.1 цепляюсь к микротику, вот через это же соединение хочу подключаться к дачному, к примеру по 192.168.1.200.
    На домашнем микротике сделал несколько пулов адресов и привязал их к разным профилям, к примеру если подключиться с логином rabota то подсеть будет 192.168.1.1/24, если подключится с логином dachya, то подсеть 192.168.2.1/24
    Вод собственно есть желание собрать такой ребус. Может кто подскажет или натолкнет на мысль?

    • Zerox

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

    • Аватар

      Вариант с VLAN рабочий, особенно если использовать подходящие для этого средства (например OpenVPN). Однако он рабочий, но хреновый, поскольку Вы будете через свой LTE гонять броадкасты домашней локалки и прочую муру. И быстро это ну совершенно точно работать не будет. А вот если использовать маршрутизаторы, особенно с аппаратной акселерацией IPSEC (hex, hex-s, hap ac2 и выше), для VPN соответственно использовать L2TP with IPSEC, то можно выйти на околоканальные скорости (за минусом 15-20 процентов на оверхед L2TP и проч). Я не пытайтесь делать одну и ту же сеть, в 99,999% случаев этого не требуется, есть маршрутизация. В простом случае (Вашем) обойдетесь статическими маршрутами. Для сложных случаев (много сетей) используйте легкий в применении OSPF. Также, как вариант, можно домашние сети делать в сетях 10.x.x.x, (с классической маской /24, а не /8!). вместо традиционных 192.168.x.x/24. В этом случае, подключившись к своему домашнему маршрутизатору (со статикой) с помощью штатных VPN клиентов винды вы замечательно попадете в "дачную" сеть при условии, что не отключите "классовую маршрутизацию" (там где галку дефолт гейтвей снимаете в доп.настройках IP Вашего VPN соединения). Если ip connectivity мы сделали, а задача разных Wi-Fi SSID в том, чтобы кого-то пускать, а кого-то нет, то тоже решается просто либо роутингом, либо файрволом. В общем решений много, Вам выбирать. Но все они быстрее описанного Вами и в плане производительности, да и в плане времени, затрачиваемого на настройки, пожалуй, тоже.

      • Аватар
        Владислав

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

        • Аватар

          👍
          VLAN нужен когда в локалке хотим разделить трафик на сети по смыслу. Тогда да. Без них никак. Но не а этом случае.

  2. Аватар
    Дмитрий

    Доброго времени суток
    Сделал согласно схеме, доступ на MikroTik работает
    Но у меня вот какая задача, на объекте имеется видеорегистратор, я к нему настроил удаленное подключение с первого интернета. Когда первый интернет установлен по умолчанию – доступ к видео работает. Но когда по умолчанию для интернета установлен второй провайдер – на MikroTik я-то могу зайти с первого провайдера, а вот дальше, подключится к видео не удается.
    Как мне настроить чтобы я мог подключатся к видеорегистратору с первого провайдера. Независимо от того, какой интернет по умолчанию, первый или второй

    • Zerox

      Как настроено подключение к регистратору? Через проброс порта?

      • Аватар
        Аноним

        Да, через проброс портов

        • Zerox

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

  3. Аватар
    Алексей

    А не будет достаточно маркировать только один, допустим резервный wan? Первый основной будет работать на шлюз с наименьшей метрикой, а если обращаться ко второму то он будет отправлять по правилам маркировки.

    • Zerox

      Думаю, достаточно, если каналов только 2. Маркировка обоих каналов это задел на настройку и и большего количества. Для трех все делается точно так же.

  4. Аватар
    Алексей

    А не будет ли достаточно промаркировать только второй канал? Если по первому wan прийдет пакет, то он и уйдет в шлюз с наименьшей метрикой, а второй будет работать с маркированным трафиком.

  5. Аватар

    У меня оба провайдера по DHCP. На одном серый IP на другом белый. Должно ли работать?

  6. Аватар

    Можно узнать почему в цепочке input при маркировке соединений указывается адрес и входящий интерфейс?
    На мой скромный взгляд это избыточно и хватит указать только входящий интерфейс.

    • Zerox

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

  7. Аватар

    как быть если провайдер выдает динамический ip и шлюз тоже меняется?

    • Аватар

      А у вас какой тип подключения к провайдеру?
      Обычный ipoe с получением по dhcp или подключение через логин и пароль?

  8. Аватар

    Для доступа к микротику извне по 2 адресам маркировка не нужна, достаточно настроить оба провайдерских адреса. У меня у нескольких клиентов так работает.

    • Zerox

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

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

      • Аватар

        Уточнил детали, в том числе по теории, всё действительно упирается в настройки провайдеров. Если провайдер выпускает пакеты с чужим IP в заголовке Src, то всё будет работать без доп. настроек. Если нет, нужна маркировка или другие механизмы.

    • Аватар
      Михаил

      Работает такое. Но. Механизм роутинга таков, что он идет по основной таблице, то есть в этом случае будет ассиметричный роутинг в котором запросы придут на wan2 а уйдут с wan1, причем с адресом источника wan2. К чему это может привести и как будет оператор это обрабатывать - предлагаю подумать.

  9. Аватар

    Ммм' FHRP/VRRP вам в помощь и не надо городить такое. Причём железки переключаются сами вам только настроить получение сообщения о недоступности основной железки через zabbix или что вы там используете.

    • Zerox

      Это совершенно другой уровень решения задачи. Думаю, если бы при поиске эникея для последущего обслуживания таких сетей работодателю пришлось писать в требованиях знание протокола FHRP/VRRP, он бы был не очень этому рад :)

      • Аватар

        Да, наверное вы правы, возрастает требования к качеству персонала. Но если нанимать даже эникея на постоянку то можно просто заставить пройти в инете стыренные курсы CCNA.

      • Аватар

        Эникей не разберётся и с Вашей схемой, имхо :-) В лучшем случае умоет руки, в худшем - начнёт тыкать кнопки.

  10. Аватар

    Маркировать ничего не нужно :)
    Будет работать с просто двумя дефолтгейтвеями и разными метриками.

    • Zerox

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

    • Zerox

      Нет, не работает. Только что проверил на том же роутере, где это настроено. Просто отключаю маркировку, ставлю distance 1 и 2 у дефолтных маршрутов. Доступ работает только для маршрута с distance 1, что, собственно и логично. Ответный пакет уходит на маршрут с наименьшей метрикой. Можете на пальцах объяснить, как это должно работать без маркировки?

      • Аватар
        Михаил

        Так и работает ) Ответ уходит с другого интерфейса. Просто ACL операторов Ваш обратный трафик блокируют.

        • Zerox

          А какой толк от такой работы?

          • Аватар
            Михаил

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

      • Аватар

        На инпуте не нужно маркировать трафик, потому как при обращении на инпут ответ будет отправлен с того интерфейса, на который пришел.

        Если есть желание, могу отправить скрины конфигов где это работает :)

        • Zerox

          Спасибо, я уже понял, как это может работать. Нормальная работа зависит не только от твоих настроек, но и других факторов. Для надежности лучше все же маркировать, что я и буду дальше делать :)

          • Аватар

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

            • Zerox

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

              • Аватар

                Вопрос терминологии, конечно. Маркировка потребуется. Но в статье указана маркировка манглами без которой вполне можно обойтись. Достаточно использовать PBR и маркировкой в IP/Routes. Много где так делал сам. С рекурсивными маршрутами и чек-гейтвеем.

                • Zerox

                  Можете какой-то ссылкой поделиться по этой теме? Я про маркировку в IP/Routes и PBR (это что вообще такое?).

                  • Аватар

                    Ссылкой наверное не могу, я это делал не по ссылке, а сам, исходя из того, что получил в свое время на курсах MTCRE. Но там все просто. Принцип примерно такой. Я откомментировал для наглядности
                    /ip route
                    add check-gateway=ping comment="WAN BEELINE mark" distance=1 gateway=8.8.4.4 routing-mark=BEELINE target-scope=\
                    15
                    add check-gateway=ping comment="WAN MGTS mark" distance=1 gateway=1.0.0.1 routing-mark=MGTS target-scope=15
                    add check-gateway=ping comment="WAN MGTS recursive" distance=1 gateway=1.0.0.1
                    add check-gateway=ping comment="WAN BEELINE recursive" distance=2 gateway=8.8.4.4
                    add comment="MGTS virtual gate" distance=1 dst-address=1.0.0.1/32 gateway=172.16.209.1 scope=10
                    add comment="Beeline virtual gate" distance=1 dst-address=8.8.4.4/32 gateway=93.81.254.** scope=10

                    и собственно PBR (policy based routing) выглядит примерно так
                    /ip route rule
                    add comment="Access to gate MGTS" src-address=172.16.209.1/32 table=main
                    add comment="Access to gate Beeline" src-address=93.81.254.**/32 table=main
                    add src-address=93.81.254.**/30 table=BEELINE
                    add src-address=172.16.209.0/24 table=MGTS

                    То есть смысл схемы примерно такой. У меня есть фактически бесплатный билайн (за рубль его мне дают с моими мобильными) диаметром 100 MBit/s. Он входит непосредственно в микротик (ну почти, на самом деле там перед ним стоит свитч и я через VLAN и несколько транзитных свитчей по комнатам прокинул билайновскую сетку до тв-приставки, но в данном контексте это неважно, считаем провод провайдера в роутере). На нем белый статический адрес от провайдера. Он, конечно "статический", но получается динамически, увы, билайн так работает. Поэтому в dhcp-client я не ставлю получение def gw и делаю все сам ручками. Мне главное, чтобы пчелайн мне корректно выдал адрес, если пропишу static ip руками - не взлетит, проверено. С мгтс история такая. Раньше платил по дням и все было хорошо, но билайн заколебал падать и от мгтс за эту подневную оплату стал платить овердофига. Так как трафик появляется (помимо копеечных пингов), так сразу платим и платим много. Я плюнул и перешел на младший тариф с безлимитом, так дешевле и это все равно больше, чем билайн - 300 MBit/s. При этом отказаться от билайн не могу, поскольку мгтс приходит по GPON в свой дурацкий роутер. Покупать для экспериментов 100500 штук GPON SFP, надеясь, что какой-нибудь подойдет - я не дочь миллионера. А то, что с разбегу взлетит первый попавшийся - вероятность в пределах погрешности, об этом на всех форумах говорят. Кроме того, на этом же джипоне и домашний телефон висит. И вроде как почти не используется, но пару раз в год туда звонят пожилые родственники и старый друзья из-за рубежа... Хрен бы с ним, пусть висит. Но он тупой, бриджом быть не может, поддержка мгтс такая, что первую линию хрен пройдешь, а потому работает только на выход, NAT over NAT. Ладно. Это лирика. В PBR думаю все понятно, поясню только для чего там 1 и 2 строки (2я с комментом Access to gate Beeline там указан шлюз провайдера). Если не добавить пару этих строк, то все будет работать, но станут недоступными шлюзы. То есть я на свой мгтс роутер не зайду и при tracerouting второй хоп будет недоступен, понятно почему, да? Voila. Все прекрасно работает.

                  • Аватар

                    P.S. звездами забиты реальная айпи адресация, чтобы не провоцировать пионеров на исследование моего домашнего роутера))) у меня конечно все прикрыто, но нафига мне всякие проверки DDOS'ами "на вшивость"?)))

Добавить комментарий

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.