Я уже писал как настроить IPSec между Cisco и Mikrotik. С тех пор утекло много воды, но, периодически, возникает необходимость задружить Микротик с чем-нибудь. Иногда даже по IPSec. Сегодня будем дружить с Juniper SRX.
Кратенько, буквально в режиме how-to хочу рассказать как их подружить через ipsec site-to-site. На стороне Juniper настраиваем route-based VPN. На обеих сторонах будем использовать DST/SRC-NAT чтобы жизнь медом не казалась.
Настройки достаточно стандартны, никаких извращений (пока). Я привожу только секцию настройки IPSec (ну и NAT). Предполагается, что ip-связность между устройствами у вас уже есть (например, через провайдерский VPN или интернет).
Как настраивать IPSec в Juniper я тоже уже писал, так что подробно останавливаться не буду.
Конфиг джунипера:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | set security ike proposal ike-phase1-proposal-1 description ike-phase1-proposal1 set security ike proposal ike-phase1-proposal-1 authentication-method pre-shared-keys set security ike proposal ike-phase1-proposal-1 dh-group group5 set security ike proposal ike-phase1-proposal-1 authentication-algorithm sha1 set security ike proposal ike-phase1-proposal-1 encryption-algorithm 3des-cbc set security ike proposal ike-phase1-proposal-1 lifetime-seconds 86400 set security ike policy snake-policy mode main set security ike policy snake-policy description "Mikrotik Tunnel" set security ike policy snake-policy proposals ike-phase1-proposal-1 set security ike policy snake-policy pre-shared-key ascii-text "VerySecretPa$$word" set security ike gateway snake-gw ike-policy snake-policy set security ike gateway snake-gw address 1.1.1.2 set security ike gateway snake-gw external-interface lo0.2 set security ipsec proposal 3DES-SHA1-3600 description ipsec-phase2-proposal set security ipsec proposal 3DES-SHA1-3600 protocol esp set security ipsec proposal 3DES-SHA1-3600 authentication-algorithm hmac-sha1-96 set security ipsec proposal 3DES-SHA1-3600 encryption-algorithm 3des-cbc set security ipsec proposal 3DES-SHA1-3600 lifetime-seconds 3600 set security ipsec policy 3DES-SHA1-3600-policy description ipsec-phase2-policy set security ipsec policy 3DES-SHA1-3600-policy proposals 3DES-SHA1-3600 set security ipsec vpn snake bind-interface st0.99 set security ipsec vpn snake df-bit clear set security ipsec vpn snake ike gateway snake-gw set security ipsec vpn snake ike proxy-identity local 172.20.0.99/32 set security ipsec vpn snake ike proxy-identity remote 192.168.99.0/24 set security ipsec vpn snake ike proxy-identity service any set security ipsec vpn snake ike ipsec-policy 3DES-SHA1-3600-policy set security ipsec vpn snake establish-tunnels immediately set interfaces st0 unit 99 description vpn_snake set interfaces st0 unit 99 multipoint set interfaces st0 unit 99 family inet address 172.27.99.254/24 set interfaces st0 unit 99 family inet next-hop-tunnel 172.27.99.1 ipsec-vpn snake set routing-options static route 192.168.99.0/24 next-hop 172.27.99.1 set security zones security-zone VPN interfaces st0.99 set security address-book global address auchakin 172.18.10.10/32 set security address-book global address snake-home 192.168.99.0/24 set security nat source pool vpn_snake address 172.20.0.99/32 to 172.20.0.99/32 set security nat source rule-set SNAT-OFFICE-TO-VPN rule snake match source-address-name VPN_ALLOW set security nat source rule-set SNAT-OFFICE-TO-VPN rule snake match destination-address-name ps2snake_nat_DST set security nat source rule-set SNAT-OFFICE-TO-VPN rule snake then source-nat pool vpn_snake #proxy-arp, необходим для dst-nat set security nat proxy-arp interface st0.99 address 172.20.0.99/32 #Правила для DST-NAT set security nat destination rule-set DNAT-VPN-TO-OFFICE rule SNAKE match destination-address 172.20.0.99/32 set security nat destination rule-set DNAT-VPN-TO-OFFICE rule SNAKE then destination-nat pool vpn_snake set security nat destination pool vpn_snake address 172.18.10.10 set security policies from-zone VPN to-zone OFFICE policy server-access match source-address snake-home set security policies from-zone VPN to-zone OFFICE policy server-access match destination-address auchakin set security policies from-zone VPN to-zone OFFICE policy server-access match application any set security policies from-zone VPN to-zone OFFICE policy server-access then permit |
Конфиг микротика. Опять же, мало чем отличается от прошлой статьи. Тут, главное, правильно описать policy, а также NAT (если будете его настраивать) и маршрутизацию. Также имейте в виду, что туннель может подняться не сразу, и тут джуниперовская возможность «автоподжига» может и не сработать.
1 2 3 4 5 6 7 8 9 10 11 12 13 | /ip ipsec proposal set [ find default=yes ] enc-algorithms=3des add enc-algorithms=3des name=ps-srx550 /ip ipsec peer add address=2.2.2.2/32 dh-group=modp1536 enc-algorithm=3des generate-policy=port-override secret="VerySecretPa$$word" /ip ipsec policy set 0 disabled=yes add dst-address=172.20.0.99/32 level=unique priority=10 proposal=ps-srx550 sa-dst-address=2.2.2.2 sa-src-address=1.1.1.2 src-address=192.168.99.0/24 tunnel=yes /ip firewall nat add chain=srcnat dst-address=172.20.0.99 src-address=192.168.99.0/24 add action=src-nat chain=srcnat dst-address=172.20.0.99 src-address=192.168.88.0/24 to-addresses=192.168.99.0/24 add action=netmap chain=dstnat dst-address=192.168.99.0/24 src-address=172.20.254.99 to-addresses=192.168.88.0/24 |
После этого «поджигаем» туннель и проверяем, что связность по туннелю установлена. Это может произойти не сразу, в течение пары минут. Если не завелось — советую проверить настройки, а также версию RouterOS.
Удачи ;)
Добрый день, а можно соединить netscreenOS с routerOS?
на SSG немного различаются настройки с SRX, и никак не удается поднять туннель
У меня под рукой нет SSG, так что не могу проверить.
Но в целом не вижу больших проблем… главное удостовериться, что настройки точно совпадают на обеих сторонах
можете объяснить про PFS Group в микротике, если я выбираю на Джунипере PFS Group 2 на микротике все по другому
У микротика в Wiki описано соответствие их нотации и номеров групп
Спасибо! :)
В стороне Джунипера в логах есть информативное сообщение IKE айпи адрес Phase 2 msg ID a1c7b413: Completed negotiations with SPI 559e155e, tunnel ID 61, and lifetime 3600 seconds/0 KB.
но туннель не поднимается
На стороне микротика installed SAs показывает соединение
в чем проблема может быть
Все банально, на самом деле, это частая проблема, не может джунипер правильно определить состояния линка. Например, у меня есть два канала впн, где на стороне джунипера стоит состояние Ready, хотя, по факту, туннель работает и трафик идет.
на стороне джунипера вы пишете:
set interfaces st0 unit 99 family inet next-hop-tunnel 172.27.99.1 ipsec-vpn snake
set routing-options static route 192.168.99.0/24 next-hop 172.27.99.1
Но на стороне микротика адрес 172.27.99.1 не сконфигурен.
Как оно работает?
Я попробовал по Вашему конфигу чуть поменяв под свои реалии — у меня IPSEC поднимается но трафик через него не идет.
мне не нужно натить.
172.27.99.1 прописывается на Juniper. Собственно, это route-based ipsec, и это один из способов его организации на SRX.
а где конкретно он прописывается? По вашему конфигу получается, что на SRX прописан 172.27.99.254, а .1 должен быть на Микротике, где его нет.
Да, я понял о чём вы. Действительно, получается непрозрачно.
Если у вас достаточно новый софт (15.1 и выше), то вы можете использовать traffic-selectors, тогда на st0 нужен будет только саб-интерфейс, а маршрут добавится автоматически при поднятии туннеля.
Зачем NAT в туннеле? это создание дополнительных проблем, особенно с телефонией. Тем более, с обеих сторон — серые IP адреса.
Указывать туннельный интерфейс не надо
Микротик не может указать несколько подсетей в src(или я не знаю, как), но связка cisco-juniper в таких случаях делается через traffic selector (возможно, придется обновить JunOS)
из-за отсутствия туннельного интерфейса на микротике в такой конфигурации нет возможности использовать динамическую маршрутизацию, поэтому нужен GRE over ipsec, тогда используется туннель точка-точка (адрес/32 адрес/32).
промежуточные варианты (как этот) — не лучшее решение
Можно и без NAT, но у меня было пересечение домашней и рабочей сети, поэтому пришлось делать. Но можно и без него, разумеется.
Какой src вы имели в виду? Если в ipsec — ну так на каждую сеть своя policy, в джунипере и циске ровно точно так же. В Cisco это будет запись в acl, в джунипере свой ts (начиная с 12.46, емнип).
Необходимость динамики я тут не поднимал, но при необходимости да, нужен будет OSPF (хотя мне тут рядом утверждают, что и без него заведётся, но сам не проверял).
Лучшее или нет — будет полностью зависеть от ситуации. Можете лучше — дерзайте! Кто ж останавливает.