Pull to refresh

Как релоцироваться из офиса сохранив локальную сеть

Reading time4 min
Views5K

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

Это не пошаговая инструкция для настройки, для понимания желательно иметь опыт настройки роутеров 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.
Здесь вы можете видеть правило метки пакетов для пинга резервного канала, метка соответственно 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 и далее по списку. Увидев эту конструкцию невольно улыбнулся, однако работает все это достаточно стабильно, так что вариант вполне жизнеспособный, и к начальному списку оборудования можно смело добавлять смартфон с возможностью раздачи интернета.

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

Tags:
Hubs:
Total votes 8: ↑8 and ↓0+8
Comments7

Articles