Mikrotik-Cisco IPSec туннель

Понадобилось тут соорудить IPSec-туннель между роутером Cisco (в нашем случае, Cisco 1760), и роутером на Mikrotik RouterOS (Mikrotik RB/750). Раз надо, значит надо.


Оговорюсь, я пошел по самому простому пути – не создавал дополнительных туннелей ни для транспорта IPSec (L2TP), ни для транспорта данных внутри IPSec (GRE). Эти случаи я опишу позже. Пока же – два роутера имеют реальные статические адреса, и соединяются между собой ipsec-туннелем для передачи данных.

Тип аутентификации – passphrase (ключи не использутся, только секретная фраза). DES/MD5. Время жизни ключа – 8ч.
Тип шифрования трафика – DES.

Сначала, настроим Mikrotik.

/ip address
#Назначем интерфейсам нужные IP-адреса
add address=a.b.c.d/30 interface=eth1
add address=192.168.10.1/24 interface=eth2

/ip ipsec peer
#Тут определяем пира и параметры аутентификации.
add address=w.x.y.z comment=PEER enc-algorithm=des generate-policy=yes lifetime=8h secret=SeCrEtKeY

/ip ipsec policy
#Policy, который обеспечит прохождение трафика на нужные сети через туннель
add dst-address=172.16.0.0/16 level=unique priority=10 sa-dst-address=w.x.y.z \
sa-src-address=a.b.c.d src-address=192.168.10.0/24 tunnel=yes

/ip ipsec proposal
#То, что в Cisco называется trasnform set
set [ find default=yes ] auth-algorithms=md5 enc-algorithms=des lifetime=8h pfs-group=none

Затем, настроим Cisco.

crypto isakmp policy 10
 hash md5
 authentication pre-share
 group 2
 lifetime 28800
crypto isakmp key SeCrEtKeY address a.b.c.d
!
!
crypto ipsec transform-set PEER esp-des esp-md5-hmac
!
crypto map IPSEC_MAP 10 ipsec-isakmp
 set peer a.b.c.d
 set transform-set PEER
 match address 112
!
!
!
!
interface FastEthernet0/0.100
 ip address w.x.y.z 255.255.255.252
 speed auto
 crypto map IPSEC_MAP
interface FastEthernet0/0.200
 encapsulation dot1Q 200
 ip address 172.16.0.1 255.255.0.0
access-list 112 permit ip 172.16.0.0 0.0.255.255 192.168.10.0 0.0.0.255

После этого пускаем пинг в соседнюю сеть, чтобы туннель поднялся (да, до этого момента ничего не будет). Максимум после второго-третьего пакета пинг должен пойти. (Иногда первые один-два теряются из-за аутентификации и установления туннеля.)

В интернетах пишут, что после некоторого времени SA протухают, и их нужно удалять вручную, но этот баг, думаю, стоит отдельного, подробного разбирательства. В данном случае, у меня все установилось нормально.

7 Comments

  1. я сам нахожусь в сети провайдера ТТК у меня частный пиринг. Я реализовал при помощи 2-х одинаковых роутеров (Netgear wnr 2200) с альтернативной прошивкой DD-wrt канал связи между железками при промощи OPENVPN

    1. OpenVPN это хорошо и здорово, если воспользуетесь поиском по сайту, то увидите, что я уже описывал такие каналы. Тут же была задача поднять именно IPSec.

  2. > В интернетах пишут, что после некоторого времени SA протухают, и их нужно удалять
    >вручную, но этот баг,
    Это не баг, а нормальная работа протокола
    зачем иметь туннель если в нем нет необходимости

  3. У меня инициатор IPSec тунеля является cisco router, клиент mikrotik, но не смотря на то, что главным устройство является cisco, поднять тунель он не может. Тунель “оживает” если с моей сети инициировать соединение (к примеру пинг на адрес из сети за cisco роутером)
    Кто нить сталкивался? как решили?

    1. Сталкивался, решил заменой микрота на Cisco 1760 решения пока не нашел. можно попробовать 6.11, они там много чего допилили в плане IPSec тоже.
      Ну либо добавить задание в netwatcher, который будет периодически опрашивать пира

Leave a Reply