Как настроить L2TP+IPSec между 2 роутерами Mikrotik?

Здравствуйте. Уже третий день ломаю голову и не могу найти в чем именно проблема.

Описание задачи: Есть 2 офиса в каждом офисе установлен Mikrotik RB951G-2HnD. Для выхода в интернет в разъем ether1 включена витая пора и на этом интерфейсе поднимается PPPoE соединения для авторизации на стороне провайдера. Этому интерфейсу присваивается постоянный белый ip адрес. Порты 2-5 объединены в бридж и к этим портам подключаются компьютеры локальной сети.

Офис 1:
Public IP: pppoe-out - ip 85.12.xx.yy
Local IP: 192.168.1.0/24
Адрес Mikrotik: 192.168.1.1

Офис 2:
Public IP: pppoe-out - ip 83.95.xx.yy
Local IP: 192.168.2.0/24
Адрес Mikrotik: 192.168.2.1

Задача объединить эти 2 локальные сети через интернет с помощью L2TP/IPSec Tunnel чтобы весь трафик проходящий через туннель шифровался:

Что я сделал:
Офис 1 принимаем за серверную строну.

1. Настраиваем в Офисе 1 L2TP Server:
- Создаем пользователя:
[admin@Office1] > ppp secret add name=Office2 service=l2tp password=123
local-address=10.0.16.9 remote-address=10.0.16.10

[admin@Office1] /ppp secret> print detail 
Flags: X - disabled 
 0   name="Office2" service=l2tp caller-id="" password=
     local-address=10.0.16.9 remote-address=10.0.16.10 
     limit-bytes-out=0 last-logged-out=jan/01/1970 00:0


Создаем L2TP интерфейс для созданного пользователя

[admin@Office1] > interface l2tp-server add disabled=no name=l2tp-Office2
user=Office2


- Включаем L2TP/IpSec

[admin@Office1] > interface l2tp-server server set authentication=pap,chap,
mschap1,mschap2 default-profile=default-encryption enabled=yes 
max-mru=1460 max-mtu=1460 use-ipsec=yes 
[admin@Office1] > interface l2tp-server server print                                                       
enabled: yes                                               
max-mtu: 1460
max-mru: 1460
mrru: disabled
authentication: pap,chap,mschap1,mschap2
keepalive-timeout: 15
default-profile: default-encryption
use-ipsec: yes
ipsec-secret: 123456789


- Создаем ipsec proposal:
[admin@Office1] > ip ipsec proposal set default auth-algorithms=sha1 
disabled=no enc-algorithms=3des lifetime=30m name=default 
pfs-group=modp1024 
[admin@Office1] > ip ipsec proposal print 
Flags: X - disabled, * - default 
 0  * name="default" auth-algorithms=sha1 enc-algorithms=3des 
lifetime=30m pfs-group=modp1024 
[admin@Office1] >


- Создаем ipsec policy:
[admin@Office1] > ip ipsec policy add action=encrypt disabled=no
dst-address=192.168.2.0/24 ipsec-protocols=esp level=require priority=0
proposal=default protocol=udp sa-dst-address=10.0.16.10
sa-src-address=10.0.16.9 src-address=192.168.1.0/24 tunnel=yes
[admin@Office1] > ip ipsec policy print
Flags: T - template, X - disabled, D - dynamic, I - inactive, * - default
0 TX* group=*3 src-address=0.0.0.0/0 dst-address=0.0.0.0/0 protocol=all proposal=default template=yes

1 src-address=192.168.1.0/24 src-port=any dst-address=192.168.2.0/24 dst-port=any protocol=udp
action=encrypt level=require ipsec-protocols=esp tunnel=yes sa-src-address=10.0.16.9
sa-dst-address=10.0.16.10 proposal=default priority=0

- Создаем ipsec peer:
[admin@Office1] > ip ipsec peer add address=10.0.16.10 auth-method=pre-shared-key 
dh-group=modp1024 disabled=no dpd-interval=disable-dpd dpd-maximum-failures=1 
enc-algorithm=3des exchange-mode=main generate-policy=no hash-algorithm=sha1 
lifebytes=0 lifetime=1d nat-traversal=no proposal-check=obey secret=test 
send-initial-contact=yes 
[admin@Office1] > ip ipsec peer print 
Flags: X - disabled, D - dynamic 
 0  D address=0.0.0.0/0 local-address=0.0.0.0 passive=yes port=500 auth-method=pre-shared-key 
      secret="123456789" generate-policy=port-strict policy-group=*2 exchange-mode=main-l2tp 
      send-initial-contact=yes nat-traversal=yes hash-algorithm=sha1 
      enc-algorithm=3des,aes-128,aes-192,aes-256 dh-group=modp1024 lifetime=1d dpd-interval=2m 
      dpd-maximum-failures=5 

 1    address=10.0.16.10/32 local-address=0.0.0.0 passive=no port=500 auth-method=pre-shared-key 
      secret="test" generate-policy=no policy-group=*2 exchange-mode=main send-initial-contact=yes 
      nat-traversal=no proposal-check=obey hash-algorithm=sha1 enc-algorithm=3des dh-group=modp1024 
      lifetime=1d lifebytes=0 dpd-interval=disable-dpd dpd-maximum-failures=1


- Добавим маршрут в Офис 2
[admin@Office1] > ip route add comment=Office2 disabled=no distance=1 
dst-address=192.168.2.0/24 gateway=10 .0.16.10 scope=30 target-scope=10


С настройкой первого Mikrotik закончено, переходим к второму, который будем клиентом L2TP:
- Создаем l2tp-интерфейс для соединения с сервером

[admin@Office2] > interface l2tp-client add add-default-route=no allow=pap,chap,
mschap1,mschap2 connect-to=85.12.xx.yy dial-on-demand=no disabled=no 
max-mru=1460 max-mtu=1460 name=l2tp-Office1 password=123 user=Office2


После выполнения этой команды поднимается L2TP туннель.

- Создаем ipsec proposal (настройки точно такие какие мы делали на сервер):
[admin@Office2] > ip ipsec proposal set default auth-algorithms=sha1 
disabled=no enc-algorithms=3des lifetime=30m name=default pfs-group=modp1024 
[admin@Office2] > ip ipsec proposal print 
Flags: X - disabled, * - default 
 0  * name="default" auth-algorithms=sha1 enc-algorithms=3des lifetime=30m 
      pfs-group=modp1024


- Создаем ipsec policy:

[admin@Office2] > ip ipsec policy add action=encrypt disabled=no 
dst-address=192.168.1.0/24 ipsec-protocols=esp level=require priority=0 
proposal=default protocol=udp sa-dst-address=10.0.16.9 
sa-src-address=10.0.16.10 src-address=192.168.2.0/24 tunnel=yes 
[admin@Office2] > ip ipsec policy print 
Flags: T - template, X - disabled, D - dynamic, I - inactive, * - default 
 0 TX* group=default src-address=85.172.xx.yy/32 dst-address=83.239.xx.yy/32 
       protocol=udp proposal=default template=yes 

 1     src-address=192.168.2.0/24 src-port=any dst-address=192.168.1.0/24 
       dst-port=any protocol=udp action=encrypt level=require 
       ipsec-protocols=esp tunnel=yes sa-src-address=10.0.16.10 
       sa-dst-address=10.0.16.9 proposal=default priority=0


- Создаем ipsec peer:
[admin@Office2] > ip ipsec peer add address=10.0.16.9/32 auth-method=pre-shared-key
dh-group=modp1024 disabled=no dpd-interval=disable-dpd dpd-maximum-failures=1
enc-algorithm=3des exchange-mode=main generate-policy=no hash-algorithm=sha1
lifebytes=0 lifetime=1d nat-traversal=no proposal-check=obey secret=test
send-initial-contact=yes
[admin@Office2] > ip ipsec peer print
Flags: X - disabled, D - dynamic
0 address=10.0.16.9/32 local-address=0.0.0.0 passive=no port=500
auth-method=pre-shared-key secret="test" generate-policy=no
policy-group=default exchange-mode=main send-initial-contact=yes
nat-traversal=no proposal-check=obey hash-algorithm=sha1
enc-algorithm=3des dh-group=modp1024 lifetime=1d lifebytes=0
dpd-interval=disable-dpd dpd-maximum-failures=1

- Добавим маршрут в Офис 1
[admin@Office2] > ip route add disabled=no distance=1 dst-address=192.168.1.0/24 
gateway=10.0.16.9 scope=30 target-scope=10


После всех этих настроек в /ip ipsec remote-peers отображаются соедения
[admin@Office1] > ip ipsec remote-peers print 
 0 local-address=10.0.16.9 remote-address=10.0.16.10 state=established 
   side=initiator established=4m22s


Вот казалась бы и вся не сложная настройка и после этого в /ip ipsec installed-sa должны появиться записи, но они никак не появляются. Из одной сети в другую данные передаются прекрасно, но у меня есть подозрение что канал получился не шифрованный, так как нет записей в /ip ipsec installed-sa и при работе процессор вообще не загружается. Пытаясь разобраться с проблемой добавил на каждом из Mikrotik правило для фаервола:

/ip firewall filter
add chain=input protocol=udp port=1701,500,4500
add chain=input protocol=ipsec-esp


Версии Mikrotik 6.19.

Уже все что-только можно перепробовал, все инструкции прочитал какие-только смог найти, но все равно никак не получается настроить работать. ;( Прошу подсказать, что еще я упустил при настройке и что необходимо поправить. За ранее большое спасибо за советы.
  • Вопрос задан
  • 30607 просмотров
Пригласить эксперта
Ответы на вопрос 3
ifaustrue
@ifaustrue
Пишу интересное в теллеграмм канале @cooladmin
Ух, много написали, потому я мельком только глянул.

Итак, если вам нужно соеденить два офиса, чтобы трафф из сети 192.168.1.Х/24 ходил в сеть 192.168.2.Х/24 то в принципе L2TP туннель вам в этом случае не требуется, достаточно создать туннель на уровне IPSec (что вы кстати и делаете у себя в настройках), никаких маршрутов и политик в этом случае не нужно. IPSec в туннельном режиме сам создаст прозрачный для ROS туннель и будет заворачивать в него трафик.

Порядок действий такой:
1. Создаём на каждом МК IPSec Peer, где адрес пира - удалённый офис, с разрешением добавлять политики трафика.
2. Создаём на каждом МК IPSec политики, где сеть отправления - локальная сеть; сеть назначения - удалённая сеть; пир отправления - внешний адрес этого МК; пир назначения - удалённый белый адрес пира, тот же что настроен в соседней вкладке.
3. В правилах NAT делаем Аццес правило для трафика туда сюда между этими сетями.

В роутинг листе должно быть пусто. Если появятся строчки обмена ключами - всё заработало.
Всё что нужно, но наглядно в статье Site to Site IpSec Tunnel
Ответ написан
@kijimoshike
OpenVPN в Mikrotik не поддерживает UDP. Задержка в VPN канале будет большая.
Ответ написан
Комментировать
@awsswa59
ipsec настолько сильно тормозит процессор на микротик - что решение не жизнеспособное
поднимайте openvpn
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы