DMVPN Phase 3 EIGRP Routing

In the first DMVPN lesson we discussed the basics and the different phases. I also showed you how to configure DMVPN phase 1, phase 2 and phase 3. In this lesson we’ll take a look how we can configure EIGRP on a DMVPN phase 3 network.

Here’s the topology we will use:

DMVPN Example Topology with hub, two spokes and loopback interfaces.

Above we have a hub and two spoke routers. Each router has a loopback interface which we will advertise in EIGRP.

Configuration







Tunnel interfaces

Below you will find the configuration of the tunnel interfaces. This is a basic DMVPN phase 3 setup:

Hub(config)#interface Tunnel0
Hub(config-if)#ip address 172.16.123.1 255.255.255.0
Hub(config-if)#ip nhrp authentication DMVPN
Hub(config-if)#ip nhrp map multicast dynamic
Hub(config-if)#ip nhrp network-id 1
Hub(config-if)#tunnel source GigabitEthernet0/1
Hub(config-if)#tunnel mode gre multipoint
Hub(config-if)#ip nhrp redirect
Spoke1(config)#interface Tunnel0
Spoke1(config-if)#ip address 172.16.123.2 255.255.255.0
Spoke1(config-if)#ip nhrp authentication DMVPN
Spoke1(config-if)#ip nhrp map 172.16.123.1 192.168.123.1
Spoke1(config-if)#ip nhrp map multicast 192.168.123.1
Spoke1(config-if)#ip nhrp network-id 1
Spoke1(config-if)#ip nhrp nhs 172.16.123.1
Spoke1(config-if)#tunnel source GigabitEthernet0/1
Spoke1(config-if)#tunnel mode gre multipoint
Spoke1(config-if)#ip nhrp shortcut
Spoke2(config)#interface Tunnel0
Spoke2(config-if)#ip address 172.16.123.3 255.255.255.0
Spoke2(config-if)#ip nhrp authentication DMVPN
Spoke2(config-if)#ip nhrp map 172.16.123.1 192.168.123.1
Spoke2(config-if)#ip nhrp map multicast 192.168.123.1
Spoke2(config-if)#ip nhrp network-id 1
Spoke2(config-if)#ip nhrp nhs 172.16.123.1
Spoke2(config-if)#tunnel source GigabitEthernet0/1
Spoke2(config-if)#tunnel mode gre multipoint
Spoke1(config-if)#ip nhrp shortcut

Let’s do a quick test to make sure the hub has two NHRP registrations from the spoke routers:

Hub#show dmvpn 
Legend: Attrb --> S - Static, D - Dynamic, I - Incomplete
        N - NATed, L - Local, X - No Socket
        T1 - Route Installed, T2 - Nexthop-override
        C - CTS Capable
        # Ent --> Number of NHRP entries with same NBMA peer
        NHS Status: E --> Expecting Replies, R --> Responding, W --> Waiting
        UpDn Time --> Up or Down Time for a Tunnel
==========================================================================

Interface: Tunnel0, IPv4 NHRP Details 
Type:Hub, NHRP Peers:2, 

 # Ent  Peer NBMA Addr Peer Tunnel Add State  UpDn Tm Attrb
 ----- --------------- --------------- ----- -------- -----
     1 192.168.123.2      172.16.123.2    UP 00:00:04     D
     1 192.168.123.3      172.16.123.3    UP 00:00:03     D

That’s looking good, let’s do a quick ping:

Hub#ping 172.16.123.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.123.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 7/8/10 ms
Hub#ping 172.16.123.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.123.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 7/7/8 ms

Time to configure EIGRP…

EIGRP

First we advertise all tunnel interfaces and the loopback interfaces of the spoke routers in EIGRP:

Hub(config)#router eigrp 123
Hub(config-router)#no auto-summary 
Hub(config-router)#network 172.16.123.0 0.0.0.255
Spoke1(config)#router eigrp 123
Spoke1(config-router)#no auto-summary 
Spoke1(config-router)#network 172.16.123.0 0.0.0.255
Spoke1(config-router)#network 2.2.2.2 0.0.0.0
Spoke2(config)#router eigrp 123
Spoke2(config-router)#no auto-summary 
Spoke2(config-router)#network 172.16.123.0 0.0.0.255
Spoke2(config-router)#network 3.3.3.3 0.0.0.0

The spoke routers don’t require specific entries thanks to NHRP traffic indication. I will advertise a default route on the hub router:

Hub(config)#interface tunnel 0 
Hub(config-if)#ip summary-address eigrp 123 0.0.0.0 0.0.0.0

Let’s check the routing tables:

Hub#show ip route eigrp 

D*    0.0.0.0/0 is a summary, 00:00:19, Null0
      2.0.0.0/32 is subnetted, 1 subnets
D        2.2.2.2 [90/27008000] via 172.16.123.2, 00:01:19, Tunnel0
      3.0.0.0/32 is subnetted, 1 subnets
D        3.3.3.3 [90/27008000] via 172.16.123.3, 00:00:19, Tunnel0
Spoke1#show ip route eigrp 

D*    0.0.0.0/0 [90/28160000] via 172.16.123.1, 00:00:31, Tunnel0
Spoke2#show ip route eigrp 

D*    0.0.0.0/0 [90/28160000] via 172.16.123.1, 00:00:43, Tunnel0

The hub has two specific entries, the spoke routers only have a default route. Let’s see if direct spoke-to-spoke communication is possible:

We're Sorry, Full Content Access is for Members Only...

If you like to keep on reading, Become a Member Now! Here is why:

  • Learn any CCNA, CCNP and CCIE R&S Topic. Explained As Simple As Possible.
  • Try for Just $1. The Best Dollar You’ve Ever Spent on Your Cisco Career!
  • Full Access to our 786 Lessons. More Lessons Added Every Week!
  • Content created by Rene Molenaar (CCIE #41726)

1494 Sign Ups in the last 30 days

satisfaction-guaranteed
100% Satisfaction Guaranteed!
You may cancel your monthly membership at any time.
No Questions Asked!

Tags: , ,


Forum Replies

  1. Hello René.

    Great basic DMVPN lab but i have a request:

    A DMVPN lab with 2 ISP’s (Multihoming) and load balancing using EIGRP Add-Path Support. I have had a hard time understanding the concept of that.

  2. Hi Rene,

    If I want to migrate DMVPN phase 2 to phase 3 with EIGRP configured … what are the 3 changes that need to be done ??

  3. Hi Shashi,

    For a detailed answer you can take a look here:

    DMVPN Phase 3

    DMVPN Phase 3 EIGRP

    The short answer is this:

    Hub(config)#interface tunnel 0
    Hub(config-if)#ip nhrp redirect 
    
    Spoke(config)#interface Tunnel 0
    (config-if)#ip nhrp shortcut
    

    And you need to advertise a summary route on the hub towards your spoke routers that covers the networks behind your spoke routers.

  4. I’m using the IOS image you said you were but for some reason when i try show ip route nhrp it doesn’t recognize “nhrp”

    R2#sho ip route nhrp
    Translating "nhrp"
                    ^
    % Invalid input detected at '^' marker.
    

    Also my dmvpn table looks a bit different but still says two entries only displays one line for them

    R2#show dmvpn
    Legend: Attrb --> S - Static, D - Dynamic, I - Incompletea
            N - NATed, L - Local, X - No Socket
            # Ent --> Number of NHRP entries with same NBMA peer
    
    Tunnel0, Type:Spoke, NHRP Peers:2,
     # Ent 
    ... Continue reading in our forum

18 more replies! Ask a question or join the discussion by visiting our Community Forum