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

Это не пошаговая инструкция для настройки, для понимания желательно иметь опыт настройки роутеров Mikrotik.

Оборудование и схема сети

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

Для этих целей я решил использовать следующее оборудование:

  1. Роутер Mikrotik hap ac2 (можно использовать другую модель с USB по вкусу);

  2. Точка доступа Mikrotik map lite (в качестве клиента подключения по WIFI);

  3. Модем Huawei E3372 от одного из операторов, разлоченный и прошитый под любые симки.

Принцип работы следующий: если доступен RJ45, просто втыкаем наш роутер в него; если WIFI - подключаем роутер к map lite, и на этой точке доступа, где уже заранее настроен WIFI клиент (в интерфейсе wlan1 выбираем Mode = station и dhcp клиент вешаем на этот интерфейс), вводим SSID и пароль от местной сети, питание можно взять с USB роутера; если нет вообще ничего, покупаем местную симку, и втыкаем в роутер модем. Также, впоследствии я понял, что готовый модем лучше иметь всегда, так как не везде есть стабильный интернет, и его можно использовать для резервного канала. Я думал, что предусмотрел все, но я ошибся, об этом ниже.

Про настройку, в офисе у меня тоже Mikrotik, на нем я настроил sstp сервер, здесь расписывать это не буду, так как много мануалов в интернете и это не очень сложно. Соответственно, на моем “походном” роутере я настроил sstp клиент, который поднимает туннель. Не забудьте в фаервол добавить правило masquarade на обоих роутерах.

Модем не подключен.

Также, во избежание проблем с маршрутизацией, на SSTP сервере в профиле указываем Only One = yes.

Это нужно чтобы подключение не дублировалось при прерывании связи.

Общая схема сети следующая:

  1. Офисная сеть 192.168.2.0/24;

  2. Моя сеть 192.168.5.0/24;

  3. Точка доступа map lite 192.168.6.1;

  4. Модем 192.168.8.1 (по умолчанию);

  5. Туннель 10.1.2.1 – 10.1.2.5.

Маршрутизация

Самое главное здесь настроить маршрутизацию.

Не помеченные маршруты динамические. Не обращайте внимания на отключенный.

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

2. Здесь маршрут для российских сайтов которые недоступны извне. Для этого в файерволле создаем список сайтов с пометкой rf

Скрин
Также, создаем список локальных адресов.

и метим пакеты к этим сайтам во вкладке Mangle.

Скрин
Здесь вы можете видеть правило метки пакетов для пинга резервного канала, метка соответственно reserve.

В данном маршруте нужно указать Routing Table = rf, предварительно создав ее.

Скрин
Также, здесь есть таблица для резервного канала.

.

3. Это два маршрута для пинга основного и резервного канала и для автоматического переключения между ними (подробнее ниже). Гейтвей резервного пинга – это адрес модема, его менять не понадобится, а вот гейтвей основного канала необходимо будет здесь менять при смене этого канала. Это единственное, что нужно будет править в конфиге при смене локации и интернет провайдера соответственно, но до правки интернет все равно будет работать через модем, так что правило plug&play выполняется.

4. Данный маршрут для резервного канала через модем, в нем Routing Table = reserve.

Резервный канал через модем

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

Для этого я модифицировал найденный на просторах интернета скрипт и добавил его в расписание с запуском каждую минуту. Этот скрипт пингует два адреса, каждый через свой канал, и в зависимости от доступности канала включает или выключает правило Mangle, которое метит все пакеты, кроме локальных, чтобы они шли через резервный канал. Перед этим создаем в Address Lists список локальных адресов, в моем случае это 192.168.2.0/24 и 192.168.5.0/24.

Обратите внимание на комментарий, он используется в скрипте для поиска этого правила.
Скрипт
:local PingCount 5;
:local CheckIp1 77.88.8.1;
:local CheckIp8 77.88.8.8;
:local isp1 [/ping $CheckIp1 count=$PingCount interface="ether1"];
:local isp2 [/ping $CheckIp8 count=$PingCount interface="lte1"];
:local BackGw [/ip firewall mangle get [find comment="reserve"] disable];
:if (($isp1=0) && ($isp2=$PingCount) && ($BackGw=true)) do={
  /ip firewall mangle enable [find comment="reserve"];
  :delay 2
  :log warning "Set routes to lte1";
  /ip firewall connection remove [ find protocol~"tcp" ];
  /ip firewall connection remove [ find protocol~"udp" ];
  :delay 2
  :log warning "Set routes to lte1";
}
:local MainGw [/ip firewall mangle get [find comment="reserve"] disable];
:if (($isp1=$PingCount) && ($MainGw=false)) do={
  /ip firewall mangle disable [find comment="reserve"];
  :delay 2
  :log warning "Set routes to ether1";
  /ip firewall connection remove [ find protocol~"tcp" ];
  /ip firewall connection remove [ find protocol~"udp" ];
  :delay 2
  :log warning "Set routes to ether1";
}

На предыдущих скриншотах видно, что также нужно создать Routing Table = reserve, правило Mangle, для пометки пакетов к адресу 77.88.8.8, чтобы пинг на этот адрес всегда шел через резервный маршрут, и 2 маршрута для пинга основного и резервного канала.

Заключение

Я ранее упоминал, что я предусмотрел не все, и у меня возникла еще одна непредвиденная проблема, которая и побудила меня написать эту статью. По приезде в другую страну, оказалось, что модем не поддерживает частоты местного оператора, и запустить интернет через него не получилось. И у меня пришла в голову мысль использовать телефон в качестве точки доступа с местной симкой (в телефоне она заработала), и к нему подключать WIFI клиента на map lite и далее по списку. Увидев эту конструкцию невольно улыбнулся, однако работает все это достаточно стабильно, так что вариант вполне жизнеспособный, и к начальному списку оборудования можно смело добавлять смартфон с возможностью раздачи интернета.

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