Объединение офисов через IPSec (MIKROTIK)

Данный мастер поможет вам на основании ваших данных сформировать в автоматическом режиме скрипт для объединения офисов при помощи маршрутизаторов Mikrotik.

UPD! Крайне рекомендую ознакомиться со статьей по производительности VPN каналов Mikrotik.

Офис 1

Офис 2

Профиль безопасности

Данные параметры должны быть одинаковы для обоих точек. Если вам не понятны значения некоторых параметров, оставьте их значение "по умолчанию".

IPSec peer (Phase 1)

Proposal (Phase 2)



Если у вас одна из точек имеет динамический IP, то ознакомьтесь со статьей УЗЕЛ IPSEC С ДИНАМИЧЕСКИМ IP (MIKROTIK)

138 мыслей о “Объединение офисов Mikrotik IPSec”

  1. /ip firewall nat add src-address=192.168.1.0/24 dst-address=192.168.0.0/24 action=accept
    После ввода этой строчки рутер спрашивет chain ввел srcnat

    После выполнения всех команд и перезагрузки не заработало.
    Но идея у вас отличная и полезная

    1. Спасибо за замечание. Все поправил. Так же допилил удаление всех объектов перед созданием, чтобы небыло дубликатов.
      Действующий скрипт проверил на своем оборудовании – все заработало (даже без ребута).

  2. Здравствуйте
    Сделал все по Вашей статье, пинг между компьютерами есть, но сетевые папки и принтеры не видны. Брандмауэр и антивирус отключены. Что может быть?

    1. На микротиках создайте проходящее (forward) правило разрешающее взаимодействие сетей src/dst-address=192.168.0.0/16. Это даст уверенность в том что трафик не режется микротиком. igmp (ping) разрешен по умолчанию, отсюда проходимость пингов, но нет остального.
      Если компьютеры на Windows, то убедитесь что включен общий доступ на них (Центр управления сетями / Изменить доп. параметры общего доступа). Для тестирования попробуйте отключить Firewall на обоих компьютерах. Для тестирования работоспособоности общего доступа попробуйте подключиться к каждому узлу из той же сети. Ну и, естественно, обращайтесь к компьютерам по IP (Win+R \\192.168.2.125). Больше ничего быть не может.
      Так же добавлю что на микротике IPSec бывает (правда редко) славливает глюки. Если для вас усиленная защита канала не сильно принципиальна, то рекомендую вам перейти на PPTP вы получите: большую скорость тунеля и стабильность. Никаких ограничений по сравнению с L2TP/IPSec не будет.

      1. Здравствуйте
        Можно ли на пальцах пояснить про проходящее правило? А то пптп создал между двумя микротиками, пинги ходят на ура, компьютеры на Windows вроде бы даже видят принтеры/папки друг у друга. Но есть еще NAS synology, на него попасть из другой сети не могу:(
        Одна подсеть 192.168.11.0/24, вторая 192.168.77.0/24, обе с белыми айпишниками, но я так понимаю для второй это не принципиально.

      2. Если видите папки – значит все гуд. Смотрите Firewall на NAS там блокируется трафик.

      3. Здравствуйте, я извиняюсь что снова со своими ламерскими вопросами. Вобщем-то по PPTP у меня получилось что расшаренные папки и принтеры на компах из другой сети можно посмотреть только если обращаться к к ним по IP (например Win+R \\192.168.1.18). А возможно ли сделать так чтобы компы из другой сети были видны в сетевом окружении и были доступны например по именам \\Comp?
        С NAS пока не разобрался, видимо действительно почему то не пускает компы из сети филиала, из своей сети NAS доступен как через веб морду, так и просто через сетевое окружение, вобщем чешу репу.

      4. Все верно, широковещательные запросы не передаются через роутеры, поэтому клиенты двух сетей не “знают” кто есть в “соседней сети”. Единственный (правильный) вариант организовать доступ по имени – сделать IP нужных клиентов статичными (ip dhcp-server leases) и в DNS “дальнего” микротика укзать статические записи. Таким образом на микротик придет запрос DNS – “comp” и он благополучно разрешит как “192.168.1.18”. Будет аналог файла hosts только для всех клиентов Mikrotika.
        NAS скорее всего лочит запросы “не из сети”, стоит поискать соответствующую “галочку” или настройки Firewall – разрешить весь трафик 192.168.0.0/16 (192.168.0.0 mask 255.255.0.0).

  3. В данном случае тунель каким образом поднимается??
    Везде читал про L2TP + IpSec. Генерируемые скрипты вроде не генерят настройки L2Tp.

    Кроме того, у меня на обоих сторонах белые IP, какой способ предпочтителен для меня?? IPSEC или PPTP? Предположительная ширина канала 5-6 Мб/с.

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

      1. Но ваш конфигурационный скрипт не требует указаний wan для дополнительного офиса. Там сказано что второму офису не обязательно иметь белый адрес.
        Если есть примерчик глянул бы.

      2. В IPSec подключение устанавливается взаимное. Т.е. A -> B, B -> A. При PPTP только A -> B, при этом не важно какой IP у A (и наличие NAT не помеха). За PPTP сюда

  4. Спасибо Вам большое человеческое. Правда пинг ходит в сеть за микротики только если создать forward “src/dst-address=192.168.0.0/16”. Стоит оставлять это правило? или возможно есть другое решение? Еще раз спасибо.

    1. Вы все верно сделали, странно что в скрипте я упустил этот момент. Обновлю в ближайшее время. Спасибо за замечание.
      UPD: Скрипт обновил, добавил 2 правила src/dst для удаленной сети с каждой из сторон.

  5. Здравствуйте, вновь нужна Ваша помощь. Как подружить сервер мультимедиа на NAS Synology с одной стороны, и TV приставку по UPNP с другой? По вашей статье организовал IPsec VPN между микротиками. NAS виден из удаленной сети, а по UPNP не обнаруживается……

    1. Дело в том что для работы UPNP нужен broadcast (широковещательный запрос) UDP между сетями. В стандартной (“правильной”) конфигурации такие запросы не транслируются через VPN, т.к. эти запросы “засорят” канал, который как правило, имеет ограничения пропускной способности. Но если очень нужно то можно. У меня нет опыта в данной сфере, поэтому готового рецепта не дам. Думаю надо гуглить “BCP” или “EoIP”.

  6. Между mikrotik поднял туннель PPTP а сверху EoIP – и в итоге все в сети видит друг друга как через сетевое окружение так и через UPNP . Так что направление вы определили совершенно точно.

  7. Здравствуйте,а такой метод сработает для объединения двух локалок не подключенных к интернету -такой метод эффективен или нужно как-то по-другому делать?
    Спасибо!

    1. Подробнее объясните ситуацию. Если не через интернет, то каким образом физически имеют связь две сети?

  8. Здравствуйте! Подскажите, пожалуйста, нужно объединить АТС-ки в трёх офисах по SIP через интернет. В каждом офисе белый IP. По какой технологии предпочтительней построить VPN тунели? Спасибо.

    1. Если нужно за коммутировать SIP трафик, достаточно и PPTP. Далее выбор за вами – либо вы делаете звезду либо будете маршрутизировать через 1 из офисов (главный офис). По SIP могу добавить, что лучше отключить сервисный порт sip (/ip firewall service-port), сделав проброс портов (/ip firewall nat) вручную. Если объедините офисы и каналы надежные (хороший uptime), то можете избавиться от нескольких АТС и сделать одну централизованную.

  9. Здравствуйте. Скрипт у Вас просто замечательный. С большим количество филиалов избавляет от рутинной работы. Но есть один непонятный для меня камень преткновения. С микротиков споконой пингуются шлюзы VPN PPTP и машины/принтеры за ними. Причем с обоих сторон. А вот компы одной сети не видят друг друга. Трасеровка пропадает на удаленном pptp клиенте. Отключаешь IPsec, все работает. Подскажите, пожалуйста, где что посмотреть?

  10. Вроде бы разобрался. Нужно добавить маскарадинг: цепочка srcnat , Out. interface на сервере либо определенный pptp или, если их много, all ppp, а в разделе Action выбрать masquerade. В офисе 2 сделать тоже самое. Может поможет кому.

    1. Маскарадинг (он же NAT) в VPN каналах это крайняя мера, т.к. нет полноценного канала (например, будет проблема с SIP трафиком). Немного не понятно какой вид VPN вы испольуете: IPSec или PPTP. Если IPSec то политики IPSec имеют приоритет и обрабатываются в RouterOS “где-то очень глубоко внутри”. Попробуйте вместо маскарадинга в Action выбрать просто “accept”.

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

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

      2. Если скрипт выполнен полностью (все правила сформированные скриптом вверху) все должно работать полностью. Если ping проходит до роутеров, значит пиры (peers) работают. Далее два ключевых момента: 1. Политики IPSec (ip / ipsec / policy) где в dst и src-address должны быть прописаны сети с масками (например 192.168.5.0/24 и 192.168.7.0/24). 2. NAT accept (ip / firewall / nat) где должно быть прописано правило обработки трафика с action = accept.
        IPSec трафик обрабатывается в RouterOS “где-то очень глубоко” и не прозрачно. Попробуйте сформировать скрипт для своей сети снова и проверьте как отрабатывались каждые этапы. Возможно, один из этапов не отработан. Иногда, IPSec просто глючит в микротике – помогает ребут обоих точек.

  12. да я точно сделал по скрипту, базовая настройка роутеров без правил фильтрации вообще. Маршурты тоже только базовые. Этапы отрабатываються. Соединение есть, ключами обмениваются, пинг из одной сети на роутер другой есть, связь есть, но пингов с компа в комп нет. Есть только пинг из второй сети в первую на контролер АД, а также с компов второй сети я вижу шары на АД. значит тунель в принципе есть, но почему остальные компы не дружат друг с другом я не понимаю. Куда копать и какие логи мне нужно предоставить?

      1. виндовый не причем, внутри своих сетей компы есть и шары на них есть как по имени так и по ИП. Правило впн такого нет, вписал все равно пинги между компами других сетей не ходят.

      2. Виндовый firewall – это настраиваемая система, которая может не пускать из других подсетей часть страфика. Для теста рекомендую отключить полностью встроенный брандмауэр, причем с обоих сторон. Если ситуация не поменяется – включить и копать дальше.

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

    1. Ну если хочется сохранить Firewall включенным, то запускаете его останастку в “режиме повышенной безопасности”. Создаете правило:
      1. Тип: “Настраиваемые”;
      2. Программа: Все программы;
      3. Протоколы и порты: Все;
      4. Область: Локальные – Любой, Удаленные – 192.168.5.0/24 (подсеть удаленного офиса);
      5. Действие – Разрешить подключение;
      6. Профиль – Все;
      7. Имя – “VPN2LAN”;
      Это правило должно “отключить” firewall для трафика между подсетями. Для более тонкой настройки – создавайте кучу правил на все случаи жизни. Рекомендую все таки его отключить и обеспечивать защиту железом, которое для этого предназначено (Mikrotik).

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

  14. собственно как я понял скрипт пишется на лету и подставляются значения с определенных из интернета данных пользователя….
    но вот если что то не определилось то всплывают одинаковые строки

    1. Скрипт формируется на основании введенных вами данных в форму. Если вы ввели пустое значение, значит и скрипт сформируется с пустым значением.

  15. Доброго дня … с микротиком я в первой столкнулся… и в общем впечатление положительное, местами коенчно сооовсем не понятна логика интерфеса после DLink DFL860e … страный но все же приятный…
    Не понятно только как адекватно добавить допсети,
    т.е. на обоих сторонах у меня по несколько сетей в одном офисе 3 а в другом 2…
    как их адекватно описать в скрипте, не совсем понял 🙁 …
    есть ли там такое понятие как список(группаобъектов) сетей/адресов которыми бы можно было оперировать в правилах?

    P.S. Генератор скрипта IPSEC весьма удобный и наглядный – спс ооочень порадовало, но жаль только по одной сети с каждой стороны рисовать может только …

    1. Создайте скриптом базовый линк между сетями, а дополнительные подсети подключите дополнительными политиками (ip / ipsec / policies), добавив по аналогии. Так же проверьте NAT и Firewall правила для этих подсетей. У микротика с IPSec как-то не очень наглядно… “как-то сам работает”… Я сам давно на PPTP перешел и не парюсь с IPшниками ни с падающими тунелями чего и вам желаю.

  16. Добрый день.
    Такой вопрос. А сработает ли Ваш скрипт, если мне необходимо связать центральный офис и 3 филиала?

      1. Правильно ли я понимаю, что для создания скриптов для разных фелиалов, настройки центрального офиса остаются неизменными, меняются только настройки фелиалов?

      2. Нет. IPSec подразумевает настройку с 2х сторон, т.к. происходит взаимное подключение, т.е. центр подключается к офису, а офис к центру.

      3. Добрый день! Я правильно понимаю, что при звезде я просто формирую скрипт каждый раз для центрального микротика с подсетями и wan филиалов?

      4. Ну тут “центр” и “филиал” понятие условное, т.к. они полностью равноправны и ближе к схеме “все со всеми”. Например 3 офиса A,B,C:
        1. A – B;
        2. A – C;
        3. B – C;
        таким образом получите полносвязанную сеть. Если не делать 3 шаг. нужно политики прописать что в офисе B искать офис C нужно через A и в обратном направлении аналогично.

    1. Firewall / Filter, Firewall / Nat, IP / IPSec / Peer, IP / IPSec / Policies и IP / IPSec / Proposals, если используете разные методы шифрования. Другими словами 90% от скрипта.

  17. А 192.168.1.0 и 192.168.2.0 это виртуальные адреса к внутренней сети офисов отношения не имеют?

    1. Имеют. В скрипте это “рыба” – нужно заменить на ваши данные. Если не принципиален IPSec (мега защита туннеля), то предлагаю использовать PPTP, работает быстрее и значительно нагляднее и проще в понимании…

  18. Два офиса я соединил по L2TP, прописал Route, компы в удаленных офисах пингуются.
    Но в одном из офисов у нас на микротике несколько подсеток:
    http://c2n.me/3zpybjL
    и пинги в основную локалку 192.168.25.0/24 из центрального офиса не проходят((( Подскажите пожалуйста, как обойти этот косяк?

    1. IPSec на Микротиках работает не очень прозрачно/наглядно. Например не имеют значения ваши маршруты (Routes) прописанные вручную. Если трафик подходит под политику (IP / IPSec / Policies) он запихает его в соответствующий туннель. IPSec имеет приоритет над любыми маршрутами. По крайней мере так было когда я сам использовал IPSec в офисах. Думаю вам достаточно в офисах прописать (просто дублировать) Policy для каждой подсетки, чтобы микротик начал пихать пакеты этой сетки в туннель IPSec.

  19. /ip ipsec policy add dst-address=192.168.1.0/24 sa-dst-address=WAN1 sa-src-address=WAN2 src-address=192.168.2.0/24 tunnel=yes proposal=PROPOSAL
    WAN1 и WAN2 (сам туннель) уже есть, т.к. сеть работает. Нужно просто прописать сеть офиса и сеть центра. Например если в центре 2 сети 3.0/24 и 4.0/24 то в офисе уже есть 3.0/24 (вы ее скриптом завязали), добавив:
    /ip ipsec policy add dst-address=192.168.1.0/24 sa-dst-address=WAN1 sa-src-address=WAN2 src-address=192.168.4.0/24 tunnel=yes proposal=PROPOSAL
    получите новую политику до второй подсети в центральном офисе… В центрально офисе нужно в обратном направлении все сделать:
    /ip ipsec policy add dst-address=192.168.4.0/24 sa-dst-address=WAN2 sa-src-address=WAN1 src-address=192.168.1.0/24 tunnel=yes proposal=PROPOSAL
    Получается аналог маршрутов… только политиками делается…

    1. просит указать ваш профиль proposal, который вы используете. Список доступных: ip / ipsec / proposals.

  20. В одном из филиалов система такая Интернет ->Роутер -> Mikrotik-> Сеть.
    Так вот Микротик по IpSec с офисом соединяется. И с Микротика Офис пингуется. А из сети филиала нет. Подскажите что не так?

  21. Добрейшего дня, уважаемый гуру админ
    нужен совет детальный, нужно объединить 2 офиса в последующем 3
    что имеем связка

    инет-зиксель-микротик- (офис сеть х.х.1.0)
    микротик имеет внутр адрес х.х.1.3 внешн ип белый х.х.184
    инет йота- микротик-(складская зона х.х.0.1)
    микротик внутр зона х.х.0.3 внешн белый ип х.х.206

    тунель 192.168.5.1
    и 192.168.5.2

    разрешил переброс портов на микротик в офисе (не пингуется с внешки) х.х.184
    не стартуют пакеты
    в обоих снучаях провайдер йота

    1. Судя по всему у вас в офисе микротик находится за NAT, что не допустимо для IPSec. Ваше решение – PPTP (быстро, просто и не ресурсоемко) либо убрать зухель и поставить микротик “вперед”.

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

    1. Иногда микротик тупит и нужно его перезагрузить (лучше с 2х сторон). Но вообще за то что нужно впихнуть в тунель IPSec отвечают политики IPSec (ip ipsec policies). Возможно, не верно указали подсети.

    1. Если настроили все верно, то должно все работать. Если хотите подключить “по быстрому” лучше используйте PPTP, там все проще, нагляднее и нужна меньшая подготовка. Скрипт не панацея, а автоматизация админской рутины, которая делается редко, но нужно ничего не забыть.

  23. Хотел бы попросить помощи и сказать спасибо за такую работу ! Очень удобно. Сделал все по скрипту. Вижу только микротик в разных подсетях, а пк не пингуются.
    А вот если добавляю routes – с внутренней подсетью офиса, geteway Bridge-Local, все работает.
    Как я понимаю сам скрипт и IPSEC разработан для работы без добавления маршрутов в routes (т.е они уже заложены в настройках туннеля)
    В чем может быть дело ?

    1. Да, никаких маршрутов не нужно. IPSec тунели работают на основании политики IPSec / Policies. В src-address должно быть исходная (локальная) подсеть, например, 192.168.1.0/24, а в dst-address подсеть удаленного офиса, например, 192.168.2.0/24. Если нужно через центральный офис маршрутизировать несколько подсетей, то нужно из отдельными политиками добавить. Маршуртизация по IPSec в Microtik работает “где-то внутри” и не очень наглядно. Иногда нужно перезагрузить роутеры (с 2х сторон), чтобы все заработало.

  24. Доброго дня. Не могли бы проконсультировать?
    Есть два офиса. В первом на одном из серверов “крутится” 3СХ. Во втором офисе надо к 3СХ подключить IP-телефон. Если офисы соединить через L2TP (или PPTP), то все хорошо, телефон в 3CX регистрируется и работает. А вот если через L2TP+IPSEC, то регистрация не проходит. Можно ли это исправить и в какую сторону “копать” настройки.

    1. Сначала проверьте есть ли пинги с сервера 3CX до удаленного офиса. Если есть – то туннель настроен верно, если – нет нужно искать проблему в настройках. После того как пинги пойдут между сетями – в 3CX в настройках Extension уберите галочку “Не использовать внутренний номер за LAN” или что-то такое иначе в из другой подсети вообще не сможете зарегистрироваться. Так же проверьте нет ли маскарадинга между сетями и отключен ли sip alg на Mikrotikах (ip / firewall / service ports / sip – disabled).
      От себя добавлю – если вам кажется что 3CX очень простая и удобная вещь – вы ошибаетесь. Если нравится Windows – изучите Freeswitch (достаточно XML конфигурации). В противном случае с ростом телефонной сети, увеличением количества провайдеров – попортите себе карму проклятиями в сторону разработчиков 3CX. Я сам поставил “по быстрому” 3CX, потом пришлось рядом ставить Freeswitch и переносить все на него, т.к. VOIP провайдеры не будут подстраиваться под бредовые сценарии 3CX.

  25. Для стабильной работы что посоветуете PPTP или IPSEC? С одной стороны толщина канала равна 10 Мб/с при 20-ти сотрудников, а с другой 70 Мб/с (сервер терминалов) Разжуйте пожалуйста подробнее о плюсах и минусах

    1. Я использую PPTP по следующим причинам:
      1. Проще условия организации: можно NAT со стороны клиента, со стороны сервера можно даже динамический IP (с использованием скриптов). Это важно если офис маленький и вы хотите испольховать 3G/LTE свисток на стороне удаленного офиса.
      2. Возможно просто организовать резервный канал сервера: т.е. клиент в случае падения одного канала может изменить IP подключения к серверу на другой;
      3. Работает быстрее чем IPSec: нагружает меньше процессор роутера и соответственно больше пропускная способность канала;
      4. В микротике PPTP имеет более прозрачную реализацию, чем IPSec: у IPSec в RouterOS некоторые моменты зашиты в OS и не прозрачны для настройки, а иногда и понимания;
      5. PPTP более стабилен: использовал IPSec на 5.Х – 6.2 примерно, приходилось писать скрипты на ребут тунеля, т.к. по непонятным причинам туннель терялся.

      Для себя выделял плюсы IPSec более высокая (практически гарантированная) криптостойкость туннеля. PPTP тоже защищен, но менее фанатично. Поэтому, если вы не передаете по туннелю гос. тайну, то смело используйте PPTP – настроил и забыл.

      Как-то так.

  26. Добрый день! Настроил все работает прекрасно, но у меня немного хитрая настройка на микротах. На одном из компов стоят виртуальные машины и на них прилетает сеть через vlan. И только на них нет доступа из удаленного офиса. На все остальные компьютеры доступ есть. И до компьютера где стоят виртуальные машины есть пинги.
    set ether5 comment=LAN
    /interface vlan
    add interface=ether5 l2mtu=1594 name=vlan_lan vlan-id=100
    add interface=ether5 l2mtu=1594 name=vlan_wan vlan-id=200

  27. Добрый день!
    Связаны два офиса. Пинг, все всё видят.

    Но на одном из концов также были открыты порты нат-правилами.
    И теперь если со второй подсети идти на совершенно любой сервис в первой и порт этого сервиса из “заначеных” – то попадаешь именно туда, куда указывает нат-правило.

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

    ЗЫ: И более общий вопрос – а как называется эта тема в вордпрессе, в которой сайт выполнен?

    1. Добрый.
      1. Если в вашем dst-nat правиле указан “in. interface” (обычно это WAN), то правила не должны срабатывать для пакетов поступающие с других интерфейсов. Рекомендую так и поступить вам – это более правильно будет.
      2. Twenty Fourteen

      1. 1. Указан ether1 как In.Interface (если его не указать – то оно и вообще работать не будет, ИМХО)
        Chain=dstnat

        2. Спасибо, бу знать.

      2. 1. Работать будет.
        2. Этим мне и не нравится IPSec в микротике черт знает где-то внутри что-то делается и крайне не наглядно. Попробуйте в поле dst-address указать публичный IP с которого нужен NAT. Таким образом NAT должен срабатывать если в пакете будет ваш публичный IP как точка назначения. По логике – должно сработать. Если не поможет – создавайте списки сетей ip/firewall/address list с нужными подсетями (192.168.7.0/24, …) и указывайте эти списки как исключения NAT правила.

  28. Мне ещё предстоит париться с тем, чтобы эти наты срабатывали при обращении из внутренней сети по внешнему адресу.

    Про Hairpin читал – но пока не вчитывался.

    Исключение списком – да, может быть. Но на данный момент это не очень актуально, сетей немного.

  29. Спасибо огромное за скрипт!
    Просветите пожалуйста новичка. Это мы создаем транспортный или туннельный ipsec?
    Спасибо.

    1. Новичков, обычно, такие вопросы не интересуют. Новички обычно получают скрипт – заработало и хорошо. Потом разберемся “как”. Отвечая на ваш вопрос – туннельный.

  30. Добрый день, гуру админ!
    Статья шикарная, все просто.
    Вопрос немного не по статье.

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

    Позвольте спросить, по протоколу OpenVPN есть ли инструкция?
    т.к. он более защищен.

    1. Я не волшебник. Я только учусь.
      По OpenVPN нет мастера, т.к. сам им не пользовался.

      1. Спасибо за информацию.
        Если получится настроить OpenVPN, я дам вам знать 🙂

    1. Сложный вопрос “почему машина не едет”. Начиная с неверных настроек туннеля, заканчивая блокировкой брандмауэром Windows, т.к. пинг идет с другой подсети.

  31. Привет.
    Не подскажите, можно ли как-то при таком vpn сделать так, чтобы были видны mac-адреса компьютеров в другом офисе. Как при EoIP VPN (Тут понятней, что имею ввиду: https://voxlink.ru/kb/voip-devices-configuration/freepbx-autoprovision-through-internet/)
    Пробовал в настройках бриджей обоих офисов выставить Proxy-ARP – не помогло.

  32. Гуру выручай плиз.
    В общем задача вроде простая …. но в реализации как всегда трабл.
    Задача связать две удаленные локальные сети (ресурсы виндосети без AD, видимость, игры LAN)
    Ситуация следующая.
    Есть цепочка оборудования Mikrot1(home2)->ProviderNETWORK->Mikrot2->AF5X(bridge)->Mikrot3->TitaniumM2->NanostationM2->Mikrot4(home1)
    Так как AF5X(bridge)->Mikrot3->TitaniumM2->NanostationM2 есть просто среда передачи данных (там ничего не маршрутизируется) тупо L2 их из схемы выкидываем.
    Итого
    Mikrot1(home2)->ProviderNETWORK->Mikrot2->Mikrot4(home1)
    поднимаю EoIP c Mikrot1(home2)->ProviderNETWORK->Mikrot2 так как сессию PPPoE к прову поднимает Mikrot2 с моей стороны и Mikrot1(home2) со стороны товарища.
    Далее подняв EoIP на Mikrot2 кладу туннель в бридж с VLAN120 и поднимаю VLAN120 на Mikrot4(home1) и выпиливаю тем самым из схемы Mikrot2 так как между Mikrot1(home2)->Mikrot4(home1) опять же L2.
    Итого 2:
    Mikrot1(home2)->EoIP-EoIP->bridge->vlan120->vlan120->Mikrot4(home1)
    Вешаю DHCP client на vlan120 со стороны Mikrot4(home1) и вуаля мне DHCP сервер Mikrot1(home2) выдает локальные адреса (192.168.88.244).
    То есть если я правильно понимаю то привелось все к такому виду
    Mikrot1(home2)192.168.88.1->Mikrot4(home1)192.168.88.244
    Фух… простите за такое вступление просто 3 дня голову ломаю…
    Mikrot1(home2) и Mikrot4(home1) хомячкам инеты раздает, Mikrot1(home2) из таблицы main по Default rout, а вот Mikrot4(home1) по своим настроенным табличкам, по сему рисуя роуты до подсетей (Локальных) на Mikrot4(home1) просто добавил еще 1 rout до 192.168.88.0/24 с отправкой в табличку где сидит нужный комп(думаю можно VRFом промаркировать сразу так как IP динамический или сделать статическим запись в DHCP server Mikrot1(home2))
    Итог всех этих “многабукаф”:
    Не вижу из своей локали удаленную, и из удаленной свою 🙁

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

  33. Доброго времени суток!
    Подскажите пожалуйста как можно объединить 3 офиса между собой (gre/IPSEC , или PPTP), что бы было полная связь между ними. Покамись получилось настроить что Filial 1 и Filial2 общались через HQ. Н-р: HQ(VPN)Filial1, HQ(VPN)Filial2, Filial1(VPN)Filial2. Если например HQ падает что бы связь между Filial1 и Filial2 оставалась. Если HQ поднимается что бы не было кольца. (на подобии DMVPN). Воощем FULL MESH не могу сделать… Заранее извиняюсь если вопрос Задал не корректно.

    1. Нужно делать звезду, т.е. каждый узел будет “центральным” (равноправным). Чтобы реализовать такое вам нужно чтобы все ваши узлы имели хоть и динамический но публичный IP без NAT. Далее так:
      1. Я, обычно, делаю коннекты сначала с центральным офисом.
      2. Беру Filial1 как “центральный” и подключаю к нему Filial2…FilialN, без настоящего центрального п.1.
      3. Беру Fiflia2 как “центральный” и подключаю к нему Filial3…FilialN… Filial1 и Filial2 уже подключен в шаге 2. Нет смысла делать 2 линка Filial1 <> Filial2 и Filial2 <> Filial1, т.к. если между ними (на каком-то узлов) пропала связь, то хоть 33 линка делай – связь не появится (я не говорю про резервные каналы).

      Таким образом “все” будут соединены со “всеми”… Важно маршруты (ip routes rules, если пользуетесь моим скриптом) описывали только удаленную есть, а не пытались оправить весь трафик “локальных сетей”, как вы уже сделали (Filial1 -> HQ -> Filial2). Например HQ у вас 192.168.0.0/24, Filial1 192.168.1.0/24, Filial2 – 192.168.2.0/24. Тогда:
      1. маршрут HQ:
      /ip route rule add action=lookup disabled=no dst-address=192.168.1.0/24 table=vpn_192_168_1_0
      /ip route rule add action=lookup disabled=no dst-address=192.168.2.0/24 table=vpn_192_168_2_0

      2. маршрут Filial1:
      /ip route rule add action=lookup disabled=no dst-address=192.168.0.0/24 table=vpn_192_168_0_0
      /ip route rule add action=lookup disabled=no dst-address=192.168.2.0/24 table=vpn_192_168_2_0

      3. маршрут Filial2:
      /ip route rule add action=lookup disabled=no dst-address=192.168.0.0/24 table=vpn_192_168_0_0
      /ip route rule add action=lookup disabled=no dst-address=192.168.1.0/24 table=vpn_192_168_1_0

      у вас сейчас:
      1. маршрут HQ:
      /ip route rule add action=lookup disabled=no dst-address=192.168.1.0/24 table=vpn_192_168_1_0
      /ip route rule add action=lookup disabled=no dst-address=192.168.2.0/24 table=vpn_192_168_2_0

      2. маршрут Filial1:
      /ip route rule add action=lookup disabled=no dst-address=192.168.0.0/16 table=vpn_192_168_0_0
      3. маршрут Filial2:
      /ip route rule add action=lookup disabled=no dst-address=192.168.0.0/16 table=vpn_192_168_0_0

      1. Спасибо большое! Попробую так сделать. Как сделаю отпишусь. И еще раз спасибо за ваше уделенное время!

  34. Здравствуйте! Спасибо за ваш скрипт.
    В качестве одной из точек использую RB951Ui-2HnD c модемом Yota. Модем Yota в режиме Hilink, то есть внешний статический ip на самом модеме Yota. Mikrotik видит адрес 10.0.0.10 (на интерфейс lte1 его выдает модем). Здесь проблему решают: http://sysadmins.ru/topic478893.html, но не совсем понятно как. Может вы дадите совет что именно прописать на точке с Yota?

    1. У меня нет ёты с публичным IP поэтому не могу дать готовый рецепт. Предлагаю решение другое:
      1. Перепрошить/взять любой 4G модем с Stick прошивкой и получите IP на интерфейсе микротика. Сейчас микротик поддерживает кучу модемов.
      2. Использовать PPTP/L2TP вместо IPSec. Бонус – не нужен публичный IP в удаленном офисе, легко преодолевает NAT провайдера. Отсутствие привязки к оператору (не все дают публичный IP) и возможность использовать тарифы физиков.

  35. Здравствуйте, использовал ваш скрипт, все быстро и без проблем заработало. Есть такой вопрос: Две подсети соединены по ipsec вашим скриптом 172.19.22.0 и 172.19.15.0 шлюзы соответственно 172.19.22.9 и 172.19.15.99 в подсети 172.19.15.0 имеется еще один шлюз (провайдера без возможности настройки) 172.19.15.1 через который есть выход в сеть 10.86.11.0. Как надо настроить Mikrotik-и что бы иметь доступ к этой подсети из сети 172.19.22.0?

    1. За “упаковку” IPSec трафика отвечает /ip policy, соответственно в сети 22 добавьте аналогичную сформированной скриптом но в dst-address укажите 10.86.11.0/24. По идее пакет должен прилететь на ваш 15ый микротик, а если с него есть доступ к 10.86.11.0/24 то он пакет отправит туда. Возможно так же проканает вариант с маршрутом в 22ом /ip route add dss-address=10.86.11.0/24 gateway=172.19.15.1. По идее пакет должен долететь до шлюза провайдера 172.19.15.1.
      Вторая часть задачи как пакет будет возвращаться не понятна, т.к. не ясна топология сети. Вероятность что ваш провайдер завернет трафик из сети 10.86.11.0/24 на ваш шлюз 172.19.15.1, в 99.99(9)%, равна нулю.
      Если я правильно вас понял то как-то так. Я решение на вскидку привел, как бы сам искал решение. Поэтому, гарантии работоспособности нет.

      1. Спасибо за ответ! второй вариант не работает. По первому варианту просто прописать add dst-address=10.86.11.0/24 proposal=1.2.3.4 sa-dst-address= \1.2.3.4 sa-src-address=4.3.2.1 src-address=172.19.22.0/24 \tunnel=yes ? на Firewall нужны правила? Сейчас из 15 сети компьютеры работают с сервисом через добавленный статический маршрут. так же на одном из компьютеров стоит веб прокси и через него работает 22 сеть. Я так понимаю что на 15 микротике надо тоже прописать статический маршрут до сети 10.86.11.0. через 15.1?

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

  36. Скрипт удобный, но не хватает еще узлов. У меня стоит задача объединить все офисы по топологии все со всеми. 12 удаленных офисов. Сможете сделать изменения?

    1. В принципе это возможно, но пока некогда. Тут еще схемы разные “все со всеми” или “через центр”.

      1. Когда нужно через центр, можно воспользоваться текущим конфигуратором, а вот когда топология все со всеми вот там заморочишься, особенно когда по две-три внутренних сети…

    2. OpenVPN решит вашу проблему. Нужен один OpenVPN Server (1 офис), все остальные (11 офисов) будут клиентами.

  37. Здравствуйте. Подскажите. Когда настраиваю VPN по PPTP, соединяюсь удаленным ВИН8 к микротику, пинг идет только по IP, а по именам не получается. Но через время, причем не определенное, пинг пропадает, хотя в статусе соединение “подключено”. Помогает только переподключение.
    Спасибо.

    1. 1. Это норма. Шроковещательные запросы не делаются в тунели. Чтобы обращаться по имени можно добавить их как статические DNS записи вручную или скриптом.
      2. Трудно сказать почему. Возможно у вас не стабильный канал связи. Смотрите логи микротика. Вообще для решения всех подобных проблем я сделал приложение в виде сервиса Windows. Посмотрите соседнюю страничку про автоподключеие VPN.

      1. Здравствуйте. Подскажите. Есть две сети, настроил L2TP между двумя микротиками. Пинги по IP есть в обе стороны. В первой сети есть контроллер домена, во второй нет. Как ПК из второй сети подключить к домену? На микротике во второй сети в DNS Static указал имя контроллера и его адрес, пинги по имени есть, но при попытке подключения ПК к домену появляется ошибка. Как быть?

      2. Проверьте Windows firewall на контроллере и наличия разрешающего правила (froward) в микротиках, т.к. ping может быть разрешен, а остальное – нет.

  38. Все получилось без перезагрузки, спасибо!
    Вопрос, а что бы присоединить еще один офис к основному Микротику, просто еще раз формирую данную форму?

      1. Такая проблема.
        С основного офиса пингую компьютеры с винды они видны. Но вот с роутера пинги на другой роутер не видно пишет timeout. И так же со второго офиса не получается пинговать с роутера и с машины под виндовс. Чего то не хватает?

  39. Доброго дня! Спасибо за скрипт – благодаря ему (ну и Вам))) ) нашел ошибку в настройках предыдущего “настройщика”. Единственный момент у меня весь траффик – и локальный и интернет со второго офиса гуляет через VPN и через шлюз первого. Ни как не могу понять – как объяснить микротику, что траффик из 192.168.11.0/24 в 192.168.10.0/24 нужно гнать по VPN, а ВЕСЬ остальной напрямую в шлюз провайдера? Не сможете подсказать, куда копать?

    1. Схема простая:
      1. Филиал (с сетью 192.168.11.0/24) подключается к центру (с сетью 192.168.10.0/24);
      2. Центр выделяет для этого подключения (туннеля) IP, например, 192.168.10.47;
      3. В филиале создается маршрут (ip routes в общем случае) который говорит, что весь трафик, который предназначен для 192.168.10.0/24 на шлюз 192.168.10.47.
      В моем скрипте 3ий шаг немного по другому сделан – через ip route rules. Это нужно для того чтобы без firewall можно было писать маршруты для нужного клиента. Например, у вас в филиале две сети: 192.168.11.0/24 – рабочая, а 10.1.0.0/24 – гостевой WiFi, то если вы пропишите просто ip route то трафик из гостевой сети полетит в центральный офис. Чтобы этого избежать придется применить firewall. А в случае с rules вы пишете: src=192.168.11.0/24 dest=192.168.10/24 gateway=192.168.10.47 и все… можно вообще для конкретного IP маршрут прописать…

    2. Пардон. Не увидел что вы по IPSec пишете. Тут все регулируется политиками ip ipsec policy (которые имеют приоритет над маршрутами).

  40. Здравствуйте. Раньше юзал между двумя микротиками pptp и все отлично работало, оба микротика в одном провайдере с белыми ip. Внезапно pptp перестал работать, то есть вообще, как можно проверить на каком месте происходит затык?

    Попробовал настроить по вашему скрипту ipsec, поднимается на ура, но вот проблема что из локалки1 в локалку2 все пингуется и шары прекрасно открываются в виндах. а вот из локалки2 пингуется все хорошо, но винды при попытке открыть например \\192.168.1.5 ругается что “указанное сетевое имя более не доступно”?:(

    1. Скорее всего на 192.168.1.5 включен Firewall или антивирус блокирует. Единственное что может помешать PPTP это блокировка (непрохождение) GRE трафика со стороны провайдера. Это хорошо видно в логах центрального офиса: “TCP connection estabilished from 193.193.47.47” и таких записей куча. Т.е. сессия начинает подниматься (связь есть), но инициировать ее до конца не получается. Чтобы проверить это:
      1. Включите ip / firewall / service-port / pptp (чтобы сам микротик пропускал pptp);
      2. Найдите любой VPN сервис (обычно для анонимайзинга) использующий PPTP и попробуйте к нему подключиться при помощи встроенного Windows клиента;
      3. Если не получится подключиться – попробуйте раздать со смартфона интернет и повторите попытку. Если подключиться удалось через мобильную сеть – обращайтесь с проблемой к провайдеру.
      4. Если заработало – проверяйте настройки Микротика. Можно тестировать подключение к тому же VPN сервису (п.2), но уже с микротика;

      Еще проверьте состояние правил маршрутизации и маршруты. Очень редко, но микротик бывает отключает (disabled) туннельные правила.
      Так же проверьте как разрешается имя сервера подключения, если используете DNS имя вместо IP. Возможно, у вас IP сменился.

      1. Я решил всетки доделать с ipsec. Но вот какая петрушка получается, пинги между 192.168.1.0 и 192.168.2.0 ходят отлично, устройства типа ip камер из 192.168.2.0 подхватываются в 192.168.1.0 без проблем. Из 192.168.1.0 возможно открыть любые расшареные ресурсы в 192.168.2.0.
        Но если с любого компуктера на windows из 192.168.2.0 попытаться открыть ресурс в 192.168.1.0 то недоступен ресурс, через win+r если например задать \\192.168.1.2 то сразу выскакивает “указанное сетевое имя более недоступно”, ну и еще прикол, что если в браузере набрать любой ip из 192.168.1.0, то браузер перейдет на веб-сервак, который в общем то проброшен смотреть в интернет с микротика в 192.168.1.0. Чешу репу, может ткнете носом меня, что делаю не так?

      2. IPSec более ресурсоемок, если, конечно, у вас железки не с аппаратным ускорением шифрования. Я от IPSec ушел, т.к. гостайну не передаю, а PPTP быстрее, стабильнее и менее капризнее. У вас в правиле проброса (NAT) на микротике 1.0 не указан входящий интерфейс (in interface). Укажите там свой WAN интерфейс, для которого делаете проброс и будет вам счастье.

  41. Спасибо за инструмент.

    Сделал, однако пингуются только внутренние адреса самих шлюзов. Машины в сети не пингуются. ЧоКчему 🙁 не пойму… Маршруты? Файрволл?

    Не встречались с такой проблемой? Может подскажете???

    1. Проверьте маски в IPSec / Policy, проверьте есть ли разрешающее правило forward из соотвествующих подсетей, проверьте включен ли arp-proxy в bridgах.

  42. добрый день!как быть если надо настроить VPN таким образом: есть 1 главный офис и 6 вторичных, надо настроить впн между каждым вторичным и главным?

  43. Доброго дня!
    Есть два Микротика (v.6.40.4 и 6.42) между ними тоннель IPsec, внешние адреса белые, все правила файерволла прописал как у вас.
    Проблема в том, что после перезагрузки одного из микротиков отваливается IPsec и не может соединиться снова (phase1 negotiation failed due to time up). Решаю эту проблему “танцами с бубном”: выставляю в IPsec peer – Local Address локальный адрес роутера и потом снова убираю, и вуаля – тоннель поднимается. Но это работает не всегда, иногда приходится несколько раз проводить эту процедуру.
    Не сталкивались с таким? В чем может крыться проблема?

    1. Я давно использовал IPSec в тунельном режиме. Да, тунели IPSec это была единственная причина необходимости периодического ребута микротика. Возможно стоит поискать Keep Alive timeout для туннеля. В вашей ситуации похоже на то что один из концов перезагрузился, а другой “думает” что туннель живой и не дает поднять еще один параллельно (что верно).

      1. Не нашел в настройках Keep Alive timeout. Есть DPD interval и Lifetime в пропорсалс….
        В моем случае микротик наоборот перезагружать не стоит, т.к. после этого нужны пляски с бубном чтобы поднять его… Поэтому когда нет реконекта, то все работает хорошо. Как только какой то роутер перезагрузился, то надо ручками выставлять и убирать в IPsec peer – Local Address (локальный адрес).

      2. Предлагаю вам на микротике сделать netwatch и в случае down проверить пингом еще раз (что действительно коннект пропал) и выполнить нужный скрипт для сброса туннеля. Если проблема со стороны DLINKа – тут медицина бессильна. Я пробовал настраивать IPSec с Cisco RV042 – стабильно не работает, поэтому я перешел на микротики полностью.

  44. Приветствую!
    Спасибо большое за скрипт, пользовался долгое время очень помогает когда нужно быстро настроить роутер.

    Но с последними обновлениями прошивки поправь пожалуйста скрип.
    в настройках peers нужно только удаленный адрес и ключ
    остальное в peer profiles

  45. Привет! Спасибо за все, но у меня почему-то пинги идут только в одну сторону. Что на это может повлиять?

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

  46. Добрый день. Может пожскажете. Две подсети – между ними туннель. Нужно перенести сервер услувно из 192.168.0.0/24 на 192.168.1.0/24 условно, не меняю подсеть и IP старой сети, ну или меняя, но что был доступ по старому, алиасы не помогли. Спасибо

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

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

  47. Здравствуйте.

    Подскажите. Выполнил ваши настройки, туннель поднялся успешно. Но пинги ходят только до клиента, обратно никак, второй проблемой является что ходят только пинги, остальное в локальной сети из устройств не доступно. Однако должен сказать, что клиентом выступает Microtik RB951Ui-2nD интернет через usb yota – я грешу на то что у yota не белый ip. Скажите, у меня получится запустить на Yota ipsec либо эта технологии базируется только на ip – ip когда они внешние?
    Спасибо.

  48. ПРиветствую, я поднять ipsec тунель для 2 подсетей из разных офисов. Пинги идут, все отлично, но я и з подсети 1.0 не могу через винбокс зайти в админку микрота сети 2.0. Где-то нужно активировать опцию? или что-то еще?

    1. 1. Проверьте настроен ли доступ в цепочке input в правилах ip / firewall / filters
      2. Проверьте есть ли доступ для второй сети для сервиса Winbox ip / services (avaliable from)

Добавить комментарий для Рустем Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.