
В этой статье будет рассмотрен пример настройки DMVPN между устройствами Eltex серии ESR и Huawei линейки Access Routers (AR), где в качестве Hub используется маршрутизатор AR , а в качестве Spoke - маршрутизаторы ESR и AR.
mtu - 1400
adjust-mss 1360
время регистрации ( в том числе повторной ) - 180 с
время жизни NHRP-регистрации о регистрации на удалённом соседе - 540 с
Защищённость с помощью IPSec
eBGP (Spoke - в одной AS, Hub - в другой) в качестве протокола маршрутизации DMVPN Cloud
Front-door VRF
IKE:
Алгоритм аутентификации: SHA2-256
Алгоритм шифрования: AES-256
Метод аутентификации: по ключам
Группа Дифи-Хеллмана: 19
Механизм dead-peer-detection
Действие при срабатывании: clear
Интервал проверки: 10 с
Базовый таймаут ожидания ответа: 5 с
Количество попыток: 2

Установить сетевую связность между LAN-подсетями, расположенными за Spoke-устройствами.В данном примере устройство модели ESR выступает в роли Spoke-1, а AR - в роли Spoke-2 и Hub. Каждый из Spoke будет анонсировать свою LAN-сеть Hub-устройству. Hub анонсирует каждому Spoke маршрут по умолчанию.
Создадим VRF для front-door схемы и настроим интерфейсы. Интерфейс gigabitethernet 1/0/1 выступает в роли WAN, терминируя линковочную подсеть 203.0.113.0/24 к интернет-провайдеру. Он должен находиться в отдельном пространстве маршрутизации. Саб-интерфейс gigabitethernet 1/0/2.100 в данном примере выступает в роли LAN-сегмента сети 172.16.0.0/24, доступный через VLAN 100:
hostname ESR-Spoke-1 ip vrf ISP exit interface gigabitethernet 1/0/1 ip vrf forwarding ISP ip firewall disable ip address 203.0.113.10/24 exit interface gigabitethernet 1/0/2.100 ip firewall disable ip address 172.16.0.1/24 exit |
При организации доступа к сети Интернет в отдельном VRF для этого примера мы будем использовать статическую маршрутизацию с указанием маршрута по умолчанию с некст-хопом IP-адреса 203.0.113.1 интернет-провайдера:
ip route vrf ISP 0.0.0.0/0 203.0.113.1 |
Выполним настройку GRE-интерфейса: зададим значение key, TTL, MTU и TCP Adjust-MSS для оптимальной работы сервисов:
tunnel gre 1 key 1002 ttl 255 mtu 1400 ip tcp adjust-mss 1360 |
Настроим IP-параметры на GRE-интерфейсе: укажем VRF и внешний IP-адрес, от IP-интерфейса которого будет строиться туннель и зададим ему IP-адрес:
tunnel-source vrf ISP local address 203.0.113.10 ip address 10.0.2.10/24 |
Перейдём к настройке основной части конфигурации - DMVPN. Переведём интерфейс в режим работы multipoint:
multipoint |
Зададим параметры подключения к Next-Hop Server (Hub): укажем его туннельный и NBMA (внешний) IP-адреса, а так же привяжем туннельный IP-адрес NHS для регистрации на нём. Для корректной отправки multicast-трафика через DMVPN укажем в качестве аргумента назначения Next-Hop Server (Hub):
ip nhrp map 10.0.2.1 198.51.100.10 ip nhrp nhs 10.0.2.1 ip nhrp multicast nhs |
Для работы DMVPN в третьей фазе и возможности устанавливать Spoke-to-Spoke-туннели, создавая shortcut-маршруты, включим функционал обработки NHRP Traffic-indication:
ip nhrp shortcut |
Для корректной сходимости и своевременного перестроения туннелей установим значение времени жизни записи о регистрации NHRP-клиента на удалённом соседе равное 540 секундам. Этой же командой регулируется и время повторной перерегистрации на удалённом Next-Hop Server - оно составляет 1/3 от значения holding-time, что в нашем случае равняется 180 секундам:
ip nhrp holding-time 540 |
Наконец, активируем работу протокола NHRP в mGRE-интерфейсе:
ip nhrp enable |
Укажем привязки будущих IPSec VPN-профилей, с помощью которых будет обеспечено шифрование туннельных соединений. Для Hub и Spoke должны быть указаны свои VPN-профиля для обеспечения безопасности и криптоустойчивости соединений:
ip nhrp ipsec Hub ip nhrp ipsec spokes dynamic |
Включим mGRE туннель:
enable exit |
Настройка mGRE туннеля завершена.
Для обеспечения защищённости канала настроим параметры IPSec-соединения и начнём с первой файзы. Для установления IKE-связности зададим обозначенные в условиях задачи алгоритмы аутентификации SHA-256 и шифрования - AES256. Для обеспечения надёжности шифрования IKE-соединения будем использовать алгоритмы Диффи-Хеллмана из 19-ой группы:
security ike proposal prop1 authentication algorithm sha2-256 encryption algorithm aes256 dh-group 19 exit |
Далее выполним настройку политики IKE-соединения, указав в ней Pre-shared-key, который используется как метод авторизации по умолчанию на устройствах ESR. Так же привяжем ранее созданный IKE-proposal к этой политике:
security ike policy pol1 pre-shared-key ascii-text encrypted B9B81768A85D18A965 proposal prop1 exit |
Наконец, опишем параметры идентификации IKE-соединения с Hub, по которым обе стороны смогут установить соединение. В данном примере мы используем IKE-соединение версии 2, которое является наиболее функциональным и защищённым в сравнении с первой версией:
security ike gateway Hub version v2-only |
Для установления связности по ранее настроенным алгоритмам привяжем ранее созданную ike policy pol1 :
ike-policy pol1 |
И опишем селекторы траффика, который необходимо зашифровывать - нам необходимо выполнять полное шифрование GRE, поэтому указываем локальный и удалённый адреса туннеля:
local address 203.0.113.10 local network 203.0.113.10/32 protocol gre remote address 198.51.100.10 remote network 198.51.100.10/32 protocol gre |
Укажем режим работы IPSec - Policy-based, т.к. используются селекторы трафика. А так же отключим функционал mobike - в данной конфигурации он нам не понадобится:
mode policy-based mobike disable |
Завершим часть настройки IKE-сессии заданием настроек Dead Peer Detection: действие clear будет очищать текущую IKE-сессию в случае неответа удалённой стороны на пакеты типа R-U-THERE; такие пакеты мы будем отправлять каждые 10 секунд и, если не дождёмся ответа хотя бы от одного, отправим ещё 2 пакета с интервалом в 5 секунд между ними:
dead-peer-detection action clear dead-peer-detection interval 10 dead-peer-detection retransmit timeout 5 dead-peer-detection retransmit tries 2 exit |
Для построения шифрованных Spoke-to-Spoke туннелей настройки параметров идентификации IKE-соединения схожи с предыдущими и отличны лишь в части удалённой стороны - устанавливаются значение параметров any:
security ike gateway Spokes version v2-only ike-policy pol1 local address 203.0.113.10 local network 203.0.113.10/32 protocol gre remote address any remote network any protocol gre mode policy-based mobike disable dead-peer-detection action clear dead-peer-detection interval 10 dead-peer-detection retransmit timeout 5 dead-peer-detection retransmit tries 2 exit |
Перейдём к настройке IPSec-соединения. Как и в случае с IKE-фазой, опишем алгоритмы аутентификации и шифрования. В нашем примере это SHA-256 и AES256 соответственно:
security ipsec proposal prop1 authentication algorithm sha2-256 encryption algorithm aes256 exit |
Выполним настройку политики IKE-соединения, привязав к ней IPSec-proposal:
security ipsec policy pol1 proposal prop1 exit |
Финальные настройки - описание VPN-профилей соединения, отдельно для Hub и для Spoke. В обоих случаях указываем тип IPSec-соединения как транспортный, т.к. DMVPN не может работать в туннельном режиме:
security ipsec vpn Hub type transport |
Т.к. в данном примере мы используем Front-door VRF схему, нам необходимо привязать данный VPN-профиль к vrf ISP:
ip vrf forwarding ISP |
Условием для установления IPSec-соединения будет появление трафика по заданным селекторам в настройках IKE-фазы, для этого используем команду ike establish-tunnel route :
ike establish-tunnel route |
Наконец, привяжем ранее созданные профили для IKE-фазы, где указаны селекторы трафика, который необходимо шифровать, и настройки профиля шифрования IPSec-соединения:
ike gateway Hub ike ipsec-policy pol1 |
Активируем настройку VPN-профиля:
enable exit |
Для Spoke-to-Spoke туннелей настройки будут аналогичные, с учётом привязки профилей для данного типа соединения:
security ipsec vpn spokes type transport ip vrf forwarding ISP ike establish-tunnel route ike gateway Spokes ike ipsec-policy pol1 enable exit |
Для корректного анонсирования connected-сетей из LAN-сегмента используем route-map, в котором опишем необходимый префикс:
route-map LAN_nets
rule 1
match ip address 172.16.0.0/24
exit
exit |
Настроим BGP-соединение. Spoke функционирует в автономной системе 65002, поэтому создадим процесс с номером такой AS:
router bgp 65002 |
Укажем router-id для идентификации маршрутизатора:
router-id 10.2.0.10 |
И настроим соседство с Hub'ом: номер автономной системы 65001, устанавливаеться соединение будет с IP-адреса mGRE-туннеля, AFI - IPv4 unicast. Активируем работу соседа посредством команды enable:
neighbor 10.0.2.1
remote-as 65001
update-source gre 1
enable
address-family ipv4 unicast |
В настройках address family необходимо указать ранее созданный route-map в направлении out для обеспечения фильтрации префиксов при их анонсировании соседу. Активируем работу AFI и покинем текущие настройки:
route-map LAN_nets out
enable
exit |
Перейдём в режим настройки параметров передачи информации протоколов для процесса BGP. Здесь нам необходимо указать, что мы переиспользуем маршрутную информацию connected-подсетей, но не всех, а лишь тех, что указаны в ранее созданном route-map
LAN_nets :
address-family ipv4 unicast
redistribute connected route-map LAN_nets
exit |
Наконец, активируем работу протокола BGP:
enable exit |
Настройка ESR Spoke завершена.
Как и в случае с ESR Spoke, необходимо настроить базовые функции маршрутизатора - hostname, vpn-instance (VRF), сетевых интерфейсов и маршут к ISP:
# sysname ar-Hub # ip vpn-instance ISP ipv4-family # interface GigabitEthernet0/0/0 ip binding vpn-instance ISP ip address 198.51.100.10 255.255.255.0 # ip route-static vpn-instance ISP 0.0.0.0 0.0.0.0 198.51.100.1 # |
Порядок конфигурирования сервисов в операционной системе AR отличен от ESR, поэтому следующим шагом будет настройка IPSec-соединения.
Активируем совместимость работы алгоритмов аутентификации IPSec на основе SHA2 с ESR :
# ipsec authentication sha2 compatible enable # |
Зададим глобальное время продолжительности IPSec Security Association в секундах как на ESR:
# ipsec sa global-duration time-based 10800 # |
И активируем опцию восстановления SPI для стабильной работы соединения:
# ipsec invalid-spi-recovery enable # |
Выполним настройку IPSec-соединения: укажем режим работы transport, зададим параметры аутентификации и шифрования из условий:
# ipsec proposal prop1 encapsulation-mode transport esp authentication-algorithm sha2-256 esp encryption-algorithm aes-256 # |
Перейдём к настройке IKE-соединения. Зададим алгоритмы шифрования и аутентификации из условий, укажем 19-ую группу Диффи-Хеллмана и определим метод аутентификации по pre-shared ключам:
# ike proposal 1 encryption-algorithm aes-256 dh group19 authentication-algorithm sha2-256 authentication-method pre-share integrity-algorithm hmac-sha2-256 prf hmac-sha2-256 # |
Настроим IKE-peer. В нём укажем аналогичные параметры механизма Dead-Peer Detection, pre-shared ключ, а так же привяжем ранее созданный профайл IKE:
# ike peer dmvpn pre-shared-key cipher %^%#|~\f>5J63Hm*}y:A8`mHfydGD`rkF/rv7&N"QUmT%^%# ike-proposal 1 dpd type periodic dpd idle-time 40 dpd retransmit-interval 10 rsa encryption-padding oaep rsa signature-padding pss ikev2 authentication sign-hash sha2-256 # |
Наконец, перейдём к настройке VPN-профайла. В нём мы осуществим привязку ранее созданных IKE-пира и IPSec-профайла с параметрами шифрования, а так же зададим время длительности Security Association в секундах равное 10800:
# ipsec profile dmvpn ike-peer dmvpn proposal prop1 sa duration time-based 10800 # |
Настройка IPSec завершена.
Сначала выполним настройку основных параметров GRE-туннеля. Зададим значения MTU и TCP adjust-MSS раные 1400 и 1360 соответственно для корректной работы сервисов:
# interface Tunnel0/0/1 mtu 1400 tcp adjust-mss 1360 |
Зададим туннельный IP-адрес и укажем идентификатор GRE-интерфейса (key) равное 1002:
ip address 10.0.2.1 255.255.255.0 gre key 1001 |
После ввода в конфигурации данный параметр будет отображаться как шифрованный:
|
Так как в данном примере мы используем Front-door VRF-схему, то определим внешний интерфейс, с которого будет строиться этот GRE-туннель:
source vpn-instance ISP 198.51.100.10 |
Настройка DMVPN параметров. Переведём туннель в режим работы multipoint:
tunnel-protocol gre p2mp |
Опишем IPSec VPN-профайл, с помощью которого будет осуществляться шифрование соединений:
ipsec profile dmvpn |
В данном примере мы используем третью фазу DMVPN, поэтому для отправки Traffic Indication и последующего создания shortcut-маршрутов активируем функционал перенаправления NHRP-сообщений:
nhrp redirect |
И укажем путь направления multicast-трафика в туннеле:
nhrp entry multicast dynamic # |
Настройка mGRE туннеля завершена.
Выполним настройку BGP. Hub будет функционировать в автономной системе 65001, поэтому создадим процесс маршрутизации BGP с таким номером:
# bgp 65001 |
Как и в случае с ESR Spoke, укажем router-id для идентификации маршрутизатора в BGP-процессе:
router-id 10.2.0.1 |
Так как это Hub и на нём будет концентрироватьяс множество Spoke, вместо детального описания каждого из них используем механизм указания диапазона соседств, с которыми будет устанавливаться соединение. В этом режиме маршрутизатор не выступает инициатором установления BGP-соседства, а ожидает от удалённой стороны запроса на подключение. В синтаксисе AR этот функционал обеспечивается с помощью параметров group, которые описываются аргументом <NAME> при дальнейшей настройке соседств. Укажем в group DMVPN_cloud номер автономной системы, интерфейс и диапазон подсети, из которых будем ожидать установления соединения:
group DMVPN_cloud external peer DMVPN_cloud as-number 65002 peer DMVPN_cloud connect-interface Tunnel0/0/1 peer DMVPN_cloud listen-net 10.0.2.0 24 # |
В настройках address-family IPv4 типа unicast активируем работу ранее созданной группы:
ipv4-family unicast undo synchronization peer DMVPN_cloud enable |
Согласно принципам третьей фазы DMVPN, всем Spoke-маршрутизаторам Hub должен анонсировать маршрут по умолчанию. Сделаем это с помощью route-policy:
peer DMVPN_cloud default-route-advertise route-policy 1 # |
И опишем в этой route-policy анонсирование всех префиксов:
# route-policy 1 permit node 10 # |
Настройка AR Hub завершена.
Настроим базовые функции маршрутизатора - hostname, vpn-instance (VRF), сетевых интерфейсов к LAN и WAN сгементам, а так же маршут к ISP. WAN-интерфейсом будет GigabitEthernet0/0/0, а LAN-сегмент будет доступен на маршрутизаторе через интерфейс GigabitEthernet0/0/2 с VLAN tag 200:
# sysname ar-Spoke-2 # ip vpn-instance ISP ipv4-family # interface GigabitEthernet0/0/0 ip binding vpn-instance ISP ip address 198.18.0.10 255.255.255.0 # interface GigabitEthernet0/0/2 # interface GigabitEthernet0/0/2.200 dot1q termination vid 200 ip address 172.16.254.1 255.255.255.0 # ip route-static vpn-instance ISP 0.0.0.0 0.0.0.0 198.18.0.1 # |
Как и в случае с AR Hub, активируем совместимость работы алгоритмов аутентификации IPSec на основе SHA2 с ESR :
# ipsec authentication sha2 compatible enable # |
Зададим глобальное время продолжительности IPSec Security Association в секундах как на ESR:
# ipsec sa global-duration time-based 10800 # |
И активируем опцию восстановления SPI для стабильной работы соединения:
# ipsec invalid-spi-recovery enable # |
Выполним настройку IPSec-соединения: укажем режим работы transport, зададим параметры аутентификации и шифрования из условий:
# ipsec proposal prop1 encapsulation-mode transport esp authentication-algorithm sha2-256 esp encryption-algorithm aes-256 # |
Перейдём к настройке IKE-соединения. Зададим алгоритмы шифрования и аутентификации из условий, укажем 19-ую группу Диффи-Хеллмана и определим метод аутентификации по pre-shared ключам:
# ike proposal 1 encryption-algorithm aes-256 dh group19 authentication-algorithm sha2-256 authentication-method pre-share integrity-algorithm hmac-sha2-256 prf hmac-sha2-256 # |
Настроим IKE-peer. В нём укажем аналогичные параметры механизма Dead-Peer Detection, pre-shared ключ, а так же привяжем ранее созданный профайл IKE:
# ike peer dmvpn pre-shared-key cipher %^%#|~\f>5J63Hm*}y:A8`mHfydGD`rkF/rv7&N"QUmT%^%# ike-proposal 1 dpd type periodic dpd idle-time 40 dpd retransmit-interval 10 rsa encryption-padding oaep rsa signature-padding pss ikev2 authentication sign-hash sha2-256 # |
Наконец, перейдём к настройке VPN-профайла. В нём мы осуществим привязку ранее созданных IKE-пира и IPSec-профайла с параметрами шифрования, а так же зададим время длительности Security Association в секундах равное 10800:
# ipsec profile dmvpn ike-peer dmvpn proposal prop1 sa duration time-based 10800 # |
Настройка IPSec завершена.
Сначала выполним настройку основных параметров GRE-туннеля. Зададим значения MTU и TCP adjust-MSS раные 1400 и 1360 соответственно для корректной работы сервисов:
# interface Tunnel0/0/1 mtu 1400 tcp adjust-mss 1360 |
Зададим туннельный IP-адрес и укажем идентификатор GRE-интерфейса (key) равное 1002:
ip address 10.0.2.20 255.255.255.0 gre key 1001 |
После ввода в конфигурации данный параметр будет отображаться как шифрованный:
|
Так как в данном примере мы используем Front-door VRF-схему, то определим внешний интерфейс, с которого будет строиться этот GRE-туннель:
source vpn-instance ISP 198.18.0.10 |
Настройка DMVPN параметров. Переведём туннель в режим работы multipoint:
tunnel-protocol gre p2mp |
Опишем IPSec VPN-профайл, с помощью которого будет осуществляться шифрование соединений:
ipsec profile dmvpn |
В данном примере мы используем третью фазу DMVPN, поэтому для корректной обработки приходящих от Hub сообщений типа Traffic Indication и последующего создания shortcut-маршрутов активируем функционал созданий shortcut-маршрутов:
nhrp shortcut |
Укажем параметры регистрации: no-unique позволит сохранить старую запись на удалённом NHRP-соседе о Spoke, у которого может быть изменён NBMA-адрес; interval устанавливает промежуток времени, через который Spoke будет выполнять регистрацию, а так же периодическую перерегистрацию на удалённом NHRP-соседе:
nhrp registration no-unique nhrp registration interval 180 |
Для корректной сходимости и своевременного перестроения туннелей установим значение времени жизни записи о регистрации NHRP-клиента на удалённом соседе равное 540 секундам. Это период времени, за который локальная запись об удалённом NHRP-соседе считается актуальной и валидной вплоть до поступления следующего запроса о регистрации:
nhrp entry holdtime seconds 540 |
Зададим статическую запись до Hub, указывая сначала туннельный адрес, а затем NBMA:
nhrp entry 10.0.2.1 198.51.100.10 register |
И укажем путь направления multicast-трафика в туннеле:
nhrp entry multicast dynamic # |
Настройка mGRE туннеля завершена.
Выполним настройку BGP. Hub будет функционировать в автономной системе 65001, поэтому создадим процесс маршрутизации BGP с таким номером:
# bgp 65002 |
Как и в случае с ESR Spoke, укажем router-id для идентификации маршрутизатора в BGP-процессе:
router-id 10.2.0.20 |
Настроим eBGP-соседство с Hub, указав номер автономной системы и интерфейс-источник, с которого будет устанавливаться соединение:
peer 10.0.2.1 as-number 65001 peer 10.0.2.1 connect-interface Tunnel0/0/1 # |
В настройках address-family IPv4 типа unicast укажем локальную подсеть 172.16.254.0/24 как анонсируемую и активируем работу ранее созданного соседа:
ipv4-family unicast undo synchronization network 172.16.254.0 255.255.255.0 peer 10.0.2.1 enable # return |
Настройка AR Spoke-2 завершена.
Сначала удостоверимся,что на Hub установились IPsec-туннели до обоих Spoke. В отличии от ESR, в синтаксисе AR нет необходимости указавать параметр vrf <VRF_NAME> для указания пространства маршрутизации:
[ar-Hub]display ike sa Conn-ID Peer VPN Flag(s) Phase RemoteType RemoteID ------------------------------------------------------------------------------------------------------------------------------------ 62 198.18.0.10/500 ISP RD|A v2:2 IP 198.18.0.10 61 198.18.0.10/500 ISP RD|A v2:1 IP 198.18.0.10 64 203.0.113.10/500 ISP RD|A v2:2 IP 203.0.113.10 63 203.0.113.10/500 ISP RD|A v2:1 IP 203.0.113.10 Number of IKE SA : 4 ------------------------------------------------------------------------------------------------------------------------------------ Flag Description: RD--READY ST--STAYALIVE RL--REPLACED FD--FADING TO--TIMEOUT HRT--HEARTBEAT LKG--LAST KNOWN GOOD SEQ NO. BCK--BACKED UP M--ACTIVE S--STANDBY A--ALONE NEG--NEGOTIATING [ar-Hub]display ipsec sa brief IPSec SA information: Src address Dst address SPI VPN Protocol Algorithm -------------------------------------------------------------------------------------------------------------------------- 203.0.113.10 198.51.100.10 10955288 ISP ESP E:AES-256 A:SHA2_256_128 198.18.0.10 198.51.100.10 14905890 ISP ESP E:AES-256 A:SHA2_256_128 198.51.100.10 198.18.0.10 14150042 ISP ESP E:AES-256 A:SHA2_256_128 198.51.100.10 203.0.113.10 3462302260 ISP ESP E:AES-256 A:SHA2_256_128 Number of IPSec SA : 4 -------------------------------------------------------------------------------------------------------------------------- |
Теперь проверим, что оба Spoke зарегистрировались на Hub:
[ar-Hub]display nhrp peer dynamic ---------------------------------------------------------------------------------- Protocol-addr Mask NBMA-addr NextHop-addr Type Flag ---------------------------------------------------------------------------------- 10.0.2.20 32 198.18.0.10 10.0.2.20 registered up|no-unique ---------------------------------------------------------------------------------- Tunnel interface: Tunnel0/0/1 Created time : 00:22:42 Expire time : 00:04:57 ---------------------------------------------------------------------------------- Protocol-addr Mask NBMA-addr NextHop-addr Type Flag ---------------------------------------------------------------------------------- 10.0.2.10 32 203.0.113.10 10.0.2.10 registered up|unique ---------------------------------------------------------------------------------- Tunnel interface: Tunnel0/0/1 Created time : 00:16:51 Expire time : 00:04:59 Number of nhrp peers: 2 |
Проверим состояние BGP - убедимся, что соседство установилось, а спокам анонсируется маршрут по умолчанию:
[ar-Hub]display bgp peer Status codes: * - Dynamic BGP local router ID : 10.2.0.1 Local AS number : 65001 Total number of peers : 2 Peers in established state : 2 Total number of dynamic peers : 2 Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv *10.0.2.10 4 65002 23 23 0 00:17:08 Established 1 *10.0.2.20 4 65002 27 29 0 00:22:47 Established 1 [ar-Hub]display bgp routing-table peer 10.0.2.10 advertised-routes 0.0.0.0 A default route is advertised originally [ar-Hub]display bgp routing-table peer 10.0.2.20 advertised-routes 0.0.0.0 A default route is advertised originally |
На Spoke проверим, что маршруты по умолчанию успешно инсталлировались в FIB:
ESR-Spoke-1# show ip route
Codes: C - connected, S - static, R - RIP derived,
O - OSPF derived, IA - OSPF inter area route,
E1 - OSPF external type 1 route, E2 - OSPF external type 2 route,
B - BGP derived, D - DHCP derived, K - kernel route, V - VRRP route,
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area,
H - NHRP, * - FIB route
B * 0.0.0.0/0 [170] via 10.0.2.1 on gre 2 [bgp65002 04:56:57] (AS65001i)
C * 172.16.0.0/24 [0/0] dev gi1/0/2.100 [direct 2025-08-18]
H * 10.0.2.1/32 [20/0] dev gre 2 [nhrp 04:56:46]
C * 10.0.2.0/24 [0/0] dev gre 2 [direct 04:56:40]
[ar-Spoke-2]display ip routing-table
Route Flags: R - relay, D - download to fib, T - to vpn-instance
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 14 Routes : 14
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 EBGP 255 2000 RD 10.0.2.1 Tunnel0/0/1
10.0.2.0/24 Direct 0 0 D 10.0.2.20 Tunnel0/0/1
10.0.2.20/32 Direct 0 0 D 127.0.0.1 Tunnel0/0/1
10.0.2.255/32 Direct 0 0 D 127.0.0.1 Tunnel0/0/1
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
172.16.254.0/24 Direct 0 0 D 172.16.254.1 GigabitEthernet0/0/2.200
172.16.254.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/2.200
172.16.254.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/2.200
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 |
Инициируем построение Spoke-to-Spoke туннеля, заупустив ping из LAN Spoke-1 к LAN Spoke-2 и проверим, что IPsec-туннел установились, а shortcut-маршрут успешно инсталлировался в FIB:
ESR-Spoke-1# show security ipsec vpn status vrf ISP
Name Local host Remote host Initiator spi Responder spi State
------------------------------- --------------- --------------- ------------------ ------------------ -----------
Hub 203.0.113.10 198.51.100.10 0x40e24dd9a4ccf7c1 0x6fd9c916079e56e5 Established
spokes 203.0.113.10 198.18.0.10 0xf15e7d34987ea54e 0xc30079d96deaf627 Established
ESR-Spoke-1# show ip nhrp peers
Flags: E - unique, R - nhs, U - used, L - lower-up
C - connected, G - group, Q - qos, N - nat
P - protected, I - Redirect-ignored, X - undefined
Tunnel address NBMA address Tunnel Expire Created Type Flags
(h:m:s) (d,h:m:s)
------------------- ---------------- --------- --------- -------------- --------------- ----------
10.0.2.1 198.51.100.10 gre 2 -- 00,00:00:41 static RULC
10.0.2.20 198.18.0.10 gre 2 00:04:19 00,00:00:40 cached ULC
ESR-Spoke-1# show ip nhrp shortcut-routes
Network Nexthop Tunnel Expire Created
(h:m:s) (d,h:m:s)
------------------- ---------------- --------- --------- --------------
172.16.254.0/24 10.0.2.20 gre 2 00:04:16 00,00:00:43
ESR-Spoke-1# show ip route nhrp
H * 10.0.2.20/32 [20/0] dev gre 2 [nhrp 05:22:09]
H * 10.0.2.1/32 [20/0] dev gre 2 [nhrp 04:56:46]
H * 172.16.254.0/24 [20/0] via 10.0.2.20 on gre 2 [nhrp 05:22:09] |
[ar-Spoke-2]display ike sa remote 203.0.113.10
Conn-ID Peer VPN Flag(s) Phase RemoteType RemoteID
------------------------------------------------------------------------------------------------------------------------------------
4381 203.0.113.10/500 ISP RD|ST|M v2:2 IP 203.0.113.10
4380 203.0.113.10/500 ISP RD|ST|M v2:1 IP 203.0.113.10
Number of IKE SA : 2
------------------------------------------------------------------------------------------------------------------------------------
Flag Description:
RD--READY ST--STAYALIVE RL--REPLACED FD--FADING TO--TIMEOUT
HRT--HEARTBEAT LKG--LAST KNOWN GOOD SEQ NO. BCK--BACKED UP
M--ACTIVE S--STANDBY A--ALONE NEG--NEGOTIATING
[ar-Spoke-2]display ipsec sa remote 203.0.113.10
ipsec sa information:
===============================
Interface: Tunnel0/0/1
===============================
-----------------------------
IPSec profile name: "dmvpn"
Mode : PROF-ISAKMP
-----------------------------
Connection ID : 4381
Encapsulation mode: Transport
Holding time : 0d 0h 27m 34s
Tunnel local : 198.18.0.10/500
Tunnel remote : 203.0.113.10/500
Flow source : 198.18.0.10/255.255.255.255 47/0-65535
Flow destination : 203.0.113.10/255.255.255.255 47/0-65535
Flow vpn : ISP
[Outbound ESP SAs]
SPI: 3325670054 (0xc639b2a6)
Proposal: ESP-ENCRYPT-AES-256 ESP-AUTH-SHA2-256-128
SA remaining soft duration (kilobytes/sec): 1343519/7691
SA remaining hard duration (kilobytes/sec): 1841183/11147
Outpacket count : 1663
Outpacket encap count : 1663
Outpacket drop count : 0
Max sent sequence-number: 1663
UDP encapsulation used for NAT traversal: N
[Inbound ESP SAs]
SPI: 2212992 (0x21c480)
Proposal: ESP-ENCRYPT-AES-256 ESP-AUTH-SHA2-256-128
SA remaining soft duration (kilobytes/sec): 1361960/7819
SA remaining hard duration (kilobytes/sec): 1841192/11147
Inpacket count : 1643
Inpacket decap count : 1643
Inpacket drop count : 0
Max received sequence-number: 1643
UDP encapsulation used for NAT traversal: N
Anti-replay : Enable
Anti-replay window size: 1024
[ar-Spoke-2]display nhrp peer dynamic
----------------------------------------------------------------------------------
Protocol-addr Mask NBMA-addr NextHop-addr Type Flag
----------------------------------------------------------------------------------
10.0.2.10 32 203.0.113.10 10.0.2.10 remote up
----------------------------------------------------------------------------------
Tunnel interface: Tunnel0/0/1
Created time : 00:13:01
Expire time : 00:02:03
----------------------------------------------------------------------------------
Protocol-addr Mask NBMA-addr NextHop-addr Type Flag
----------------------------------------------------------------------------------
172.16.254.200 24 198.18.0.10 10.0.2.20 local up
----------------------------------------------------------------------------------
Tunnel interface: Tunnel0/0/1
Created time : 00:13:01
Expire time : 00:02:03
----------------------------------------------------------------------------------
Protocol-addr Mask NBMA-addr NextHop-addr Type Flag
----------------------------------------------------------------------------------
172.16.0.200 24 203.0.113.10 10.0.2.10 remote-network up
----------------------------------------------------------------------------------
Tunnel interface: Tunnel0/0/1
Created time : 00:02:51
Expire time : 00:02:09
Number of nhrp peers: 3 |
hostname ESR-Spoke-1
ip vrf ISP
exit
route-map LAN_nets
rule 1
match ip address 172.16.0.0/24
exit
exit
router bgp log-neighbor-changes
router bgp 65002
router-id 10.2.0.10
neighbor 10.0.2.1
remote-as 65001
update-source gre 1
address-family ipv4 unicast
route-map LAN_nets out
enable
exit
enable
exit
address-family ipv4 unicast
redistribute connected route-map LAN_nets
exit
enable
exit
interface gigabitethernet 1/0/1
ip vrf forwarding ISP
ip firewall disable
ip address 203.0.113.10/24
exit
interface gigabitethernet 1/0/2.100
ip firewall disable
ip address 172.16.0.1/24
exit
tunnel gre 1
key 1001
ttl 255
mtu 1400
multipoint
ip firewall disable
tunnel-source vrf ISP
local address 203.0.113.10
ip address 10.0.2.10/24
ip tcp adjust-mss 1360
ip nhrp holding-time 300
ip nhrp shortcut
ip nhrp map 10.0.2.1 192.0.2.10
ip nhrp nhs 10.0.2.1
ip nhrp ipsec Hub_Cloud_1 static
ip nhrp ipsec spokes dynamic
ip nhrp multicast nhs
ip nhrp enable
enable
exit
security ike proposal prop1
authentication algorithm sha2-256
encryption algorithm aes256
dh-group 19
exit
security ike policy pol1
pre-shared-key ascii-text encrypted B9B81768A85D18A965
proposal prop1
exit
security ike gateway Hub
version v2-only
ike-policy pol1
local address 203.0.113.10
local network 203.0.113.10/32 protocol gre
remote address 192.0.2.10
remote network 192.0.2.10/32 protocol gre
mode policy-based
mobike disable
dead-peer-detection action clear
dead-peer-detection interval 10
dead-peer-detection retransmit timeout 5
dead-peer-detection retransmit tries 2
exit
security ike gateway Spokes
version v2-only
ike-policy pol1
local address 203.0.113.10
local network 203.0.113.10/32 protocol gre
remote address any
remote network any protocol gre
mode policy-based
mobike disable
dead-peer-detection action clear
dead-peer-detection interval 10
dead-peer-detection retransmit timeout 5
dead-peer-detection retransmit tries 2
exit
security ipsec proposal prop1
authentication algorithm sha2-256
encryption algorithm aes256
exit
security ipsec policy pol1
proposal prop1
exit
security ipsec vpn Hub
type transport
ip vrf forwarding ISP
ike establish-tunnel route
ike gateway Hub
ike ipsec-policy pol1
enable
exit
security ipsec vpn spokes
type transport
ip vrf forwarding ISP
ike establish-tunnel route
ike gateway Spokes
ike ipsec-policy pol1
enable
exit
ip route vrf ISP 0.0.0.0/0 203.0.113.1 |
#
sysname ar-Spoke-2
#
ipsec authentication sha2 compatible enable
#
ipsec sa global-duration time-based 10800
ipsec invalid-spi-recovery enable
#
ip vpn-instance ISP
ipv4-family
#
ipsec proposal prop1
encapsulation-mode transport
esp authentication-algorithm sha2-256
esp encryption-algorithm aes-256
#
ike proposal 1
encryption-algorithm aes-256
dh group19
authentication-algorithm sha2-256
authentication-method pre-share
integrity-algorithm hmac-sha2-256
prf hmac-sha2-256
#
ike peer dmvpn
pre-shared-key cipher %^%#|~\f>5J63Hm*}y:A8`mHfydGD`rkF/rv7&N"QUmT%^%#
ike-proposal 1
dpd type periodic
dpd idle-time 40
dpd retransmit-interval 10
rsa encryption-padding oaep
rsa signature-padding pss
ikev2 authentication sign-hash sha2-256
#
ipsec profile dmvpn
ike-peer dmvpn
proposal prop1
sa duration time-based 10800
#
interface GigabitEthernet0/0/0
ip binding vpn-instance ISP
ip address 198.18.0.10 255.255.255.0
#
interface GigabitEthernet0/0/2
#
interface GigabitEthernet0/0/2.200
dot1q termination vid 200
ip address 172.16.254.1 255.255.255.0
#
interface Tunnel0/0/1
mtu 1400
tcp adjust-mss 1360
ip address 10.0.2.20 255.255.255.0
tunnel-protocol gre p2mp
source vpn-instance ISP 198.18.0.10
gre key cipher %^%#Btj9K_(dn~[PJ,;mUv[={[E8Cx(fF5C!Ik.S["uC%^%#
ipsec profile dmvpn
nhrp shortcut
nhrp registration no-unique
nhrp registration interval 100
nhrp entry holdtime seconds 300
nhrp entry 10.0.2.1 192.0.2.10 register
#
bgp 65002
router-id 10.2.0.20
peer 10.0.2.1 as-number 65001
peer 10.0.2.1 connect-interface Tunnel0/0/1
#
ipv4-family unicast
undo synchronization
network 172.16.254.0 255.255.255.0
peer 10.0.2.1 enable
#
ip route-static vpn-instance ISP 0.0.0.0 0.0.0.0 198.18.0.1
#
return |
#
sysname ar-Hub
#
ipsec authentication sha2 compatible enable
#
ipsec sa global-duration time-based 10800
ipsec invalid-spi-recovery enable
#
ip vpn-instance ISP
ipv4-family
#
ipsec proposal prop1
encapsulation-mode transport
esp authentication-algorithm sha2-256
esp encryption-algorithm aes-256
#
ike proposal 1
encryption-algorithm aes-256
dh group19
authentication-algorithm sha2-256
authentication-method pre-share
integrity-algorithm hmac-sha2-256
prf hmac-sha2-256
#
ike peer dmvpn
pre-shared-key cipher %^%#|~\f>5J63Hm*}y:A8`mHfydGD`rkF/rv7&N"QUmT%^%#
ike-proposal 1
dpd type periodic
dpd idle-time 40
dpd retransmit-interval 10
rsa encryption-padding oaep
rsa signature-padding pss
ikev2 authentication sign-hash sha2-256
#
ipsec profile dmvpn
ike-peer dmvpn
proposal prop1
sa duration time-based 10800
#
interface GigabitEthernet0/0/0
ip binding vpn-instance ISP
ip address 198.51.100.10 255.255.255.0
#
interface Tunnel0/0/1
mtu 1400
tcp adjust-mss 1360
ip address 10.0.2.1 255.255.255.0
tunnel-protocol gre p2mp
source vpn-instance ISP 198.51.100.10
gre key cipher %^%#GXwI);@{KFc.M/#M*Sr"zP'&7>t:)&N1A9.Bv~5C%^%#
ipsec profile dmvpn
nhrp redirect
nhrp entry multicast dynamic
#
bgp 65001
router-id 10.2.0.1
group DMVPN_cloud external
peer DMVPN_cloud as-number 65002
peer DMVPN_cloud connect-interface Tunnel0/0/1
peer DMVPN_cloud listen-net 10.0.2.0 24
#
ipv4-family unicast
undo synchronization
peer DMVPN_cloud enable
peer DMVPN_cloud default-route-advertise route-policy 1
#
route-policy 1 permit node 10
#
ip route-static vpn-instance ISP 0.0.0.0 0.0.0.0 198.51.100.1
#
return |