Hi, try to setup site to site VPN between two sites. IPSec is established, but cannot get traffic over the VPN. Not sure how the routing works on VYOS and how to force traffic over the tunnel/IPSec. Added some basic info and config under, someone that see my issue?
Changed from tunnel to VTI interface, still same issue. Followed the articale before also, but how the routing is working with IPSec is not clear for me. What i understand is that use of tunnel as my first config should fix the routing automatic and just work.Can be that VTI is better way to setup IPSec, but still i cant get traffic over the VPN.
The local address and local tunnel prefix belong to the same subnet, is the correct gateway defined on end hosts ?
Please share the output of this command
$ show vpn ipsec sa
$ show version
and also check the charon logs related to phase II:
$ show log vpn
You can also troubleshoot by taking packet capture at the ipsec interface eth0 to check for the incoming packets.
On which platform have you installed the VyOS ? and can you describe your topology a bit.
Topology is like this: VYOS → Cisco FW → Internet → PaloAlto SiteB
VYOS running on VMware and behind Cisco FW with NAT.
Check output under for the commands.
show vpn ipsec sa
Connection State Uptime Bytes In/Out Packets In/Out Remote address Remote ID Proposal
---------------------------- ------- -------- -------------- ---------------- ---------------- ------------------- ------------------------
peer_vpn-stotvigveien-no-vti up 23m57s 0B/13K 0/170 85.166.175.154 vpn.stotvigveien.no AES_CBC_256/HMAC_SHA1_96
show version
Version: VyOS 1.4-rolling-202308240020
Release train: current
Built by: [email protected]
Architecture: x86_64
Boot via: installed image
System type: VMware guest
Hardware vendor: VMware, Inc.
Hardware model: VMware Virtual Platform
show log vpn (85.0.0.0 is siteB public IP)
Aug 28 13:01:29 charon[2280]: 06[NET] <peer_vpn-siteb-com|1> sending packet: from 10.10.1.18[500] to 85.0.0.0[500] (80 bytes)
Aug 28 13:01:29 charon-systemd[2280]: sending packet: from 10.10.1.18[500] to 85.0.0.0[500] (80 bytes)
Aug 28 13:01:34 charon[2280]: 16[NET] <peer_vpn-siteb-com|1> received packet: from 85.0.0.0[500] to 10.10.1.18[500] (80 bytes)
Aug 28 13:01:34 charon-systemd[2280]: received packet: from 85.0.0.0[500] to 10.10.1.18[500] (80 bytes)
Aug 28 13:01:34 charon[2280]: 16[ENC] <peer_vpn-siteb-com|1> parsed INFORMATIONAL request 311 [ ]
Aug 28 13:01:34 charon-systemd[2280]: parsed INFORMATIONAL request 311 [ ]
Aug 28 13:01:34 charon[2280]: 16[ENC] <peer_vpn-siteb-com|1> generating INFORMATIONAL response 311 [ ]
Aug 28 13:01:34 charon-systemd[2280]: generating INFORMATIONAL response 311 [ ]
Aug 28 13:01:34 charon[2280]: 16[NET] <peer_vpn-siteb-com|1> sending packet: from 10.10.1.18[500] to 85.0.0.0[500] (80 bytes)
Aug 28 13:01:34 charon-systemd[2280]: sending packet: from 10.10.1.18[500] to 85.0.0.0[500] (80 bytes)
According to you latest entry, tunnel is up and you can see outoing traffic though the tunnel, but no data is comming back. See counters in cero for Bytes In and Packets In.
Check if traffic is being received on remote end, and why is not comming back.
Traffic is not received on SiteB. Also SiteB has same numbers with packets out and no packet in.
Tried both way to ping the tunnel it self, but it not work. (192.168.99.0/29) This should work regardless of routing issue?
Checked the traffic flow with monitor traffic interface vti1 and can see that traffic hits the interface when i try a ping to SiteB. I never see packets when i send ping FROM SiteB. In logs of SiteB i can see that traffic sent over tunnel interface
monitor traffic interface vti1
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on vti1, link-type RAW (Raw IP), snapshot length 262144 bytes
16:23:05.454165 IP 192.168.99.1 > 192.168.99.2: ICMP echo request, id 41729, seq 1, length 64
16:23:06.517630 IP 192.168.99.1 > 192.168.99.2: ICMP echo request, id 41729, seq 2, length 64
16:23:07.541602 IP 192.168.99.1 > 192.168.99.2: ICMP echo request, id 41729, seq 3, length 64
16:23:08.565619 IP 192.168.99.1 > 192.168.99.2: ICMP echo request, id 41729, seq 4, length 64
16:23:09.589628 IP 192.168.99.1 > 192.168.99.2: ICMP echo request, id 41729, seq 5, length 64
16:23:10.613619 IP 192.168.99.1 > 192.168.99.2: ICMP echo request, id 41729, seq 6, length 64
16:23:16.476492 IP 192.168.99.1 > 10.77.0.1: ICMP echo request, id 17144, seq 1, length 64
16:23:17.525646 IP 192.168.99.1 > 10.77.0.1: ICMP echo request, id 17144, seq 2, length 64
I was also struggling a lot when I set up my IPSec VPN. Maybe the following bash shell commands help you to get more details about what’s happening when the IPSec session will be established:
Use tcpdump to see if ESP packets are sent…and received on remote end
I have encountered situation, where ESP wasn’t passed by ISP
Forcing NAT-T (udp 4500) is a way around this