Привет! В данный момент я пытаюсь настроить IKEv2 сервер на ROS (6.48.1) для клиентов macOS (Catalina/10.15). Всё работает отлично, но доступна только первая сеть из split-include. Я нашёл несколько сообщений на этом форуме, где винят Apple VPN клиент. Но по моему опыту проблема, скорее всего, не на стороне Apple.
Я думаю, что проблема в динамическом создании политик на стороне Mikrotik. Судя по всему, macOS клиент добавляет маршруты через VPN-интерфейс для каждой сети из split-include, но динамическая политика на роутере охватывает только первую сеть. Вопрос в том: как заставить ROS создавать политику для каждой сети из split-include при подключении клиента?
Вот пример единственной динамической политики, которая создаётся при подключении клиента, как видно, в ней указана только сеть 10.10.9.0/24:
2 DA peer=roadw tunnel=yes src-address=10.10.9.0/24 src-port=any
dst-address=10.10.200.200/32 dst-port=any protocol=all action=encrypt level=unique
ipsec-protocols=esp sa-src-address=a.a.a.a sa-dst-address=b.b.b.b
proposal=default ph2-count=1
А вот маршруты, которые создаёт macOS для этого подключения, выведенные командой netstat -nrf inet. Как видите, добавлены и 10.10.9.0/24, и 10.10.10.0/24:
default link#12 UCSI ipsec0
10.10.9/24 10.10.200.200 UGSc ipsec0
10.10.10/24 10.10.200.200 UGSc ipsec0
10.10.200.200 10.10.200.200 UH ipsec0
Ниже отредактированный экспорт моей конфигурации ipsec:
/ip address
add address=a.a.a.a/29 interface=e1
add address=10.10.9.1/24 interface=bridge.9
add address=10.10.10.1/24 interface=bridge.10
/ip pool
add name=roadw-pool ranges=10.10.200.33-10.10.200.200
/ip ipsec mode-config
add address-pool=roadw-pool address-prefix-length=32 name=roadw-config split-dns=example.com split-include=10.10.9.0/24,10.10.10.0/24 static-dns=10.10.10.1 system-dns=no
/ip ipsec peer
add comment="RoadWarrior IKEv2" exchange-mode=ike2 local-address=a.a.a.a name=roadw passive=yes send-initial-contact=no
/ip ipsec policy group
add name=roadw
/ip ipsec profile
set [ find default=yes ] enc-algorithm=aes-256 hash-algorithm=sha256
/ip ipsec proposal
set [ find default=yes ] auth-algorithms=sha256 enc-algorithms=aes-128-cbc,aes-128-gcm pfs-group=modp2048
/ip ipsec identity
add auth-method=digital-signature certificate=gw01.example.com generate-policy=port-strict mode-config=roadw-config peer=roadw policy-template-group=roadw
/ip ipsec policy
add dst-address=0.0.0.0/0 group=roadw src-address=10.10.9.0/24 template=yes
add dst-address=0.0.0.0/0 group=roadw src-address=10.10.10.0/24 template=yes
Заранее спасибо за помощь!
Я думаю, что проблема в динамическом создании политик на стороне Mikrotik. Судя по всему, macOS клиент добавляет маршруты через VPN-интерфейс для каждой сети из split-include, но динамическая политика на роутере охватывает только первую сеть. Вопрос в том: как заставить ROS создавать политику для каждой сети из split-include при подключении клиента?
Вот пример единственной динамической политики, которая создаётся при подключении клиента, как видно, в ней указана только сеть 10.10.9.0/24:
2 DA peer=roadw tunnel=yes src-address=10.10.9.0/24 src-port=any
dst-address=10.10.200.200/32 dst-port=any protocol=all action=encrypt level=unique
ipsec-protocols=esp sa-src-address=a.a.a.a sa-dst-address=b.b.b.b
proposal=default ph2-count=1
А вот маршруты, которые создаёт macOS для этого подключения, выведенные командой netstat -nrf inet. Как видите, добавлены и 10.10.9.0/24, и 10.10.10.0/24:
default link#12 UCSI ipsec0
10.10.9/24 10.10.200.200 UGSc ipsec0
10.10.10/24 10.10.200.200 UGSc ipsec0
10.10.200.200 10.10.200.200 UH ipsec0
Ниже отредактированный экспорт моей конфигурации ipsec:
/ip address
add address=a.a.a.a/29 interface=e1
add address=10.10.9.1/24 interface=bridge.9
add address=10.10.10.1/24 interface=bridge.10
/ip pool
add name=roadw-pool ranges=10.10.200.33-10.10.200.200
/ip ipsec mode-config
add address-pool=roadw-pool address-prefix-length=32 name=roadw-config split-dns=example.com split-include=10.10.9.0/24,10.10.10.0/24 static-dns=10.10.10.1 system-dns=no
/ip ipsec peer
add comment="RoadWarrior IKEv2" exchange-mode=ike2 local-address=a.a.a.a name=roadw passive=yes send-initial-contact=no
/ip ipsec policy group
add name=roadw
/ip ipsec profile
set [ find default=yes ] enc-algorithm=aes-256 hash-algorithm=sha256
/ip ipsec proposal
set [ find default=yes ] auth-algorithms=sha256 enc-algorithms=aes-128-cbc,aes-128-gcm pfs-group=modp2048
/ip ipsec identity
add auth-method=digital-signature certificate=gw01.example.com generate-policy=port-strict mode-config=roadw-config peer=roadw policy-template-group=roadw
/ip ipsec policy
add dst-address=0.0.0.0/0 group=roadw src-address=10.10.9.0/24 template=yes
add dst-address=0.0.0.0/0 group=roadw src-address=10.10.10.0/24 template=yes
Заранее спасибо за помощь!
