Mikrotik + IPSec + Cisco = Мир, Дружба, Жвачка

в 15:24, , рубрики: Cisco, ipsec, mikrotik, Сетевые технологии, метки: , ,

Техническая задача: организовать ipip-тоннель между офисами, с шифрованием ipsec, при помощи Mikrotik RB450G и Cisco 2821.

Ньюансы

  • последняя версия софта на микроте (5.20)
  • тип тоннеля на циске IPIP
  • тип трансформы «transport», вместо «tunnel»

Исходные данные

  • Cisco 2821 (OS v12.4)
  • 2. Mikrotik RB450G
  • 3. Реальные внешние IP на обоих устройствах
  • 4. Адрес циски: 77.77.77.226. Подсеть со стороны циски: 10.192.0.0/22
  • 5. Адрес микротика: 88.88.88.2. Подсеть со стороны микротика: 192.168.88.0/24

Предыстория

Столкнулся по работе с необходимостью замены серверов в наших филиалах, на что-нибудь более надёжное, аппаратное.
Связь у нас с центральным офисом осуществляется через тонели с шифрованием ipsec. В центральном офисе у нас, собственно всё на кошкообразных построено, а в большинстве филиалов стоят обычные сервера под FreeBSD, которые цепляются тонелями через с помощью racoon.
Встала задача, в связи с устареванием, выходом из строя самих серверов, начать устанавливать простые, недорогие аппаратные решения.

Братья по-разуму, коллеги и форумы натолкнули меня на изделия Mikrotik, и сразу же я направил к ним письмо следующего содержания:

Добрый день. Подскажите, если не трудно подходящию модель микротика, для следующих целей: nat-роутер, поддержка ipsec-тунелей с несколькими цисками 28хх, нагрузка до 100мбит, поддержка ospf. Желательно, но не обязательно "POE" Заранее спасибо.

Ответ пришёл неожиданно, очень быстро, в течении одного дня:

Здравствуйте, Владимир
Спасибо за интерес к нашей компании и продукции Mikrotik.
В зависимости от пропусной способности, можем предложить Вам
- Маршрутизатор RB/MRTG (miniROUTERG) 4531  
- Маршрутизатор RB1100AHx2 16915  

Таблицы производительности по ссылкам:
http://routerboard.com/RB450G
http://routerboard.com/RB1100AHx2

Пример настройки связки
http://wiki.mikrotik.com/wiki/IPSec_VPN_with_Dynamic_Routing_/_Mikrotik_and_Cisco

Я сразу остановил свой выбор на «RB450G». Заказали, привезли.
Сразу скажу, по вышеуказанной ссылке настроить не удалось. Данные там устаревшие, некоторые параметры в версии 5.20 просто отсутствуют.
Порылся по форумам, почитал статьи примерно такого содержания:
betep.wpl.ru/2009/02/wiki-mikrotik.html
netandyou.ru/17/ — кстати интересная, но рассматривается пример ipsec в gre-тоннеле, а в моём случае тип тонеля ipip, и режим работы crypto ipsec transform-set на циске не «Tunnel», а «Transport». Впрочем тоже не получилось.
Так же перерыл ещё кучу материалов на форумах, добился, чтобы проходило соединение, шифрование включалось, но ничего не работало, пакеты отказывались бегать по тоннелю, как я не старался их к этому принудить.
Два потерянных дня и побудили меня написать на хабр, возможно кому-то эти строки помогут в работе.

В итоге, всё оказалось банально и очень просто.

Я акцентрировал своё внимание на настройках политик IPSec в микротике, и похоже это было ошибкой :)
После вдумчивого изучения материала, который мне действительно помог:
wiki.mikrotik.com/wiki/Manual:IP/IPsec#Transport_mode_2 — от сюда и ниже на пару-тройку страниц
и
wiki.mikrotik.com/wiki/Manual:Interface/IPIP — тут просто основы, но на-всякий случай.

Я просто убрал все политики (к слову — они были правильно настроены, судя по динамическим, создавшимся позже), и просто установил галочку автогенерации политик. Что успешно и проделала циска с микротиком после соединения.

Все настройки (консольные и аналогичные графические) привожу ниже.

Cisco:

! Политика авторизации - хеш мд5 и шифрование 3des по парольному ключу (pre-share)
crypto isakmp policy 20
 encr 3des
 hash md5
 authentication pre-share
! group2 означает, что в микротике надо установить dh-group=modp1024
 group 2

! Сам ключ
crypto isakmp key MyPassWord address 88.88.88.2 no-xauth
crypto isakmp keepalive 30
! Трансформ. Внимание! Используется transport, а не tunnel режим
crypto ipsec transform-set transform-2 esp-3des esp-md5-hmac
 mode transport

crypto dynamic-map dynmap 10
 set transform-set transform-2
 reverse-route

crypto map vpnmap client configuration address respond
crypto map vpnmap 5 ipsec-isakmp dynamic dynmap
crypto map vpnmap 10 ipsec-isakmp
! криптомапа микротика
crypto map vpnmap 93 ipsec-isakmp
 description Mikrotik_Local
! ip микротика
 set peer 88.88.88.2
 set security-association lifetime seconds 86400
 set transform-set transform-2
! pfs group2 означает, что в микротике надо установить dh-group=modp1024
 set pfs group2
! access-лист, разрешающий соединение
 match address 137
! Сам тоннель
interface Tunnel93
 description tunnel_Mikrotik
 ip unnumbered GigabitEthernet0/1
! Цискин адрес
 tunnel source 77.77.77.226
! Адрес микрота
 tunnel destination 88.88.88.2
! тип тонеля ipip
 tunnel mode ipip
! Наружный интерфейс
interface GigabitEthernet0/1
 description Internet
 ip address 77.77.77.226 255.255.255.224
 no ip redirects
 no ip unreachables
 no ip proxy-arp
 ip wccp web-cache redirect out
 ip virtual-reassembly
 ip route-cache policy
 no ip mroute-cache
 duplex auto
 speed auto
 no mop enabled
! ВКЛЮЧАЕМ ШИФРОВАНИЕ НА ИНТЕРФЕЙСЕ
 crypto map vpnmap
! Роутинг сети, находящейся за микротиком
ip route 192.168.88.0 255.255.255.0 Tunnel93
! Разрешение на соединение тоннеля
access-list 137 permit ip host 77.77.77.226 host 88.88.88.2

Миктротик:

/interface ipip
add disabled=no dscp=0 local-address=88.88.88.2 mtu=1260 name=ipip1 
    remote-address=77.77.77.226
add address=192.168.88.1/24 comment="default configuration" disabled=no 
    interface=ether2-master-local network=192.168.88.0
add address=88.88.88.2/30 disabled=no interface=ether1-gateway network=
    62.5.248.248
add add-default-route=yes comment="default configuration" 
    default-route-distance=1 disabled=no interface=ether1-gateway 
    use-peer-dns=yes use-peer-ntp=yes
/ip ipsec peer
add address=77.77.77.226/32 auth-method=pre-shared-key dh-group=modp1024 
    disabled=no dpd-interval=2m dpd-maximum-failures=5 enc-algorithm=3des 
    exchange-mode=main generate-policy=yes hash-algorithm=md5 lifebytes=0 
    lifetime=1d my-id-user-fqdn="" nat-traversal=no port=500 proposal-check=
    obey secret=MyPassWord send-initial-contact=yes
/ip route
add comment="Default routing" disabled=no distance=1 dst-address=0.0.0.0/0 
    gateway=88.88.88.1 scope=30 target-scope=10
add disabled=no distance=1 dst-address=10.192.0.0/22 gateway=ipip1 scope=30 
    target-scope=10
/ip firewall filter
add action=accept chain=input comment="default configuration" disabled=no
add action=accept chain=output disabled=no
/system logging
add action=memory disabled=no prefix="" topics=ipsec

Если кто-то настраивает через микротиковский GUI «Winbox», аналогичная настройка:
1. Интерфейсы-IP Tunnel. Добавить:
Mikrotik + IPSec + Cisco = Мир, Дружба, Жвачка
2. В разделе IP-IPSec-Proposals в дефолтном правиле ОБЯЗАТЕЛЬНО сменить SHA1 на MD5!
3. IP-IPSec-Peers. Добавить:
Mikrotik + IPSec + Cisco = Мир, Дружба, Жвачка
После этого, если циска уже настроена, то должна поднятся сессия:
Mikrotik + IPSec + Cisco = Мир, Дружба, Жвачка
И автоматически сгенерируются политики:
Mikrotik + IPSec + Cisco = Мир, Дружба, Жвачка
4. IP-Routes. Добавить:
Mikrotik + IPSec + Cisco = Мир, Дружба, Жвачка
После этого можно заглянуть обратно в IP-IPSec, закладка Instaled SAs, и вы должны увидеть, что байтики бегут по тунелю в обе стороны:
Mikrotik + IPSec + Cisco = Мир, Дружба, Жвачка

Надеюсь этот материал сэкономит кому-нибудь время и нервы.

Автор: vladadm

Поделиться

* - обязательные к заполнению поля