IKEv2 Туннель и генерация политик

Базовая функциональность RouterOS
Аватара пользователя
freewood
Сообщения: 45
Зарегистрирован: 03 мар 2016, 14:47
Откуда: Зеленоград

IKEv2 Туннель и генерация политик

Сообщение freewood »

Вопрос короткий на самом деле.
Настроил IKEv2 туннель между двумя офисами, но в одном офисе IP динамический, а в другом сразу два IP (два провайдера).
В итоге пытался сделать шаблон полиси с предопределенными src/dst-address, а что бы sa-src/dst-address генерировался при согласовании. Но при такой конфигурации согласование не проходит. Собственно вопрос, можно ли делать шаблон полиси с предопределенными src/dst-address? Или в шаблонах во всех адресах требуется указывать 0.0.0.0/0?
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: IKEv2 Туннель и генерация политик

Сообщение Chupaka »

"Такая конфигурация" - это какая? По идее, должно быть достаточно создать Group, добавить в неё Policy Template - и у пира указать данную группу.
Аватара пользователя
freewood
Сообщения: 45
Зарегистрирован: 03 мар 2016, 14:47
Откуда: Зеленоград

Re: IKEv2 Туннель и генерация политик

Сообщение freewood »

Поленился сразу конфиг приложить, собственно он такой.
Офис:

Код: Выделить всё

/ip ipsec peer
add address=y.y.y.y/32 dh-group=modp1536 dpd-interval=1m enc-algorithm=aes-128 exchange-mode=ike2 secret=secret send-initial-contact=no policy-template-group=test
Склад:

Код: Выделить всё

/ip ipsec peer
add address=x.x.x.x/32 dh-group=modp1536 dpd-interval=1m enc-algorithm=aes-128 exchange-mode=ike2 secret=secret policy-template-group=test
Собственно весь вопрос в настройках шаблонов полиси (отдельную группу создал и ее указал в настройках пиров). Вот с такими шаблонами полиси не работает.
Офис:

Код: Выделить всё

/ip ipsec policy
add dst-address=10.215.10.0/24 src-address=10.215.20.0/24 template=yes group=test
Склад:

Код: Выделить всё

add dst-address=10.215.20.0/24 src-address=10.215.10.0/24 template=yes group=test
А вот с созданными вручную полиси работает:
Офис:

Код: Выделить всё

/ip ipsec policy
add dst-address=10.215.20.0/24 sa-dst-address=y.y.y.y sa-src-address=x.x.x.x src-address=10.215.10.0/24 tunnel=yes
Склад:

Код: Выделить всё

/ip ipsec policy
add dst-address=10.215.10.0/24 sa-dst-address=x.x.x.x sa-src-address=y.y.y.y src-address=10.215.20.0/24 tunnel=yes
Ну диаграмма небольшая.
ikev2.png
Собственно и вопрос. А валидно ли создавать шаблоны полиси с уже предопределенными src/dst-address?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: IKEv2 Туннель и генерация политик

Сообщение Chupaka »

freewood писал(а): 28 апр 2018, 08:03 Собственно и вопрос. А валидно ли создавать шаблоны полиси с уже предопределенными src/dst-address?
Абсолютно. Согласно доке https://wiki.mikrotik.com/wiki/Manual:IP/IPsec#Policies, если это шаблон, то из него берутся параметры group, src-address, dst-address, protocol, proposal и level.

А в логе что при попытке установить соседство? А если включить debug-лог для ipsec?
Аватара пользователя
freewood
Сообщения: 45
Зарегистрирован: 03 мар 2016, 14:47
Откуда: Зеленоград

Re: IKEv2 Туннель и генерация политик

Сообщение freewood »

В логах при попытке согласования вылетает TS_UNACCEPTABLE и ошибка ipsec "policy not found/generated"
В свойствах пиров собственно указываю generate-policy=port-strict (port-override так же пробовал).
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: IKEv2 Туннель и генерация политик

Сообщение Chupaka »

Вот посмотреть бы, что именно unacceptable - вроде в debug-логе можно подробности интересные найти. Ну и в [email protected] писать потом - там разберутся, может, у них косяк какой :)
Аватара пользователя
freewood
Сообщения: 45
Зарегистрирован: 03 мар 2016, 14:47
Откуда: Зеленоград

Re: IKEv2 Туннель и генерация политик

Сообщение freewood »

Вообщем посидел поразбирался, погонял тесты на двух виртуалках с CHR. Шаблоны политик используются как элемент ограничения, но конфигурацию сами по себе они не предоставляют. Что бы пушить на клиенты политики для сетей, нужно использовать mode-config, через "Address pool" отдается адрес самого клиента (он вешается на интерфейс на котором поднят ikev2 туннель), через "Split include" отдаются собственно сети которые клиенту должны быть доступны. Ну и в шаблонах политик мы соответственно указываем ограничения для сетей, что бы клиент не сделал на своей стороне политику с адресами 0.0.0.0/0 и не убил интернет у тех кто за микротиком сидит.
Единственное тут нужно учитывать, что если за клиентом находится какая-то сеть, то при пуше на него IP-адреса из пула адресов, нужно будет все запросы из сети маскарадить этим адресом, что бы они под действие политики попадали.
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: IKEv2 Туннель и генерация политик

Сообщение Chupaka »

Т.е. к вышеприведённым полиси-шаблонам надо было ещё добавить Mode Config?
Аватара пользователя
freewood
Сообщения: 45
Зарегистрирован: 03 мар 2016, 14:47
Откуда: Зеленоград

Re: IKEv2 Туннель и генерация политик

Сообщение freewood »

Mode-config мы указываем в свойствах пира, а шаблон только позволяет сгенерировать полиси если сети входят в диапазон указанный в src-address и dst-address. Т.е. конкретно в моем конфиге что бы полиси создавалось по шаблону, мне надо было бы на серверной части создать mode-config с указанием пула адресов (пусть для примера это будет 172.16.16.1), split-include=10.215.10.0/24 и создать шаблон полиси с "src-address=10.215.10.0/24 dst-address=172.16.16.1". В этом случае на обоих концах все сгенерируется автоматически с нужными сетями, только учитывая что у меня клиент - это роутер за которым еще сеть, нужно будет маскарадить все пакеты от его внутренней сети к сети 10.215.10.0/24 его IP адресом который он получил от сервера - 172.16.16.1.
Я собственно автоматическое создание полиси хотел сделать только из-за того, что у меня на стороне сервера 2 провайдера и хотелось бы что бы туннель автоматически цеплялся ко второму если первый сдох, но в итоге я на это забил, т.к. провайдеры там заходят на территорию через один кабель и смысла это фейловерить нет, если сдохнут, то оба сразу ))
Собственно выгрузка конфига с тестовых виртуалок:
chr01-клиент

Код: Выделить всё

/ip address
add address=10.10.10.1/24 interface=br0 network=10.10.10.0
/ip ipsec policy group
add name=ike2-group
/ip ipsec peer
add address=192.168.1.42/32 dh-group=modp1024 enc-algorithm=aes-128 exchange-mode=ike2 generate-policy=port-strict mode-config=request-only secret=testkey1234567890
/ip ipsec policy
add dst-address=10.20.20.0/24 group=ike2-group src-address=10.10.10.0/24 template=yes
/ip firewall nat
add action=src-nat chain=srcnat dst-address=10.20.20.0/24 log=yes src-address=10.10.10.0/24 to-addresses=172.16.16.1
chr02-сервер

Код: Выделить всё

/ip address
add address=10.20.20.1/24 interface=br0 network=10.20.20.0
/ip pool
add name=ipsec-ikev2 ranges=172.16.16.1
/ip ipsec mode-config
add address-pool=ipsec-ikev2 address-prefix-length=32 name=cfg1 split-include=10.20.20.0/24 system-dns=no
/ip ipsec policy group
add name=ike2-group
/ip ipsec peer
add address=0.0.0.0/0 dh-group=modp1024 enc-algorithm=aes-128 exchange-mode=ike2 generate-policy=port-strict mode-config=cfg1 passive=yes policy-template-group=ike2-group secret=testkey123456789
    send-initial-contact=no
/ip ipsec policy
add dst-address=172.16.16.1/32 group=ike2-group src-address=10.20.20.0/24 template=yes
За стену текста сорян, побыстрому накидал, на работе завал небольшой )