Hierarchical DMVPN Phase 3 Introduction to Scalable Designs

« 2022 Dec 15 »

What is hierarchical DMVPN?

Hierarchical DMVPN is a solution designed for scalability in order to connect a very large number of spoke routers in diverse geographical regions. A single hub router can handle a finite number of DMVPN spokes, and hierarchical DMVPN provides a layered mechanism to enable direct site-to-site connectivity but without each spoke connecting to the same hub.

Configuring multi-region hierarchical DMVPN Phase 3

In the following example topology a hierarchical DMVPN network is configured with direct spoke-to-spoke connectivity between each site. The design is purely for educational purposes in order to practice a scalable DMVPN architecture using IOS XE on the Regional Hub and Central Hub routers. The following list highlights several aspects of this example network.

  • Between the Regional Hub and the Central Hub there is a DMVPN Phase 1 network using EIGRP. Here, the Regional Hubs act as spoke routers using interface Tunnel100 to establish a point-to-point GRE tunnel with the CHub router.
  • Between the Regional Hubs and the Spoke routers R1, R2 and R3 there is a DMVPN Phase 3 network using iBGP. Here, the Regional Hubs use the interface Tunnel200.
  • On each Regional Hub prefixes learned through iBGP are redistributed into EIGRP. The command bgp redistribute-internal configured under the BGP process on the Regional Hubs ensures that iBGP prefixes can be redistributed into EIGRP.
  • The Spoke routers R1, R2 and R3 prioritize each Regional Hub router. The local preference value 200 is assigned to the default route advertised from Hub1 by issuing the command bgp default local-preference 200 under the BGP process.

Hierarchical DMVPN Phase 3 configured with multiple regions and direct spoke-to-spoke communication using iBGP and EIGRP

Configuration:

CHub
    CHub#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** Underlay network to Regional DMVPN Hubs **
     ip address 172.16.0.1 255.255.255.252
     duplex auto
     speed auto
     media-type rj45
    
    CHub#show run int Tu100 | sec int
    interface Tunnel100
     description ** DMVPN Phase 1 overlay network **
     ip address 10.100.0.1 255.255.255.0
     no ip redirects
     ip nhrp authentication AUTH100
     ip nhrp network-id 1000
     tunnel source 172.16.0.1
     tunnel mode gre multipoint
     tunnel key 100
    
    CHub#show run all | inc ^interface Tunnel100|ip nhrp map
    interface Tunnel100
     ip nhrp map multicast dynamic
    
    CHub#show run | sec ^router
    router eigrp EXAMPLE-EIGRP
     !
     address-family ipv4 unicast autonomous-system 10
      !
      af-interface Tunnel100
       summary-address 192.168.0.0 255.255.0.0
       no split-horizon
      exit-af-interface
      !
      topology base
      exit-af-topology
      network 10.100.0.0 0.0.0.255
      eigrp router-id 10.10.10.10
     exit-address-family
    
    CHub#show run | sec ^ip route
    ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/0 172.16.0.2
    
Hub1
    Hub1#show run int Gi1 | sec int  
    interface GigabitEthernet1
     description ** Underlay network to Spoke Sites **
     ip address 172.17.1.1 255.255.255.252
     negotiation auto
     no mop enabled
     no mop sysid
    
    Hub1#show run int Gi2 | sec int
    interface GigabitEthernet2
     description ** Underlay network to Central DMVPN Hubs **
     ip address 172.16.1.1 255.255.255.252
     negotiation auto
     no mop enabled
     no mop sysid
    
    Hub1#show run int Tu100 | sec int
    interface Tunnel100
     description ** DMVPN Phase 1 overlay network (CHub) **
     ip address 10.100.0.2 255.255.255.0
     ip nhrp authentication AUTH100
     ip nhrp map 10.100.0.1 172.16.0.1
     ip nhrp map multicast 172.16.0.1
     ip nhrp network-id 1000
     ip nhrp nhs 10.100.0.1
     tunnel source GigabitEthernet2
     tunnel destination 172.16.0.1
     tunnel key 100
    
    Hub1#show run int Tu200 | sec int
    interface Tunnel200
     description ** DMVPN Phase 3 overlay network (Spokes) **
     ip address 10.200.0.1 255.255.255.0
     no ip redirects
     ip nhrp authentication AUTH200
     ip nhrp network-id 1000
     ip nhrp redirect
     bfd interval 1000 min_rx 1000 multiplier 3
     tunnel source 172.17.1.1
     tunnel mode gre multipoint
     tunnel key 200
    
    Hub1#show run | sec ^router eigrp
    router eigrp EXAMPLE-EIGRP
     !
     address-family ipv4 unicast autonomous-system 10
      !
      topology base
       redistribute bgp 65001 route-map RMAP-REDIST-BGP
      exit-af-topology
      network 10.100.0.0 0.0.0.255
      eigrp router-id 1.1.1.1
     exit-address-family
    
    Hub1#show run | sec ^route-map 
    route-map RMAP-REDIST-BGP permit 10 
     set metric 1000 10 100 1 1500
    
    Hub1#show run | sec ^router bgp
    router bgp 65001
     bgp router-id 10.10.10.10
     bgp log-neighbor-changes
     bgp default local-preference 200
     bgp redistribute-internal
     neighbor 10.200.0.5 remote-as 65001
     neighbor 10.200.0.5 fall-over bfd
     neighbor 10.200.0.5 default-originate
    
    Hub1#show run | sec ^ip route
    ip route 172.16.0.0 255.255.0.0 GigabitEthernet2 172.16.1.2
    ip route 172.17.0.0 255.255.0.0 GigabitEthernet1 172.17.1.2
    
Hub2
    Hub2#show run int Gi1 | sec int  
    interface GigabitEthernet1
     description ** Underlay network to Spoke Sites **
     ip address 172.17.2.1 255.255.255.252
     negotiation auto
     no mop enabled
     no mop sysid
    
    Hub2#show run int Gi2 | sec int
    interface GigabitEthernet2
     description ** Underlay network to Central DMVPN Hubs **
     ip address 172.16.2.1 255.255.255.252
     negotiation auto
     no mop enabled
     no mop sysid
    
    Hub2#show run int Tu100 | sec int
    interface Tunnel100
     description ** DMVPN Phase 1 overlay network (CHub) **
     ip address 10.100.0.3 255.255.255.0
     ip nhrp authentication AUTH100
     ip nhrp map 10.100.0.1 172.16.0.1
     ip nhrp map multicast 172.16.0.1
     ip nhrp network-id 1000
     ip nhrp nhs 10.100.0.1
     tunnel source GigabitEthernet2
     tunnel destination 172.16.0.1
     tunnel key 100
    
    Hub2#show run int Tu200 | sec int
    interface Tunnel200
     description ** DMVPN Phase 3 overlay network (Spokes) **
     ip address 10.200.0.2 255.255.255.0
     no ip redirects
     ip nhrp authentication AUTH200
     ip nhrp network-id 1000
     ip nhrp redirect
     bfd interval 1000 min_rx 1000 multiplier 3
     tunnel source 172.17.2.1
     tunnel mode gre multipoint
     tunnel key 200
    
    Hub2#show run | sec ^router eigrp
    router eigrp EXAMPLE-EIGRP
     !
     address-family ipv4 unicast autonomous-system 10
      !
      topology base
       redistribute bgp 65001 route-map RMAP-REDIST-BGP
      exit-af-topology
      network 10.100.0.0 0.0.0.255
      eigrp router-id 2.2.2.2
     exit-address-family
    
    Hub2#show run | sec ^route-map
    route-map RMAP-REDIST-BGP permit 10 
     set metric 1000 10 100 1 1500
    
    Hub2#show run | sec ^router bgp
    router bgp 65001
     bgp router-id 20.20.20.20
     bgp log-neighbor-changes
     bgp default local-preference 175
     bgp redistribute-internal
     neighbor 10.200.0.5 remote-as 65001
     neighbor 10.200.0.5 fall-over bfd
     neighbor 10.200.0.5 default-originate
    
    Hub2#show run | sec ^ip route 
    ip route 172.16.0.0 255.255.0.0 GigabitEthernet2 172.16.2.2
    ip route 172.17.0.0 255.255.0.0 GigabitEthernet1 172.17.2.2
    
Hub3
    Hub3#show run int Gi1 | sec int  
    interface GigabitEthernet1
     description ** Underlay network to Spoke Sites **
     ip address 172.17.3.1 255.255.255.252
     negotiation auto
     no mop enabled
     no mop sysid
    
    Hub3#show run int Gi2 | sec int
    interface GigabitEthernet2
     description ** Underlay network to Central DMVPN Hubs **
     ip address 172.16.3.1 255.255.255.252
     negotiation auto
     no mop enabled
     no mop sysid
    
    Hub3#show run int Tu100 | sec int
    interface Tunnel100
     description ** DMVPN Phase 1 overlay network (CHub) **
     ip address 10.100.0.4 255.255.255.0
     ip nhrp authentication AUTH100
     ip nhrp map 10.100.0.1 172.16.0.1
     ip nhrp map multicast 172.16.0.1
     ip nhrp network-id 1000
     ip nhrp nhs 10.100.0.1
     tunnel source GigabitEthernet2
     tunnel destination 172.16.0.1
     tunnel key 100
    
    Hub3#show run int Tu200 | sec int
    interface Tunnel200
     description ** DMVPN Phase 3 overlay network (Spokes) **
     ip address 10.200.0.3 255.255.255.0
     no ip redirects
     ip nhrp authentication AUTH200
     ip nhrp network-id 1000
     ip nhrp redirect
     bfd interval 1000 min_rx 1000 multiplier 3
     tunnel source 172.17.3.1
     tunnel mode gre multipoint
     tunnel key 200
    
    Hub3#show run | sec ^router eigrp
    router eigrp EXAMPLE-EIGRP
     !
     address-family ipv4 unicast autonomous-system 10
      !
      topology base
       redistribute bgp 65001 route-map RMAP-REDIST-BGP
      exit-af-topology
      network 10.100.0.0 0.0.0.255
      eigrp router-id 3.3.3.3
     exit-address-family
    
    Hub3#show run | sec ^route-map
    route-map RMAP-REDIST-BGP permit 10 
     set metric 1000 10 100 1 1500
    
    Hub3#show run | sec ^router bgp
    router bgp 65001
     bgp router-id 30.30.30.30
     bgp log-neighbor-changes
     bgp default local-preference 150
     bgp redistribute-internal
     neighbor 10.200.0.6 remote-as 65001
     neighbor 10.200.0.6 fall-over bfd
     neighbor 10.200.0.6 default-originate
     neighbor 10.200.0.7 remote-as 65001
     neighbor 10.200.0.7 fall-over bfd
     neighbor 10.200.0.7 default-originate
    
    Hub3#show run | sec ^ip route
    ip route 172.16.0.0 255.255.0.0 GigabitEthernet2 172.16.3.2
    ip route 172.17.0.0 255.255.0.0 GigabitEthernet1 172.17.3.2
    
Hub4
    Hub4#show run int Gi1 | sec int  
    interface GigabitEthernet1
     description ** Underlay network to Spoke Sites **
     ip address 172.17.4.1 255.255.255.252
     negotiation auto
     no mop enabled
     no mop sysid
    
    Hub4#show run int Gi2 | sec int
    interface GigabitEthernet2
     description ** Underlay network to Central DMVPN Hubs **
     ip address 172.16.4.1 255.255.255.252
     negotiation auto
     no mop enabled
     no mop sysid
    
    Hub4#show run int Tu100 | sec int
    interface Tunnel100
     description ** DMVPN Phase 1 overlay network (CHub) **
     ip address 10.100.0.5 255.255.255.0
     ip nhrp authentication AUTH100
     ip nhrp map 10.100.0.1 172.16.0.1
     ip nhrp map multicast 172.16.0.1
     ip nhrp network-id 1000
     ip nhrp nhs 10.100.0.1
     tunnel source GigabitEthernet2
     tunnel destination 172.16.0.1
     tunnel key 100
    
    Hub4#show run int Tu200 | sec int
    interface Tunnel200
     description ** DMVPN Phase 3 overlay network (Spokes) **
     ip address 10.200.0.4 255.255.255.0
     no ip redirects
     ip nhrp authentication AUTH200
     ip nhrp network-id 1000
     ip nhrp redirect
     bfd interval 1000 min_rx 1000 multiplier 3
     tunnel source 172.17.4.1
     tunnel mode gre multipoint
     tunnel key 200
    
    Hub4#show run | sec ^router eigrp
    router eigrp EXAMPLE-EIGRP
     !
     address-family ipv4 unicast autonomous-system 10
      !
      topology base
       redistribute bgp 65001 route-map RMAP-REDIST-BGP
      exit-af-topology
      network 10.100.0.0 0.0.0.255
      eigrp router-id 4.4.4.4
     exit-address-family
    
    Hub4#show run | sec ^route-map 
    route-map RMAP-REDIST-BGP permit 10 
     set metric 1000 10 100 1 1500
    
    Hub4#show run | sec ^router bgp 
    router bgp 65001
     bgp router-id 40.40.40.40
     bgp log-neighbor-changes
     bgp default local-preference 125
     bgp redistribute-internal
     neighbor 10.200.0.6 remote-as 65001
     neighbor 10.200.0.6 fall-over bfd
     neighbor 10.200.0.6 default-originate
     neighbor 10.200.0.7 remote-as 65001
     neighbor 10.200.0.7 fall-over bfd
     neighbor 10.200.0.7 default-originate
    
    Hub4#show run | sec ^ip route  
    ip route 172.16.0.0 255.255.0.0 GigabitEthernet2 172.16.4.2
    ip route 172.17.0.0 255.255.0.0 GigabitEthernet1 172.17.4.2
    
R1 (Spoke)
    R1#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to Host1 **
     ip address 192.168.1.2 255.255.255.0
     duplex auto
     speed auto
     media-type rj45
    
    R1#show run int Gi0/1 | sec int
    interface GigabitEthernet0/1
     description ** to Internet Provider **
     ip address 172.17.5.1 255.255.255.252
     duplex auto
     speed auto
     media-type rj45
    
    R1#show run int Tu200 | sec int
    interface Tunnel200
     description ** DMVPN Phase 3 tunnel overlay (Hub1 + Hub2) **
     ip address 10.200.0.5 255.255.255.0
     no ip redirects
     ip nhrp authentication AUTH200
     ip nhrp map 10.200.0.1 172.17.1.1
     ip nhrp map 10.200.0.2 172.17.2.1
     ip nhrp network-id 1000
     ip nhrp nhs 10.200.0.1
     ip nhrp nhs 10.200.0.2
     bfd interval 1000 min_rx 1000 multiplier 3
     tunnel source GigabitEthernet0/1
     tunnel mode gre multipoint
     tunnel key 200
    
    R1#show run all | inc interface Tunnel200|ip nhrp shortcut
    interface Tunnel200
     ip nhrp shortcut
    
    R1#show run | sec ^router
    router bgp 65001
     template peer-session EXAMPLE-TEMPLATE
      remote-as 65001
      fall-over bfd
     exit-peer-session
     !
     bgp router-id 1.1.1.1
     bgp log-neighbor-changes
     network 192.168.1.0
     neighbor 10.200.0.1 inherit peer-session EXAMPLE-TEMPLATE
     neighbor 10.200.0.2 inherit peer-session EXAMPLE-TEMPLATE
    
    R1#show run | sec ^ip route
    ip route 172.17.0.0 255.255.0.0 GigabitEthernet0/1 172.17.5.2
    
R2 (Spoke)
    R2#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to Host2 **
     ip address 192.168.2.2 255.255.255.0
     duplex auto
     speed auto
     media-type rj45
    
    R2#show run int Gi0/1 | sec int
    interface GigabitEthernet0/1
     description ** to Internet Provider **
     ip address 172.17.6.1 255.255.255.252
     duplex auto
     speed auto
     media-type rj45
    
    R2#show run int Tu200 | sec int
    interface Tunnel200
     description ** DMVPN Phase 3 tunnel overlay (Hub3 + Hub4) **
     ip address 10.200.0.6 255.255.255.0
     no ip redirects
     ip nhrp authentication AUTH200
     ip nhrp map 10.200.0.3 172.17.3.1
     ip nhrp map 10.200.0.4 172.17.4.1
     ip nhrp network-id 1000
     ip nhrp nhs 10.200.0.3
     ip nhrp nhs 10.200.0.4
     bfd interval 1000 min_rx 1000 multiplier 3
     tunnel source GigabitEthernet0/1
     tunnel mode gre multipoint
     tunnel key 200
    
    R2#show run all | inc interface Tunnel200|ip nhrp shortcut
    interface Tunnel200
     ip nhrp shortcut
    
    R2#show run | sec ^router
    router bgp 65001
     template peer-session EXAMPLE-TEMPLATE
      remote-as 65001
      fall-over bfd
     exit-peer-session
     !
     bgp router-id 2.2.2.2
     bgp log-neighbor-changes
     network 192.168.2.0
     neighbor 10.200.0.3 inherit peer-session EXAMPLE-TEMPLATE
     neighbor 10.200.0.4 inherit peer-session EXAMPLE-TEMPLATE
    
    R2#show run | sec ^ip route
    ip route 172.17.0.0 255.255.0.0 GigabitEthernet0/1 172.17.6.2
    
R3 (Spoke)
    R3#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to Host3 **
     ip address 192.168.3.2 255.255.255.0
     duplex auto
     speed auto
     media-type rj45
    
    R3#show run int Gi0/1 | sec int
    interface GigabitEthernet0/1
     description ** to Internet Provider **
     ip address 172.17.7.1 255.255.255.252
     duplex auto
     speed auto
     media-type rj45
    
    R3#show run int Tu200 | sec int
    interface Tunnel200
     description ** DMVPN Phase 3 tunnel overlay (Hub3 + Hub4) **
     ip address 10.200.0.7 255.255.255.0
     no ip redirects
     ip nhrp authentication AUTH200
     ip nhrp map 10.200.0.3 172.17.3.1
     ip nhrp map 10.200.0.4 172.17.4.1
     ip nhrp network-id 1000
     ip nhrp nhs 10.200.0.3
     ip nhrp nhs 10.200.0.4
     bfd interval 1000 min_rx 1000 multiplier 3
     tunnel source GigabitEthernet0/1
     tunnel mode gre multipoint
     tunnel key 200
    
    R3#show run all | inc interface Tunnel200|ip nhrp shortcut
    interface Tunnel200
     ip nhrp shortcut
    
    R3#show run | sec ^router
    router bgp 65001
     template peer-session EXAMPLE-TEMPLATE
      remote-as 65001
      fall-over bfd
     exit-peer-session
     !
     bgp router-id 3.3.3.3
     bgp log-neighbor-changes
     network 192.168.3.0
     neighbor 10.200.0.3 inherit peer-session EXAMPLE-TEMPLATE
     neighbor 10.200.0.4 inherit peer-session EXAMPLE-TEMPLATE
    
    R3#show run | sec ^ip route
    ip route 172.17.0.0 255.255.0.0 GigabitEthernet0/1 172.17.7.2
    
Host1
    Host1#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to Spoke R1 **
     ip address 192.168.1.1 255.255.255.0
     duplex auto
     speed auto
     media-type rj45
    
    Host1#show run | sec ^ip route   
    ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/0 192.168.1.2
    
Host1#trace 192.168.2.1 probe 1
Type escape sequence to abort.
Tracing the route to 192.168.2.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.1.2 11 msec
  2 10.200.0.1 3 msec
  3 10.100.0.1 4 msec             « From Site 1 to Site 2 first packet goes through CHub
  4 10.100.0.5 7 msec
  5 10.200.0.6 33 msec
  6 192.168.2.1 35 msec




Host1#trace 192.168.2.1 probe 1
Type escape sequence to abort.
Tracing the route to 192.168.2.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.1.2 1 msec
  2 10.200.0.6 3 msec              « Second packet goes directly from Site 1 to Site 2
  3 192.168.2.1 3 msec





Host1#trace 192.168.3.1 probe 1
Type escape sequence to abort.
Tracing the route to 192.168.3.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.1.2 2 msec
  2 10.200.0.1 3 msec
  3 10.100.0.1 5 msec              « From Site 1 to Site 3 first packet goes through CHub
  4 10.100.0.5 5 msec
  5 10.200.0.7 6 msec
  6 192.168.3.1 9 msec




Host1#trace 192.168.3.1 probe 1
Type escape sequence to abort.
Tracing the route to 192.168.3.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.1.2 1 msec
  2 10.200.0.7 3 msec              « Second packet goes directly from Site 1 to Site 3
  3 192.168.3.1 4 msec
  
  
  


Host2#trace 192.168.3.1 probe 1
Type escape sequence to abort.
Tracing the route to 192.168.3.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.2.2 1 msec
  2 10.200.0.3 3 msec           « From Site 2 to Site 3 first packet goes through Regional Hub3
  3 10.200.0.7 3 msec
  4 192.168.3.1 7 msec





Host2#trace 192.168.3.1 probe 1
Type escape sequence to abort.
Tracing the route to 192.168.3.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.2.2 1 msec
  2 10.200.0.7 2 msec           « Second packet goes directly from Site 2 to Site 3
  3 192.168.3.1 4 msec

In the above outputs it is visible that DMVPN Phase 3 spoke-to-spoke direct connectivity works betwen each site. This is possible because the Spoke routers R1, R2 and R3 install shortcut routes into their routing tables through NHRP. The following outputs show these shortcut routes.

R1#show ip route nhrp | beg Ga
Gateway of last resort is 10.200.0.1 to network 0.0.0.0

      10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
H        10.200.0.6/32 is directly connected, 00:04:05, Tunnel200
H        10.200.0.7/32 is directly connected, 00:02:54, Tunnel200
H     192.168.2.0/24 [250/255] via 10.200.0.6, 00:04:05, Tunnel200           « NHRP route to Site 2 installed on Site 1 Spoke R1
H     192.168.3.0/24 [250/255] via 10.200.0.7, 00:02:54, Tunnel200




R1#show ip nhrp brief  
****************************************************************************
    NOTE: Link-Local, No-socket and Incomplete entries are not displayed
****************************************************************************
Legend: Type --> S - Static, D - Dynamic
        Flags --> u - unique, r - registered, e - temporary, c - claimed
        a - authoritative, t - route
============================================================================

Intf     NextHop Address                                    NBMA Address
         Target Network                              T/Flag
-------- ------------------------------------------- ------ ----------------
Tu200    10.200.0.1                                         172.17.1.1
         10.200.0.1/32                               S/    
Tu200    10.200.0.2                                         172.17.2.1
         10.200.0.2/32                               S/    
Tu200    10.200.0.6                                         172.17.6.1
         192.168.2.0/24                              D/t                  « Dynamic routes installed in NHRP cache and in routing table
         10.200.0.6/32                               D/t   
Tu200    10.200.0.7                                         172.17.7.1
         192.168.3.0/24                              D/t   
         10.200.0.7/32                               D/t
		 
		 
		 


R2#show ip route nhrp | beg Ga
Gateway of last resort is 10.200.0.3 to network 0.0.0.0

      10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
H        10.200.0.5/32 is directly connected, 00:06:08, Tunnel200
H        10.200.0.7/32 is directly connected, 00:03:30, Tunnel200
H     192.168.1.0/24 [250/255] via 10.200.0.5, 00:06:08, Tunnel200
H     192.168.3.0/24 [250/255] via 10.200.0.7, 00:03:30, Tunnel200

An important aspect of this design is the NHRP message exchange. With DMVPN Phase 2 and Phase 3 the NHRP Resolution Requests are forwarded by the Hub router to the destination Spoke. This also happens in the current example topology, the Regional Hub and the CHub router forward the NHRP Resolution Requests, and eventually the destination Spoke directly replies to the originator Spoke.

The DMVPN Phase 3 Redirect message (Traffic Indication) is originated by the Regional Hub routers and sent to the Spokes. This is shown in the following packet capture.

Hierarchical DMVPN Phase 3 NHRP Traffic Indication message sent from regional hub router to a spoke router

Furthermore, the following outputs provide information about the routing implemented with this example topology. Note that the DMVPN Phase 1 cloud uses EIGRP so multicast mapping needs to be configured. The DMVPN Phase 3 network's iBGP routes appear as EIGRP external routes. And in fact, the CHub router only advertises a single summary route to the Regional Hub routers.

Hub1#show ip route | beg Ga
Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C        10.100.0.0/24 is directly connected, Tunnel100
L        10.100.0.2/32 is directly connected, Tunnel100
C        10.200.0.0/24 is directly connected, Tunnel200
L        10.200.0.1/32 is directly connected, Tunnel200
      172.16.0.0/16 is variably subnetted, 3 subnets, 3 masks
S        172.16.0.0/16 [1/0] via 172.16.1.2, GigabitEthernet2
C        172.16.1.0/30 is directly connected, GigabitEthernet2
L        172.16.1.1/32 is directly connected, GigabitEthernet2
      172.17.0.0/16 is variably subnetted, 3 subnets, 3 masks
S        172.17.0.0/16 [1/0] via 172.17.1.2, GigabitEthernet1
C        172.17.1.0/30 is directly connected, GigabitEthernet1
L        172.17.1.1/32 is directly connected, GigabitEthernet1
D     192.168.0.0/16 [90/102451200] via 10.100.0.1, 01:21:17, Tunnel100      « EIGRP summary route originated by CHub
B     192.168.1.0/24 [200/0] via 10.200.0.5, 01:36:56                        « DMVPN Phase 3 Site-specific prefix




Hub3#show ip route | beg Ga
Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C        10.100.0.0/24 is directly connected, Tunnel100
L        10.100.0.4/32 is directly connected, Tunnel100
C        10.200.0.0/24 is directly connected, Tunnel200
L        10.200.0.3/32 is directly connected, Tunnel200
      172.16.0.0/16 is variably subnetted, 3 subnets, 3 masks
S        172.16.0.0/16 [1/0] via 172.16.3.2, GigabitEthernet2
C        172.16.3.0/30 is directly connected, GigabitEthernet2
L        172.16.3.1/32 is directly connected, GigabitEthernet2
      172.17.0.0/16 is variably subnetted, 3 subnets, 3 masks
S        172.17.0.0/16 [1/0] via 172.17.3.2, GigabitEthernet1
C        172.17.3.0/30 is directly connected, GigabitEthernet1
L        172.17.3.1/32 is directly connected, GigabitEthernet1
D     192.168.0.0/16 [90/102451200] via 10.100.0.1, 01:22:01, Tunnel100
B     192.168.2.0/24 [200/0] via 10.200.0.6, 01:36:37
B     192.168.3.0/24 [200/0] via 10.200.0.7, 01:36:37






CHub#show dmvpn | beg Int
Interface: Tunnel100, IPv4 NHRP Details 
Type:Hub, NHRP Peers:4, 

 # Ent  Peer NBMA Addr Peer Tunnel Add State  UpDn Tm Attrb
 ----- --------------- --------------- ----- -------- -----
     1 172.16.1.1           10.100.0.2    UP 01:22:20     D         « Regional Hubs are registered with the CHub
     1 172.16.2.1           10.100.0.3    UP 01:21:46     D
     1 172.16.3.1           10.100.0.4    UP 01:22:22     D
     1 172.16.4.1           10.100.0.5    UP 01:22:19     D





CHub#show ip route eigrp | beg Ga                                      « Site prefixes are received on CHub router
Gateway of last resort is 172.16.0.2 to network 0.0.0.0

D     192.168.0.0/16 is a summary, 01:23:51, Null0
D EX  192.168.1.0/24 [170/76851200] via 10.100.0.3, 01:23:12, Tunnel100
                     [170/76851200] via 10.100.0.2, 01:23:12, Tunnel100
D EX  192.168.2.0/24 [170/76851200] via 10.100.0.5, 01:23:49, Tunnel100
                     [170/76851200] via 10.100.0.4, 01:23:49, Tunnel100
D EX  192.168.3.0/24 [170/76851200] via 10.100.0.5, 01:23:49, Tunnel100
                     [170/76851200] via 10.100.0.4, 01:23:49, Tunnel100
					 
					 
					 


Hub1#show dmvpn | beg Int
Interface: Tunnel100, IPv4 NHRP Details 
Type:Spoke, NHRP Peers:1, 

 # Ent  Peer NBMA Addr Peer Tunnel Add State  UpDn Tm Attrb
 ----- --------------- --------------- ----- -------- -----
     1 172.16.0.1           10.100.0.1    UP 01:23:10     S         « Regional Hub is spoke of CHub

Interface: Tunnel200, IPv4 NHRP Details 
Type:Hub, NHRP Peers:1, 

 # Ent  Peer NBMA Addr Peer Tunnel Add State  UpDn Tm Attrb
 ----- --------------- --------------- ----- -------- -----
     1 172.17.5.1           10.200.0.5    UP 01:38:59     D         « Regional Hub is hub of Spoke routers
	 
	 
	 
	 

R1#show ip route bgp | beg Ga
Gateway of last resort is 200.0.0.1 to network 0.0.0.0

B*    0.0.0.0/0 [200/0] via 200.0.0.1, 00:54:09                     « Spoke receives single BGP default route from Regional Hub





R1#show ip route bgp | beg Ga
Gateway of last resort is 10.200.0.1 to network 0.0.0.0

B*    0.0.0.0/0 [200/0] via 10.200.0.1, 01:40:09                   « Spoke receives single BGP default route from Regional Hub





R1#show ip bgp | beg Ne      
     Network          Next Hop            Metric LocPrf Weight Path
 * i  0.0.0.0          10.200.0.2               0    175      0 i      « Spoke receives multiple BGP default routes with different local preference
 *>i                   10.200.0.1               0    200      0 i
 *>   192.168.1.0      0.0.0.0                  0         32768 i

The above outputs show why this design is scalable. Namely, not all spoke routers need to be connected to each Regional Hub router in order to have direct spoke-to-spoke connectivity. For example, Spoke R1 is only connected to Hub1, but can still reach Site 2 and Site 3 with a direct tunnel using DMVPN Phase 3.

Configuring multi-region scalable DMVPN without direct spoke-to-spoke communication

In the following example topology two regional DMVPN networks are connected with a backbone transport link. The design configured in this scenario is intended as a study note for informational purposes only and to practice OSPFv3, DMVPN with iBGP, redistribution, and route filtering.

Within each region DMVPN Phase 3 is configured, so there is direct spoke-to-spoke communication between Site 2 and Site 3. But inter-regional traffic must transit the backbone cloud between Datacenter 1 and 2. The following list highlights several aspects of this example scenario.

  • The Datacenters share IPv4 routes using OSPFv3. Datacenter 1 is in OSPF area 1, DC 2 is in area 2, the backbone transport is in area 0. OSPFv3 route filtering is configured on the GW devices so only Spoke Site routes are advertised into each DC.
  • Site prefixes are learned through each DMVPN cloud using iBGP. However, in order to redistribute iBGP routes into OSPFv3 on the hub routers the command bgp redistribute-internal is added under the BGP process.
  • Each hub router only advertises a single default route through iBGP. To assign a different priority for each hub router the local preference value of the default route is adjusted with the bgp default local-preference 200 example command taken from Hub1.
  • Each hub router learns Site-specific prefixes through iBGP and also through OSPFv3. The OSPF Administrative Distance (AD) is increased so that the hub routers always prefer iBGP when a prefix is originated from the local DMVPN cloud. This enables the NHRP Redirect message and direct spoke-to-spoke communication for traffic that stays within a single region (intra-regional).
Scalable DMVPN Phase 3 multi-region network with dedicated transport link between regional hubs

Configuration:

Hub1
    Hub1#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to Internet Provider **
     ip address 172.16.1.2 255.255.255.252
     duplex auto
     speed auto
     media-type rj45
    
    Hub1#show run int Gi0/1 | sec int
    interface GigabitEthernet0/1
     description ** to GW1 **
     ip address 192.168.10.2 255.255.255.0
     duplex auto
     speed auto
     media-type rj45
     ipv6 address FE80::2 link-local
     ospfv3 10 ipv4 area 1
     ospfv3 10 ipv4 priority 0
    
    Hub1#show run int Tu10 | sec int
    interface Tunnel10
     description ** DMVPN Phase 3 tunnel overlay (left side cloud) **
     ip address 10.10.0.1 255.255.255.0
     no ip redirects
     ip nhrp authentication AUTH10
     ip nhrp network-id 100
     ip nhrp redirect
     bfd interval 1000 min_rx 1000 multiplier 3
     tunnel source 172.16.1.2
     tunnel mode gre multipoint
     tunnel key 10
    
    Hub1#show run | sec ^router ospf
    router ospfv3 10
     router-id 1.1.1.1
     !
     address-family ipv4 unicast
      redistribute bgp 65001 route-map RM-REDIST-DMVPN
      distance 210
     exit-address-family
    
    Hub1#show run | sec ^route-map  
    route-map RM-REDIST-DMVPN permit 10
     match ip address prefix-list PL-REDIST-DMVPN
    
    Hub1#show run | sec ^ip prefix  
    ip prefix-list PL-REDIST-DMVPN seq 5 permit 192.168.1.0/24
    
    Hub1#show run | sec ^router bgp
    router bgp 65001
     bgp router-id 10.10.10.10
     bgp log-neighbor-changes
     bgp default local-preference 200
     bgp redistribute-internal
     neighbor 10.10.0.3 remote-as 65001
     neighbor 10.10.0.3 fall-over bfd
     neighbor 10.10.0.3 default-originate
    
    Hub1#show run | sec ^ip route
    ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/0 172.16.1.1
    
    Hub1#show run | sec ^ipv6 uni
    ipv6 unicast-routing
    
Hub2
    Hub2#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to Internet Provider **
     ip address 172.16.2.2 255.255.255.252
     duplex auto
     speed auto
     media-type rj45
    
    Hub2#show run int Gi0/1 | sec int
    interface GigabitEthernet0/1
     description ** to GW1 **
     ip address 192.168.10.3 255.255.255.0
     duplex auto
     speed auto
     media-type rj45
     ipv6 address FE80::3 link-local
     ospfv3 10 ipv4 area 1
     ospfv3 10 ipv4 priority 0
    
    Hub2#show run int Tu10 | sec int 
    interface Tunnel10
     description ** DMVPN Phase 3 tunnel overlay (left side cloud) **
     ip address 10.10.0.2 255.255.255.0
     no ip redirects
     ip nhrp authentication AUTH10
     ip nhrp network-id 100
     ip nhrp redirect
     bfd interval 1000 min_rx 1000 multiplier 3
     tunnel source 172.16.2.2
     tunnel mode gre multipoint
     tunnel key 10
    
    Hub2#show run | sec ^router ospf
    router ospfv3 10
     router-id 2.2.2.2
     !
     address-family ipv4 unicast
      redistribute bgp 65001 metric 2 route-map RM-REDIST-DMVPN
      distance 210
     exit-address-family
    
    Hub2#show run | sec ^route-map
    route-map RM-REDIST-DMVPN permit 10
     match ip address prefix-list PL-REDIST-DMVPN
    
    Hub2#show run | sec ^ip prefix
    ip prefix-list PL-REDIST-DMVPN seq 5 permit 192.168.1.0/24
    
    Hub2#show run | sec ^router bgp
    router bgp 65001
     bgp router-id 20.20.20.20
     bgp log-neighbor-changes
     bgp default local-preference 150
     bgp redistribute-internal
     neighbor 10.10.0.3 remote-as 65001
     neighbor 10.10.0.3 fall-over bfd
     neighbor 10.10.0.3 default-originate
    
    Hub2#show run | sec ^ip route
    ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/0 172.16.2.1
    
    Hub2#show run | sec ^ipv6 uni
    ipv6 unicast-routing
    
Hub3
    Hub3#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to Internet Provider **
     ip address 172.16.3.2 255.255.255.252
     duplex auto
     speed auto
     media-type rj45
    
    Hub3#show run int Gi0/1 | sec int
    interface GigabitEthernet0/1
     description ** to GW2 **
     ip address 192.168.20.2 255.255.255.0
     duplex auto
     speed auto
     media-type rj45
     ipv6 address FE80::2 link-local
     ospfv3 10 ipv4 area 2
     ospfv3 10 ipv4 priority 0
    
    Hub3#show run int Tu10 | sec int 
    interface Tunnel10
     description ** DMVPN Phase 3 tunnel overlay (right side cloud) **
     ip address 10.20.0.1 255.255.255.0
     no ip redirects
     ip nhrp authentication AUTH20
     ip nhrp network-id 200
     ip nhrp redirect
     bfd interval 1000 min_rx 1000 multiplier 3
     tunnel source 172.16.3.2
     tunnel mode gre multipoint
     tunnel key 20
    
    Hub3#show run | sec ^router ospf
    router ospfv3 10
     router-id 3.3.3.3
     !
     address-family ipv4 unicast
      redistribute bgp 65002 route-map RMAP-REDIST-DMVPN
      distance 210
     exit-address-family
    
    Hub3#show run | sec ^route-map  
    route-map RMAP-REDIST-DMVPN permit 10
     match ip address prefix-list PL-REDIST-DMVPN
    
    Hub3#show run | sec ^ip prefix
    ip prefix-list PL-REDIST-DMVPN seq 5 permit 192.168.2.0/24
    ip prefix-list PL-REDIST-DMVPN seq 10 permit 192.168.3.0/24
    
    Hub3#show run | sec ^router bgp
    router bgp 65002
     bgp router-id 10.10.10.10
     bgp log-neighbor-changes
     bgp default local-preference 200
     bgp redistribute-internal
     neighbor 10.20.0.3 remote-as 65002
     neighbor 10.20.0.3 fall-over bfd
     neighbor 10.20.0.3 default-originate
     neighbor 10.20.0.4 remote-as 65002
     neighbor 10.20.0.4 fall-over bfd
     neighbor 10.20.0.4 default-originate
    
    Hub3#show run | sec ^ip route
    ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/0 172.16.3.1
    
    Hub3#show run | sec ^ipv6 uni 
    ipv6 unicast-routing
    
Hub4
    Hub4#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to Internet Provider **
     ip address 172.16.4.2 255.255.255.252
     duplex auto
     speed auto
     media-type rj45
    
    Hub4#show run int Gi0/1 | sec int
    interface GigabitEthernet0/1
     description ** to GW2 **
     ip address 192.168.20.3 255.255.255.0
     duplex auto
     speed auto
     media-type rj45
     ipv6 address FE80::3 link-local
     ospfv3 10 ipv4 area 2
     ospfv3 10 ipv4 priority 0
    
    Hub4#show run int Tu10 | sec int 
    interface Tunnel10
     description ** DMVPN Phase 3 tunnel overlay (right side cloud) **
     ip address 10.20.0.2 255.255.255.0
     no ip redirects
     ip nhrp authentication AUTH20
     ip nhrp network-id 200
     ip nhrp redirect
     bfd interval 1000 min_rx 1000 multiplier 3
     tunnel source 172.16.4.2
     tunnel mode gre multipoint
     tunnel key 20
    
    Hub4#show run | sec ^router ospf
    router ospfv3 10
     router-id 4.4.4.4
     !
     address-family ipv4 unicast
      redistribute bgp 65002 metric 2 route-map RMAP-REDIST-DMVPN
      distance 210
     exit-address-family
    
    Hub4#show run | sec ^route-map  
    route-map RMAP-REDIST-DMVPN permit 10
     match ip address prefix-list PL-REDIST-DMVPN
    
    Hub4#show run | sec ^ip prefix
    ip prefix-list PL-REDIST-DMVPN seq 5 permit 192.168.2.0/24
    ip prefix-list PL-REDIST-DMVPN seq 10 permit 192.168.3.0/24
    
    Hub4#show run | sec ^router bgp
    router bgp 65002
     bgp router-id 20.20.20.20
     bgp log-neighbor-changes
     bgp default local-preference 150
     bgp redistribute-internal
     neighbor 10.20.0.3 remote-as 65002
     neighbor 10.20.0.3 fall-over bfd
     neighbor 10.20.0.3 default-originate
     neighbor 10.20.0.4 remote-as 65002
     neighbor 10.20.0.4 fall-over bfd
     neighbor 10.20.0.4 default-originate
    
    Hub4#show run | sec ^ip route  
    ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/0 172.16.4.1
    
    Hub4#show run | sec ^ipv6 uni
    ipv6 unicast-routing
    
R1 (Spoke)
    R1#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to Host1 **
     ip address 192.168.1.2 255.255.255.0
     duplex auto
     speed auto
     media-type rj45
    
    R1#show run int Gi0/1 | sec int
    interface GigabitEthernet0/1
     description ** to Internet Provider **
     ip address 172.16.5.2 255.255.255.252
     duplex auto
     speed auto
     media-type rj45
    
    R1#show run int Tu10 | sec int 
    interface Tunnel10
     description ** DMVPN Phase 3 tunnel overlay (left side cloud) **
     ip address 10.10.0.3 255.255.255.0
     no ip redirects
     ip nhrp authentication AUTH10
     ip nhrp map 10.10.0.1 172.16.1.2
     ip nhrp map 10.10.0.2 172.16.2.2
     ip nhrp network-id 100
     ip nhrp nhs 10.10.0.1
     ip nhrp nhs 10.10.0.2
     bfd interval 1000 min_rx 1000 multiplier 3
     tunnel source GigabitEthernet0/1
     tunnel mode gre multipoint
     tunnel key 10
    
    R1#show run | sec ^router   
    router bgp 65001
     template peer-session EXAMPLE-TEMPLATE
      remote-as 65001
      fall-over bfd
     exit-peer-session
     !
     bgp router-id 1.1.1.1
     bgp log-neighbor-changes
     network 192.168.1.0
     neighbor 10.10.0.1 inherit peer-session EXAMPLE-TEMPLATE
     neighbor 10.10.0.2 inherit peer-session EXAMPLE-TEMPLATE
    
    R1#show run | sec ^ip route
    ip route 172.16.0.0 255.255.0.0 GigabitEthernet0/1 172.16.5.1
    
R2 (Spoke)
    R2#show run int Gi0/0 | sec int 
    interface GigabitEthernet0/0
     description ** to Host2 **
     ip address 192.168.2.2 255.255.255.0
     duplex auto
     speed auto
     media-type rj45
    
    R2#show run int Gi0/1 | sec int
    interface GigabitEthernet0/1
     description ** to Internet Provider **
     ip address 172.16.6.2 255.255.255.252
     duplex auto
     speed auto
     media-type rj45
    
    R2#show run int Tu10 | sec int 
    interface Tunnel10
     description ** DMVPN Phase 3 tunnel overlay (right side cloud) **
     ip address 10.20.0.3 255.255.255.0
     no ip redirects
     ip nhrp authentication AUTH20
     ip nhrp map 10.20.0.2 172.16.4.2
     ip nhrp map 10.20.0.1 172.16.3.2
     ip nhrp network-id 200
     ip nhrp nhs 10.20.0.1
     ip nhrp nhs 10.20.0.2
     bfd interval 1000 min_rx 1000 multiplier 3
     tunnel source GigabitEthernet0/1
     tunnel mode gre multipoint
     tunnel key 20
    
    R2#show run | sec ^router
    router bgp 65002
     template peer-session EXAMPLE-TEMPLATE
      remote-as 65002
      fall-over bfd
     exit-peer-session
     !
     bgp router-id 1.1.1.1
     bgp log-neighbor-changes
     network 192.168.2.0
     neighbor 10.20.0.1 inherit peer-session EXAMPLE-TEMPLATE
     neighbor 10.20.0.2 inherit peer-session EXAMPLE-TEMPLATE
    
    R2#show run | sec ^ip route
    ip route 172.16.0.0 255.255.0.0 GigabitEthernet0/1 172.16.6.1
    
R3 (Spoke)
    R3#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to Host3 **
     ip address 192.168.3.2 255.255.255.0
     duplex auto
     speed auto
     media-type rj45
    
    R3#show run int Gi0/1 | sec int
    interface GigabitEthernet0/1
     description ** to Internet Provider **
     ip address 172.16.7.2 255.255.255.252
     duplex auto
     speed auto
     media-type rj45
    
    R3#show run int Tu10 | sec int 
    interface Tunnel10
     description ** DMVPN Phase 3 tunnel overlay (right side cloud) **
     ip address 10.20.0.4 255.255.255.0
     no ip redirects
     ip nhrp authentication AUTH20
     ip nhrp map 10.20.0.2 172.16.4.2
     ip nhrp map 10.20.0.1 172.16.3.2
     ip nhrp network-id 200
     ip nhrp nhs 10.20.0.1
     ip nhrp nhs 10.20.0.2
     bfd interval 1000 min_rx 1000 multiplier 3
     tunnel source GigabitEthernet0/1
     tunnel mode gre multipoint
     tunnel key 20
    
    R3#show run | sec ^router  
    router bgp 65002
     template peer-session EXAMPLE-TEMPLATE
      remote-as 65002
      fall-over bfd
     exit-peer-session
     !
     bgp router-id 2.2.2.2
     bgp log-neighbor-changes
     network 192.168.3.0
     neighbor 10.20.0.1 inherit peer-session EXAMPLE-TEMPLATE
     neighbor 10.20.0.2 inherit peer-session EXAMPLE-TEMPLATE
    
    R3#show run | sec ^ip route
    ip route 172.16.0.0 255.255.0.0 GigabitEthernet0/1 172.16.7.1
    
GW1
    GW1#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to DMVPN Hub routers **
     ip address 192.168.10.1 255.255.255.0
     duplex auto
     speed auto
     media-type rj45
     ipv6 address FE80::1 link-local
     ospfv3 10 ipv4 area 1
     ospfv3 10 ipv4 priority 100
    
    GW1#show run int Gi0/1 | sec int
    interface GigabitEthernet0/1
     description ** to Backbone Transport - GW2 **
     ip address 172.16.100.1 255.255.255.252
     duplex auto
     speed auto
     media-type rj45
     ipv6 address FE80::1 link-local
     ospfv3 network point-to-point
     ospfv3 10 ipv4 area 0
    
    GW1#show run | sec ^router
    router ospfv3 10
     router-id 10.10.10.10
     !
     address-family ipv4 unicast
      area 0 filter-list prefix PL-OSPF-FILTER out
     exit-address-family
    
    GW1#show run | sec ^ip prefix
    ip prefix-list PL-OSPF-FILTER seq 5 permit 192.168.2.0/24
    ip prefix-list PL-OSPF-FILTER seq 10 permit 192.168.3.0/24
    
    GW1#show run | sec ^ipv6 uni
    ipv6 unicast-routing
    
GW2
    GW2#show run int Gi0/0 | sec int 
    interface GigabitEthernet0/0
     description ** to DMVPN Hub routers **
     ip address 192.168.20.1 255.255.255.0
     duplex auto
     speed auto
     media-type rj45
     ipv6 address FE80::1 link-local
     ospfv3 10 ipv4 area 2
     ospfv3 10 ipv4 priority 100
    
    GW2#show run int Gi0/1 | sec int
    interface GigabitEthernet0/1
     description ** to Backbone Transport - GW2 **
     ip address 172.16.100.2 255.255.255.252
     duplex auto
     speed auto
     media-type rj45
     ipv6 address FE80::2 link-local
     ospfv3 network point-to-point
     ospfv3 10 ipv4 area 0
    
    GW2#show run | sec ^router
    router ospfv3 10
     router-id 20.20.20.20
     !
     address-family ipv4 unicast
      area 0 filter-list prefix PL-OSPF-FILTER out
     exit-address-family
    
    GW2#show run | sec ^ip prefix
    ip prefix-list PL-OSPF-FILTER seq 5 permit 192.168.1.0/24
    
    GW2#show run | sec ^ipv6 uni 
    ipv6 unicast-routing
    
Host1
    Host1#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to Spoke R1 **
     ip address 192.168.1.1 255.255.255.0
     duplex auto
     speed auto
     media-type rj45
    
    Host1#show run | sec ^ip route
    ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/0 192.168.1.2
    
Hub1#show dmvpn | beg Int
Interface: Tunnel10, IPv4 NHRP Details 
Type:Hub, NHRP Peers:1, 

 # Ent  Peer NBMA Addr Peer Tunnel Add State  UpDn Tm Attrb
 ----- --------------- --------------- ----- -------- -----
     1 172.16.5.2            10.10.0.3    UP 02:49:08     D           « Spoke R1 is registered with Hub1




Hub3#show dmvpn | beg Int
Interface: Tunnel10, IPv4 NHRP Details 
Type:Hub, NHRP Peers:2, 

 # Ent  Peer NBMA Addr Peer Tunnel Add State  UpDn Tm Attrb
 ----- --------------- --------------- ----- -------- -----
     1 172.16.6.2            10.20.0.3    UP 02:49:46     D           « Spokes R2 and R3 are registered with Hub2
     1 172.16.7.2            10.20.0.4    UP 02:49:42     D




R1#show ip route bgp | beg Ga
Gateway of last resort is 10.10.0.1 to network 0.0.0.0

B*    0.0.0.0/0 [200/0] via 10.10.0.1, 02:48:17      « Spoke R1 prefers default route from Hub1




R1#show ip bgp | beg Ne
     Network          Next Hop            Metric LocPrf Weight Path
 *>i  0.0.0.0          10.10.0.1                0    200      0 i       « Local preference value 200 makes this the preferred default route
 * i                   10.10.0.2                0    150      0 i
 *>   192.168.1.0      0.0.0.0                  0         32768 i




Host3#trace 192.168.1.1 probe 1
Type escape sequence to abort.
Tracing the route to 192.168.1.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.3.2 1 msec
  2 10.20.0.1 47 msec
  3 192.168.20.1 47 msec
  4 172.16.100.1 52 msec                « Inter-regional traffic goes through backbone transport
  5 192.168.10.2 54 msec
  6 10.10.0.3 100 msec
  7 192.168.1.1 102 msec




Host3#trace 192.168.2.1 probe 1
Type escape sequence to abort.
Tracing the route to 192.168.2.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.3.2 2 msec
  2 10.20.0.3 45 msec                   « Intra-regional traffic uses direct spoke-to-spoke
  3 192.168.2.1 45 msec





R3#show ip route nhrp | beg Ga 
Gateway of last resort is 10.20.0.1 to network 0.0.0.0

      10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
H        10.20.0.3/32 is directly connected, 00:00:13, Tunnel10
H     192.168.2.0/24 [250/255] via 10.20.0.3, 00:00:13, Tunnel10                « NHRP direct spoke-to-spoke route installed in Spoke R3 RIB





Hub3#show ip route ospfv3 | beg Ga 
Gateway of last resort is 172.16.3.1 to network 0.0.0.0

O E2  192.168.1.0/24 [210/1] via 192.168.20.1, 02:49:44, GigabitEthernet0/1     « Region 2 Hub learns Region 1 DMVPN prefix through OSPF




Hub1#show ip route | beg Ga       
Gateway of last resort is 172.16.1.1 to network 0.0.0.0

S*    0.0.0.0/0 [1/0] via 172.16.1.1, GigabitEthernet0/0
      10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        10.10.0.0/24 is directly connected, Tunnel10
L        10.10.0.1/32 is directly connected, Tunnel10
      172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C        172.16.1.0/30 is directly connected, GigabitEthernet0/0
L        172.16.1.2/32 is directly connected, GigabitEthernet0/0
B     192.168.1.0/24 [200/0] via 10.10.0.3, 02:49:59                            « iBGP route preferred because OSPF has less preferred AD 210
O E2  192.168.2.0/24 [210/1] via 192.168.10.1, 02:49:53, GigabitEthernet0/1
O E2  192.168.3.0/24 [210/1] via 192.168.10.1, 02:49:53, GigabitEthernet0/1
      192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.10.0/24 is directly connected, GigabitEthernet0/1
L        192.168.10.2/32 is directly connected, GigabitEthernet0/1




Hub1#show ospfv3 database external 192.168.1.0

          OSPFv3 10 address-family ipv4 (router-id 1.1.1.1)

                Type-5 AS External Link States

  LS age: 1080
  LS Type: AS External Link
  Link State ID: 0
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000006
  Checksum: 0x8107
  Length: 32
  Prefix Address: 192.168.1.0
  Prefix Length: 24, Options: None
  Metric Type: 2 (Larger than any link state path)
  Metric: 1 

  LS age: 1066
  LS Type: AS External Link
  Link State ID: 0
  Advertising Router: 2.2.2.2                  « Hub2 also advertises Region 1 DMVPN prefix via OSPFv3
  LS Seq Number: 80000006
  Checksum: 0x691A
  Length: 32
  Prefix Address: 192.168.1.0
  Prefix Length: 24, Options: None
  Metric Type: 2 (Larger than any link state path)
  Metric: 2 




Hub1#show ip protocols | sec ospf
Routing Protocol is "ospfv3 10"
  Outgoing update filter list for all interfaces is not set
  Incoming update filter list for all interfaces is not set
  Router ID 1.1.1.1
  Autonomous system boundary router
  Number of areas: 1 normal, 0 stub, 0 nssa
  Interfaces (Area 1):
    GigabitEthernet0/1
  Redistributing: bgp 65001
  Maximum path: 4
  Routing Information Sources:
    Gateway         Distance      Last Update
    3.3.3.3              210      03:02:34
    2.2.2.2              210      03:02:34
  Distance: (default is 210)                   « Hub1 assigns AD 210 to OSPF routes

Additionally, to speed up the failure detection between hub-and-spoke routers BFD is configured together with BGP. This ensures an improved switchover time to a backup Next-Hop Server (to backup hub router) in the event of a network outage. The following output shows that BGP and NHRP are client processes of BFD.

R1#show bfd summary client

Client              Session          Up          Down
BGP                       2           2             0
CEF                       2           2             0
NHRP                      2           2             0

Total                     2           2             0




R1#show bfd neighbors 

IPv4 Sessions
NeighAddr                              LD/RD         RH/RS     State     Int
10.10.0.1                               2/1          Up        Up        Tu10
10.10.0.2                               1/1          Up        Up        Tu10