DMVPN Dynamic Multipoint VPN
DMVPN (Dynamic Multipoint VPN)
| DMVPN |
Dynamic Multipoint Virtual Private Network (DMVPN) is a Cisco-developed solution that enables the creation of scalable and dynamic VPN architectures.t combines multiple technologies to facilitate secure and efficient communication between multiple sites without the need for extensive manual configuration.
Introduction: Why DMVPN Matters in Modern Networks
In today’s fast-paced digital world, businesses need secure, scalable, and cost-effective networking solutions. Traditional VPNs often require complex static tunnels, making network expansion a challenge. This is where Dynamic Multipoint VPN (DMVPN) comes in!
What is DMVPN?
DMVPN (Dynamic Multipoint VPN) is a Cisco solution that enables dynamic, secure communication between remote sites without requiring static tunnels. It allows spokes to communicate directly with each other (instead of passing through a central hub), improving efficiency, reducing latency, and lowering operational costs.
Why Should You Care About DMVPN?
✅ Reduces Manual Configuration – No need to predefine static tunnels
✅ Enables Dynamic Spoke-to-Spoke Connectivity – Faster communication
✅ Enhances Security – Uses IPSec encryption for safe data transfer
✅ Optimized for Cloud & Remote Work – Perfect for distributed teams
In this guide, we’ll break down DMVPN architecture, phases, and configuration with a step-by-step tutorial to help you deploy it efficiently. Let’s dive in!
Key Components of DMVPN:
- Multipoint GRE (mGRE):
- raditional GRE tunnels are point-to-point, requiring separate configurations for each connection.GRE allows a single GRE interface to support multiple destinations, enabling a hub-and-spoke topology where the hub can communicate with multiple spokes over a single interface.his setup reduces configuration complexity and enhances scalability.citeturn0search0
- Next Hop Resolution Protocol (NHRP):
- HRP functions as a distributed address resolution protocol.n a DMVPN setup, the hub acts as the NHRP server, and the spokes operate as NHRP clients.poke routers register their public IP addresses with the hub.hen a spoke needs to communicate with another spoke, it queries the hub to obtain the public IP address of the target spoke, facilitating direct communication between spokes without routing traffic through the hub.citeturn0search1
- IPsec Encryption:
- o ensure data security over public networks, DMVPN integrates IPsec encryption.Psec profiles are associated with mGRE interfaces, encrypting all traffic traversing the tunnels.his integration provides confidentiality, integrity, and authenticity of the data exchanged between sites.citeturn0search1 DMVPN Phases:
MVPN deployment is categorized into three phases, each offering different capabilities:
- Phase 1:
- stablishes a hub-and-spoke topology where all spoke-to-spoke traffic is routed through the hub.pokes have point-to-point GRE tunnels to the hub, and direct communication between spokes is not facilitated in this phase.citeturn0search0
- Phase 2:
- ntroduces direct spoke-to-spoke communication.pokes use mGRE interfaces and can dynamically establish direct tunnels with other spokes upon demand.his reduces latency and bandwidth usage on the hub.citeturn0search0
- Phase 3:
- nhances scalability and flexibility by allowing spokes to establish direct tunnels based on routing information.he hub provides routing information to spokes, enabling them to determine the best path for communication and establish direct tunnels as needed.citeturn0search0 Benefits of DMVPN:
- Scalability: implifies the addition of new sites without requiring extensive reconfiguration.- Dynamic Connectivity: nables on-demand direct communication between sites, optimizing routing paths.- Reduced Configuration Complexity: tilizes mGRE and NHRP to minimize the need for multiple static configurations.- Cost-Effective: everages existing internet infrastructure to establish secure connections, reducing the need for dedicated leased lines. n summary, DMVPN offers a flexible and efficient solution for organizations seeking to establish secure, scalable, and dynamic VPNs across multiple sites.
HQ Configuration: -
Router>enable
Router#conf t
Router(config)#hostname HQ
HQ(config)#int gig 0/0
HQ(config-if)#description HQ to
ISP
HQ(config-if)#ip address dhcp
HQ(config-if)#no sh
HQ(config-if)#exit
HQ(config)#int tunnel 0
HQ(config-if)#no sh
HQ(config-if)#ip address
172.16.10.1 255.255.255.0
HQ(config-if)#no ip redirects
HQ(config-if)#ip mtu 1400
HQ(config-if)#no ip next-hop-self
eigrp 1
HQ(config-if)#no ip split-horizon
eigrp 1
HQ(config-if)#ip nhrp
authentication cisco
HQ(config-if)#ip nhrp network-id
1
HQ(config-if)#ip nhrp map
multicast dynamic
HQ(config-if)#ip tcp adjust-mss
1360
HQ(config-if)#tunnel source
GigabitEthernet0/0
HQ(config-if)#tunnel mode gre
multipoint
HQ(config-if)#tunnel key 123
HQ(config-if)#end
HQ#conf t
HQ(config)#router eigrp 1
HQ(config-router)#network
172.16.10.0 0.0.0.255
HQ(config-router)#exit
HQ(config)#ip route 0.0.0.0
0.0.0.0 10.1.1.2
HQ(config)#end
BRANCH_A
Configuration: -
Router>enable
Router#conf t
Router(config)#hostname BRANCH_A
BRANCH_A(config)#int gig 0/0
BRANCH_A(config-if)#description
BRANCH_A to ISP
BRANCH_A(config-if)#ip address
20.1.1.2 255.255.255.0
BRANCH_A(config-if)#no sh
BRANCH_A(config-if)#exit
BRANCH_A(config)#int tunnel 0
BRANCH_A(config-if)#ip address
172.16.10.2 255.255.255.0
BRANCH_A(config-if)#no ip
redirects
BRANCH_A(config-if)#ip mtu 1400
BRANCH_A(config-if)#ip nhrp
authentication cisco
BRANCH_A(config-if)#ip nhrp map
multicast 10.1.1.1
BRANCH_A(config-if)#ip nhrp map
172.16.10.1 10.1.1.1
BRANCH_A(config-if)#ip nhrp
network-id 1
BRANCH_A(config-if)#ip nhrp nhs
172.16.10.1
BRANCH_A(config-if)#ip tcp
adjust-mss 1460
BRANCH_A(config-if)#tunnel source
GigabitEthernet0/0
BRANCH_A(config-if)#tunnel mode
gre multipoint
BRANCH_A(config-if)#tunnel key
123
BRANCH_A#conf t
BRANCH_A(config)#router eigrp 1
BRANCH_A(config-router)#network
50.1.1.0 0.0.0.255
BRANCH_A(config-router)#network
172.16.10.0 0.0.0.255
BRANCH_A(config-router)#exit
BRANCH_A(config)#ip route 0.0.0.0
0.0.0.0 20.1.1.1
BRANCH_A(config)#end
BRANCH_B
Configuration: -
Router>enable
Router#conf t
Router(config)#hostname BRANCH_B
BRANCH_B(config)#int gig 0/0
BRANCH_B(config-if)#description
BRANCH_B to ISP
BRANCH_B(config-if)#ip address
30.1.1.2 255.255.255.0
BRANCH_B(config-if)#no sh
BRANCH_B(config-if)#exit
BRANCH_B(config)#int tunnel 0
BRANCH_B(config-if)#ip address
172.16.10.3 255.255.255.0
BRANCH_B(config-if)#no ip
redirects
BRANCH_B(config-if)#ip mtu 1400
BRANCH_B(config-if)#ip nhrp
authentication cisco
BRANCH_B(config-if)#ip nhrp map
multicast 10.1.1.1
BRANCH_B(config-if)#ip nhrp map
172.16.10.1 10.1.1.1
BRANCH_B(config-if)#ip nhrp
network-id 1
BRANCH_B(config-if)#ip nhrp nhs
172.16.10.1
BRANCH_B(config-if)#ip tcp
adjust-mss 1460
BRANCH_B(config-if)#tunnel source
GigabitEthernet0/0
BRANCH_B(config-if)#tunnel mode
gre multipoint
BRANCH_B(config-if)#tunnel key
123
BRANCH_B#conf t
BRANCH_B(config)#router eigrp 1
BRANCH_B(config-router)#network
172.16.10.0 0.0.0.255
BRANCH_B(config-router)#exit
BRANCH_B(config)#ip route 0.0.0.0
0.0.0.0 30.1.1.1
BRANCH_B(config)#end
BRANCH_C
Configuration: -
Router>enable
Router#conf t
Router(config)#hostname BRANCH_C
BRANCH_C(config)#int gig 0/0
BRANCH_C(config-if)#description
BRANCH_C to ISP
BRANCH_C(config-if)#ip address
40.1.1.2 255.255.255.0
BRANCH_C(config-if)#no sh
BRANCH_C(config-if)#exit
BRANCH_C(config)#int tunnel 0
BRANCH_C(config-if)#ip address
172.16.10.4 255.255.255.0
BRANCH_C(config-if)#no ip
redirects
BRANCH_C(config-if)#ip mtu 1400
BRANCH_C(config-if)#ip nhrp
authentication cisco
BRANCH_C(config-if)#ip nhrp map
multicast 10.1.1.1
BRANCH_C(config-if)#ip nhrp map
172.16.10.1 10.1.1.1
BRANCH_C(config-if)#ip nhrp
network-id 1
BRANCH_C(config-if)#ip nhrp nhs
172.16.10.1
BRANCH_C(config-if)#ip tcp
adjust-mss 1460
BRANCH_C(config-if)#tunnel source
GigabitEthernet0/0
BRANCH_C(config-if)#tunnel mode
gre multipoint
BRANCH_C(config-if)#tunnel key
123
BRANCH_C#conf t
BRANCH_C(config)#router eigrp 1
BRANCH_C(config-router)#network
172.16.10.0 0.0.0.255
BRANCH_C(config-router)#network
60.1.1.0 0.0.0.255
BRANCH_C(config-router)#exit
BRANCH_C(config)#ip route 0.0.0.0
0.0.0.0 40.1.1.1
BRANCH_C(config)#end
Output: -
Below shows Ping and
traceroute from PC-17 to PC-16
Below shows “sh dmvpn”
verification command output of the HQ router
Below shows “sh ip nhrp”
verification command output of the HQ router
DMVPN Configuration Guide (Step-by-Step)
1️⃣ Prerequisites
Before configuring DMVPN, ensure:
✅ All routers have basic IP connectivity
✅ The hub and spokes use NHRP (Next Hop Resolution Protocol)
✅ IPSec protection is enabled for security
2️⃣ DMVPN Topology Overview
- Hub Router – Central control point for all spokes
- Spoke Routers – Establish dynamic VPN tunnels as needed
- Tunneling Protocol – GRE (Generic Routing Encapsulation) over IPSec
📌 Example Scenario:
- Hub Router → 192.168.1.1
- Spoke 1 → 192.168.2.1
- Spoke 2 → 192.168.3.1
3️⃣ DMVPN Configuration on the Hub Router
✅ Step 1: Configure the Tunnel Interface
interface Tunnel0
ip address 10.1.1.1 255.255.255.0
no ip split-horizon eigrp 100
ip nhrp authentication DMVPNKEY
ip nhrp map multicast dynamic
ip nhrp network-id 1
tunnel source GigabitEthernet0/0
tunnel mode gre multipoint
tunnel protection ipsec profile DMVPN-PROFILE
📌 Key Points:
ip nhrp network-id 1→ Unique ID for NHRPtunnel mode gre multipoint→ Enables DMVPN Phase 2 or 3tunnel protection ipsec profile DMVPN-PROFILE→ Enables IPSec security
4️⃣ DMVPN Configuration on Spoke Routers
✅ Step 2: Configure Tunnel Interface on Spokes
interface Tunnel0
ip address 10.1.1.2 255.255.255.0
ip nhrp authentication DMVPNKEY
ip nhrp map 10.1.1.1 192.168.1.1
ip nhrp map multicast 192.168.1.1
ip nhrp nhs 10.1.1.1
ip nhrp network-id 1
tunnel source GigabitEthernet0/1
tunnel mode gre multipoint
tunnel protection ipsec profile DMVPN-PROFILE
📌 Key Points:
ip nhrp map 10.1.1.1 192.168.1.1→ Maps Hub IPip nhrp nhs 10.1.1.1→ Hub acts as Next-Hop Servertunnel protection ipsec profile DMVPN-PROFILE→ Enables IPSec
5️⃣ Configuring EIGRP for Dynamic Routing
✅ Step 3: Enable EIGRP on Hub
router eigrp 100
network 10.1.1.0 0.0.0.255
no auto-summary
✅ Step 4: Enable EIGRP on Spokes
router eigrp 100
network 10.1.1.0 0.0.0.255
no auto-summary
📌 Key Points:
- Enables dynamic routing between Hub and Spokes
- Works better than static routing for scalability
6️⃣ IPSec Configuration for Security
✅ Step 5: Define IPSec Profile
crypto isakmp policy 10
encr aes 256
authentication pre-share
group 5
!
crypto isakmp key DMVPNKEY address 0.0.0.0
!
crypto ipsec transform-set DMVPN-SET esp-aes 256 esp-sha-hmac
!
crypto ipsec profile DMVPN-PROFILE
set transform-set DMVPN-SET
📌 Key Points:
- Uses AES-256 encryption for security
- Defines IPSec profile to protect DMVPN tunnels
7️⃣ Verification & Testing
✅ Step 6: Verify DMVPN Status
Run the following command on the Hub Router:
show dmvpn
✅ If working, it should display active spoke connections
✅ Step 7: Test Connectivity
From Spoke 1, ping Spoke 2:
ping 10.1.1.3
✅ If successful, DMVPN is fully operational! 🚀
🔥 Final Thoughts
🔹 Scalability – DMVPN supports hundreds of spokes dynamically
🔹 Security – IPSec ensures end-to-end encryption
🔹 Efficiency – GRE tunnels optimize traffic for direct spoke-to-spoke communication
Join the conversation