With the legacy Point to Point tunnels like GRE , you can only setup tunnels between two end-points. DMVPN gives us the ability to configure point to multi-point tunnel with direct spoke to spoke communication.
DMVPN’s allows for Point to Multi-point hub to spoke communications by the making use of the NHRP ( Next-Hop-Resolution Protocol ). NHRP work the same way as ARP works in Ethernet ( Resolution between MAC to IP). NHRP does IP to IP Resolution ( NHRP tells clients when you want to send traffic to a particular destination or specifically to a specific spoke what their mapping between their underlay address( NBMA) and their ovelay address which is the VPN address.)
NHRP Sniff.
Spoke Capture
169.254.100.1 is the Spoke registering to 169.254.100.5 the HUB.
DMVPN has 3 phases ;
PHASE 1
NHRP still required for Spoke registration to hub
No spoke-to-spoke tunnels
Summarization/default routing at hub is allowed.
Next-hop on spokes is always changed by the hub
OSPF can run in any mode.
Phase 1 Config
HUB
interface Tunnel0
ip address 155.1.0.5 255.255.255.0
ip mtu 1400
no ip next-hop-self eigrp 1
no ip split-horizon eigrp 1
ip nhrp authentication NHRPPASS
ip nhrp map multicast dynamic
ip nhrp network-id 1
ip tcp adjust-mss 1360
delay 1000
tunnel source Ethernet0/1.100
tunnel mode gre multipoint
tunnel key 150
Spoke
interface Tunnel0
ip address 155.1.0.2 255.255.255.0
ip mtu 1400
ip nhrp authentication NHRPPASS
ip nhrp map 155.1.0.5 169.254.100.5
ip nhrp map multicast 169.254.100.5
ip nhrp network-id 1
ip nhrp holdtime 300
ip nhrp nhs 155.1.0.5
ip tcp adjust-mss 1360
tunnel source Ethernet0/1.100
tunnel destination 169.254.100.5
tunnel key 150
PHASE 2
NHRP required for Spoke registration to hub
NHRP required for Spoke to spoke registration
Spoke-to-Spoke tunnel triggered by spoke.
Summarization/dafault routing at HUB is NOT allowed
Next-hop on spokes is always preserved by the hub
Multi-level hierarchy required hu daisy-chaining
You should run OSPF in Broadcast & No-Broadcast mode in-order to preserve the next-hop values. The DR does not modify OSPF next hop values.
EIGRP by default updates the next values from the HUB to the spokes , this prevents spoke to spoke communication as the next hop will now point to the hub instead of individual spokes. EIGRP has command to prevent the HUB from changing the next hop value to its self (no ip next-hop-self eigrp 1)
In Phase 2 the spoke sends NHRP Resolution requests to the other spokes , in order to resolve the NBMA Address and the Private Address. You will always see that the first packet sent always routes via the HUB , then the packets there after are routed straight between spokes.
Spoke Capture
Phase 2 Config
HUB
interface Tunnel0
ip address 155.1.0.5 255.255.255.0
no ip redirects
ip mtu 1400
no ip next-hop-self eigrp 1
no ip split-horizon eigrp 1
ip nhrp authentication NHRPPASS
ip nhrp map multicast dynamic
ip nhrp network-id 1
ip tcp adjust-mss 1360
delay 1000
tunnel source Ethernet0/1.100
tunnel mode gre multipoint
tunnel key 150
Spoke
interface Tunnel0
ip address 155.1.0.2 255.255.255.0
no ip redirects
ip mtu 1400
ip nhrp authentication NHRPPASS
ip nhrp map 155.1.0.5 169.254.100.5
ip nhrp map multicast 169.254.100.5
ip nhrp network-id 1
ip nhrp holdtime 300
ip nhrp nhs 155.1.0.5
ip tcp adjust-mss 1360
tunnel source Ethernet0/1.100
tunnel mode gre multipoint
tunnel key 150
Phase 3
NHRP required for spoke registration to hub
NHRP required for spoke-to-spoke resolution
when a hub receives and forwards out the same interface
send NHRP redirect message back to packet source
forward original packet down to spoke via RIB
summarization/default routinh at hub is allowed
results in NHRP routes for spoke to spoke tunnel
With no-summary, NHO is performed for spoke to spoke tunnel
next hop is changed from hub IP to spoke IP
Next-hop on spokes is always changed by the hub
because of this , NHRP resolution is triggered by hub
Multi-level hierarchy without daisy-chaining.
Phase3 NHRP makes use of the NHRP Traffic Indication massage , this message allows the HUB to trigger the NHRP process for the spokes.
Spoke Capture
Phase 3 Config
HUB
interface Tunnel0
ip address 155.1.0.5 255.255.255.0
no ip redirects
ip mtu 1400
no ip next-hop-self eigrp 1
no ip split-horizon eigrp 1
ip nhrp authentication NHRPPASS
ip nhrp map multicast dynamic
ip nhrp network-id 1
ip nhrp redirect
ip tcp adjust-mss 1360
delay 1000
tunnel source Ethernet0/1.100
tunnel mode gre multipoint
tunnel key 150
Spoke
interface Tunnel0
ip address 155.1.0.2 255.255.255.0
no ip redirects
ip mtu 1400
ip nhrp authentication NHRPPASS
ip nhrp map 155.1.0.5 169.254.100.5
ip nhrp map multicast 169.254.100.5
ip nhrp network-id 1
ip nhrp holdtime 300
ip nhrp nhs 155.1.0.5
ip nhrp shortcut
ip tcp adjust-mss 1360
tunnel source Ethernet0/1.100
tunnel mode gre multipoint
tunnel key 150
Note :
Phase 2 : NHRP process is triggered by the spoke , and the NHRP resolution is always trying to resolve the next-hop value.
Phase 3 : NHRP process is triggered by the HUB , and the NHRP resolution is always trying to resolve the final destination.
Phase2 & 3 : For every prefix you send traffic to a unique DMVPN tunnel is created.
==============================================================
Interface: Tunnel0, IPv4 NHRP Details
Type:Spoke, NHRP Peers:2,
# Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb
—– ————— ————— —– ——– —–
3 169.254.100.3
155.1.0.3 UP 00:02:38 DT2
155.1.0.3 UP 00:02:38 DT2
155.1.0.3 UP 00:02:38 DT2
1 169.254.100.5 155.1.0.5 UP 00:19:31 S
R1#sh ip nhrp
1.1.1.1/32 via 155.1.0.3
Tunnel0 created 00:00:35, expire 00:04:24
Type: dynamic, Flags: router rib nho
NBMA address: 169.254.100.3
150.1.3.3/32 via 155.1.0.3
Tunnel0 created 00:03:09, expire 00:01:50
Type: dynamic, Flags: router rib nho
NBMA address: 169.254.100.3
155.1.0.3/32 via 155.1.0.3
Tunnel0 created 00:03:09, expire 00:04:24
Type: dynamic, Flags: router nhop rib nho
NBMA address: 169.254.100.3
155.1.0.5/32 via 155.1.0.5
Tunnel0 created 00:20:03, never expire
Type: static, Flags: used
NBMA address: 169.254.100.5