MikroTik : Чистый IPsec IKEv2 между белым и серым IP

gost-main-ipsec-start Роутеры
Здравствуйте, уважаемые читатели!
 
В этой статье я затрону достаточно не простую тему создания шифрованного канала связи на базе набора протоколов IPsec.
 
В свое время я настроил достаточно удобную связку из OpenVPN и EoIP для организации единой локальной сети на нескольких удаленных точках.
Вот эти статьи:

Все вроде бы здорово, за исключением низкой скорости передачи по такому типу туннеля — Send – 31 Mbps / Receive – 31 Mbps. В RouterOS, OpenVPN работает достаточно медленно и использует только одно ядро на многоядерных системах. И это по моему основная проблема. Т.к. то же ограничение на работу в TCP не сильно сказывается на производительности системы в целом, даже с учетом EoIP туннеля.
В общем эта несправедливость сподвигла меня на поиск более лучшего решения с сохранением или улучшением шифрования.
Оба моих роутера по информации производителя поддерживают аппаратное шифрование: IPsec#Hardware_acceleration, но не для OpenVPN, а для IPsec.
Это модели: RB750Gr3(hEX) и RB760iGS(hEX S)
Так почему бы не использовать эту особенность себе во благо?

Если Вы хотите изучить MikroTik, то это можно реализовать с помощью специального онлайн-курса "Настройка оборудования MikroTik". В курсе изучаются все темы из официальной программы MTCNA, а автором курса является официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто даже не держал его в руках. В состав курса входят 162 видеоурока, 45 лабораторных работ и вопросы для самопроверки с конспектом. Кстати я получал сертификат MTCNA именно тут!

Забегая немного вперед скажу, что прогоняя трафик через роутеры(forward), с помощью iperf3, мне удалось получить 83-85 Mbps при наименьшем канале в 100 Mbps.
Интересно? Тогда Добро пожаловать!!!

Настройка IPsec IKEv2 туннеля

Как известно сообществу специалистов по RouterOS, компания MikroTik существенно перекроила IPsec и начиная с прошивки 6.44 принцип настройки изменился.
Будьте внимательны. Большинство мануалов в интернете написаны для предыдущего типа конфигурирования!!!
Я придерживаюсь использования Long-term прошивок и данная статья написана с использованием прошивки 6.45.8
IPsec характерен тем, что умеет работать через NAT провайдера(NAT-T), имеет отличное шифрование, да и в целом более защищен. Но есть одна проблема…
Кол-во настроек в IPsec отбивают всякое желание, что либо на нем делать. Потому, далеко не многие дошли до корректной настройки при которой все бы работало согласно их ожиданиям или даже не начинали пробовать разбираться.

Данная статья позиционируется, как «Вводная», поэтому я применил стандартный Example от MikroTik для того, чтобы показать, как это можно настроить.
IPsec#Road_Warrior_setup_using_IKEv2_with_RSA_authentication

IPsec IKEv2 использует сертификаты для взаимодействия(RSA), вместо простой аутентификации.
Поэтому перед настройкой создадим сертификаты. К сертификатам предъявляется ряд требований:

  • Поле «Common name» должно содержать IP или DNS адрес публичного IP серверной стороны
  • Поле «SAN» (subject alternative name) должно содержать IP или DNS адрес публичного IP серверной стороны
  • Требуются «EKU» (extended key usage) для сертификатов. Серверный tls-server, клиентский tls-client
Убедитесь, что дата и время на роутерах настроена корректно. Например включите NTP синхронизацию.
Т.к. механизм работы SSL сильно зависит от точного времени.

Настройка RB760iGS(hEX S) — IPsec Server

Для примера я возьму публичный IP адрес 2.2.2.2

Создаем основной сертификат, сертификат сервера и сразу сертификат клиента.

Winbox создание сертификатов для IPsec IKEv2
gost-ipsec-certificate-1
Создаем основной CA сертификат
gost-ipsec-certificate-2
Выбираем для CA сертификата tls-client и tls-server
gost-ipsec-certificate-3
Подписываем CA сертификат
gost-ipsec-certificate-4
Создаем сертификат сервера
gost-ipsec-certificate-5
Выбираем для сертификата сервера опцию tls-server и снимаем все остальные опции
gost-ipsec-certificate-6
Подписываем сертификат сервера
gost-ipsec-certificate-7
Добавляем сертификат клиента
gost-ipsec-certificate-8
Оставляем только tls-client
gost-ipsec-certificate-9
Подписываем клиентский сертификат
/certificate
add common-name=ipsec-ca name=ipsec-ca
/certificate
sign ipsec-ca ca-crl-host=2.2.2.2
/certificate
add common-name=2.2.2.2 subject-alt-name=IP:2.2.2.2 key-usage=tls-server name=ipsec-server
/certificate
sign ipsec-server ca=ipsec-ca
/certificate
add common-name=rw-client1 name=rw-client1 key-usage=tls-client
/certificate
sign rw-client1 ca=ipsec-ca
Winbox добавление Profile и Proposal
gost-ipsec-server-1
Добавляем Profile
gost-ipsec-server-2
Добавляем Proposals
Добавляем Profile для Phase_1(для IKEv2 это IKE_SA_INIT) и Proposal для Phase_2(для IKEv2 это IKE_AUTH)

/ip ipsec profile
add name=ike2
/ip ipsec proposal
add name=ike2 pfs-group=none
Winbox добавление IP Pool и IPsec Mode Config
gost-ipsec-server-3
Создаем пул IP адресов для IPsec
gost-ipsec-server-4
Создаем конфигурацию для передачи клиентам IPsec
Создадим IP пул адресов для IPsec. И используем Mode Config для раздачи IP адресов из пула.

/ip pool
add name=ipsec-pool ranges=172.20.0.2-172.20.0.254
/ip ipsec mode-config
add address-pool=ipsec-pool address-prefix-length=32 name=ike2-conf split-include=172.20.0.1 system-dns=no
Winbox добавление Group и Policies
gost-ipsec-server-5
Добавляем отдельную группу
gost-ipsec-server-6
Настраиваем шаблон политик
gost-ipsec-server-7
Добавляем шаблон политик
Создаем отдельную группу Group и шаблон политик Policies для нашей конфигурации.

/ip ipsec policy group
add name=ike2-policies
/ip ipsec policy
add dst-address=172.20.0.0/24 group=ike2-policies proposal=ike2 src-address=172.20.0.1/32 template=yes
Winbox добавление Peer
gost-ipsec-server-8
Добавляем пир IKEv2 для прослушивания
Создаем новый IPsec Peer, который будет слушать все входящие запросы IKEv2

/ip ipsec peer
add exchange-mode=ike2 name=ike2 passive=yes profile=ike2
Winbox добавление Identity
gost-ipsec-server-9
Добавляем идентификатор для клиентов
Создаем идентификатор Identity по умолчанию для сопоставления конкретных удаленных одноранговых узлов.
Она будет обрабатывать все пиры, но будет проверять идентичность пира с помощью его сертификата.

/ip ipsec identity
add auth-method=digital-signature certificate=ipsec-server generate-policy=port-strict mode-config=ike2-conf peer=ike2 policy-template-group=ike2-policies
Winbox добавление IPsec-Bridge
gost-ipsec-server-10
Добавляем пустой сетевой мост
gost-ipsec-server-11
Добавляем IP адрес для сетевого моста IPsec
Добавляем loopback интерфейс т.к. у IPsec нет своего интерфейса для привязки IP адреса.
Таким интерфейсом будет служить обычный пустой Bridge, которому мы назначим IP адрес 172.20.0.1

/interface bridge 
add name=IPsec-Bridge comment="IPsec"
/ip address
add address=172.20.0.1 interface=IPsec-Bridge
Winbox экспорт сертификата клиента
gost-ipsec-certificate-10
Находим наш сертификат и экспортируем его
gost-ipsec-certificate-11
Выбираем PKCS12 и обязательно вводим пароль, иначе основой сертификат CA не экспортируется
gost-ipsec-certificate-12
Находим файл в файловой системе роутера
Настройку IPsec на принимающей стороне закончили. Перед переходом к клиенту, необходимо выгрузить его сертификат из hEX S и загрузить в hEX
Экспортируем клиентсткий сертификат из hEX S
Выгружать будем в формате PKCS12. Пароль(export-passphrase) указывать обязательно!

/certificate
export-certificate rw-client1 export-passphrase=1234567890 type=pkcs12

PKCS12 это набор сертификатов, основной CA и клиенсткий. Поэтому при импорте мы получим сразу оба.
Сертификат будет лежать в файловой системе роутера.

Настройка RB750Gr3(hEX) — IPsec Client

Переносим каким-либо образом клиенсткий сертификат на hEX и импортируем его.
Я просто перетаскиваю через Winbox.

/certificate
import file-name=cert_export_rw-client1.p12 passphrase=1234567890

Далее мы повторяем большинство пунктов проделанных на стороне IPsec сервера с некоторыми изменениями.

Winbox создание Profile и Proposal на клиенте
gost-ipsec-client-1
Добавляем Profile
gost-ipsec-client-2
Добавляем Proposals
Создаем отдельный Profile для Phase_1(для IKEv2 это IKE_SA_INIT) и Proposal для Phase_2(для IKEv2 это IKE_AUTH)
/ip ipsec profile
add name=ike2-rw
/ip ipsec proposal
add name=ike2-rw pfs-group=none
Winbox создание Policies и Group на клиенте
gost-ipsec-client-3
Добавляем отдельную группу
gost-ipsec-client-4
Добавляем шаблон политик
Для отделения новой конфигурации от конфигурации по умолчанию создаем отдельный шаблон политик Policies и группу Group

/ip ipsec policy group
add name=ike2-rw
/ip ipsec policy
add group=ike2-rw proposal=ike2-rw template=yes
Winbox создание Mode Config на клиенте
gost-ipsec-client-5
Создаем конфигурацию для получения параметров от сервера
Создаем конфигурацию Mode Config с responder=no для получения параметров от сервера

/ip ipsec mode-config
add name=ike2-rw responder=no
Winbox создание Peer и Identity на клиенте
gost-ipsec-client-6
Добавляем пир IKEv2 для подключения
gost-ipsec-client-7
Добавляем идентификатор клиента с указанием импортированного сертификата
Наконец, создаем конфигурации пира Peer и идентификатора Identity

/ip ipsec peer
add address=2.2.2.2/32 exchange-mode=ike2 name=ike2-rw-client profile=ike2-rw
/ip ipsec identity
add auth-method=digital-signature certificate=cert_export_rw-client1.p12_0 generate-policy=port-strict mode-config=ike2-rw peer=ike2-rw-client policy-template-group=ike2-rw

В логах двух роутеров вы должны увидеть записи процесса установления связи.
Например на hEX S:

new ike2 SA (R): 2.2.2.2[4500]-35.17.2.78[4500] spi:2d3453dd0ffda81a:a6a4ca7bhhha8098
peer authorized: 2.2.2.2[4500]-35.17.2.78[4500] spi:2d3453dd0ffda81a:a6a4ca7bhhha8098
acquired 172.20.0.2 address for 35.17.2.78, rw-client1

Ну или ошибки, если что-то не так 🙂

Winbox проверяем установилось ли IPsec соединение
gost-ipsec-check-1
Проверяем активные пиры
gost-ipsec-check-2
Проверяем установленные ключи и аппаратное шифрование
Проверяем установилось ли IPsec соединение
/ip ipsec active-peers print
/ip ipsec installed-sa print
Для топологий, где необходимо связывать различные подсети, нужно больше настроек, в том числе применять Firewall! Но это тема для отдельной статьи.

Настройка туннелей для единой локальной сети

Я заметил интересную особенность, EoIP туннель просто так не работает на базе только IP адресов IPsec. Для EoIP необходим дополнительный уровень инкапсуляции, которую может обеспечить например еще один туннель GRE, даже с учетом того, что EoIP сам инкапсулирует ethernet фреймы в GRE, но как-то по своему.
Да, такая надстройка выглядит не красиво и накладывает свой Overhead на пропускную способность, но в рамках полученного результата я могу считать это допустимой мерой.
Напомню — основная цель использования EoIP, это возможность засунуть его в Bridge (для единой локальной подсети это важно)

Настройка GRE

Добавляем интерфейс GRE на двух роутерах и присваиваем им свои IP адреса.
Роутер RB760iGS(hEX S)

/interface gre
add comment=GRE local-address=172.20.0.1 name=GRE-IPsec-hEX remote-address=172.20.0.2
/ip address
add address=172.17.0.1/24 interface=GRE-IPsec-hEX

Роутер RB750Gr3(hEX)

/interface gre
add comment=GRE local-address=172.20.0.2 name=GRE-IPsec-hEX-S remote-address=172.20.0.1
/ip address
add address=172.17.0.2/24 interface=GRE-IPsec-hEX-S

Настройка EoIP

Мне достаточно было изменить IP адреса Local и Remote для EoIP интерфейсов, но я добавлю создание самих интерфейсов, если вы делаете с нуля.
Роутер RB760iGS(hEX S)

/interface eoip
add comment=EoIP local-address=172.17.0.1 name=EoIP-hEX remote-address=172.17.0.2 tunnel-id=100
/interface bridge port
add bridge=LAN-Bridge interface=EoIP-hEX

Роутер RB750Gr3(hEX)

/interface eoip
add comment=EoIP local-address=172.17.0.2 name=EoIP-hEX-S remote-address=172.17.0.1 tunnel-id=100
/interface bridge port
add bridge=LAN-Bridge interface=EoIP-hEX-S

Тестирование

Для проверки канала связи использовал встроенную утилиту Bandwidth Test и дополнительно Iperf3 для проверки проходящего трафика.
С роутера RB760iGS(hEX S)(тариф 500 Mbps) до роутера RB750Gr3(hEX)(тариф 100 Mbps)
UDP Random Data: Send=80 Mbps; Receive=60 Mbps;
TCP Random Data: Send=27.6 Mbps; Receive=33.5 Mbps;

Тестирование iperf3
gost-ipsec-test-iperf3
Результаты тестирования iperf3 между узлами в разных зонах одной локальной подсети через IPsec+GRE+EoIP
Для iperf3 запустил сервер на хосте Proxmox, провод в роутер RB760iGS(hEX S).
Клиентом являлся ПК с Windows 10, подключенный через Wifi(PCE-AC68) к Asus RT-AC66U, а Asus в свою очередь подключен кабелем к роутеру RB750Gr3(hEX).
iperf3-TCP: Send=84.6 Mbps; Receive=84.3 Mbps;

Про скорость через туннель OpenVPN + EoIP я говорил в начале статьи. Хотя иногда бывали скачки до 40 Mbps, но их можно не брать в расчет. Т.е. утилизация канала связи в 100 Mbps у OpenVPN в RouterOS очень слабая.
Можно его использовать для каких-то не требующих высоких скоростей каналов.

Заключение

По итогу мы получили интересную картину с улучшенными скоростными характеристиками, но несколько более сложной настройкой.
Не могу сказать, что это сложно. Просто требуется чуть больше времени, чтобы разобраться и научиться. Хотя параметров у IPsec существенно больше.
Главное помнить, что IPsec сам по себе не VPN, а всего лишь набор протоколов для обеспечения защиты передаваемых данных и обеспечения связности между несколькими узлами.
А уже непосредственно VPN, строится на базе установленной IPsec связи.

gost-ipsec-shema
Схема связности топологии сети на IPsec-GRE-EoIP

Высказывайте свои мысли по поводу IPsec, с какими вы столкнулись сложностями, как вышли из таких ситуаций, может быть расскажите о каких-то подводных камнях!
Если есть, чем поделиться с сообществом, добро пожаловать в комментарии! Глядишь насобираем на статью 🙂

P.S.
Для более простого создания VPN, я перешел на L2TP/IPsec+EoIP, аппаратное шифрование присутствует, скорость держит на том же уровне, что и IPsec+GRE+EoIP
Пришлось чутка с MTU разобраться, но все работает стабильно 😉

Благодарю за ваше время!
Всего хорошего на просторах Интернета 😉

Выразить благодарность автору
Если Вам не безразлична судьба блога или Вы просто хотите отблагодарить Автора за его труд, смело переходите на страницу Поддержки, там описана вся информация, по тому, как это сделать. Заранее благодарен вам за данную инициативу!
Если Вы хотите изучить MikroTik, то это можно реализовать с помощью специального онлайн-курса "Настройка оборудования MikroTik". В курсе изучаются все темы из официальной программы MTCNA, а автором курса является официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто даже не держал его в руках. В состав курса входят 162 видеоурока, 45 лабораторных работ и вопросы для самопроверки с конспектом. Кстати я получал сертификат MTCNA именно тут!
#seo
  • IPsec VPN
  • Site to Site IPsec через NAT провайдера
  • Настройка туннеля IPsec
  • IPsec протокол для VPN
Хочешь получать уведомления о выходе новых статей?
Loading
GregoryGost

Мир интересен, если вы достаточно любопытны!!!

Оцените автора
GREGORY GOST
Добавить комментарий

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

  1. Владимир

    Добрый день!
    Применил данный мануал для объединения двух офисов. Перешел с OVPN объединения. Обнаружил две серьезные неточности и одну не состыковку в тексте мною глубок уважаемого автора. В принципе все уже подмечено до меня в других комментах, но сведу вместе для удобства.
    Неточность №1 при присвоении адреса бриджу:
    в тексте
    »
    /ip address
    add address=172.20.0.1 interface=IPsec-Bridge
    »
    исправить на
    /ip address
    add address=172.20.0.1/24 interface=IPsec-Bridge
    Неточность №1 при создании Mode config
    в тексте
    »
    /ip ipsec mode-config
    add address-pool=ipsec-pool address-prefix-length=32 name=ike2-conf split-include=172.20.0.1 system-dns=no
    »
    исправить на
    /ip ipsec mode-config
    add address-pool=ipsec-pool address-prefix-length=24 name=ike2-conf split-include=172.20.0.1 system-dns=no
    А вот с несостыковкой сложнее, автор раздает ip адреса динамически из пула ipsec-pool
    »
    /ip pool
    add name=ipsec-pool ranges=172.20.0.2-172.20.0.254
    »
    А потом использует СТАТИЧЕСКИЙ адрес для создания GRE. То есть если Вам повезло и у вас DHCP раздает от начала данного пула, то планеты сойдутся и все будет работать какое-то время. Мне кажется, что сдесь надо сделать статические адреса с возможностью отключения конкретного канала через микрот.
    Если у Вас одно такое соединение то можете просто сузить пул до одного адреса)
    /ip pool
    add name=ipsec-pool ranges=172.20.0.2-172.20.0.2

    Ответить
  2. Алексей

    Добрый день!
    Направьте пожалуйста, в какую сторону смотреть.
    IPsec тоннель поднимается, но связи нет.
    Первое что заметил — клиенту отдается почему-то ip адрес из пула ipsec_pool с маской 32, соотвественно динамический маршрут на клиенте получается сам на себя. Добавил на клиенте руками для интерфейса WAN IP-адрес с маской 24, после чего появился еще один динамический маршрут.
    /ip address add address=172.20.0.2/24 interface=WAN
    Далее на серверной части (на роутере с публичным адресом) добавил 24 битную маску для интерфейса IPsec-Bridge (если следовать инструкции в данной статье, то там был добавлен только IP-адрес без маски 172.20.0.1 )
    В результате манипуляций с клиента (172.20.0.2) пошел ping до сервера (172.20.0.1).
    Добиться ответов на icmp запросы с серверной части до клиентской не удается.
    Получается обмена данными в тоннеле нет, соответственно тоннель GRE не поднимается.

    Ответить
  3. Виталий

    Давненько тут никто не писал. Но может повезёт…
    Попробовал у себя этот мануал. Завелось сразу. Скорость тоже радует. Три дня радовался.
    И вот после перезагрузки роутера вижу упал GRE. Оказалось, что на серверной стороне активный пир Dynamic Address 172.20.0.254. В конфигурации GRE 172.20.0.2.
    И в течении недели он менялся с 172.20.0.254 на 172.20.0.2 пару раз.
    Самостоятельно понять, как решить эту проблему я не смог. Может кто поможет?

    Ответить
  4. Иван

    Действительно статей под старую прошивку очень много, приходится перекраивать. Эта статья пока единственная найденная, в которой упоминается loopback interface. Правда ранее додумался сам, но до сих пор считаю его костылем. Потому что подрядчик(крупная контора) клиента на отрез отказался строить gre+ipsec ссылаясь на проблемы с инкапсуляцией gre и best practice. с той стороны fortinet.

    Автору спасибо за статью.

    p.s. было бы неплохо расписать ситуацию построения чистого ipsec(без gre, ipip, l2tp и прочего), без использования loopback br и настройками маршрутизации, nat, firewall, mangle белые ip с обоих сторон, мультивендор (mikrotik+cisco\fortinet\etc..), подрядчик выделил пул адресов для микротика (/26) или описание причин невозможности построения таких туннелей без loopback, вышеописанные вопросы отпадут сами собой т.к. будет интерфейс на который можно «опереться», возникает один — в каком случае использование такого «костыля» принесет проблемы.

    Ответить
  5. SkyVox

    Всё бы ничего, если бы не одно НО!
    DNS не работает. Совсем.
    Настраивал mikrotik Windows 10
    Запустил, работает, без танцев с бубном не работает (правильные сертификаты очень важны).
    Но вот все хосты, что прописаны на Mikrotik — не видны. Используется только DNS локального роутера (Кинетик Гига).
    Это можно как-то победить?

    Ответить
  6. Алексей

    Добрый день. Инструкция рабочая, но столкнулся с проблемой при определенной связке. mAP lite получает интернет с телефона по wifi. При подключении к серверу Ipsec все соединяет , но получает всегда разный ip адрес из pool из-за чего приходится перенастраивать gre тунель. Может можно как-то застолбить ip за определенным сертификатом?

    Ответить
  7. Алексей

    Добрый день. Очень классная статья. Провел много опытов. Все работает, но есть один нюанс в определенной связке. mAp lite получает интернет по wifi с телефона. Потом подключается к серверу и всегда получает разный ip из pool адресов, соответственно дальнейшая связка не работает пока не поправишь адреса. Может есть возможность определенному клиенты жестко привязать ip адрес?

    Ответить
  8. Vlad

    Сделал все точно по инструкции. Микротики RB750Gr3 Топология с одной стороны белый (внешний адрес) с другой, серый. (за Натом)
    Прошивка в обоих Микротиках 6.48.4 stable
    Максимум что удалось получить в логах клиента это
    killing ike2 SA:::ffff:172.17.57.220::ffff:91.234.75.175
    В логах сервера, ругани нет.
    Считаю инструкция неверна. Потому как по другой, с preshared key получил успешный коннект.

    Ответить
  9. nrg

    Но ведь это не чистый IPSec, GRE или L2TP внутри. Интересно решение с использованием чистого IPSec

    Ответить
  10. PPA

    Приветствую. Спасибо за статью. Оказалась очень полезной, все взлетело с первого раза за исключением одного момента. Какие то траблы с работой интернет, что в сети одного роутера что другого.
    Пока не пойму в чем причина, он либо пропадает в обще либо работает но как то очень странно то медленно то часть открывается часть нет.
    Помогите пожалуйста понять в чем причина.
    И еще один вопрос, как в такой схеме будет выглядеть вариант с тремя роутерами(сетями), чтобы все 3 сети были как одна как в данном случае? где и что нужно прописать? Чтобы не городить а сделать это корректно.

    Ответить
  11. Сергей

    Добрый день!
    Благодарю за статью!
    Следовал инструкции, естественно включая голову. Несколько раз подряд терпел неудачу, получая ошибку: «unable to get local issuer certificate» Думал, что где-то ошибаюсь. Сломал всю голову. Вопрос решился путем добавления полей в CA сертификат common-name=Ваш белый IP subject-alt-name=IP:Ваш белыйIP.
    И о чудо! сертификатами обменялись и Ikev2 заработал.
    Остался вопрос, который пока не получается решить — после создания EoIP и GRE интерфейсов нет связности. Маршрут 172.17.0.0/24 на интерфейсе GRE нечитаем. Пингую с роутера клиента 192.168.77.2 роутер сервер 192.168.77.1 связи нет. Что можете посоветовать?

    Ответить
  12. Сергей

    Добрый день! Спасибо за статью.
    Собрал стенд из RB2011 на прошивке 6.48.1, как сервер и RB951Ui на той же прошивке, как клиент. Четко следовал инстуркции. По итогу IPsec так и не заработал.
    Я так понимаю, присутствует некая проблема с сертификатами.
    Ошибка на серверной стороне
    https://ibb.co/x5HZctK
    Ошибка на клиентской стороне
    https://ibb.co/vDtf4Bq
    Какой можете дать совет?

    Ответить
    1. Алексей

      Время на обоих устройствах одинаковое и точное? Об этом писалось автором в самом начале статьи.

  13. Алексей

    Подскажите пожалуйста Ваши значения MTU при L2TP/IPsec+EoIP?

    Ответить
    1. GregoryGost автор

      1360

  14. Сергей

    Возможно у Вас ошибка в:
    «/ip address
    add address=172.20.0.1 interface=IPsec-Bridge»

    У меня заработало только с 172.20.0.1/24

    Ответить
  15. kraskov

    А замечали, что пакеты на VPN-сервер 4500 порт идут с src port 4500?
    Отчего так?
    Ведь по логикие должны с динамических udp-портов…

    Ответить
    1. GregoryGost автор

      Для UDP это нормально. Т.к. он отличается от TCP, тут можно пренебречь изменением портов источника в угоду простоте и ускорения обработки различными протоколами.

  16. Максим

    Здравствуйте, не подскажете если роутеры не имеют поддержки аппаратного шифрования (RB2011), то лучше какой тунель использовать между небольшими офисами?

    Ответить
    1. GregoryGost автор

      Если нет требований обеспечивать обязательный безопасный канал, то можно использовать простой L2TP.
      Если между офисами статика, то тут можно использовать различные туннели вроде GRE, IPIP, EoIP и т.д.

      Иначе смотрите по нагрузке на канал между офисами. Возможно RB2011 сможет прокачать некоторый ограниченный канал с L2TP/IPsec. Но сразу ставьте минимальный тип шифрования.
      В других случаях придется ставить, что-то с поддержкой аппаратного шифрования.

  17. Сергей

    Спасибо за статью. С L2tp\ipsec бы тоже пригодилось.

    Ответить
  18. Влад

    Спасибо за статью. Поднял EoIP и настроил IPSec. Кроме одинаковых IP адресов в настройках этих двух протоколов больше настройки нигде не пересекаются. Никак не указывается что вот тунель EoIP должен использовать для шифрования такое то IPSec policy, или такое-то IPsec policy должно шифровать вот этот EoIP тунель.

    Как тогда определить, действительно ли именно этот IPSec зашифровал именно этот тунель?

    Ответить
    1. GregoryGost автор

      Policies — Peer ?

  19. Алексей

    Добрый день. Взял два чистых устройства SXT_LTE с белым IP и HAP AC2 За натом.
    Ipsec между ними поднял по этой статье, но пинги между ними так и не запустились. Может еще что надо настроить для этого?

    Ответить
    1. GregoryGost автор

      С IPsec очень много тонких моментов (индивидуальные настройки могут сильно влиять), в рамках комментария подсказать, что смотреть и куда копать достаточно сложно.

  20. mike7

    «Я заметил интересную особенность, EoIP туннель просто так не работает на базе только IP адресов IPsec.»
    У меня решилось разрешающим правилом для протокола GRE в цепочке INPUT в Filter Firewall для WAN на обоих роутерах.

    Ответить
  21. Макс

    Вопрос больше не в том как создать туннель, а как поднять 2 таких туннеля к разным виртуалкам и заруливать определённых клиентов в эти виртуалки. Я не смог победить этот момент.

    Ответить
  22. nikita

    Добрый день подорвал подружить IKEv2 и виндус 10 не получилось
    выдаёт ошибку «ike не удалось найти действительный сертификат компьютера»
    но в логах пишет may/05 01:00:58 ipsec,info killing ike2 SA: 84.204.XX.X4[4500]-45.66.9.XX[61191] spi:158280fe85e840db:c9471b68b1e4507c
    may/05 01:00:59 ipsec,info killing ike2 SA: 84.204.XX.X4[4500]-45.66.9.XX[61191] spi:b7302e4baefdbc09:883005b25a98a284
    may/05 01:01:09 ipsec,info new ike2 SA (R): 84.204.XX.X4[500]-45.66.9.XX[61191] spi:de0cf71c4abf2ae0:cf7fc47e51b0b040
    may/05 01:01:10 ipsec,info new ike2 SA (R): 84.204.XX.X4[500]-45.66.9.XX[61191] spi:de41341ba54cb8f0:bb73502d44e0f1eb
    may/05 01:01:39 ipsec,info killing ike2 SA: 84.204.XX.X4[4500]-45.66.9.XX[61191] spi:de0cf71c4abf2ae0:cf7fc47e51b0b040
    may/05 01:01:40 ipsec,info killing ike2 SA: 84.204.XX.X4[4500]-45.66.9.XX[61191] spi:de41341ba54cb8f0:bb73502d44e0f1eb
    уже всю голову себе сломал

    Ответить
    1. Владимир

      У меня такая же проблема один в один. Не могу ничего понять. Я уже и вручную сертификаты импортировал в Win10 и в автоматическом режиме. Непонятно какой сертификат не видит: клиентский на сервере или клиентский на клиенте.

    2. Евгений

      У вас ошибка в сертификате где-то.
      Я с таким столкнулся, когда не продублировал common name в subject alternative name.
      В SAN должно быть DNS-имя из common name.
      Также на сервере, к которому осуществляется подключение (у него в peer признак passive и белый ip) должен быть сертификат с key usage «tls server», у остальных — «tls client». Проверьте все эти поля, ответ, вероятно, в них.

      Чтобы получить более развернутые логи, идите в system/logging, добавьте тему: ipsec, !packet в memory.

    3. Salavat

      Я использую IKEv2 с windows 10(7,8) без сертификата клиента, ставлю только на сервер, со стороны клиента только его логин пароль из AD + NPS На клиенте обязательно нужно установить сертификат центра сертификации выдавшего сертификат серверу доступа.

  23. Марат

    Попробовал настроить ipsec, для соединения client-to-site, подключил два клиента по сертификатам, они в «active peers» отображаются, но пинг с них идет только на адрес 172.20.0.1 который я указал как DNS-сервер в mod config, а друг на друга не идет, при этом smb через проводник при вводе ip-адреса открывается. Так и должно быть или я что-то упустил? Единой сети мне не нужно просто хочу внутри vpn по rdp ходить, по этому GRE и EoIP не настраивал.

    Ответить
    1. GregoryGost автор

      IPsec не имеет собственного интерфейса.
      Вам необходимо смотреть и проверять, как проходит трафик, а в особенности через IPsec.
      Чего-то конкретного подсказать не могу т.к. тут необходимо разбирать Firewall и возможно маршрутизацию.

  24. Андрей

    Когда смог разобраться с настройками (еще раз спасибо автору !), обнаружил еще одну (для меня) проблему IKEv2 — нельзя заблокировать клиента в случае компроментации сертификата (как это делается в OVPN и L2TP IPSec), так как это соединение можно увидеть только в IPSec. Единственный способ блокировки как я понимаю, это только перевыпуск всех сертификатов.

    Ответить
    1. GregoryGost автор

      Андрей, сертификаты можно отзывать командой issued-revoke. Перевыпуск всех сертификатов это не лучшее решение.
      https://wiki.mikrotik.com/wiki/Manual:System/Certificates

  25. Андрей

    Уважаемый автор ! Статья очень интересная и нашла у меня практическое применение. Надо сказать долго я бился с ikev2. Правда я не мог настроить соединение по ikev2 без использования сертификатов, то есть по ключу. Ранее настраивал OpenVPN, но там так же используются сертификаты. (кстати OVPN мне показался проще, настройки заняли меньше времени). Теперь все получилось и с IKEv2 ! Хотелось бы узнать, а можно ли на микротике использовать для IKE2 не стандартный порт 4500, а любой другой и если да, то как это сделать?

    Ответить
    1. GregoryGost автор

      Здравствуйте,
      Нет, порты для IPsec и IKEv2 менять нельзя, это часть стандарта.

    2. Антон

      По ключу проще, там есть требование к минимальной длине пароля, по-моему от 12 символов, сделайте 20 не ошибетесь.

  26. Павел

    Уважаемый автор, вашу статью прочёл первой и, в общем-то, она подтвердила имевшиеся у меня выводы о том, что L2TP наиболее производительный протокол VPN из всех, что реализованы в RouterOS v.6 — но весьма интересно будет посмотреть результаты этих же самых тестов но уже в RouterOS v.7, — когда её допилят наконец, а сегодня наткнулся на ещё одну статью по этому же вопросу, там выводы такие же, но больше цифр, правда не исследованы 2 наиболее народных роутера RB951Ui-2HnD и его гигабитный брат RB951G-2HnD что весьма печально т.к. считаю что RB951UI-2nD уж очень древняя модель. В ней именно результаты практических тестов и на мой взгляд, она хорошо дополняет вашу (не сочтите за рекламу), в которой сделан упор на практическую настройку.

    Производительность младших моделей Mikrotik hEX и hAP. Экспресс-тестирование
    https://interface31.ru/tech_it/2020/02/proizvoditel-nost-mladshih-modeley-mikrotik-hex-i-hap-ekspress-testirovanie.html

    Ответить
    1. GregoryGost автор

      Павел,
      Благодарю, материал действительно интересный и будет полезен читателям этого блога.
      Еще раз спасибо за информацию! И да, я сейчас перешел полностью на L2TP/IPsec VPN в RouterOS v6 — cbc(aes) + hmac(sha256) т.к. утилизация канала связи наиболее полная.
      RoS v.7 пока сыровата, но уже можно поставить на любые устройства MikroTik(MIPSBE, SMIPS, TILE, PPC, ARM, X86, MMIPS) и проводить аналогичные тесты, чтобы проверить разницу.

      К сожалению пока не имею в парке свободных устройств для проведения подобных тестов

  27. Aram

    Благодарю вас Грегорий.
    Очень интересно, надо попробывать.

    Ответить
    1. GregoryGost автор

      Будет еще интересней, если отпишитесь о результатах своих испытаний 🙂