Как объединить два офиса с разными провайдерами в одну локальную сеть по кабелю?

Имеем:
Два офиса физически находящиеся недалеко друг от друга и соединенные в одну локальную сеть по оптике.
В первом офисе приходит интернет на микротик, который питает инетом оба офиса.
Делаем:
Подключаем второй офис к другому провайдеру. Питаем второй офис соответственно от второго провайдера, а первый офис от первого провайдера.
Задача:
Необходимо объединить два офиса в одну локальную сеть чтоб при отсутствии да любом провайдере инета, не терялась связь по локальной сети между офисами.
- Вопрос задан более двух лет назад
- 879 просмотров
4 комментария
Простой 4 комментария

Дыкъ в чём затруднение-то? Оптическая линия никуда не исчезла при подключении второго провайдера, я полагаю? Тогда всё элементарно, сети двух офисов остались соединены (физический уровень модели OSI).
Адресация в офисах какая? (Были все в одной сети и на Микротике в бридже?
Или были в разных сетях и на Микротике маршрутизация?)
Тот пустой (не подписанный) прямоугольник во втором офисе — это какой-то маршрутизатор? Или это медиаконвертер?
Второй провайдер воткнётся в какое оборудование во втором офисе?
toyota_gercena @toyota_gercena Автор вопроса
Видимо я не складно описал вопрос. Попробую по точнее описать.
Сейчас на два офиса имеется рабочая локальная сеть. Микротик (RB3011UIAS-RM), находясь в офисе №1, раздает адреса на оба офиса, ну и соответственно инет.
Офисы соединены оптикой (прикладываю фото принимающего оборудования в офисе №2).
Задача в том, что необходимо сделать так, чтоб второй офис был запитан инетом от другого провайдера и не зависел от первого офиса, но при этом чтоб локалка между офисами осталась.
Смоделируем ситуацию, которая по факту временами происходит: в первом офисе вырубается электричество, из-за чего второй офис лишается инета. Или же похожая ситуация: в первом офисе от провайдера нет сигнала и оба офиса остаются без инета. Поэтому и хотим сделать отдельный инет (провайдера) во второй офис.
К слову говоря, имеется в запасе Микротик RB2011UIAS-2HND-IN, который ранее стоял в офисе №1. Подумывал его заюзать во втором офисе. Правда он временами любит глючить, поэтому его и заменили на RB3011UIAS.

Должен наверно еще дополнительно обозначить (чтоб не складывалась обо мне не верная картинка) что я не спец в этих делах, тем более в микротиках )). Чтоб настроить микротик, привлекаю человечка со стороны.
Saboteur @saboteur_kiev Куратор тега Компьютерные сети
ну если ты сисадмин, то осиль базовые понятия как работает ip протокол, а именно — что такое IP адрес, что такое маска подсети и что такое default gateway
Как только поймешь как это работаешь, сразу поймешь что нужно сделать
Объединение двух офисов по VPN на Mikrotik.
Задача стоит «подключить два удаленных офиса между собой по VPN».
В обоих офисах стоят маршрутизаторы Mikrotik.
Адресация офисов.
Адресация Офиса 1 (MSK), который будет у нас VPN-сервером:
WAN 88.53.44.1
LAN 192.168.10.0/24
VPN 192.168.60.1
Адресация Офиса 2(SPB), который будет VPN-клиентом:
WAN 88.53.55.2
LAN 192.168.20.0/24
VPN 192.168.60.2
Настройка VPN-server.
1. Первый маршрутизатор в офисе MSK.
Включаем VPN-Server.
/interface l2tp-server server set authentication=mschap2 enabled=yes

2. Создаем пользователя, который к нам будет подключаться.
/ppp secret add local-address=192.168.60.1 name=User password=11225555 profile=default-encryption remote-address=192.168.60.2 service=l2tp

3. Добавляем интерфейс сервера.
/interface l2tp-server add name=l2tp-in2 user=User


Настройка VPN-клиента.
Второй маршрутизатор в офисе SPB, создаем клиентское подключение к головному офисе в Москве. Пользователь с именем User, пароль 1225555
/interface l2tp-client add allow=mschap2 connect-to-88.53.44.1 disabled=no name="SBP-MSK" password=1225555 user=User



Маршрутизация офисов.
Теперь, после создания подключений на маршрутизаторах, нам нужно прописать статически маршруты в локальные сети через VPN на Mikrotik в обоих офисах.
Начнем с первого офиса в MSK:
dst-address — указываем локальную сеть офиса в SPB, к которой будем подключаться.
gateway — шлюз через который будем подключаться к сети, ip VPN клиента.
pref. source — указываем свою локальную сеть, с которой будем выходить.
/ip route add comment="route MSK-SPB VPN" dst-address=192.168.20.0/24 gateway=192.168.60.2 pref-src=192.168.10.1

Второй офис в SPB:
/ip route add comment="route SPB-MSK VPN" dst-address=192.168.10.0/24 gateway=192.168.60.1 pref-src=192.168.20.1

Заключение
Таким образом мы объединили два офиса между собой позволив пользователям чувствовать себя в одной сети и использовать внутренние общие ресурсы.
Если вы не видите общие ресурсы компьютеры офисов между собой или не проходит ping — отключите на обоих машинах firewall и проверьте открытость UDP порта 1701.
21 thoughts on “ Объединение двух офисов по VPN на Mikrotik. ”
читаталь :
за такую инструкцию надо не поддерживать сайт, а закрыть. а где шифрование? как офисы между собой соединять без шифрования трафика?
Махатма Ганди :
Шеф, по умолчанию включается MPPE128 stateless encoding, поскольку в свойствах пользователя указывается профайл default-encryption. Ваш Кэп.
На деле соединяются только микроты. Нихрена не ходит трафик
Маршрутизацию офисов неверно настроили значит, именно там настраивается доступность подсетей между офисами.
Махатма Ганди :
Ошибка в Preffered source для обоих маршрутов. Необходимо подставлять собственный адрес в VPN-паре, т.е. для офиса MSK это 192.168.60.1, а для офиса SPB это 192.168.60.2 соответственно. Тогда все работает, проверено на собственном опыте.
настройки Firewallа неплохо бы еще…
отличная статья!
настройки файера дадите?
Ithelp21 :
Спасибо! Ссылка на настройка фаерволла.
Maksim :
В инструкции на картинке ошибка впн не во вкладке ip а во вкладке ppp
Спасибо, дружище, поправили!
Mikhail :
Здравствуйте, спасибо за инструкцию, всё получилось!
Только столкнулся с проблемой, пытаюсь подключится к веб-морде камеры, подключенной в условном офисе спб, но страница не грузится, в браузере висит вечная загрузка страницы. Пинг идёт нормально.
Серега :
Добрый день! Спасибо за статью! Все работает по вашему примеру. Пробовал еще объединять два офиса в одной сети, но почему то этот номер не проходит, ну т.е. 192.168.10.0 в одном офисе и точно такая же сеть во-втором. Понятно, что пул адресов разный, чтобы не было повторений. Однако маршруты находятся в состоянии unreachable и сети не объединяются. Не могли бы вы прокомментировать этот момент?
Здравствуйте, нужно что бы подсети были разными в двух офисах.
Евнгений :
Благодарю Вас за очень доходчивую и полезную статью, для чайников, коим я являюсь.
Задача поставленная в заголовке решена с Вашей помощью.
Александр :
Примыми руками настроено и работает.
Анатолий :
Будет это работать, если на стороне сервера ip адрес статический, а со стороны клиента «серый» (интернет через 4g модем) ? Хочу с работы получить доступ к web интерфейсу домашнего видеорегистратора.
в этом смысл любого впн. конечно со стороны клиента можно иметь любой адрес, лишь бы провайдер не блочил впн (а сотовые операторы некоторые этим грешат). но тогда можно сменить впн на другой тип.
«Ошибка в Preffered source » — мозги не пудри. из-за тебя пришлось лезть в мануалы микротик.wiki проверять. ящер. Автору спасибо, все кратко и понятно, кучу гавна у себя вычистил. Проблема пингов реально оказалась в фаерволах! для чайников, в виндах правила пингов и самбы в фаерволе включены только для сети «локальная сеть», куда сеть впн не попадает по адресации. Нужно или ручками создать правило или найти виндовое и ткнуть галочку входящие/исходящие «для всех сетей», вместо Локальная. и сразу и пинги и шара заработали. Есть еще опция в бридже ARP=enable, где то слышал что для лучшего взаимодействия локалок лучше поставить =arp-proxy
Здравствуйте!
Подскажите, будет ли эта схема работать, если один (или оба) из микротов стоит за фаерволом?
Что нужно будет поменять, чтобы заработало?
Андрей Артюк :
Привет.
Я так понимаю это без ipsec, а насколько такой vpn оправдан с точки зрения секьюрности?
Компы в другой сети пингуются, но доступа к шаре нет, и по имени и по IP. Файерволы отключены. Что мы сделали не так?
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Как связать 2 офиса в одну локальную сеть?
Добрый день, появилась необходимость связать 2 офисных здания в единую сеть. В каждой есть своя локальная сеть, с 2-3 пк. Между офисными зданиями расстояние ~250 метров. Интернета в обоих зданиях нет. Подскажите как лучше всего это сделать, чтобы можно было раз купить оборудование настроить и забыть.
Единственная идея пока что — поставить 2 направленные антенны, подключенные к 2 wifi роутерами в режиме repeater bridge. Но я так думаю сильно упадет производительность и стабильности не будет. Прокладывать кабель между зданиями — это крайний вариант, большая вероятность что его порвут или повредят.
P.S. нужен вариант подешевле.
- Вопрос задан более трёх лет назад
- 13065 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 10

Ушел на http://ru.stackoverflow.com/
~250 метров оптики, 2 сварки, 2 бокса, 1 оптический патчкорд 3 метра разрезанный пополам и сваренный в боксе + 2 медиаконвертора, крепеж и растяжка оптики + прочие мелочи = самый дешевый и надежный вариант. Свяжитесь с любым провайдером в районе, сделают за день возьмут 200-300$. Вам нормальное радиооборудование обойдется дороже да и намучаетесь с ним.
Ответ написан более трёх лет назад
Нравится 8 4 комментария

Цены за работу дал, еще материал где-то 300$ будет, но тут нюансы.
asgard88 @asgard88 Автор вопроса
Есть один нюанс, это производственный объект, между зданиями накатанная дорога, регулярно ездит тяжелая техника, зимой температура падает до -40 градусов

Высота зданий, если тянуть по воздушке? Падения до -40 в принципе не проблема, на таком расстоянии и если кабель тестировался по GR-326, если все сварки внутри помещений то вообще не страшно. Тут нюансов много, если радиоканалы не забиты, есть прямая видимость (без деревьев) то можно попробовать радио-мост, но внесение в эту шаткую систему любых переменных (грузовик на пути канала встал, чужой дальнобойный радиомост рядом) будет сильное падение скорости или обрыв связи. Опять же скорость, оптика это стабильный гигабит с откликом в микросекунды, хоть базы данных гонять, хоть тонкие клиенты использовать — ни каких проблем, радиоканал например для тонких клиентов не подойдет. Мало информации в вопросе. Возьмите в магазине на тест радиооборудование и проверьте, если все устраивает стабильно и прочее оставляйте, если нет — отдавайте обратно и тяните оптику.
Соединяем филиалы в одну сеть. Снижаем затраты на интернет

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

Первоначальная цель была в экономии денег на Интернет трафике в филиалах т.к. в удалённых районах цена безлимитного ADSL с шириной в 256кб/с стоила порядка 7-10т.р. в месяц, а интернет был жизненно необходим.
Вся радость была в том, что почти все филиалы имели подключения одного провайдера, в котором существовало понятие локального и пирингово трафика, а в Главном офисе был выделенный широкий Интернет (другой провайдер, но волей случая он был лоялен к провайдеру филиалов и у него был «пиринговый трафик» с ценой около 6 копеек за мегабайт).
1. proxy
Самое быстрое решение это было обычный каскад proxy серверов, так и было сделано т.к. раньше все филиалы раздавали интернет у себя прямо модемом, то нужно было всем выделить по 1 системнику, который бы выполнял роль шлюза, системники были не подарки, кто даст 800й пень, кто 233, в общем у кого что было… Хотя сегодня за 4-7 т.р. можно собрать достойный шлюз, но хозяин-барин, хочу говорит без затрат!
На эти шлюзы была установлена ubuntu 8.04 LTS настроена в виде шлюза, чтоб воткнул в локальную сеть, в модем и в розетку, и сразу всё работало т.к. во многих филиалах, админы могли только нажать «Any key» на клавиатуре пользователя, но не беда, дело шло, постепенно 7 филиалов перенастроило свои модемы, и воткнули шлюзы 🙂
сразу же поднимали прокси каскадом, заруливали туда http трафик, но как мы все знаем, хттп трафик это всего некий % от общего трафика, перейдя на более простые тарифы, экономия была, но условная, ведь нерадивый админ или пользователь мог например через torrent стянуть что-то весомое, что сулило попаданием на деньги филиалу…
Попутно появлялись другие задачи в центральном офисе — перенос компаративного почтаря, шлюза, портала настроенного году в 2002 и не тронутого с тех пор, но это заслуживает отдельной статьи…
А нас пока интересует просто сеть…
2. OpenVPN
Эту штуку я видел в первый раз, был некий страх перед первым знакомством, далее чтение мануалов и интернетов, закатав рукава я полез ставить 🙂
2.1 Сервер
имеет 2 сетевых адаптера eth1 (192.168.5.x) — Локальная сеть и eth0 (real ip 111.111.111.111) Интернет с широким каналом.
apt-get install openvpn
Далее создаём файл конфигурации сервера
touch /etc/openvpn/server.conf
при загрузке системы автоматически поднимаются все VPN соединения, для которых в папке /etc/openvpn есть соответствующие файлы с расширением .conf
у меня он получился примерно таким.
port 1194 #Порт
proto udp #Протокол
dev tun #Название виртуального устройства
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key # This file should be kept secret
dh /etc/openvpn/dh1024.pem
server 10.10.10.0 255.255.255.0 # vpn subnet
ifconfig-pool-persist ipp.txt # Тут будут храниться ip адреса клиентов
push «route 192.168.5.0 255.255.255.0» # home
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 4
mute 20
client-to-client
client-config-dir /etc/openvpn/ccd # Тут будут настройки для каждого филиала
route 192.168.0.0 255.255.255.0 # Маршрут от сервера до филиала 1
route 192.168.1.0 255.255.255.0 # Маршрут от сервера до филиала 2
Создаём каталог, в котором будут хранится индивидуальные настройки клиентов:
Теперь необходимо создать ключи и сертификаты для шифрования и авторизации
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0
source ./vars
./clean-all
./build-ca
Теперь создадим сертификат и приватный ключ для сервера:
Создаём ключ для клиента (если клиентов несколько, процедуру придётся повторить):
для каждого клиента должно быть указано своё уникальное имя (в данном случае client1).
если новый клиент создаётся спустя некоторое время, процедура будет выглядеть следующим образом:
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0
source ./vars
./build-key client2
Генерируем параметры Диффи-Хеллмана:
Помещаем следующие файлы в директорию /etc/openvpn/
* ca.crt
* server.crt
* dh1024.pem
* server.key
Создаём файл /etc/openvpn/ipp.txt
Конфигурационный файл клиентской машины /etc/openvpn/client.conf у меня получился примерно таким
remote 111.111.111.111 1194
client
dev tun
proto udp
resolv-retry infinite # this is necessary for DynDNS
nobind
user nobody
group nogroup
persist-key
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client1.crt
key /etc/openvpn/client1.key
comp-lzo
verb 4
mute 20
redirect-gateway
#show-net-up
verb 4
Теперь необходимо скопировать с сервера в папку /etc/openvpn/ сгенерированные клиентские ключи и авторитарный сертификат сервера:
* ca.crt
* client1.crt
* client1.key
Если за клиентом скрывается сеть 192.168.1.х то, чтоб сервер видел её нужно добавить на сервер маршрут до неё.
На сервере создаём файл /etc/openvpn/ccd/client1 такого содержания:
iroute 192.168.1.0 255.255.255.0
# роутинг на сеть филиала2, чтоб 2 филиала знали друг друга
#push «route 192.168.100.0 255.255.255.0»
#Заворачиваем весь трафик в OpenVPN
push «redirect-gateway def1»
Вот тут собственно и случилась самая злая проблема у меня.
OpenVPN получив директиву
push «redirect-gateway def1»
(при наличии ‘pull’ в своей конфигурации), клиент не удаляет старый маршрут, а добавляет в таблицу маршрутизации записи вида:
0.0.0.0/1 via 192.168.231.5 dev tun0
128.0.0.0/1 via 192.168.231.5 dev tun0
и если openvpn идёт по ethernet то всё работает и радует админа и пользователей, но великий ppp любит поднимать вот такой маршрут.
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
И вот OpenVPN ругается примерно вот так
Jul 2 19:28:53 ino ovpn-client[14465]: NOTE: unable to redirect default gateway — Cannot read current default gateway from system
Решение этой проблемы искалось долго и нудно, хотя оно на поверхности. если в этом «кривом» маршруте ppp указывать шлюз вместо 0.0.0.0 реальный шлюз, то ОpenVPN видит этот маршрут и добавляет свой без проблем.
Поэтому я создал файл
/etc/ppp/ip-up.d/routing
В который прописал небольшой скрипт. (прошу ногами не пинать, я очень ленивый, и полноценный скрипт определения шлюза и правки маршрутов писать не стал, а сделал как простой костыль)
Буду очень рад, если кто-то предложит более логичный, надёжный, и универсальный метод правки маршрутов на лету.
Пока ещё нет уверенности, что всё будет на 100% работать при обрывах ppp, Но жизнь покажет, если что — поправлю топик.
#! /bin/sh
#Определяем выданный шлюз по умолчанию у меня он всегда разный но в сети 222.х.х.х
gw1=`ip route show | grep 222 | awk »`
# Удаляем 0.0.0.0 0.0.0.0
route del default
# Добавляем маршрут с верным шлюзом
route add -net default gw $ dev ppp0
Делаем его исполняемым
chmod ug+x /etc/ppp/ip-up.d/routing
После чего ребут, спустя некоторое время сервер перестал пинговаться по внешнему ипу, но стал отзываться по внутреннему — 10.10.10.26
ЗЫ Прошу принять во внимание, что файрволл шлюза и сервера и клиента надо поправить, для того, чтоб у пользователей был жизненно важный интернет.
Например я, сделал это так:
-A POSTROUTING -s 192.168.0.0/255.255.0.0 -j MASQUERADE
Тут не указана привязка ни к внешнему интерфейсу, ни ip 🙂
когда по разным причинам у нас не будет openvpn то у пользователей будет прямой инет, а когда он появится, то весь трафик полетит через него.
Заключение
В жизни эта система собирается поэтапно, сначала запускается впн сервер и впн клиент, пингуют друг друга по адресам 10.10.10.х дальше добавляются маршруты до сетей, что стоят за сервером и клиентом, пингуются проверяются, когда всё будет стабильно и надёжно добавляем директиву
push «redirect-gateway def1»
И снова добиваемся работы и жизни, всё было проделано не выходя из офиса, на шлюзах филиалов, были подписаны сетевые интерфейсы, чтоб админ просто воткнул сетевые кабеля и питание, позвонил мне, а дальше я уже по ssh настраивал на рабочий лад.
Ах да, чуть не забыл, о самом главном — profit
Помимо того, что теперь вся сеть обращается к серверам и сервисам филиалов и центра по внутренним ip адресам, так ещё и финансовая экономия.
Раньше каждый филиал тратил на интернет в среднем по 7 000р. в месяц, сейчас в месяц каждый из них платит по 550р. за доступ к пирингу, интернет не расходуется (кроме центрального), для начала было запущено 7 филиалов, дальше будет больше.
получается, что за год при старой схеме компания тратила бы на интернет 588 000р., а при текущей схеме в год будет потрачено 46 200р.
Что дальше?
А теперь, на этой всей хе… мы попробуем взлететь! я попробую развернуть IP Телефонию, чтоб минимизировать расходы на Телефонные междугородние переговоры между филиалами, связать софтАТС с аппаратными в филиалах, о чём обязательно напишу. Удачи
update1 Много вопросов возникло к термину «Крупная компания» попробую прояснить.
Крупная она в Сибири, центр имеет штат 200 сотрудников, филиалы от 20 до 60, к каждому филиалу ещё крепятся 10-20 объектов. по 5-15 человек. филиалов менее 30ти.
Компания крайне не поворотлива, основной контроль идёт от государства, оборудование, компания делает некие шаги в сторону ИТ развития 🙂
Update2
И так, после тестирования выявилось, что если надолго опустить сервер управы, то клиенты не охотно поднимают openvpn и трафик может пойти прямо в дорогой инет.
Также если принудительно рвётся ADSL канал, то опенвпн вроде и пытается стартануть заново, но что-то у него это не получается, так и ходит по кругу.
пробовал всякие опции и keepalive и ping-restart и прочее… не помогало…
Поэтому пишем небольшой скрипт, который будет проверять состояние дел.
touch /usr/bin/vpn_keepalive.sh
#! /bin/sh
# Нужна ли нам отладка, рас комментировать нужное
#debug_out=/dev/null
debug_out=/dev/stdout
#NEXTHOP Это хост внутри ВПН сети
# я взял внутренний ип OpenVPN сервера
NEXTHOP=192.168.5.1
# Комманда перезапуска Опенвпн
OPEN_VPN_CMD=»sudo /etc/init.d/openvpn restart»
PING=/bin/ping
logger_opts=»-t $0″
if [ «$debug_out» = «/dev/stdout» ]
then
logger_opts=»$logger_opts -s»
fi
pckts_rcvd=`$PING -c 8 -q -W 2 $NEXTHOP | grep transm | awk »`
echo «host: $NEXTHOP, pckts_rcvd: $pckts_rcvd» >$debug_out
if [ $pckts_rcvd -eq 0 ]
then
echo «Connection with $NEXTHOP lost, resetting» | logger $logopts
$OPEN_VPN_CMD > $debug_out
else
echo «Connection with $NEXTHOP up, no action» | logger $logopts
fi
Делаем его исполняемым
chmod ug+x /usr/bin/vpn_keepalive.sh
Скрипт пингует хост, и если 0 пакетов вернулось, то выполнит команду рестарта.
после чего всё гарантированно поднимается, вливаются верные маршруты, и трафик идёт через ВПН трафик
Кидаем этот скрипт в крон
crontab -e
например каждые 2 минуты.
0-59/2 * * * * /usr/bin/vpn_keepalive.sh
И всё если дебаг включен, то в логах (syslog) будет отмечено вот так.
logger: Connection with 192.168.5.1 up, no action