We are here some LoRaWAN Certified Engineers, Really interested to extend the coverage over the Globe! Lets Build IoT Network ! We can help and support to buy your correct Miner. Helium Hotspot Mining - Sharing Experience - Recommendations, Antennas and Hardware.
02 September, 2014
Dynamic Multipoint VPN (DMVPN)
Mechanics of DMVPN
- mGRE Tunnel Interfaces
- Static Dynamic IPs
- Routing Protocols
- NHRP for Spoke Discovery (Next Hop Resolution Protocol)
Configure R1:
R1-Hub#conf terminal
R1-Hub(config)#int tunnel 0
R1-Hub(config-if)#tunnel source ser 1/0
R1-Hub(config-if)#tunnel mode gre multipoint
R1-Hub(config-if)#tunnel key 6783
R1-Hub(config-if)#ip nhrp network-id 1
R1-Hub(config-if)#ip nhrp authentication cisco123
R1-Hub(config-if)#ip nhrp map multicast dynamic
R1-Hub(config-if)#ip nhrp shortcut
R1-Hub(config-if)#ip nhrp redirect
R1-Hub(config-if)#ip address 172.16.0.1 255.255.255.0
R1-Hub(config-if)#ip mtu 1400
R1-Hub(config-if)#ip tcp adjust-mss 1360
Configure R2:
R2-Spoke#conf terminal
R2-Spoke(config)#interface tunnel 0
R2-Spoke(config-if)#tunnel mode gre multipoint
R2-Spoke(config-if)#tunnel source ser 1/0
R2-Spoke(config-if)#tunnel key 6783
R2-Spoke(config-if)#ip nhrp network-id 1
R2-Spoke(config-if)#ip nhrp authentication cisco123
R2-Spoke(config-if)#ip nhrp shortcut
R2-Spoke(config-if)#ip nhrp nhs 172.16.0.1
R2-Spoke(config-if)#ip nhrp map 172.16.0.1 15.0.0.1
R2-Spoke(config-if)#ip nhrp map multicast 15.0.0.1
R2-Spoke(config-if)#ip address 172.16.0.2 255.255.255.0
R2-Spoke(config-if)#ip mtu 1400
R2-Spoke(config-if)#ip tcp adjust-mss 1360
Configure R3:
R3-Spoke#conf terminal
R3-Spoke(config)#interface tunnel 0
R3-Spoke(config-if)#tunnel mode gre multipoint
R3-Spoke(config-if)#tunnel source ser 1/0
R3-Spoke(config-if)#tunnel key 6783
R3-Spoke(config-if)#ip nhrp network-id 1
R3-Spoke(config-if)#ip nhrp authentication cisco123
R3-Spoke(config-if)#ip nhrp shortcut
R3-Spoke(config-if)#ip nhrp nhs 172.16.0.1
R3-Spoke(config-if)#ip nhrp map 172.16.0.1 15.0.0.1
R3-Spoke(config-if)#ip nhrp map multicast 15.0.0.1
R3-Spoke(config-if)#ip address 172.16.0.3 255.255.255.0
R3-Spoke(config-if)#ip mtu 1400
R3-Spoke(config-if)#ip tcp adjust-mss 1360
Configure R4:
R4-Spoke#conf terminal
R4-Spoke(config)#interface tunnel 0
R4-Spoke(config-if)#tunnel mode gre multipoint
R4-Spoke(config-if)#tunnel source ser 1/0
R4-Spoke(config-if)#tunnel key 6783
R4-Spoke(config-if)#ip nhrp network-id 1
R4-Spoke(config-if)#ip nhrp authentication cisco123
R4-Spoke(config-if)#ip nhrp shortcut
R4-Spoke(config-if)#ip nhrp nhs 172.16.0.1
R4-Spoke(config-if)#ip nhrp map 172.16.0.1 15.0.0.1
R4-Spoke(config-if)#ip nhrp map multicast 15.0.0.1
R4-Spoke(config-if)#ip address 172.16.0.4 255.255.255.0
R4-Spoke(config-if)#ip mtu 1400
R4-Spoke(config-if)#ip tcp adjust-mss 1360
! Verify NHRP Configuration
R1-Hub#show ip nhrp summary
IP NHRP cache 4 entries, 1248 bytes
0 static 4 dynamic 0 incomplete
R1-Hub#show ip nhrp
0.0.0.0/32 via 0.0.0.0
Tunnel0 created 00:09:15, expire 01:51:25
Type: dynamic, Flags: unique registered
NBMA address: 25.0.0.2
172.16.0.2/32 via 172.16.0.2
Tunnel0 created 00:07:44, expire 01:52:15
Type: dynamic, Flags: unique registered
NBMA address: 25.0.0.2
172.16.0.3/32 via 172.16.0.3
Tunnel0 created 00:03:23, expire 01:56:37
Type: dynamic, Flags: unique registered
NBMA address: 35.0.0.3
172.16.0.4/32 via 172.16.0.4
Tunnel0 created 00:01:44, expire 01:58:16
Type: dynamic, Flags: unique registered
NBMA address: 45.0.0.4
R2-Spoke#show ip nhrp summary
IP NHRP cache 1 entry, 312 bytes
1 static 0 dynamic 0 incomplete
R2-Spoke#show ip nhrp
172.16.0.1/32 via 172.16.0.1
Tunnel0 created 00:56:09, never expire
Type: static, Flags: used
NBMA address: 15.0.0.1
! Configure Routing Protocol (EIGRP AS 1)
Configure R1:
R1-Hub#conf terminal
R1-Hub(config)#router eigrp 1
R1-Hub(config-router)#no auto-summary
R1-Hub(config-router)#network 10.1.1.1 0.0.0.0
R1-Hub(config-router)#network 172.16.0.1 0.0.0.0
Configure R2:
R2-Spoke#conf terminal
R2-Spoke(config)#router eigrp 1
R2-Spoke(config-router)#no auto-summary
R2-Spoke(config-router)#network 10.2.2.2 0.0.0.0
R2-Spoke(config-router)#network 172.16.0.2 0.0.0.0
Configure R3:
R3-Spoke#conf terminal
R3-Spoke(config)#router eigrp 1
R3-Spoke(config-router)#no auto-summary
R3-Spoke(config-router)#network 10.3.3.3 0.0.0.0
R3-Spoke(config-router)#network 172.16.0.3 0.0.0.0
Configure R4:
R4-Spoke#conf terminal
R4-Spoke(config)#router eigrp 1
R4-Spoke(config-router)#no auto-summary
R4-Spoke(config-router)#network 10.4.4.4 0.0.0.0
R4-Spoke(config-router)#network 172.16.0.4 0.0.0.0
! Disable EIGRP Services on Hub Router
R1-Hub(config)#in tunnel 0
R1-Hub(config-if)#no ip next-hop-self eigrp 1
R1-Hub(config-if)#no ip split-horizon eigrp 1
! Verify EIGRP Configuration
R1-Hub#show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(1)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 172.16.0.2 Tu0 14 00:06:44 98 1362 0 16
2 172.16.0.4 Tu0 14 00:13:56 109 1362 0 12
1 172.16.0.3 Tu0 13 00:15:10 143 1362 0 13
R1-Hub#show ip route eigrp
D 10.2.2.0/24 [90/27008000] via 172.16.0.2, 00:09:45, Tunnel0
D 10.3.3.0/24 [90/27008000] via 172.16.0.3, 00:18:07, Tunnel0
D 10.4.4.0/24 [90/27008000] via 172.16.0.4, 00:16:54, Tunnel0
R2-Spoke#show ip route eigrp
D 10.1.1.0/24 [90/27008000] via 172.16.0.1, 00:10:56, Tunnel0
D 10.3.3.0/24 [90/28288000] via 172.16.0.3, 00:10:56, Tunnel0
D 10.4.4.0/24 [90/28288000] via 172.16.0.4, 00:10:56, Tunnel0
R2-Spoke#show ip route 10.4.4.4
Routing entry for 10.4.4.0/24
Known via "eigrp 1", distance 90, metric 28288000, type internal
Redistributing via eigrp 1
Last update from 172.16.0.4 on Tunnel0, 00:12:29 ago
Routing Descriptor Blocks:
* 172.16.0.4, from 172.16.0.1, 00:12:29 ago, via Tunnel0
Route metric is 28288000, traffic share count is 1
Total delay is 105000 microseconds, minimum bandwidth is 100 Kbit
Reliability 255/255, minimum MTU 1400 bytes
Loading 1/255, Hops 2
! Check How NHRP Works
R2-Spoke#show dmvpn
Legend: Attrb --> S - Static, D - Dynamic, I - Incomplete
N - NATed, L - Local, X - No Socket
# Ent --> Number of NHRP entries with same NBMA peer
NHS Status: E --> Expecting Replies, R --> Responding
UpDn Time --> Up or Down Time for a Tunnel
==========================================================================
Interface: Tunnel0, IPv4 NHRP Details
IPv4 NHS: 172.16.0.1 RE
Type:Spoke, Total NBMA Peers (v4/v6): 2
# Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb Target Network
----- --------------- --------------- ----- -------- ----- -----------------
1 15.0.0.1 172.16.0.1 UP 03:00:01 S 172.16.0.1/32
R2-Spoke#debug nhrp
NHRP protocol debugging is on
R2-Spoke#ping 10.4.4.4 repeat 2 source 10.2.2.2
Sending 2, 100-byte ICMP Echos to 10.4.4.4,
Packet sent with a source address of 10.2.2.2
!!
Success rate is 100 percent (2/2)
Debug :
*Sep 2 21:24:55.291: NHRP: MACADDR: if_in null netid-in 0 if_out Tunnel0 netid-out 1
*Sep 2 21:24:55.295: NHRP: Sending packet to NHS 172.16.0.1 on Tunnel0
*Sep 2 21:24:55.299: NHRP: NHRP successfully resolved 172.16.0.1 to NBMA 15.0.0.1
*Sep 2 21:24:55.299: NHRP: Checking for delayed event /172.16.0.4 on list (Tunnel0).
*Sep 2 21:24:55.303: NHRP: No node found.
*Sep 2 21:24:55.303: NHRP: Enqueued NHRP Resolution Request for destination: 172.16.0.4
*Sep 2 21:24:55.319: NHRP: Checking for delayed event /172.16.0.4 on list (Tunnel0).
*Sep 2 21:24:55.319: NHRP: No node found.
*Sep 2 21:24:55.319: NHRP: Sending NHRP Resolution Request for dest: 172.16.0.4 to NHS: 172.16.0.1 using our src: 172.16.0.2
*Sep 2 21:24:55.319: NHRP: Attempting to send packet via DEST 172.16.0.1
*Sep 2 21:24:55.319: NHRP: NHRP successfully resolved 172.16.0.1 to NBMA 15.0.0.1
*Sep 2 21:24:55.323: NHRP: Encapsulation succeeded. Tunnel IP addr 15.0.0.1
*Sep 2 21:24:55.323: NHRP: Send Resolution Request via Tunnel0 vrf 0, packet size: 88
*Sep 2 21:24:55.323: NHRP: 116 bytes out Tunnel0
*Sep 2 21:24:55.335: NHRP: Receive Traffic Indication via Tunnel0 vrf 0, packet size: 100
*Sep 2 21:24:55.339: NHRP: netid_in = 1, to_us = 0
*Sep 2 21:24:55.343: NHRP: nhrp_rtlookup yielded Loopback0
*Sep 2 21:24:55.347: NHRP: netid_out 0, netid_in 1
*Sep 2 21:24:55.371: NHRP: MACADDR: if_in null netid-in 0 if_out Tunnel0 netid-out 1
*Sep 2 21:24:55.375: NHRP: Sending packet to NHS 172.16.0.1 on Tunnel0
*Sep 2 21:24:55.379: NHRP: NHRP successfully resolved 172.16.0.1 to NBMA 15.0.0.1
*Sep 2 21:24:55.379: NHRP: Checking for delayed event /172.16.0.4 on list (Tunnel0).
*Sep 2 21:24:55.383: NHRP: No node found.
*Sep 2 21:24:55.391: NHRP: Checking for delayed event /10.4.4.4 on list (Tunnel0).
*Sep 2 21:24:55.395: NHRP: No node found.
*Sep 2 21:24:55.399: NHRP: Enqueued NHRP Resolution Request for destination: 10.4.4.4
*Sep 2 21:24:55.403: NHRP: Receive Resolution Reply via Tunnel0 vrf 0, packet size: 136
*Sep 2 21:24:55.407: NHRP: netid_in = 0, to_us = 1
*Sep 2 21:24:55.411: NHRP: Checking for delayed event /172.16.0.4 on list (Tunnel0).
*Sep 2 21:24:55.411: NHRP: No node found.
*Sep 2 21:24:55.415: NHRP: No need to delay processing of resolution event nbma src:25.0.0.2 nbma dst:45.0.0.4
*Sep 2 21:24:55.419: NHRP: Adding Tunnel Endpoints (VPN: 172.16.0.4, NBMA: 45.0.0.4)
*Sep 2 21:24:55.447: NHRP: Successfully attached NHRP subblock for Tunnel Endpoints (VPN: 172.16.0.4, NBMA: 45.0.0.4)
*Sep 2 21:24:55.471: NHRP: Checking for delayed event /10.4.4.4 on list (Tunnel0).
*Sep 2 21:24:55.471: NHRP: No node found.
*Sep 2 21:24:55.475: NHRP: Sending NHRP Resolution Request for dest: 10.4.4.4 to NHS: 172.16.0.1 using our src: 172.16.0.2
*Sep 2 21:24:55.479: NHRP: Attempting to send packet via DEST 172.16.0.1
*Sep 2 21:24:55.487: NHRP: NHRP successfully resolved 172.16.0.1 to NBMA 15.0.0.1
*Sep 2 21:24:55.487: NHRP: Encapsulation succeeded. Tunnel IP addr 15.0.0.1
*Sep 2 21:24:55.491: NHRP: Send Resolution Request via Tunnel0 vrf 0, packet size: 88
*Sep 2 21:24:55.495: NHRP: 116 bytes out Tunnel0
*Sep 2 21:24:55.587: NHRP: Receive Resolution Reply via Tunnel0 vrf 0, packet size: 136
*Sep 2 21:24:55.591: NHRP: netid_in = 0, to_us = 1
*Sep 2 21:24:55.595: NHRP: Checking for delayed event /10.4.4.4 on list (Tunnel0).
*Sep 2 21:24:55.599: NHRP: No node found.
*Sep 2 21:24:55.603: NHRP: No need to delay processing of resolution event nbma src:25.0.0.2 nbma dst:45.0.0.4
*Sep 2 21:24:55.607: NHRP: Adding Tunnel Endpoints (VPN: 172.16.0.4, NBMA: 45.0.0.4)
! Verify DMVPN
R2-Spoke#show dmvpn
Legend: Attrb --> S - Static, D - Dynamic, I - Incomplete
N - NATed, L - Local, X - No Socket
# Ent --> Number of NHRP entries with same NBMA peer
NHS Status: E --> Expecting Replies, R --> Responding
UpDn Time --> Up or Down Time for a Tunnel
==========================================================================
Interface: Tunnel0, IPv4 NHRP Details
IPv4 NHS: 172.16.0.1 RE
Type:Spoke, Total NBMA Peers (v4/v6): 2
# Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb Target Network
----- --------------- --------------- ----- -------- ----- -----------------
1 15.0.0.1 172.16.0.1 UP 03:00:01 S 172.16.0.1/32
1 45.0.0.4 172.16.0.4 UP 01:31:28 D 172.16.0.4/32
R2-Spoke#traceroute 10.4.4.4 source lo 0
Tracing the route to 10.4.4.4
1 172.16.0.4 132 msec 88 msec 72 msec
*Sep 2 22:10:13.923: NHRP: NHRP successfully resolved 172.16.0.4 to NBMA 45.0.0.4
R2-Spoke#un all
All possible debugging has been turned off
! Note: Wireshark Captured File Link: Here