DMVPN uses NHRP to dynamically learn the NBMA address of other routers that are a part of the same network. NHRP is a client-server protocol. The DMVPN hub acts as the NHRP server, and the spokes are NHRP clients.
Only hub routers are configured to operate dynamically in DMVPN Phase I. The DMVPN configuration of the tunnel interface on the hub router enables it to act as an NHRP server. Spoke routers are clients of the NHRP server and are configured with static tunnel interfaces.
The tunnel mode gre multipoint command is used to configure a tunnel interface to operate in multipoint GRE (mGRE) mode.
The ip nhrp map ip-address nbma-address command is used to statically map a destination IP address to an NBMA address. This is necessary for, but not limited to, mapping the network destination IP address of the next-hop server to its NBMA address.
The ip nhrp nhs nhs-address command is used on spoke routers to specify the IP address of an NHRP next-hop server. When a spoke router needs to send packets to a destination on another spoke router, it queries the NHRP server for the destination of the spoke.
The ip nhrp map multicast dynamic command configures hub routers to dynamically learn multicast packet destinations.
Another Important command when using multi spokes and dont want the traffic to pass trough the hub is no ip next-hop-self eigrp (#)
Cisco recommends that EIGRP be used on a DMVPN network.
You must disable split horizon on a hub router to force EIGRP to advertise a route out of the interface on which it was learned.
The show ip nhrp command is used to verify NHRP mapping information
The show dmvpn command is used to verify DMVPN-specific session information.
Example of DMVPN Phase 1
“HUB”
(config)#interface tunnel #
(config-if)#ip address ( address )
(config-if)#tunnel source ( local interface )
(config-if)#tunnel mode gre multipoint
(config-if)#tunnel key #
(config-if)ip nhrp authentication “word”
(config-if)#ip nhrp network-id #
(config-if)#ip nhrp map multicast dynamic
(config-if)#no ip split-horizon eigrp 100
(config-if)#no ip next-hop-self eigrp (#)
(config-if)#router eigrp “AS”
(config-router)#no auto-summary
(config-router)#network ( network plus wildcard mask )
(config-router)#passive-interface ( interface you down wnat any advertising )
“SPOKES”
(config)#interface tunnel #
(config-if)#ip address ( ip address )
(config-if)#tunnel source ( local interface )
(config-if)#tunnel mode gre multipoint
(config-if)#tunnel key #
(config-if)ip nhrp authentication “word”
(config-if)#ip nhrp network-id #
(config-if)#ip nhrp nhs ( hub tunnel ip address )
(config-if)#ip nhrp map multicast ( hub interface ip address )
(config-if)#ip nhrp map ( hub tunnel ip address ) ( hub interface ip address )
(config-if)#router eigrp “AS”
(config-router)#no auto-summary
(config-router)#network ( network plus wildcard mask )
(config-router)#passive-interface ( interface you dont want any advertising )
Verifying configuration
show dmvpn
show ip nhrp
show ip route