В этой статье мы поговорим о Hub-and-Spoke VPN с одной динамической и двумя статическими крипто-картами между маршрутизаторами cisco. Сценарий следующий: Имеется центральный головной офис, который будет выступать как хаб нашей VPN сети (смотрите схему ниже). Головной офис будет иметь динамическую крипто-карту, в то время как филиалы будут иметь статическую крипто-карту. Конфигурируя в головном офисе динамическую крипто-карту, можно в удаленном филиале иметь динамический внешний IP адрес. Филиал будет иметь статическую крипто-карту, поскольку удаленная сторона (наш головной офис) будет иметь статический внешний IP адрес.
Прежде всего, давайте обсудим некоторые ключевые моменты, которые нужно иметь в виду для этого сценария, который использует вместе статические и динамические крипто-карты.
~ В случае статических крипто-карт, все пиры на VPN концентраторе (HUB) должны быть сконфигурены вручную со специфичными статическими внешними адресами. В случае динамических крипто-карт, нам не требуется конфигурить пиры один к одному на VPN концентраторе (HUB).
~ В случае динамических крипто-карт, инициатор VPN сессии будет только удаленная сторона (spoke site). Это значит, что если трафик не пришел от удаленной стороны (spoke), то динамический VPN туннель не будет установлен. Однако, когда трафик с удаленной стороны (spoke) инициирует VPN туннель, трафик по нему будет двунаправленным, между филиалом и головным офисом.
~ Простота конфигурации концентратора (HUB). Если мы добавим много удаленных сторон (spoke), конфигурацию потребуется производить только на стороне споков, изменять конфигурацию на хабе не потребуется.

Оборудование, используемое в этом примере:
Головной офис — 3725 IOS c3725-advsecurityk9-mz.124-1c
Филиалы — 2691 IOS c2691-adventerprisek9-mz.123-17a
Сценарий:
Мы имеем головной офис и два филиала, которые подключены к Интернету. Хосты филиала должны иметь безопасный доступ к серверам, расположенным в головном офисе. То есть, сети 192.168.4.0/24 и 192.168.5.0/24 должны иметь безопасный доступ в сеть 192.168.1.0/24. Это обычный сценарий, который многие организации применяют по всему миру. В этом примере используются только внутренние адреса. В настоящей конфигурации IP адрес WAN головного офиса и маршрутизаторов филиалов будут иметь реальные IP адреса.
Конфигурация:
Сначала надо убедиться, что все WAN интерфейсы могут соединяться друг с другом через Интернет.
Конфигурация удаленного филиала:
! Создание isakmp политики. Если имеется несколько политик, рекомендуется наиболее строгую политику ставить первой (то есть присвоить ей наименьший номер)
crypto isakmp policy 10
encr aes 256
hash sha
authentication pre-share
group 2
! Настройка crypto isakmp key. Этот ключ между всеми пирами должен быть одинаковым. В нашем случае филиалы должны указать IP адрес головного офиса и иметь одинаковый с ним ключ.
crypto isakmp key somestrongkey address 192.168.2.2
! Настройка алгоритмов шифрования. Это определяет, какой алгоритм шифрование и хеширования будет использоваться для шифрования VPN трафика.
crypto ipsec transform-set ts esp-aes 256 esp-sha-hmac
! Создание акцесс листа, определяющий трафик который должен проходить через VPN. В случае филиала 1 будет следующее: если источник является 192.168.4.0/24 а получатель 192.168.1.0/24, то трафик будет зашифрован. Так же для филиала 2, если источник является 192.168.5.0/24 а получатель 192.168.1.0/24, то этот трафик будет зашифрован.
ACL филиала 1:
ip access-list extended vpn
permit ip 192.168.4.0 0.0.0.255 192.168.1.0 0.0.0.255
ACL филиала 2:
ip access-list extended vpn
permit ip 192.168.5.0 0.0.0.255 192.168.1.0 0.0.0.255
! Создаем крипто-карту и привязываем к уже созданному transform-set и акцесс листу. Так же указываем VPN пир и включаем Reverse-route. reverse-route необходим чтобы при поднятии VPN туннеля, в статическую таблицу маршрутизации добавлялся маршрут к сети получателя, описанного в акцесс листе. В нашем случае это сеть назначения 192.168.1.0/24 и акцесс лист «vpn».
crypto map vpn 10 ipsec-isakmp
set peer 192.168.2.2
set transform-set ts
match address vpn
reverse-route
! Назначаем крипто-карту на внешний интерфейс. В нашем случае Fa0/0. После этого ISAKMP будет включен.
interface FastEthernet0/0
crypto map vpn
Настройки филиалов завершены. Приступим к настройке головного офиса.
Конфигурация головного офиса:
! crypto isakmp политика не изменяется
crypto isakmp policy 10
encr aes 256
hash sha
authentication pre-share
group 2
! Все адреса пиров назначаются с секретным ключом, нули задаются для того, чтобы избежать вписывания каждого адреса филиала отдельно.
crypto isakmp key somestrongkey address 0.0.0.0 0.0.0.0
! IPSec Transform-set не меняется
crypto ipsec transform-set ts esp-aes 256 esp-sha-hmac
! Акцесс лист, описывающий какой трафик будет в него попадать, будет изменен. Отправитель будет 192.168.1.0/24 а получатель 192.168.4.0/24 и 192.168.5.0/24.
ip access-list extended vpn
permit ip 192.168.1.0 0.0.0.255 192.168.5.0 0.0.0.255
permit ip 192.168.1.0 0.0.0.255 192.168.4.0 0.0.0.255
! Настройка динамической крипто-карты. Определим теже параметры, за исключением назначения пиров.
crypto dynamic-map vpndynamic 10
set transform-set ts
match address vpn
reverse-route
!Создание крипто-карты и привязка к ней уже созданной динамической крипто-карты.
crypto map dynmap 10 ipsec-isakmp dynamic vpndynamic
!Назначим крипто-карту на внешний интерфейс. В нашем случае Fa0/0. После этого ISAKMP будет включен.
interface FastEthernet0/0
crypto map dynmap
Проверка работоспособности:
Теперь, когда настройка завершена, проверим ее работоспособность. Прежде всего пропингуем SRV с host1. Проверим следующее: устанавливается ли VPN туннель, увеличиваются ли счетчики decaps/encaps, добавляется ли маршрут RRI (reverse-route injection) в таблицу маршрутизации branche1 и hq, изменяются ли счетчики попаданий в акцесс лист или нет.
!Мы видим, что первые несколько ping пакетов теряются, посколько установка VPN туннеля занимает некоторе время.
host1#ping 192.168.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
..!!!
Success rate is 60 percent (3/5), round-trip min/avg/max = 40/96/164 ms
host1#ping 192.168.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/62/124 ms
!Теперь проверим состояние ISAKMP
hq#show crypto isakmp sa
dst src state conn-id slot status
192.168.2.2 192.168.3.2 QM_IDLE 1 0 ACTIVE
branch1#show crypto isakmp sa
dst src state conn-id slot
192.168.2.2 192.168.3.2 QM_IDLE 1 0
!Давайте посмотрим еще раз, увеличиются ли encaps/decaps. Если нет, а хосты пингуют друг друга, значит трафик идет не через VPN туннель.
branch1#show crypto ipsec sa
interface: FastEthernet0/0
crypto map tag: vpn, local addr. 192.168.3.2
protected vrf:
local ident (addr/mask/prot/port): (192.168.4.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)
current_peer: 192.168.2.2:500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 13, #pkts encrypto: 13, #pkts digest 13
#pkts decaps: 12, #pkts decrypto: 12, #pkts verify 12
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 1, #recv errors 0
!Проверим что RRI в порядке и акцесс листы совпадают.
hq#show ip route static
S 192.168.4.0/24 [1/0] via 192.168.3.2
branch1#show ip route static
S 192.168.1.0/24 [1/0] via 192.168.2.2
hq#show access-lists vpn
Extended IP access list vpn
10 permit ip 192.168.1.0 0.0.0.255 192.168.5.0 0.0.0.255
20 permit ip 192.168.1.0 0.0.0.255 192.168.4.0 0.0.0.255 (25 matches)
branch1#show access-lists vpn
Extended IP access list vpn
10 permit ip 192.168.4.0 0.0.0.255 192.168.1.0 0.0.0.255 (26 matches)
Все указывает на то, что все в порядке и VPN работает корректно. Так же помните, что мы не прописываем пиров в конфигурации головного офиса, и это делает конфигурацию простой (когда мы имеем 20 филиалов, то не требуется прописывать статические пиры филиалов в головном офисе).
Еще одно большое преимущество динамических крипто-карт в головном офисе, это когда провайдер выдает филиалам динамические реальные IP адреса.
Этот текст мой вольный перевод статьи Site to Site VPN with Dynamic Crypto Map