Hi @e.khudiyev, thank you for support, I build a EVE Lab, and the result is the same. The DMVPN is coming UP from Cisco to Cisco and VyOS to VyOS but never between VyOS to Cisco.
I read the documentation, and honestly I don’t understand what I miss.
VyOS Version
Version: VyOS 1.3.1
Release train: sagitta
Built by: [email protected]
Built on: Thu 14 Apr 2022 14:19 UTC
Build UUID: 4de5e5e1-16f2-4a5b-a142-4c435d503018
Build commit ID: 5fa31bdccc8bdf
IOL Version
IOS_To_VyOS#sh ver
Cisco IOS Software, Linux Software (I86BI_LINUX-ADVENTERPRISEK9-M), Version 15.7(3)M2, DEVELOPMENT TEST SOFTWARE
This is the configuration
Cisco DMVPN HUB
Cisco HUB
!
interface Tunnel0
description mGRE - DMVPN Tunnel
ip address 172.16.0.1 255.255.255.0
no ip redirects
ip nhrp authentication secret
ip nhrp network-id 1
tunnel source 1.0.0.1
tunnel mode gre multipoint
Cisco Spoke
interface Tunnel0
description Cisco_Spoke mGRE - DMVPN Tunnel
ip address 172.16.0.3 255.255.255.0
no ip redirects
ip nhrp authentication secret
ip nhrp map multicast 1.0.0.1
ip nhrp map 172.16.0.1 1.0.0.1
ip nhrp network-id 1
ip nhrp nhs 172.16.0.1
tunnel source Ethernet0/0
tunnel mode gre multipoint
end
VyOS Spoke
set interfaces ethernet eth0 address '4.0.0.1/24'
set interfaces tunnel tun0 address '172.16.0.4/24'
set interfaces tunnel tun0 encapsulation 'gre'
set interfaces tunnel tun0 multicast 'enable'
set interfaces tunnel tun0 parameters ip key '1'
set interfaces tunnel tun0 source-address '0.0.0.0'
set protocols nhrp tunnel tun0 cisco-authentication 'secret'
set protocols nhrp tunnel tun0 holding-time '300'
set protocols nhrp tunnel tun0 map 172.16.0.1/24 cisco
set protocols nhrp tunnel tun0 map 172.16.0.1/24 nbma-address '1.0.0.1'
set protocols nhrp tunnel tun0 map 172.16.0.1/24 register
set protocols nhrp tunnel tun0 multicast 'nhs'
set protocols nhrp tunnel tun0 redirect
set protocols nhrp tunnel tun0 shortcut
Result
Cisco HUB
Cisco_HUB#ping 3.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.0.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
Cisco_HUB#ping 4.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 4.0.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
Cisco_HUB#
Cisco_HUB#sh 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, I2 - Temporary
# 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:1,
# Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb
----- --------------- --------------- ----- -------- -----
1 3.0.0.1 172.16.0.3 UP 01:03:51 D
Cisco_HUB#ping 172.16.0.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.0.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
Cisco_HUB#
VyOS Spoke
vyos@Spoke-To-IOS:~$ sh nhrp tunnel
Status: ok
Interface: tun0
Type: local
Protocol-Address: 172.16.0.255/32
Alias-Address: 172.16.0.4
Flags: up
Interface: tun0
Type: local
Protocol-Address: 172.16.0.4/32
Flags: up
Interface: tun0
Type: static
Protocol-Address: 172.16.0.1/24
NBMA-Address: 1.0.0.1
Flags: lower-up
vyos@Spoke-To-IOS:~$ show log | match nhrp
Jun 06 22:02:37 sudo[1601]: root : PWD=/ ; USER=root ; COMMAND=/usr/bin/sh -c /usr/sbin/vyshim /usr/libexec/vyos/conf_mode/protocols_nhrp.py
Jun 06 22:02:37 vyos-configd[589]: Received message: {"type": "node", "data": "/usr/libexec/vyos/conf_mode/protocols_nhrp.py"}
Jun 06 22:02:37 opennhrp[1610]: opennhrp[1610]: OpenNHRP 0.14-20-g613277f starting
Jun 06 22:02:37 opennhrp[1610]: OpenNHRP 0.14-20-g613277f starting
Jun 06 22:02:37 opennhrp[1610]: opennhrp[1610]: Adding static 172.16.0.1/24 nbma 1.0.0.1 dev tun0
Jun 06 22:02:37 opennhrp[1610]: Adding static 172.16.0.1/24 nbma 1.0.0.1 dev tun0
Jun 06 22:02:37 opennhrp[1610]: opennhrp[1610]: Interface lo: configured UP, mtu=0
Jun 06 22:02:37 opennhrp[1610]: opennhrp[1610]: Interface eth0: configured UP, mtu=1500
Jun 06 22:02:37 opennhrp[1610]: opennhrp[1610]: Interface eth1: configured UP, mtu=1500
Jun 06 22:02:37 opennhrp[1610]: opennhrp[1610]: Interface eth2: configured UP, mtu=1500
Jun 06 22:02:37 opennhrp[1610]: opennhrp[1610]: Interface eth3: configured UP, mtu=1500
Jun 06 22:02:37 opennhrp[1610]: opennhrp[1610]: Interface gre0: config change, mtu=1476
Jun 06 22:02:37 opennhrp[1610]: opennhrp[1610]: Interface gretap0: config change, mtu=1462
Jun 06 22:02:37 opennhrp[1610]: opennhrp[1610]: Interface erspan0: config change, mtu=1450
Jun 06 22:02:37 opennhrp[1610]: opennhrp[1610]: Interface tun0: configured UP, mtu=1476
Jun 06 22:02:37 opennhrp[1610]: Interface lo: configured UP, mtu=0
Jun 06 22:02:37 opennhrp[1610]: Interface eth0: configured UP, mtu=1500
Jun 06 22:02:37 opennhrp[1610]: Interface eth1: configured UP, mtu=1500
Jun 06 22:02:37 opennhrp[1610]: Interface eth2: configured UP, mtu=1500
Jun 06 22:02:37 opennhrp[1610]: Interface eth3: configured UP, mtu=1500
Jun 06 22:02:37 opennhrp[1610]: Interface gre0: config change, mtu=1476
Jun 06 22:02:37 opennhrp[1610]: Interface gretap0: config change, mtu=1462
Jun 06 22:02:37 opennhrp[1610]: Interface erspan0: config change, mtu=1450
Jun 06 22:02:37 opennhrp[1610]: Interface tun0: configured UP, mtu=1476
Jun 06 22:02:37 opennhrp[1610]: opennhrp[1610]: Interface tun0: GRE configuration changed. Purged 1 peers.
Jun 06 22:02:37 opennhrp[1610]: opennhrp[1610]: Adding local 172.16.0.4/32 dev tun0
Jun 06 22:02:37 opennhrp[1610]: opennhrp[1610]: Adding local 172.16.0.255/32 alias 172.16.0.4 dev tun0
Jun 06 22:02:37 opennhrp[1610]: opennhrp[1610]: Filter code installed (21 opcodes)
Jun 06 22:02:37 systemd[1]: opennhrp.service: Failed to parse PID from file /run/opennhrp/opennhrp.pid: Invalid argument
Jun 06 22:02:37 opennhrp[1610]: Interface tun0: GRE configuration changed. Purged 1 peers.
Jun 06 22:02:37 opennhrp[1610]: Adding local 172.16.0.4/32 dev tun0
Jun 06 22:02:37 opennhrp[1610]: Adding local 172.16.0.255/32 alias 172.16.0.4 dev tun0
Jun 06 22:02:37 opennhrp[1610]: Filter code installed (21 opcodes)
Jun 06 22:02:37 opennhrp[1620]: Interface tun0: config change, mtu=1476
Jun 06 22:02:42 opennhrp[1620]: [172.16.0.1] Peer up script: success
Jun 06 22:02:42 opennhrp[1620]: NL-ARP(tun0) 172.16.0.1 is-at 1.0.0.1
Jun 06 22:02:42 opennhrp[1620]: Sending Registration Request to 172.16.0.1 (my mtu=0)
Jun 06 22:02:42 opennhrp[1620]: Sending packet 3, from: 172.16.0.4 (nbma 4.0.0.1), to: 172.16.0.1 (nbma 1.0.0.1)
Jun 06 22:02:47 opennhrp[1620]: Sending packet 3, from: 172.16.0.4 (nbma 4.0.0.1), to: 172.16.0.1 (nbma 1.0.0.1)
Jun 06 22:02:52 opennhrp[1620]: Sending packet 3, from: 172.16.0.4 (nbma 4.0.0.1), to: 172.16.0.1 (nbma 1.0.0.1)
Jun 06 22:02:57 opennhrp[1620]: Sending packet 3, from: 172.16.0.4 (nbma 4.0.0.1), to: 172.16.0.1 (nbma 1.0.0.1)
Jun 06 22:03:02 opennhrp[1620]: Sending packet 3, from: 172.16.0.4 (nbma 4.0.0.1), to: 172.16.0.1 (nbma 1.0.0.1)
Jun 06 22:03:07 opennhrp[1620]: Sending packet 3, from: 172.16.0.4 (nbma 4.0.0.1), to: 172.16.0.1 (nbma 1.0.0.1)
Jun 06 22:03:12 opennhrp[1620]: Failed to register to 172.16.0.1: timeout (65535)
Jun 06 22:06:09 opennhrp[1620]: [172.16.0.1] Peer up script: success
Jun 06 22:06:09 opennhrp[1620]: NL-ARP(tun0) 172.16.0.1 is-at 1.0.0.1
Jun 06 22:06:09 opennhrp[1620]: Sending Registration Request to 172.16.0.1 (my mtu=0)
Jun 06 22:06:09 opennhrp[1620]: Sending packet 3, from: 172.16.0.4 (nbma 4.0.0.1), to: 172.16.0.1 (nbma 1.0.0.1)
Jun 06 22:06:14 opennhrp[1620]: Sending packet 3, from: 172.16.0.4 (nbma 4.0.0.1), to: 172.16.0.1 (nbma 1.0.0.1)
Jun 06 22:06:19 opennhrp[1620]: Sending packet 3, from: 172.16.0.4 (nbma 4.0.0.1), to: 172.16.0.1 (nbma 1.0.0.1)
Jun 06 22:06:24 opennhrp[1620]: Sending packet 3, from: 172.16.0.4 (nbma 4.0.0.1), to: 172.16.0.1 (nbma 1.0.0.1)
Jun 06 22:06:29 opennhrp[1620]: Sending packet 3, from: 172.16.0.4 (nbma 4.0.0.1), to: 172.16.0.1 (nbma 1.0.0.1)
Jun 06 22:06:34 opennhrp[1620]: Sending packet 3, from: 172.16.0.4 (nbma 4.0.0.1), to: 172.16.0.1 (nbma 1.0.0.1)
Jun 06 22:06:39 opennhrp[1620]: Failed to register to 172.16.0.1: timeout (65535)
NOTE: enabled debug on Cisco HUB and never receive the registration from 4.0.0.1 (VyOS)
VyOS DMVPN HUB
VyOS HUB
set interfaces ethernet eth0 address '2.0.0.1/24'
set interfaces tunnel tun1 address '172.16.1.2/24'
set interfaces tunnel tun1 encapsulation 'gre'
set interfaces tunnel tun1 multicast 'enable'
set interfaces tunnel tun1 parameters ip key '1'
set interfaces tunnel tun1 source-address '2.0.0.1'
set protocols nhrp tunnel tun1 cisco-authentication 'secret'
set protocols nhrp tunnel tun1 holding-time '300'
set protocols nhrp tunnel tun1 multicast 'dynamic'
set protocols nhrp tunnel tun1 redirect
set protocols nhrp tunnel tun1 shortcut
VyOS Spoke
set interfaces ethernet eth0 address '5.0.0.1/24'
set interfaces tunnel tun1 address '172.16.1.5/24'
set interfaces tunnel tun1 encapsulation 'gre'
set interfaces tunnel tun1 multicast 'enable'
set interfaces tunnel tun1 parameters ip key '1'
set interfaces tunnel tun1 source-address '0.0.0.0'
set protocols nhrp tunnel tun1 cisco-authentication 'secret'
set protocols nhrp tunnel tun1 holding-time '300'
set protocols nhrp tunnel tun1 map 172.16.1.2/24 nbma-address '2.0.0.1'
set protocols nhrp tunnel tun1 map 172.16.1.2/24 register
set protocols nhrp tunnel tun1 multicast 'nhs'
set protocols nhrp tunnel tun1 redirect
set protocols nhrp tunnel tun1 shortcut
Cisco Spoke
interface Tunnel1
description Cisco_Spoke mGRE - DMVPN Tunnel
ip address 172.16.1.6 255.255.255.0
no ip redirects
ip nhrp authentication secret
ip nhrp map multicast 2.0.0.1
ip nhrp map 172.16.1.2 2.0.0.1
ip nhrp network-id 1
ip nhrp nhs 172.16.1.2
tunnel source Ethernet0/0
tunnel mode gre multipoint
Result
Cisco HUB
vyos@vyos:~$ ping 5.0.0.1
PING 5.0.0.1 (5.0.0.1) 56(84) bytes of data.
64 bytes from 5.0.0.1: icmp_seq=1 ttl=63 time=1.15 ms
64 bytes from 5.0.0.1: icmp_seq=2 ttl=63 time=1.53 ms
^C
--- 5.0.0.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 1.149/1.338/1.528/0.189 ms
vyos@vyos:~$ ping 6.0.0.1
PING 6.0.0.1 (6.0.0.1) 56(84) bytes of data.
64 bytes from 6.0.0.1: icmp_seq=1 ttl=254 time=1.15 ms
64 bytes from 6.0.0.1: icmp_seq=2 ttl=254 time=1.09 ms
^C
--- 6.0.0.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 1.085/1.116/1.148/0.031 ms
vyos@vyos:~$
vyos@vyos:~$
vyos@vyos:~$
vyos@vyos:~$ ping 172.16.1.5
PING 172.16.1.5 (172.16.1.5) 56(84) bytes of data.
64 bytes from 172.16.1.5: icmp_seq=1 ttl=64 time=1.04 ms
64 bytes from 172.16.1.5: icmp_seq=2 ttl=64 time=1.10 ms
^C
--- 172.16.1.5 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 1.037/1.069/1.102/0.032 ms
vyos@vyos:~$
vyos@vyos:~$
vyos@vyos:~$ sh nhrp tunnel
Status: ok
Interface: tun1
Type: local
Protocol-Address: 172.16.1.255/32
Alias-Address: 172.16.1.2
Flags: up
Interface: tun1
Type: local
Protocol-Address: 172.16.1.2/32
Flags: up
Interface: tun1
Type: dynamic
Protocol-Address: 172.16.1.5/32
NBMA-Address: 5.0.0.1
Flags: used up
Expires-In: 4:34
Cisco Spoke
IOS_To_VyOS#
*Jun 6 22:37:58.266: %SYS-5-CONFIG_I: Configured from console by console
IOS_To_VyOS#ping 2.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.0.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
IOS_To_VyOS#sh dm
IOS_To_VyOS#sh 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, I2 - Temporary
# 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: Tunnel1, IPv4 NHRP Details
Type:Spoke, NHRP Peers:1,
# Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb
----- --------------- --------------- ----- -------- -----
1 2.0.0.1 172.16.1.2 NHRP 00:03:27 S
IOS_To_VyOS#
IOS_To_VyOS#show ip nhrp nhs detail
Legend: E=Expecting replies, R=Responding, W=Waiting
Tunnel1:
172.16.1.2 E priority = 0 cluster = 0 req-sent 9 req-failed 0 repl-recv 0
Pending Registration Requests:
Registration Request: Reqid 1, Ret 64 NHS 172.16.1.2 expired (Tu1)
IOS_To_VyOS#
IOS_To_VyOS# debug nhrp
NHRP protocol debugging is on
No peer data updated in NHRP subblock for Tunnel Endpoints (VPN: 172.16.1.2, NBMA: 2.0.0.1)
*Jun 6 22:43:28.771: NHRP: Adding multicast map entry to multicast list 2.0.0.1
*Jun 6 22:43:29.773: NHRP: No SNMP node found to add requestID
*Jun 6 22:43:29.773: NHRP: Multicast enabled for dst 2.0.0.1
*Jun 6 22:43:29.773: NHRP: NHS 172.16.1.2 Tunnel1 vrf 0 Cluster 0 Priority 0 Transitioned to 'E' from ' '
*Jun 6 22:43:29.773: NHRP: Attempting to send packet through interface Tunnel1 via DEST dst 172.16.1.2
*Jun 6 22:43:29.773: NHRP: Send Registration Request via Tunnel1 vrf global(0x0), packet size: 106
*Jun 6 22:43:29.773: src: 172.16.1.6, dst: 172.16.1.2
*Jun 6 22:43:29.773: NHRP: Encapsulation succeeded. Sending NHRP Control Packet NBMA Address: 2.0.0.1
*Jun 6 22:43:29.773: NHRP: 130 bytes out Tunnel1
*Jun 6 22:43:30.251: %SYS-5-CONFIG_I: Configured from console by console
*Jun 6 22:43:30.617: NHRP: Setting retrans delay to 2 for nhs dst 172.16.1.2
*Jun 6 22:43:30.617: NHRP: Attempting to send packet through interface Tunnel1 via DEST dst 172.16.1.2
*Jun 6 22:43:30.618: NHRP: Send Registration Request via Tunnel1 vrf global(0x0), packet size: 106
*Jun 6 22:43:30.618: src: 172.16.1.6, dst: 172.16.1.2
*Jun 6 22:43:30.618: NHRP: Encapsulation succeeded. Sending NHRP Control Packet NBMA Address: 2.0.0.1
*Jun 6 22:43:30.618: NHRP: 130 bytes out Tunnel1
*Jun 6 22:43:30.773: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to up
*Jun 6 22:43:30.773: NHRP: if_up: Tunnel1 proto 'NHRP_IPv4'
*Jun 6 22:43:30.773: NHRP: Registration with Tunnels Decap Module succeeded
*Jun 6 22:43:30.773: NHRP: Adding all static maps to cache
*Jun 6 22:43:30.773: NHRP: Adding Tunnel Endpoints (VPN: 172.16.1.2, NBMA: 2.0.0.1)
*Jun 6 22:43:30.773: NHRP: NHRP subblock already exists for Tunnel Endpoints (VPN: 172.16.1.2, NBMA: 2.0.0.1)
*Jun 6 22:43:30.773: NHRP: No peer data updated in NHRP subblock for Tunnel Endpoints (VPN: 172.16.1.2, NBMA: 2.0.0.1)
*Jun 6 22:43:30.773: NHRP: Cache already has a subblock node attached for Tunnel Endpoints (VPN: 172.16.1.2, NBMA: 2.0.0.1)
*Jun 6 22:43:30.773: NHRP: Adding multicast map entry to multicast list 2.0.0.1
*Jun 6 22:43:30.773: NHRP: No SNMP node found to add requestID
*Jun 6 22:43:30.773: NHRP: Attempting to send packet through interface Tunnel1 via DEST dst 172.16.1.2
*Jun 6 22:43:30.773: NHRP: Send Registration Request via Tunnel1 vrf global(0x0), packet size: 106
*Jun 6 22:43:30.773: src: 172.16.1.6, dst: 172.16.1.2
*Jun 6 22:43:30.773: NHRP: Encapsulation succeeded. Sending NHRP Control Packet NBMA Address: 2.0.0.1
*Jun 6 22:43:30.773: NHRP: 130 bytes out Tunnel1
*Jun 6 22:43:30.773: NHRP: Resetting retransmit due to hold-timer for 172.16.1.2
*Jun 6 22:43:30.773: %LINK-3-UPDOWN: Interface Tunnel1, changed state to up
*Jun 6 22:43:32.309: NHRP: Setting retrans delay to 4 for nhs dst 172.16.1.2
*Jun 6 22:43:32.309: NHRP: Attempting to send packet through interface Tunnel1 via DEST dst 172.16.1.2
*Jun 6 22:43:32.309: NHRP: Send Registration Request via Tunnel1 vrf global(0x0), packet size: 106
*Jun 6 22:43:32.309: src: 172.16.1.6, dst: 172.16.1.2
*Jun 6 22:43:32.309: NHRP: Encapsulation succeeded. Sending NHRP Control Packet NBMA Address: 2.0.0.1
*Jun 6 22:43:32.309: NHRP: 130 bytes out Tunnel1
*Jun 6 22:43:36.155: NHRP: NHS-DOWN: 172.16.1.2
*Jun 6 22:43:36.155: NHRP: Already pending Registration Request for NHS: 172.16.1.2
*Jun 6 22:43:36.155: NHRP: NHS 172.16.1.2 Tunnel1 vrf 0 Cluster 0 Priority 0 Transitioned to 'E' from 'E'
*Jun 6 22:43:36.155: NHRP: Setting retrans delay to 8 for nhs dst 172.16.1.2
*Jun 6 22:43:36.155: NHRP: Attempting to send packet through interface Tunnel1 via DEST dst 172.16.1.2
*Jun 6 22:43:36.155: NHRP: Send Registration Request via Tunnel1 vrf global(0x0), packet size: 106
*Jun 6 22:43:36.155: src: 172.16.1.6, dst: 172.16.1.2
*Jun 6 22:43:36.155: NHRP:
IOS_To_VyOS#Encapsulation succeeded. Sending NHRP Control Packet NBMA Address: 2.0.0.1
*Jun 6 22:43:36.155: NHRP: 130 bytes out Tunnel1
IOS_To_VyOS#
*Jun 6 22:43:44.034: NHRP: Setting retrans delay to 16 for nhs dst 172.16.1.2
*Jun 6 22:43:44.034: NHRP: Attempting to send packet through interface Tunnel1 via DEST dst 172.16.1.2
*Jun 6 22:43:44.034: NHRP: Send Registration Request via Tunnel1 vrf global(0x0), packet size: 106
*Jun 6 22:43:44.034: src: 172.16.1.6, dst: 172.16.1.2
*Jun 6 22:43:44.034: NHRP: Encapsulation succeeded. Sending NHRP Control Packet NBMA Address: 2.0.0.1
*Jun 6 22:43:44.034: NHRP: 130 bytes out Tunnel1
IOS_To_VyOS#