IPsec VPN между Zyxel и Mikrotik

Сегодня на примере Zyxel USG20 и какого-то микротика попробуем настроить IPsec VPN между Mikrotik и Zyxel соответственно.

В нашем примере у Zyxel внутренняя подсеть будет 172.16.240.0/24, внешний адрес: 98.213.46.5
Микротик — внутренняя подсеть: 172.16.220.0/24, внешний адрес 145.16.220.86. Все адреса вымышленные совпадение с реальностью — случайно.

mikrotik zyxel usg ipsec

zyxel

Начнём с usg. Эта девайсина настраивается через веб браузер.

Предполагается что Вы уже настроили USG, и он успешно раздаёт интернет сотрудникам. В статье описывается только IPsec.

Первым делом нам надо будет добавить адреса.
Переходим ObjectAddress, кликаем Add.
zyxel usg object address

Для микротика заполняем имя (name) у меня это ipsec-one, выбираем тип – host, вписываем адрес 145.16.220.86.
Картинка для другого адреса, но суть думаю всем будет понятна.

zyxel usg add address rule

После того как добавили внешний адрес, надо добавить адрес внутренней подсети. Для подсети за миротиком заполняем так же имя (у меня это  vpn-end-net), тип – subnet, адрес 172.16.220.0 маска 255.255.255.0

zyxel usg add address rule

Выглядеть список после этого будет примерно так:

Дальше настраиваем фаервол. ConfigurationFirewallAdd.

zyxel usg firewall

В появившемся окне выбираем to: ZyWALL, вписываем описание, в поле source выбираем адрес который добавляли для микротика на предыдущем этапе,

zyxel usg firewal create new rule

Так же неплохо заполнить поле Description, что бы Вы потом вспомнили для чего это правило вообще создавалось.

Следующий этап создание vpn. ConfigurationVPN – IPSec VPN вкладка VPN Gateway:

zyxel usg ipsec

Включаем Show Advanced Settings заполняем имя, вписываем руками IP микротика 145.16.220.86, выбираем интерфейс для интернета. Для упрощения инструкции  мы будем использовать Pre-Shared Key, но я рекомендую использовать сертификаты.

zyxel usg vpn gateway

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

zyxel usg vpn gateway

Снимаем галочку NAT, выбираем Encryption— AES128, Key Group – DH2, сохраняем — ok
Затем переходим на вкладку VPN Connection жмём Add.

zyxel ipsec vpn connection

Заполняем имя, выбираем созданный на предыдущем шаге Gateway. Local policy – выбираем локальную подсеть zyxel, Remote policy – локальную подсеть микротика.

Show Advanced Settings. Encryption – AES128, Auth – SHA1, PFS – none.

Cохраняем. Переходим к миротику.

mikrotik firewall

Начнём с фаервола. IP – Firewall – address-list. Для того что бы не создавать правило под каждый зиксель или любое другое устройство которое мы потом будем подключать к миротикку будем использовать address-list итак, жмём add (+)

mikrotik address list

Name – имя списка, Address – внешний ip зикселя. Переходим на вкладку Filter Rules и создаем правило (+).
На вкладке generalchain — input

mirktotirk filter rule

На вкладке Advanced в Src. Address List выбираем наш список

mikrotik filter rule address list

На вкладке Action ставим accept

Ставим правило ВЫШЕ всех запрещающих.

Если нам потом потребуется подключить ещё какие-то устройство, правило создавать уже не надо будет, надо будет только добавить адрес в address list.
Дальше так же в Address-list добавляем ещё один список — anti-nat, поскольку с zyxel ipsec будет работать в тунельном режиме, надо исключить пакеты предназначающиеся в сеть зикселя из маскарада.

Переходим на вкладку NAT и в правилах где есть srcnat на вкладке Аdvanced добавляем наш список с галочкой в dst.

В данном случае рассматривается дефолтная настройка микротика, где в NAT будет всего одно правило.

Галочка в правилах означает отрицание. Т.е. правило будет срабатывать для всех адресов назначения КРОМЕ тех что мы добавили в список anti-nat.

Если будем добавлять ещё устройство, то правила уже менять не надо, только подсети в список anti-nat добавляем.

mikrotik IPsec

Переходим в раздел IPIPsec
Начнём с вкладки Proposals, как водится (+) имя — zyxel, Auth – sha1, Encr – aes128cbc, PFS – none. Т.е. заполняем так же как заполняли раздел VPN Connection на зикселе.

mikrotol ipsec proposal

Переходим к вкладке Peers и снова (+).
Address – внешний адрес зикселя, Auth Method – pre shared key, Secret – тот же что вводили на зикселе, снимаем галочку NAT, Hash – sha1, Encr – aes128, DH – modp1024.

mikrptik ipsec peer

Пару слов про DPD, в поле DPD Interval указывается значение в секундах между попытками. Maximum Failures — указывается количество неудачных попыток. Т.е. если значения выставлены как на скриншоте, то при недоступности туннеля в течении 15 секунд, микротик попытается установить подключение повторно. Дефолтное значение — 10 минут, очень долго.

Собственно тут тоже всё, переходим в раздел Policies.

Снова (+). На вкладке GeneralSrc. Addr – подсеть локальная микротика – 172.16.220.0/24
Dst. Addr – подсеть локальная зикселя – 172.16.240.0/24
mikrotik ipsec policy

Переходим на вкладку Action. Ставим галочку Tunnel, заполняем SA src – внешний IP миротика, SA dst – внешний IP zyxel, Proposal – выбираем тот что создавали ранее.

mikrotik ipsec policy

Всё, можно проверять работу.
Как и прежде если остались какие-либо вопросы — пишите в комментариях, по возможности буду отвечать.

  • Евгений Протасов

    Инструкция не полная(туннель установится, но подсети за ним не будут видеть друг друга).
    Необходимо прописать маршруты :
    на Mikrotik:
    IP-Route Dst.Address :удаленная подсеть(zyxel)
    Gateway: Lan mikrotik

    на Zyxel:

    Policy route: Source локальная подсеть(zyxel)
    Destination удаленная подсеть(mikrotik)
    N-H VPN-tunnel

    Разрешить в Frewall прохождение пакетов из локальной подсети в удаленную.

    Галочки NAT- traversal обеспечать подключение через провайдерский NAT (если он у него включен).

  • Sergey

    NAT traversal нужно ставить на обоих роутерах. Если не ставить ipsec поднимется, но сети друг друга не увидят.

    • http://vk.com/id3942838 Алексей Варич

      nat надо ставить, только если у вас провайдер не белый ip выдает, а корявый белый из-за ната.

  • http://vk.com/id16408164 Серега Калашников

    Делал строго по инструкции, соединение есть, пинги не ходят

    • http://trustore.ru Алексей

      откуда пинговали, с микротика?

      • Владимир Ястребов

        аналогичная ситуация: пинги не идут в обе стороны.
        Реально настроены ВПН с разными zywall’ми — все работает. С микротиком — нет(((

        • http://trustore.ru Алексей

          если туннель поднялся (established на микротике) то смотреть надо только в сторону фаервола.
          либо фильтры, либо нат.

          • Владимир Ястребов

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

          • http://trustore.ru Алексей

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

  • Алексей

    Добрый день!
    Настроено примерно так же все. Все работает, но раз в неделю теряет связь.
    Делаю inactive — active и тоннель поднимается снова. В чем может быть проблема?
    Zywall usg 100+

    • http://trustore.ru Алексей

      вообще зиксель очень хорошо себя показал в работе, в плане стабильности, попробуйте прошивку обновить и поиграйтесь с DPD на микротике эта штука как раз мониторит состояние туннеля
      на зикселе тоже есть аналогичная настройка, на скринах не показал — жаль, где то в самом низу вроде в vpn connection

  • Николай Боганик

    Здравствуйте!
    Спасибо за статью, всё настроил по инструкции и всё отлично работает.
    Но возникла проблема. необходимо что-бы из сети микротика, при обращении к внешнему IP адресу трафик шёл в интернет через сеть Зухеля. Пытался сделать через маркировку трафика, как рекомендуется например тут (https://blog.rpsl.info/2019/03/mikrotik-use-vpn/), но туннель ВПН не виден в интерфейсах и добавить его туда у меня не получилось. Что можно предпринять?

    • http://trustore.ru Алексей

      никакая маркировка с IPSec не поможет, лучше l2tp сервер на зикселе, и l2tp клиент на микротике.

  • Андрей Канарейкин

    Настраивал по инструкции мелкий Микрот и Zyxel ATP100. Все супер спасибо большое!!!

  • Николай Боганик

    Возможно ли таким образом объединить две локальные подсети, находящиеся за zyxel с одной за микротиком?

    • http://vk.com/id3942838 Алексей Варич

      в теории да, проблем не должно быть, gw один, две политики.
      но на практике лучше заменить зиксель на микротик и ipip туннель с шифрованием поднять и нормальной маршрутизацией.

      • Николай Боганик

        Да, получилось с двумя политиками, спасибо.

Комментарии для сайта Cackle