Troubleshoot DMVPN Phase 3 with dual-hub

Dynamic Multipoint Virtual Private Network

3.2.a Configuration (Not on blueprint)

General information on “DMVPN Configuration”:

Configuration considerations:

“DMVPN Configuration” CLI configuration commands:

## =========
## DMVPN hub
## =========

## Basic DMVPN hub router configuration
Router(config)# interface tunnel <id>
Router(config-if)# ip address <ip> <mask>
Router(config-if)# ip nhrp authentication <key>
Router(config-if)# ip nhrp map multicast dynamic
Router(config-if)# ip nhrp network-id <id>
Router(config-if)# tunnel source <interface>
Router(config-if)# tunnel mode gre multipoint
Router(config-if)# tunnel key <key>
Router(config-if)# ip nhrp redirect


## ===========
## DMVPN spoke
## ===========

## Basic DMVPN spoke router configuration
Router(config)# interface tunnel <id>
Router(config-if)# ip address <ip> <mask>
Router(config-if)# ip nhrp authentication <key>
Router(config-if)# ip nhrp nhs <hub-tunnel-ip> nbma <hub-nbma-ip> multicast
Router(config-if)# ip nhrp network-id <id>
Router(config-if)# tunnel source <interface>
Router(config-if)# tunnel mode gre multipoint
Router(config-if)# tunnel key <key>
Router(config-if)# ip nhrp shortcut


## ==================
## MTU/MSS adjustment
## ==================

## Adjusting MTU and MSS (IPv4)
Router(config)# interface tunnel <id>
Router(config-if)# ip mtu 1400
Router(config-if)# ip tcp adjust-mss 1360

## Adjusting MTU and MSS (IPv6)
Router(config)# interface tunnel <id>
Router(config-if)# ipv6 mtu 1400
Router(config-if)# ipv6 tcp adjust-mss 1340

“DMVPN Configuration” CLI show commands:

## Showing the DMVPN status and tunnels in detail
Router# show dmvpn

## Showing the NHRP cache
Router# show ip nhrp

## Showing the NHRP redirect table
Router# show ip nhrp redirect

## Showing the NHRP shortcut table
Router# show ip nhrp shortcut

## Showing all routes which' next-hop address has been overwritten by NHRP
Router# show ip route next-hop-override

3.2.a i NHRP

Next Hop Resolution Protocol

General information on “NHRP”:

NHRP Next-Hop Override (DMVPN phase 3):

DMVPN route types:

3.2.a ii IPsec/IKEv2 and IPsec/ISAKMP (IKEv1) using pre-shared key

General information on “IPsec/IKEv2 and IPsec/ISAKMP (IKEv1) using pre-shared key”:

DMVPN Order of operations:

Configuration considerations:

Steps Mandatory/Optional Comments
ISAKMP Policy (Phase 1) Optional Defaults are defined
ISAKMP Keyring (Phase 1) Mandatory
ISAKMP Profile (Phase 1) Mandatory
IPsec Transform-Set (Phase 2) Mandatory
IPsec Profile (Phase 2) Mandatory
Applying IPsec Profile to Tunnel Interface Mandatory
Steps Mandatory/Optional Comments
IKEv2 Proposal (Phase 1) Optional Defaults are defined
IKEv2 Policy (Phase 1) Optional Mandatory for F-VRF
IKEv2 Keyring (Phase 1) Optional
IKEv2 Profile (Phase 1) Mandatory
IPsec Transform-Set (Phase 2) Mandatory
IPsec Profile (Phase 2) Mandatory
Applying IPsec Profile to Tunnel Interface Mandatory

Important: It’s always recommended to get a working DMVPN tunnel first before applying IPsec to it!

“DMVPN IPsec/IKEv2 and IPsec/ISAKMP (IKEv1) using pre-shared key” CLI configuration commands:

## ============================
## IPsec/ISAKMP (IKEv1) Phase 1
## ============================

## IPsec/ISAKMP (IKEv1) Phase 1 configuration
Router(config)# crypto isakmp policy <priority>
Router(config-isakmp)# encryption [options]
Router(config-isakmp)# hash [options]
Router(config-isakmp)# group [options]
Router(config-isakmp)# authentication [options]

Router(config)# crypto keyring [NAME]
Router(conf-keyring)# pre-shared-key address <ip> <mask> key <KEY>

Router(config)# crypto isakmp profile [NAME]
Router(conf-isa-profile)# match identity address <peer-nbma-ip> <mask>


## ===================
## IPsec/IKEv2 Phase 1
## ===================

## IPsec/IKEv2 Phase 1 configuration
Router(config)# crypto ikev2 proposal [NAME]
Router(config-ikev2-proposal)# encryption [options]
Router(config-ikev2-proposal)# integrity [options]
Router(config-ikev2-proposal)# group [options]

Router(config)# crypto ikev2 policy [NAME]
Router(config-ikev2-policy)# proposal [NAME]

Router(config)# crypto ikev2 keyring [NAME]
Router(config-ikev2-keyring)# peer [NAME]
Router(config-ikev2-keyring-peer)# address <peer-nbma-ip>
Router(config-ikev2-keyring-peer)# pre-shared-key <key>

Router(config)# crypto ikev2 profile [NAME]
Router(config-ikev2-profile)# authentication local pre-share
Router(config-ikev2-profile)# authentication remote pre-share
Router(config-ikev2-profile)# match identity remote address <ip>
Router(config-ikev2-profile)# keyring local [NAME]
Router(config-ikev2-profile)# dpd <sec> <sec> on-demand


## =============
## IPsec Phase 2
## =============

## IPsec Phase 2 transfrom set configuration (valid for IKEv1/IKEv2)
Router(config)# crypto ipsec transform-set [NAME] [options]
Router(cfg-crypto-trans)# mode transport

## IPsec Phase 2 IPsec profile configuration (valid for IKEv1/IKEv2)
Router(config)# crypto ipsec profile <name>
Router(ipsec-profile)# set transform-set [NAME]

For IPsec/ISAKMP (IKEv1):
Router(ipsec-profile)# set isakmp-profile [NAME]

For IPsec/IKEv2:
Router(ipsec-profile)# set ikev2-profile [NAME]


## ==============
## Enabling IPsec
## ==============

## Enabling IPsec on the tunnel interface
Router(config)# interface <if>
Router(config-if)# tunnel protection ipsec profile <ipsec-profile-name>

“DMVPN IPsec/IKEv2 and IPsec/ISAKMP (IKEv1) using pre-shared key” CLI show commands:

## Showing IPsec/ISAKMP (IKEv1) Phase 1 security associations
Router# show crypto isakmp sa

## Showing IPsec/IKEv2 Phase 1 security associations
Router# show crypto ikev2 sa

## Showing IPsec Phase 2 security associations
Router# show crypto ipsec sa

3.2.a iii Per-Tunnel QoS

General information on “DMVPN Per-Tunnel QoS”:

Configuration considerations:

“DMVPN Per-Tunnel QoS” CLI configuration commands:

## Per-Tunnel QoS configuration on DMVPN hub routers
Router(config)# interface tunnel <id>
Router(config-if)# nhrp map group <group-name> service-policy output <policy-name>

## Per-Tunnel QoS configuration on DMVPN spoke routers
Router(config)# interface tunnel <id>
Router(config-if)# nhrp group <group-name>

“DMVPN Per-Tunnel QoS” CLI show commands:

## Showing QoS policies applied to multipoint interfaces
Router# show policy-map multipoint

3.2.a x Front-Door VRF (F-VRF) (not on blueprint)

General information on “DMVPN Front-Door VRF (F-VRF)":

“DMVPN Front-Door VRF (F-VRF)” CLI configuration commands:

## ============================
## IPsec/ISAKMP (IKEv1) Phase 1
## ============================

## IPsec/ISAKMP (IKEv1) F-VRF configuration
Router(config)# crypto keyring [NAME] vrf [F-VRF]
Router(conf-keyring)# pre-shared-key address <ip> <mask> key <KEY>

Router(config)# crypto isakmp profile [NAME]
Router(conf-isa-profile)# match identity address <peer-nbma-ip> <mask> [F-VRF]


## ===================
## IPsec/IKEv2 Phase 1
## ===================

## IPsec/IKEv2 F-VRF configuration
Router(config)# crypto ikev2 proposal [NAME]
Router(config-ikev2-proposal)# encryption [options]
Router(config-ikev2-proposal)# integrity [options]
Router(config-ikev2-proposal)# group [options]

Router(config)# crypto ikev2 policy [NAME]
Router(config-ikev2-policy)# proposal [NAME]
Router(config-ikev2-policy)# match fvrf <fvrf-name>

Router(config)# crypto ikev2 profile [NAME]
Router(config-ikev2-profile)# match fvrf <fvrf-name>


## ==================
## Enabling the F-VRF
## ==================

## F-VRF interface configuration (valid for IPsec/ISAKMP (IKEv1) and IPsec/IKEv2)
Router(config)# interface <if>
Router(config-if)# vrf forwarding <fvrf-name>

Router(config)# interface tunnel <id>
Router(config-if)# tunnel vrf <fvrf-name>

“DMVPN Front-Door VRF (F-VRF)” CLI show commands:

## Showing IPsec/ISAKMP (IKEv1) Phase 1 security associations
Router# show crypto isakmp sa

## Showing IPsec/IKEv2 Phase 1 security associations
Router# show crypto ikev2 sa

## Showing IPsec Phase 2 security associations
Router# show crypto ipsec sa

3.2.a x Inside VRF (I-VRF) (not on blueprint)

General information on “DMVPN Inside VRF (I-VRF)":

“DMVPN Inside VRF (I-VRF)” CLI configuration commands:

## I-VRF interface configuration (valid for IPsec ISAKMP (IKEv1) and IPsec/IKEv2):
Router(config)# interface tunnel <id>
Router(config-if)# vrf forwarding <ivrf-name>

“DMVPN Inside VRF (I-VRF)” CLI show commands:

## Showing IPsec/ISAKMP (IKEv1) Phase 1 security associations
Router# show crypto isakmp sa

## Showing IPsec/IKEv2 Phase 1 security associations
Router# show crypto ikev2 sa

## Showing IPsec Phase 2 security associations
Router# show crypto ipsec sa

3.2.b x MPLS over DMVPN (not on blueprint)

General information on “MPLS over DMVPN (not on blueprint)":

Configuration considerations:

“MPLS over DMVPN” CLI configuration commands:

## Enabling MPLS NHRP on all DMVPN interfaces
Router(config)# interface <if>
Router(config-if)# mpls nhrp