Техническая задача: организовать 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. Добавить:
2. В разделе IP-IPSec-Proposals в дефолтном правиле ОБЯЗАТЕЛЬНО сменить SHA1 на MD5!
3. IP-IPSec-Peers. Добавить:
После этого, если циска уже настроена, то должна поднятся сессия:
И автоматически сгенерируются политики:
4. IP-Routes. Добавить:
После этого можно заглянуть обратно в IP-IPSec, закладка Instaled SAs, и вы должны увидеть, что байтики бегут по тунелю в обе стороны:
Надеюсь этот материал сэкономит кому-нибудь время и нервы.
Автор: vladadm