Hello all
Having a problem trying to setup a DMVPN network where the hub is a Cisco router and the spokes are VyOS routers.
- The spokes can ping the hub’s DMVPN tunnel address
- The hub can ping both spokes’ DMVPN tunnel address
- Spokes can’t ping each other’s DMVPN tunnel address
The DMVPN network is 192.168.0.0/24:
- 192.168.0.1: cisco router hub address
- 192.168.0.2: vyos1 router spoke address
- 192.168.0.3: vyos2 router spoke address
ping 192.168.0.1 < - > 192.168.0.2: OK
ping 192.168.0.1 < - > 192.168.0.3: OK
ping 192.168.0.2 < - > 192.168.0.3: ERROR
ping 192.168.0.3 < - > 192.168.0.2: ERROR
Configuration and test results:
ciscorouter - DMVPN hub:
!
interface Loopback0
ip address 192.0.0.253 255.255.255.252
!
interface Tunnel99
ip address 192.168.0.1 255.255.255.0
no ip redirects
ip mtu 1400
ip nhrp authentication aabbccdd
ip nhrp network-id 99
ip nhrp holdtime 300
ip nhrp redirect
no ip split-horizon
ip tcp adjust-mss 1360
ip ospf network broadcast
ip ospf priority 2
tunnel source Loopback0
tunnel mode gre multipoint
tunnel key 1
tunnel path-mtu-discovery
!
! This connects to vyos1:eth0
interface Vlan2001
ip address 192.0.0.1 255.255.255.252
!
! This connects to vyos2:eth0
interface Vlan2002
ip address 192.0.0.5 255.255.255.252
!
vyos1 - Spoke 1
set interfaces ethernet eth0 address ‘192.0.0.2/30’ # eth0 connects to ciscorouter:Vlan2001
set interfaces ethernet eth0 offload gro
set interfaces ethernet eth0 offload gso
set interfaces ethernet eth0 offload sg
set interfaces ethernet eth0 offload tso
set interfaces loopback lo
set interfaces tunnel tun99 address ‘192.168.0.2/24’
set interfaces tunnel tun99 enable-multicast
set interfaces tunnel tun99 encapsulation ‘gre’
set interfaces tunnel tun99 ip adjust-mss ‘1360’
set interfaces tunnel tun99 mtu ‘1400’
set interfaces tunnel tun99 parameters ip key ‘1’
set interfaces tunnel tun99 source-address ‘0.0.0.0’
set interfaces tunnel tun99 source-interface ‘eth0’
set protocols nhrp tunnel tun99 cisco-authentication ‘aabbccdd’
set protocols nhrp tunnel tun99 holding-time ‘300’
set protocols nhrp tunnel tun99 map 192.168.0.1 cisco
set protocols nhrp tunnel tun99 map 192.168.0.1 nbma-address ‘192.0.0.253’
set protocols nhrp tunnel tun99 map 192.168.0.1 register
set protocols nhrp tunnel tun99 multicast ‘nhs’
set protocols nhrp tunnel tun99 shortcut
set protocols static route 0.0.0.0/0 next-hop 192.0.0.1
vyos2 - Spoke 2
set interfaces ethernet eth0 address ‘192.0.0.6/30’ # eth0 connects to ciscrouter:Vlan2002
set interfaces ethernet eth0 offload gro
set interfaces ethernet eth0 offload gso
set interfaces ethernet eth0 offload sg
set interfaces ethernet eth0 offload tso
set interfaces loopback lo
set interfaces tunnel tun99 address ‘192.168.0.3/24’
set interfaces tunnel tun99 enable-multicast
set interfaces tunnel tun99 encapsulation ‘gre’
set interfaces tunnel tun99 ip adjust-mss ‘1360’
set interfaces tunnel tun99 mtu ‘1400’
set interfaces tunnel tun99 parameters ip key ‘1’
set interfaces tunnel tun99 source-address ‘0.0.0.0’
set interfaces tunnel tun99 source-interface ‘eth0’
set protocols nhrp tunnel tun99 cisco-authentication ‘aabbccdd’
set protocols nhrp tunnel tun99 holding-time ‘300’
set protocols nhrp tunnel tun99 map 192.168.0.1 cisco
set protocols nhrp tunnel tun99 map 192.168.0.1 nbma-address ‘192.0.0.253’
set protocols nhrp tunnel tun99 map 192.168.0.1 register
set protocols nhrp tunnel tun99 multicast ‘nhs’
set protocols nhrp tunnel tun99 shortcut
set protocols static route 0.0.0.0/0 next-hop 192.0.0.5
Test results from ciscorouter
[OK] Ping to vyos1 eth0
router#ping 192.0.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.0.0.2, timeout is 2 seconds:
!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms
router#
[OK] Ping to vyos2 eth0
router#ping 192.0.0.6
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.0.0.6, timeout is 2 seconds:
!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
router#
[OK] Ping to vyos1 DMVPN tunnel
router#ping 192.168.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.2, timeout is 2 seconds:
!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
[OK] Ping to vyos2 DMVPN tunnel
router#ping 192.168.0.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.3, timeout is 2 seconds:
!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
router#
Test results from vyos1
[OK] Ping from vyos1 to vyos2
vyos@vyos1:~$ ping 192.0.0.6 count 1
PING 192.0.0.6 (192.0.0.6) 56(84) bytes of data.
64 bytes from 192.0.0.6: icmp_seq=1 ttl=63 time=0.951 ms
— 192.0.0.6 ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.951/0.951/0.951/0.000 ms
[OK] Ping from vyos1 to ciscorouter
vyos@vyos1:~$ ping 192.0.0.253 count 1
PING 192.0.0.253 (192.0.0.253) 56(84) bytes of data.
64 bytes from 192.0.0.253: icmp_seq=1 ttl=255 time=0.716 ms
— 192.0.0.253 ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.716/0.716/0.716/0.000 ms
[OK] Ping from vyos1 to ciscorouter DMVPN tunnel
vyos@vyos1:~$ ping 192.168.0.1 count 1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=1.00 ms
— 192.168.0.1 ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.003/1.003/1.003/0.000 ms
[ERROR] Ping from vyos1 to vyos2 DMVPN tunnel
vyos@vyos1:~$ ping 192.168.0.3 count 1
PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data.
From 192.168.0.2 icmp_seq=1 Destination Host Unreachable
— 192.168.0.3 ping statistics —
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
Test results from vyos2
[OK] Ping from vyos2 to vyos1
vyos@vyos2:~$ ping 192.0.0.2 count 1
PING 192.0.0.2 (192.0.0.2) 56(84) bytes of data.
64 bytes from 192.0.0.2: icmp_seq=1 ttl=63 time=0.947 ms
— 192.0.0.2 ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.947/0.947/0.947/0.000 ms
[OK] Ping from vyos2 to ciscorouter
vyos@vyos2:~$ ping 192.0.0.253 count 1
PING 192.0.0.253 (192.0.0.253) 56(84) bytes of data.
64 bytes from 192.0.0.253: icmp_seq=1 ttl=255 time=0.815 ms
— 192.0.0.253 ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.815/0.815/0.815/0.000 ms
[OK] Ping from vyos1 to ciscorouter DMVPN tunnel
vyos@vyos2:~$ ping 192.168.0.1 count 1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=0.855 ms
— 192.168.0.1 ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.855/0.855/0.855/0.000 ms
[ERROR] Ping from vyos2 to vyos1 DMVPN tunnel
vyos@vyos2:~$ ping 192.168.0.2 count 1
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
From 192.168.0.3 icmp_seq=1 Destination Host Unreachable
— 192.168.0.2 ping statistics —
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
What else do I need to get spoke-to-spoke communcation to work?