Продолжаю цикл статей про функциональные и очень доступные роутеры из Латвии. Речь пойдет о том, как получить доступ к Mikrotik через несколько одновременно настроенных провайдеров или внешних IP. Настройка не сложная, плюс в интернете есть информация на эту тему. Я дополню ее тем, что поделюсь своим опытом применения этого функционала.
Введение
Настройка нескольких провайдеров или одновременный доступ через разные внешние IP на микротике не представляет какой-то особенной сложности. Я настраивал такие вещи очень давно еще на Linux. Ну а тут под капотом он же и стоит, так что принцип будет один и тот же.
В общем случае нам достаточно просто промаркировать все пакеты, чтобы отличать, кто с какого внешнего интерфейса пришел. Это нужно для того, чтобы ответ на входящий запрос отправлялся через тот же WAN интерфейс или IP адрес, с которого пришел. Если это условие не будет соблюдаться, то часть пакетов не будут доходить до адресатов.
Таким образом, настройка одновременно двух провайдеров сводится к следующему:
- Маркируем все входящие соединения, назначая разные метки для разных WAN интерфейсов.
- Для промаркированных соединений назначаем ту или иную метку маршрутизации.
- В зависимости от метки маршрутизации, направляем трафик на тот или иной маршрут по умолчанию, которых будет несколько, в зависимости от количества одновременно подключенных провайдеров.
Приступаем к настройке. Если вы только начинаете знакомство с устройствами Mikrotik, то рекомендую посмотреть мои статьи по базовой настройке роутера и настройке firewall. Эти знания будут нужны для того, чтобы реализовать задуманное.
Маркировка соединений с двух WAN
Первым делом маркируем все соединения. Для этого идем в раздел IP -> Firewall -> Mangle и добавляем новое правило маркировки для пакетов из wan-1.
Следующим этапом назначаем метку маршрутизации для этих соединений. Делается этот тут же в новом правиле.
То же самое делаете для второго соединения, заменяя 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 сервер и выдавать новые сетевые настройки. Это уже будет зависеть от вашей топологии.
Заключение
Надеюсь понятно описал основную идею. В описываемом мной примере нет резервирования канала в виде автоматического переключения на рабочий, но при этом есть защита от физической поломки основного шлюза. Восстановить работоспособность придется вручную, подключившись к запасному устройству. Такой подход актуален для удаленных мест, где нет никого, кто бы мог перенастроить шлюз на резервную железку, которая может лежать выключенная. Можно восстановить связь удаленно, а потом планово посетить объект и сделать все как надо.