January 25, 2017

Basic DMVPN validation check

dmvpn verification
show crypto engine connection active  —Displays the total encrypts and decrypts per SA.
show crypto ipsec sa —Displays the stats on the active tunnels.
show crypto isakmp sa —Displays the state for the the ISAKMP SA.
sh crypto session

sh dmvpn on client router
sh ip eigrp nei
sh ip route eigrp
sh ip eigrp topology

Basic GRE config:
R1:
config t
int tunnel 0
ip address 192.168.0.1 255.255.255.0 <assign itself internal IP facing to public>
tunnel source <pub IP of itself>
tunnel destination <pub IP of R2>
tunnel key xxxx <optional for authentication>

R2:
config t
int tunnel 0
ip address 192.168.0.2 255.255.255.0 <assign itself internal IP facing to public>
tunnel source <pub IP of itself or interface name>
tunnel destination <pub IP of R1>
tunnel key xxxx <optional for authentication>

Basic mGRE (DMVPN) config:
R1 (HUB):
config t
int tunnel 0
ip address 192.168.0.1 255.255.255.0
tunnel source <pub IP of itself or interface name>
tunnel mode gre multipoint
tunnel key xxxx <!-- must be matched with all routers -->
ip nhrp network-id 1 <!-- network id just like AS number, must be matched with all Routers -->
ip nhrp authentication <password> <!-- must be matched with all routers -->
ip nhrp map multicast dynamic
ip mtu 1400 <! -- lower the mtu value if you experience tunnel to hub is flapping -->
ip tcp adjust-mss 1360 <! -- mtu & tcp adjust are best practice settings -->
no ip next-hop-self eigrp 100 <! -- this is required if we configure EIGRP routing for DMVPN, this help to spoke-spoke communication instead of spoke-hub-spoke communitcation -->
no ip split-horizon eigrp 100 <! -- this is required if we configure EIGRP routing for DMVPN -->

R2 & R3 (SPOKE):
config t
int tunnel 0
ip address 192.168.0.2 255.255.255.0
tunnel source <pub IP of itself or interface name> 
tunnel mode gre multipoint
tunnel key xxxx
ip nhrp network-id 1 <!-- network id just like AS number, must be matched with all Routers -->
ip nhrp authentication <password>
ip nhrp map multicast dynamic
ip nhrp nhs 192.168.0.1
ip nhrp map 192.168.0.1 <pub IP of R1>
ip nhrp map multicast <pub IP of R1>
ip mtu 1400
ip tcp adjust-mss 1360 

Adding IPSec on top of mGRE:
apply these settings on both HUB & SPOKE routers

crypto isakmp policy 1
 encr 3des
 hash md5
 authentication pre-share
 group 2
 lifetime 86400
crypto isakmp key cisco address 0.0.0.0
crypto ipsec transform-set mGRE-TS esp-3des esp-md5-hmac

crypto ipsec profile IPSec-mGRE
 set security-association lifetime seconds 86400
 set transform-set mGRE-TS

interface Tunnel 0
tunnel protection ipsec profile IPSec-mGRE

Sample script template:
crypto isakmp policy 10
 encr aes 256
 authentication pre-share
crypto isakmp key cisco address 100.100.15.1
!
!
crypto ipsec transform-set TS-DMVPN esp-3des esp-sha-hmac
 mode tunnel
!
crypto ipsec profile IPSEC-DMVPN-PROFILE
 set transform-set TS-DMVPN
!
interface tunnel0
tunnel mode ipsec ipv4
tunnel protection ipsec profile IPSEC-DMVPN-PROFILE
tunnel mode gre multipoint